{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) 'GI.Atk.Interfaces.Component.Component' should be implemented by most if not all UI elements with an actual on-screen presence, i.e. components which can be said to have a screen-coordinate bounding box. Virtually all widgets will need to have 'GI.Atk.Interfaces.Component.Component' implementations provided for their corresponding 'GI.Atk.Objects.Object.Object' class. In short, only UI elements which are *not* GUI elements will omit this ATK interface. A possible exception might be textual information with a transparent background, in which case text glyph bounding box information is provided by 'GI.Atk.Interfaces.Text.Text'. -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.Atk.Interfaces.Component ( -- * Exported types Component(..) , noComponent , IsComponent , toComponent , -- * Methods -- ** contains #method:contains# #if ENABLE_OVERLOADING ComponentContainsMethodInfo , #endif componentContains , -- ** getAlpha #method:getAlpha# #if ENABLE_OVERLOADING ComponentGetAlphaMethodInfo , #endif componentGetAlpha , -- ** getExtents #method:getExtents# #if ENABLE_OVERLOADING ComponentGetExtentsMethodInfo , #endif componentGetExtents , -- ** getLayer #method:getLayer# #if ENABLE_OVERLOADING ComponentGetLayerMethodInfo , #endif componentGetLayer , -- ** getMdiZorder #method:getMdiZorder# #if ENABLE_OVERLOADING ComponentGetMdiZorderMethodInfo , #endif componentGetMdiZorder , -- ** getPosition #method:getPosition# #if ENABLE_OVERLOADING ComponentGetPositionMethodInfo , #endif componentGetPosition , -- ** getSize #method:getSize# #if ENABLE_OVERLOADING ComponentGetSizeMethodInfo , #endif componentGetSize , -- ** grabFocus #method:grabFocus# #if ENABLE_OVERLOADING ComponentGrabFocusMethodInfo , #endif componentGrabFocus , -- ** refAccessibleAtPoint #method:refAccessibleAtPoint# #if ENABLE_OVERLOADING ComponentRefAccessibleAtPointMethodInfo , #endif componentRefAccessibleAtPoint , -- ** removeFocusHandler #method:removeFocusHandler# #if ENABLE_OVERLOADING ComponentRemoveFocusHandlerMethodInfo , #endif componentRemoveFocusHandler , -- ** scrollTo #method:scrollTo# #if ENABLE_OVERLOADING ComponentScrollToMethodInfo , #endif componentScrollTo , -- ** scrollToPoint #method:scrollToPoint# #if ENABLE_OVERLOADING ComponentScrollToPointMethodInfo , #endif componentScrollToPoint , -- ** setExtents #method:setExtents# #if ENABLE_OVERLOADING ComponentSetExtentsMethodInfo , #endif componentSetExtents , -- ** setPosition #method:setPosition# #if ENABLE_OVERLOADING ComponentSetPositionMethodInfo , #endif componentSetPosition , -- ** setSize #method:setSize# #if ENABLE_OVERLOADING ComponentSetSizeMethodInfo , #endif componentSetSize , -- * Signals -- ** boundsChanged #signal:boundsChanged# C_ComponentBoundsChangedCallback , ComponentBoundsChangedCallback , #if ENABLE_OVERLOADING ComponentBoundsChangedSignalInfo , #endif afterComponentBoundsChanged , genClosure_ComponentBoundsChanged , mk_ComponentBoundsChangedCallback , noComponentBoundsChangedCallback , onComponentBoundsChanged , wrap_ComponentBoundsChangedCallback , ) 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.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.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 {-# SOURCE #-} qualified GI.Atk.Enums as Atk.Enums import {-# SOURCE #-} qualified GI.Atk.Objects.Object as Atk.Object import {-# SOURCE #-} qualified GI.Atk.Structs.Rectangle as Atk.Rectangle import qualified GI.GObject.Objects.Object as GObject.Object -- interface Component -- | Memory-managed wrapper type. newtype Component = Component (ManagedPtr Component) -- | A convenience alias for `Nothing` :: `Maybe` `Component`. noComponent :: Maybe Component noComponent = Nothing -- signal Component::bounds-changed {- | The \'bounds-changed\" signal is emitted when the bposition or size of the component changes. -} type ComponentBoundsChangedCallback = Atk.Rectangle.Rectangle {- ^ /@arg1@/: The AtkRectangle giving the new position and size. -} -> IO () -- | A convenience synonym for @`Nothing` :: `Maybe` `ComponentBoundsChangedCallback`@. noComponentBoundsChangedCallback :: Maybe ComponentBoundsChangedCallback noComponentBoundsChangedCallback = Nothing -- | Type for the callback on the (unwrapped) C side. type C_ComponentBoundsChangedCallback = Ptr () -> -- object Ptr Atk.Rectangle.Rectangle -> Ptr () -> -- user_data IO () -- | Generate a function pointer callable from C code, from a `C_ComponentBoundsChangedCallback`. foreign import ccall "wrapper" mk_ComponentBoundsChangedCallback :: C_ComponentBoundsChangedCallback -> IO (FunPtr C_ComponentBoundsChangedCallback) -- | Wrap the callback into a `GClosure`. genClosure_ComponentBoundsChanged :: MonadIO m => ComponentBoundsChangedCallback -> m (GClosure C_ComponentBoundsChangedCallback) genClosure_ComponentBoundsChanged cb = liftIO $ do let cb' = wrap_ComponentBoundsChangedCallback cb mk_ComponentBoundsChangedCallback cb' >>= B.GClosure.newGClosure -- | Wrap a `ComponentBoundsChangedCallback` into a `C_ComponentBoundsChangedCallback`. wrap_ComponentBoundsChangedCallback :: ComponentBoundsChangedCallback -> C_ComponentBoundsChangedCallback wrap_ComponentBoundsChangedCallback _cb _ arg1 _ = do B.ManagedPtr.withTransient Atk.Rectangle.Rectangle arg1 $ \arg1' -> do _cb arg1' {- | Connect a signal handler for the “@bounds-changed@” signal, to be run before the default handler. When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to @ 'Data.GI.Base.Signals.on' component #boundsChanged callback @ -} onComponentBoundsChanged :: (IsComponent a, MonadIO m) => a -> ComponentBoundsChangedCallback -> m SignalHandlerId onComponentBoundsChanged obj cb = liftIO $ do let cb' = wrap_ComponentBoundsChangedCallback cb cb'' <- mk_ComponentBoundsChangedCallback cb' connectSignalFunPtr obj "bounds-changed" cb'' SignalConnectBefore {- | Connect a signal handler for the “@bounds-changed@” signal, to be run after the default handler. When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to @ 'Data.GI.Base.Signals.after' component #boundsChanged callback @ -} afterComponentBoundsChanged :: (IsComponent a, MonadIO m) => a -> ComponentBoundsChangedCallback -> m SignalHandlerId afterComponentBoundsChanged obj cb = liftIO $ do let cb' = wrap_ComponentBoundsChangedCallback cb cb'' <- mk_ComponentBoundsChangedCallback cb' connectSignalFunPtr obj "bounds-changed" cb'' SignalConnectAfter #if ENABLE_OVERLOADING data ComponentBoundsChangedSignalInfo instance SignalInfo ComponentBoundsChangedSignalInfo where type HaskellCallbackType ComponentBoundsChangedSignalInfo = ComponentBoundsChangedCallback connectSignal _ obj cb connectMode = do let cb' = wrap_ComponentBoundsChangedCallback cb cb'' <- mk_ComponentBoundsChangedCallback cb' connectSignalFunPtr obj "bounds-changed" cb'' connectMode type instance O.SignalList Component = ComponentSignalList type ComponentSignalList = ('[ '("boundsChanged", ComponentBoundsChangedSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)]) #endif foreign import ccall "atk_component_get_type" c_atk_component_get_type :: IO GType instance GObject Component where gobjectType = c_atk_component_get_type -- | Type class for types which can be safely cast to `Component`, for instance with `toComponent`. class (GObject o, O.IsDescendantOf Component o) => IsComponent o instance (GObject o, O.IsDescendantOf Component o) => IsComponent o instance O.HasParentTypes Component type instance O.ParentTypes Component = '[GObject.Object.Object] -- | Cast to `Component`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`. toComponent :: (MonadIO m, IsComponent o) => o -> m Component toComponent = liftIO . unsafeCastTo Component #if ENABLE_OVERLOADING instance O.HasAttributeList Component type instance O.AttributeList Component = ComponentAttributeList type ComponentAttributeList = ('[ ] :: [(Symbol, *)]) #endif #if ENABLE_OVERLOADING #endif #if ENABLE_OVERLOADING type family ResolveComponentMethod (t :: Symbol) (o :: *) :: * where ResolveComponentMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo ResolveComponentMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo ResolveComponentMethod "contains" o = ComponentContainsMethodInfo ResolveComponentMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo ResolveComponentMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo ResolveComponentMethod "getv" o = GObject.Object.ObjectGetvMethodInfo ResolveComponentMethod "grabFocus" o = ComponentGrabFocusMethodInfo ResolveComponentMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo ResolveComponentMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo ResolveComponentMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo ResolveComponentMethod "ref" o = GObject.Object.ObjectRefMethodInfo ResolveComponentMethod "refAccessibleAtPoint" o = ComponentRefAccessibleAtPointMethodInfo ResolveComponentMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo ResolveComponentMethod "removeFocusHandler" o = ComponentRemoveFocusHandlerMethodInfo ResolveComponentMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo ResolveComponentMethod "scrollTo" o = ComponentScrollToMethodInfo ResolveComponentMethod "scrollToPoint" o = ComponentScrollToPointMethodInfo ResolveComponentMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo ResolveComponentMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo ResolveComponentMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo ResolveComponentMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo ResolveComponentMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo ResolveComponentMethod "getAlpha" o = ComponentGetAlphaMethodInfo ResolveComponentMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo ResolveComponentMethod "getExtents" o = ComponentGetExtentsMethodInfo ResolveComponentMethod "getLayer" o = ComponentGetLayerMethodInfo ResolveComponentMethod "getMdiZorder" o = ComponentGetMdiZorderMethodInfo ResolveComponentMethod "getPosition" o = ComponentGetPositionMethodInfo ResolveComponentMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo ResolveComponentMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo ResolveComponentMethod "getSize" o = ComponentGetSizeMethodInfo ResolveComponentMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo ResolveComponentMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo ResolveComponentMethod "setExtents" o = ComponentSetExtentsMethodInfo ResolveComponentMethod "setPosition" o = ComponentSetPositionMethodInfo ResolveComponentMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo ResolveComponentMethod "setSize" o = ComponentSetSizeMethodInfo ResolveComponentMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveComponentMethod t Component, O.MethodInfo info Component p) => OL.IsLabel t (Component -> p) where #if MIN_VERSION_base(4,10,0) fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info) #else fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info) #endif #endif -- method Component::contains -- method type : OrdinaryMethod -- Args : [Arg {argCName = "component", argType = TInterface (Name {namespace = "Atk", name = "Component"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #AtkComponent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "x coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "y coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coord_type", argType = TInterface (Name {namespace = "Atk", name = "CoordType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "specifies whether the coordinates are relative to the screen\nor to the components top level window", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "atk_component_contains" atk_component_contains :: Ptr Component -> -- component : TInterface (Name {namespace = "Atk", name = "Component"}) Int32 -> -- x : TBasicType TInt Int32 -> -- y : TBasicType TInt CUInt -> -- coord_type : TInterface (Name {namespace = "Atk", name = "CoordType"}) IO CInt {- | Checks whether the specified point is within the extent of the /@component@/. Toolkit implementor note: ATK provides a default implementation for this virtual method. In general there are little reason to re-implement it. -} componentContains :: (B.CallStack.HasCallStack, MonadIO m, IsComponent a) => a {- ^ /@component@/: the 'GI.Atk.Interfaces.Component.Component' -} -> Int32 {- ^ /@x@/: x coordinate -} -> Int32 {- ^ /@y@/: y coordinate -} -> Atk.Enums.CoordType {- ^ /@coordType@/: specifies whether the coordinates are relative to the screen or to the components top level window -} -> m Bool {- ^ __Returns:__ 'True' or 'False' indicating whether the specified point is within the extent of the /@component@/ or not -} componentContains component x y coordType = liftIO $ do component' <- unsafeManagedPtrCastPtr component let coordType' = (fromIntegral . fromEnum) coordType result <- atk_component_contains component' x y coordType' let result' = (/= 0) result touchManagedPtr component return result' #if ENABLE_OVERLOADING data ComponentContainsMethodInfo instance (signature ~ (Int32 -> Int32 -> Atk.Enums.CoordType -> m Bool), MonadIO m, IsComponent a) => O.MethodInfo ComponentContainsMethodInfo a signature where overloadedMethod _ = componentContains #endif -- method Component::get_alpha -- method type : OrdinaryMethod -- Args : [Arg {argCName = "component", argType = TInterface (Name {namespace = "Atk", name = "Component"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #AtkComponent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TDouble) -- throws : False -- Skip return : False foreign import ccall "atk_component_get_alpha" atk_component_get_alpha :: Ptr Component -> -- component : TInterface (Name {namespace = "Atk", name = "Component"}) IO CDouble {- | Returns the alpha value (i.e. the opacity) for this /@component@/, on a scale from 0 (fully transparent) to 1.0 (fully opaque). /Since: 1.12/ -} componentGetAlpha :: (B.CallStack.HasCallStack, MonadIO m, IsComponent a) => a {- ^ /@component@/: an 'GI.Atk.Interfaces.Component.Component' -} -> m Double {- ^ __Returns:__ An alpha value from 0 to 1.0, inclusive. -} componentGetAlpha component = liftIO $ do component' <- unsafeManagedPtrCastPtr component result <- atk_component_get_alpha component' let result' = realToFrac result touchManagedPtr component return result' #if ENABLE_OVERLOADING data ComponentGetAlphaMethodInfo instance (signature ~ (m Double), MonadIO m, IsComponent a) => O.MethodInfo ComponentGetAlphaMethodInfo a signature where overloadedMethod _ = componentGetAlpha #endif -- method Component::get_extents -- method type : OrdinaryMethod -- Args : [Arg {argCName = "component", argType = TInterface (Name {namespace = "Atk", name = "Component"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #AtkComponent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "address of #gint to put x coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "address of #gint to put y coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "address of #gint to put width", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "height", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "address of #gint to put height", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "coord_type", argType = TInterface (Name {namespace = "Atk", name = "CoordType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "specifies whether the coordinates are relative to the screen\nor to the components top level window", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "atk_component_get_extents" atk_component_get_extents :: Ptr Component -> -- component : TInterface (Name {namespace = "Atk", name = "Component"}) Ptr Int32 -> -- x : TBasicType TInt Ptr Int32 -> -- y : TBasicType TInt Ptr Int32 -> -- width : TBasicType TInt Ptr Int32 -> -- height : TBasicType TInt CUInt -> -- coord_type : TInterface (Name {namespace = "Atk", name = "CoordType"}) IO () {- | Gets the rectangle which gives the extent of the /@component@/. -} componentGetExtents :: (B.CallStack.HasCallStack, MonadIO m, IsComponent a) => a {- ^ /@component@/: an 'GI.Atk.Interfaces.Component.Component' -} -> Atk.Enums.CoordType {- ^ /@coordType@/: specifies whether the coordinates are relative to the screen or to the components top level window -} -> m ((Int32, Int32, Int32, Int32)) componentGetExtents component coordType = liftIO $ do component' <- unsafeManagedPtrCastPtr component x <- allocMem :: IO (Ptr Int32) y <- allocMem :: IO (Ptr Int32) width <- allocMem :: IO (Ptr Int32) height <- allocMem :: IO (Ptr Int32) let coordType' = (fromIntegral . fromEnum) coordType atk_component_get_extents component' x y width height coordType' x' <- peek x y' <- peek y width' <- peek width height' <- peek height touchManagedPtr component freeMem x freeMem y freeMem width freeMem height return (x', y', width', height') #if ENABLE_OVERLOADING data ComponentGetExtentsMethodInfo instance (signature ~ (Atk.Enums.CoordType -> m ((Int32, Int32, Int32, Int32))), MonadIO m, IsComponent a) => O.MethodInfo ComponentGetExtentsMethodInfo a signature where overloadedMethod _ = componentGetExtents #endif -- method Component::get_layer -- method type : OrdinaryMethod -- Args : [Arg {argCName = "component", argType = TInterface (Name {namespace = "Atk", name = "Component"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #AtkComponent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Atk", name = "Layer"})) -- throws : False -- Skip return : False foreign import ccall "atk_component_get_layer" atk_component_get_layer :: Ptr Component -> -- component : TInterface (Name {namespace = "Atk", name = "Component"}) IO CUInt {- | Gets the layer of the component. -} componentGetLayer :: (B.CallStack.HasCallStack, MonadIO m, IsComponent a) => a {- ^ /@component@/: an 'GI.Atk.Interfaces.Component.Component' -} -> m Atk.Enums.Layer {- ^ __Returns:__ an 'GI.Atk.Enums.Layer' which is the layer of the component -} componentGetLayer component = liftIO $ do component' <- unsafeManagedPtrCastPtr component result <- atk_component_get_layer component' let result' = (toEnum . fromIntegral) result touchManagedPtr component return result' #if ENABLE_OVERLOADING data ComponentGetLayerMethodInfo instance (signature ~ (m Atk.Enums.Layer), MonadIO m, IsComponent a) => O.MethodInfo ComponentGetLayerMethodInfo a signature where overloadedMethod _ = componentGetLayer #endif -- method Component::get_mdi_zorder -- method type : OrdinaryMethod -- Args : [Arg {argCName = "component", argType = TInterface (Name {namespace = "Atk", name = "Component"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #AtkComponent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TInt) -- throws : False -- Skip return : False foreign import ccall "atk_component_get_mdi_zorder" atk_component_get_mdi_zorder :: Ptr Component -> -- component : TInterface (Name {namespace = "Atk", name = "Component"}) IO Int32 {- | Gets the zorder of the component. The value G_MININT will be returned if the layer of the component is not ATK_LAYER_MDI or ATK_LAYER_WINDOW. -} componentGetMdiZorder :: (B.CallStack.HasCallStack, MonadIO m, IsComponent a) => a {- ^ /@component@/: an 'GI.Atk.Interfaces.Component.Component' -} -> m Int32 {- ^ __Returns:__ a gint which is the zorder of the component, i.e. the depth at which the component is shown in relation to other components in the same container. -} componentGetMdiZorder component = liftIO $ do component' <- unsafeManagedPtrCastPtr component result <- atk_component_get_mdi_zorder component' touchManagedPtr component return result #if ENABLE_OVERLOADING data ComponentGetMdiZorderMethodInfo instance (signature ~ (m Int32), MonadIO m, IsComponent a) => O.MethodInfo ComponentGetMdiZorderMethodInfo a signature where overloadedMethod _ = componentGetMdiZorder #endif -- method Component::get_position -- method type : OrdinaryMethod -- Args : [Arg {argCName = "component", argType = TInterface (Name {namespace = "Atk", name = "Component"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #AtkComponent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "address of #gint to put x coordinate position", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "address of #gint to put y coordinate position", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "coord_type", argType = TInterface (Name {namespace = "Atk", name = "CoordType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "specifies whether the coordinates are relative to the screen\nor to the components top level window", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "atk_component_get_position" atk_component_get_position :: Ptr Component -> -- component : TInterface (Name {namespace = "Atk", name = "Component"}) Ptr Int32 -> -- x : TBasicType TInt Ptr Int32 -> -- y : TBasicType TInt CUInt -> -- coord_type : TInterface (Name {namespace = "Atk", name = "CoordType"}) IO () {-# DEPRECATED componentGetPosition ["Since 2.12. Use 'GI.Atk.Interfaces.Component.componentGetExtents' instead."] #-} {- | Gets the position of /@component@/ in the form of a point specifying /@component@/\'s top-left corner. -} componentGetPosition :: (B.CallStack.HasCallStack, MonadIO m, IsComponent a) => a {- ^ /@component@/: an 'GI.Atk.Interfaces.Component.Component' -} -> Atk.Enums.CoordType {- ^ /@coordType@/: specifies whether the coordinates are relative to the screen or to the components top level window -} -> m ((Int32, Int32)) componentGetPosition component coordType = liftIO $ do component' <- unsafeManagedPtrCastPtr component x <- allocMem :: IO (Ptr Int32) y <- allocMem :: IO (Ptr Int32) let coordType' = (fromIntegral . fromEnum) coordType atk_component_get_position component' x y coordType' x' <- peek x y' <- peek y touchManagedPtr component freeMem x freeMem y return (x', y') #if ENABLE_OVERLOADING data ComponentGetPositionMethodInfo instance (signature ~ (Atk.Enums.CoordType -> m ((Int32, Int32))), MonadIO m, IsComponent a) => O.MethodInfo ComponentGetPositionMethodInfo a signature where overloadedMethod _ = componentGetPosition #endif -- method Component::get_size -- method type : OrdinaryMethod -- Args : [Arg {argCName = "component", argType = TInterface (Name {namespace = "Atk", name = "Component"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #AtkComponent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "address of #gint to put width of @component", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "height", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "address of #gint to put height of @component", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "atk_component_get_size" atk_component_get_size :: Ptr Component -> -- component : TInterface (Name {namespace = "Atk", name = "Component"}) Ptr Int32 -> -- width : TBasicType TInt Ptr Int32 -> -- height : TBasicType TInt IO () {-# DEPRECATED componentGetSize ["Since 2.12. Use 'GI.Atk.Interfaces.Component.componentGetExtents' instead."] #-} {- | Gets the size of the /@component@/ in terms of width and height. -} componentGetSize :: (B.CallStack.HasCallStack, MonadIO m, IsComponent a) => a {- ^ /@component@/: an 'GI.Atk.Interfaces.Component.Component' -} -> m ((Int32, Int32)) componentGetSize component = liftIO $ do component' <- unsafeManagedPtrCastPtr component width <- allocMem :: IO (Ptr Int32) height <- allocMem :: IO (Ptr Int32) atk_component_get_size component' width height width' <- peek width height' <- peek height touchManagedPtr component freeMem width freeMem height return (width', height') #if ENABLE_OVERLOADING data ComponentGetSizeMethodInfo instance (signature ~ (m ((Int32, Int32))), MonadIO m, IsComponent a) => O.MethodInfo ComponentGetSizeMethodInfo a signature where overloadedMethod _ = componentGetSize #endif -- method Component::grab_focus -- method type : OrdinaryMethod -- Args : [Arg {argCName = "component", argType = TInterface (Name {namespace = "Atk", name = "Component"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #AtkComponent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "atk_component_grab_focus" atk_component_grab_focus :: Ptr Component -> -- component : TInterface (Name {namespace = "Atk", name = "Component"}) IO CInt {- | Grabs focus for this /@component@/. -} componentGrabFocus :: (B.CallStack.HasCallStack, MonadIO m, IsComponent a) => a {- ^ /@component@/: an 'GI.Atk.Interfaces.Component.Component' -} -> m Bool {- ^ __Returns:__ 'True' if successful, 'False' otherwise. -} componentGrabFocus component = liftIO $ do component' <- unsafeManagedPtrCastPtr component result <- atk_component_grab_focus component' let result' = (/= 0) result touchManagedPtr component return result' #if ENABLE_OVERLOADING data ComponentGrabFocusMethodInfo instance (signature ~ (m Bool), MonadIO m, IsComponent a) => O.MethodInfo ComponentGrabFocusMethodInfo a signature where overloadedMethod _ = componentGrabFocus #endif -- method Component::ref_accessible_at_point -- method type : OrdinaryMethod -- Args : [Arg {argCName = "component", argType = TInterface (Name {namespace = "Atk", name = "Component"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #AtkComponent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "x coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "y coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coord_type", argType = TInterface (Name {namespace = "Atk", name = "CoordType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "specifies whether the coordinates are relative to the screen\nor to the components top level window", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Atk", name = "Object"})) -- throws : False -- Skip return : False foreign import ccall "atk_component_ref_accessible_at_point" atk_component_ref_accessible_at_point :: Ptr Component -> -- component : TInterface (Name {namespace = "Atk", name = "Component"}) Int32 -> -- x : TBasicType TInt Int32 -> -- y : TBasicType TInt CUInt -> -- coord_type : TInterface (Name {namespace = "Atk", name = "CoordType"}) IO (Ptr Atk.Object.Object) {- | Gets a reference to the accessible child, if one exists, at the coordinate point specified by /@x@/ and /@y@/. -} componentRefAccessibleAtPoint :: (B.CallStack.HasCallStack, MonadIO m, IsComponent a) => a {- ^ /@component@/: the 'GI.Atk.Interfaces.Component.Component' -} -> Int32 {- ^ /@x@/: x coordinate -} -> Int32 {- ^ /@y@/: y coordinate -} -> Atk.Enums.CoordType {- ^ /@coordType@/: specifies whether the coordinates are relative to the screen or to the components top level window -} -> m (Maybe Atk.Object.Object) {- ^ __Returns:__ a reference to the accessible child, if one exists -} componentRefAccessibleAtPoint component x y coordType = liftIO $ do component' <- unsafeManagedPtrCastPtr component let coordType' = (fromIntegral . fromEnum) coordType result <- atk_component_ref_accessible_at_point component' x y coordType' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- (wrapObject Atk.Object.Object) result' return result'' touchManagedPtr component return maybeResult #if ENABLE_OVERLOADING data ComponentRefAccessibleAtPointMethodInfo instance (signature ~ (Int32 -> Int32 -> Atk.Enums.CoordType -> m (Maybe Atk.Object.Object)), MonadIO m, IsComponent a) => O.MethodInfo ComponentRefAccessibleAtPointMethodInfo a signature where overloadedMethod _ = componentRefAccessibleAtPoint #endif -- method Component::remove_focus_handler -- method type : OrdinaryMethod -- Args : [Arg {argCName = "component", argType = TInterface (Name {namespace = "Atk", name = "Component"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #AtkComponent to remove the focus handler from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "handler_id", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the handler id of the focus handler to be removed\nfrom @component", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "atk_component_remove_focus_handler" atk_component_remove_focus_handler :: Ptr Component -> -- component : TInterface (Name {namespace = "Atk", name = "Component"}) Word32 -> -- handler_id : TBasicType TUInt IO () {-# DEPRECATED componentRemoveFocusHandler ["(Since version 2.9.4)","If you need to track when an object gains or","lose the focus, use the 'GI.Atk.Objects.Object.Object'::@/state-change/@ \\\"focused\\\" notification instead."] #-} {- | Remove the handler specified by /@handlerId@/ from the list of functions to be executed when this object receives focus events (in or out). -} componentRemoveFocusHandler :: (B.CallStack.HasCallStack, MonadIO m, IsComponent a) => a {- ^ /@component@/: the 'GI.Atk.Interfaces.Component.Component' to remove the focus handler from -} -> Word32 {- ^ /@handlerId@/: the handler id of the focus handler to be removed from /@component@/ -} -> m () componentRemoveFocusHandler component handlerId = liftIO $ do component' <- unsafeManagedPtrCastPtr component atk_component_remove_focus_handler component' handlerId touchManagedPtr component return () #if ENABLE_OVERLOADING data ComponentRemoveFocusHandlerMethodInfo instance (signature ~ (Word32 -> m ()), MonadIO m, IsComponent a) => O.MethodInfo ComponentRemoveFocusHandlerMethodInfo a signature where overloadedMethod _ = componentRemoveFocusHandler #endif -- method Component::scroll_to -- method type : OrdinaryMethod -- Args : [Arg {argCName = "component", argType = TInterface (Name {namespace = "Atk", name = "Component"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #AtkComponent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TInterface (Name {namespace = "Atk", name = "ScrollType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "specify where the object should be made visible.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "atk_component_scroll_to" atk_component_scroll_to :: Ptr Component -> -- component : TInterface (Name {namespace = "Atk", name = "Component"}) CUInt -> -- type : TInterface (Name {namespace = "Atk", name = "ScrollType"}) IO CInt {- | Makes /@component@/ visible on the screen by scrolling all necessary parents. Contrary to atk_component_set_position, this does not actually move /@component@/ in its parent, this only makes the parents scroll so that the object shows up on the screen, given its current position within the parents. /Since: 2.30/ -} componentScrollTo :: (B.CallStack.HasCallStack, MonadIO m, IsComponent a) => a {- ^ /@component@/: an 'GI.Atk.Interfaces.Component.Component' -} -> Atk.Enums.ScrollType {- ^ /@type@/: specify where the object should be made visible. -} -> m Bool {- ^ __Returns:__ whether scrolling was successful. -} componentScrollTo component type_ = liftIO $ do component' <- unsafeManagedPtrCastPtr component let type_' = (fromIntegral . fromEnum) type_ result <- atk_component_scroll_to component' type_' let result' = (/= 0) result touchManagedPtr component return result' #if ENABLE_OVERLOADING data ComponentScrollToMethodInfo instance (signature ~ (Atk.Enums.ScrollType -> m Bool), MonadIO m, IsComponent a) => O.MethodInfo ComponentScrollToMethodInfo a signature where overloadedMethod _ = componentScrollTo #endif -- method Component::scroll_to_point -- method type : OrdinaryMethod -- Args : [Arg {argCName = "component", argType = TInterface (Name {namespace = "Atk", name = "Component"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #AtkComponent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coords", argType = TInterface (Name {namespace = "Atk", name = "CoordType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "specify whether coordinates are relative to the screen or to the\nparent object.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "x-position where to scroll to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "y-position where to scroll to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "atk_component_scroll_to_point" atk_component_scroll_to_point :: Ptr Component -> -- component : TInterface (Name {namespace = "Atk", name = "Component"}) CUInt -> -- coords : TInterface (Name {namespace = "Atk", name = "CoordType"}) Int32 -> -- x : TBasicType TInt Int32 -> -- y : TBasicType TInt IO CInt {- | Makes an object visible on the screen at a given position by scrolling all necessary parents. /Since: 2.30/ -} componentScrollToPoint :: (B.CallStack.HasCallStack, MonadIO m, IsComponent a) => a {- ^ /@component@/: an 'GI.Atk.Interfaces.Component.Component' -} -> Atk.Enums.CoordType {- ^ /@coords@/: specify whether coordinates are relative to the screen or to the parent object. -} -> Int32 {- ^ /@x@/: x-position where to scroll to -} -> Int32 {- ^ /@y@/: y-position where to scroll to -} -> m Bool {- ^ __Returns:__ whether scrolling was successful. -} componentScrollToPoint component coords x y = liftIO $ do component' <- unsafeManagedPtrCastPtr component let coords' = (fromIntegral . fromEnum) coords result <- atk_component_scroll_to_point component' coords' x y let result' = (/= 0) result touchManagedPtr component return result' #if ENABLE_OVERLOADING data ComponentScrollToPointMethodInfo instance (signature ~ (Atk.Enums.CoordType -> Int32 -> Int32 -> m Bool), MonadIO m, IsComponent a) => O.MethodInfo ComponentScrollToPointMethodInfo a signature where overloadedMethod _ = componentScrollToPoint #endif -- method Component::set_extents -- method type : OrdinaryMethod -- Args : [Arg {argCName = "component", argType = TInterface (Name {namespace = "Atk", name = "Component"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #AtkComponent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "x coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "y coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "width to set for @component", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "height to set for @component", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coord_type", argType = TInterface (Name {namespace = "Atk", name = "CoordType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "specifies whether the coordinates are relative to the screen\nor to the components top level window", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "atk_component_set_extents" atk_component_set_extents :: Ptr Component -> -- component : TInterface (Name {namespace = "Atk", name = "Component"}) Int32 -> -- x : TBasicType TInt Int32 -> -- y : TBasicType TInt Int32 -> -- width : TBasicType TInt Int32 -> -- height : TBasicType TInt CUInt -> -- coord_type : TInterface (Name {namespace = "Atk", name = "CoordType"}) IO CInt {- | Sets the extents of /@component@/. -} componentSetExtents :: (B.CallStack.HasCallStack, MonadIO m, IsComponent a) => a {- ^ /@component@/: an 'GI.Atk.Interfaces.Component.Component' -} -> Int32 {- ^ /@x@/: x coordinate -} -> Int32 {- ^ /@y@/: y coordinate -} -> Int32 {- ^ /@width@/: width to set for /@component@/ -} -> Int32 {- ^ /@height@/: height to set for /@component@/ -} -> Atk.Enums.CoordType {- ^ /@coordType@/: specifies whether the coordinates are relative to the screen or to the components top level window -} -> m Bool {- ^ __Returns:__ 'True' or 'False' whether the extents were set or not -} componentSetExtents component x y width height coordType = liftIO $ do component' <- unsafeManagedPtrCastPtr component let coordType' = (fromIntegral . fromEnum) coordType result <- atk_component_set_extents component' x y width height coordType' let result' = (/= 0) result touchManagedPtr component return result' #if ENABLE_OVERLOADING data ComponentSetExtentsMethodInfo instance (signature ~ (Int32 -> Int32 -> Int32 -> Int32 -> Atk.Enums.CoordType -> m Bool), MonadIO m, IsComponent a) => O.MethodInfo ComponentSetExtentsMethodInfo a signature where overloadedMethod _ = componentSetExtents #endif -- method Component::set_position -- method type : OrdinaryMethod -- Args : [Arg {argCName = "component", argType = TInterface (Name {namespace = "Atk", name = "Component"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #AtkComponent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "x coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "y coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "coord_type", argType = TInterface (Name {namespace = "Atk", name = "CoordType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "specifies whether the coordinates are relative to the screen\nor to the component's top level window", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "atk_component_set_position" atk_component_set_position :: Ptr Component -> -- component : TInterface (Name {namespace = "Atk", name = "Component"}) Int32 -> -- x : TBasicType TInt Int32 -> -- y : TBasicType TInt CUInt -> -- coord_type : TInterface (Name {namespace = "Atk", name = "CoordType"}) IO CInt {- | Sets the position of /@component@/. Contrary to atk_component_scroll_to, this does not trigger any scrolling, this just moves /@component@/ in its parent. -} componentSetPosition :: (B.CallStack.HasCallStack, MonadIO m, IsComponent a) => a {- ^ /@component@/: an 'GI.Atk.Interfaces.Component.Component' -} -> Int32 {- ^ /@x@/: x coordinate -} -> Int32 {- ^ /@y@/: y coordinate -} -> Atk.Enums.CoordType {- ^ /@coordType@/: specifies whether the coordinates are relative to the screen or to the component\'s top level window -} -> m Bool {- ^ __Returns:__ 'True' or 'False' whether or not the position was set or not -} componentSetPosition component x y coordType = liftIO $ do component' <- unsafeManagedPtrCastPtr component let coordType' = (fromIntegral . fromEnum) coordType result <- atk_component_set_position component' x y coordType' let result' = (/= 0) result touchManagedPtr component return result' #if ENABLE_OVERLOADING data ComponentSetPositionMethodInfo instance (signature ~ (Int32 -> Int32 -> Atk.Enums.CoordType -> m Bool), MonadIO m, IsComponent a) => O.MethodInfo ComponentSetPositionMethodInfo a signature where overloadedMethod _ = componentSetPosition #endif -- method Component::set_size -- method type : OrdinaryMethod -- Args : [Arg {argCName = "component", argType = TInterface (Name {namespace = "Atk", name = "Component"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #AtkComponent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "width to set for @component", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "height to set for @component", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "atk_component_set_size" atk_component_set_size :: Ptr Component -> -- component : TInterface (Name {namespace = "Atk", name = "Component"}) Int32 -> -- width : TBasicType TInt Int32 -> -- height : TBasicType TInt IO CInt {- | Set the size of the /@component@/ in terms of width and height. -} componentSetSize :: (B.CallStack.HasCallStack, MonadIO m, IsComponent a) => a {- ^ /@component@/: an 'GI.Atk.Interfaces.Component.Component' -} -> Int32 {- ^ /@width@/: width to set for /@component@/ -} -> Int32 {- ^ /@height@/: height to set for /@component@/ -} -> m Bool {- ^ __Returns:__ 'True' or 'False' whether the size was set or not -} componentSetSize component width height = liftIO $ do component' <- unsafeManagedPtrCastPtr component result <- atk_component_set_size component' width height let result' = (/= 0) result touchManagedPtr component return result' #if ENABLE_OVERLOADING data ComponentSetSizeMethodInfo instance (signature ~ (Int32 -> Int32 -> m Bool), MonadIO m, IsComponent a) => O.MethodInfo ComponentSetSizeMethodInfo a signature where overloadedMethod _ = componentSetSize #endif