haskell-gi-base-0.24.0: Foundation for libraries generated by haskell-gi
Safe HaskellNone
LanguageHaskell2010

Data.GI.Base

Description

Convenience header for basic GObject-Introspection modules

See the documentation for each individual module for a description and usage help.

Synopsis

Documentation

data AttrOp obj (tag :: AttrOpTag) where Source #

Constructors for the different operations allowed on an attribute.

Constructors

(:=) :: (HasAttributeList obj, info ~ ResolveAttribute attr obj, AttrInfo info, AttrBaseTypeConstraint info obj, AttrOpAllowed tag info obj, AttrSetTypeConstraint info b) => AttrLabelProxy (attr :: Symbol) -> b -> AttrOp obj tag infixr 0

Assign a value to an attribute

(:=>) :: (HasAttributeList obj, info ~ ResolveAttribute attr obj, AttrInfo info, AttrBaseTypeConstraint info obj, AttrOpAllowed tag info obj, AttrSetTypeConstraint info b) => AttrLabelProxy (attr :: Symbol) -> IO b -> AttrOp obj tag infixr 0

Assign the result of an IO action to an attribute

(:~) :: (HasAttributeList obj, info ~ ResolveAttribute attr obj, AttrInfo info, AttrBaseTypeConstraint info obj, tag ~ 'AttrSet, AttrOpAllowed 'AttrSet info obj, AttrOpAllowed 'AttrGet info obj, AttrSetTypeConstraint info b, a ~ AttrGetType info) => AttrLabelProxy (attr :: Symbol) -> (a -> b) -> AttrOp obj tag infixr 0

Apply an update function to an attribute

(:~>) :: (HasAttributeList obj, info ~ ResolveAttribute attr obj, AttrInfo info, AttrBaseTypeConstraint info obj, tag ~ 'AttrSet, AttrOpAllowed 'AttrSet info obj, AttrOpAllowed 'AttrGet info obj, AttrSetTypeConstraint info b, a ~ AttrGetType info) => AttrLabelProxy (attr :: Symbol) -> (a -> IO b) -> AttrOp obj tag infixr 0

Apply an IO update function to an attribute

(:&=) :: (HasAttributeList obj, info ~ ResolveAttribute attr obj, AttrInfo info, AttrBaseTypeConstraint info obj, AttrOpAllowed tag info obj, AttrTransferTypeConstraint info b, AttrSetTypeConstraint info (AttrTransferType info)) => AttrLabelProxy (attr :: Symbol) -> b -> AttrOp obj tag

Assign a value to an attribute, allocating any necessary memory for representing the Haskell value as a C value. Note that it is the responsibility of the caller to make sure that the memory is freed when no longer used, otherwise there will be a memory leak. In the majority of cases you probably want to use := instead, which has no potential memory leaks (at the cost of sometimes requiring some explicit Haskell -> C marshalling).

set :: forall o m. MonadIO m => o -> [AttrOp o 'AttrSet] -> m () Source #

Set a number of properties for some object.

get :: forall info attr obj result m. (AttrGetC info obj attr result, MonadIO m) => obj -> AttrLabelProxy (attr :: Symbol) -> m result Source #

Get the value of an attribute for an object.

data GClosure a Source #

The basic type. This corresponds to a wrapped GClosure on the C side, which is a boxed object.

Instances

Instances details
HasParentTypes (GClosure a) Source # 
Instance details

Defined in Data.GI.Base.GClosure

GBoxed (GClosure a) Source #

GClosures are registered as boxed in the GLib type system.

Instance details

Defined in Data.GI.Base.GClosure

TypedObject (GClosure a) Source #

Find the associated GType for the given closure.

Instance details

Defined in Data.GI.Base.GClosure

type ParentTypes (GClosure a) Source #

There are no types in the bindings that a closure can be safely cast to.

Instance details

Defined in Data.GI.Base.GClosure

type ParentTypes (GClosure a) = '[] :: [Type]

new :: (Constructible a tag, MonadIO m) => (ManagedPtr a -> a) -> [AttrOp a tag] -> m a Source #

Allocate a new instance of the given type, with the given attributes.

class IsGValue a where Source #

A convenience class for marshaling back and forth between Haskell values and GValues.

Instances

Instances details
IsGValue Bool Source # 
Instance details

Defined in Data.GI.Base.GValue

IsGValue Double Source # 
Instance details

Defined in Data.GI.Base.GValue

IsGValue Float Source # 
Instance details

Defined in Data.GI.Base.GValue

IsGValue Int32 Source # 
Instance details

Defined in Data.GI.Base.GValue

IsGValue Int64 Source # 
Instance details

Defined in Data.GI.Base.GValue

IsGValue Word32 Source # 
Instance details

Defined in Data.GI.Base.GValue

IsGValue Word64 Source # 
Instance details

Defined in Data.GI.Base.GValue

IsGValue CInt Source # 
Instance details

Defined in Data.GI.Base.GValue

IsGValue CLong Source # 
Instance details

Defined in Data.GI.Base.GValue

IsGValue CUInt Source # 
Instance details

Defined in Data.GI.Base.GValue

IsGValue CULong Source # 
Instance details

Defined in Data.GI.Base.GValue

IsGValue GType Source # 
Instance details

Defined in Data.GI.Base.GValue

IsGValue (Maybe String) Source # 
Instance details

Defined in Data.GI.Base.GValue

Methods

toGValue :: Maybe String -> IO GValue Source #

fromGValue :: GValue -> IO (Maybe String) Source #

IsGValue (Maybe Text) Source # 
Instance details

Defined in Data.GI.Base.GValue

Methods

toGValue :: Maybe Text -> IO GValue Source #

fromGValue :: GValue -> IO (Maybe Text) Source #

IsGValue (StablePtr a) Source # 
Instance details

Defined in Data.GI.Base.GValue

Methods

toGValue :: StablePtr a -> IO GValue Source #

fromGValue :: GValue -> IO (StablePtr a) Source #

IsGValue (Ptr a) Source # 
Instance details

Defined in Data.GI.Base.GValue

newtype GValue Source #

Haskell-side representation of a GValue.

Constructors

GValue (ManagedPtr GValue) 

Instances

Instances details
HasParentTypes GValue Source # 
Instance details

Defined in Data.GI.Base.GValue

GBoxed GValue Source #

GValues are registered as boxed in the GLib type system.

Instance details

Defined in Data.GI.Base.GValue

TypedObject GValue Source #

Find the associated GType for GValue.

Instance details

Defined in Data.GI.Base.GValue

type ParentTypes GValue Source #

There are no types in the bindings that a GValue can be safely cast to.

Instance details

Defined in Data.GI.Base.GValue

type ParentTypes GValue = '[] :: [Type]

data SignalProxy (object :: *) (info :: *) where Source #

Support for overloaded signal connectors.

Constructors

(:::) :: forall o info. SignalProxy o info -> Text -> SignalProxy o info

A signal connector annotated with a detail.

PropertyNotify :: (info ~ ResolveAttribute propName o, AttrInfo info, pl ~ AttrLabel info, KnownSymbol pl) => AttrLabelProxy propName -> SignalProxy o GObjectNotifySignalInfo

A signal connector for the notify signal on the given property.

Instances

Instances details
info ~ ResolveSignal slot object => IsLabel slot (SignalProxy object info) Source #

Support for overloaded labels.

Instance details

Defined in Data.GI.Base.Signals

Methods

fromLabel :: SignalProxy object info

on :: forall object info m. (GObject object, MonadIO m, SignalInfo info) => object -> SignalProxy object info -> HaskellCallbackType info -> m SignalHandlerId Source #

Connect a signal to a signal handler.

after :: forall object info m. (GObject object, MonadIO m, SignalInfo info) => object -> SignalProxy object info -> HaskellCallbackType info -> m SignalHandlerId Source #

Connect a signal to a handler, running the handler after the default one.

asA :: (ManagedPtrNewtype a, ManagedPtrNewtype b, HasParentTypes b, IsDescendantOf a b) => b -> (ManagedPtr a -> a) -> a Source #

Safe coercions to a parent class. For instance:

#show $ label `asA` Gtk.Widget