{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- /No description available in the introspection data./

#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif

module GI.Gtk.Objects.StatusbarAccessible
    ( 

-- * Exported types
    StatusbarAccessible(..)                 ,
    IsStatusbarAccessible                   ,
    toStatusbarAccessible                   ,


 -- * Methods
-- ** Overloaded methods #method:Overloaded methods#

#if defined(ENABLE_OVERLOADING)
    ResolveStatusbarAccessibleMethod        ,
#endif




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL

import qualified GI.Atk.Interfaces.Component as Atk.Component
import qualified GI.Atk.Objects.Object as Atk.Object
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Gtk.Objects.Accessible as Gtk.Accessible
import {-# SOURCE #-} qualified GI.Gtk.Objects.WidgetAccessible as Gtk.WidgetAccessible

-- | Memory-managed wrapper type.
newtype StatusbarAccessible = StatusbarAccessible (SP.ManagedPtr StatusbarAccessible)
    deriving (StatusbarAccessible -> StatusbarAccessible -> Bool
(StatusbarAccessible -> StatusbarAccessible -> Bool)
-> (StatusbarAccessible -> StatusbarAccessible -> Bool)
-> Eq StatusbarAccessible
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StatusbarAccessible -> StatusbarAccessible -> Bool
$c/= :: StatusbarAccessible -> StatusbarAccessible -> Bool
== :: StatusbarAccessible -> StatusbarAccessible -> Bool
$c== :: StatusbarAccessible -> StatusbarAccessible -> Bool
Eq)

instance SP.ManagedPtrNewtype StatusbarAccessible where
    toManagedPtr :: StatusbarAccessible -> ManagedPtr StatusbarAccessible
toManagedPtr (StatusbarAccessible ManagedPtr StatusbarAccessible
p) = ManagedPtr StatusbarAccessible
p

foreign import ccall "gtk_statusbar_accessible_get_type"
    c_gtk_statusbar_accessible_get_type :: IO B.Types.GType

instance B.Types.TypedObject StatusbarAccessible where
    glibType :: IO GType
glibType = IO GType
c_gtk_statusbar_accessible_get_type

instance B.Types.GObject StatusbarAccessible

-- | Convert 'StatusbarAccessible' to and from 'Data.GI.Base.GValue.GValue' with 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue StatusbarAccessible where
    toGValue :: StatusbarAccessible -> IO GValue
toGValue StatusbarAccessible
o = do
        GType
gtype <- IO GType
c_gtk_statusbar_accessible_get_type
        StatusbarAccessible
-> (Ptr StatusbarAccessible -> IO GValue) -> IO GValue
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr StatusbarAccessible
o (GType
-> (GValue -> Ptr StatusbarAccessible -> IO ())
-> Ptr StatusbarAccessible
-> IO GValue
forall a. GType -> (GValue -> a -> IO ()) -> a -> IO GValue
B.GValue.buildGValue GType
gtype GValue -> Ptr StatusbarAccessible -> IO ()
forall a. GObject a => GValue -> Ptr a -> IO ()
B.GValue.set_object)
        
    fromGValue :: GValue -> IO StatusbarAccessible
fromGValue GValue
gv = do
        Ptr StatusbarAccessible
ptr <- GValue -> IO (Ptr StatusbarAccessible)
forall b. GObject b => GValue -> IO (Ptr b)
B.GValue.get_object GValue
gv :: IO (Ptr StatusbarAccessible)
        (ManagedPtr StatusbarAccessible -> StatusbarAccessible)
-> Ptr StatusbarAccessible -> IO StatusbarAccessible
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr StatusbarAccessible -> StatusbarAccessible
StatusbarAccessible Ptr StatusbarAccessible
ptr
        
    

-- | Type class for types which can be safely cast to `StatusbarAccessible`, for instance with `toStatusbarAccessible`.
class (SP.GObject o, O.IsDescendantOf StatusbarAccessible o) => IsStatusbarAccessible o
instance (SP.GObject o, O.IsDescendantOf StatusbarAccessible o) => IsStatusbarAccessible o

instance O.HasParentTypes StatusbarAccessible
type instance O.ParentTypes StatusbarAccessible = '[Gtk.WidgetAccessible.WidgetAccessible, Gtk.Accessible.Accessible, Atk.Object.Object, GObject.Object.Object, Atk.Component.Component]

-- | Cast to `StatusbarAccessible`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toStatusbarAccessible :: (MonadIO m, IsStatusbarAccessible o) => o -> m StatusbarAccessible
toStatusbarAccessible :: o -> m StatusbarAccessible
toStatusbarAccessible = IO StatusbarAccessible -> m StatusbarAccessible
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO StatusbarAccessible -> m StatusbarAccessible)
-> (o -> IO StatusbarAccessible) -> o -> m StatusbarAccessible
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr StatusbarAccessible -> StatusbarAccessible)
-> o -> IO StatusbarAccessible
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
 ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
unsafeCastTo ManagedPtr StatusbarAccessible -> StatusbarAccessible
StatusbarAccessible

#if defined(ENABLE_OVERLOADING)
type family ResolveStatusbarAccessibleMethod (t :: Symbol) (o :: *) :: * where
    ResolveStatusbarAccessibleMethod "addRelationship" o = Atk.Object.ObjectAddRelationshipMethodInfo
    ResolveStatusbarAccessibleMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveStatusbarAccessibleMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveStatusbarAccessibleMethod "contains" o = Atk.Component.ComponentContainsMethodInfo
    ResolveStatusbarAccessibleMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveStatusbarAccessibleMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveStatusbarAccessibleMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveStatusbarAccessibleMethod "grabFocus" o = Atk.Component.ComponentGrabFocusMethodInfo
    ResolveStatusbarAccessibleMethod "initialize" o = Atk.Object.ObjectInitializeMethodInfo
    ResolveStatusbarAccessibleMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveStatusbarAccessibleMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveStatusbarAccessibleMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveStatusbarAccessibleMethod "notifyStateChange" o = Atk.Object.ObjectNotifyStateChangeMethodInfo
    ResolveStatusbarAccessibleMethod "peekParent" o = Atk.Object.ObjectPeekParentMethodInfo
    ResolveStatusbarAccessibleMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveStatusbarAccessibleMethod "refAccessibleAtPoint" o = Atk.Component.ComponentRefAccessibleAtPointMethodInfo
    ResolveStatusbarAccessibleMethod "refAccessibleChild" o = Atk.Object.ObjectRefAccessibleChildMethodInfo
    ResolveStatusbarAccessibleMethod "refRelationSet" o = Atk.Object.ObjectRefRelationSetMethodInfo
    ResolveStatusbarAccessibleMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveStatusbarAccessibleMethod "refStateSet" o = Atk.Object.ObjectRefStateSetMethodInfo
    ResolveStatusbarAccessibleMethod "removeFocusHandler" o = Atk.Component.ComponentRemoveFocusHandlerMethodInfo
    ResolveStatusbarAccessibleMethod "removePropertyChangeHandler" o = Atk.Object.ObjectRemovePropertyChangeHandlerMethodInfo
    ResolveStatusbarAccessibleMethod "removeRelationship" o = Atk.Object.ObjectRemoveRelationshipMethodInfo
    ResolveStatusbarAccessibleMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveStatusbarAccessibleMethod "scrollTo" o = Atk.Component.ComponentScrollToMethodInfo
    ResolveStatusbarAccessibleMethod "scrollToPoint" o = Atk.Component.ComponentScrollToPointMethodInfo
    ResolveStatusbarAccessibleMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveStatusbarAccessibleMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveStatusbarAccessibleMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveStatusbarAccessibleMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveStatusbarAccessibleMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveStatusbarAccessibleMethod "getAccessibleId" o = Atk.Object.ObjectGetAccessibleIdMethodInfo
    ResolveStatusbarAccessibleMethod "getAlpha" o = Atk.Component.ComponentGetAlphaMethodInfo
    ResolveStatusbarAccessibleMethod "getAttributes" o = Atk.Object.ObjectGetAttributesMethodInfo
    ResolveStatusbarAccessibleMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveStatusbarAccessibleMethod "getDescription" o = Atk.Object.ObjectGetDescriptionMethodInfo
    ResolveStatusbarAccessibleMethod "getExtents" o = Atk.Component.ComponentGetExtentsMethodInfo
    ResolveStatusbarAccessibleMethod "getIndexInParent" o = Atk.Object.ObjectGetIndexInParentMethodInfo
    ResolveStatusbarAccessibleMethod "getLayer" o = Atk.Object.ObjectGetLayerMethodInfo
    ResolveStatusbarAccessibleMethod "getMdiZorder" o = Atk.Object.ObjectGetMdiZorderMethodInfo
    ResolveStatusbarAccessibleMethod "getNAccessibleChildren" o = Atk.Object.ObjectGetNAccessibleChildrenMethodInfo
    ResolveStatusbarAccessibleMethod "getName" o = Atk.Object.ObjectGetNameMethodInfo
    ResolveStatusbarAccessibleMethod "getObjectLocale" o = Atk.Object.ObjectGetObjectLocaleMethodInfo
    ResolveStatusbarAccessibleMethod "getParent" o = Atk.Object.ObjectGetParentMethodInfo
    ResolveStatusbarAccessibleMethod "getPosition" o = Atk.Component.ComponentGetPositionMethodInfo
    ResolveStatusbarAccessibleMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveStatusbarAccessibleMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveStatusbarAccessibleMethod "getRole" o = Atk.Object.ObjectGetRoleMethodInfo
    ResolveStatusbarAccessibleMethod "getSize" o = Atk.Component.ComponentGetSizeMethodInfo
    ResolveStatusbarAccessibleMethod "getWidget" o = Gtk.Accessible.AccessibleGetWidgetMethodInfo
    ResolveStatusbarAccessibleMethod "setAccessibleId" o = Atk.Object.ObjectSetAccessibleIdMethodInfo
    ResolveStatusbarAccessibleMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveStatusbarAccessibleMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveStatusbarAccessibleMethod "setDescription" o = Atk.Object.ObjectSetDescriptionMethodInfo
    ResolveStatusbarAccessibleMethod "setExtents" o = Atk.Component.ComponentSetExtentsMethodInfo
    ResolveStatusbarAccessibleMethod "setName" o = Atk.Object.ObjectSetNameMethodInfo
    ResolveStatusbarAccessibleMethod "setParent" o = Atk.Object.ObjectSetParentMethodInfo
    ResolveStatusbarAccessibleMethod "setPosition" o = Atk.Component.ComponentSetPositionMethodInfo
    ResolveStatusbarAccessibleMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveStatusbarAccessibleMethod "setRole" o = Atk.Object.ObjectSetRoleMethodInfo
    ResolveStatusbarAccessibleMethod "setSize" o = Atk.Component.ComponentSetSizeMethodInfo
    ResolveStatusbarAccessibleMethod "setWidget" o = Gtk.Accessible.AccessibleSetWidgetMethodInfo
    ResolveStatusbarAccessibleMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveStatusbarAccessibleMethod t StatusbarAccessible, O.MethodInfo info StatusbarAccessible p) => OL.IsLabel t (StatusbarAccessible -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod @info
#else
    fromLabel _ = O.overloadedMethod @info
#endif

#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList StatusbarAccessible
type instance O.AttributeList StatusbarAccessible = StatusbarAccessibleAttributeList
type StatusbarAccessibleAttributeList = ('[ '("accessibleComponentLayer", Atk.Object.ObjectAccessibleComponentLayerPropertyInfo), '("accessibleComponentMdiZorder", Atk.Object.ObjectAccessibleComponentMdiZorderPropertyInfo), '("accessibleDescription", Atk.Object.ObjectAccessibleDescriptionPropertyInfo), '("accessibleHypertextNlinks", Atk.Object.ObjectAccessibleHypertextNlinksPropertyInfo), '("accessibleName", Atk.Object.ObjectAccessibleNamePropertyInfo), '("accessibleParent", Atk.Object.ObjectAccessibleParentPropertyInfo), '("accessibleRole", Atk.Object.ObjectAccessibleRolePropertyInfo), '("accessibleTableCaption", Atk.Object.ObjectAccessibleTableCaptionPropertyInfo), '("accessibleTableCaptionObject", Atk.Object.ObjectAccessibleTableCaptionObjectPropertyInfo), '("accessibleTableColumnDescription", Atk.Object.ObjectAccessibleTableColumnDescriptionPropertyInfo), '("accessibleTableColumnHeader", Atk.Object.ObjectAccessibleTableColumnHeaderPropertyInfo), '("accessibleTableRowDescription", Atk.Object.ObjectAccessibleTableRowDescriptionPropertyInfo), '("accessibleTableRowHeader", Atk.Object.ObjectAccessibleTableRowHeaderPropertyInfo), '("accessibleTableSummary", Atk.Object.ObjectAccessibleTableSummaryPropertyInfo), '("accessibleValue", Atk.Object.ObjectAccessibleValuePropertyInfo), '("widget", Gtk.Accessible.AccessibleWidgetPropertyInfo)] :: [(Symbol, *)])
#endif

#if defined(ENABLE_OVERLOADING)
#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList StatusbarAccessible = StatusbarAccessibleSignalList
type StatusbarAccessibleSignalList = ('[ '("activeDescendantChanged", Atk.Object.ObjectActiveDescendantChangedSignalInfo), '("boundsChanged", Atk.Component.ComponentBoundsChangedSignalInfo), '("childrenChanged", Atk.Object.ObjectChildrenChangedSignalInfo), '("focusEvent", Atk.Object.ObjectFocusEventSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("propertyChange", Atk.Object.ObjectPropertyChangeSignalInfo), '("stateChange", Atk.Object.ObjectStateChangeSignalInfo), '("visibleDataChanged", Atk.Object.ObjectVisibleDataChangedSignalInfo)] :: [(Symbol, *)])

#endif