gi-gobject-2.0.31: GObject bindings

Copyright | Will Thompson and Iñaki García Etxebarria
License | LGPL-2.1
Maintainer | Iñaki García Etxebarria
Safe Haskell | None
Language | Haskell2010

GI.GObject.Objects.BindingGroup

Contents

- Exported types
- Methods
  - bind
  - bindFull
  - dupSource
  - new
  - setSource
- Properties
  - source

Description

`GBindingGroup` can be used to bind multiple properties from an object collectively.

Use the various methods to bind properties from a single source object to multiple destination objects. Properties can be bound bidirectionally and are connected when the source object is set with `bindingGroupSetSource`.

Since: 2.72

Synopsis

- newtype BindingGroup = BindingGroup (ManagedPtr BindingGroup)
- class (GObject o, IsDescendantOf BindingGroup o) => IsBindingGroup o
- toBindingGroup :: (MonadIO m, IsBindingGroup o) => o -> m BindingGroup
- bindingGroupBind :: (HasCallStack, MonadIO m, IsBindingGroup a, IsObject b) => a -> Text -> b -> Text -> [BindingFlags] -> m ()
- bindingGroupBindFull :: (HasCallStack, MonadIO m, IsBindingGroup a, IsObject b) => a -> Text -> b -> Text -> [BindingFlags] -> Maybe (GClosure c) -> Maybe (GClosure d) -> m ()
- bindingGroupDupSource :: (HasCallStack, MonadIO m, IsBindingGroup a) => a -> m (Maybe Object)
- bindingGroupNew :: (HasCallStack, MonadIO m) => m BindingGroup
- bindingGroupSetSource :: (HasCallStack, MonadIO m, IsBindingGroup a, IsObject b) => a -> Maybe b -> m ()
- clearBindingGroupSource :: (MonadIO m, IsBindingGroup o) => o -> m ()
- constructBindingGroupSource :: (IsBindingGroup o, MonadIO m, IsObject a) => a -> m (GValueConstruct o)
- getBindingGroupSource :: (MonadIO m, IsBindingGroup o) => o -> m (Maybe Object)
- setBindingGroupSource :: (MonadIO m, IsBindingGroup o, IsObject a) => o -> a -> m ()

# Exported types

newtype BindingGroup Source #

Memory-managed wrapper type.

Constructors

BindingGroup (ManagedPtr BindingGroup) |

#### Instances

Instances details

Eq BindingGroup Source # |
Instance details Defined in GI.GObject.Objects.BindingGroup Methods (==) :: BindingGroup -> BindingGroup -> Bool Source # (/=) :: BindingGroup -> BindingGroup -> Bool Source #
GObject BindingGroup Source # |
Instance details Defined in GI.GObject.Objects.BindingGroup
ManagedPtrNewtype BindingGroup Source # |
Instance details Defined in GI.GObject.Objects.BindingGroup Methods toManagedPtr :: BindingGroup -> ManagedPtr BindingGroup Source #
TypedObject BindingGroup Source # |
Instance details Defined in GI.GObject.Objects.BindingGroup Methods glibType :: IO GType Source #
HasParentTypes BindingGroup Source # |
Instance details Defined in GI.GObject.Objects.BindingGroup
IsGValue (Maybe BindingGroup) Source # | Convert `BindingGroup` to and from `GValue`. See `toGValue` and `fromGValue`.
Instance details Defined in GI.GObject.Objects.BindingGroup Methods gvalueGType_ :: IO GType Source # gvalueSet_ :: Ptr GValue -> Maybe BindingGroup -> IO () Source # gvalueGet_ :: Ptr GValue -> IO (Maybe BindingGroup) Source #
type ParentTypes BindingGroup Source # |
Instance details Defined in GI.GObject.Objects.BindingGroup type ParentTypes BindingGroup = '[Object]

class (GObject o, IsDescendantOf BindingGroup o) => IsBindingGroup o Source #

Type class for types which can be safely cast to `BindingGroup`, for instance with `toBindingGroup`.

#### Instances

Instances details

(GObject o, IsDescendantOf BindingGroup o) => IsBindingGroup o Source # |
Instance details Defined in GI.GObject.Objects.BindingGroup

toBindingGroup :: (MonadIO m, IsBindingGroup o) => o -> m BindingGroup Source #

Cast to `BindingGroup`, for types for which this is known to be safe. For general casts, use `castTo`.

# Methods

### Click to display all available methods, including inherited ones

Expand

#### Methods

bind, bindFull, bindProperty, bindPropertyFull, dupSource, forceFloating, freezeNotify, getv, isFloating, notify, notifyByPspec, ref, refSink, runDispose, stealData, stealQdata, thawNotify, unref, watchClosure.

#### Getters

getData, getProperty, getQdata.

#### Setters

setData, setDataFull, setProperty, setSource.

## bind

bindingGroupBind Source #

Arguments

:: (HasCallStack, MonadIO m, IsBindingGroup a, IsObject b) |
=> a | `self`: the `BindingGroup`
-> Text | `sourceProperty`: the property on the source to bind
-> b | `target`: the target `Object`
-> Text | `targetProperty`: the property on `target` to bind
-> [BindingFlags] | `flags`: the flags used to create the `Binding`
-> m () |

Creates a binding between `sourceProperty` on the source object and `targetProperty` on `target`. Whenever the `sourceProperty` is changed the `targetProperty` is updated using the same value. The binding flag `BindingFlagsSyncCreate` is automatically specified.

See `objectBindProperty` for more information.

Since: 2.72

## bindFull

bindingGroupBindFull Source #

Arguments

:: (HasCallStack, MonadIO m, IsBindingGroup a, IsObject b) |
=> a | `self`: the `BindingGroup`
-> Text | `sourceProperty`: the property on the source to bind
-> b | `target`: the target `Object`
-> Text | `targetProperty`: the property on `target` to bind
-> [BindingFlags] | `flags`: the flags used to create the `Binding`
-> Maybe (GClosure c) | `transformTo`: a `Closure` wrapping the transformation function from the source object to the `target`, or `Nothing` to use the default
-> Maybe (GClosure d) | `transformFrom`: a `Closure` wrapping the transformation function from the `target` to the source object, or `Nothing` to use the default
-> m () |

Creates a binding between `sourceProperty` on the source object and `targetProperty` on `target`, allowing you to set the transformation functions to be used by the binding. The binding flag `BindingFlagsSyncCreate` is automatically specified.

This function is the language bindings friendly version of `g_binding_group_bind_property_full()`, using `GClosures` instead of function pointers.

See `objectBindPropertyFull` for more information.

Since: 2.72

## dupSource

bindingGroupDupSource Source #

Arguments

:: (HasCallStack, MonadIO m, IsBindingGroup a) |
=> a | `self`: the `BindingGroup`
-> m (Maybe Object) | Returns: a `Object` or `Nothing`.

Gets the source object used for binding properties.

Since: 2.72

## new

bindingGroupNew Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> m BindingGroup | Returns: a new `BindingGroup`

Creates a new `BindingGroup`.

Since: 2.72

## setSource

bindingGroupSetSource Source #

Arguments

:: (HasCallStack, MonadIO m, IsBindingGroup a, IsObject b) |
=> a | `self`: the `BindingGroup`
-> Maybe b | `source`: the source `Object`, or `Nothing` to clear it
-> m () |

Sets `source` as the source object used for creating property bindings. If there is already a source object all bindings from it will be removed.

Note that all properties that have been bound must exist on `source`.

Since: 2.72

# Properties

## source

The source object used for binding properties.

Since: 2.72

clearBindingGroupSource :: (MonadIO m, IsBindingGroup o) => o -> m () Source #

Set the value of the “`source`” property to `Nothing`. When overloading is enabled, this is equivalent to

    clear #source

constructBindingGroupSource :: (IsBindingGroup o, MonadIO m, IsObject a) => a -> m (GValueConstruct o) Source #

Construct a `GValueConstruct` with valid value for the “`source`” property. This is rarely needed directly, but it is used by `new`.

getBindingGroupSource :: (MonadIO m, IsBindingGroup o) => o -> m (Maybe Object) Source #

Get the value of the “`source`” property. When overloading is enabled, this is equivalent to

    get bindingGroup #source

setBindingGroupSource :: (MonadIO m, IsBindingGroup o, IsObject a) => o -> a -> m () Source #

Set the value of the “`source`” property. When overloading is enabled, this is equivalent to

    set bindingGroup [ #source := value ]