Amiga Unix — 68040 · 68060

Manual pages › OPEN LOOK widgets (3W)

olxclusives(3W)

Exclusives

From the original Amiga UNIX 2.1 manual. Some things it mentions may not be in this release.

WIDGET CLASS NAME

Exclusives

SYNOPSIS

#include <Intrinsic.h>
#include <StringDefs.h>
#include <OpenLook.h>
#include <Exclusives.h>
widget = XtCreateWidget(name, exclusivesWidgetClass, ...);

DESCRIPTION

The Exclusives widget provides a simple way to build a oneof-many button selection object. It manages a set of rectangular buttons, providing layout management.

Grid Layout and Button Labels The Exclusives widget lays out the rectangular buttons in a grid in the order they are added as child widgets by the application. The number of rows or columns in this grid can be controlled by the application. If the grid has more than one row, the Exclusives widget forces the buttons in each column to be the same size as the widest in the column, and forces their labels to be left-justified. (Note: If the grid has a single row, each button will be only as wide as necessary to display the label.)

Amiga Unix                Last change:                          1

               Figure 1.  Example of Exclusive Buttons

Amiga Unix                Last change:                          2

     Selection Control-One Set

     In one mode of operation (i.e, XtNnoneSet is FALSE), exactly
     one  button  in an Exclusives widget must be "set" (i.e. the
     XtNset resource set to TRUE).  An error is generated  if  an
     Exclusives  is  configured with two or more rectangular but-
     tons set or with no button set.  The Exclusives widget main-
     tains  this  condition by ensuring that when a button is set
     by the user clicking SELECT over it, the button that was set
     is  cleared and its XtNunselect callbacks are invoked.  How-
     ever, clicking SELECT over a button  that  was  already  set
     does nothing.
     Selection Control-None Set

In the other mode of operation (i.e, XtNnoneSet is TRUE), at most one button in an Exclusives widget can be set. An error is generated if an Exclusives is configured with two or more rectangular buttons set, but not if configured with no button set. The Exclusives widget maintains this condition by ensuring that when a button is set by the user clicking SELECT over it, any button that was previously set is cleared. Also, clicking SELECT over a button that was already set will unset it. Clearing a button in either case invokes its XtNunselect callbacks.

Amiga Unix                Last change:                          3

Use in a Menu The Exclusives widget can be added as a single child to a menu pane to implement a one-of-many menu choice.

     Child Constraint The Exclusives widget constrains its  child
     widgets to be of the class rectButtonWidgetClass.
     Exclusives Coloration There is  no  explicit  foreground  or
     background  in  the  Exclusives  composite widget; each rec-
     tangular button has its own coloration.

RESOURCES__________________________________________________________________________________
                                    Exclusives Resource Set
     ______________________________________________________________________________________
     _Name___________________Class__________________Type_____________Default________Access_

Amiga Unix                Last change:                          4
()                MISC. REFERENCE MANUAL PAGES                 ()

     ______________________________________________________________________________________
     _XtNancestorSensitive___XtCSenstitive__________Boolean__________TRUE___________G*_____
      XtNdepth               XtCDepth               int              (parent's)     GI
     ______________________________________________________________________________________
     _XtNdestroyCallback_____XtCCallback____________XtCallbackList___NULL___________SI_____
      XtNheight              XtCHeight              Dimension        (calculated)   SGI
     ______________________________________________________________________________________
     _XtNlayoutType__________XtCLayoutType__________OlDefine_________OL_FIXEDROWS___SGI____
      XtNmappedWhenManaged   XtCMappedWhenManaged   Boolean          TRUE           SGI
     ______________________________________________________________________________________
     _XtNmeasure_____________XtCMeasure_____________int______________1______________SGI____
    | XtNnoneSet             XtCNoneSet             Boolean          FALSE          SGI   |
    |_____________________________________________________________________________________|
    |_XtNsensitive________|__XtCSensitive________|__Boolean_______|__TRUE________|__GI*___|
    | XtNuserData         |  XtCUserData         |  XtPointer     |  NULL        |  SGI   |
    |_____________________|______________________|________________|______________|________|
    |_XtNwidth____________|__XtCWidth____________|__Dimension_____|__(calculated)|__SGI___|
    | XtNx                |  XtCPosition         |  Position      |  0           |  SGI   |
    |_____________________|______________________|________________|______________|________|
    |_XtNy________________|__XtCPosition_________|__Position______|__0___________|__SGI___|

Amiga Unix                Last change:                          1
()                MISC. REFERENCE MANUAL PAGES                 ()

     XtNlayoutType

     Range of Values:
          OL_FIXEDROWS/"fixedrows"
          OL_FIXEDCOLS/"fixedcols"

This resource controls the type of layout of the child widgets by the Exclusives composite. The choices are to specify the number of rows or the number of columns. Only one of these dimensions can be specified directly; the other is determined by the number of child widgets added, and will always be enough to show all the child widgets. The values of the XtNlayoutType resource can be

OL_FIXEDROWS if the layout should have a fixed number of rows;

OL_FIXEDCOLS if the layout should have a fixed number of columns.

               XtNmeasure

Range of Values:
     0 < XtNmeasure
This resource gives the number of rows  or  columns  in  the
layout  of the child widgets.  If there are not enough child
widgets to fill a row or column, the remaining space is left
blank.   If  there  is  only one row (column), and it is not
filled with child widgets, the  remaining  ``space''  is  of
zero width (height).

XtNnoneSet

Range of Values:
     TRUE
     FALSE

This resource controls whether the buttons controlled by the Exclusives composite can be toggled into an unset mode directly. If set to FALSE, at all times exactly one button must be set. Attempting to select the currently set button does nothing. If set to TRUE, at all times no more than one button can be set. However, the user can select the currently set button again to toggle it back into an unset mode.

Amiga Unix                Last change:                          2