gi-atk-2.0.17: GI/Atk/Objects/Plug.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)
See 'GI.Atk.Objects.Socket.Socket'
-}
#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Atk.Objects.Plug
(
-- * Exported types
Plug(..) ,
IsPlug ,
toPlug ,
noPlug ,
-- * Methods
-- ** getId #method:getId#
#if ENABLE_OVERLOADING
PlugGetIdMethodInfo ,
#endif
plugGetId ,
-- ** new #method:new#
plugNew ,
) 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.Interfaces.Component as Atk.Component
import {-# SOURCE #-} qualified GI.Atk.Objects.Object as Atk.Object
import qualified GI.GObject.Objects.Object as GObject.Object
-- | Memory-managed wrapper type.
newtype Plug = Plug (ManagedPtr Plug)
foreign import ccall "atk_plug_get_type"
c_atk_plug_get_type :: IO GType
instance GObject Plug where
gobjectType = c_atk_plug_get_type
-- | Type class for types which can be safely cast to `Plug`, for instance with `toPlug`.
class (GObject o, O.IsDescendantOf Plug o) => IsPlug o
instance (GObject o, O.IsDescendantOf Plug o) => IsPlug o
instance O.HasParentTypes Plug
type instance O.ParentTypes Plug = '[Atk.Object.Object, GObject.Object.Object, Atk.Component.Component]
-- | Cast to `Plug`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toPlug :: (MonadIO m, IsPlug o) => o -> m Plug
toPlug = liftIO . unsafeCastTo Plug
-- | A convenience alias for `Nothing` :: `Maybe` `Plug`.
noPlug :: Maybe Plug
noPlug = Nothing
#if ENABLE_OVERLOADING
type family ResolvePlugMethod (t :: Symbol) (o :: *) :: * where
ResolvePlugMethod "addRelationship" o = Atk.Object.ObjectAddRelationshipMethodInfo
ResolvePlugMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolvePlugMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolvePlugMethod "contains" o = Atk.Component.ComponentContainsMethodInfo
ResolvePlugMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolvePlugMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolvePlugMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolvePlugMethod "grabFocus" o = Atk.Component.ComponentGrabFocusMethodInfo
ResolvePlugMethod "initialize" o = Atk.Object.ObjectInitializeMethodInfo
ResolvePlugMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolvePlugMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolvePlugMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolvePlugMethod "notifyStateChange" o = Atk.Object.ObjectNotifyStateChangeMethodInfo
ResolvePlugMethod "peekParent" o = Atk.Object.ObjectPeekParentMethodInfo
ResolvePlugMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolvePlugMethod "refAccessibleAtPoint" o = Atk.Component.ComponentRefAccessibleAtPointMethodInfo
ResolvePlugMethod "refAccessibleChild" o = Atk.Object.ObjectRefAccessibleChildMethodInfo
ResolvePlugMethod "refRelationSet" o = Atk.Object.ObjectRefRelationSetMethodInfo
ResolvePlugMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolvePlugMethod "refStateSet" o = Atk.Object.ObjectRefStateSetMethodInfo
ResolvePlugMethod "removeFocusHandler" o = Atk.Component.ComponentRemoveFocusHandlerMethodInfo
ResolvePlugMethod "removePropertyChangeHandler" o = Atk.Object.ObjectRemovePropertyChangeHandlerMethodInfo
ResolvePlugMethod "removeRelationship" o = Atk.Object.ObjectRemoveRelationshipMethodInfo
ResolvePlugMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolvePlugMethod "scrollTo" o = Atk.Component.ComponentScrollToMethodInfo
ResolvePlugMethod "scrollToPoint" o = Atk.Component.ComponentScrollToPointMethodInfo
ResolvePlugMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolvePlugMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolvePlugMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolvePlugMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolvePlugMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolvePlugMethod "getAlpha" o = Atk.Component.ComponentGetAlphaMethodInfo
ResolvePlugMethod "getAttributes" o = Atk.Object.ObjectGetAttributesMethodInfo
ResolvePlugMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolvePlugMethod "getDescription" o = Atk.Object.ObjectGetDescriptionMethodInfo
ResolvePlugMethod "getExtents" o = Atk.Component.ComponentGetExtentsMethodInfo
ResolvePlugMethod "getId" o = PlugGetIdMethodInfo
ResolvePlugMethod "getIndexInParent" o = Atk.Object.ObjectGetIndexInParentMethodInfo
ResolvePlugMethod "getLayer" o = Atk.Object.ObjectGetLayerMethodInfo
ResolvePlugMethod "getMdiZorder" o = Atk.Object.ObjectGetMdiZorderMethodInfo
ResolvePlugMethod "getNAccessibleChildren" o = Atk.Object.ObjectGetNAccessibleChildrenMethodInfo
ResolvePlugMethod "getName" o = Atk.Object.ObjectGetNameMethodInfo
ResolvePlugMethod "getObjectLocale" o = Atk.Object.ObjectGetObjectLocaleMethodInfo
ResolvePlugMethod "getParent" o = Atk.Object.ObjectGetParentMethodInfo
ResolvePlugMethod "getPosition" o = Atk.Component.ComponentGetPositionMethodInfo
ResolvePlugMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolvePlugMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolvePlugMethod "getRole" o = Atk.Object.ObjectGetRoleMethodInfo
ResolvePlugMethod "getSize" o = Atk.Component.ComponentGetSizeMethodInfo
ResolvePlugMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolvePlugMethod "setDescription" o = Atk.Object.ObjectSetDescriptionMethodInfo
ResolvePlugMethod "setExtents" o = Atk.Component.ComponentSetExtentsMethodInfo
ResolvePlugMethod "setName" o = Atk.Object.ObjectSetNameMethodInfo
ResolvePlugMethod "setParent" o = Atk.Object.ObjectSetParentMethodInfo
ResolvePlugMethod "setPosition" o = Atk.Component.ComponentSetPositionMethodInfo
ResolvePlugMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolvePlugMethod "setRole" o = Atk.Object.ObjectSetRoleMethodInfo
ResolvePlugMethod "setSize" o = Atk.Component.ComponentSetSizeMethodInfo
ResolvePlugMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolvePlugMethod t Plug, O.MethodInfo info Plug p) => OL.IsLabel t (Plug -> 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
#if ENABLE_OVERLOADING
instance O.HasAttributeList Plug
type instance O.AttributeList Plug = PlugAttributeList
type PlugAttributeList = ('[ '("accessibleComponentLayer", Atk.Object.ObjectAccessibleComponentLayerPropertyInfo), '("accessibleComponentMdiZorder", Atk.Object.ObjectAccessibleComponentMdiZorderPropertyInfo), '("accessibleDescription", Atk.Object.ObjectAccessibleDescriptionPropertyInfo), '("accessibleHypertextNlinks", Atk.Object.ObjectAccessibleHypertextNlinksPropertyInfo), '("accessibleName", Atk.Object.ObjectAccessibleNamePropertyInfo), '("accessibleParent", Atk.Object.ObjectAccessibleParentPropertyInfo), '("accessibleRole", Atk.Object.ObjectAccessibleRolePropertyInfo), '("accessibleTableCaption", Atk.Object.ObjectAccessibleTableCaptionPropertyInfo), '("accessibleTableCaptionObject", Atk.Object.ObjectAccessibleTableCaptionObjectPropertyInfo), '("accessibleTableColumnDescription", Atk.Object.ObjectAccessibleTableColumnDescriptionPropertyInfo), '("accessibleTableColumnHeader", Atk.Object.ObjectAccessibleTableColumnHeaderPropertyInfo), '("accessibleTableRowDescription", Atk.Object.ObjectAccessibleTableRowDescriptionPropertyInfo), '("accessibleTableRowHeader", Atk.Object.ObjectAccessibleTableRowHeaderPropertyInfo), '("accessibleTableSummary", Atk.Object.ObjectAccessibleTableSummaryPropertyInfo), '("accessibleValue", Atk.Object.ObjectAccessibleValuePropertyInfo)] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
#endif
#if ENABLE_OVERLOADING
type instance O.SignalList Plug = PlugSignalList
type PlugSignalList = ('[ '("activeDescendantChanged", Atk.Object.ObjectActiveDescendantChangedSignalInfo), '("boundsChanged", Atk.Component.ComponentBoundsChangedSignalInfo), '("childrenChanged", Atk.Object.ObjectChildrenChangedSignalInfo), '("focusEvent", Atk.Object.ObjectFocusEventSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("propertyChange", Atk.Object.ObjectPropertyChangeSignalInfo), '("stateChange", Atk.Object.ObjectStateChangeSignalInfo), '("visibleDataChanged", Atk.Object.ObjectVisibleDataChangedSignalInfo)] :: [(Symbol, *)])
#endif
-- method Plug::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Atk", name = "Plug"}))
-- throws : False
-- Skip return : False
foreign import ccall "atk_plug_new" atk_plug_new ::
IO (Ptr Plug)
{- |
/No description available in the introspection data./
-}
plugNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
m Plug
plugNew = liftIO $ do
result <- atk_plug_new
checkUnexpectedReturnNULL "plugNew" result
result' <- (wrapObject Plug) result
return result'
#if ENABLE_OVERLOADING
#endif
-- method Plug::get_id
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "plug", argType = TInterface (Name {namespace = "Atk", name = "Plug"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #AtkPlug", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False
foreign import ccall "atk_plug_get_id" atk_plug_get_id ::
Ptr Plug -> -- plug : TInterface (Name {namespace = "Atk", name = "Plug"})
IO CString
{- |
Gets the unique ID of an 'GI.Atk.Objects.Plug.Plug' object, which can be used to
embed inside of an 'GI.Atk.Objects.Socket.Socket' using 'GI.Atk.Objects.Socket.socketEmbed'.
Internally, this calls a class function that should be registered
by the IPC layer (usually at-spi2-atk). The implementor of an
'GI.Atk.Objects.Plug.Plug' object should call this function (after atk-bridge is
loaded) and pass the value to the process implementing the
'GI.Atk.Objects.Socket.Socket', so it could embed the plug.
/Since: 1.30/
-}
plugGetId ::
(B.CallStack.HasCallStack, MonadIO m, IsPlug a) =>
a
{- ^ /@plug@/: an 'GI.Atk.Objects.Plug.Plug' -}
-> m T.Text
{- ^ __Returns:__ the unique ID for the plug -}
plugGetId plug = liftIO $ do
plug' <- unsafeManagedPtrCastPtr plug
result <- atk_plug_get_id plug'
checkUnexpectedReturnNULL "plugGetId" result
result' <- cstringToText result
freeMem result
touchManagedPtr plug
return result'
#if ENABLE_OVERLOADING
data PlugGetIdMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsPlug a) => O.MethodInfo PlugGetIdMethodInfo a signature where
overloadedMethod _ = plugGetId
#endif