gi-ges-1.0.4: libges bindings
CopyrightWill Thompson and Iñaki García Etxebarria
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria
Safe HaskellSafe-Inferred
LanguageHaskell2010

GI.GES.Objects.Group

Description

A Group controls one or more Container-s (usually Clip-s, but it can also control other Group-s). Its children must share the same Timeline, but can otherwise lie in separate Layer-s and have different timings.

To initialise a group, you may want to use containerGroup, and similarly use containerUngroup to dispose of it.

A group will maintain the relative TimelineElement:start times of its children, as well as their relative layer Layer:priority. Therefore, if one of its children has its TimelineElement:start set, all other children will have their TimelineElement:start shifted by the same amount. Similarly, if one of its children moves to a new layer, the other children will also change layers to maintain the difference in their layer priorities. For example, if a child moves from a layer with Layer:priority 1 to a layer with priority 3, then another child that was in a layer with priority 0 will move to the layer with priority 2.

The Group:start of a group refers to the earliest start time of its children. If the group's Group:start is set, all the children will be shifted equally such that the earliest start time will match the set value. The Group:duration of a group is the difference between the earliest start time and latest end time of its children. If the group's Group:duration is increased, the children whose end time matches the end of the group will be extended accordingly. If it is decreased, then any child whose end time exceeds the new end time will also have their duration decreased accordingly.

A group may span several layers, but for methods such as timelineElementGetLayerPriority and timelineElementEdit a group is considered to have a layer priority that is the highest Layer:priority (numerically, the smallest) of all the layers it spans.

Synopsis

Exported types

newtype Group Source #

Memory-managed wrapper type.

Constructors

Group (ManagedPtr Group) 

Instances

Instances details
Eq Group Source # 
Instance details

Defined in GI.GES.Objects.Group

Methods

(==) :: Group -> Group -> Bool #

(/=) :: Group -> Group -> Bool #

GObject Group Source # 
Instance details

Defined in GI.GES.Objects.Group

ManagedPtrNewtype Group Source # 
Instance details

Defined in GI.GES.Objects.Group

Methods

toManagedPtr :: Group -> ManagedPtr Group

TypedObject Group Source # 
Instance details

Defined in GI.GES.Objects.Group

Methods

glibType :: IO GType

HasParentTypes Group Source # 
Instance details

Defined in GI.GES.Objects.Group

IsGValue (Maybe Group) Source #

Convert Group to and from GValue. See toGValue and fromGValue.

Instance details

Defined in GI.GES.Objects.Group

Methods

gvalueGType_ :: IO GType

gvalueSet_ :: Ptr GValue -> Maybe Group -> IO ()

gvalueGet_ :: Ptr GValue -> IO (Maybe Group)

type ParentTypes Group Source # 
Instance details

Defined in GI.GES.Objects.Group

type ParentTypes Group = '[Container, TimelineElement, Object, Extractable, MetaContainer]

class (GObject o, IsDescendantOf Group o) => IsGroup o Source #

Type class for types which can be safely cast to Group, for instance with toGroup.

Instances

Instances details
(GObject o, IsDescendantOf Group o) => IsGroup o Source # 
Instance details

Defined in GI.GES.Objects.Group

toGroup :: (MonadIO m, IsGroup o) => o -> m Group Source #

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

Methods

new

groupNew Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> m Group

Returns: The new empty group.

Created a new empty group. You may wish to use containerGroup instead, which can return a different Container subclass if possible.

Properties

duration

An overwrite of the TimelineElement:duration property. For a Group, this is the difference between the earliest TimelineElement:start time and the latest end time (given by TimelineElement:start + TimelineElement:duration) amongst its children.

constructGroupDuration :: (IsGroup o, MonadIO m) => Word64 -> m (GValueConstruct o) Source #

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

getGroupDuration :: (MonadIO m, IsGroup o) => o -> m Word64 Source #

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

get group #duration

setGroupDuration :: (MonadIO m, IsGroup o) => o -> Word64 -> m () Source #

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

set group [ #duration := value ]

inPoint

An overwrite of the TimelineElement:inPoint property. This has no meaning for a group and should not be set.

constructGroupInPoint :: (IsGroup o, MonadIO m) => Word64 -> m (GValueConstruct o) Source #

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

getGroupInPoint :: (MonadIO m, IsGroup o) => o -> m Word64 Source #

Get the value of the “in-point” property. When overloading is enabled, this is equivalent to

get group #inPoint

setGroupInPoint :: (MonadIO m, IsGroup o) => o -> Word64 -> m () Source #

Set the value of the “in-point” property. When overloading is enabled, this is equivalent to

set group [ #inPoint := value ]

maxDuration

An overwrite of the TimelineElement:maxDuration property. This has no meaning for a group and should not be set.

constructGroupMaxDuration :: (IsGroup o, MonadIO m) => Word64 -> m (GValueConstruct o) Source #

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

getGroupMaxDuration :: (MonadIO m, IsGroup o) => o -> m Word64 Source #

Get the value of the “max-duration” property. When overloading is enabled, this is equivalent to

get group #maxDuration

setGroupMaxDuration :: (MonadIO m, IsGroup o) => o -> Word64 -> m () Source #

Set the value of the “max-duration” property. When overloading is enabled, this is equivalent to

set group [ #maxDuration := value ]

priority

An overwrite of the TimelineElement:priority property. Setting TimelineElement priorities is deprecated as all priority management is now done by GES itself.

constructGroupPriority :: (IsGroup o, MonadIO m) => Word32 -> m (GValueConstruct o) Source #

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

getGroupPriority :: (MonadIO m, IsGroup o) => o -> m Word32 Source #

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

get group #priority

setGroupPriority :: (MonadIO m, IsGroup o) => o -> Word32 -> m () Source #

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

set group [ #priority := value ]

start

An overwrite of the TimelineElement:start property. For a Group, this is the earliest TimelineElement:start time amongst its children.

constructGroupStart :: (IsGroup o, MonadIO m) => Word64 -> m (GValueConstruct o) Source #

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

getGroupStart :: (MonadIO m, IsGroup o) => o -> m Word64 Source #

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

get group #start

setGroupStart :: (MonadIO m, IsGroup o) => o -> Word64 -> m () Source #

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

set group [ #start := value ]