

        OSF/Motif Style Guide
        Help Menu


        HHeellpp MMeennuu





        DDeessccrriippttiioonn



             There are two acceptable models for the contents of the
             HHeellpp Menu.  The _O_S_F/_M_o_t_i_f _S_t_y_l_e _G_u_i_d_e allows either
             model.

             The common Menu contents for this model are described
             in the following text.  Note that you should only
             include those functions actually supported by your
             application.  The HHeellpp Menu can contain a
             TearoffButton.  The illustration on this reference page
             shows this first a HHeellpp Menu.

             OOnn CC__oonntteexxtt   SShhiifftt++HHeellpp
                            Must initiate context-sensitive help by   *
                            changing the shape of the pointer to the  *
                            question pointer described in Section     *
                            2.2.2.  When the user moves the pointer   *
                            to the component help is wanted on and    *
                            presses BBSSeelleecctt, any available context-   *
                            sensitive help for the component must be  *
                            presented, and the pointer reverts from   *
                            the question pointer.  This action must   *
                            have the mnemonic CC.  If the action uses
                            an accelerator, it should be <<SShhiifftt>>
                            <<HHeellpp>>.

             OOnn HH__eellpp        Must provide information on how to use    *
                            the application's help facility.  This    *
                            action must have the mnemonic HH.

             OOnn WW__iinnddooww      Must provide general information about    *
                            the window from which help was            *
                            requested.  This action must have the     *
                            mnemonic WW.

             OOnn KK__eeyyss        Must provide information about the        *
                            application's use of function keys,       *
                            mnemonics, and keyboard accelerators.     *
                            This action must have the mnemonic KK.





        9-48                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                           Help Menu


             II__nnddeexx          Must provide an index for all help        *
                            information in the application.  This     *
                            action must have the mnemonic II.  The
                            index can provide search capabilities.

             TT__uuttoorriiaall       Must provide access to the application's  *
                            tutorial.  This action must have the      *
                            mnemonic TT.

             OOnn VV__eerrssiioonn     Must provide the name and version of the  *
                            application.  This action must have the   *
                            mnemonic VV.  It can provide other
                            information as well.

             The common Menu contents in the second model are
             described in the following text.  Note that you should
             only include those functions actually supported by your
             application.  The HHeellpp Menu can contain a
             TearoffButton.

             CC__oonntteexxtt--SSeennssiittiivvee HHeellpp   SShhiifftt++HHeellpp
                            Must initiate context-sensitive help by   *
                            changing the shape of the pointer to the  *
                            question pointer described in Section     *
                            2.2.2.  When the user moves the pointer   *
                            to the component help is wanted on and    *
                            presses BBSSeelleecctt, any available context-   *
                            sensitive help for the component must be  *
                            presented, and the pointer reverts from   *
                            the question pointer.  This action        *
                            should be followed by a separator.  This  *
                            action must have the mnemonic CC.  If the
                            action uses an accelerator, it should be
                            <<SShhiifftt>> <<HHeellpp>>.

             OO__vveerrvviieeww       Must provide general information about    *
                            the application window from which help    *
                            was requested.  This action must have     *
                            the mnemonic OO.

             II__nnddeexx          Must provide an index for all help        *
                            information in the application.  This     *
                            action must have the mnemonic II.  The
                            index can provide search capabilities.

             KK__eeyybbooaarrdd       Must provide information about the        *
                            application's use of function keys,       *
                            mnemonics, and keyboard accelerators.     *
                            This action must have the mnemonic KK.




        May 8, 1992                                             9-49








        OSF/Motif Style Guide
        Help Menu


             TT__uuttoorriiaall       Must provide access to the application's  *
                            tutorial.  This action must have the      *
                            mnemonic TT.

             UUssiinngg HH__eellpp     Must provide information on how to use    *
                            the application's help facility.  This    *
                            action must have the mnemonic HH.

             PP__rroodduucctt IInnffoorrmmaattiioonn Must provide the name and version    *
                            of the application.  This action must     *
                            have the mnemonic PP.  It can provide
                            other information as well.

             Applications should place additional HHeellpp Menu items
             between IInnddeexx and UUssiinngg HHeellpp.

             Help is usually provided in DialogBoxes, but may also
             appear in the message area.  You should include Menu
             items in the order described.  If you add new Menu
             items, you should insert them near similar elements.



        IIlllluussttrraattiioonn





























        9-50                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                           Help Menu


        RReellaatteedd IInnffoorrmmaattiioonn


             See Chapter 6 for more information on the MenuBar
             system, and for general information about Menu design.
















































        May 8, 1992                                             9-51








        OSF/Motif Style Guide
        Icon Menu


        IIccoonn MMeennuu





        DDeessccrriippttiioonn


             Clicking BBSSeelleecctt in an icon must give the icon keyboard  *
             focus and post the icon Menu.  The icon Menu must be     *
             the same Menu as the window Menu for the associated      *
             primary window.  SSiizzee should not be available from the   *
             icon Menu.



        RReellaatteedd IInnffoorrmmaattiioonn


             See Chapter 7 for more information on the icon Menu and
             the window manager in general.  See Chapter 6 for
             information about Menu design.






























        9-52                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                             IconBox


        IIccoonnBBooxx





        DDeessccrriippttiioonn


             An IconBox is a specialized window that acts as a
             storage location for icons.  The illustration on this
             reference page shows a typical IconBox.

             The window manager must allow the IconBox to have all    *
             the same components as any other primary window.  Like
             other windows, it can be sized, moved, minimized,
             maximized, restored, and lowered.  However, the window   *
             manager must not allow the IconBox to be closed.  The    *
             system Menu action CClloossee must be replaced with the       *
             system Menu action PPaacckk IIccoonnss in an IconBox.  PPaacckk
             IIccoonnss arranges the icons as close as possible together
             in the visible icon area.  PPaacckk IIccoonnss must have the      *
             mnemonic PP.  If PPaacckk IIccoonnss has an accelerator, it        *
             should be <<AAlltt>> <<FF1122>> if <<FF1122>> is available.

             The IconBox can contain an icon for each window family,
             even if it is active.  The icon for minimized window     *
             families must be the same as the icon would be outside   *
             of the IconBox.  The icon for an active window family
             should be similar to the minimized icon, deemphasized
             somehow, and without the icon image border.

             Clicking BBSSeelleecctt in an icon must give the icon keyboard  *
             focus and can post the icon Menu.  The icon Menu must    *
             be the same Menu as the window Menu for the associated   *
             primary window.  If the icon represents an active        *
             window family, RReessttoorree, SSiizzee, MMiinniimmiizzee, and MMaaxxiimmiizzee     *
             must not be available from the icon Menu.  If the icon   *
             represents a minimized window family, SSiizzee should not    *
             be available from the icon Menu.                         *

             Double-clicking BBSSeelleecctt anywhere in an icon that         *
             represents a minimized window family must restore the    *
             window family, just as the icon Menu item RReessttoorree.       *
             Double-clicking BBSSeelleecctt anywhere in an icon that         *
             represents an active window family must raise the        *
             window family to the top of the window hierarchy.        *
             Pressing BBSSeelleecctt or BBTTrraannssffeerr anywhere in the icon and   *
             dragging the mouse pointer must move the icon within     *
             the icon area to track the pointer, just as the icon     *



        May 8, 1992                                             9-53








        OSF/Motif Style Guide
        IconBox


             Menu item MMoovvee does.



        IIlllluussttrraattiioonn

















        RReellaatteedd IInnffoorrmmaattiioonn


             See Chapter 7 for more information about icons and the
             window manager.


























        9-54                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                               Icons


        IIccoonnss





        DDeessccrriippttiioonn


             A window icon is a minimized representation of a window
             or window family that can help organize windows and
             tasks in the display.  The window manager must iconify   *
             all windows of a window family together.  The            *
             application running inside of a window must continue     *
             running even when the application is iconified.

             An icon is made up of an image, a border, and a label.
             The illustration on this reference page shows a typical
             Motif icon.

             The image must be surrounded by a border that indicates  *
             when the icon has the keyboard focus.  The image area
             can contain text or a bitmap.  The label must be         *
             located just below the image and its border.  The label
             can also indicate when the icon has the keyboard focus.
             The label should contain the same text as the title bar
             of the corresponding primary window, or an abbreviated
             form of it.  When the icon does not have the keyboard    *
             focus, the width of the label must be the same as the    *
             width of the image area and its border.  The text must   *
             be centered in the label unless it is too large to fit   *
             in the label, in which case the text should be left      *
             justified in the label and any extra text truncated.
             When the icon has the keyboard focus, the width of the
             label can expand to display the entire text.  The        *
             expanded label must be centered on the icon unless it    *
             would push off the screen, in which case the label
             should be as close to center as is possible while
             keeping the entire label visible.

             Clicking BBSSeelleecctt in an icon must give the icon keyboard  *
             focus and should post the icon Menu.  If BBSSeelleecctt does    *
             not post the icon Menu, BBMMeennuu or <<MMeennuu>> (or <<SShhiifftt>>      *
             <<FF1100>> if <<MMeennuu>> is not available) should popup the icon  *
             Menu.  Double-clicking BBSSeelleecctt anywhere in the icon      *
             must restore the window family, just as the icon Menu    *
             item RReessttoorree.  Pressing BBSSeelleecctt anywhere in the icon     *
             and dragging the mouse pointer must move the icon to     *
             track the pointer, just as the icon Menu item MMoovvee.




        May 8, 1992                                             9-55








        OSF/Motif Style Guide
        Icons


        IIlllluussttrraattiioonn












        RReellaatteedd IInnffoorrmmaattiioonn


             See Chapter 7 for more information about icons and the
             window manager.



































        9-56                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                   InformationDialog


        IInnffoorrmmaattiioonnDDiiaalloogg





        DDeessccrriippttiioonn


             An InformationDialog should be used to convey
             information to the user.  It must not interrupt the      *
             user's interaction with the application.  It should
             include an information symbol, a message, and one of
             the following button arrangements.

             OOKK
             OOKK HHeellpp



        IIlllluussttrraattiioonn

















        RReellaatteedd IInnffoorrmmaattiioonn


             For more information, see the reference page for
             DialogBox.










        May 8, 1992                                             9-57








        OSF/Motif Style Guide
        Input Devices


        IInnppuutt DDeevviicceess





        DDeessccrriippttiioonn


             The most typical pointing device is a mouse, although a
             graphics tablet, track ball, joystick, and other tools
             also work as pointing devices.  You can use any
             pointing device in place of a mouse.  This guide
             assumes that a mouse, or any pointing device, has the
             following three buttons.  Chapter 2 describes the
             button bindings for pointing devices that do not have
             three buttons.

             BBSSeelleecctt   Used for selection, activation, and setting
                       the location cursor.  This button must be the  *
                       leftmost button, except for left-handed users  *
                       where it can be the rightmost button.

             BBTTrraannssffeerr Used for moving and copying elements.  This    *
                       button must be the middle mouse button,        *
                       unless dragging is integrated with selection.
                       Details about the effects of integrating
                       BBTTrraannssffeerr with BBSSeelleecctt are described in
                       Chapter 4.

             BBMMeennuu     Used for popping up Menus.  This button must   *
                       be the rightmost button, except for left-      *
                       handed users where it can be the leftmost      *
                       button.

             Since not all keyboards are the same, it is difficult
             to give style guidelines that are correct for every
             manufacturer's keyboard.  To solve this problem, this
             guide describes keys using a model keyboard mechanism.
             Wherever keyboard input is specified, the keys are
             indicated by the engraving they have on the OSF/Motif
             model keyboard. The model keyboard does not correspond
             directly to any existing keyboard, rather it assumes a
             keyboard with an ideal set of keys.

             In addition to the standard letter, number and
             character keys, the OSF/Motif model keyboard is
             composed of the following special keys:





        9-58                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                       Input Devices


                +o The special printing characters <<//>>, <<\\>>, and <<!!>>

                +o The standard modifier keys <<CCttrrll>>, <<AAlltt>>, and
                  <<SShhiifftt>>

                +o Ten function keys <<FF11>> through <<FF1100>>

                +o The arrow keys <<||vv>>, <<<<-->>, <<-->>>>, and <<||^^>>

                +o <<BBaacckkssppaaccee>>

                +o <<CCaanncceell>>

                +o <<DDeelleettee>>

                +o <<EEnndd>>

                +o <<EEssccaappee>>

                +o <<HHeellpp>>

                +o <<HHoommee>>

                +o <<IInnsseerrtt>>

                +o <<MMeennuu>>

                +o <<PPaaggeeDDoowwnn>>

                +o <<PPaaggeeUUpp>>

                +o <<RReettuurrnn>>

                +o <<SSppaaccee>>

                +o <<TTaabb>>

             The OSF/Motif model keyboard also contains the
             following optional keys, which although useful, are
             either not necessary or may be created by combinations
             of other keys:

                +o <<CCaappssLLoocckk>>

                +o <<CCooppyy>>

                +o <<CCuutt>>

                +o <<EEnntteerr>>




        May 8, 1992                                             9-59








        OSF/Motif Style Guide
        Input Devices


                +o <<MMooddeeSSwwiittcchh>>

                +o <<NNuummLLoocckk>>

                +o <<PPaaggeeLLeefftt>>

                +o <<PPaaggeeRRiigghhtt>>

                +o <<PPaassttee>>

                +o <<SSccrroollllLLoocckk>>

                +o <<SSeelleecctt>>

                +o <<UUnnddoo>>

             Throughout this guide, behavior is described in terms
             of model keyboard keys.  When a behavior takes
             advantage of an optional key from the model keyboard,
             it is also described in terms of the required special
             keys.  Each of the keys described on the OSF/Motif       *
             model keyboard must be available either as specified or  *
             by using other keys or key combinations if the           *
             specified key is unavailable.



        RReellaatteedd IInnffoorrmmaattiioonn


             See Chapter 2 for a more information about input
             devices.





















        9-60                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                               Label


        LLaabbeell





        DDeessccrriippttiioonn


             A Label should be used to display text or graphics that
             label other components.  This component must be          *
             composed of an area for displaying a text or graphics    *
             label.



        IIlllluussttrraattiioonn









        NNaavviiggaattiioonn


             A Label must have no internal navigation.                *























        May 8, 1992                                             9-61








        OSF/Motif Style Guide
        Layout Groups


        LLaayyoouutt GGrroouuppss





        DDeessccrriippttiioonn


             Layout groups are used for organizing components into
             groups as described in the following text:

             CCoommppoossiittiioonn      Organizes a collection of components,
                              including groups, in an arbitrary
                              layout.

             PPaanneeddWWiinnddooww      A linear grouping of components and
                              Sashes.  Sashes are used to set the
                              boundary between two components.  The
                              separated components are called Panes
                              and can contain any components.



        NNaavviiggaattiioonn


             Layout groups must follow the navigation model as        *
             described in Chapter 3.



        RReellaatteedd IInnffoorrmmaattiioonn


             For more information, see the reference pages for each
             layout group.
















        9-62                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                                List


        LLiisstt





        DDeessccrriippttiioonn


             A List should be used to present a list of elements for
             selection.  The List elements can be selected using
             either the single selection model, the browse selection
             model, the multiple selection model, or the
             discontiguous selection model.  This component must be   *
             composed of an area for presenting a list of text or     *
             graphics elements.  It can optionally have vertical and
             horizontal ScrollBars, which show different views of
             the List elements.

             The location cursor in a List should differentiate
             between normal mode and add mode.  The location cursor
             should be a solid box in normal mode and a dashed box
             in add mode.



        IIlllluussttrraattiioonn


























        May 8, 1992                                             9-63








        OSF/Motif Style Guide
        List


        NNaavviiggaattiioonn


             The following text describes the navigation actions of
             this component.

             <<CCttrrll>> <<BBeeggiinn>>
                       Must move the location cursor to the first     *
                       item in the List.

             <<CCttrrll>> <<EEnndd>>
                       Must move the location cursor to the last      *
                       item in the List.

             <<||^^>>       Must move the location cursor to the previous  *
                       item in the List.

             <<||vv>>       Must move the location cursor to the next      *
                       item in the List.

             <<PPaaggeeDDoowwnn>>
                       Must move the location cursor to the item one  *
                       page down in the List.                         *

             <<PPaaggeeUUpp>>  Must move the location cursor to the item one  *
                       page up in the List.



        OOtthheerr OOppeerraattiioonnss


             The following text describes the operations of this
             component:

             BBSSeelleecctt CClliicckk 22
                       Should select the current List item and cause  *
                       any default action for the window to occur.

             <<BBeeggiinn>>
                       Must move the horizontal scroll region so      *
                       that the leftmost edge of the List is          *
                       visible.

             <<EEnndd>>
                       Must move the horizontal scroll region so      *
                       that the rightmost edge of the List is         *
                       visible.





        9-64                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                                List


             <<<<-->>      Must scroll the List one character to the      *
                       left.

             <<PPaaggeeLLeefftt>> or <<CCttrrll>> <<PPaaggeeUUpp>>
                       Must scroll the List one page to the left.     *

             <<-->>>>      Must scroll the List one character to the      *
                       right.

             <<PPaaggeeRRiigghhtt>> or <<CCttrrll>> <<PPaaggeeDDoowwnn>>
                       Must scroll the List one page to the right.    *

             <<HHeellpp>>    Must provide any available help for the List.  *



        RReellaatteedd IInnffoorrmmaattiioonn


             For more information on List element selection, see the
             description of the selection models in Chapter 4.  For
             more information about the ScrollBars, see the
             reference page for ScrollBar.






























        May 8, 1992                                             9-65








        OSF/Motif Style Guide
        MainWindow


        MMaaiinnWWiinnddooww





        DDeessccrriippttiioonn


             A MainWindow should be used to organize the contents of
             a primary window.  A MainWindow must frame the client    *
             area and can optionally include ScrollBars, a MenuBar,
             a command area, and a message area.



        IIlllluussttrraattiioonn




































        9-66                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                          MainWindow


        NNaavviiggaattiioonn


             A MainWindow must follow the navigation model described  *
             in Chapter 3.



        RReellaatteedd IInnffoorrmmaattiioonn


             For more information about the components of the
             MainWindow, see the reference pages for MenuBar,
             ScrollBar, and Text.







































        May 8, 1992                                             9-67








        OSF/Motif Style Guide
        MenuBar


        MMeennuuBBaarr





        DDeessccrriippttiioonn


             A MenuBar should be used to organize the most common
             features of an application.  The MenuBar must be a       *
             horizontal bar at the top edge of the application just   *
             below the title area of the window frame.  The MenuBar
             contains a list of Menu topics in CascadeButtons with
             PullDown Menus connected to them.  Commands must not be  *
             included as topics in the MenuBar because they inhibit   *
             Menu browsing.  Each Menu topic should have a single
             letter mnemonic indicated by an underline.

             The following Menus pulled down from the MenuBar
             provide general functions common to most applications.

             FF__iillee      The FFiillee Menu should contain components for
                       performing actions on the files, such as
                       opening, saving, closing, and printing.  It
                       should also contain components for performing
                       actions on the application as a whole, such
                       as quitting.  If the Label FFiillee is not
                       appropriate to the context of your
                       application, you can choose a different, more
                       appropriate Label.  If your application        *
                       includes a FFiillee Menu, it must be the first     *
                       entry in the MenuBar, and must be placed to    *
                       the far left.  The FFiillee Menu should have a
                       mnemonic of FF.

             SS__eelleecctteedd  The SSeelleecctteedd Menu should contain components
                       for performing actions on the current
                       selection of the application, such as opening
                       or printing a selected item.  This Menu is
                       often similar to the FFiillee Menu, except that
                       it acts on the current selection.  For
                       example, OOppeenn in the FFiillee Menu prompts (using
                       a DialogBox) for a file to open, while in the
                       SSeelleecctteedd Menu the currently selected file is
                       opened.  The SSeelleecctteedd Menu should not contain
                       editing functions normally found in the EEddiitt
                       Menu.  If your application includes a          *
                       SSeelleecctteedd Menu, it must be placed to the right  *
                       of the FFiillee Menu.  The SSeelleecctteedd Menu should



        9-68                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                             MenuBar


                       have a mnemonic of SS.

             EE__ddiitt      The EEddiitt Menu should contain components for
                       performing actions on the current data of the
                       application, such as an undo action or making
                       global substitutions in a block of text.  It
                       should also include components for
                       interacting with the system clipboard, such
                       as cut, copy, and paste.  If your application  *
                       includes an EEddiitt Menu, it must be placed to    *
                       the right of the SSeelleecctteedd Menu.  The EEddiitt
                       Menu should have a mnemonic of EE.

             VV__iieeww      The VViieeww Menu should contain components for
                       changing the user's view on the data.
                       Components in the VViieeww Menu should not
                       actually change the data.  The exact contents
                       of the VViieeww Menu are application specific,
                       but it may include components that change the
                       appearance of the data, the amount of data
                       that is displayed, or the order in which the
                       data is displayed.  If your application        *
                       includes a VViieeww Menu, it must be placed to     *
                       the right of the EEddiitt Menu.  The VViieeww Menu
                       should have a mnemonic of VV.

             OO__ppttiioonnss   The OOppttiioonnss Menu should contain components
                       for a user to customize the application.  The
                       exact contents of the OOppttiioonnss Menu are
                       application specific.  If your application     *
                       includes an OOppttiioonnss Menu, it must be placed    *
                       to the right of the VViieeww Menu.  The OOppttiioonnss
                       Menu should have a mnemonic of OO.

             HH__eellpp      The HHeellpp Menu should contain components that
                       provide user help facilities.  The components
                       in the HHeellpp Menu usually bring up a DialogBox
                       with help information.  Every application
                       should have a HHeellpp Menu.  If your application  *
                       includes a HHeellpp Menu, it must be the last      *
                       Menu item and placed to the far right on the   *
                       MenuBar.  The HHeellpp Menu should have a
                       mnemonic of HH.

             While we recommended that you include the common Menus
             in the MenuBar of your application, your choice of Menu
             titles and items depends on the nature of your
             application.  If your application requires it, you
             should design more relevant titles and selections, but
             do not change the meanings of words used in the common



        May 8, 1992                                             9-69








        OSF/Motif Style Guide
        MenuBar


             Menus.

             The recommended contents of the FFiillee, EEddiitt, and HHeellpp
             Menus are described on their own reference pages.  The
             contents of the VViieeww and OOppttiioonnss Menus are application
             specific and are not specified here.  Each of these
             common Menus can contain a TearoffButton.



        IIlllluussttrraattiioonn











        NNaavviiggaattiioonn


             The MenuBar follows the navigation model described in
             Chapter 3.



        OOtthheerr OOppeerraattiioonnss


             The following text describes the operations of this
             component:

             <<HHeellpp>>           Must provide any available help for     *
                              the current CascadeButton.



        RReellaatteedd IInnffoorrmmaattiioonn


             For information about the suggested contents of these
             Menus, see the reference pages for File Menu, Edit
             Menu, and Help Menu.






        9-70                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                               Menus


        MMeennuuss





        DDeessccrriippttiioonn


             Menus should be used to organize a collection of basic
             controls in a horizontal, vertical, or 2-dimensional
             layout within a separate Menu window.  There are three
             types of Menus: PullDown, Popup, and Option.  A Menu is
             only available while it is posted.



        IIlllluussttrraattiioonn























        NNaavviiggaattiioonn


             Menus follow the navigation model described in Chapter
             3.







        May 8, 1992                                             9-71








        OSF/Motif Style Guide
        Menus


        OOtthheerr OOppeerraattiioonnss


             The following text describes the operations of this
             component:

             <<HHeellpp>>    Must provide any available help for the Menu.  *



        RReellaatteedd IInnffoorrmmaattiioonn


             For more information, see the reference pages for
             CascadeButton, OptionButton, and MenuBar.






































        9-72                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                      MessageDialogs


        MMeessssaaggeeDDiiaallooggss





        DDeessccrriippttiioonn


             MessageDialogs should be used to convey a message to
             the user.  They must not interrupt the user's            *
             interaction with the application.  They should include
             a message, and one of the following button
             arrangements.

             OOKK
             OOKK HHeellpp
             OOKK CCaanncceell
             OOKK CCaanncceell HHeellpp
             YYeess NNoo
             YYeess NNoo HHeellpp
             YYeess NNoo CCaanncceell
             YYeess NNoo CCaanncceell HHeellpp
             CCaanncceell
             CCaanncceell HHeellpp
             RReettrryy CCaanncceell
             RReettrryy CCaanncceell HHeellpp

             There are a number of different types of
             MessageDialogs:  ErrorDialog, InformationDialog,
             QuestionDialog, WorkingDialog, and WarningDialog.



        RReellaatteedd IInnffoorrmmaattiioonn


             For more information, see the reference pages for
             DialogBox, ErrorDialog, InformationDialog,
             QuestionDialog, WorkingDialog, and WarningDialog.













        May 8, 1992                                             9-73








        OSF/Motif Style Guide
        Mnemonics


        MMnneemmoonniiccss





        DDeessccrriippttiioonn


             A mnemonic is a single character that can be associated
             with any component that contains a text label.  The      *
             label must contain the character, and the character      *
             must be underlined within the label.  The mnemonic
             should be the first character of the label.  If a label  *
             does not naturally contain the character of the          *
             mnemonic, the mnemonic must be placed in parentheses     *
             following the label.  Labels can also be sequentially
             numbered, and the number can serve as the mnemonic.
             Labels that are duplicated within an application should
             be given the same mnemonic.  Mnemonics must be case      *
             insensitive for activation.  Either an uppercase or
             lowercase letter can be underlined in the label.

             When the location cursor is within a Menu, or a          *
             MenuBar, typing the mnemonic character of a component    *
             within that Menu or MenuBar must move the location       *
             cursor to the component and activate it.  If a mnemonic  *
             is used for an OptionButton or for a CascadeButton in a  *
             MenuBar, typing <<AAlltt>> and the mnemonic anywhere in the   *
             window or its Menus must move the cursor to the          *
             component with that mnemonic and must activate it.

             Collections can also support mnemonics associated with
             its elements.  Typing a mnemonic while the collection    *
             has the keyboard focus must be equivalent to moving the  *
             location cursor to the element and typing <<SSeelleecctt>> or    *
             <<SSppaaccee>>.
















        9-74                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                          Navigation


        NNaavviiggaattiioonn





        DDeessccrriippttiioonn


             Using a mouse, navigation is a simple matter of moving
             the mouse pointer.  Using the keyboard, the following    *
             component navigation actions must be available.

             <<TTaabb>> or <<CCttrrll>> <<TTaabb>>
                            Must move the location cursor forward     *
                            through fields.  If the next field is a   *
                            field control, <<TTaabb>> or <<CCttrrll>> <<TTaabb>>      *
                            must move the location cursor to it.  If  *
                            the next field is a group, <<TTaabb>> or       *
                            <<CCttrrll>> <<TTaabb>> must move the location       *
                            cursor to the first traversable           *
                            component within the group, unless the    *
                            field contains a default component.  If   *
                            the field contains a default component,   *
                            <<TTaabb>> or <<CCttrrll>> <<TTaabb>> must move the       *
                            location cursor to the default component  *
                            instead of the first component.

             <<SShhiifftt>> <<TTaabb>> or <<CCttrrll>> <<SShhiifftt>> <<TTaabb>>
                            Must move the location cursor backward    *
                            through fields using the same rules as    *
                            <<TTaabb>> or <<CCttrrll>> <<TTaabb>>.

             <<||vv>>            In a left-to-right direction language     *
                            environment, <<||vv>> must move the location   *
                            cursor through all traversable            *
                            components in a field group or elements   *
                            in a field control, starting at the       *
                            upper left component or element and       *
                            ending at the lower right component or    *
                            element, then wrapping back up to the     *
                            upper left component element.  In a
                            right-to-left direction language
                            environment, the location cursor can
                            move, starting at the upper right and
                            moving to the lower left.

             <<||^^>>            Must move the location cursor through     *
                            all traversable components or elements    *
                            in the opposite direction of <<||vv>>.



        May 8, 1992                                             9-75








        OSF/Motif Style Guide
        Navigation


             <<-->>>>           Must move the location cursor through     *
                            all traversable components in a field     *
                            group or elements in a field control,     *
                            starting at the upper left component or   *
                            element and ending at the lower right     *
                            component or element, then wrapping back  *
                            up to the upper left component or         *
                            element.

             <<<<-->>           Must move the location cursor through     *
                            all traversable components or elements    *
                            in the opposite direction of <<-->>>>.

             <<CCttrrll>> <<||vv>>     In a field control that uses vertical
                            navigation, <<CCttrrll>> <<||vv>> should move one
                            large increment in the direction of <<||vv>>.  *
                            If a field uses controlled vertical       *
                            navigation, it must use simple            *
                            directional navigation.  If a field does
                            not use controlled vertical navigation,
                            <<CCttrrll>> <<||vv>> should be used for component
                            navigation in the same way as <<||vv>>.

             <<CCttrrll>> <<||^^>>     In a field control that uses vertical
                            navigation, <<CCttrrll>> <<||^^>> should move one
                            large increment in the direction of <<||^^>>.  *
                            If a field uses controlled vertical       *
                            navigation, it must use simple            *
                            directional navigation.  If a field does
                            not use controlled vertical navigation,
                            <<CCttrrll>> <<||^^>> should be used for component
                            navigation in the same way as <<||^^>>.

             <<CCttrrll>> <<-->>>>    In a field control that uses horizontal
                            navigation, <<CCttrrll>> <<-->>>> should move one
                            large increment in the direction of
                            <<-->>>>.  If a field uses controlled         *
                            horizontal navigation, it must use        *
                            simple directional navigation.  If a
                            field does not use controlled horizontal
                            navigation, <<CCttrrll>> <<-->>>> should be used
                            for component navigation in the same way
                            as <<-->>>>.

             <<CCttrrll>> <<<<-->>    In a field control that uses horizontal
                            navigation, <<CCttrrll>> <<<<-->> should move one
                            large increment in the direction of
                            <<<<-->>.  If a field uses controlled         *
                            horizontal navigation, it must use        *
                            simple directional navigation.  If a



        9-76                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                          Navigation


                            field does not use controlled horizontal
                            navigation, <<CCttrrll>> <<<<-->> should be used
                            for component navigation in the same way
                            as <<<<-->>.

             <<PPaaggeeDDoowwnn>>     In a scrollable field component,          *
                            <<PPaaggeeDDoowwnn>> must behave in a parallel      *
                            manner to <<||vv>>, except that it must move   *
                            the location cursor in full page          *
                            increments as defined by the size of the  *
                            scrolled window.

             <<PPaaggeeUUpp>>       In a scrollable field component,          *
                            <<PPaaggeeUUpp>> must behave in a parallel        *
                            manner to <<||^^>>, except that it must move   *
                            the location cursor in full page          *
                            increments as defined by the size of the  *
                            scrolled window.

             <<PPaaggeeRRiigghhtt>> or <<CCttrrll>> <<PPaaggeeDDoowwnn>>
                            In a scrollable field component,          *
                            <<PPaaggeeRRiigghhtt>> and <<CCttrrll>> <<PPaaggeeDDoowwnn>> must    *
                            behave in a parallel manner to <<-->>>>,      *
                            except that they must move the location   *
                            cursor in full page increments as         *
                            defined by the size of the scrolled       *
                            window.

             <<PPaaggeeLLeefftt>> or <<CCttrrll>> <<PPaaggeeUUpp>>
                            In a scrollable field component,          *
                            <<PPaaggeeLLeefftt>> and <<CCttrrll>> <<PPaaggeeUUpp>> must       *
                            behave in a parallel manner to <<<<-->>,      *
                            except that they must move the location   *
                            cursor in full page increments as         *
                            defined by the size of the scrolled       *
                            window.

             <<FF1100>>          If the MenuBar is inactive, <<FF1100>> must    *
                            traverse to the MenuBar system.  The      *
                            location cursor must be placed on the     *
                            first CascadeButton that accepts input    *
                            in the MenuBar.  If there are no          *
                            CascadeButtons that accept input in the   *
                            MenuBar, <<FF1100>> must do nothing.  If the   *
                            MenuBar system is active, <<FF1100>> must      *
                            unpost all Menus in the MenuBar system    *
                            and return the location cursor to the     *
                            component that previously had it, if the  *
                            focus policy is explicit.  <<SShhiifftt>>        *
                            <<MMeennuu>> must replace <<FF1100>> if <<FF1100>> is     *



        May 8, 1992                                             9-77








        OSF/Motif Style Guide
        Navigation


                            not available.

             <<MMeennuu>>         If the keyboard focus is on an element    *
                            with an inactive Popup Menu and the       *
                            context of the element allows a Popup     *
                            Menu to be displayed, <<MMeennuu>> must post    *
                            (activate) the Popup Menu.  The location  *
                            cursor must be placed on the first        *
                            traversable item in the Popup Menu.
                            Note that the availability of the the
                            Popup Menu can depend on the location of
                            the cursor within the element, the
                            contents of the element, or the
                            selection state of the element.  If
                            there are no traversable items in the
                            Popup Menu, it is up to the system and
                            the application whether to post the Menu
                            or not.

                            If there is an active Popup Menu, <<MMeennuu>>  *
                            must unpost the Popup Menu system and     *
                            return the location cursor to the         *
                            component that previously had it, if the  *
                            focus policy is explicit.  <<SShhiifftt>> <<FF1100>>  *
                            must replace <<MMeennuu>> if <<MMeennuu>> is not      *
                            available.

             <<AAlltt>> <<FF66>>
                            Must move the focus to the next window    *
                            in the window family.

             <<AAlltt>> <<SShhiifftt>> <<FF66>>
                            Must move the focus to the previous       *
                            window in the window family.

             <<AAlltt>> <<TTaabb>>    Must move the focus to the last window    *
                            that had the input focus in the next      *
                            window family in the window hierarchy.

             <<AAlltt>> <<SShhiifftt>> <<TTaabb>>
                            Must move the focus to previous window    *
                            that had the input focus in the next      *
                            window family in the window hierarchy.










        9-78                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                          Navigation


        RReellaatteedd IInnffoorrmmaattiioonn


             See Chapter 3 for more information about internal
             window navigation.  See Chapter 7 for more information
             about navigation among windows.















































        May 8, 1992                                             9-79








        OSF/Motif Style Guide
        OptionButton


        OOppttiioonnBBuuttttoonn





        DDeessccrriippttiioonn


             An OptionButton should be used to post an Option Menu.

             This component must be composed of a button, with        *
             either a text or graphics Label.  Following the Label,
             this component should also include a bar graphic to
             distinguish it from a PushButton.  The Label must be     *
             the last selection made from the OptionButton.



        IIlllluussttrraattiioonn








        NNaavviiggaattiioonn


             An OptionButton must have no internal navigation.        *



        OOtthheerr OOppeerraattiioonnss


             The following text describes the operations of this
             component.

             BBSSeelleecctt PPrreessss
                       Must activate the OptionButton and post the    *
                       associated Option Menu.

             BBSSeelleecctt RReelleeaassee
                       If the release is within the same              *
                       OptionButton as the press, BBSSeelleecctt RReelleeaassee     *
                       must deactivate the OptionButton and leave     *
                       the associated Option Menu posted.  If the     *



        9-80                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                        OptionButton


                       release is outside of the OptionButton,        *
                       BBSSeelleecctt RReelleeaassee must deactivate the            *
                       OptionButton and unpost the associated Option  *
                       Menu.

             <<SSeelleecctt>> oorr <<SSppaaccee>>
                       Must post the associated Option Menu.          *

             MMAAnnyy <<CCaanncceell>>
                       Must unpost the last posted Menu in the Menu   *
                       system without changing the value of the       *
                       OptionButton.

             <<HHeellpp>>    Must provide any available help for the        *
                       OptionButton.



        RReellaatteedd IInnffoorrmmaattiioonn


             For more information, see the reference page for Menus.































        May 8, 1992                                             9-81








        OSF/Motif Style Guide
        PanedWindow


        PPaanneeddWWiinnddooww





        DDeessccrriippttiioonn


             A PanedWindow should be used to group components into
             Panes separated by Sashes and Separators for adjusting
             the relative size of each Pane.  This component must be  *
             composed of any number of groups of components, called   *
             Panes, each separated by a Sash and a Separator.  The    *
             Panes, Sashes, and Separators must be grouped linearly,  *
             either horizontally or vertically.  A Sash must be       *
             composed of a handle on the Separator between two Panes  *
             for adjusting the position of the Separator, and         *
             therefore the size of the Panes next to it.

             As a Sash is moved, the Pane in the direction of the     *
             Sash movement must get smaller and the other Pane must   *
             get larger by an equal amount.  If a Pane is adjusted    *
             to its minimum size, adjustment must continue with the   *
             next Pane in the direction of the Sash movement.



        IIlllluussttrraattiioonn
























        9-82                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                         PanedWindow


        NNaavviiggaattiioonn


             This component must follow the navigation model          *
             described in Chapter 3.



        RReellaatteedd IInnffoorrmmaattiioonn


             For information about activating a Sash, see the
             reference page for Sash.








































        May 8, 1992                                             9-83








        OSF/Motif Style Guide
        Panel


        PPaanneell





        DDeessccrriippttiioonn


             A Panel group should be used to organize a collection
             of basic controls in a horizontal, vertical, or 2-
             dimensional layout.  This component is usually composed
             of just one type of basic control.  This component is
             composed of an area for organizing basic controls.



        IIlllluussttrraattiioonn














        NNaavviiggaattiioonn


             The <<||vv>>, <<<<-->>, <<-->>>>, and <<||^^>> direction keys must         *
             navigate among components in the Panel according to the  *
             navigation model described in Chapter 3.















        9-84                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                      Pointer Shapes


        PPooiinntteerr SShhaappeess





        DDeessccrriippttiioonn


             You should not create new mouse pointer shapes for
             functions that already have mouse pointer shapes
             associated with them, except for localization; however,
             you can create new mouse pointer shapes for functions
             not already associated with a pointer shape.  You must   *
             not use a predefined shape to symbolize a function it    *
             was not designed to represent.

             A list of the defined pointer shapes follows, along
             with their usage and hotspots.  The hotspot of a
             pointer is the actual position on the pointer that
             tracks the movements of the mouse.  As the pointer       *
             changes from one shape to another, the location of the   *
             hotspot must not move on the screen.  The hotspot is
             the precise location on the pointer where mouse actions
             occur.


             Arrow    The upper-left pointing arrow pointer is a
                      general-purpose pointer.  It is used in most
                      window areas for single-object selection and
                      activation.  The hotspot for the arrow pointer
                      should be in the point of the arrow.


             I-beam   You can optionally use an I-beam pointer in
                      any Text component.  It is used to change the
                      location of the text insertion cursor and to
                      perform actions on text.  If the I-beam is
                      used, it can be hidden during the time between
                      any keyboard action and a mouse movement.
                      This helps the user distinguish the I-beam
                      pointer from the text insertion cursor, which
                      can also be an I-beam.  The hotspot for the
                      I-beam pointer should be on the vertical bar
                      of the I-beam about one-third up from the
                      bottom.


             X        The X pointer can indicate when the pointer is
                      outside of any application area.  The hotspot



        May 8, 1992                                             9-85








        OSF/Motif Style Guide
        Pointer Shapes


                      for the X pointer should be where the lines
                      intersect.


             Resize   The resize pointers indicate positions for
                      area resize, and they remain during a resize
                      operation.  The direction of the arrow in the
                      pointer indicates the direction of increasing
                      size.  The horizontal and vertical pointers
                      indicate resize in either the horizontal or
                      vertical direction.  The diagonal pointers
                      indicate resize in both the horizontal and
                      vertical directions simultaneously.  The
                      hotspot for the resizing pointers should be on
                      the elbow or the line at the position pointed
                      to by the arrow.


             Hourglass The hourglass pointer, a working pointer,
                      indicates that an action is in progress in the
                      area, and that the pointer has no effect in
                      the area.  While the hourglass pointer is
                      active, all mouse button and keyboard events
                      are ignored in the area.  The hotspot for the
                      hourglass pointer should be located at the
                      center of the hourglass, although it should
                      not be used for activation.  The hourglass
                      pointer can be used interchangeably with the
                      watch pointer.


             Watch    The watch pointer, a working pointer,
                      indicates that an action is in progress in the
                      area, and that the pointer has no effect in
                      the area.  While the watch pointer is active,
                      all mouse button and keyboard events are
                      ignored in the area.  The hotspot for the
                      watch pointer should be located at the top of
                      the watch, although it should not be used for
                      activation.  The watch pointer can be used
                      interchangeably with the hourglass pointer.


             Moving   The 4-directional arrow pointer indicates a
                      move operation is in progress, or a resize
                      operation before the resize direction has been
                      determined.  During a move operation, the
                      object, or an outline of the object should
                      move to track the location of the pointer.
                      During a resize operation, the pointer is used



        9-86                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                      Pointer Shapes


                      to indicate a direction for resizing.  The 4-
                      directional arrow pointer should change to the
                      appropriate resize arrow when the resize
                      direction is determined, either by crossing an
                      object boundary with the pointer or by
                      pressing a keyboard direction key.  The
                      hotspot for the 4-directional arrow pointer
                      should be at the spot where the arrows
                      intersect.


             Sighting The sighting pointer is used to make fine
                      position selections.  For example, in a
                      drawing program it may be used to indicate a
                      pixel to fill or the connecting points of
                      lines.  The hotspot for the sighting pointer
                      should be at the spot where the lines
                      intersect.


             Caution  The caution pointer is used to indicate that
                      action is expected in another area before
                      input can be given to the current area, and
                      that the pointer has no effect in the area.
                      While the caution pointer is active, all mouse
                      button and keyboard events are ignored in the
                      area.  The hotspot for the caution pointer
                      should be located at the center of the caution
                      symbol, although it should not be used for
                      activation.


             Question The question pointer is used to request an
                      input position or component from the user.
                      This is often used to input an object for
                      interactive help.  The user requests
                      interactive help, then the question pointer is
                      displayed to allow the user to indicate what
                      position or component help is requested for.
                      The hotspot for the question pointer should be
                      at the bottom of the question mark.


             Other Arrow You can optionally use an arrow pointing to
                      the upper-right corner to indicate a pending
                      Menu action.  This shape indicates that a Menu
                      is popped up or pulled down and waiting for a
                      Menu item to be activated or the Menu to be
                      removed.  The hotspot for this arrow pointer
                      should be in the point of the arrow.



        May 8, 1992                                             9-87








        OSF/Motif Style Guide
        Pointer Shapes


        RReellaatteedd IInnffoorrmmaattiioonn


             See Chapter 2 for information on the input device model
             and designing new pointer shapes.
















































        9-88                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                         Popup Menus


        PPooppuupp MMeennuuss





        DDeessccrriippttiioonn


             The common Popup Menu contents are described as
             follows.  Note that you should only include those
             functions actually supported by your application.  The
             illustration on this reference page shows a Popup Menu.

             PPrrooppeerrttiieess__
                    Must display a properties DialogBox that the      *
                    user can use to set properties of the component.
                    If the Menu is popped up over a selection, it
                    can display properties of the selection.  If the
                    Menu is popped up over an unselected item, it
                    can display properties of that item.  If the
                    Menu is popped up over the background, it should
                    display properties of the collection, except
                    over a part of the background considered to be
                    in the selection.

             UU__nnddoo   AAlltt++BBaacckkssppaaccee
                    Must reverse the most recently executed action.   *
                    To provide a visual cue to the user, the UUnnddoo
                    selection title should be dynamically modified
                    to indicate what is being undone.  For example,
                    if the most recently executed action was a
                    paste, the action name would be UUnnddoo ppaassttee.       *
                    This action must have the mnemonic UU.  If this    *
                    action has an accelerator, it must be <<AAlltt>>       *
                    <<BBaacckkSSppaaccee>>.

             PPrriimmaarryy MMoovvee   AAlltt++SShhiifftt++DDeelleettee
                    Must move the contents of the primary selection   *
                    to the component.  This action must only be used  *
                    in an editable component.  If the action uses an
                    accelerator, it should be <<AAlltt>> <<SShhiifftt>>
                    <<DDeelleettee>>.  If more than one format can be moved
                    from the primary selection, PPrriimmaarryy CCooppyy can
                    cascade a Menu of possible transfer formats, in
                    which case it should not have an accelerator.

             PPrriimmaarryy CCooppyy   AAlltt++CCttrrll++IInnsseerrtt
                    Must copy the contents of the primary selection   *
                    to the component.  This action must only be used  *



        May 8, 1992                                             9-89








        OSF/Motif Style Guide
        Popup Menus


                    in an editable component.  If the action uses an
                    accelerator, it should be <<AAlltt>> <<CCttrrll>> <<IInnsseerrtt>>.
                    If more than one format can be copied from the
                    primary selection, PPrriimmaarryy CCooppyy can cascade a
                    Menu of possible transfer formats, in which case
                    it should not have an accelerator.

             PPrriimmaarryy LLiinnkk
                    Must place a link to the primary selection in     *
                    the component.  This action must only be used in  *
                    an editable component.  If the link can be
                    viewed in more than one way, PPrriimmaarryy LLiinnkk can
                    cascade a Menu of possible transfer formats.

             CCuutt   SShhiifftt++DDeelleettee
                    Must cut elements to the clipboard and can mark   *
                    them for use in a subsequent PPaassttee LLiinnkk           *
                    operation. If the Menu is popped up in a          *
                    selection, the entire selection must be cut.  If
                    the Menu is popped up over an unselected
                    element, just that element should be cut.  If
                    the Menu is popped up in the background, the
                    entire collection can be cut.  If the action      *
                    uses an accelerator, it should be <<SShhiifftt>>         *
                    <<DDeelleettee>>.

             CCooppyy   CCttrrll++IInnsseerrtt
                    Must copy elements to the clipboard and can mark  *
                    them for use in a subsequent PPaassttee LLiinnkk           *
                    operation.  If the Menu is popped up in a         *
                    selection, the entire selection must be copied.
                    If the Menu is popped up over an unselected
                    element, just that element should be copied.  If
                    the Menu is popped up in the background, the
                    entire collection can be copied.  If the action   *
                    uses an accelerator, it must be <<CCttrrll>> <<IInnsseerrtt>>,  *
                    which always copies the selection to the          *
                    clipboard

             CCooppyy LLiinnkk
                    Must copy a link of elements to the clipboard     *
                    and can mark them for use in a subsequent PPaassttee   *
                    LLiinnkk operation.  If the Menu is popped up in a    *
                    selection, a link to the entire selection must    *
                    be copied.  If the Menu is popped up over an
                    unselected element, a link to just that element
                    should be copied.  If the Menu is popped up in
                    the background, a link to the entire collection
                    can be copied.




        9-90                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                         Popup Menus


             PPaassttee   SShhiifftt++IInnsseerrtt
                    Must paste the contents of the clipboard to the   *
                    component.  This action must only be used in an   *
                    editable component.  If the action uses an
                    accelerator, it should be <<SShhiifftt>> <<IInnsseerrtt>>.

             PPaassttee LLiinnkk
                    Must paste a link of the contents of the          *
                    clipboard to the component.  This action must     *
                    only be used in an editable component.

             SSeelleecctt AAllll   CCttrrll++//
                    Must make the primary selection consist of all    *
                    the elements in the collection with the Popup     *
                    Menu.  If the action uses an accelerator, it
                    should be <<CCttrrll>> <<//>>.

             SSeelleecctt PPaasstteedd
                    Must make the last element or elements pasted     *
                    into the collection into the primary selection.

             RReesseelleecctt   AAlltt++IInnsseerrtt
                    Must reselect the last selected element or        *
                    elements in the component to the primary          *
                    selection.  The action must only be available in  *
                    components that do not support persistent         *
                    selections when the current selection is null.
                    If the action uses an accelerator, it should be
                    <<AAlltt>> <<IInnsseerrtt>>.

             PPrroommoottee   AAlltt++IInnsseerrtt
                    Must promote the current selection to the         *
                    primary selection.  This action must only be      *
                    available in components that support persistent   *
                    selections.  If the action uses an accelerator,
                    it should be <<AAlltt>> <<IInnsseerrtt>>.

             DDeesseelleecctt AAllll   CCttrrll++\\
                    Must deselect the current selection in the        *
                    collection with the Popup Menu.  If the action
                    uses an accelerator, it should be <<CCttrrll>> <<\\>>.

             CCllee__aarr  If the Menu is popped up in a slection, it must   *
                    delete the selection.  If the Menu is popped up
                    over an unselected element, it should delete
                    that element.  If the Menu is popped up over the
                    background, except over a part of the background
                    considered to be in the selection, it can delete
                    all the elements.  The remaining data is not
                    compressed to fill the space that was occupied



        May 8, 1992                                             9-91








        OSF/Motif Style Guide
        Popup Menus


                    by the cleared data.  This action must have the   *
                    mnemonic EE.

             DD__eelleettee Must remove a selected portion of data from the   *
                    client area without copying it to a clipboard     *
                    buffer.  If the Menu is popped up in a slection,  *
                    it must delete the selection.  If the Menu is
                    popped up over an unselected element, it should
                    delete that element.  If the Menu is popped up
                    over the background, except over a part of the
                    background considered to be in the selection, it
                    can delete all the elements.  This action must    *
                    have the mnemonic DD.

             The words EElleemmeenntt, SSeelleeccttiioonn, or CCoolllleeccttiioonn should be
             added to a Label to specify which elements are
             affected.  Within a single control, such as a Canvas,
             the contents of a Popup Menu can depend on the position
             within the control, or the state of the elements at
             that position, such as whether the Menu is popped up
             from within a selected range of elements.



        IIlllluussttrraattiioonn




























        9-92                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                         Popup Menus


        RReellaatteedd IInnffoorrmmaattiioonn


             See Chapter 6 for more information on Popup Menus, and
             for general information about Menu design.
















































        May 8, 1992                                             9-93








        OSF/Motif Style Guide
        Primary Selection


        PPrriimmaarryy SSeelleeccttiioonn





        DDeessccrriippttiioonn



             Each collection maintains its own selection.  A
             selection need not contain any elements, in which case
             it is said to be a null selection.  At any time, there
             is one selection called the primary selection, which is
             the last selection explicitly started by the user.

             Clicking BBSSeelleecctt or <<CCttrrll>> BBSSeelleecctt only moves the
             primary selection to a collection when it results in
             making a nonnull selection.  When <<SShhiifftt>> BBSSeelleecctt is
             clicked, an implementation can move the primary
             selection to the component even if the resulting
             selection is null.  Dragging BBSSeelleecctt, <<SShhiifftt>> BBSSeelleecctt,   *
             or <<CCttrrll>> BBSSeelleecctt must move the primary selection to     *
             the component if a button release during the pointer     *
             motion could have potentially selected any element.

             A selection is said to be persistent if it is
             highlighted even when it is not the primary selection.

             PPeerrssiisstteenntt
                  There are two variants of persistent selections:
                  persistent always, in which the current selection
                  is always highlighted, and persistent on focus, in
                  which the current selection is only highlighted
                  when it is the primary selection or when the
                  collection has the keyboard focus.  In either
                  case, stronger highlighting should be used when
                  the current selection is also the primary
                  selection.  When focus is in the collection, <<AAlltt>>
                  <<IInnsseerrtt>> can be used to promote the current
                  selection to the primary selection.

             NNoonnppeerrssiisstteenntt
                  The collection only highlights a primary
                  selection.  When the primary selection is lost to
                  another collection, the current selection is set
                  to null.  When focus is in the collection, and it
                  does not have the primary selection, <<AAlltt>>
                  <<IInnsseerrtt>> can be used to restore the previous
                  selection and make it the primary selection.



        9-94                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                   Primary Selection


             Collections that are never editable (such as non-
             editable Lists) should always use persistent
             selections.  Collections that are editable can either
             use persistent or nonpersistent selections.

             Primary transfer can be invoked by clicking BBTTrraannssffeerr
             or though standard keyboard bindings.  There are three
             primary transfer operations:

             PPrriimmaarryy CCooppyy
                  BBTTrraannssffeerr CClliicckk or <<CCttrrll>> BBTTrraannssffeerr CClliicckk must      *
                  copy the primary selection to the pointer           *
                  location.  <<AAlltt>> <<CCooppyy>> or <<AAlltt>> <<CCttrrll>> <<IInnsseerrtt>>    *
                  must copy the primary selection to the insert       *
                  cursor of the target component (see Section 4.2.2   *
                  to determine the target component).

             PPrriimmaarryy MMoovvee
                  <<SShhiifftt>> BBTTrraannssffeerr CClliicckk must move the primary       *
                  selection to the pointer location.  <<AAlltt>> <<CCuutt>> or  *
                  <<AAlltt>> <<SShhiifftt>> <<DDeelleettee>> must move the primary        *
                  selection to the insert cursor of the target        *
                  component.

             PPrriimmaarryy LLiinnkk
                  <<CCttrrll>> <<SShhiifftt>> BBTTrraannssffeerr CClliicckk must place a link    *
                  to the primary selection at the pointer location.



        RReellaatteedd IInnffoorrmmaattiioonn


             See Section 4.2 for more information about the primary
             selection.


















        May 8, 1992                                             9-95








        OSF/Motif Style Guide
        PromptDialog


        PPrroommppttDDiiaalloogg





        DDeessccrriippttiioonn


             A PrompDialog should be used to prompt the user for
             input.  It can interrupt the user's interaction with
             the application.  It should include a message, a text
             input area, and one of the following button
             arrangements:

             OOKK CCaanncceell
             OOKK CCaanncceell HHeellpp
             OOKK AAppppllyy CCaanncceell
             OOKK AAppppllyy CCaanncceell HHeellpp
             OOKK AAppppllyy RReesseett CCaanncceell
             OOKK AAppppllyy RReesseett CCaanncceell HHeellpp



        IIlllluussttrraattiioonn


















        RReellaatteedd IInnffoorrmmaattiioonn


             For more information, see the reference page for
             DialogBox.





        9-96                                             May 8, 1992








                        Controls, Groups, and Models Reference Pages
                                                          PushButton


        PPuusshhBBuuttttoonn





        DDeessccrriippttiioonn


             A PushButton should be used to start an operation.  A    *
             PushButton must contain either a text or graphic Label   *
             that indicates the operation of the button.



        IIlllluussttrraattiioonn









        NNaavviiggaattiioonn


             A PushButton must have no internal navigation.           *



        OOtthheerr OOppeerraattiioonnss


             The following text describes the operations of this
             component.

             BBSSeelleecctt PPrreessss
                       Must arm the PushButton.                       *

             BBSSeelleecctt RReelleeaassee
                       If the release is within the same PushButton   *
                       as the press, BBSSeelleecctt RReelleeaassee must disarm the  *
                       PushButton and activate it.  If the release    *
                       is outside of the PushButton, BBSSeelleecctt RReelleeaassee  *
                       must disarm the PushButton without activating  *
                       it.





        May 8, 1992                                             9-97








        OSF/Motif Style Guide
        PushButton


             <<EEnntteerr>> oorr <<RReettuurrnn>>
                       Must activate the PushButton.                  *

             <<SSeelleecctt>> oorr <<SSppaaccee>>
                       Must activate the PushButton.                  *

             <<HHeellpp>>    Must provide any available help for the        *
                       PushButton.













































        9-98                                             May 8, 1992






 >
