mirror of
https://github.com/brl/mutter.git
synced 2024-12-28 05:42:14 +00:00
docs: Break down the constraints example
This commit is contained in:
parent
3777e0b382
commit
a32f781144
@ -55,6 +55,37 @@
|
|||||||
* <para>The example below uses various #ClutterConstraint<!-- -->s to
|
* <para>The example below uses various #ClutterConstraint<!-- -->s to
|
||||||
* lay out three actors on a resizable stage. Only the central actor has
|
* lay out three actors on a resizable stage. Only the central actor has
|
||||||
* an explicit size, and no actor has an explicit position.</para>
|
* an explicit size, and no actor has an explicit position.</para>
|
||||||
|
* <orderedlist>
|
||||||
|
* <listitem><simpara>The #ClutterRectangle with #ClutterActor:name
|
||||||
|
* <emphasis>layerA</emphasis> is explicitly sized to 100 pixels by 25
|
||||||
|
* pixels, and it's added to the #ClutterStage;</simpara></listitem>
|
||||||
|
* <listitem><simpara>two #ClutterAlignConstraint<!-- -->s are used
|
||||||
|
* to anchor <emphasis>layerA</emphasis> to the center of the stage,
|
||||||
|
* by using 0.5 as the alignment #ClutterAlignConstraint:factor on
|
||||||
|
* both the X and Y axis.</simpara></listitem>
|
||||||
|
* <listitem><simpara>the #ClutterRectangle with #ClutterActor:name
|
||||||
|
* <emphasis>layerB</emphasis> is added to the #ClutterStage with
|
||||||
|
* no explicit size;</simpara></listitem>
|
||||||
|
* <listitem><simpara>the #ClutterActor:x and #ClutterActor:width
|
||||||
|
* of <emphasis>layerB</emphasis> are bound to the same properties
|
||||||
|
* of <emphasis>layerA</emphasis> using two #ClutterBindConstraint
|
||||||
|
* objects, thus keeping <emphasis>layerB</emphasis> aligned to
|
||||||
|
* <emphasis>layerA</emphasis>;</simpara></listitem>
|
||||||
|
* <listitem><simpara>the top edge of <emphasis>layerB</emphasis> is
|
||||||
|
* snapped together with the bottom edge of <emphasis>layerA</emphasis>;
|
||||||
|
* the bottom edge of <emphasis>layerB</emphasis> is also snapped
|
||||||
|
* together with the bottom edge of the #ClutterStage; an offset is
|
||||||
|
* given to the two #ClutterSnapConstraint<!-- -->s to allow for some
|
||||||
|
* padding; since <emphasis>layerB</emphasis> is snapped between two
|
||||||
|
* different #ClutterActor<!-- -->s, its height is stretched to match
|
||||||
|
* the gap;</simpara></listitem>
|
||||||
|
* <listitem><simpara>the #ClutterRectangle with #ClutterActor:name
|
||||||
|
* <emphasis>layerC</emphasis> mirrors <emphasis>layerB</emphasis>,
|
||||||
|
* snapping the top edge of the #ClutterStage to the top edge of
|
||||||
|
* <emphasis>layerC</emphasis> and the top edge of
|
||||||
|
* <emphasis>layerA</emphasis> to the bottom edge of
|
||||||
|
* <emphasis>layerC</emphasis>;/simpara></listitem>
|
||||||
|
* </orderedlist>
|
||||||
* <programlisting>
|
* <programlisting>
|
||||||
* <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../../../tests/interactive/test-snap-constraint.c" parse="text"><xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback></xi:include>
|
* <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../../../tests/interactive/test-snap-constraint.c" parse="text"><xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback></xi:include>
|
||||||
* </programlisting>
|
* </programlisting>
|
||||||
@ -62,6 +93,9 @@
|
|||||||
* <title>Constraints</title>
|
* <title>Constraints</title>
|
||||||
* <graphic fileref="constraints-example.png" format="PNG"/>
|
* <graphic fileref="constraints-example.png" format="PNG"/>
|
||||||
* </figure>
|
* </figure>
|
||||||
|
* <para>You can try resizing interactively the #ClutterStage and verify
|
||||||
|
* that the three #ClutterActor<!-- -->s maintain the same position and
|
||||||
|
* size relative to each other, and to the #CLutterStage.</para>
|
||||||
* </example>
|
* </example>
|
||||||
* <warning><para>It's important to note that Clutter does not avoid loops
|
* <warning><para>It's important to note that Clutter does not avoid loops
|
||||||
* or competing constraints; if two or more #ClutterConstraint<!-- -->s
|
* or competing constraints; if two or more #ClutterConstraint<!-- -->s
|
||||||
|
Loading…
Reference in New Issue
Block a user