Creates a void container that allows its child to be resized. Allows expanding and contracting the child size in one direction.

It does not have a native representation but it contains also a IupCanvas to implement the bar handler.


Ihandle* IupSbox(Ihandle* child); [in C]
iup.sbox{child: ihandle} -> (ih: ihandle) [in Lua]
sbox(child) [in LED]

child: Identifier of an interface element which will receive the box. It can be NULL (nil in Lua), not optional in LED.

Returns: the identifier of the created element, or NULL if an error occurs.


COLOR: Changes the color of the bar handler. The value should be given in "R G B" color style. Default: "192 192 192".

DIRECTION (creation only): Indicates the direction of the resize and the position of the bar handler. Possible values are "NORTH", "SOUTH" (vertical direction), "EAST" or "WEST" (horizontal direction). Default: "EAST".

EXPAND (non inheritable): It will expand automatically only in the direction opposite to the handler. 

WID (read-only): returns -1 if mapped.



The controls that you want to be resized must have the EXPAND=YES attribute set. The control inside the sbox will not be resized with a size lesser than its Natural size. See the Layout Guide for mode details on sizes.

The IupCanvas bar handler is always the first child of the sbox. It can be obtained using IupGetChild or IupGetNextChild.

IupSbox can make the layout to be resized larger than the dialog size so some controls will be positioned outside the dialog area at right or bottom. In fact this is part of the dynamic layout default reposition of controls inside the dialog. See the IupRefresh function. The IUP layout does not have a maximum limit only a minimum, except if you use the MAXSIZE common attribute.

The box can be created with no elements and be dynamic filled using IupAppend or IupInsert.


Browse for Example Files

Natural Size

After Expanding the Sbox

Expanding the Dialog

After Expanding the Sbox