TimeNodeGroup

Enum TimeNodeGroup 

Source
pub enum TimeNodeGroup {
Show 13 variants Parallel(Box<TLCommonTimeNodeData>), Sequence(Box<TLTimeNodeSequence>), Exclusive(Box<TLCommonTimeNodeData>), Animate(Box<TLAnimateBehavior>), AnimateColor(Box<TLAnimateColorBehavior>), AnimateEffect(Box<TLAnimateEffectBehavior>), AnimateMotion(Box<TLAnimateMotionBehavior>), AnimateRotation(Box<TLAnimateRotationBehavior>), AnimateScale(Box<TLAnimateScaleBehavior>), Command(Box<TLCommandBehavior>), Set(Box<TLSetBehavior>), Audio(Box<TLMediaNodeAudio>), Video(Box<TLMediaNodeVideo>),
}

Variants§

§

Parallel(Box<TLCommonTimeNodeData>)

This element describes the Parallel time node which can be activated along with other parallel time node containers.

§Xml example

<p:timing>
  <p:tnLst>
    <p:par>
      <p:cTn id="1" dur="indefinite" restart="never" nodeType="tmRoot">
        <p:childTnLst>
          <p:seq concurrent="1" nextAc="seek">
            …
          </p:seq>
        </p:childTnLst>
      </p:cTn>
    </p:par>
  </p:tnLst>
</p:timing>
§

Sequence(Box<TLTimeNodeSequence>)

This element describes the Sequence time node and it can only be activated when the one before it finishes.

§Xml example

For example, suppose we have a simple animation with a blind entrance.

<p:timing>
  <p:tnLst>
    <p:par>
      <p:cTn id="1" dur="indefinite" restart="never" nodeType="tmRoot">
        <p:childTnLst>
          <p:seq concurrent="1" nextAc="seek">
          …
          </p:seq>
        </p:childTnLst>
      </p:cTn>
    </p:par>
  </p:tnLst>
</p:timing>
§

Exclusive(Box<TLCommonTimeNodeData>)

This element describes the Exclusive time node. This time node is used to pause all other timelines when it is activated.

§

Animate(Box<TLAnimateBehavior>)

This element is a generic animation element that requires little or no semantic understanding of the attribute being animated. It can animate text within a shape or even the shape itself.

§Xml example

Consider trying to emphasize text within a shape by changing the size of its font by 150%. The element should be used as follows:

<p:anim to="1.5" calcmode="lin" valueType="num">
  <p:cBhvr override="childStyle">
    <p:cTn id="1" dur="2000" fill="hold"/>
    <p:tgtEl>
      <p:spTgt spid="1">
        <p:txEl>
          <p:charRg st="1" end="4"/>
        </p:txEl>
      </p:spTgt>
    </p:tgtEl>
    <p:attrNameLst>
      <p:attrName>style.fontSize</p:attrName>
    </p:attrNameLst>
  </p:cBhvr>
</p:anim>
§

AnimateColor(Box<TLAnimateColorBehavior>)

This animation element is responsible for animating the color of an object.

§Xml example

Consider trying to emphasize a shape by changing its fill color to scheme color accent2. The element should be used as follows:

<p:animClr clrSpc="rgb">
  <p:cBhvr>
    <p:cTn id="1" dur="2000" fill="hold"/>
    <p:tgtEl>
      <p:spTgt spid="1"/>
    </p:tgtEl>
    <p:attrNameLst>
      <p:attrName>fillcolor</p:attrName>
    </p:attrNameLst>
  </p:cBhvr>
  <p:to>
    <a:schemeClr val="accent2"/>
  </p:to>
</p:animClr>
§

AnimateEffect(Box<TLAnimateEffectBehavior>)

This animation behavior provides the ability to do image transform/filter effects on elements. Some visual effects are dynamic in nature and have a progress that animates from 0 to 1 over a period of time to do visual transitions between hidden and visible states. Other filters are static and apply a effects like a blur or drop- shadow which aren’t inherently time-based.

§Xml example

Consider trying to emphasize a shape by creating an entrance animation using a “blinds” motion.

<p:animEffect transition="in" filter="blinds(horizontal)">
  <p:cBhvr>
    <p:cTn id="7" dur="500"/>
    <p:tgtEl>
      <p:spTgt spid="4"/>
    </p:tgtEl>
  </p:cBhvr>
</p:animEffect>
§

AnimateMotion(Box<TLAnimateMotionBehavior>)

Animate motion provides an abstracted way to move positioned elements. It provides the ability to specify from/to/by motion as well as to use more detailed path descriptions for motion over polylines or bezier curves.

§Xml example

Consider animating a shape from its original position to the right.. The element should be used as follows:

<p:animMotion origin="layout" path="M 0 0 L 0.25 0 E" pathEditMode="relative">
  <p:cBhvr>
    <p:cTn id="1" dur="2000" fill="hold"/>
    <p:tgtEl>
      <p:spTgt spid="1"/>
    </p:tgtEl>
    <p:attrNameLst>
      <p:attrName>ppt_x</p:attrName>
      <p:attrName>ppt_y</p:attrName>
    </p:attrNameLst>
  </p:cBhvr>
</p:animMotion>
§

AnimateRotation(Box<TLAnimateRotationBehavior>)

This animation element is responsible for animating the rotation of an object. Rotation values set in the “by”, “to, and “from” attributes are specified in degrees measured to a 60,000th, i.e 1 degree is 60,000. Rotation values can be larger than 360°.

The sign of the rotation angle specifies the direction for rotation. A negative rotation specifies that the rotation should appear in the host to go counter-clockwise“.

§Xml example

Consider trying to emphasize a shape by rotating it 360 degrees clockwise. The element should be used as follows:

<p:animRot by="21600000">
  <p:cBhvr>
    <p:cTn id="6" dur="2000" fill="hold"/>
    <p:tgtEl>
      <p:spTgt spid="5"/>
    </p:tgtEl>
    <p:attrNameLst>
      <p:attrName>r</p:attrName>
    </p:attrNameLst>
  </p:cBhvr>
</p:animRot>
§

AnimateScale(Box<TLAnimateScaleBehavior>)

This animation element is responsible for animating the scale of an object. When animating the scale, the element shall scale around the reference point of the element and the positioning system used should be consistent with the one used for motion paths. When animating the width and height of an element, all of the width/height animation values are calculated first then the scale animations are applied on top of that. So for example, an animation from 0 to 100 of the width with a concurrent scale from 100% to 200% would result in the element appearing to scale from 0 to 200.

§Xml example

Consider trying to emphasize a shape by scaling it larger by 150%. The element should be used as follows:

<p:childTnLst>
  <p:animScale>
    <p:cBhvr>
      <p:cTn id="6" dur="2000" fill="hold"/>
      <p:tgtEl>
        <p:spTgt spid="5"/>
      </p:tgtEl>
    </p:cBhvr>
    <p:by x="150000" y="150000"/>
  </p:animScale>
</p:childTnLst>
§

Command(Box<TLCommandBehavior>)

This element describes the several non-durational commands that can be executed within a timeline. This can be used to send events, call functions on elements, and send verbs to embedded objects. For example “Object Action” effects for Embedded objects and Media commands for sounds/movies such as “PlayFrom(0.0)” and “togglePause”.

§

Set(Box<TLSetBehavior>)

This element allows the setting of a particular property value to a fixed value while the behavior is active and restores the value when the behavior is reset or turned off.

§Xml example

For example, suppose we want to set certain properties during an animation effect. The element should be used as follows:

<p:childTnLst>
  <p:set>
    <p:cBhvr>
      <p:cTn id="6" dur="1" fill="hold"> … </p:cTn>
      <p:tgtEl>
        <p:spTgt spid="4"/>
      </p:tgtEl>
      <p:attrNameLst>
        <p:attrName>style.visibility</p:attrName>
      </p:attrNameLst>
    </p:cBhvr>
    <p:to>
      <p:strVal val="visible"/>
    </p:to>
  </p:set>
  <p:animEffect transition="in" filter="blinds(horizontal)">
    …
  </p:animEffect>
</p:childTnLst>
§

Audio(Box<TLMediaNodeAudio>)

This element is used to include audio during an animation. This element specifies that this node within the animation tree triggers the playback of an audio file; the actual audio file used is specified by the sndTgt element (§19.5.70).

§Xml example

Consider adding applause sound to an animation sequence. The audio element is used as follows:

<p:cTn ...>
  <p:stCondLst>...</p:stCondLst>
  <p:childTnLst>...</p:childTnLst>
  <p:subTnLst>
    <p:audio>
      <p:cMediaNode vol="50%">...
        <p:tgtEl>
          <p:sndTgt r:embed="rId2" />
        </p:tgtEl>
      </p:cMediaNode>
    </p:audio>
  </p:subTnLst>
</p:cTn>

The audio element specifies the location of the audio playback within the animation; its child sndTgt element specifies that the audio to be played is the target of the relationship with ID rId2.

§

Video(Box<TLMediaNodeVideo>)

This element specifies video information in an animation sequence. This element specifies that this node within the animation tree triggers the playback of a video file; the actual video file used is specified by the videoFile element

§Xml example

Consider a slide with an animated video content. The

<p:cSld>
  <p:spTree>
    <p:pic>
      <p:nvPicPr>
      <p:cNvPr id="4"/>
      …
      <p:nvPr>
        <a:videoFile r:link="rId1" contentType="video/ogg"/>
      </p:nvPr>
    </p:nvPicPr>
    …
    </p:pic>
  </p:spTree>
</p:cSld>
…
<p:childTnLst>
  <p:seq concurrent="1" nextAc="seek">
    …
  </p:seq>
  <p:video>
    <p:cMediaNode>
      …
      <p:tgtEl>
        <p:spTgt spid="4"/>
      </p:tgtEl>
    </p:cMediaNode>
  </p:video>
</p:childTnLst>

The video element specifies the location of the video playback within the animation sequence; its child spTgt element specifies that the shape which contains the video to be played has a shape ID of 4. If we look at the shape with that ID value, its child videoFile element references an external video file of content type video/ogg located at the target of the relationship with ID rId1

Implementations§

Source§

impl TimeNodeGroup

Source

pub fn is_choice_member<T>(name: T) -> bool
where T: AsRef<str>,

Source

pub fn from_xml_element(xml_node: &XmlNode) -> Result<Self, Box<dyn Error>>

Trait Implementations§

Source§

impl Clone for TimeNodeGroup

Source§

fn clone(&self) -> TimeNodeGroup

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TimeNodeGroup

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.