diff options
Diffstat (limited to 'man/2/dividers')
| -rw-r--r-- | man/2/dividers | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/man/2/dividers b/man/2/dividers new file mode 100644 index 00000000..710308d7 --- /dev/null +++ b/man/2/dividers @@ -0,0 +1,68 @@ +.TH DIVIDERS 2 +.SH NAME +Dividers \- user-draggable tk dividing bars +.SH SYNOPSIS +.EX +include "dividers.m"; +dividers := load Dividers Dividers->PATH; +Divider: import dividers; + +init: fn(); +Divider: adt { + new: fn(win: ref Tk->Toplevel, w: string, wl: list of string, dir: int): + (ref Divider, chan of string); + event: fn(d: self ref Divider, e: string); +}; +.EE +.SH DESCRIPTION +.I Dividers +presents an interface allowing Tk widgets to +be arranged within a window, divided by bars which +can be dragged by the user to determine the proportion +of the available space to allocate to each widget. +The groups can be stacked vertically or horizontally. +.I Divider +widgets can be nested. +.PP +.B Init +must be called before anything else, to allow +.I Dividers +to initialise its internal state. +.B Divider.new +creates a new divider widget; it will be named +.IR w , +and it will divide up the widgets named in +the list +.IR wl . +.I Dir +can be +.BR Dividers->NS , +to stack the widgets one on top of another, +or +.BR Dividers->EW +to stack the widgets left-right. +.B Divider.new +returns a new +.B Divider +adt, and a channel through which +.B Divider +events will be received. +The application should arrange that events +received on this channel be passed to the +.B event() +function. +.PP +A +.B Divider +widget must be informed if its size has changed +by configuring its width and height appropriately; +it does the same to the items it is dividing. +.SH SOURCE +.B /appl/lib/dividers.b +.SH BUGS +It should not be necessary to inform the +.B Divider +widget of size changes. +.PP +The event-based mechanism seems somewhat +contrary to the preferred Limbo way of doing things. |
