aboutsummaryrefslogtreecommitdiff
path: root/libXaw/spec/CH4.intro
diff options
context:
space:
mode:
Diffstat (limited to 'libXaw/spec/CH4.intro')
-rw-r--r--libXaw/spec/CH4.intro87
1 files changed, 87 insertions, 0 deletions
diff --git a/libXaw/spec/CH4.intro b/libXaw/spec/CH4.intro
new file mode 100644
index 000000000..c11e42547
--- /dev/null
+++ b/libXaw/spec/CH4.intro
@@ -0,0 +1,87 @@
+.bp
+\&
+.sp 1
+.ce 3
+\s+1\fBChapter 4\fP\s-1
+
+\s+1\fBMenus\fP\s-1
+.sp 2
+.nr H1 4
+.nr H2 0
+.nr H3 0
+.nr H4 0
+.nr H5 0
+.na
+.LP
+.XS
+Chapter 4 - Menus
+.XE
+.IN "Menus" ""
+.LP
+The Athena widget set provides support for single paned non-hierarchical
+popup and pulldown menus. Since menus are such a common user interface
+tool, support for them must be provided in even the most basic widget
+sets. In menuing as in other areas, the Athena Widget Set provides only
+basic functionality.
+.LP
+Menus in the Athena widget set are implemented as a menu container (the
+SimpleMenu widget) and a collection of objects that comprise the
+menu entries. The SimpleMenu widget is itself a direct subclass of the
+OverrideShell widget class, so no other shell is necessary when
+creating a menu. The managed children of a SimpleMenu must be
+subclasses of the Sme (Simple Menu Entry) object.
+.LP
+The Athena widget set provides three classes of Sme objects that may be
+used to build menus.
+.sp
+.IP \fBSme\fP 1i
+.IN "Sme object" ""
+The base class of all menu entries. It may be used as a menu entry
+itself to provide blank space in a menu. ``Sme'' means ``Simple Menu
+Entry.''
+.IP \fBSmeBSB\fP 1i
+.IN "SmeBSB object" ""
+This menu entry provides a selectable entry containing a text string.
+A bitmap may also be placed in the left and right margins. ``BSB'' means
+``Bitmap String Bitmap.''
+.IP \fBSmeLine\fP 1i
+.IN "SmeLine object" ""
+This menu entry provides an unselectable entry containing a separator line.
+.sp
+.LP
+The SimpleMenu widget informs the window manager that it should ignore
+its window by setting the \fBOverride Redirect\fP flag. This is the
+correct behavior for the press-drag-release style of menu operation. If
+click-move-click or ``pinable''' menus are desired it is the
+responsibility of the application programmer, using the SimpleMenu
+resources, to inform the window manager of the menu.
+.LP
+To allow easy creation of pulldown menus, a MenuButton widget is
+also provided as part of the Athena widget set.
+.NH 2
+Using the Menus
+.XS
+ Using the Menus
+.XE
+.IN "Menus" "using"
+.LP
+The default configuration for the menus is press-drag-release.
+The menus will typically be
+activated by clicking a pointer button while the pointer is over a
+MenuButton, causing the menu to appear in a fixed location relative to
+that button; this is a \fBpulldown\fP menu. Menus may also be activated
+.IN "Menus" "pulldown"
+when a specific pointer and/or key sequence is used anywhere in the
+application; this is a \fBpopup\fP menu (e.g. clicking Ctrl-<pointer
+.IN "Menus" "popup"
+button 1> in the common application \fBxterm\fP). In this
+case the menu should be positioned under
+the cursor. Typically menus will be placed so the pointer cursor is on
+the first menu entry, or the last entry selected by the user.
+.LP
+The menu remains on the screen as long as the pointer button is held
+down. Moving the pointer will highlight different menu items.
+If the pointer leaves the menu, or moves over an entry that cannot
+be selected then no menu entry will highlighted. When the desired menu
+entry has been highlighted, releasing the pointer button removes the menu,
+and causes any mechanism associated with this entry to be invoked.