diff options
author | marha <marha@users.sourceforge.net> | 2011-03-25 15:37:13 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-03-25 15:37:13 +0000 |
commit | 41a502478a2972358dec934d82ee401c61a5cd36 (patch) | |
tree | 3fda8100e6da9b4a2863789e393016a750502067 /libXaw/specs/Paned.xml | |
parent | 81aeaf653a832c4054d9a40b1cc796911521a739 (diff) | |
parent | 272e57235cd60a2e65ac8258d96a02eb3939b687 (diff) | |
download | vcxsrv-41a502478a2972358dec934d82ee401c61a5cd36.tar.gz vcxsrv-41a502478a2972358dec934d82ee401c61a5cd36.tar.bz2 vcxsrv-41a502478a2972358dec934d82ee401c61a5cd36.zip |
svn merge ^/branches/released .
Diffstat (limited to 'libXaw/specs/Paned.xml')
-rw-r--r-- | libXaw/specs/Paned.xml | 1213 |
1 files changed, 1213 insertions, 0 deletions
diff --git a/libXaw/specs/Paned.xml b/libXaw/specs/Paned.xml new file mode 100644 index 000000000..90c3809cc --- /dev/null +++ b/libXaw/specs/Paned.xml @@ -0,0 +1,1213 @@ +<sect1 id="Paned_Widget"> +<title>Paned Widget</title> +<para> +<!-- .LP --> +<!-- .XS --> +<!-- Paned Widget --> +<!-- .XE --> +<!-- .IN "Paned widget" "" "@DEF@" --> +<literallayout class="monospaced"> +<!-- .TA 2.0i --> +<!-- .ta 2.0i --> +<!-- .sp --> +Application Header file <X11/Xaw/Paned.h> +<!-- .IN "Paned.h" "" --> +Class Header file <X11/Xaw/PanedP.h> +<!-- .IN "PanedP.h" "" --> +Class panedWidgetClass +<!-- .IN "panedWidgetClass" "" --> +Class Name Paned +<!-- .IN "Paned widget" "class name" --> +Superclass Constraint +<!-- .sp --> +</literallayout> +</para> +<para> +<!-- .LP --> +The Paned widget manages children in a vertically or horizontally +tiled fashion. The panes may be dynamically resized by the user by +using the <emphasis remap='I'>grips</emphasis> that appear near the right or bottom edge of the +border between two panes. +</para> +<para> +<!-- .LP --> +The Paned widget may accept any widget class as a pane <function>except</function> +Grip. Grip widgets have a special meaning for the Paned widget, and +adding a Grip as its own pane will confuse the Paned widget. +</para> +<sect2 id="Using_the_Paned_Widget"> +<title>Using the Paned Widget</title> +<!-- .IN "Paned widget" "using" --> +<para> +<!-- .LP --> +The grips allow the panes to be resized by the user. The semantics of +how these panes resize is somewhat complicated, and warrants further +explanation here. When the mouse pointer is positioned on a grip and +pressed, an arrow is displayed that indicates the pane that is to be to +be resized. While keeping the mouse button down, the user can move the +grip up and down (or left and right). This, in turn, changes the size +of the pane. The size of the Paned widget will not change. Instead, +it chooses another pane (or panes) to resize. For more details on which +pane it chooses to resize, see <function>Layout Semantics</function>. +</para> +<para> +<!-- .LP --> +One pointer binding allows the border between two panes to be moved, +without affecting any of the other panes. When this occurs the pointer +will change to an arrow that points along the pane border. +</para> +<para> +<!-- .LP --> +The default bindings for the Paned widget's grips are: +<informaltable> + <tgroup cols='3' align='center'> + <colspec colname='c1'/> + <colspec colname='c2'/> + <colspec colname='c3'/> + <thead> + <row> + <entry>Mouse button</entry> + <entry>Pane to Resize - Vertical</entry> + <entry>Pane to Resize - Horizontal</entry> + </row> + </thead> + <tbody> + <row> + <entry>1 (left)</entry> + <entry>above the grip</entry> + <entry>left of the grip</entry> + </row> + <row> + <entry>2 (middle)</entry> + <entry>adjust border</entry> + <entry>adjust border</entry> + </row> + <row> + <entry>3 (right)</entry> + <entry>below the grip</entry> + <entry>right of the grip</entry> + </row> + <row> + <entry>_</entry> + </row> + </tbody> + </tgroup> +</informaltable> +</para> +</sect2> +<sect2 id="paned_resources"> +<title>Resources</title> +<para> +<!-- .LP --> +When creating a Paned widget instance, the following resources are +retrieved from the argument list or the resource database: +</para> +<para> +<!-- .LP --> +<!-- .IN "Paned widget" "resources" --> +<informaltable> + <tgroup cols='5' align='center'> + <colspec colname='c1'/> + <colspec colname='c2'/> + <colspec colname='c3'/> + <colspec colname='c4'/> + <colspec colname='c5'/> + <thead> + <row> + <entry>Name</entry> + <entry>Class</entry> + <entry>Type</entry> + <entry>Notes</entry> + <entry>Default Value</entry> + </row> + </thead> + <tbody> + <row> + <entry>accelerators</entry> + <entry>Accelerators</entry> + <entry>AcceleratorTable</entry> + <entry></entry> + <entry>NULL</entry> + </row> + <row> + <entry>ancestorSensitive</entry> + <entry>AncestorSensitive</entry> + <entry>Boolean</entry> + <entry>D</entry> + <entry>True</entry> + </row> + <row> + <entry>background</entry> + <entry>Background</entry> + <entry>Pixel</entry> + <entry></entry> + <entry>XtDefaultBackground</entry> + </row> + <row> + <entry>backgroundPixmap</entry> + <entry>Pixmap</entry> + <entry>Pixmap</entry> + <entry></entry> + <entry>XtUnspecifiedPixmap</entry> + </row> + <row> + <entry>betweenCursor</entry> + <entry>Cursor</entry> + <entry>Cursor</entry> + <entry>A</entry> + <entry>Depends on orientation</entry> + </row> + <row> + <entry>borderColor</entry> + <entry>BorderColor</entry> + <entry>Pixel</entry> + <entry></entry> + <entry>XtDefaultForeground</entry> + </row> + <row> + <entry>borderPixmap</entry> + <entry>Pixmap</entry> + <entry>Pixmap</entry> + <entry></entry> + <entry>XtUnspecifiedPixmap</entry> + </row> + <row> + <entry>borderWidth</entry> + <entry>BorderWidth</entry> + <entry>Dimension</entry> + <entry></entry> + <entry>1</entry> + </row> + <row> + <entry>children</entry> + <entry>ReadOnly</entry> + <entry>WidgetList</entry> + <entry>R</entry> + <entry>NULL</entry> + </row> + <row> + <entry>colormap</entry> + <entry>Colormap</entry> + <entry>Colormap</entry> + <entry></entry> + <entry>Parent's Colormap</entry> + </row> + <row> + <entry>cursor</entry> + <entry>Cursor</entry> + <entry>Cursor</entry> + <entry></entry> + <entry>None</entry> + </row> + <row> + <entry>depth</entry> + <entry>Depth</entry> + <entry>int</entry> + <entry>C</entry> + <entry>Parent's Depth</entry> + </row> + <row> + <entry>destroyCallback</entry> + <entry>Callback</entry> + <entry>XtCallbackList</entry> + <entry></entry> + <entry>NULL</entry> + </row> + <row> + <entry>gripCursor</entry> + <entry>Cursor</entry> + <entry>Cursor</entry> + <entry>A</entry> + <entry>Depends on orientation</entry> + </row> + <row> + <entry>gripIndent</entry> + <entry>GripIndent</entry> + <entry>Position</entry> + <entry></entry> + <entry>10</entry> + </row> + <row> + <entry>gripTranslations</entry> + <entry>Translations</entry> + <entry>TranslationTable</entry> + <entry></entry> + <entry>see below</entry> + </row> + <row> + <entry>height</entry> + <entry>Height</entry> + <entry>Dimension</entry> + <entry>A</entry> + <entry>Depends on orientation</entry> + </row> + <row> + <entry>horizontalBetweenCursor</entry> + <entry>Cursor</entry> + <entry>Cursor</entry> + <entry></entry> + <entry>sb_up_arrow</entry> + </row> + <row> + <entry>horizontalGripCursor</entry> + <entry>Cursor</entry> + <entry>Cursor</entry> + <entry></entry> + <entry>sb_h_double_arrow</entry> + </row> + <row> + <entry>internalBorderColor</entry> + <entry>BorderColor</entry> + <entry>Pixel</entry> + <entry></entry> + <entry>XtDefaultForeground</entry> + </row> + <row> + <entry>internalBorderWidth</entry> + <entry>BorderWidth</entry> + <entry>Dimension</entry> + <entry></entry> + <entry>1</entry> + </row> + <row> + <entry>leftCursor</entry> + <entry>Cursor</entry> + <entry>Cursor</entry> + <entry></entry> + <entry>sb_left_arrow</entry> + </row> + <row> + <entry>lowerCursor</entry> + <entry>Cursor</entry> + <entry>Cursor</entry> + <entry></entry> + <entry>sb_down_arrow</entry> + </row> + <row> + <entry>mappedWhenManaged</entry> + <entry>MappedWhenManaged</entry> + <entry>Boolean</entry> + <entry></entry> + <entry>True</entry> + </row> + <row> + <entry>numChildren</entry> + <entry>ReadOnly</entry> + <entry>Cardinal</entry> + <entry>R</entry> + <entry>0</entry> + </row> + <row> + <entry>orientation</entry> + <entry>Orientation</entry> + <entry>Orientation</entry> + <entry></entry> + <entry>XtorientVertical</entry> + </row> + <row> + <entry>refigureMode</entry> + <entry>Boolean</entry> + <entry>Boolean</entry> + <entry></entry> + <entry>True</entry> + </row> + <row> + <entry>rightCursor</entry> + <entry>Cursor</entry> + <entry>Cursor</entry> + <entry></entry> + <entry>sb_right_arrow</entry> + </row> + <row> + <entry>screen</entry> + <entry>Screen</entry> + <entry>Screen</entry> + <entry>R</entry> + <entry>Parent's Screen</entry> + </row> + <row> + <entry>sensitive</entry> + <entry>Sensitive</entry> + <entry>Boolean</entry> + <entry></entry> + <entry>True</entry> + </row> + <row> + <entry>translations</entry> + <entry>Translations</entry> + <entry>TranslationTable</entry> + <entry></entry> + <entry>NULL</entry> + </row> + <row> + <entry>upperCursor</entry> + <entry>Cursor</entry> + <entry>Cursor</entry> + <entry></entry> + <entry>sb_up_arrow</entry> + </row> + <row> + <entry>verticalBetweenCursor</entry> + <entry>Cursor</entry> + <entry>Cursor</entry> + <entry></entry> + <entry>sb_left_arrow</entry> + </row> + <row> + <entry>verticalGripCursor</entry> + <entry>Cursor</entry> + <entry>Cursor</entry> + <entry></entry> + <entry>sb_v_double_arrow</entry> + </row> + <row> + <entry>width</entry> + <entry>Width</entry> + <entry>Dimension</entry> + <entry>A</entry> + <entry>Depends on orientation</entry> + </row> + <row> + <entry>x</entry> + <entry>Paned</entry> + <entry>Position</entry> + <entry></entry> + <entry>0</entry> + </row> + <row> + <entry>y</entry> + <entry>Paned</entry> + <entry>Position</entry> + <entry></entry> + <entry>0</entry> + </row> + <row> + <entry>_</entry> + </row> + </tbody> + </tgroup> +</informaltable> +<!-- .Ac --> +<!-- .As --> +<!-- .Bg --> +<!-- .Gp --> +<!-- .Bc --> +<!-- .Bp --> +<!-- .Bw --> +<!-- .Ch --> +<!-- .Cm --> +<variablelist> + <varlistentry> + <term> + <function>cursor</function> + </term> + <listitem> + <para> +The cursor to use when the mouse pointer is over the Paned widget, but +not in any of its children (children may also inherit this cursor). It +should be noted that the internal borders are actually part of the Paned +widget, not the children. +<!-- .Dp --> +<!-- .Dc --> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>gripCursor</function> + </term> + <listitem> + <para> +The cursor to use when the grips are not active. The default value is +<function>verticalGripCursor</function> or <function>horizontalGripCursor</function> depending on +the orientation of the Paned widget. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>gripIndent</function> + </term> + <listitem> + <para> +The amount of space left between the right (or bottom) edge of the +Paned widget and all the grips. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>gripTranslation</function> + </term> + <listitem> + <para> +Translation table that will be applied to all grips. +<!-- .Hw --> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>horizontalBetweenCursor</function> + </term> + <listitem> + <para> +<!-- .br --> +<!-- .ns --> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>verticalBetweenCursor</function> + </term> + <listitem> + <para> +The cursor to be used for the grip when changing the boundary between +two panes. These resources allow the cursors to be different +depending on the orientation of the Paned widget. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>horizontalGripCursor</function> + </term> + <listitem> + <para> +<!-- .br --> +<!-- .ns --> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>verticalGripCursor</function> + </term> + <listitem> + <para> +The cursor to be used for the grips when they are not active. These +resources allow the cursors to be different depending on the +orientation of the Paned widget. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>internalBorderColor</function> + </term> + <listitem> + <para> +A pixel value which indexes the widget's colormap to derive the internal +border color of the widget's window. The class name of this resource +allows <emphasis remap='I'>Paned*BorderColor: blue</emphasis> to set the internal border color +for the Paned widget. An optimization is invoked if +<function>internalBorderColor</function> and <function>background</function> are the same, and the +internal borders are not drawn. <function>internalBorderWidth</function> is still left +between the panes, however. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>internalBorderWidth</function> + </term> + <listitem> + <para> +The width of the internal borders. This is the amount of space left +between the panes. The class name of this resource allows +<emphasis remap='I'>Paned*BorderWidth: 3</emphasis> to set the internal border width for the +Paned widget. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>leftCursor</function> + </term> + <listitem> + <para> +<!-- .br --> +<!-- .ns --> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>rightCursor</function> + </term> + <listitem> + <para> +The cursor used to indicate which is the <emphasis remap='I'>important</emphasis> pane to resize +when the Paned widget is oriented horizontally. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>lowerCursor</function> + </term> + <listitem> + <para> +<!-- .br --> +<!-- .ns --> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>upperCursor</function> + </term> + <listitem> + <para> +The cursor used to indicate which is the <emphasis remap='I'>important</emphasis> pane to resize +when the Paned widget is oriented vertically. +<!-- .Mm --> +<!-- .Nc --> +This is not the same as the number of panes, since this also contains a +grip for some of the panes, use <function>XawPanedGetNumSub</function> to retrieve the +number of panes. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>orientation</function> + </term> + <listitem> + <para> +The orientation to stack the panes. This value can be either +<function>XtorientVertical</function> or <function>XtorientHorizontal</function>. +<!-- .IN "XtorientVertical" "" --> +<!-- .IN "XtorientHorizontal" "" --> +<!-- .IN "conversions" "Orientation" --> +<!-- .Rs "vertical \fPand\fB horizontal" --> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>refigureMode</function> + </term> + <listitem> + <para> +This resource allows pane layout to be suspended. If this value is +<function>False</function>, then no layout actions will be taken. This may improve +efficiency when adding or removing more than one pane from the Paned +widget. +<!-- .Sc --> +<!-- .Se --> +<!-- .Tr --> +<!-- .Xy --> + </para> + </listitem> + </varlistentry> +</variablelist> +</para> +</sect2> +<sect2 id="paned_constraint_resources"> +<title>Constraint Resources</title> +<para> +<!-- .LP --> +<!-- .IN "Paned widget" "constraint resources" --> +Each child of the Paned widget may request special layout resources +be applied to it. These <emphasis remap='I'>constraint</emphasis> resources allow the Paned +widget's children to specify individual layout requirements. +</para> +<para> +<!-- .LP --> +<informaltable> + <tgroup cols='5' align='center'> + <colspec colname='c1'/> + <colspec colname='c2'/> + <colspec colname='c3'/> + <colspec colname='c4'/> + <colspec colname='c5'/> + <thead> + <row> + <entry>Name</entry> + <entry>Class</entry> + <entry>Type</entry> + <entry>Notes</entry> + <entry>Default Value</entry> + </row> + </thead> + <tbody> + <row> + <entry>allowResize</entry> + <entry>Boolean</entry> + <entry>Boolean</entry> + <entry></entry> + <entry>False</entry> + </row> + <row> + <entry>max</entry> + <entry>Max</entry> + <entry>Dimension</entry> + <entry></entry> + <entry>Infinity</entry> + </row> + <row> + <entry>min</entry> + <entry>Min</entry> + <entry>Dimension</entry> + <entry></entry> + <entry>Height of Grips</entry> + </row> + <row> + <entry>preferredPaneSize</entry> + <entry>PreferredPaneSize</entry> + <entry>Dimension</entry> + <entry></entry> + <entry>ask child</entry> + </row> + <row> + <entry>resizeToPreferred</entry> + <entry>Boolean</entry> + <entry>Boolean</entry> + <entry></entry> + <entry>False</entry> + </row> + <row> + <entry>showGrip</entry> + <entry>ShowGrip</entry> + <entry>Boolean</entry> + <entry></entry> + <entry>True</entry> + </row> + <row> + <entry>skipAdjust</entry> + <entry>Boolean</entry> + <entry>Boolean</entry> + <entry></entry> + <entry>False</entry> + </row> + <row> + <entry>_</entry> + </row> + </tbody> + </tgroup> +</informaltable> +<variablelist> + <varlistentry> + <term> + <function>allowResize</function> + </term> + <listitem> + <para> +If this value is <function>False</function> the the Paned widget will disallow all +geometry requests from this child. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>max</function> + </term> + <listitem> + <para> +<!-- .br --> +<!-- .ns --> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>min</function> + </term> + <listitem> + <para> +The absolute maximum or minimum size for this pane. These values will +never be overridden by the Paned widget. This may cause some panes to be +pushed off the bottom (or right) edge of the paned widget. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>preferredPaneSize</function> + </term> + <listitem> + <para> +Normally the paned widget makes a QueryGeometry call on a child to +determine the preferred size of the child's pane. There are times +when the application programmer or the user has a better idea of the +preferred size of a pane. Setting this resource causes the value +passed to be interpreted as the preferred size, in pixels, of this pane. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>resizeToPreferred</function> + </term> + <listitem> + <para> +Determines whether or not to resize each pane to its preferred size +when the Paned widget is resized. See <function>Layout Semantics</function> for details. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>showGrip</function> + </term> + <listitem> + <para> +If <function>True</function> then a grip will be shown for this pane. The grip +associated with a pane is either below or to the right of the pane. No +grip is ever shown for the last pane. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>skipAdjust</function> + </term> + <listitem> + <para> +This resource is used to determine which pane is forced to be resized. +Setting this value to <function>True</function> makes this pane less likely to be +forced to be resized. See <function>Layout Semantics</function> for details. + </para> + </listitem> + </varlistentry> +</variablelist> +</para> +</sect2> +<sect2 id="paned_layout_semantics"> +<title>Layout Semantics</title> +<para> +<!-- .LP --> +<!-- .IN "Paned widget" "layout semantics" --> +In order to make effective use of the Paned widget it is helpful to know +the rules it uses to determine which child will be resized in any given +situation. There are three rules used to determine which child is +resized. While these rules are always the same, the panes that are +searched can change depending upon what caused the relayout. +</para> +<para> +<!-- .LP --> +<!-- .sp --> +<function>Layout Rules</function> +<variablelist> + <varlistentry> + <term> + <function>1</function> + </term> + <listitem> + <para> +Do not let a pane grow larger than its <function>max</function> or smaller than its +<function>min</function>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>2</function> + </term> + <listitem> + <para> +Do not adjust panes with <function>skipAdjust</function> set. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>3</function> + </term> + <listitem> + <para> +Do not adjust panes away from their preferred size, although moving one +closer to its preferred size is fine. + </para> + </listitem> + </varlistentry> +</variablelist> +</para> +<para> +<!-- .LP --> +When searching the children the Paned widget looks for panes that +satisfy all the rules, and if unsuccessful then it eliminates rule 3 +and then 2. Rule 1 is always enforced. +</para> +<para> +<!-- .LP --> +If the relayout is due to a resize or change in management then the +panes are searched from bottom to top. If the relayout is due to grip +movement then they are searched from the grip selected in the direction +opposite the pane selected. +</para> +<sect3 id="Resizing_Panes_from_a_Grip_Action"> +<title>Resizing Panes from a Grip Action</title> +<para> +<!-- .LP --> +The pane above the grip is resized by invoking the GripAction with +<function>UpLeftPane</function> specified. The panes below the grip are each checked +against all rules, then rules 2 and 1 and finally against rule 1 only. +No pane above the chosen pane will ever be resized. +</para> +<para> +<!-- .LP --> +The pane below the grip is resized by invoking the GripAction with +<function>LowRightPane</function> specified. The panes above the grip are each +checked in this case. No pane below the chosen pane will ever be resized. +</para> +<para> +<!-- .LP --> +Invoking GripAction with <function>ThisBorderOnly</function> specified just moves the +border between the panes. No other panes are ever resized. +</para> +</sect3> +<sect3 id="Resizing_Panes_after_the_Paned_widget_is_resized_"> +<title>Resizing Panes after the Paned widget is resized.</title> +<para> +<!-- .LP --> +When the Pane widget is resized it must determine a new size for each +pane. There are two methods of doing this. The Paned widget can either +give each pane its preferred size and then resize the panes to fit, or +it can use the current sizes and then resize the panes to fit. The +<function>resizeToPreferred</function> resource allows the application to tell the +Paned widget whether to query the child about its preferred size +(subject to the the <function>preferredPaneSize</function>) or to use the current size +when refiguring the pane locations after the pane has been resized. +</para> +<para> +<!-- .LP --> +There is one special case. All panes assume they should resize to +their preferred size until the Paned widget becomes visible to the user. +</para> +</sect3> +<sect3 id="Managing_Children_and_Geometry_Management"> +<title>Managing Children and Geometry Management</title> +<para> +<!-- .LP --> +The Paned widget always resizes its children to their preferred sizes when +a new child is managed, or a geometry management request is honored. +The Paned widget will first attempt to resize itself to contain its +panes exactly. If this is not possible then it will hunt through the +children, from bottom to top (right to left), for a pane to resize. +</para> +</sect3> +<sect3 id="paned_special_considerations"> +<title>Special Considerations</title> +<para> +<!-- .LP --> +When a user resizes a pane with the grips, the Paned widget assumes that +this new size is the preferred size of the pane. +</para> +</sect3> +</sect2> +<sect2 id="Grip_Translations"> +<title>Grip Translations</title> +<para> +<!-- .LP --> +The Paned widget has no action routines of its own, as all actions are +handled through the grips. The grips are each assigned a default +Translation table. +</para> +<para> +<!-- .LP --> +<!-- .sp --> +<literallayout class="monospaced"> +<!-- .TA .5i 2.25i --> +<!-- .ta .5i 2.25i --> + <Btn1Down>: GripAction(Start, UpLeftPane) +<!-- .IN "GripAction" "" --> + <Btn2Down>: GripAction(Start, ThisBorderOnly) + <Btn3Down>: GripAction(Start, LowRightPane) + <Btn1Motion>: GripAction(Move, UpLeftPane) + <Btn2Motion>: GripAction(Move, ThisBorderOnly) + <Btn3Motion>: GripAction(Move, LowRightPane) + Any<BtnUp>: GripAction(Commit) +</literallayout> +<!-- .sp --> +</para> +<para> +<!-- .LP --> +The Paned widget interprets the <function>GripAction</function> as taking two arguments. +<!-- .IN "GripAction" "" --> +The first argument may be any of the following: +<variablelist> + <varlistentry> + <term> + <function>Start</function> + </term> + <listitem> + <para> +Sets up the Paned widget for resizing and changes the cursor of the +grip. The second argument determines which pane will be resized, and +can take on any of the three values shown above. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>Move</function> + </term> + <listitem> + <para> +The internal borders are drawn over the current pane locations to +animate where the borders would actually be placed if you were to move +this border as shown. The second argument must match the second argument +that was passed to the <function>Start</function> action, that began this process. If +these arguments are not passed, the behavior is undefined. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <function>Commit</function> + </term> + <listitem> + <para> +This argument causes the Paned widget to commit the changes selected +by the previously started action. The cursor is changed back to the +grip's inactive cursor. No second argument is needed in this case. + </para> + </listitem> + </varlistentry> +</variablelist> +</para> +</sect2> +<sect2 id="paned_convenience_routines"> +<title>Convenience Routines</title> +<para> +<!-- .LP --> +<!-- .IN "Paned widget" "enable pane resizing" --> +<!-- .IN "Paned widget" "disable pane resizing" --> +To enable or disable a child's request for pane resizing, +use +<function>XawPanedAllowResize :</function> +<!-- .IN "XawPanedAllowResize" "" "@DEF@" --> +<funcsynopsis> +<funcprototype> + <funcdef>void<function> XawPanedAllowResize</function></funcdef> + <paramdef>Widget<parameter> w</parameter></paramdef> + <paramdef>Boolean<parameter> allow_resize</parameter></paramdef> +</funcprototype> +</funcsynopsis> +<!-- .FN --> +<variablelist> + <varlistentry> + <term> + <emphasis remap='I'>w</emphasis> + </term> + <listitem> + <para> +Specifies the child pane. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis remap='I'>allow_resize</emphasis> + </term> + <listitem> + <para> +Specifies whether or not resizing requests for this child will be +granted by the Paned widget. + </para> + </listitem> + </varlistentry> +</variablelist> +</para> +<para> +<!-- .LP --> +If allow_resize is <function>True</function>, the Paned widget allows geometry +requests from the child to change the pane's height. If allow_resize +is <function>False</function>, the Paned widget ignores geometry requests from the +child to change the pane's height. The default state is <function>True</function> +before the Pane is realized and <function>False</function> after it is realized. +This procedure is equivalent to changing the <function>allowResize</function> +constraint resource for the child. +</para> +<para> +<!-- .LP --> +<!-- .sp --> +<!-- .IN "Paned widget" "change height settings" --> +To change the minimum and maximum height settings for a pane, use +<function>XawPanedSetMinMax :</function> +<!-- .IN "XawPanedSetMinMax" "" "@DEF@" --> +<funcsynopsis> +<funcprototype> + <funcdef>void<function> XawPanedSetMinMax</function></funcdef> + <paramdef>Widget<parameter> w</parameter></paramdef> + <paramdef>intmin,<parameter> max</parameter></paramdef> +</funcprototype> +</funcsynopsis> +<!-- .FN --> +<variablelist> + <varlistentry> + <term> + <emphasis remap='I'>w</emphasis> + </term> + <listitem> + <para> +Specifies the child pane. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis remap='I'>min</emphasis> + </term> + <listitem> + <para> +Specifies the new minimum height of the child, expressed in pixels. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis remap='I'>max</emphasis> + </term> + <listitem> + <para> +Specifies new maximum height of the child, expressed in pixels. + </para> + </listitem> + </varlistentry> +</variablelist> +</para> +<para> +<!-- .LP --> +This procedure is equivalent to setting the <function>min</function> and <function>max</function> +constraint resources for the child. +</para> +<para> +<!-- .LP --> +<!-- .sp --> +<!-- .IN "Paned widget" "get height settings" --> +To retrieve the minimum and maximum height settings for a pane, use +<function>XawPanedGetMinMax :</function> +<!-- .IN "XawPanedGetMinMax" "" "@DEF@" --> +<funcsynopsis> +<funcprototype> + <funcdef>void<function> XawPanedGetMinMax</function></funcdef> + <paramdef>Widget<parameter> w</parameter></paramdef> + <paramdef>int*min_return,<parameter> *max_return</parameter></paramdef> +</funcprototype> +</funcsynopsis> +<!-- .FN --> +<variablelist> + <varlistentry> + <term> + <emphasis remap='I'>w</emphasis> + </term> + <listitem> + <para> +Specifies the child pane. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis remap='I'>min_return</emphasis> + </term> + <listitem> + <para> +Returns the minimum height of the child, expressed in pixels. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis remap='I'>max_return</emphasis> + </term> + <listitem> + <para> +Returns the maximum height of the child, expressed in pixels. + </para> + </listitem> + </varlistentry> +</variablelist> +</para> +<para> +<!-- .LP --> +This procedure is equivalent to getting the <function>min</function> and <function>max</function> +resources for this child child. +</para> +<para> +<!-- .LP --> +<!-- .sp --> +<!-- .IN "Paned widget" "enable auto-reconfiguring" --> +<!-- .IN "Paned widget" "disable auto-reconfiguring" --> +To enable or disable automatic recalculation of pane sizes and positions, +use +<function>XawPanedSetRefigureMode :</function> +<!-- .IN "XawPanedSetRefigureMode" "" "@DEF@" --> +<funcsynopsis> +<funcprototype> + <funcdef>void<function> XawPanedSetRefigureMode</function></funcdef> + <paramdef>Widget<parameter> w</parameter></paramdef> + <paramdef>Boolean<parameter> mode</parameter></paramdef> +</funcprototype> +</funcsynopsis> +<!-- .FN --> +<variablelist> + <varlistentry> + <term> + <emphasis remap='I'>w</emphasis> + </term> + <listitem> + <para> +Specifies the Paned widget. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <emphasis remap='I'>mode</emphasis> + </term> + <listitem> + <para> +Specifies whether the layout of the Paned widget is enabled (<function>True</function>) +or disabled (<function>False</function>). + </para> + </listitem> + </varlistentry> +</variablelist> +</para> +<para> +<!-- .LP --> +When making several changes to the children of a Paned widget +after the Paned has been realized, it is a good idea to disable +relayout until after all changes have been made. +</para> +<para> +<!-- .LP --> +<!-- .sp --> +<!-- .IN "Paned widget" "getting the number of children" --> +To retrieve the number of panes in a paned widget use +<function>XawPanedGetNumSub</function>: +<!-- .IN "XawPanedGetNumSub" "" "@DEF@" --> +<funcsynopsis> +<funcprototype> + <funcdef>int<function> XawPanedGetNumSub</function></funcdef> + <paramdef>Widget<parameter> w</parameter></paramdef> +</funcprototype> +</funcsynopsis> +<!-- .FN --> +<variablelist> + <varlistentry> + <term> + <emphasis remap='I'>w</emphasis> + </term> + <listitem> + <para> +Specifies the Paned widget. + </para> + </listitem> + </varlistentry> +</variablelist> +</para> +<para> +<!-- .LP --> +This function returns the number of panes in the Paned widget. This is +<function>not</function> the same as the number of children, since the grips are also +children of the Paned widget. + +</para> +</sect2> +</sect1> |