Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
XmDrawnButton(3)	   Library Functions Manual	      XmDrawnButton(3)

NAME
       XmDrawnButton --	The DrawnButton	widget class

SYNOPSIS
       #include	<Xm/DrawnB.h>

DESCRIPTION
       The DrawnButton widget consists of an empty widget window surrounded by
       a  shadow border. It provides the application developer with a graphics
       area that can have PushButton input semantics.

       Callback	types are defined for widget exposure and widget resize	to al-
       low the application to redraw or	reposition its graphics. If the	Drawn-
       Button widget has a highlight and  shadow  thickness,  the  application
       should  not  draw  in that area.	 To avoid drawing in the highlight and
       shadow area, create the graphics	context	with a clipping	rectangle  for
       drawing in the widget.  The clipping rectangle should take into account
       the  size  of the widget's highlight thickness and shadow.  DrawnButton
       uses the	XmQTmenuSystem and XmQTspecifyRenderTable  traits,  and	 holds
       the XmQTactivatable trait.

   Classes
       DrawnButton  inherits  behavior,	 resources,  and traits	from the Core,
       Primitive, and XmLabel classes.

       The class pointer is xmDrawnButtonWidgetClass.

       The class name is XmDrawnButton.

   New Resources
       The following table defines a set of widget resources used by the  pro-
       grammer	to specify data. The programmer	can also set the resource val-
       ues for the inherited classes to	set attributes	for  this  widget.  To
       reference  a  resource by name or by class in a .Xdefaults file,	remove
       the XmN or XmC prefix and use the remaining letters. To specify one  of
       the  defined  values for	a resource in a	.Xdefaults file, remove	the Xm
       prefix and use the remaining letters (in	either lowercase or uppercase,
       but include any underscores between words).  The	codes  in  the	access
       column  indicate	if the given resource can be set at creation time (C),
       set by using XtSetValues	(S), retrieved by using	XtGetValues (G), or is
       not applicable (N/A).

       +--------------------------------------------------------------------------------------------+
       |		      |		 XmDrawnButton Resource	Set   |			   |	    |
       | Name		      |	Class		     | Type	      |	Default		   | Access |
       +----------------------+----------------------+----------------+--------------------+--------+
       | XmNactivateCallback  |	XmCCallback	     | XtCallbackList |	NULL		   | C	    |
       +----------------------+----------------------+----------------+--------------------+--------+
       | XmNarmCallback	      |	XmCCallback	     | XtCallbackList |	NULL		   | C	    |
       +----------------------+----------------------+----------------+--------------------+--------+
       | XmNdisarmCallback    |	XmCCallback	     | XtCallbackList |	NULL		   | C	    |
       +----------------------+----------------------+----------------+--------------------+--------+
       | XmNexposeCallback    |	XmCCallback	     | XtCallbackList |	NULL		   | C	    |
       +----------------------+----------------------+----------------+--------------------+--------+
       | XmNmultiClick	      |	XmCMultiClick	     | unsigned	char  |	dynamic		   | CSG    |
       +----------------------+----------------------+----------------+--------------------+--------+
       | XmNpushButtonEnabled |	XmCPushButtonEnabled | Boolean	      |	False		   | CSG    |
       +----------------------+----------------------+----------------+--------------------+--------+
       | XmNresizeCallback    |	XmCCallback	     | XtCallbackList |	NULL		   | C	    |
       +----------------------+----------------------+----------------+--------------------+--------+
       | XmNshadowType	      |	XmCShadowType	     | unsigned	char  |	XmSHADOW_ETCHED_IN | CSG    |
       +----------------------+----------------------+----------------+--------------------+--------+
       +----------------------+----------------------+----------------+--------------------+--------+

       XmNactivateCallback
		 Specifies the list of callbacks that is called	when the  wid-
		 get  becomes  selected.   The	reason sent by the callback is
		 XmCR_ACTIVATE.	 This callback uses the	XmQTactivatable	trait.

       XmNarmCallback
		 Specifies the list of callbacks that is called	when the  wid-
		 get  becomes  armed.	The  reason  sent  by  the callback is
		 XmCR_ARM.

       XmNdisarmCallback
		 Specifies the list of callbacks that is called	when the  wid-
		 get  becomes  disarmed.   The	reason sent by the callback is
		 XmCR_DISARM.

       XmNexposeCallback
		 Specifies the list of callbacks that is called	when the  wid-
		 get receives an exposure event.  The reason sent by the call-
		 back is XmCR_EXPOSE.

       XmNmultiClick
		 If  a button click is followed	by another button click	within
		 the time span specified by the	display's multiclick time, and
		 this resource is  set	to  XmMULTICLICK_DISCARD,  the	second
		 click	is  not	 processed.  If	this resource is set to	XmMUL-
		 TICLICK_KEEP, the event is processed and click_count  is  in-
		 cremented  in the callback structure.	When the button	is not
		 in a menu, the	default	value is XmMULTICLICK_KEEP.

       XmNpushButtonEnabled
		 Enables or disables the 3-dimensional shadow  drawing	as  in
		 PushButton.

       XmNresizeCallback
		 Specifies  the	list of	callbacks that is called when the wid-
		 get receives a	resize event.  The reason sent by the callback
		 is XmCR_RESIZE. The event returned for	this callback is NULL.

       XmNshadowType
		 Describes the drawing style for  the  DrawnButton.  This  re-
		 source	can have the following values:

		 XmSHADOW_IN
			   Draws  the  DrawnButton  so that the	shadow appears
			   inset. This means that the  bottom  shadow  visuals
			   and top shadow visuals are reversed.

		 XmSHADOW_OUT
			   Draws  the  DrawnButton  so that the	shadow appears
			   outset.

		 XmSHADOW_ETCHED_IN
			   Draws the DrawnButton using	a  double  line.  This
			   gives  the effect of	a line etched into the window.
			   The thickness of the	double line is	equal  to  the
			   value of XmNshadowThickness.

		 XmSHADOW_ETCHED_OUT
			   Draws  the  DrawnButton  using  a double line. This
			   gives the effect of a line coming out of  the  win-
			   dow.	 The  thickness	of the double line is equal to
			   the value of	XmNshadowThickness.

   Inherited Resources
       DrawnButton inherits behavior and resources from	the  superclasses  de-
       scribed	in  the	 following tables.  For	a complete description of each
       resource, refer to the reference	page for that superclass.

       +-------------------------------------------------------------------------------------------------------------+
       |			   |		    XmLabel Resource Set	   |			    |	     |
       | Name			   | Class		       | Type		   | Default		    | Access |
       +---------------------------+---------------------------+-------------------+------------------------+--------+
       | XmNaccelerator		   | XmCAccelerator	       | String		   | NULL		    | N/A    |
       +---------------------------+---------------------------+-------------------+------------------------+--------+
       | XmNacceleratorText	   | XmCAcceleratorText	       | XmString	   | NULL		    | N/A    |
       +---------------------------+---------------------------+-------------------+------------------------+--------+
       | XmNalignment		   | XmCAlignment	       | unsigned char	   | dynamic		    | CSG    |
       +---------------------------+---------------------------+-------------------+------------------------+--------+
       | XmNfontList		   | XmCFontList	       | XmFontList	   | dynamic		    | CSG    |
       +---------------------------+---------------------------+-------------------+------------------------+--------+
       | XmNlabelInsensitivePixmap | XmCLabelInsensitivePixmap | Pixmap		   | XmUNSPECIFIED_PIXMAP   | CSG    |
       +---------------------------+---------------------------+-------------------+------------------------+--------+
       | XmNlabelPixmap		   | XmCLabelPixmap	       | Pixmap		   | XmUNSPECIFIED_PIXMAP   | CSG    |
       +---------------------------+---------------------------+-------------------+------------------------+--------+
       | XmNlabelString		   | XmCXmString	       | XmString	   | "\0"		    | CSG    |
       +---------------------------+---------------------------+-------------------+------------------------+--------+
       | XmNlabelType		   | XmCLabelType	       | unsigned char	   | XmSTRING		    | CSG    |
       +---------------------------+---------------------------+-------------------+------------------------+--------+
       | XmNmarginBottom	   | XmCMarginBottom	       | Dimension	   | 0			    | CSG    |
       +---------------------------+---------------------------+-------------------+------------------------+--------+
       | XmNmarginHeight	   | XmCMarginHeight	       | Dimension	   | 2			    | CSG    |
       +---------------------------+---------------------------+-------------------+------------------------+--------+
       | XmNmarginLeft		   | XmCMarginLeft	       | Dimension	   | 0			    | CSG    |
       +---------------------------+---------------------------+-------------------+------------------------+--------+
       | XmNmarginRight		   | XmCMarginRight	       | Dimension	   | 0			    | CSG    |
       +---------------------------+---------------------------+-------------------+------------------------+--------+
       | XmNmarginTop		   | XmCMarginTop	       | Dimension	   | 0			    | CSG    |
       +---------------------------+---------------------------+-------------------+------------------------+--------+
       | XmNmarginWidth		   | XmCMarginWidth	       | Dimension	   | 2			    | CSG    |
       +---------------------------+---------------------------+-------------------+------------------------+--------+
       | XmNmnemonic		   | XmCMnemonic	       | KeySym		   | NULL		    | N/A    |
       +---------------------------+---------------------------+-------------------+------------------------+--------+
       | XmNmnemonicCharSet	   | XmCMnemonicCharSet	       | String		   | XmFONTLIST_DEFAULT_TAG | N/A    |
       +---------------------------+---------------------------+-------------------+------------------------+--------+
       | XmNrecomputeSize	   | XmCRecomputeSize	       | Boolean	   | True		    | CSG    |
       +---------------------------+---------------------------+-------------------+------------------------+--------+
       | XmNrenderTable		   | XmCRenderTable	       | XmRenderTable	   | dynamic		    | CSG    |
       +---------------------------+---------------------------+-------------------+------------------------+--------+
       | XmNstringDirection	   | XmCStringDirection	       | XmStringDirection | dynamic		    | CSG    |
       +---------------------------+---------------------------+-------------------+------------------------+--------+
       +---------------------------+---------------------------+-------------------+------------------------+--------+

       +----------------------------------------------------------------------------------------------------+
       |			 |	      XmPrimitive|Resource Set	    |			   |	    |
       | Name			 | Class		 | Type		    | Default		   | Access |
       +-------------------------+-----------------------+------------------+----------------------+--------+
       | XmNbottomShadowColor	 | XmCBottomShadowColor	 | Pixel	    | dynamic		   | CSG    |
       +-------------------------+-----------------------+------------------+----------------------+--------+
       | XmNbottomShadowPixmap	 | XmCBottomShadowPixmap | Pixmap	    | XmUNSPECIFIED_PIXMAP | CSG    |
       +-------------------------+-----------------------+------------------+----------------------+--------+
       | XmNconvertCallback	 | XmCCallback		 | XtCallbackList   | NULL		   | C	    |
       +-------------------------+-----------------------+------------------+----------------------+--------+
       | XmNforeground		 | XmCForeground	 | Pixel	    | dynamic		   | CSG    |
       +-------------------------+-----------------------+------------------+----------------------+--------+
       | XmNhelpCallback	 | XmCCallback		 | XtCallbackList   | NULL		   | C	    |
       +-------------------------+-----------------------+------------------+----------------------+--------+
       | XmNhighlightColor	 | XmCHighlightColor	 | Pixel	    | dynamic		   | CSG    |
       +-------------------------+-----------------------+------------------+----------------------+--------+
       | XmNhighlightOnEnter	 | XmCHighlightOnEnter	 | Boolean	    | False		   | CSG    |
       +-------------------------+-----------------------+------------------+----------------------+--------+
       | XmNhighlightPixmap	 | XmCHighlightPixmap	 | Pixmap	    | dynamic		   | CSG    |
       +-------------------------+-----------------------+------------------+----------------------+--------+
       | XmNhighlightThickness	 | XmCHighlightThickness | Dimension	    | 2			   | CSG    |
       +-------------------------+-----------------------+------------------+----------------------+--------+
       | XmNlayoutDirection	 | XmCLayoutDirection	 | XmDirection	    | dynamic		   | CG	    |
       +-------------------------+-----------------------+------------------+----------------------+--------+
       | XmNnavigationType	 | XmCNavigationType	 | XmNavigationType | XmNONE		   | CSG    |
       +-------------------------+-----------------------+------------------+----------------------+--------+
       | XmNpopupHandlerCallback | XmCCallback		 | XtCallbackList   | NULL		   | C	    |
       +-------------------------+-----------------------+------------------+----------------------+--------+
       | XmNshadowThickness	 | XmCShadowThickness	 | Dimension	    | 2			   | CSG    |
       +-------------------------+-----------------------+------------------+----------------------+--------+
       | XmNtopShadowColor	 | XmCTopShadowColor	 | Pixel	    | dynamic		   | CSG    |
       +-------------------------+-----------------------+------------------+----------------------+--------+
       | XmNtopShadowPixmap	 | XmCTopShadowPixmap	 | Pixmap	    | dynamic		   | CSG    |
       +-------------------------+-----------------------+------------------+----------------------+--------+
       | XmNtraversalOn		 | XmCTraversalOn	 | Boolean	    | True		   | CSG    |
       +-------------------------+-----------------------+------------------+----------------------+--------+
       | XmNunitType		 | XmCUnitType		 | unsigned char    | dynamic		   | CSG    |
       +-------------------------+-----------------------+------------------+----------------------+--------+
       | XmNuserData		 | XmCUserData		 | XtPointer	    | NULL		   | CSG    |
       +-------------------------+-----------------------+------------------+----------------------+--------+
       +-------------------------+-----------------------+------------------+----------------------+--------+

       +----------------------------------------------------------------------------------------------------------------+
       |			       |	       Core Resource Set		|		       |	|
       | Name			       | Class			       | Type		| Default	       | Access	|
       +-------------------------------+-------------------------------+----------------+----------------------+--------+
       | XmNaccelerators	       | XmCAccelerators	       | XtAccelerators	| dynamic	       | CSG	|
       +-------------------------------+-------------------------------+----------------+----------------------+--------+
       | XmNancestorSensitive	       | XmCSensitive		       | Boolean	| dynamic	       | G	|
       +-------------------------------+-------------------------------+----------------+----------------------+--------+
       | XmNbackground		       | XmCBackground		       | Pixel		| dynamic	       | CSG	|
       +-------------------------------+-------------------------------+----------------+----------------------+--------+
       | XmNbackgroundPixmap	       | XmCPixmap		       | Pixmap		| XmUNSPECIFIED_PIXMAP | CSG	|
       +-------------------------------+-------------------------------+----------------+----------------------+--------+
       | XmNborderColor		       | XmCBorderColor		       | Pixel		| XtDefaultForeground  | CSG	|
       +-------------------------------+-------------------------------+----------------+----------------------+--------+
       | XmNborderPixmap	       | XmCPixmap		       | Pixmap		| XmUNSPECIFIED_PIXMAP | CSG	|
       +-------------------------------+-------------------------------+----------------+----------------------+--------+
       | XmNborderWidth		       | XmCBorderWidth		       | Dimension	| 0		       | CSG	|
       +-------------------------------+-------------------------------+----------------+----------------------+--------+
       | XmNcolormap		       | XmCColormap		       | Colormap	| dynamic	       | CG	|
       +-------------------------------+-------------------------------+----------------+----------------------+--------+
       | XmNdepth		       | XmCDepth		       | int		| dynamic	       | CG	|
       +-------------------------------+-------------------------------+----------------+----------------------+--------+
       | XmNdestroyCallback	       | XmCCallback		       | XtCallbackList	| NULL		       | C	|
       +-------------------------------+-------------------------------+----------------+----------------------+--------+
       | XmNheight		       | XmCHeight		       | Dimension	| dynamic	       | CSG	|
       +-------------------------------+-------------------------------+----------------+----------------------+--------+
       | XmNinitialResourcesPersistent | XmCInitialResourcesPersistent | Boolean	| True		       | C	|
       +-------------------------------+-------------------------------+----------------+----------------------+--------+
       | XmNmappedWhenManaged	       | XmCMappedWhenManaged	       | Boolean	| True		       | CSG	|
       +-------------------------------+-------------------------------+----------------+----------------------+--------+
       | XmNscreen		       | XmCScreen		       | Screen	*	| dynamic	       | CG	|
       +-------------------------------+-------------------------------+----------------+----------------------+--------+
       | XmNsensitive		       | XmCSensitive		       | Boolean	| True		       | CSG	|
       +-------------------------------+-------------------------------+----------------+----------------------+--------+
       | XmNtranslations	       | XmCTranslations	       | XtTranslations	| dynamic	       | CSG	|
       +-------------------------------+-------------------------------+----------------+----------------------+--------+
       | XmNwidth		       | XmCWidth		       | Dimension	| dynamic	       | CSG	|
       +-------------------------------+-------------------------------+----------------+----------------------+--------+
       | XmNx			       | XmCPosition		       | Position	| 0		       | CSG	|
       +-------------------------------+-------------------------------+----------------+----------------------+--------+
       | XmNy			       | XmCPosition		       | Position	| 0		       | CSG	|
       +-------------------------------+-------------------------------+----------------+----------------------+--------+
       +-------------------------------+-------------------------------+----------------+----------------------+--------+

   Callback Information
       A pointer to the	following structure is passed to each callback:

       typedef struct
       {
	       int reason;
	       XEvent *	event;
	       Window window;
	       int click_count;
       } XmDrawnButtonCallbackStruct;

       reason	 Indicates why the callback was	invoked.

       event	 Points	to the XEvent that triggered the  callback.   This  is
		 NULL for XmNresizeCallback.

       window	 Is set	to the window ID in which the event occurred.

       click_count
		 Contains the number of	clicks in the last multiclick sequence
		 if  the  XmNmultiClick	 resource is set to XmMULTICLICK_KEEP,
		 otherwise it contains 1.  The activate	 callback  is  invoked
		 for each click	if XmNmultiClick is set	to XmMULTICLICK_KEEP.

   Translations
       XmDrawnButton  includes	translations  from  Primitive.	Additional Xm-
       DrawnButton translations	are described in the following list.  The fol-
       lowing key names	are listed in the X standard key event translation ta-
       ble syntax.  This format	is the one used	by Motif to specify the	widget
       actions corresponding to	a given	key.  A	brief overview of  the	format
       is  provided  under  VirtualBindings(3).	 For a complete	description of
       the format, please refer	to the X Toolkit Instrinsics Documentation.

       c<Btn1Down>:
		 ButtonTakeFocus()

       ~c<Btn1Down>:
		 Arm()

       ~c<Btn1Down>,~c<Btn1Up>:
		 Activate() Disarm()

       ~c<Btn1Down>(2+):
		 MultiArm()

       ~c<Btn1Up>(2+):
		 MultiActivate()

       ~c<Btn1Up>:
		 Activate() Disarm()

       :<Key><osfActivate>:
		 PrimitiveParentActivate()

       :<Key><osfCancel>:
		 PrimitiveParentCancel()

       :<Key><osfSelect>:
		 ArmAndActivate()

       :<Key><osfHelp>:
		 Help()

       ~s ~m ~a	<Key>Return:
		 PrimitiveParentActivate()

       ~s ~m ~a	<Key>space:
		 ArmAndActivate()

   Action Routines
       The XmDrawnButton action	routines are

       Activate():
		 If XmNpushButtonEnabled is True, redraws the  shadow  in  the
		 unselected  state; otherwise, redraws the shadow according to
		 XmNshadowType.	 If the	pointer	 is  within  the  DrawnButton,
		 calls the XmNactivateCallback callbacks.

       Arm():	 If  XmNpushButtonEnabled  is  True, redraws the shadow	in the
		 selected state; otherwise, redraws the	 shadow	 according  to
		 XmNshadowType.	 Calls the callbacks for XmNarmCallback.

       ArmAndActivate():
		 If  XmNpushButtonEnabled  is  True, redraws the shadow	in the
		 selected state; otherwise, redraws the	 shadow	 according  to
		 XmNshadowType.	 Calls the callbacks for XmNarmCallback.

		 If XmNpushButtonEnabled is True, the shadow is	redrawn	in the
		 unselected  state; otherwise, the shadow is redrawn according
		 to XmNshadowType.  The	callbacks for XmNactivateCallback  and
		 XmNdisarmCallback  are	 called.   These actions happen	either
		 immediately or	at a later time.

       ButtonTakeFocus():
		 Causes	 the  PushButton   to	take   keyboard	  focus	  when
		 Ctrl<Btn1Down>	is pressed, without activating the widget.

       Disarm(): Marks	the  DrawnButton as unselected and calls the callbacks
		 for XmNdisarmCallback.

       Help():	 Calls the callbacks for XmNhelpCallback  if  any  exist.   If
		 there	are  no	 help  callbacks  for this widget, this	action
		 calls the help	callbacks for the nearest  ancestor  that  has
		 them.

       MultiActivate():
		 If  XmNmultiClick  is	XmMULTICLICK_DISCARD, this action does
		 nothing.

		 If XmNmultiClick is XmMULTICLICK_KEEP,	this action increments
		 click_count in	the callback structure.	  If  XmNpushButtonEn-
		 abled	is  True,  this	action redraws the shadow in the unse-
		 lected	state; otherwise, it redraws the shadow	 according  to
		 XmNshadowType.	  If  the  pointer  is within the DrawnButton,
		 this action calls the XmNactivateCallback callbacks and calls
		 the callbacks for XmNdisarmCallback.

       MultiArm():
		 If XmNmultiClick is XmMULTICLICK_DISCARD,  this  action  does
		 nothing.

		 If XmNmultiClick is XmMULTICLICK_KEEP and if XmNpushButtonEn-
		 abled is True,	this action redraws the	shadow in the selected
		 state;	otherwise, it redraws the shadow according to XmNshad-
		 owType	and calls the callbacks	for XmNarmCallback.

   Additional Behavior
       This widget has the following additional	behavior:

       <EnterWindow>:
		 Draws	the  shadow  in	its selected state if XmNpushButtonEn-
		 abled is True and if the cursor leaves	and re-enters the win-
		 dow while BSelect is pressed.

       <LeaveWindow>:
		 Draws the shadow in its unselected state if  XmNpushButtonEn-
		 abled	is True	and if the cursor leaves the window while BSe-
		 lect is pressed.

   Virtual Bindings
       The bindings for	virtual	keys are  vendor  specific.   For  information
       about bindings for virtual buttons and keys, see	VirtualBindings(3).

RELATED
       Core(3),	XmCreateDrawnButton, XmLabel(3), XmPrimitive(3), XmPushButton,
       XmSeparator(3), XmVaCreateDrawnButton, XmVaCreateManagedDrawnButton.

							      XmDrawnButton(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=XmDrawnButton&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help