<section ID="chapter.widgets.rubberframe">
  <TITLE>Tdrubberframe and lrrubberframe widgets</TITLE>

<subsection> <TITLE>Description</TITLE>

<P>
<<tdrubberframe>> and <<lrrubberframe>> are frames, that is rectangular area. Their primary purpose is to act as a spacer or container for complex window layouts. These two widgets are very similar to <<td>> and <<lr>>, except that :
<LIST>
<ITEM> Rubberframes don't support <<newline>>, <<empty>> and <<continue>>.
<ITEM> The respective width or height rubberframes take can be dynamically changed by the user.
</LIST>

<subsection> <TITLE>Parameters</TITLE>

<P>
<LIST>

<ITEM> <<n:R>> : With <<n>> starting at <<1>> and going up one by one. Specifies a widget to place inside the frame. <<R>> must be a record describing a widget.

&param_borderwidth;
&param_cursor;
&param_highlightbackground;
&param_highlightcolor;
&param_highlightthickness;
&param_relief;
&param_takefocus;
&param_background;

<ITEM> <<class:VS>> : Specifies a class for the window. This class will be used when querying the option database for the window's other options, and it will also be used later for other purposes such as bindings. This option can be specified at creation time only. <<VS>> must be a virtual string.

<ITEM> <<colormap:V>> : Specifies a colormap to use for the window. The value may be either the atom <<new>>, in which case a new colormap is created for the window and its children, or the handle of another window (which must be on the same screen and have the same visual as this widget), in which case the new window will use the colormap from the specified window. If the colormap option is not specified, the new window uses the same colormap as its parent. This option can be specified at creation time only.

<ITEM> <<container:B>> : Specifies if this window will be used as a container in which some other application will be embedded or not. The window will support the appropriate window manager protocols forthings like geometry requests. The window should not have any children of its own in this application. This option can be specified at creation time only.

<ITEM> <<width:P>> : Specifies the desired width for the window. If this option is less than or equal to zero then the window will not request any size at all. <<P>> must be a valid screen distance (see <ptr to="misc.distance">).

<ITEM> <<height:P>> : Specifies the desired height for the window. If this option is less than or equal to zero then the window will not request any size at all. <<P>> must be a valid screen distance (see <ptr to="misc.distance">).

<ITEM> <<visual:A>> : Specifies visual information for the new window. <<A>> must be one of the following atoms : <<directcolor>>, <<grayscale>>, <<greyscale>>, <<pseudocolor>>, <<staticcolor>>, <<staticgray>>, <<staticgrey>>, or <<truecolor>>. If this option is not specified, the new window will use the same visual as its parent. This option can be specified at creation time only.

&param_glue;
&param_padx;
&param_pady;
&param_feature;
&param_handle;
&param_tooltips;


</LIST>

</P>

<subsection> <TITLE>Interface</TITLE>

<P>
The object you get by an handle on the widget implements the following methods :

<LIST>

<ITEM> <<chgSize(R P relative:B)>> : Changes the size of a specific widget of the rubberframe. <<R>> must be either the number of the widget (<<n>> in the option <<n:R>> above) or an handle to one of these widgets. If <<B>> is <<true>> then the integer <<P>> is added to the current size of the widget. If <<B>> is false (default if <<relative>> is not specified) then the size of the widget is set to <<P>>.

&interface_set;
&interface_get;
&interface_bind;
&interface_getFocus;
&interface_setGrab;
&interface_releaseGrab;
&interface_getGrabStatus;
&interface_raise;
&interface_lower;
&interface_winfo;

</LIST>


</section>
