Edit

IABSD.fr/xenocara/doc/xorg-docs/specs/Xaw/SimpleMenu

Branch :

  • Show log

    Commit

  • Author : matthieu
    Date : 2006-11-29 16:49:19
    Hash : 80a99e45
    Message : Import specs from xorg-docs 1.3

  • doc/xorg-docs/specs/Xaw/SimpleMenu
  • .\" $Xorg: SimpleMenu,v 1.3 2000/08/17 19:42:27 cpqbld Exp $
    .NH 2
    SimpleMenu Widget
    .XS
    	SimpleMenu Widget
    .XE
    .IN "SimpleMenu widget" "" "@DEF@"
    .Ds 0
    .TA 2.0i
    .ta 2.0i
    .sp
    Application Header file	<X11/Xaw/SimpleMenu.h>
    .IN "SimpleMenu.h" ""
    Class Header file	<X11/Xaw/SimpleMenP.h>
    .IN "SimpleMenP.h" ""
    Class		simpleMenuWidgetClass
    .IN "simpleMenuWidgetClass" ""
    Class Name	SimpleMenu
    .IN "SimpleMenu widget" "class name"
    Superclass	OverrideShell
    .sp
    .De
    .LP
    The SimpleMenu widget is a container for the menu entries.  It is a
    direct subclass of shell, and is should be created with
    \fBXtCreatePopupShell\fP, not \fBXtCreateManagedWidget\fP.  This is the
    only part of the menu that
    actually is associated with a window.  The SimpleMenu serves as the glue to bind
    the individual menu entries together into a menu.
    .NH 3
    Resources
    .LP
    .IN "SimpleMenu widget" "resources"
    .LP
    The resources associated with the SimpleMenu widget control aspects
    that will affect the entire menu.  
    .TS H
    lw(1i) lw(1i) lw(1i) lw(.5i) lw(2i).
    _
    .sp 3p
    .TB
    Name	Class	Type	Notes	Default Value
    .sp 3p
    _
    .TH
    .R
    .sp 3p
    accelerators	Accelerators	AcceleratorTable		NULL
    ancestorSensitive	AncestorSensitive	Boolean	D	True
    allowShellResize	AllowShellResize	Boolean		True
    background	Background	Pixel		XtDefaultBackground
    backgroundPixmap	Pixmap	Pixmap		XtUnspecifiedPixmap
    backingStore	BackingStore	BackingStore		see below
    borderColor	BorderColor	Pixel		XtDefaultForeground
    borderPixmap	Pixmap	Pixmap		XtUnspecifiedPixmap
    borderWidth	BorderWidth	Dimension		1
    bottomMargin	VerticalMargins	Dimension		0
    children	ReadOnly	WidgetList	R	NULL
    createPopupChildProc	CreatePopupChildProc	Function		NULL
    colormap	Colormap	Colormap		Parent's Colormap
    cursor	Cursor	Cursor		None
    depth	Depth	int	C	Parent's Depth
    destroyCallback	Callback	XtCallbackList		NULL
    geometry	Geometry	String		NULL
    height	Height	Dimension		Enough space to contain all entries
    label	Label	String		NULL
    labelClass	LabelClass	Pointer		SmeBSBObjectClass
    mappedWhenManaged	MappedWhenManaged	Boolean		True
    menuOnScreen	MenuOnScreen	Boolean		True
    numChildren	ReadOnly	Cardinal	R	0
    overrideRedirect	OverrideRedirect	Boolean		True
    popdownCallback	Callback	XtCallbackList		NULL
    popupCallback	Callback	XtCallbackList		NULL
    popupOnEntry	PopupOnEntry	Widget	A	Label or first entry
    rowHeight	RowHeight	Dimension		0
    saveUnder	SaveUnder	Boolean		False
    screen	Screen	Screen	R	Parent's Screen
    sensitive	Sensitive	Boolean		True
    topMargin	VerticalMargins	Dimension		0
    translations	Translations	TranslationTable		See below
    visual	Visual	Visual		CopyFromParent
    width	Width	Dimension		Width of widest entry
    x	Position	Position		0
    y	Position	Position		0
    .sp 3p
    _
    .TE
    .Ac
    .As
    .IP \fBbackingStore\fP 1.5i
    .IN "conversions" "BackingStore"
    Determines what type of backing store will be used for the menu.  Legal
    values for this resource are \fBNotUseful\fP, \fBWhenMapped\fP, and
    \fBAlways\fP.  These values are the backing-store integers defined in
    <X11/X.h>.
    .Rs "notUseful, whenMapped, always, \fPand\fP default"
    If \fBdefault\fP is specified (the default behavior) the server will use
    whatever it thinks is appropriate.
    .Bg
    .Gp
    .Bc
    .Bp
    .Bw
    .IP \fBbottomMargin\fP 1.5i
    .br
    .ns
    .IP \fBtopMargin\fP 1.5i
    The amount of space between the top or bottom of the menu and the menu entry
    closest to that edge.
    .Ch
    .Cm
    .IP \fBcursor\fP 1.5i
    The shape of the mouse pointer whenever it is in this widget.
    .Dp
    .Dc
    .IP geometry 1.5i
    If this resource is specified it will override the x, y, width and
    height of this widget.  The format of this string is
    [<\fIwidth\fP>x<\fIheight\fP>][{+ -} <\fIxoffset\fP> {+ -}<\fIyoffset\fP>].
    .Hw
    .IP \fBlabel\fP 1.5i
    This label will be placed at the top of the SimpleMenu, and may not be
    highlighted.  The name of the 
    label object is \fBmenuLabel\fP.  Using this name it is possible to
    modify the label's attributes through the resource database.  When the label
    is created, the \fBlabel\fP is hard coded to the value of \fBlabel\fP, and
    \fBjustify\fP is hard coded as \fBXtJustifyCenter\fP.
    .IP \fBlabelClass\fP 1.5i
    Specifies the type of Sme object created as the menu label.
    .Mm
    .IP \fBmenuOnScreen\fP 1.5i
    If the menu is automatically positioned under the cursor with the
    \fBXawPositionSimpleMenu\fP action, and this resource is \fBTrue\fP,
    then the menu will always be fully visible on the screen.
    .Nc
    .IP overrideRedirect 1.5i
    Determines the value of the override_redirect attribute of the
    SimpleMenu's window.  The override_redirect attribute of a window
    determines whether or not a window manager may interpose itself between
    this window and the root window of the display.  For more information
    see the \fIInterclient Communications Conventions Manual\fP.
    .IP popdownCallback 1.5i
    .br
    .ns
    .IP popupCallback 1.5i
    These callback functions are called by the Xt Intrinsics whenever the
    shell is popped up or down (See \fI\*(xT\fP for details).
    .IP \fBpopupOnEntry\fP 1.5i
    The \fBXawPositionSimpleMenu\fP action will, by default, popup the
    SimpleMenu with its label (or first entry) directly under the 
    pointer.  To popup the menu under
    another entry, set this resource to the menu entry that should be
    under the pointer, when the menu is popped up.  This allows the
    application to offer the user a default menu entry that can be selected
    with out moving the pointer.
    .IP \fBrowHeight\fP 1.5i
    If this resources is zero (the default) then each menu entry will be
    given its desired height.  If this resource has any other value then
    all menu entries will be forced to be \fBrowHeight\fP pixels high.
    .IP saveUnder 1.5i
    If this is \fBTrue\fP then save unders will be active on the menu's window.
    .Sc
    .Se
    .Tr
    .Xy
    .NH 3
    SimpleMenu Actions
    .IN "SimpleMenu widget" "actions"
    .LP
    The SimpleMenu widget supports the following actions:
    .IP \(bu 5
    Switching the entry under the mouse pointer between 
    the foreground and background colors with \fBhighlight\fP
    and \fBunhighlight\fP
    .IP \(bu 5
    Processing menu entry callbacks with \fBnotify\fP
    .sp
    .LP
    .IN "SimpleMenu widget" "default translations"
    The following are the default translation bindings used 
    by the SimpleMenu widget:
    .LP
    .sp
    .Ds 0
    .TA .5i 2.25i
    .ta .5i 2.25i
    	<EnterWindow>:	highlight(\|)
    	<LeaveWindow>:	unhighlight(\|)
    	<BtnMotion>:	highlight(\|)
    	<BtnUp>:	MenuPopdown(\|) notify(\|) unhighlight(\|)
    .De
    .sp
    .LP
    .IN "SimpleMenu widget" "MenuPopdown routine"
    The user can pop down the menu without activating any of the callback
    functions by releasing the pointer button when no menu item is
    highlighted.
    .sp
    .LP
    The full list of actions supported by SimpleMenu is:
    .IP \fBhighlight\fP() 1.5i
    Highlight the menu entry that is currently under the pointer.
    Only a item that is highlighted will be notified when the \fBnotify\fP
    action is invoked.  The look of a highlighted entry is determined by
    the menu entry. 
    .IP \fBunhighlight\fP(\|) 1.5i
    Unhighlights the currently highlighted menu item, and returns it to
    its normal look.
    .IP \fBnotify\fP(\|) 1.5i
    Notifies the menu entry that is currently highlighted that is has been
    selected.  It is the responsibility of the menu entry to take the
    appropriate action.
    .IP \fBMenuPopdown\fP(\fImenu\fP)
    This action is defined in \fI\*(xT\fP.
    .IN "SimpleMenu widget" "MenuPopdown routine"
    .NH 3
    Positioning the SimpleMenu
    .IN "XawPositionSimpleMenu" "" "@DEF@"
    .IN "SimpleMenu widget" "positioning" "@DEF@"
    .LP
    If the SimpleMenu widget is to be used as a pulldown menu then the
    MenuButton widget, or some other outside means should be used to place
    the menu when it is popped up.
    .LP
    If popup menus are desired it will be necessary to add the
    \fBXawPositionSimpleMenu\fP and \fBMenuPopup\fP actions to the
    translation table of the widget that will be popping up the menu.  The
    \fBMenuPopup\fP action is described in \fI\*(xT\fP.
    \fBXawPositionSimpleMenu\fP is a global action procedure registered by
    the SimpleMenu widget when the first one is created or the convenience
    routine \fBXawSimpleMenuAddGlobalActions\fP is called.
    .LP
    Translation writers should be aware that Xt does not register grabs on
    ``don't care'' modifiers, and therefore the left hand side of the
    production should be written to exclude unspecified modifiers.
    For example these are the translations needed to popup some of
    \fBxterm's\fP menus: 
    .sp
    .LP
    .Ds 0
    .TA .5i 2.25i
    .ta .5i 2.25i
    	!Ctrl<Btn1Down>: XawPositionSimpleMenu(xterm) MenuPopup(xterm)
    	!Ctrl<Btn2Down>: XawPositionSimpleMenu(modes) MenuPopup(modes)
    .De
    .sp 1
    .LP
    .IP \fBXawPositionSimpleMenu\fP(\fImenu\fP) 2.25i
    The \fBXawPositionSimpleMenu\fP routine will search for the menu name
    passed to it using \fBXtNameToWidget\fP starting with the widget
    invoking the action as the reference widget.  If it is unsuccessful it
    will continue up the widget tree using each of the invoking widget's
    ancestors as the reference widget.  If it is still unsuccessful it will
    print a warning message and give up.  \fBXawPositionSimpleMenu\fP will
    position the menu directly under the pointer cursor.  The menu will be
    placed so that the pointer cursor is centered on the entry named by the
    \fBpopupOnEntry\fP resource.  If the \fBmenuOnScreen\fP resource is
    \fBTrue\fP then the menu will always be fully visible on the screen.
    .NH 3
    Convenience Routines
    .NH 4
    Registering the Global Action Routines
    .LP
    .IN "XawPositionSimpleMenu" ""
    The \fBXawPositionSimpleMenu\fP action routine may often be invoked
    before any menus have been created.  This can occur when an
    application uses dynamic menu creation.  In these cases an application will
    need to register this global action routine by calling
    \fBXawSimpleMenuAddGlobalActions\fP:
    .IN "XawSimpleMenuAddGlobalActions" "" "@DEF@"
    .FD 0
    void XawSimpleMenuAddGlobalActions(\fIapp_con\fP)
    .br
          XtAppContext \fIapp_con\fP;
    .FN
    .IP \fIapp_con\fP 1i
    Specifies the application context in which this action should be registered.
    .LP
    This function need only be called once per application and must be
    called before any widget that uses \fBXawPositionSimpleMenu\fP action
    is realized.
    .NH 4
    Getting and Clearing the Current Menu Entry
    .LP
    To get the currently highlighted menu entry use
    \fBXawSimpleMenuGetActiveEntry\fP:
    .IN "XawSimpleMenuGetActiveEntry" "" "@DEF@"
    .FD 0
    Widget XawSimpleMenuGetActiveEntry(\fIw\fP)
    .br
          Widget \fIw\fP;
    .FN
    .IP \fIw\fP 1i
    Specifies the SimpleMenu widget.
    .LP
    This function returns the menu entry that is
    currently highlighted, or NULL if no entry is highlighted. 
    .LP
    .sp
    To clear the SimpleMenu widget's internal information about the
    currently highlighted menu entry use
    \fBXawSimpleMenuClearActiveEntry\fP:
    .IN "XawSimpleMenuClearActiveEntry" "" "@DEF@"
    .FD 0
    Widget XawSimpleMenuClearActiveEntry(\fIw\fP)
    .br
          Widget \fIw\fP;
    .FN
    .IP \fIw\fP 1i
    Specifies the SimpleMenu widget.
    .LP
    This function unsets all internal references to the currently
    highlighted menu entry.  It does not \fIunhighlight\fP or otherwise
    alter the appearance of the active entry.  This function is primarily
    for use by implementors of menu entries.