[ Previous | Next | Contents | Glossary | Home | Search ]
Motif 2.1 Widget Writer's Guide


XmQTjoinSide

A child widget holding this trait can be attached to one side of a suitable parent widget

Format

#include <Xm/JoinSideT.h>
 
typedef struct {
        	int                     version;
        	XmJoinSideSetValueProc  setValue;
        	XmJoinSideGetValueProc  getValue;
} XmJoinSideTraitRec, *XmJoinSideTrait;
void
(*XmJoinSideSetValueProc)Widgetunsigned
charDimension
unsigned char
(*XmJoinSideGetValueProc)WidgetDimension

DESCRIPTION

A child widget holding the XmQTjoinSide trait knows how to affix itself to one side of its parent (assuming that the parent supports this trait). For example, the demonstration widget ExmTabButton can affix itself to one side of the XmNotebook widget. The affixed widget resembles a handle coming out of one side of the parent.

The join side is the side of the child widget that is joined to the parent. For example, if the join side of the child is the left side, then the left side of the child is affixed to the right side of the parent.

The join thickness is the shadow thickness of the parent. For example, if the parent has a shadow thickness of 4 pixels, then the join thickness must be 4 pixels. The child is responsible for providing visuals that make it appear that the child is attached or "growing out of" the parent. To do this, the child and parent must share a common join thickness on the join side. In other words, the child is responsible for drawing a visual "handle" that is as thick as the parent's shadow. The parent is responsible for telling the child what the join thickness is. The parent does this by calling the child's setValue trait method.

Although not required, the child may also want to clear part of the join side. The ExmTabButton demonstration widget does this to enhance the illusion that the child is affixed to its parent.

Child widgets holding this trait must provide the setValue trait method and should also provide the getValue trait method.

Currently, no standard Motif widgets hold this trait, and only the XmNotebook widget examines its children for this trait.

The setValue Trait Method
void setValueWidget
childWidgetunsigned char
join_sideDimension join_thickness

The setValue trait method is responsible for assigning the visual characteristics for the side of the child widget that gets joined to its parent.

childWidget
Specifies the child widget that is to be joined to its parent.

join_side
Specifies the side of the child widget that is to be joined to the parent. The join_side must be one of the following: XmNONE, XmLEFT, XmRIGHT, XmTOP, or XmBOTTOM. Specifying XmNONE means that the manager will not provide an open side. In other words, XmNONE should make the childWidget behave like a widget that does not hold the XmQTjoinSide trait.

join_thickness
Specifies the thickness (in pixels) of the shadow on the join side. A thickness of 0 means that the manager and child will not be joined.

The getValue Trait Method
unsigned char getValueWidget
childWidgetDimension *join_thickness

The getValue trait method is responsible for returning the visual characteristics for the side of the child widget that gets joined to its parent.

childWidget
Specifies the child widget that is to be joined to its parent.

join_thickness
Returns the thickness (in pixels) of the shadow on the join side.

This method must return a constant symbolizing the join side. The returned value must be one of the following: XmLEFT, XmRIGHT, XmTOP, XmBOTTOM, or XmNONE.

RELATED

ExmTabButton(3) and XmNotebook(3).


[ Previous | Next | Contents | Glossary | Home | Search ]