aboutsummaryrefslogtreecommitdiff
path: root/libXaw/spec/Sme
diff options
context:
space:
mode:
Diffstat (limited to 'libXaw/spec/Sme')
-rw-r--r--libXaw/spec/Sme106
1 files changed, 106 insertions, 0 deletions
diff --git a/libXaw/spec/Sme b/libXaw/spec/Sme
new file mode 100644
index 000000000..48eaa1510
--- /dev/null
+++ b/libXaw/spec/Sme
@@ -0,0 +1,106 @@
+.\" $Xorg: Sme,v 1.3 2000/08/17 19:42:28 cpqbld Exp $
+.NH 2
+Sme Object
+.LP
+.XS
+ Sme Object
+.XE
+.IN "Sme object" "" "@DEF@"
+.sp
+.Ds 0
+.TA 2.0i
+.ta 2.0i
+Application Header file <X11/Xaw/Sme.h>
+.IN "Sme.h" ""
+Class Header file <X11/Xaw/SmeP.h>
+.IN "SmeP.h" ""
+Class smeObjectClass
+.IN "smeObjectClass" ""
+Class Name Sme
+.IN "Sme object" "class name"
+Superclass RectObj
+.De
+.sp
+.LP
+The Sme object is the base class for all menu entries. While this
+object is mainly intended to be subclassed, it may be used in a menu to
+add blank space between menu entries.
+.NH 3
+Resources
+.IN "SmeLine object" "resources"
+.LP
+The resources associated with the SmeLine object are defined in this
+section, and affect only the single menu entry specified by this object.
+There are no new resources added for this class, as it picks up all its
+resources from the RectObj class.
+.TS H
+lw(1.5i) lw(1i) lw(1i) lw(.5i) lw(2i).
+_
+.sp 3p
+.TB
+Name Class Type Notes Default Value
+.sp 3p
+_
+.TH
+.R
+.sp 3p
+ancestorSensitive AncestorSensitive Boolean True
+callback Callback XtCallbackList NULL
+destroyCallback Callback XtCallbackList NULL
+height Height Dimension 0
+international International Boolean C False
+sensitive Sensitive Boolean True
+width Width Dimension 1
+.sp 3p
+_
+.TE
+.As
+.Dc
+.Hw
+Keep in mind that the SimpleMenu widget will force all menu items to
+be the width of the widest entry.
+.Ix Bold
+.Se
+.NH 3
+Subclassing the Sme Object
+.IN "Sme object" "subclassing" "@DEF"
+.LP
+.sp
+To Create a new Sme object \fIclass\fP you will need to define three class methods.
+These methods allow the SimpleMenu to highlight and unhighlight the
+menu entry as the pointer cursor moves over it, as well as notify the
+entry when the user has selected it. All of
+these methods may be inherited from the Sme object, although the default
+semantics are not very interesting.
+.IP \fBHighlight\fP(\|) 1i
+.IN "Sme object" "Highlight method"
+Called to put the menu entry into the highlighted state.
+.IP \fBUnhighlight\fP(\|) 1i
+.IN "Sme object" "Unhighlight method"
+Called to return the widget to its normal (unhighlighted) state.
+.IP \fBNotify\fP(\|)
+.IN "Sme object" "Notify method"
+Called when the user selects this menu entry.
+.LP
+.sp
+Other then these methods, creating a new object
+is straight forward. Here is some information that may help you
+avoid some common mistakes.
+.IP 1) 3n
+Objects can be zero pixels high.
+.IP 2) 3n
+Objects draw on their parent's window, therefore the Drawing dimensions
+are different from those of widgets. For instance, y locations vary
+from \fBy\fP to \fBy + height\fP, not \fB0\fP to \fBheight\fP.
+.IP 3) 3n
+XtSetValues calls may come from the application while the Sme is highlighted,
+and if the SetValues method returns True, will result in an expose event.
+The SimpleMenu may later call the menu entry's \fBunhighlight\fP
+procedure. However, due to the asynchronous nature of
+X, the expose event generated by \fBXtSetValues\fP will come \fIafter\fP
+this unhighlight.
+.IP 4) 3n
+Remember that your subclass of the Sme does not own the
+window. Share the space with other menu entries, and refrain
+from drawing outside the subclass's own section of the menu.
+