123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810 |
- <!-- $XConsortium: ch06.sgm /main/10 1996/09/08 19:46:58 rws $ -->
- <!-- (c) Copyright 1995 Digital Equipment Corporation. -->
- <!-- (c) Copyright 1995 Hewlett-Packard Company. -->
- <!-- (c) Copyright 1995 International Business Machines Corp. -->
- <!-- (c) Copyright 1995 Sun Microsystems, Inc. -->
- <!-- (c) Copyright 1995 Novell, Inc. -->
- <!-- (c) Copyright 1995 FUJITSU LIMITED. -->
- <!-- (c) Copyright 1995 Hitachi. -->
- <chapter id="RDMAP.recin.div.1">
- <title id="RDMAP.recin.mkr.1">Recommended Integration</title>
- <para>The<indexterm><primary>recommended integration <$startrange></primary></indexterm><indexterm><primary>levels of
- integration</primary><secondary>recommended <$startrange></secondary></indexterm><indexterm><primary>integration</primary><secondary>recommended <$startrange></secondary></indexterm> Common Desktop Environment contains
- components and guidelines to use so that your application will integrate
- well with other applications on the desktop. This chapter provides an overview
- of each recommended component and guideline that you should use to enhance
- your application's level of consistency with the desktop.</para>
- <informaltable id="RDMAP.recin.itbl.1" frame="All">
- <tgroup cols="1">
- <colspec colname="1" colwidth="4.0 in">
- <tbody>
- <row rowsep="1">
- <entry><para><!--Original XRef content: 'Help System46'--><xref role="JumpText"
- linkend="RDMAP.recin.mkr.2"></para></entry></row>
- <row rowsep="1">
- <entry><para><!--Original XRef content: 'ToolTalk Messaging Service47'--><xref
- role="JumpText" linkend="RDMAP.recin.mkr.3"></para></entry></row>
- <row rowsep="1">
- <entry><para><!--Original XRef content: 'Session Manager50'--><xref role="JumpText"
- linkend="RDMAP.recin.mkr.9"></para></entry></row>
- <row rowsep="1">
- <entry><para><!--Original XRef content: 'Drag and Drop52'--><xref role="JumpText"
- linkend="RDMAP.recin.mkr.10"></para></entry></row>
- <row rowsep="1">
- <entry><para><!--Original XRef content: 'Internationalization54'--><xref role="JumpText"
- linkend="RDMAP.recin.mkr.11"></para></entry></row>
- <row rowsep="1">
- <entry><para><!--Original XRef content: 'Standard Font Names55'--><xref role="JumpText"
- linkend="RDMAP.recin.mkr.12"></para></entry></row>
- <row rowsep="1">
- <entry><para><!--Original XRef content: 'Displaying Error Messages from Your
- Application57'--><xref role="JumpText" linkend="RDMAP.recin.mkr.13"></para></entry>
- </row>
- <row rowsep="1">
- <entry><para>Printing ??
- </para></entry>
- </row>
- <row rowsep="1">
- <entry><para><!--Original XRef content: 'User Customization Issues59'--><xref
- role="JumpText" linkend="RDMAP.recin.mkr.14"></para></entry></row></tbody>
- </tgroup></informaltable>
- <note>
- <para>In addition to incorporating the components and following the guidelines
- in this section, you should also follow the basic integration steps outlined
- in <!--Original XRef content: 'Chapter 5, &xd2;Basic Application Integration'--><xref
- role="ChapNumAndTitle" linkend="RDMAP.BIntg.mkr.1">.</para>
- </note>
- <para>For more information on recommended integration, see the <emphasis>Programmer's Guide</emphasis>.</para>
- <sect1 id="RDMAP.recin.div.2">
- <title id="RDMAP.recin.mkr.2">Help System</title>
- <para>The Common Desktop Environment Help system is a complete system for
- developing and displaying online help for application software. It enables
- authors to write online help that includes rich graphics and text formatting,
- hyperlinks, and access to the Help system from within the application. The
- Help system provides a programmer's toolkit for integrating the help facilities
- into an application.</para>
- <para>Creating and integrating online help into an application can be done
- as a collaborative project. Developers design and implement how an application
- responds to a user's request for help. Authors organize and write the actual
- help information that is displayed.</para>
- <para>The Help system includes support for authors and programmers.</para>
- <sect2 id="RDMAP.recin.div.3">
- <title>For Authors<indexterm><primary>Help system</primary><secondary>authors,
- for</secondary></indexterm></title>
- <itemizedlist remap="Bullet1"><listitem><para>Common Desktop Environment HelpTag
- markup language—a set of <symbol role="Variable">tags</symbol> used
- in text files to mark organization and content of online help<indexterm><primary>HelpTag</primary></indexterm><indexterm><primary>Help system</primary><secondary>Help Tag</secondary></indexterm></para>
- </listitem><listitem><para>Common Desktop Environment HelpTag software—a
- set of software tools for converting HelpTag files into run-time help files
- </para>
- </listitem><listitem><para>Common Desktop Environment Helpview application—a
- viewer program for displaying online help</para>
- </listitem></itemizedlist>
- <para>Authors create help topics using the Help tag set and follow Structured
- Generalized Markup Language (SGML) tagging conventions. SGML markup is the
- primary data format. When compiled, the run-time distribution format is SGML-compliant.<indexterm>
- <primary>Standard Generalized Markup Language (SGML)</primary></indexterm><indexterm>
- <primary>Help system</primary><secondary>SGML</secondary></indexterm></para>
- <para>The Help system also supports non-SGML formats such as UNIX man pages,
- text files, and text strings.<indexterm><primary>UNIX</primary></indexterm><indexterm>
- <primary>Help system</primary><secondary>UNIX man pages</secondary></indexterm>
- </para>
- <sect3 id="RDMAP.recin.div.4">
- <title>For Programmers<indexterm><primary>Help system</primary><secondary>programmers, for</secondary></indexterm></title>
- <itemizedlist remap="Bullet1"><listitem><para><command>DtHelp</command> programming
- library—Application program interface (API) for creating and integrating
- help windows into your application</para>
- </listitem><listitem><para><command>DtHelp</command><indexterm><primary>widget</primary><secondary>Help system</secondary></indexterm> widgets— <command>DtHelpDialog</command> and <command>DtHelpQuickDialog</command> widgets to
- create help dialog boxes and quick help dialog boxes (these are also part
- of the Help library)</para>
- </listitem></itemizedlist>
- </sect3>
- </sect2>
- <sect2 id="RDMAP.recin.div.5">
- <title><indexterm><primary>Help system</primary><secondary>library and header
- files</secondary></indexterm>Library and Header Files</title>
- <para>The Help library, <command>libDtHelp</command>, provides support for
- creating and managing help dialogs based on Motif. The <command>libDtHelp</command> header files are:</para>
- <itemizedlist remap="Bullet1"><listitem><para><filename>Dt/Help.h</filename></para>
- </listitem><listitem><para><filename>Dt/HelpDialog.h</filename></para>
- </listitem><listitem><para><filename>Dt/HelpQuickD.h</filename></para>
- </listitem></itemizedlist>
- </sect2>
- <sect2 id="RDMAP.recin.div.6">
- <title>Demo Programs<indexterm><primary>Help system</primary><secondary>demo
- programs</secondary></indexterm><indexterm><primary>demo programs</primary>
- </indexterm></title>
- <para>You can find the Help system demos in <filename>/usr/dt/examples/dthelp</filename>. Read the <command>README</command> file for detailed information
- on the demos.</para>
- <sect3 id="RDMAP.recin.div.7">
- <title>Related Documentation</title>
- <para>For more information on the Help system, see the relevant man pages
- and the <emphasis>Help System Author's and Programmer's Guide</emphasis>.
- </para>
- </sect3>
- </sect2>
- </sect1>
- <sect1 id="RDMAP.recin.div.8">
- <title id="RDMAP.recin.mkr.3">ToolTalk Messaging Service</title>
- <para>The Common Desktop Environment defines two standard ToolTalk protocols
- known as <emphasis><indexterm><primary>message sets</primary></indexterm><indexterm>
- <primary>ToolTalk Messaging Service</primary><secondary>message sets</secondary>
- </indexterm>message sets</emphasis>. A message set contains a number of messages
- that can be exchanged between a sender and a handler process. These message
- are grouped together because they describe related requests and notices.
- The sender and recipient can be within the same process or on different hosts.
- Message sets have associated utility functions that enable you to concentrate
- on the semantics of the protocol without getting too involved in low-level
- details. Some message set functions enable you to easily defer to default
- behavior.</para>
- <para>The <emphasis>desktop message set</emphasis> encompasses three areas:<indexterm>
- <primary>desktop message set</primary></indexterm><indexterm><primary>ToolTalk
- Messaging Service</primary><secondary>desktop message set</secondary></indexterm></para>
- <itemizedlist remap="Bullet1"><listitem><para>Windowing behavior</para>
- </listitem><listitem><para>File access and short-term file lifecycle control
- </para>
- </listitem><listitem><para>Application extension languages</para>
- </listitem></itemizedlist>
- <para>See <!--Original XRef content: '&xd2;Handle Desktop'--><xref role="SectionTitle"
- linkend="RDMAP.recin.mkr.4"> and <!--Original XRef content: '&xd2;Send
- Desktop'--><xref role="SectionTitle" linkend="RDMAP.recin.mkr.5">
- for information on windowing behavior. See <!--Original XRef content: '&xd2;Desktop
- File'--><xref role="SectionTitle" linkend="RDMAP.recin.mkr.8"> for
- information on file access and short-term file lifecycle control. Implementing
- the <filename>Do_Command</filename> request is specific to the application's
- extension language and is not assisted by the ToolTalk Messaging Service.
- </para>
- <para>The <emphasis><indexterm><primary>media message set</primary></indexterm><indexterm>
- <primary>ToolTalk Messaging Service</primary><secondary>media message set</secondary></indexterm>media message set</emphasis> enables an application
- to be a container for arbitrary media or to be a media player and editor
- that can be driven from such a container. The media message set enables a
- container application to compose, display, edit, and print a document of
- an arbitrary media type, without understanding anything about the format
- of that media type. The ToolTalk Messaging Service routes a container's requests
- to the user's preferred tool for the given media type and operation. This
- includes routing the request to an already-running instance of the tool,
- if that instance can best handle the request. See <!--Original XRef content:
- '&xd2;Send Media'--><xref role="SectionTitle" linkend="RDMAP.recin.mkr.7">
- and <!--Original XRef content: '&xd2;Handle Media&xd3; on page 49'--><xref
- role="SecTitleAndPageNum" linkend="RDMAP.recin.mkr.6">.</para>
- <para>The ToolTalk Messaging Service provides support for these message sets:
- </para>
- <itemizedlist remap="Bullet1"><listitem><para id="RDMAP.recin.mkr.4">Handle
- Desktop</para>
- <para>Handling desktop requests is the most basic level of messaging integration.
- Any application that sends ToolTalk messages, either through calling
- <filename>tt_message_send()</filename> or <filename>DtActionInvoke()</filename>, should
- handle the desktop requests. This enables other applications to set or query
- things such as your application's current directory, iconic state, and
- <filename>$DISPLAY</filename>. For further information, see the man pages for
- <filename>ttdt_open()</filename>, <filename>ttdt_session_join()</filename>,
- <filename>ttdt_session_quit()</filename>, and <filename>ttdt_close()</filename>.</para>
- </listitem><listitem><para id="RDMAP.recin.mkr.5">Send Desktop</para>
- <para>When an application is started by <command>ttsession</command> to handle
- some ToolTalk request, it is a child of <command>ttsession</command> rather
- than of the request sender. The application will usually be started on the
- same X display session as the sender, but not necessarily on the same X11
- screen or in the same current directory context. If the application is implemented
- as a server process, it may already be displaying on a particular screen
- or in a particular directory context.</para>
- <para>Using desktop requests, a handling application can inherit from the
- sender attributes that might otherwise be inherited through command-line
- invocation. Use the desktop message set in this way to reset the handler's
- locale, current working directory, and even <filename>$DISPLAY</filename>.
- This enables a carefully coded receiving application to come up on the same
- X11 screen as the sender. A request handler can also find out the request
- sender's current directory and window geometry. Knowing the window geometry
- enables the request handler's window to avoid obscuring the request sender's
- window, if possible. For more information, see the <filename>ttdt_sender_imprint_on()</filename> man page.</para>
- </listitem><listitem><para id="RDMAP.recin.mkr.6">Handle Media</para>
- <para>The ToolTalk Messaging Service enables an editor to easily handle the
- standard media requests for the media types for which the editor is responsible.
- For further information, see the man pages for <filename>ttmedia_ptype_declare()</filename>, <filename>ttdt_message_accept()</filename>, <filename>ttmedia_load_reply()</filename>, and <filename>ttmedia_Deposit()</filename>.</para>
- </listitem><listitem><para id="RDMAP.recin.mkr.7">Send Media</para>
- <para>The ToolTalk Messaging Service enables a container to easily send media
- requests and manage the subsequent document updates sent back by the handler.
- In those cases in which the container doesn't engage in any ongoing ToolTalk
- dialog with a media handler, use the actions API instead of directly using
- these ToolTalk APIs. Equivalent actions (Open and Print) represent a higher
- level of abstraction that supports the equivalent of ToolTalk and non- ToolTalk
- aware media handlers.For further information, see the man pages for
- <filename>ttmedia_load()</filename> and <filename>ttdt_subcontract_manage()</filename>.
- Note that, in most cases, a container application should perform operations
- on objects using <filename>DtActionInvoke()</filename> instead of
- <filename>ttmedia_load()</filename>. See the <emphasis>ToolTalk Messaging Overview</emphasis> for a description of how ToolTalk applications can be driven
- using actions.</para>
- </listitem><listitem><para id="RDMAP.recin.mkr.8">Desktop File</para>
- <para>The ToolTalk Messaging Service makes it easy to send and receive the
- desktop messages about files. These messages enable applications to coordinate
- access to files. For further information, see the man pages for
- <filename>ttdt_file_join()</filename>, <filename>ttdt_file_quit()</filename>,
- <filename>ttdt_file_event()</filename>, <filename>ttdt_Get_Modified()</filename>,
- <filename>ttdt_Save()</filename>, and <filename>ttdt_Revert()</filename>.</para>
- </listitem></itemizedlist>
- <para>Examples of applications that already use the ToolTalk Messaging Service
- include the Common Desktop Environment Icon Editor, Mailer, Text Editor,
- and Calendar. Other parts of the Common Desktop Environment use the ToolTalk
- Messaging Service indirectly by defining actions that send messages.</para>
- <sect2 id="RDMAP.recin.div.9">
- <title>Library and Header Files<indexterm><primary>ToolTalk Messaging Service</primary><secondary>library and header files</secondary></indexterm></title>
- <para>The ToolTalk messaging library is called <command>libtt</command>. The <command>libtt</command> header files are:</para>
- <itemizedlist remap="Bullet1"><listitem><para><filename>Tt/tt_c.h</filename></para>
- </listitem><listitem><para><filename>Tt/tttk.h</filename></para>
- </listitem></itemizedlist>
- </sect2>
- <sect2 id="RDMAP.recin.div.10">
- <title>Demo Programs<indexterm><primary>ToolTalk Messaging Service</primary>
- <secondary>demo programs</secondary></indexterm><indexterm><primary>demo
- programs</primary></indexterm></title>
- <para>You can find the ToolTalk Messaging Service demos in <filename>/usr/dt/examples/tt</filename>. Read the <command>README</command> file for detailed information
- on the demos.</para>
- <sect3 id="RDMAP.recin.div.11">
- <title>Related Documentation</title>
- <para>For more information on the ToolTalk Messaging Service, see the relevant
- man pages and the <emphasis>ToolTalk Messaging</emphasis> <emphasis>Overview</emphasis>.</para>
- </sect3>
- </sect2>
- </sect1>
- <sect1 id="RDMAP.recin.div.12">
- <title id="RDMAP.recin.mkr.9">Session Manager</title>
- <para>Session Manager supports the ICCCM 1.1 <filename><indexterm><primary>WM_COMMAND</primary></indexterm><indexterm><primary>Session Manager</primary>
- <secondary>WM_COMMAND</secondary></indexterm>WM_COMMAND</filename> and <filename><indexterm>
- <primary>WM_SAVE_YOURSELF</primary></indexterm><indexterm><primary>Session
- Manager</primary><secondary>WM_SAVE_YOURSELF</secondary></indexterm>WM_SAVE_YOURSELF</filename><indexterm><primary>protocols</primary><secondary>WM_COMMAND</secondary></indexterm><indexterm><primary>protocols</primary><secondary>WM_SAVE_YOURSELF</secondary></indexterm> protocols, which permit:</para>
- <itemizedlist remap="Bullet1"><listitem><para>Your application to save state
- information at logout</para>
- </listitem><listitem><para>Session Manager to restart your application at
- login</para>
- </listitem></itemizedlist>
- <para>Session Manager also provides an API to assist your application in saving
- and restoring its state at logout and login.</para>
- <para>Session Manager is responsible for restarting applications at login.
- To do this, your application must tell Session Manager what command and command-line
- options are required to restart it. Use Xlib's <filename>XSetCommand()</filename>
- to set the <filename>WM_COMMAND</filename> property on your application's
- top-level window.</para>
- <para>When Session Manager saves a session, such as at logout, your application
- might need to save some state information so it can be restored to a similar
- state. Session Manager can optionally notify your application that the session
- is being saved. Your application must inform Session Manager that it wants
- such notification. It does this by registering the <filename>WM_SAVE_YOURSELF</filename> protocol with its top-level window <filename>WM_PROTOCOLS</filename>
- property and setting up a callback procedure to handle the notification.
- To do this, use the <filename><indexterm><primary>XmAddWMProtocols()</primary>
- </indexterm><indexterm><primary>Session Manager</primary><secondary>XmAddWMProtocols()</secondary></indexterm>XmAddWMProtocols()</filename> and <filename><indexterm>
- <primary>XmAddWMProtocolsCallback()</primary></indexterm><indexterm><primary>Session Manager</primary><secondary>XmAddWMProtocolsCallback()</secondary>
- </indexterm>XmAddWMProtocolsCallback()</filename> functions. Your application
- should not interact with the user in any way when processing the
- <filename>WM_SAVE_YOURSELF</filename> callback. (For example, it should not display
- a Save As dialog box.) It must set the <filename>WM_COMMAND</filename> property
- on its top-level window to notify Session Manager that it is done saving
- its state.</para>
- <para>To enable your application to save state information, use the <filename><indexterm>
- <primary>DtSessionSavePath()</primary></indexterm><indexterm><primary>Session
- Manager</primary><secondary>DtSessionSavePath()</secondary></indexterm>DtSessionSavePath()</filename> function to obtain the full path name of a file in which this
- information can be saved. At session restore time, use the <filename><indexterm>
- <primary>DtSessionRestorePath()</primary></indexterm><indexterm><primary>Session Manager</primary><secondary>DtSessionRestorePath()</secondary></indexterm>DtSessionRestorePath()</filename> function to obtain the full path name of the state file your
- application uses to restore its state.</para>
- <para>The Common Desktop Environment<indexterm><primary>Workspace Manager</primary></indexterm> Workspace Manager is responsible for restoring an application's
- main top-level window (containing the <filename>WM_COMMAND</filename>) property
- to the proper workspace, geometry, and icon state. If an application has
- multiple top-level windows, it is the application's responsibility to restore
- the states of the other top-level windows. Refer to <!--Original XRef content:
- '&xd2;Workspace Manager&xd3; on page 70'--><xref role="SecTitleAndPageNum"
- linkend="RDMAP.optin.mkr.5"> for additional information.</para>
- <sect2 id="RDMAP.recin.div.13">
- <title>Library and Header Files<indexterm><primary>Session Manager</primary>
- <secondary>library and header files</secondary></indexterm></title>
- <para>The Desktop Services library, <command>libDtSvc</command>, provides
- access to many desktop APIs, including the one for session management. Include
- the <filename>Dt/Dt.h</filename> and <filename>Dt/Session.h</filename> header
- files to access the Session Manager API.</para>
- <note>
- <para>If your application uses any of the Session Manager APIs, it must first
- initialize the <command>libDtSvc</command> library by calling either <filename><indexterm>
- <primary>DtInitialize()</primary></indexterm>DtInitialize()</filename> or
- <filename><indexterm><primary>DtAppInitialize()</primary></indexterm>DtAppInitialize()</filename>. Refer to the <filename>DtInitialize</filename>(3) or
- <filename>DtAppInitialize</filename>(3) man page for more information.</para>
- </note>
- </sect2>
- <sect2 id="RDMAP.recin.div.14">
- <title>Demo Programs<indexterm><primary>Session Manager</primary><secondary>demo programs</secondary></indexterm><indexterm><primary>demo programs</primary>
- </indexterm></title>
- <para>You can find the Session Manager demos in <filename>/usr/dt/examples/dtsession</filename>. Read the <command>README</command> file for detailed information
- on the demos.</para>
- <sect3 id="RDMAP.recin.div.15">
- <title>Related Documentation</title>
- <para>For more information on Session Manager, see the relevant man pages
- and the <emphasis>Programmer's Guide</emphasis>.</para>
- </sect3>
- </sect2>
- </sect1>
- <sect1 id="RDMAP.recin.div.16">
- <title id="RDMAP.recin.mkr.10">Drag and Drop</title>
- <para>The Common Desktop Environment provides a drag-and-drop API, that is
- layered on top of the Motif 2.1 drag-and-drop API, to provide convenient,
- consistent, and interoperable drag and drop across the desktop. The Common
- Desktop Environment drag-and-drop API makes it easier for developers to
- implement drag and drop. With drag and drop, users can manipulate objects
- on the screen directly by grabbing them, dragging them around the display,
- and dropping them on other objects to change the object's location or perform
- a data transfer.</para>
- <para>Motif 2.1 drag and drop provides low-level drag-and-drop mechanisms;
- Common Desktop Environment drag and drop incorporates policies for those
- mechanisms.<indexterm><primary>drag and drop</primary><secondary>and Motif
- 2.1 drag and drop</secondary></indexterm></para>
- <para>Common Desktop Environment drag and drop consists of an API and protocols
- to simplify the interface to Motif drag and drop. It implements policies
- such as the buffer transfer protocol and the drag cursors' appearances. Use
- the Common Desktop Environment drag-and-drop API, with its built-in policies,
- to ensure interoperability through consistency. Common Desktop Environment
- drag-and-drop policies are compatible with standard Motif 2.1 drag-and-drop
- protocols for text and file name transfers.</para>
- <para>Common Desktop Environment drag and drop uses the X selection mechanism
- to transfer data. Suitable targets exist and are registered with the X Consortium.
- Two desktop applications can agree to transfer data through the text, file
- name, or data transfer protocols.</para>
- <para>The existing Motif 2.1 API for drag and drop is flexible and, therefore,
- is somewhat difficult for nonexpert developers to use. The Common Desktop
- Environment drag-and-drop API provides some convenience functions that result
- in an API that is simpler and easier to use:</para>
- <itemizedlist remap="Bullet1"><listitem><para>Manages the configuration and
- appearance of drag icons.</para>
- <para>Common Desktop Environment drag and drop provides graphics for the
- default source, state, and operation icons that compose the drag icon in
- Motif 2.1.</para>
- </listitem><listitem><para>Defines a buffer transfer protocol.</para>
- <para>Motif 2.1 drag and drop defines protocols for file name and text string
- only.</para>
- </listitem><listitem><para>Enables animation upon drop.</para>
- <para>The drop zone can define an animation procedure that is called when
- the drop completes.</para>
- </listitem><listitem><para>Provides enumeration of targets for <command>TEXT</command> and <filename>FILE_NAME</filename> transfers.</para>
- </listitem><listitem><para>Provides dual registration.</para>
- <para>You can register a text widget as a drop zone for data other than text,
- while preserving the ability to accept text drops.</para>
- </listitem><listitem><para>Provides prioritized drop formats.</para>
- <para>The order in which you specify protocols for the drop zone indicates
- the relative priority of the protocols desired.</para>
- </listitem></itemizedlist>
- <sect2 id="RDMAP.recin.div.17">
- <title>Library and Header Files<indexterm><primary>drag and drop</primary>
- <secondary>library and header files</secondary></indexterm></title>
- <para>The Desktop Services library, <command>libDtSvc</command>, provides
- access to many desktop APIs, including that for drag and drop. Include the
- <filename>Dt/Dt.h</filename> and <filename>Dt/Dnd.h</filename> header files to access
- the drag-and-drop API.</para>
- <note>
- <para>If your application uses any of the drag-and-drop APIs, it must first
- initialize the <command>libDtSvc</command> library by calling either <filename><indexterm>
- <primary>DtInitialize()</primary></indexterm>DtInitialize()</filename> or
- <filename><indexterm><primary>DtAppInitialize()</primary></indexterm>DtAppInitialize()</filename>. Refer to the <filename>DtInitialize</filename>(3) or
- <filename>DtAppInitialize</filename>(3) man page for more information.</para>
- </note>
- </sect2>
- <sect2 id="RDMAP.recin.div.18">
- <title>Demo Programs<indexterm><primary>drag and drop</primary><secondary>demo programs</secondary></indexterm></title>
- <para>You can find the drag-and-drop demos in <filename>/usr/dt/examples/dtdnd</filename>. Read the <command>README</command> file for detailed information
- on the demos.</para>
- <sect3 id="RDMAP.recin.div.19">
- <title>Related Documentation</title>
- <para>For more information on Common Desktop Environment drag and drop, see
- the relevant man pages and the <emphasis>Programmer's Guide</emphasis>.</para>
- </sect3>
- </sect2>
- </sect1>
- <sect1 id="RDMAP.recin.div.20">
- <title id="RDMAP.recin.mkr.11">Internationalization</title>
- <para>The Common Desktop Environment is internationalized to support single-byte
- and multibyte locales. Developers can write internationalized applications
- that can be easily localized to run on any Common Desktop Environment platform.<indexterm>
- <primary>guidelines</primary><secondary>internationalization <$startrange></secondary></indexterm><indexterm>
- <primary>single-byte locales</primary></indexterm><indexterm><primary>locales</primary><secondary>single-byte</secondary></indexterm><indexterm><primary>internationalization</primary><secondary>single-byte locales</secondary>
- </indexterm><indexterm><primary>multibyte locales</primary></indexterm><indexterm>
- <primary>locales</primary><secondary>multibyte</secondary></indexterm><indexterm>
- <primary>internationalization</primary><secondary>multibyte locales</secondary>
- </indexterm></para>
- <para>Common Desktop Environment applications (both source and binary) can
- be localized into regional languages and territories, and across multiple
- vendors and hardware platforms:<indexterm><primary>locales</primary><secondary>applications can be localized into</secondary></indexterm><indexterm><primary>internationalization</primary><secondary>locales</secondary></indexterm></para>
- <itemizedlist remap="Bullet1"><listitem><para>Latin American</para>
- </listitem><listitem><para>Western European</para>
- </listitem><listitem><para>Japanese</para>
- </listitem><listitem><para>Korean</para>
- </listitem><listitem><para>Chinese (Traditional and Simplified)</para>
- </listitem></itemizedlist>
- <para>The Common Desktop Environment takes advantage of internationalization
- features in these standards:<indexterm><primary>standards</primary><secondary>internationalization</secondary></indexterm><indexterm><primary>internationalization</primary><secondary>standards</secondary></indexterm></para>
- <itemizedlist remap="Bullet1"><listitem><para>IEEE 1003.2-1992 (<indexterm>
- <primary>POSIX</primary></indexterm> POSIX.2 Annex B)</para>
- </listitem><listitem><para>X Window System, Version 11 Release 6.2 (Locales
- and Internationalization Text Functions)<indexterm><primary>X11R6.2</primary>
- </indexterm></para>
- </listitem><listitem><para>Motif 2.1 (Internationalizing and Localizing Motif
- clients)<indexterm><primary>Motif 2.1</primary></indexterm></para>
- </listitem></itemizedlist>
- <para>If you intend to internationalize your application, you must ensure
- that it supports input and output of multibyte characters. CDE supports
- vertical writing, which is useful for rendering some Asian
- languages. Also, make sure
- that message catalogs are used and code can be fully localized.</para>
- <sect2 id="RDMAP.recin.div.21">
- <title>Demo Programs<indexterm><primary>internationalization</primary><secondary>demo programs</secondary></indexterm><indexterm><primary>demo programs</primary>
- </indexterm></title>
- <para>The drawing program demo in <filename>/usr/dt/examples/template</filename>
- is internationalized. Read the <command>README</command> file for detailed
- information on this demo.</para>
- <sect3 id="RDMAP.recin.div.22">
- <title>Related Documentation</title>
- <para>For more information on Common Desktop Environment internationalization,
- see the development environment component man pages and the <emphasis>Internationalization
- Programmer's Guid</emphasis><emphasis>e</emphasis>.<indexterm><primary>guidelines</primary><secondary>internationalization <$endrange></secondary></indexterm></para>
- </sect3>
- </sect2>
- </sect1>
- <sect1 id="RDMAP.recin.div.23">
- <title id="RDMAP.recin.mkr.12">Standard Font Names</title>
- <para>The standard font names defined by the Common Desktop Environment are
- guaranteed to be available on all Common Desktop Environment-compliant systems.
- These names do not specify actual fonts. Instead, they are aliases that each
- system vendor maps to the vendor's best available fonts. If you use only
- these font names in your application, you can be sure of getting the closest
- matching font on any Common Desktop Environment-compliant system. These
- comprise a set of X Window System font names you can use for the most common
- categories of type designs and styles.<indexterm><primary>fonts</primary>
- <secondary>standard font names</secondary></indexterm><indexterm><primary>guidelines</primary><secondary>font use <$startrange></secondary></indexterm></para>
- <para>The standard font names are mapped to different fonts on different Common
- Desktop Environment platforms, typically using the X font alias mechanism.
- This eliminates the problem of having to select from a varying set of fonts
- on different platforms. It also enables you to make use of the default set
- of fonts on a particular vendor's Common Desktop Environment implementation.
- </para>
- <para>The Common Desktop Environment defines two types of standard fonts:
- application fonts and interface fonts. Use the application fonts for output
- produced by your application. Motif widgets and the desktop use interface
- fonts; do <symbol role="Variable">not</symbol> change their default fonts.<indexterm>
- <primary>interface fonts</primary></indexterm><indexterm><primary>fonts</primary><secondary>interface</secondary></indexterm></para>
- <sect2 id="RDMAP.recin.div.24">
- <title>Application Fonts<indexterm><primary>application fonts <$startrange></primary></indexterm><indexterm>
- <primary>fonts</primary><secondary>application <$startrange></secondary></indexterm></title>
- <para>At least six point sizes are available on all Common Desktop Environment
- platforms for each font associated with a Standard Font Name: 8, 10, 12,
- 14, 18, and 24. XLFD font descriptions for Common Desktop Environment fonts
- look like:</para>
- <programlisting><filename>-dt-application-*</filename></programlisting>
- <para>when used where such patterns are valid.</para>
- <para>Two of the most common design variations in fonts used to display text
- are the presence or absence of serifs and the choice between proportional
- or regularly spaced (monospaced) characters. Combining these two design variations
- yields four generic font designs:</para>
- <itemizedlist remap="Bullet1"><listitem><para>Serif proportionally spaced
- </para>
- </listitem><listitem><para>Sans serif proportionally spaced</para>
- </listitem><listitem><para>Serif monospaced</para>
- </listitem><listitem><para>Sans serif monospaced</para>
- </listitem></itemizedlist>
- <para>Common examples of each of these four designs (in corresponding order)
- are:</para>
- <itemizedlist remap="Bullet1"><listitem><para>Times Roman</para>
- </listitem><listitem><para>Helvetica</para>
- </listitem><listitem><para>Courier</para>
- </listitem><listitem><para>Lucida Typewriter</para>
- </listitem></itemizedlist>
- <para>Each of these designs for text fonts typically come in four styles (combinations
- of weight and slant):</para>
- <itemizedlist remap="Bullet1"><listitem><para>Plain</para>
- </listitem><listitem><para>Bold</para>
- </listitem><listitem><para>Italic</para>
- </listitem><listitem><para>Bold-italic</para>
- </listitem></itemizedlist>
- <para>The four styles of each of the four design variations yield 16 generic
- font variations. These 16 generic fonts are among the most commonly used
- in general desktop computing. For example, Times Roman, Helvetica, and Courier,
- each in the four style variations, along with the Symbol font, constitute
- the <emphasis>Adobe® 13</emphasis>—the minimum set of fonts built
- into all PostScript printers.</para>
- <para>Your application might not require an exact font family or name, but
- will need to use, for example, a monospaced font, a sans serif font, or a
- serif font. You do not have to know the exact font names present on a particular
- Common Desktop Environment platform. The Common Desktop Environment standard
- fonts default to the vendor's selection of the best font of a particular
- design on the vendor's platform.</para>
- <para>Specify the<indexterm><primary>XLFD font names</primary></indexterm><indexterm>
- <primary>fonts</primary><secondary>XLFD</secondary></indexterm><indexterm>
- <primary>standard font names</primary><secondary>XLFD font names</secondary>
- </indexterm> XLFD font names for the standard application fonts your application
- needs as font resource values in the application's <filename><indexterm><primary>app-defaults file</primary></indexterm><indexterm><primary>standard font
- names</primary><secondary>app-defaults file</secondary></indexterm>app-defaults</filename> file. If you do not use these font names, you might need to supply
- a different <computeroutput>app-defaults</computeroutput> file for each application
- on each Common Desktop Environment platform<literal><indexterm><primary>application fonts <$endrange></primary></indexterm><indexterm><primary>fonts</primary><secondary>application <$endrange></secondary></indexterm></literal>.
- </para>
- </sect2>
- <sect2 id="RDMAP.recin.div.25">
- <title>Interface Fonts<indexterm><primary>interface fonts</primary></indexterm><indexterm>
- <primary>fonts</primary><secondary>interface</secondary></indexterm><indexterm>
- <primary>standard font names</primary><secondary>interface fonts</secondary>
- </indexterm></title>
- <para>Interface fonts are the small set of finely optimized fonts that define
- the look of the desktop on a particular platform. These fonts cleanly and
- quickly convey small amounts of information, such as that appearing in window
- titles, buttons, menus, and text fields.</para>
- <para>The desktop and the Motif toolkit widgets use interface fonts. Do not
- use these fonts directly within your application windows.</para>
- <para>The standard interface font names are different from the standard application
- font names. They, like the application font names, are mapped to different
- fonts on different Common Desktop Environment platforms. Interface fonts
- come in three styles:</para>
- <itemizedlist remap="Bullet1"><listitem><para><emphasis>System</emphasis>—Read-only
- text (used for limited amounts of text, for example, on menus, buttons, and
- labels)</para>
- </listitem><listitem><para><emphasis>User</emphasis>—Text the end user
- enters, or text appearing in objects built from <command>XmText</command>-type
- and <command>DtTerm</command>-type widgets</para>
- </listitem><listitem><para><emphasis>User bold</emphasis>—Like the User
- font, but in bold</para>
- </listitem></itemizedlist>
- <para>Each style comes in seven sizes. Using the<indexterm><primary>Style
- Manager</primary></indexterm><indexterm><primary>fonts</primary><secondary>interface</secondary><tertiary>and the Style Manager</tertiary></indexterm> Style
- Manager, users can choose the size of interface fonts they want on their
- desktop.</para>
- </sect2>
- <sect2 id="RDMAP.recin.div.26">
- <title>Demo Programs<indexterm><primary>standard font names</primary><secondary>demo programs</secondary></indexterm></title>
- <para>The drawing program demo in <filename>/usr/dt/examples/template</filename>
- does not specify any of its own interface fonts. It serves as an example
- of how the Common Desktop Environment Motif interface fonts appear. However,
- this demo does not take advantage of application fonts.</para>
- <sect3 id="RDMAP.recin.div.27">
- <title>Related Documentation</title>
- <para>For more information on standard fonts, see the relevant man pages—particularly
- <filename>DtStdAppFontNames(5)</filename> and <filename>DtStdInterfaceFontNames(5)</filename> for the list of XLFD font names—and the <emphasis>Programmer's
- Guid</emphasis><emphasis>e</emphasis>.<indexterm><primary>XLFD font names</primary></indexterm><indexterm><primary>fonts</primary><secondary>XLFD</secondary></indexterm><indexterm><primary>fonts</primary><secondary>standard
- font names</secondary></indexterm><indexterm><primary>guidelines</primary>
- <secondary>font use <$endrange></secondary></indexterm></para>
- </sect3>
- </sect2>
- </sect1>
- <sect1 id="RDMAP.recin.div.28">
- <title id="rdmap.recin.mkr.13">Displaying Error Messages from Your Application<indexterm>
- <primary>error messages</primary><secondary>displaying</secondary></indexterm><indexterm>
- <primary>guidelines</primary><secondary>error message display <$startrange></secondary></indexterm></title>
- <para>Applications in the Common Desktop Environment follow a common model
- for presenting error messages and warnings. Users running your application
- expect messages to be displayed in message footers, error dialog boxes, or
- warning dialog boxes, with further explanations available in online help,
- when appropriate.</para>
- <para>This section outlines conventions for displaying error messages in your
- application. Because of the way message text is handled, it is important
- to follow these error presentation guidelines precisely. For example, casual
- users who start your application from the Front Panel never see messages
- that you send to standard error or standard out. In the Common Desktop Environment,
- such messages are directed to log files (<filename>$HOME/.dt/*log</filename>)
- that many users do not routinely examine or know about.</para>
- <sect2 id="RDMAP.recin.div.29">
- <title>How to Present Error Messages<indexterm><primary>error messages</primary>
- <secondary>how to display</secondary></indexterm></title>
- <para>Follow these rules when deciding where to tell users about warnings,
- messages, and error conditions:</para>
- <itemizedlist remap="Bullet1"><listitem><para><emphasis>If this message is
- informational,</emphasis> display the text in the message footer of the application.
- (<emphasis>Example:</emphasis> “<command>MyDoc</command> file copied.”)
- </para>
- </listitem><listitem><para><emphasis>If this message is about an error or
- serious warning</emphasis>—a problem where an operation important to
- the user has failed—display an error dialog box or warning dialog box.
- </para>
- </listitem></itemizedlist>
- </sect2>
- <sect2 id="RDMAP.recin.div.30">
- <title>What Information to Present in Error Dialogs<indexterm><primary>error
- messages</primary><secondary>information to present in error dialogs</secondary>
- </indexterm></title>
- <para>A good error dialog or warning dialog gives a user the following information:
- </para>
- <itemizedlist remap="Bullet1"><listitem><para>What happened (from the user's
- point of view)</para>
- </listitem><listitem><para>Why it happened, in simple language</para>
- </listitem><listitem><para>How to fix the problem</para>
- </listitem></itemizedlist>
- </sect2>
- <sect2 id="RDMAP.recin.div.31">
- <title>Linking Message Dialogs to Online Help<indexterm><primary>error messages</primary><secondary>linking message dialogs to online help</secondary></indexterm></title>
- <para>In cases where additional background information is required, or where
- it takes more than four or five lines of a dialog to completely explain an
- error, add a button that links the user to the appropriate section of online
- help.</para>
- <sect3 id="RDMAP.recin.div.32">
- <title>Related Documentation</title>
- <para>For details on displaying error messages in your application and linking
- message dialogs to online help, see the <emphasis>Programmer's Guide</emphasis> .<indexterm>
- <primary>error messages</primary><secondary>displaying</secondary></indexterm><indexterm>
- <primary>guidelines</primary><secondary>error message display <$endrange></secondary></indexterm></para>
- </sect3>
- </sect2>
- <sect2 id="RDMAP.recin.div.32a">
- <title>Using Message Logging</title>
- <indexterm><primary>error messages</primary><secondary>logging</secondary></indexterm>
- <para>The message logging service logs messages
- for CDE applications. This service
- provides a central location for messages
- that users and system administrators
- can consult to diagnose problems.
- </para>
- <para>The message logging service supports
- several message types: Informational,
- Stderr, Debug, Warning, and Error. In addition
- to logging messages, the
- API supports the use of alternative
- message logging handlers and the ability
- to open message log files.
- </para>
- </sect2>
- </sect1>
- <sect1 id="RDMAP.recin.div.32b">
- <title>Printing</title>
- <indexterm><primary>printing</primary></indexterm>
- <para>The CDE printing facility is for use primarily by applications
- that perform X printing, but is sufficiently generalized for
- use by any CDE application. The application user typically prints files through a set of dialogs
- that are invoked when the user selects (for example) the application's
- pull-down menu for printing a file.
- </para>
- <para>Two facilities for supporting printing are available to the application
- developer:
- </para>
- <itemizedlist>
- <listitem>
- <para>The DtPrint convenience functions &mdash These provide the user dialogs for
- setting print options. This facility also establishes and maintains print connections,
- initiates printing, and maintains the print setup data.
- </para>
- </listitem>
- <listitem>
- <para>The Print Dialog Manager &mdash This process is separate from the X Print Server
- and X Printing Application; it provides printer- and spooler-specific setup
- dialogs.
- </para>
- </listitem>
- </itemizedlist>
- </sect1>
- <sect1 id="RDMAP.recin.div.33">
- <title id="RDMAP.recin.mkr.14">User Customization Issues<indexterm><primary>user customization issues</primary></indexterm><indexterm><primary>customization</primary><secondary>user issues <$startrange></secondary></indexterm></title>
- <para>This section presents guidelines to follow when designing your application's
- user interface.</para>
- <sect2 id="RDMAP.recin.div.34">
- <title>Color Use<indexterm><primary>user customization issues</primary><secondary>color use</secondary></indexterm><indexterm><primary>color use and user
- customization</primary></indexterm><indexterm><primary>guidelines</primary>
- <secondary>color use</secondary></indexterm></title>
- <para>When you design your application's user interface, do not specify color
- settings that override the default color scheme that the Common Desktop
- Environment provides for Motif and desktop widgets. For application-defined
- colors, use the following colors to promote sharing with other desktop applications:
- </para>
- <itemizedlist remap="Bullet1"><listitem><para>Black</para>
- </listitem><listitem><para>White</para>
- </listitem><listitem><para>Red</para>
- </listitem><listitem><para>Green</para>
- </listitem><listitem><para>Blue</para>
- </listitem><listitem><para>Yellow</para>
- </listitem><listitem><para>Cyan</para>
- </listitem><listitem><para>Magenta</para>
- </listitem><listitem><para>Gray (eight shades: #de, #bd, #ab, #94, #73, #63,
- #42, and #21)</para>
- </listitem></itemizedlist>
- <para>In most cases, you should not specify colors, so that your application
- uses the colors chosen by the end user in the desktop Style Manager.</para>
- </sect2>
- <sect2 id="RDMAP.recin.div.35">
- <title>Font Use<indexterm><primary>user customization issues</primary><secondary>font use</secondary></indexterm><indexterm><primary>fonts</primary><secondary>user customization issues</secondary></indexterm><indexterm><primary>guidelines</primary><secondary>font use</secondary></indexterm></title>
- <para>For your Motif widgets, use the fonts supplied by the Common Desktop
- Environment so that your application's windows look like other desktop client
- windows and so that users can change the size of these fonts using the Style
- Manager. If you override the supplied fonts by changing the Motif <computeroutput>fontList</computeroutput> resource specifications, then you must provide
- additional functionality if you want users to be able to customize the fonts
- in your application.</para>
- <para>Use the fonts from the Common Desktop Environment standard application
- font names to specify—in your <computeroutput><indexterm><primary>app-defaults file</primary></indexterm>app-defaults</computeroutput> file—resources
- you use within your application (aside from the ones Motif uses for its widgets).
- This ensures that your application finds the appropriate fonts on all Common
- Desktop Environment platforms, which makes your application more portable
- across such platforms. For more information, see <!--Original XRef content:
- '&xd2;Standard Font Names&xd3; on page 55'--><xref role="SecTitleAndPageNum"
- linkend="RDMAP.recin.mkr.12">.</para>
- <note>
- <para>The<indexterm><primary>Style Manager</primary></indexterm> Style Manager
- only controls fonts for applications written using Motif version 2.1 or later.
- It will <symbol role="Variable">not</symbol> supply correct fonts for Motif
- 1.1 (or earlier) applications. These applications must specify their own
- fonts in the <filename>app-defaults</filename> file.</para>
- </note>
- </sect2>
- <sect2 id="RDMAP.recin.div.36">
- <title>Accessibility<indexterm><primary>user customization issues</primary>
- <secondary>accessibility <$startrange></secondary></indexterm><indexterm><primary>guidelines</primary>
- <secondary>accessibility <$startrange></secondary></indexterm></title>
- <para>This section provides guidelines for making software applications accessible
- to people with disabilities.</para>
- <sect3 id="RDMAP.recin.div.37">
- <title>Physical Disabilities<indexterm><primary>accessibility</primary><secondary>physical disabilities</secondary></indexterm><indexterm><primary>physical
- disabilities and user customization</primary></indexterm><indexterm><primary>disabilities and user customization</primary><secondary>physical</secondary>
- </indexterm></title>
- <para>Provide keyboard access to all application features, such as those usually
- accessible through menus or drag and drop, to enable people with physical
- disabilities to more easily use your application.</para>
- </sect3>
- <sect3 id="RDMAP.recin.div.38">
- <title>Visual Disabilities<indexterm><primary>accessibility</primary><secondary>visual disabilities</secondary></indexterm><indexterm><primary>visual disabilities
- and user customization</primary></indexterm><indexterm><primary>disabilities
- and user customization</primary><secondary>visual</secondary></indexterm></title>
- <para>Follow these guidelines to make your application more accessible to
- people with visual disabilities:</para>
- <itemizedlist remap="Bullet1"><listitem><para>Do not hardcode application
- colors.</para>
- </listitem><listitem><para>Do not hardcode graphic attributes such as line,
- border, and shadow thickness. These attributes should scale with font size.
- </para>
- </listitem><listitem><para>Do not hardcode font sizes and styles.</para>
- </listitem><listitem><para>Provide descriptive names for all widgets. In particular,
- include descriptive names <emphasis>in your application code</emphasis> for
- widgets that do not display labels on the screen; for example, palette items
- or icons. This often enables screen-reading software to provide descriptive
- information to blind users.</para>
- </listitem></itemizedlist>
- </sect3>
- <sect3 id="RDMAP.recin.div.39">
- <title>Hearing Disabilities<indexterm><primary>accessibility</primary><secondary>hearing disabilities</secondary></indexterm><indexterm><primary>hearing disabilities
- and user customization</primary></indexterm><indexterm><primary>disabilities
- and user customization</primary><secondary>hearing</secondary></indexterm></title>
- <para>Follow these guidelines to make your application more accessible to
- people with hearing disabilities:</para>
- <itemizedlist remap="Bullet1"><listitem><para>Never assume that an end user
- will hear an audible notification.</para>
- </listitem><listitem><para>Where appropriate, allow end users to choose between
- audible or visual cues.</para>
- </listitem><listitem><para>Do not overuse or rely exclusively on audible cues.
- </para>
- </listitem><listitem><para>Enable end users to configure frequency and volume
- of audible cues.</para>
- </listitem></itemizedlist>
- </sect3>
- <sect3 id="RDMAP.recin.div.40">
- <title>Language, Cognitive, and Other Disabilities<indexterm><primary>accessibility</primary><secondary>language, cognitive, and other disabilities</secondary>
- </indexterm><indexterm><primary>language disabilities and user customization</primary></indexterm><indexterm><primary>disabilities and user customization</primary><secondary>language, cognitive, and other</secondary></indexterm></title>
- <para>The access guidelines outlined for visual, hearing, and physical disabilities
- typically benefit end users with cognitive, language, and other disabilities.
- In addition to those guidelines, include tear-off menus and user-configurable
- menus for important application features whenever possible.<indexterm>
- <primary>user customization issues</primary><secondary>accessibility <$endrange></secondary></indexterm><indexterm>
- <primary>guidelines</primary><secondary>accessibility <$endrange></secondary></indexterm></para>
- </sect3>
- </sect2>
- <sect2 id="RDMAP.recin.div.41">
- <title>Mouse Double-Click Speed<indexterm><primary>mouse double-click speed</primary></indexterm><indexterm><primary>guidelines</primary><secondary>mouse double-click speed</secondary></indexterm><indexterm><primary>user
- customization issues</primary><secondary>mouse double-click speed</secondary>
- </indexterm></title>
- <para>For the end user to experience consistency across applications, you
- should not hardcode double-click durations into your application or <filename><indexterm>
- <primary>app-defaults file</primary></indexterm>app-defaults</filename> files.
- This way, when the user changes the double-click time in the<indexterm>
- <primary>Style Manager</primary></indexterm> Style Manager, your application
- responds along with the other desktop applications.</para>
- </sect2>
- <sect2 id="RDMAP.recin.div.42">
- <title>Demo Programs<indexterm><primary>user customization issues</primary>
- <secondary>demo program</secondary></indexterm></title>
- <para>The drawing program demo in <filename>/usr/dt/examples/template</filename>
- uses the Common Desktop Environment's default colors and fonts. This enables
- the user to customize the colors and fonts in this program by using the Style
- Manager. Read the <command>README</command> file for detailed information
- on this demo.</para>
- <sect3 id="RDMAP.recin.div.43">
- <title>Related Documentation</title>
- <para>For more information on user customization issues, see the <emphasis>Style Guide and Certification Checklist</emphasis>.<indexterm><primary>customization</primary><secondary>user issues <$endrange></secondary></indexterm><indexterm><primary>recommended integration <$endrange></primary></indexterm><indexterm>
- <primary>levels of integration</primary><secondary>recommended <$endrange></secondary></indexterm><indexterm>
- <primary>integration</primary><secondary>recommended <$endrange></secondary></indexterm></para>
- </sect3>
- </sect2>
- </sect1>
- </chapter>
- <!--fickle 1.14 mif-to-docbook 1.7 01/02/96 04:30:53-->
- <?Pub *0000053768>
|