home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Encyclopedia of Graphics File Formats Companion
/
GFF_CD.ISO
/
software
/
unix
/
saoimage
/
sao1_07.tar
/
btnlib
/
readme
< prev
next >
Wrap
Text File
|
1989-11-09
|
2KB
|
40 lines
ButtonBox
This is a simple Button Panel widget. Notable features are:
A) The buttons have four visible states (occupied-by-pointer/not-occupied
combined with on/off).
B) Buttons can be given different functions (one-shot, radio-buttons,
toggle buttons, help-about-this-button, etc). One button may have
several different response functions (within logic) depending on
the pointer button and event state. The conditions under which a
button selection occurs are application selectable with button and
state masks for each response.
C) Buttons can interact with each other in different ways (radio button being
an obvius example).
D) Buttons can have submenus of buttons which appear when the parent button
is selected (similar to 'pull-down-menus' in function but different in
that they appear in an existing window, and remain until replaced).
Submenus can be cascaded (submenus of submenu buttons, ...).
E) All calls are Xlib calls. The design minimizes server interactions for
efficient operation, even over a network.
F) Buttons are pre-processed with data structures largely filled at compile
time to reduce start-up time and eliminate any reliance on server font
resources at run-time. (The pre-processor is in the tool sub-directory).
(My preferred font is X10's helv12 which is different from that provided
with X11 - both X10 and X11 pre-processing is available).
G) The button appearance is specifiable (copied from a sample bit-map of its
border pattern). It can be made runtime selectable to match the user's
preferred "look-and-feel".
H) Buttons are run-time sized (and resized) to fit their windows. When the
text label must be clipped to fit a small button, characters are dropped
and the remaining text is centered.
I) Text labels can be rotated in the pre-processor, allowing vertical
text labels.
J) The interface can accept UNIX socket masks to return on non-X11
UNIX select signals.
The organization of the code is outlined in ROADMAP.