gi-atk-2.0.17: GI/Atk/Interfaces/Component.hs
{- |
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 "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