haskell-gi-base-0.25.0: Foundation for libraries generated by haskell-gi
Safe HaskellSafe-Inferred
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).

On :: (GObject obj, SignalInfo info) => SignalProxy obj info -> HaskellCallbackType info -> AttrOp obj tag

Connect the given signal to a signal handler.

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
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

HasParentTypes (GClosure a) Source # 
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 #

Class for types that can be marshaled back and forth between Haskell values and GValues. These are low-level methods, you might want to use toGValue and fromGValue instead for a higher level interface.

Methods

gvalueGType_ Source #

Arguments

:: IO GType

GType for the GValue containing values of this type.

gvalueSet_ Source #

Arguments

:: Ptr GValue 
-> a 
-> IO ()

Set the GValue to the given Haskell value.

gvalueGet_ Source #

Arguments

:: Ptr GValue 
-> IO a

Get the Haskel value inside the GValue.

Instances

Instances details
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 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 GType Source # 
Instance details

Defined in Data.GI.Base.GValue

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 (Ptr a) Source # 
Instance details

Defined in Data.GI.Base.GValue

IsGValue (StablePtr a) Source # 
Instance details

Defined in Data.GI.Base.GValue

IsGValue (Maybe Text) Source # 
Instance details

Defined in Data.GI.Base.GValue

IsGValue (Maybe String) 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
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

HasParentTypes GValue Source # 
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]

toGValue :: forall a. IsGValue a => a -> IO GValue Source #

Create a GValue from the given Haskell value.

fromGValue :: IsGValue a => GValue -> IO a Source #

Create a Haskell object out of the given GValue.

data SignalProxy (object :: Type) (info :: Type) 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