Amiga Unix — 68040 · 68060

Manual pages › Libraries: curses, OPEN LOOK and others (3)

olOblngButon(3)

OblongButton

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

WIDGET CLASS NAME · GADGET CLASS NAME · SYNOPSIS · DESCRIPTION · RESOURCES

WIDGET CLASS NAME

OblongButton

GADGET CLASS NAME

OblongButton

SYNOPSIS

#include <Intrinsic.h>
#include <OpenLook.h>
#include <StringDefs.h>
#include <OblongButt.h>
widget = XtCreateWidget(name, oblongButtonWidgetClass, ...);
OR widget = XtCreateWidget(name, oblongButtonGadgetClass, ...);

DESCRIPTION

OblongButton Components The OblongButton consists of a Label
surrounded by a rounded, or oblong, Border.
                 Figure 1.  Oblong Buttons
Busy Button while Action Takes Place  Each  OblongButton  is
associated with an application-defined action implemented as
a list of callbacks.  To let  the  end  user  know  that  an
action  is still taking place, the OblongButton stipples the
area inside the border before issuing the  callbacks.   When
the  last  callback  returns,  the OblongButton restores its
original appearance.  If the application's action  continues
to  be  "busy"  after  the callbacks return, the application
should set the XtNbusy resource  to  TRUE  before  returning
from  the  callbacks, then reset it to FALSE when the action
is no longer taking place.  The "busy"  stipple  pattern  is
designed  to show enough dots to gray the button noticeably,
while still leaving a text label legible.

Oblong Buttons in a Pop-up Menu Entering an oblong button while MENU is depressed highlights the button's interior. Releasing MENU then restores the original appearance and invokes the action for the button as described above. Leaving the button before releasing MENU restores the appearance but does not invoke the action.

Oblong Buttons not in a Pop-up Menu Clicking SELECT on an oblong button starts the action associated with the button. Pressing SELECT, or moving the pointer into the button while SELECT is pressed, highlights the button's interior. Releasing SELECT restores the appearance and invokes the action for the button as described above. Moving the pointer off the button before releasing SELECT also restores the appearance, but does not invoke the action. If the oblong button is in a stay-up menu, clicking or pressing MENU works the same as SELECT. If the oblong button is not in a stay-up (or pop-up) menu, clicking or pressing MENU does not do anything; the event is passed up to an ancestor widget.

Amiga Unix                Last change:                          1

OblongButton Gadgets OblongButton gadgets cannot be parents (i.e., be used as the parent parameter when creating a widget or other gadget). Correct button behavior is not guaranteed if gadgets are positioned so that they overlap. Gadgets share some core fields but, since they are not subclasses of Core, do not have all Core fields. In particular, they don't have a name field or a translation field (so translations cannot be specified/overriden). Event Handlers cannot be added to gadgets using XtAddEventHandler.

OblongButton Coloration Figure 2 illustrates  the  resources
that  affect  the  coloration  of  the  OblongButton widget.
Note:
Events that occur outside the Border (but within the Oblong-
Button widget) are still in the domain of the button.
            Figure 2.  Oblong Button Coloration

RESOURCES

     ____________________________________________________________________________________
     _____________________________OblongButton_Resource_Set______________________________
      Name                    Class           Type             Default            Access
     ____________________________________________________________________________________

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

     ____________________________________________________________________________________
     _XtNancestorSensitive____XtCSenstitive___Boolean__________TRUE_______________G*_____
      XtNbackground           XtCBackground   Pixel            White              SGI-
     ____________________________________________________________________________________
     _=_XtNbackgroundPixmap___XtCPixmap_______Pixmap___________(none)_____________SGI-___
      XtNbusy                 XtCBusy         Boolean          FALSE              SGI
     ____________________________________________________________________________________
     _XtNdefault______________XtCDefault______Boolean__________FALSE______________SGI____
      = XtNdepth              XtCDepth        int              (parent's)         GI
     ____________________________________________________________________________________
     _XtNdestroyCallback______XtCCallback_____XtCallbackList___NULL_______________SI_____
      XtNfont                 XtCFont         XFontStruct *    (OPEN LOOK font)   SI
     ____________________________________________________________________________________
     _XtNfontColor____________XtCFontColor____Pixel____________Black*_____________SGI____
      XtNforeground           XtCForeground   Pixel            Black              SGI-
     ____________________________________________________________________________________
     _XtNheight_______________XtCHeight_______Dimension________(calculated)_______SGI____
      XtNlabel                XtCLabel        String           (class name)       SGI
     ____________________________________________________________________________________
    |_XtNlabelImage___________XtCLabelImage___XImage_*_________NULL_______________SGI___|
                           |               |                |                  |

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

     ________________________________________________________________________________________
    |___________________________OblongButton_Resource_Set_(cont.)___________________________|
    | Name                  |  Class               |  Type          |  Default     |  Access|
    |_______________________|______________________|________________|______________|________|
    | XtNlabelJustify       |  XtCLabelJustify     |  OlDefine      |  OL_LEFT     |  SGI   |
    |_______________________|______________________|________________|______________|________|
    |_XtNlabelTile__________|__XtCLabelTile________|__Boolean_______|__FALSE_______|__SGI___|
    | XtNlabelType          |  XtCLabelType        |  int           |  OL_STRING   |  SGI   |
    |_______________________|______________________|________________|______________|________|
    |_=_XtNmappedWhenManaged|__XtCMappedWhenManaged|__Boolean_______|__TRUE________|__SGI___|
    | XtNrecomputeSize      |  XtCRecomputeSize    |  Boolean       |  TRUE        |  SGI   |
    |_______________________|______________________|________________|______________|________|
    |_XtNselect_____________|__XtCCallback_________|__XtCallbackList|__NULL________|__SI____|
    | 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   |
    |_______________________|______________________|________________|______________|________|
     = These resources are not available to OblongButton gadgets.

     XtNbusy

     Range of Values:
          TRUE
          FALSE

This resource controls whether the button interior should be stippled to show that the action associated with the button is ``busy.'' While XtNbusy is TRUE, the system will beep if the end user attempts to select the button; the attempt is refused and no callbacks are invoked.

XtNdefault

Range of Values:
     TRUE
     FALSE

If this resource is TRUE, and the button is in a menu, an oval ring is drawn around the button to show that the button is the default choice of one or more buttons.

     XtNfont

     Range of Values:
          (any valid return from XLoadQueryFont())
     Default:
          (chosen to match the scale and screen resolution)

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

This resource identifies the font to be used to display the Label. The default value points to a cached font structure; an application should not expect to get this value with a call to XtGetValues() and use it reliably thereafter.

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

     XtNfontColor

     Range of Values:

(any Pixel value valid for the current display)/(any name from the rgb.txt file)

This resource specifies the color for the font. If not set, the color from the XtNforeground resource, if available, is used for the font. See the note about the interaction of this resource with other color resources under the description of the XtNbackground resource in CORE RESOURCES(3W).

XtNforeground This resource defines the foreground color for the widget. See the note about the interaction of this resource with other color resources under the description of the XtNbackground resource in CORE RESOURCES(3W).

XtNlabel This resource is a pointer  to  the  text  for  the
Label.    This  resource  is  ignored  if  the  XtNlabelType
resource has the value OL_IMAGE.
XtNlabelImage This resource is a pointer to  the  image  for
the Label.  This resource is ignored unless the XtNlabelType
resource has the value OL_IMAGE.  If the image  is  of  type
XYBitmap,  the image is highlighted when appropriate by rev-
ersing the 0 and 1 values of each pixel (i.e. by  "`xor'ing"
the  image data).  If the image is of type XYPixmap or ZPix-
map, the image is not highlighted, although the space around
the image inside the Border is highlighted.  If the image is
smaller than the space available for it  inside  the  Border
and  XtNlabelTile is FALSE, the image is centered vertically
and either centered or left-justified horizontally,  depend-
ing  on  the  value of the XtNlabelJustify resource.  If the
image is larger than the  space  available  for  it,  it  is
clipped  so  that  it does not stray outside the Border.  If
the XtNdefault resource is TRUE so that the Border  is  dou-
bled,  the  space available is that inside the inner line of
the Border.

XtNlabelJustify

Range of Values:
     OL_LEFT/"left"
     OL_CENTER/"center"

This resource dictates whether the Label should be left-justified or centered within the widget width.

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

     XtNlabelTile

     Range of Values:
          TRUE
          FALSE

This resource augments the XtNlabelImage/XtNlabelPixmap resource to allow tiling the sub-object's background. For an image/pixmap that is smaller than the sub-object's background, the label area is tiled with the image/pixmap to fill the sub-object's background if this resource is TRUE; otherwise, the label is placed as described by the XtNlabel-Justify resource. The XtNlabelTile resource is ignored for text labels.

XtNlabelType

Range of Values:
     OL_STRING/"string"
     OL_IMAGE/"image"
     OL-POPUP/"string..."

This resource identifies the form that the Label takes. It can have the value OL_STRING for text, OL_IMAGE for an image, or OL_POPUP for text followed by an ellipsis (such as XtNrecomputeSize

Range of Values:
     TRUE
     FALSE

This resource indicates whether the OblongButton widget should calculate its size and automatically set the XtNheight and XtNwidth resources. If set to TRUE, the OblongButton widget will do normal size calculations that may cause its geometry to change. If set to FALSE, the OblongButton widget will leave its size alone; this may cause truncation of the visible image being shown by the OblongButton widget if the fixed size is too small, or may cause padding if the fixed size is too large. The location of the padding is determined by the XtNlabelJustify resource.

XtNselect This is the list of callbacks invoked when the widget is selected.

Label Appearance The XtNwidth, XtNheight, XtNrecomputeSize, and XtNlabelJustify resources interact to produce a truncated, clipped, centered, or left-justified label as shown in Figure 3.

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

                     Figure 3.  Label Appearance
     When the label is  centered  or  left-justified,  the  extra
     space  is filled with the background color of the OblongBut-
     ton widget, as determined by the XtNbackground and  XtNback-
     groundPixmap resources.  When a text label is truncated, the
     truncation occurs at a character boundary and a solid trian-
     gle  is  inserted to show that part of the label is missing.
     The triangle requires that more of the  label  be  truncated
     than would otherwise be necessary.  If the width of the but-
     ton is too small to show even one character with the  trian-
     gle,  only  the triangle is shown.  If the width is so small
     that the entire triangle cannot be shown,  the  triangle  is
     clipped  on  the right.  An image label is simply truncated;
     no triangle is shown.  See also  the  XtNlabelTile  resource
     for how it affects the appearance of a label image.

Amiga Unix                Last change:                          6