Copyright | Will Thompson and Iñaki García Etxebarria |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
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
- newtype Group = Group (ManagedPtr Group)
- class (GObject o, IsDescendantOf Group o) => IsGroup o
- toGroup :: (MonadIO m, IsGroup o) => o -> m Group
- groupNew :: (HasCallStack, MonadIO m) => m Group
- constructGroupDuration :: (IsGroup o, MonadIO m) => Word64 -> m (GValueConstruct o)
- getGroupDuration :: (MonadIO m, IsGroup o) => o -> m Word64
- setGroupDuration :: (MonadIO m, IsGroup o) => o -> Word64 -> m ()
- constructGroupInPoint :: (IsGroup o, MonadIO m) => Word64 -> m (GValueConstruct o)
- getGroupInPoint :: (MonadIO m, IsGroup o) => o -> m Word64
- setGroupInPoint :: (MonadIO m, IsGroup o) => o -> Word64 -> m ()
- constructGroupMaxDuration :: (IsGroup o, MonadIO m) => Word64 -> m (GValueConstruct o)
- getGroupMaxDuration :: (MonadIO m, IsGroup o) => o -> m Word64
- setGroupMaxDuration :: (MonadIO m, IsGroup o) => o -> Word64 -> m ()
- constructGroupPriority :: (IsGroup o, MonadIO m) => Word32 -> m (GValueConstruct o)
- getGroupPriority :: (MonadIO m, IsGroup o) => o -> m Word32
- setGroupPriority :: (MonadIO m, IsGroup o) => o -> Word32 -> m ()
- constructGroupStart :: (IsGroup o, MonadIO m) => Word64 -> m (GValueConstruct o)
- getGroupStart :: (MonadIO m, IsGroup o) => o -> m Word64
- setGroupStart :: (MonadIO m, IsGroup o) => o -> Word64 -> m ()
Exported types
Memory-managed wrapper type.
Instances
Eq Group Source # | |
GObject Group Source # | |
Defined in GI.GES.Objects.Group | |
ManagedPtrNewtype Group Source # | |
Defined in GI.GES.Objects.Group toManagedPtr :: Group -> ManagedPtr Group | |
TypedObject Group Source # | |
Defined in GI.GES.Objects.Group | |
HasParentTypes Group Source # | |
Defined in GI.GES.Objects.Group | |
IsGValue (Maybe Group) Source # | Convert |
Defined in GI.GES.Objects.Group gvalueGType_ :: IO GType gvalueSet_ :: Ptr GValue -> Maybe Group -> IO () gvalueGet_ :: Ptr GValue -> IO (Maybe Group) | |
type ParentTypes Group Source # | |
Defined in GI.GES.Objects.Group |
class (GObject o, IsDescendantOf Group o) => IsGroup o Source #
Instances
(GObject o, IsDescendantOf Group o) => IsGroup o Source # | |
Defined in GI.GES.Objects.Group |
Methods
Click to display all available methods, including inherited ones
Methods
add, addChildProperty, addMetasFromString, bindProperty, bindPropertyFull, checkMetaRegistered, copy, edit, editFull, forceFloating, foreach, freezeNotify, getv, isFloating, listChildrenProperties, lookupChild, metasToString, notify, notifyByPspec, paste, ref, refSink, registerMeta, registerMetaBoolean, registerMetaDate, registerMetaDateTime, registerMetaDouble, registerMetaFloat, registerMetaInt, registerMetaInt64, registerMetaString, registerMetaUint, registerMetaUint64, registerStaticMeta, remove, removeChildProperty, ripple, rippleEnd, rollEnd, rollStart, runDispose, stealData, stealQdata, thawNotify, trim, ungroup, unref, watchClosure.
Getters
getAsset, getBoolean, getChildProperty, getChildPropertyByPspec, getChildren, getData, getDate, getDateTime, getDouble, getDuration, getFloat, getId, getInpoint, getInt, getInt64, getLayerPriority, getMarkerList, getMaxDuration, getMeta, getName, getNaturalFramerate, getParent, getPriority, getProperty, getQdata, getStart, getString, getTimeline, getToplevelParent, getTrackTypes, getUint, getUint64.
Setters
setAsset, setBoolean, setChildProperty, setChildPropertyByPspec, setChildPropertyFull, setData, setDataFull, setDate, setDateTime, setDouble, setDuration, setFloat, setInpoint, setInt, setInt64, setMarkerList, setMaxDuration, setMeta, setName, setParent, setPriority, setProperty, setStart, setString, setTimeline, setUint, setUint64.
new
:: (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 ]