{-# 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.ScrollbarAccessible
    ( 

-- * Exported types
    ScrollbarAccessible(..)                 ,
    IsScrollbarAccessible                   ,
    toScrollbarAccessible                   ,


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

#if defined(ENABLE_OVERLOADING)
    ResolveScrollbarAccessibleMethod        ,
#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.Interfaces.Value as Atk.Value
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 ScrollbarAccessible = ScrollbarAccessible (SP.ManagedPtr ScrollbarAccessible)
    deriving (ScrollbarAccessible -> ScrollbarAccessible -> Bool
(ScrollbarAccessible -> ScrollbarAccessible -> Bool)
-> (ScrollbarAccessible -> ScrollbarAccessible -> Bool)
-> Eq ScrollbarAccessible
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ScrollbarAccessible -> ScrollbarAccessible -> Bool
$c/= :: ScrollbarAccessible -> ScrollbarAccessible -> Bool
== :: ScrollbarAccessible -> ScrollbarAccessible -> Bool
$c== :: ScrollbarAccessible -> ScrollbarAccessible -> Bool
Eq)

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

foreign import ccall "gtk_scrollbar_accessible_get_type"
    c_gtk_scrollbar_accessible_get_type :: IO B.Types.GType

instance B.Types.TypedObject ScrollbarAccessible where
    glibType :: IO GType
glibType = IO GType
c_gtk_scrollbar_accessible_get_type

instance B.Types.GObject ScrollbarAccessible

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

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

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

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

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

instance (info ~ ResolveScrollbarAccessibleMethod t ScrollbarAccessible, O.MethodInfo info ScrollbarAccessible p) => OL.IsLabel t (ScrollbarAccessible -> 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 ScrollbarAccessible
type instance O.AttributeList ScrollbarAccessible = ScrollbarAccessibleAttributeList
type ScrollbarAccessibleAttributeList = ('[ '("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 ScrollbarAccessible = ScrollbarAccessibleSignalList
type ScrollbarAccessibleSignalList = ('[ '("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), '("valueChanged", Atk.Value.ValueValueChangedSignalInfo), '("visibleDataChanged", Atk.Object.ObjectVisibleDataChangedSignalInfo)] :: [(Symbol, *)])

#endif