doc: move C to en_US.UTF-8.
This commit is contained in:
12
cde/doc/en_US.UTF-8/guides/progOview/BEntity.sgm
Normal file
12
cde/doc/en_US.UTF-8/guides/progOview/BEntity.sgm
Normal file
@@ -0,0 +1,12 @@
|
||||
<!-- $XConsortium: BEntity.sgm /main/7 1996/08/07 14:59:45 cdedoc $ -->
|
||||
<!ENTITY RDMAP.archo.fig.1 SYSTEM "./progOview/graphics/road1.cgm" NDATA CGM-BINARY>
|
||||
|
||||
<!ENTITY RDMAP.archo.fig.2 SYSTEM "./progOview/graphics/fpanel.tif" NDATA TIFF>
|
||||
|
||||
<!ENTITY RDMAP.optin.fig.1 SYSTEM "./progOview/graphics/SpinBox.tif" NDATA TIFF>
|
||||
|
||||
<!ENTITY RDMAP.optin.fig.2 SYSTEM "./progOview/graphics/ComboBox.tif" NDATA TIFF>
|
||||
|
||||
<!ENTITY RDMAP.optin.fig.3 SYSTEM "./progOview/graphics/MenuBut2.tif" NDATA TIFF>
|
||||
|
||||
<!ENTITY RDMAP.optin.fig.4 SYSTEM "./progOview/graphics/ComboBo3.tif" NDATA TIFF>
|
||||
3
cde/doc/en_US.UTF-8/guides/progOview/Title.am
Normal file
3
cde/doc/en_US.UTF-8/guides/progOview/Title.am
Normal file
@@ -0,0 +1,3 @@
|
||||
# $XConsortium: Title.tmpl /main/2 1996/06/19 16:04:23 drk $
|
||||
# TOC title, only what's between quotes should be modified.
|
||||
PROGOVIEW_TITLE = "Programmer's Overview"
|
||||
3
cde/doc/en_US.UTF-8/guides/progOview/Title.tmpl
Normal file
3
cde/doc/en_US.UTF-8/guides/progOview/Title.tmpl
Normal file
@@ -0,0 +1,3 @@
|
||||
/* $XConsortium: Title.tmpl /main/2 1996/06/19 16:04:23 drk $ */
|
||||
/* TOC title, only what's between quotes should be modified. */
|
||||
title = "Programmer's Overview"
|
||||
72
cde/doc/en_US.UTF-8/guides/progOview/adbook.sgm
Normal file
72
cde/doc/en_US.UTF-8/guides/progOview/adbook.sgm
Normal file
@@ -0,0 +1,72 @@
|
||||
<!-- $XConsortium: adbook.sgm /main/9 1996/08/21 11:52:30 cdedoc $ -->
|
||||
<!DOCTYPE DocBook PUBLIC "-//HaL and O'Reilly//DTD DocBook V2.2.1//EN" [
|
||||
|
||||
|
||||
<!ENTITY RDMAP.archo.fig.1 SYSTEM "./graphics/road1.cgm" NDATA CGM-BINARY>
|
||||
|
||||
<!ENTITY RDMAP.archo.fig.2 SYSTEM "./graphics/fpanel.tif" NDATA TIFF>
|
||||
|
||||
<!ENTITY RDMAP.optin.fig.1 SYSTEM "./graphics/SpinBox.tif" NDATA TIFF>
|
||||
|
||||
<!ENTITY RDMAP.optin.fig.2 SYSTEM "./graphics/ComboBox.tif" NDATA TIFF>
|
||||
|
||||
<!ENTITY RDMAP.optin.fig.3 SYSTEM "./graphics/MenuBut2.tif" NDATA TIFF>
|
||||
|
||||
<!ENTITY RDMAP.optin.fig.4 SYSTEM "./graphics/ComboBo3.tif" NDATA TIFF>
|
||||
|
||||
<!ENTITY % local.notations "| XPM | XBM | XWD">
|
||||
<!NOTATION XPM SYSTEM "XPM">
|
||||
<!NOTATION XBM SYSTEM "XBM">
|
||||
<!NOTATION XWD SYSTEM "XWD">
|
||||
|
||||
|
||||
<!ENTITY credi SYSTEM "./credits.sgm">
|
||||
<!ENTITY pref SYSTEM "./preface.sgm">
|
||||
<!ENTITY part1 SYSTEM "./part1.sgm">
|
||||
<!ENTITY archo SYSTEM "./ch01.sgm">
|
||||
<!ENTITY part2 SYSTEM "./part2.sgm">
|
||||
<!ENTITY consi SYSTEM "./ch02.sgm">
|
||||
<!ENTITY devap SYSTEM "./ch03.sgm">
|
||||
<!ENTITY port SYSTEM "./ch04.sgm">
|
||||
<!ENTITY BIntg SYSTEM "./ch05.sgm">
|
||||
<!ENTITY recin SYSTEM "./ch06.sgm">
|
||||
<!ENTITY optin SYSTEM "./ch07.sgm">
|
||||
<!-- <!ENTITY motif SYSTEM "./appa.sgm"> rmname'd per Bob Scheifler -->
|
||||
<!ENTITY compr SYSTEM "./appa.sgm">
|
||||
|
||||
|
||||
|
||||
]>
|
||||
|
||||
<!-- ____________________________________________________________________________ -->
|
||||
|
||||
<DocBook>
|
||||
<Book>
|
||||
|
||||
<Title>Common Desktop Environment: Programmer's Overview</Title>
|
||||
|
||||
&credi;
|
||||
&pref;
|
||||
|
||||
<Part Id="RDMAP.part1.div.1">
|
||||
&part1;
|
||||
&archo;
|
||||
|
||||
</Part>
|
||||
|
||||
<Part Id="RDMAP.part2.div.1">
|
||||
&part2;
|
||||
&consi;
|
||||
&devap;
|
||||
&port;
|
||||
&BIntg;
|
||||
&recin;
|
||||
&optin;
|
||||
|
||||
</Part>
|
||||
|
||||
&compr;
|
||||
|
||||
</Book>
|
||||
</DocBook>
|
||||
|
||||
159
cde/doc/en_US.UTF-8/guides/progOview/appa.sgm
Normal file
159
cde/doc/en_US.UTF-8/guides/progOview/appa.sgm
Normal file
@@ -0,0 +1,159 @@
|
||||
<!-- $XConsortium: appa.sgm /main/7 1996/08/25 15:13:16 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. -->
|
||||
|
||||
<appendix id="RDMAP.compr.div.1">
|
||||
<title id="RDMAP.compr.mkr.1">Component and Guideline Reference</title>
|
||||
<para>This appendix alphabetically lists all the CDE development environment
|
||||
components and guidelines, along with any associated library and header files,
|
||||
and provides references to associated documentation. In addition to the
|
||||
documentation listed, all components provide man pages, which are located
|
||||
in the <filename>/usr/dt/man</filename> directory. All header files are located
|
||||
in the <command>Dt</command> subdirectory of <filename>/usr/dt/include</filename>
|
||||
unless otherwise noted.</para>
|
||||
<table id="rdmap.compr.tbl.1" frame="topbot">
|
||||
<title>Components and Associated Documentation</title>
|
||||
<tgroup cols="4" colsep="0" rowsep="0">
|
||||
<colspec colwidth="1.54in">
|
||||
<colspec colwidth="1.43in">
|
||||
<colspec colwidth="1.76in">
|
||||
<colspec colwidth="2.45in">
|
||||
<thead>
|
||||
<row><entry align="left" valign="bottom"><para><literal>Component</literal></para></entry>
|
||||
<entry align="left" valign="bottom"><para><literal>Library</literal></para></entry>
|
||||
<entry align="left" valign="bottom"><para><literal>Header Files</literal></para></entry>
|
||||
<entry align="left" valign="bottom"><para><literal>Documentation</literal></para></entry>
|
||||
</row></thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Actions and Action Invocation</para></entry>
|
||||
<entry align="left" valign="top"><para><command>libDtSvc</command></para></entry>
|
||||
<entry align="left" valign="top"><para><filename>Action.h</filename></para></entry>
|
||||
<entry align="left" valign="top"><para><emphasis>Programmer's Guide</emphasis>; <emphasis>User's Guide</emphasis>; man pages</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Application Builder</para></entry>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para><emphasis>Application Builder User's
|
||||
Guide</emphasis>; <emphasis>Application Builder Help</emphasis></para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Calendar</para></entry>
|
||||
<entry align="left" valign="top"><para><command>libcsa</command></para></entry>
|
||||
<entry align="left" valign="top"><para><filename>csa/csa.h</filename></para></entry>
|
||||
<entry align="left" valign="top"><para><emphasis>Programmer's Guide</emphasis>; <emphasis>Calendar Help</emphasis></para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Control Widgets</para></entry>
|
||||
<entry align="left" valign="top"><para><command>libDtWidget</command></para></entry>
|
||||
<entry align="left" valign="top"><para><command>ComboBox.h, SpinBox.h, MenuButton.h</command></para></entry>
|
||||
<entry align="left" valign="top"><para><emphasis>Programmer's Guide</emphasis>;
|
||||
man pages</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Data Typing</para></entry>
|
||||
<entry align="left" valign="top"><para><command>libDtSvc</command></para></entry>
|
||||
<entry align="left" valign="top"><para><filename>Dts.h</filename></para></entry>
|
||||
<entry align="left" valign="top"><para><emphasis>Programmer's Guide</emphasis>; <emphasis>User's Guide</emphasis>; man pages</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Drag and Drop</para></entry>
|
||||
<entry align="left" valign="top"><para><command>libDtSvc</command></para></entry>
|
||||
<entry align="left" valign="top"><para><filename>Dnd.h</filename></para></entry>
|
||||
<entry align="left" valign="top"><para><emphasis>Programmer's Guide</emphasis>;
|
||||
man pages</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Desktop KornShell</para></entry>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para><emphasis>Desktop KornShell User's
|
||||
Guide</emphasis>; man pages</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Help System</para></entry>
|
||||
<entry align="left" valign="top"><para><command>libDtHelp</command></para></entry>
|
||||
<entry align="left" valign="top"><para><command>Help.h, HelpDialog.h, HelpQuickD.h</command></para></entry>
|
||||
<entry align="left" valign="top"><para><emphasis>Help System Author's and
|
||||
Programmer's Guide</emphasis>; man pages</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Common Desktop</para><para>Environment
|
||||
Motif</para></entry>
|
||||
<entry align="left" valign="top"><para><command>libMrm</command></para></entry>
|
||||
<entry align="left" valign="top"><para><filename>Mrm/MrmPublic.h</filename></para></entry>
|
||||
<entry align="left" valign="top"><para><emphasis>Motif Programmer's
|
||||
Guide</emphasis>; <emphasis>Motif Reference Guide</emphasis>; man
|
||||
pages</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para><command>libUil</command></para></entry>
|
||||
<entry align="left" valign="top"><para><filename>uil/UilDef.h</filename></para></entry>
|
||||
<entry align="left" valign="top"><para><emphasis>Motif Programmer's
|
||||
Guide</emphasis>; <emphasis>Motif Reference Guide</emphasis>; man
|
||||
pages</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para><command>libXm</command></para></entry>
|
||||
<entry align="left" valign="top"><para><filename>Xm/*.h</filename></para></entry>
|
||||
<entry align="left" valign="top"><para><emphasis>Motif Programmer's
|
||||
Guide</emphasis>; <emphasis>Motif Reference Guide</emphasis>; man
|
||||
pages</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Session Manager</para></entry>
|
||||
<entry align="left" valign="top"><para><command>libDtSvc</command></para></entry>
|
||||
<entry align="left" valign="top"><para><filename>Session.h</filename></para></entry>
|
||||
<entry align="left" valign="top"><para><emphasis>Programmer's Guide</emphasis>;
|
||||
man pages</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Terminal Emulator</para><para>Widget
|
||||
</para></entry>
|
||||
<entry align="left" valign="top"><para><command>libDtTerm</command></para></entry>
|
||||
<entry align="left" valign="top"><para><filename>Term.h</filename></para></entry>
|
||||
<entry align="left" valign="top"><para>man pages</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Text Editor Widget</para></entry>
|
||||
<entry align="left" valign="top"><para><command>libDtWidget</command></para></entry>
|
||||
<entry align="left" valign="top"><para><filename>Editor.h</filename></para></entry>
|
||||
<entry align="left" valign="top"><para><emphasis>Programmer's Guide</emphasis>;
|
||||
man pages</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>ToolTalk Messaging Service</para></entry>
|
||||
<entry align="left" valign="top"><para><command>libtt</command></para></entry>
|
||||
<entry align="left" valign="top"><para><command>Tt/tt_c.h, Tt/tttk.h</command></para></entry>
|
||||
<entry align="left" valign="top"><para><emphasis>ToolTalk Messaging Overview</emphasis>; man pages</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Workspace Manager</para></entry>
|
||||
<entry align="left" valign="top"><para><command>libDtSvc</command></para></entry>
|
||||
<entry align="left" valign="top"><para><filename>Wsm.h</filename></para></entry>
|
||||
<entry align="left" valign="top"><para><emphasis>Programmer's Guide</emphasis>;
|
||||
man pages</para></entry></row></tbody></tgroup><?Pub Caret></table>
|
||||
<table id="rdmap.compr.tbl.2" frame="topbot">
|
||||
<title>Guidelines and Associated Documentation</title>
|
||||
<tgroup cols="2" colsep="0" rowsep="0">
|
||||
<colspec colwidth="2.14in">
|
||||
<colspec colwidth="3.55in">
|
||||
<thead>
|
||||
<row><entry align="left" valign="bottom"><para><literal>Guideline</literal></para></entry>
|
||||
<entry align="left" valign="bottom"><para><literal>Documentation</literal></para></entry>
|
||||
</row></thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Internationalization</para></entry>
|
||||
<entry align="left" valign="top"><para><emphasis>Internationalization Programmer's
|
||||
Guide</emphasis></para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Standard Font Names</para></entry>
|
||||
<entry align="left" valign="top"><para><emphasis>Programmer's Guide</emphasis></para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Displaying Error Messages</para></entry>
|
||||
<entry align="left" valign="top"><para><emphasis>Programmer's Guide</emphasis></para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>User Customization</para><para>(color
|
||||
use, accessibility, mouse</para><para>double-click speed)</para></entry>
|
||||
<entry align="left" valign="top"><para><emphasis>Style Guide and Certification
|
||||
Checklist</emphasis></para></entry></row></tbody></tgroup></table>
|
||||
</appendix>
|
||||
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 04:30:53-->
|
||||
<?Pub *0000010088>
|
||||
84
cde/doc/en_US.UTF-8/guides/progOview/book.sgm
Normal file
84
cde/doc/en_US.UTF-8/guides/progOview/book.sgm
Normal file
@@ -0,0 +1,84 @@
|
||||
<!-- $XConsortium: book.sgm /main/5 1996/08/21 11:52:39 cdedoc $ -->
|
||||
<!DOCTYPE Book PUBLIC "-//HaL and O'Reilly//DTD DocBook//EN" [
|
||||
|
||||
|
||||
<!ENTITY % ISOpublishing PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN">
|
||||
%ISOpublishing;
|
||||
|
||||
<!ENTITY % ISOnumeric PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN">
|
||||
%ISOnumeric;
|
||||
|
||||
<!ENTITY % ISOdiacritical PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN">
|
||||
%ISOdiacritical;
|
||||
|
||||
<!ENTITY % ISOgeneraltech PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN">
|
||||
%ISOgeneraltech;
|
||||
|
||||
<!ENTITY % ISOalatin1 PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN">
|
||||
%ISOalatin1;
|
||||
|
||||
<!ENTITY % ISOalatin2 PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN">
|
||||
%ISOalatin2;
|
||||
|
||||
<!ENTITY % ISOgreek PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN">
|
||||
%ISOgreek;
|
||||
|
||||
<!ENTITY % ISOboxandline PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN">
|
||||
%ISOboxandline;
|
||||
|
||||
|
||||
<!ENTITY % BEntities SYSTEM "./progOview/BEntity.sgm">
|
||||
%BEntities;
|
||||
|
||||
<!ENTITY % local.notations "| XPM | XBM | XWD">
|
||||
<!NOTATION XPM SYSTEM "XPM">
|
||||
<!NOTATION XBM SYSTEM "XBM">
|
||||
<!NOTATION XWD SYSTEM "XWD">
|
||||
|
||||
<!ENTITY credi SYSTEM "./progOview/credits.sgm">
|
||||
<!ENTITY pref SYSTEM "./progOview/preface.sgm">
|
||||
<!ENTITY part1 SYSTEM "./progOview/part1.sgm">
|
||||
<!ENTITY archo SYSTEM "./progOview/ch01.sgm">
|
||||
<!ENTITY part2 SYSTEM "./progOview/part2.sgm">
|
||||
<!ENTITY consi SYSTEM "./progOview/ch02.sgm">
|
||||
<!ENTITY devap SYSTEM "./progOview/ch03.sgm">
|
||||
<!ENTITY port SYSTEM "./progOview/ch04.sgm">
|
||||
<!ENTITY BIntg SYSTEM "./progOview/ch05.sgm">
|
||||
<!ENTITY recin SYSTEM "./progOview/ch06.sgm">
|
||||
<!ENTITY optin SYSTEM "./progOview/ch07.sgm">
|
||||
<!-- <!ENTITY motif SYSTEM "./progOview/appa.sgm"> rmname'd per Bob Scheifler -->
|
||||
<!ENTITY compr SYSTEM "./progOview/appa.sgm">
|
||||
|
||||
|
||||
|
||||
]>
|
||||
|
||||
<!-- ____________________________________________________________________________ -->
|
||||
|
||||
<Book>
|
||||
|
||||
<Title>Common Desktop Environment: Programmer's Overview</Title>
|
||||
|
||||
&credi;
|
||||
&pref;
|
||||
|
||||
<Part Id="RDMAP.part1.div.1">
|
||||
&part1;
|
||||
&archo;
|
||||
|
||||
</Part>
|
||||
|
||||
<Part Id="RDMAP.part2.div.1">
|
||||
&part2;
|
||||
&consi;
|
||||
&devap;
|
||||
&port;
|
||||
&BIntg;
|
||||
&recin;
|
||||
&optin;
|
||||
|
||||
</Part>
|
||||
|
||||
&compr;
|
||||
|
||||
</Book>
|
||||
758
cde/doc/en_US.UTF-8/guides/progOview/ch01.sgm
Normal file
758
cde/doc/en_US.UTF-8/guides/progOview/ch01.sgm
Normal file
@@ -0,0 +1,758 @@
|
||||
<!-- $XConsortium: ch01.sgm /main/13 1996/10/30 14:58:57 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.archo.div.1">
|
||||
<title id="RDMAP.archo.mkr.1">Architectural Overview</title>
|
||||
<para>This chapter presents a high-level architectural view of the Common
|
||||
Desktop Environment. For details regarding the desktop run-time environment,
|
||||
consult the run-time documentation set and the online help volumes. For details
|
||||
regarding the desktop development environment components, see
|
||||
<!--Original
|
||||
XRef content: 'Chapter 6, &xd2;Recommended Integration'--><xref role="ChapNumAndTitle"
|
||||
linkend="RDMAP.recin.mkr.1">, <!--Original XRef content: 'Chapter 7,
|
||||
&xd2;Optional Integration'--><xref role="ChapNumAndTitle" linkend="RDMAP.optin.mkr.1">,
|
||||
the development environment documentation set, and the online man pages.
|
||||
</para>
|
||||
<informaltable id="RDMAP.archo.itbl.1" frame="All">
|
||||
<tgroup cols="1">
|
||||
<colspec colname="1" colwidth="4.0 in">
|
||||
<tbody>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Conceptual Overview3'--><xref role="JumpText"
|
||||
linkend="RDMAP.archo.mkr.2"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Data Interaction GUIs5'--><xref role="JumpText"
|
||||
linkend="RDMAP.archo.mkr.3"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Multiuser Collaboration6'--><xref
|
||||
role="JumpText" linkend="RDMAP.archo.mkr.4"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Desktop Management7'--><xref role="JumpText"
|
||||
linkend="RDMAP.archo.mkr.5"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Motif GUI Engine12'--><xref role="JumpText"
|
||||
linkend="RDMAP.archo.mkr.7"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Integration Technologies15'--><xref
|
||||
role="JumpText" linkend="RDMAP.archo.mkr.8"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para>Information Technologies ??
|
||||
</para></entry></row>
|
||||
</tbody>
|
||||
</tgroup></informaltable>
|
||||
<sect1 id="RDMAP.archo.div.2">
|
||||
<title id="RDMAP.archo.mkr.2">Conceptual Overview</title>
|
||||
<para>The Common Desktop Environment<indexterm><primary>architecture, Common
|
||||
Desktop Environment</primary></indexterm> architecture has many cross-process
|
||||
relationships. The three-process relationship of an X client, a window manager,
|
||||
and the X Window System™ server seems simple by comparison. The area
|
||||
covered by the Common Desktop Environment is broad, but the layering in the
|
||||
system is not as rigorous as that of<indexterm><primary>Motif</primary>
|
||||
</indexterm> Motif, Xt, and Xlib. The relationships between high-level system
|
||||
components are diverse and extensible. This chapter groups the technologies
|
||||
to illustrate that each desktop component fits into an overall whole. The
|
||||
Common Desktop Environment can be divided into:</para>
|
||||
<figure>
|
||||
<title>Conceptual overview of Common Desktop Environment</title>
|
||||
<graphic id="rdmap.archo.igrph.1" entityref="RDMAP.archo.fig.1"></graphic>
|
||||
</figure>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>Data interaction graphical user
|
||||
interfaces (GUIs)—Application-level components that are available for
|
||||
user interaction, invocable by other applications. Think of these as programming
|
||||
components at a larger granularity than widgets.<indexterm><primary>data
|
||||
interaction graphical user interfaces</primary></indexterm></para>
|
||||
</listitem><listitem><para>Multiuser collaboration—Defines and uses
|
||||
application program interfaces (APIs) that enable collaboration between users
|
||||
on the network, particularly in the areas of calendar management, network
|
||||
resource naming, and network file sharing.<indexterm><primary>multiuser collaboration</primary></indexterm></para>
|
||||
</listitem><listitem><para>Desktop management—Provides components that
|
||||
negotiate the visual relationships between entities on the desktop. These
|
||||
include the following: Window Manager, Workspace Manager, Session Manager,
|
||||
Application Manager, File Manager, Style Manager, and the Front Panel.<indexterm>
|
||||
<primary>desktop management</primary></indexterm></para>
|
||||
</listitem><listitem><para>Motif GUI engine—Includes those components
|
||||
that implement the controls available to the user and includes the Common
|
||||
Desktop Environment Motif toolkit, additional widgets, a GUI shell (Desktop
|
||||
KornShell), and a GUI construction tool (Application Builder).<indexterm>
|
||||
<primary>graphical user interface engine</primary></indexterm></para>
|
||||
</listitem><listitem><para>Integration technologies—Represent technologies
|
||||
that do not generate GUIs, but are used as infrastructure by the rest of
|
||||
the desktop. These technologies include process execution control, application
|
||||
messaging (mechanism and protocols), data typing, and method invocation.<indexterm>
|
||||
<primary>integration technologies</primary></indexterm></para>
|
||||
</listitem></itemizedlist>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.archo.div.3">
|
||||
<title id="RDMAP.archo.mkr.3">Data Interaction GUIs<indexterm><primary>data
|
||||
interaction graphical user interfaces <$startrange></primary></indexterm></title>
|
||||
<para>The Common Desktop Environment supplies a registration service, the
|
||||
ToolTalk Messaging Service, that enables an application to find an available
|
||||
service provider. ToolTalk provides the low-level messaging infrastructure.
|
||||
A companion mechanism, called the actions system, provides a consistent
|
||||
abstraction layer on top of both the traditional<indexterm><primary>UNIX</primary></indexterm> UNIX™ command-line interface to applications
|
||||
and the Common Desktop Environment-recommended ToolTalk interface to applications.
|
||||
Actions, as semantic entities, are exposed to the end user through higher
|
||||
levels of software. Both actions and ToolTalk are discussed in more detail
|
||||
in <!--Original XRef content: '&xd2;Integration Technologies&xd3; on page 15'--><xref
|
||||
role="SecTitleAndPageNum" linkend="RDMAP.archo.mkr.8">.</para>
|
||||
<para>The desktop contains components that are available through<indexterm>
|
||||
<primary>actions</primary></indexterm> action and ToolTalk APIs. Examples
|
||||
include GUIs to show a view of a directory, submit a print job, view the
|
||||
contents of the Trash Can, edit some text, show help information, compose
|
||||
a calendar appointment, and compose a mail message.</para>
|
||||
<para>You can also incorporate actions and<indexterm><primary>ToolTalk Messaging
|
||||
Service</primary></indexterm> ToolTalk message support into your application
|
||||
so that the application-specific services they supply are available to the
|
||||
desktop and other applications. Particularly, applications should provide
|
||||
the composition, viewing, editing, and printing services for both proprietary
|
||||
and standard format data. This way, applications that are coded to accept
|
||||
an extensible set of data types automatically gain more capabilities as more <emphasis>media</emphasis> handlers are added to the system. The Common Desktop Environment<indexterm><primary>File Manager</primary></indexterm>
|
||||
File Manager,<indexterm>
|
||||
<primary>Front Panel</primary></indexterm> Front Panel, and<indexterm><primary>Mailer</primary></indexterm> Mailer attachment GUI are examples of such applications.
|
||||
</para>
|
||||
<para>Media is used as a generic term for anything that can be presented to
|
||||
the user to convey information. The desktop provides media handlers for
|
||||
appointments, mail messages, mail folders, text, icons, and help data. Vendors
|
||||
have extended the desktop with additional media handlers, including PostScript™,
|
||||
many kinds of image file formats, and audio <literal><indexterm><primary>data interaction graphical user interfaces <$endrange></primary></indexterm></literal>data.</para>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.archo.div.4">
|
||||
<title id="RDMAP.archo.mkr.4">Multiuser Collaboration<indexterm><primary>multiuser collaboration <$startrange></primary></indexterm></title>
|
||||
<para>While the ToolTalk and action mechanisms encourage cooperation between
|
||||
applications, the desktop also defines cross-user collaboration technologies.
|
||||
This means distributed access to shared user data. The desktop has defined
|
||||
some basic sharing mechanisms and has also built on top of existing mechanisms.
|
||||
</para>
|
||||
<para>An example of building on an existing mechanism is the<indexterm>
|
||||
<primary>remote procedure call (RPC)</primary></indexterm> remote procedure
|
||||
call (RPC) client/service implementation of calendar management. The desktop
|
||||
provides a client-side library and API, RPC protocol, and daemon/service
|
||||
that enables users to share appointment information. (The API is being standardized
|
||||
through<indexterm><primary>X.400 API Association (XAPIA)</primary></indexterm> X.400
|
||||
Application Programming Interface Association (XAPIA) to enable a cross-UNIX,
|
||||
PC, and palmtop calendar standard.) The RPC protocol enables a user to browse
|
||||
and directly edit another user's calendar. Access is controlled by a user-specific
|
||||
access control mechanism. Calendars are tied to hosts, and a calendar's data
|
||||
is maintained by a host- specific daemon. The desktop names calendars through
|
||||
a <computeroutput>user@host</computeroutput> format.</para>
|
||||
<para>The Common Desktop Environment uses conventional distributed file systems
|
||||
to name files that are sharable on the network. To provide an interface that
|
||||
is independent of the distributed file system, the desktop provides an API
|
||||
to translate host-relative file names into locally expressible file names.
|
||||
Although the desktop is based on the NFS® system, it can be ported to
|
||||
run on top of other distributed file systems. Using the desktop file-name
|
||||
mapping API, an opaque file name object can be constructed and passed between
|
||||
desktop clients across the network and resolved in a host-specific way. Also,
|
||||
to simplify the programming task and end user metaphor, Common Desktop Environment
|
||||
applications should present remote file references as local file paths.</para>
|
||||
<para>One of the fundamentals of building multiuser collaboration applications
|
||||
is the ability to share files. The conventions for naming network files,
|
||||
in conjunction with a ToolTalk file-sharing mechanism called <emphasis><indexterm>
|
||||
<primary>file scoping</primary></indexterm>file scoping</emphasis>, enable
|
||||
multiuser collaboration through file sharing. File scoping is more than a
|
||||
mechanism for simple, exclusive access control. Cooperating clients can use
|
||||
file-scope access to negotiate for access to files. For example, an application
|
||||
that has exclusive access to a file could ask whether the user was done with
|
||||
the file when another application wanted to gain exclusive access to the file.<literal><indexterm>
|
||||
<primary>multiuser collaboration <$endrange></primary></indexterm></literal></para>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.archo.div.5">
|
||||
<title id="RDMAP.archo.mkr.5">Desktop Management</title>
|
||||
<para>The physical metaphor associated with the Common Desktop Environment
|
||||
is loosely one of a user sitting in a chair surrounded by a bank of desks
|
||||
(workspaces). As the user swivels the chair (by clicking a push button on
|
||||
the Front Panel), another desk becomes accessible. On each desk, the following
|
||||
is available:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>A collection of drawers (<indexterm>
|
||||
<primary>File Manager</primary></indexterm> File Manager views) in which folders
|
||||
(directories) and reports (files) are organized.</para>
|
||||
</listitem><listitem><para>A collection of papers in use on the desktop (windows).
|
||||
Some papers are pushed out of the way (as icons), but are within easy reach.
|
||||
</para>
|
||||
</listitem><listitem><para>Continuous display (through<indexterm><primary>Front Panel</primary></indexterm> Front Panel icons) of a clock, the date,
|
||||
an indication of new mail, and an indication of something in the trash can.
|
||||
</para>
|
||||
</listitem><listitem><para>Direct access (through Front Panel buttons) to
|
||||
an appointment book (<indexterm><primary>Calendar</primary></indexterm>Calendar),
|
||||
a pad of paper (<indexterm><primary>Text Editor</primary></indexterm>Text
|
||||
Editor), a terminal (emulator), a mail box (<indexterm><primary>Mailer</primary>
|
||||
</indexterm>Mailer), a printer (<indexterm><primary>Print Manager</primary>
|
||||
</indexterm>Print Manager), office lighting controls (<indexterm><primary>Style Manager</primary></indexterm>Style Manager), a list of electronic agents
|
||||
(<indexterm><primary>Application Manager</primary></indexterm>Application
|
||||
Manager and Front Panel personal tool box), a guide book (<indexterm>
|
||||
<primary>Help system</primary></indexterm>Help), and a library (Information
|
||||
Manager).</para>
|
||||
</listitem></itemizedlist>
|
||||
<para>The user drags and drops objects to change their location and make copies
|
||||
of them. By dropping objects on services, the user gains assistance with
|
||||
appointment scheduling, editing, mail composition, printing, and other tasks.</para>
|
||||
<sect2 id="RDMAP.archo.div.6">
|
||||
<title>Session Management<indexterm><primary>desktop management</primary>
|
||||
<secondary>session management <$startrange></secondary></indexterm><indexterm><primary>Session Manager <$startrange></primary></indexterm></title>
|
||||
<para>The state of the desktop can be remembered. At a later time, and perhaps
|
||||
at a different X display station, the state of the desktop can be re-created.
|
||||
A session is a snapshot of the state of a user's desktop at a point in time.
|
||||
The Common Desktop Environment supports the following sessions from which the user
|
||||
can choose at login:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>Home session—A snapshot
|
||||
of the desktop state that reassembles in the same way each time it is started.
|
||||
</para>
|
||||
</listitem><listitem><para>Current session—The state of a desktop saved
|
||||
at logout time.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Display-specific Home session—A Home session created by the user for a specific display;
|
||||
if it exists, it takes precedence over the generic Home session.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Display-specific Current session—A Current session created by the user for a specific
|
||||
display; if it exists, it takes precedence over the generic Current session.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Failsafe session—A minimal session that can be used to access the system if the normal
|
||||
<command>login</command> fails.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>The Common Desktop Environment Session Manager coordinates these activities,
|
||||
but applications are responsible for saving their own state.</para>
|
||||
<para>The desktop supports the X11R6 X Session Management Protocol and
|
||||
the X11R5 Interclient Communication Conventions style
|
||||
of session management. This consists mostly of conventions for setting properties
|
||||
on top-level windows. The desktop extends this by providing a facility that
|
||||
allocates specific files into which applications can store their state. A
|
||||
command-line flag then points to this file when the application is restarted.
|
||||
Applications that maintain multiple top-level windows must save the state
|
||||
of each of them.</para>
|
||||
<para>A session is associated with a particular user. In the Common Desktop
|
||||
Environment, the Login Manager is responsible for initial user login. The<indexterm><primary>Login Manager</primary></indexterm>
|
||||
Login Manager is
|
||||
an alternative GUI for the<indexterm><primary>UNIX</primary></indexterm> UNIX
|
||||
login program. Normally, it checks the entered password with the user's registered
|
||||
password. However, vendors can provide authentication schemes tuned to their
|
||||
platform.</para>
|
||||
<para>The Login Manager is network-aware. When faced with an X display that
|
||||
is normally served by host A, the user can log into the user's desktop by
|
||||
running a session from host B that has full access to the user's normal set
|
||||
of files and services on host B. This is possible by Login Manager acting
|
||||
as the desktop's<indexterm><primary>X11 Display Manager (XDM)</primary>
|
||||
</indexterm> X11 Display Manager (XDM). The XDM Control Protocol (XDMCP) is
|
||||
used between X11 window servers and XDMs on the network. The Login Manager
|
||||
displays its login window or host chooser window on any X11 server requesting
|
||||
either XDM service. This makes the Common Desktop Environment a good match
|
||||
for use with XDMCP-aware X terminals.</para>
|
||||
<para>For connections to the X server, the desktop uses the X magic cookie
|
||||
scheme to control access. If a user on some host machine can read a certain
|
||||
file within a session owner's home directory, then access to the X server
|
||||
is granted. An alternative to this per-user authorization is per-host authorization.
|
||||
This is useful for installations supporting pre-X11R4 clients, which will
|
||||
be unable to connect to X servers using the<indexterm><primary>X magic
|
||||
cookie scheme</primary></indexterm> X magic cookie scheme.</para>
|
||||
<para>X resource files are handled in the context of Common Desktop Environment
|
||||
sessions as follows: a set of Common Desktop Environment default resources
|
||||
is merged with a host version of this file, followed by the user's <filename>$HOME/.Xdefaults</filename> file, followed by a session-specific file of resources
|
||||
that have changed through user interaction with the Style Manager. The result
|
||||
is stored in the <filename>RESOURCE_MANAGER</filename> property of the root
|
||||
window. To enable fine- grain customization, the C preprocessor is run on
|
||||
resource files.<literal><indexterm><primary>desktop management</primary><secondary>session management <$endrange></secondary></indexterm><indexterm><primary>Session Manager <$endrange></primary></indexterm></literal>
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.archo.div.7">
|
||||
<title>Application Management<indexterm><primary>desktop management</primary>
|
||||
<secondary>application management <$startrange></secondary></indexterm></title>
|
||||
<para>One of the obstacles preventing end users from taking full advantage
|
||||
of the network environment is the difficulty of accessing remote applications.
|
||||
The Common Desktop Environment provides conventions for:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>Installation of applications
|
||||
so that they can be run remotely</para>
|
||||
</listitem><listitem><para>User navigation of available applications</para>
|
||||
</listitem><listitem><para>Execution of remote applications</para>
|
||||
</listitem></itemizedlist>
|
||||
<para>The user can browse the collection of available applications with a
|
||||
GUI tool called Application Manager. Applications can be dragged onto the
|
||||
desktop for easier access. Even remote applications are started by a simple
|
||||
double-click, hiding the network location of a running application. The user
|
||||
is not aware of any distinction between local and remote applications.</para>
|
||||
<para>This network transparency is accomplished by installing applications
|
||||
on network hosts designated as <emphasis><indexterm><primary>application
|
||||
servers</primary></indexterm>application servers</emphasis>. The parts of
|
||||
the installation relevant to the desktop require placing certain files in
|
||||
conventional places in the application's installation hierarchy. The application
|
||||
server maintains a list of applications that it is serving. Each host on
|
||||
the network maintains a list of the application servers on the network that
|
||||
it queries when a user logs into the desktop. This process is referred to
|
||||
as <emphasis>application gathering</emphasis>. It results in a dynamically-generated
|
||||
file hierarchy of actions arranged in folders. (Actions represent operations
|
||||
that end users can invoke, including starting applications.<indexterm><primary>actions</primary></indexterm>)</para>
|
||||
<para>The Common Desktop Environment<indexterm><primary>Application Manager</primary></indexterm> Application Manager provides a specialized view of
|
||||
the file system for the end user. Applications are arranged into groups and
|
||||
groups can be nested (such as in a directory hierarchy). Your application's
|
||||
installation script associates the application to a group. This association
|
||||
can be overridden by the system administrator as part of application server
|
||||
configuration. The set and arrangement of the actions shown through the Application
|
||||
Manager is a system resource that is typically shared between multiple users.
|
||||
Users cannot modify this view.</para>
|
||||
<para>The user can drag an icon from the<indexterm><primary>Application
|
||||
Manager</primary></indexterm> Application Manager onto the desktop, File Manager,
|
||||
Front Panel, and so on. The associated action remains valid as long as the
|
||||
gathered application that it refers to remains valid. Because actions represent
|
||||
a form of abstraction and indirection, the actual location of the application
|
||||
can change over time. This change remains transparent to the end user (this
|
||||
is explained further in <!--Original XRef content: '&xd2;Method Invocation&xd3;
|
||||
on page 18'--><xref role="SecTitleAndPageNum" linkend="RDMAP.archo.mkr.9">).
|
||||
The user double-clicks on an action icon to invoke it.<indexterm>
|
||||
<primary>desktop management</primary><secondary>application management <$endrange></secondary></indexterm></para>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.archo.div.8">
|
||||
<title>Object Management</title>
|
||||
<para>T<literal><indexterm><primary>desktop management</primary><secondary>object management</secondary></indexterm><indexterm><primary>object management</primary></indexterm></literal>he Common Desktop Environment captures some
|
||||
object-oriented system attributes without being dependent upon a completely
|
||||
object-oriented infrastructure. The desktop provides graphic onscreen images
|
||||
that the user can pick up and move about, dropping them anywhere it makes
|
||||
semantic sense. These are viewed as <symbol role="Variable">objects</symbol>
|
||||
by the user. The<indexterm><primary>File Manager</primary></indexterm> File
|
||||
Manager promotes the object abstraction by providing a graphical way to browse
|
||||
and modify file and directory objects within the file system. It also provides
|
||||
a GUI to invoke actions. When the user selects a file, the actions that are
|
||||
defined for the selected type of file are presented to the user.</para>
|
||||
<para>Objects managed by desktop-based applications do not have to be file-based;
|
||||
in-memory buffers can represent desktop objects, too. The Common Desktop
|
||||
Environment Mailer handles<indexterm><primary>Multipurpose Internet Mail
|
||||
Extensions (MIME)</primary></indexterm> Multipurpose Internet Mail Extensions
|
||||
(MIME) messages by displaying attachments to a message as icons in a scrollable
|
||||
panel. These are objects that behave just like file-based objects during
|
||||
activities such as drag and drop. The user can drag between the File Manager
|
||||
and the<indexterm><primary>Mailer</primary></indexterm> Mailer. Applications
|
||||
that use drag and drop should maintain this important user model by supporting
|
||||
both file-based and buffer-based objects. The desktop drag-and-drop API and
|
||||
protocol make this straightforward.</para>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.archo.div.9">
|
||||
<title>Window Management</title>
|
||||
<para>The <literal><indexterm><primary>desktop management</primary><secondary>window management</secondary></indexterm><indexterm><primary>Window Manager <$startrange></primary></indexterm></literal>Window
|
||||
Manager is essentially the Motif window manager with extensions to provide
|
||||
the<indexterm><primary>Front Panel</primary></indexterm> Front Panel GUI
|
||||
and workspace abstraction.</para>
|
||||
<para>The Front Panel can be thought of as a graphic version of the root window
|
||||
menu supported by many window managers. It can also be thought of as a tuned
|
||||
object manager in which common objects are readily available to the user.
|
||||
The Front Panel can show dynamic system information, and it enables the user
|
||||
to invoke actions and system functions. The user dynamically customizes the
|
||||
Front Panel by dragging and dropping action icons from the<indexterm><primary>Application Manager</primary></indexterm> Application Manager and<indexterm>
|
||||
<primary>File Manager</primary></indexterm> File Manager onto subpanels. Applications
|
||||
can come equipped with special configuration files that extend the Front
|
||||
Panel, possibly defining drop behavior, drop zone animation feedback, and
|
||||
so on. The user can optionally install these configuration files depending
|
||||
on customization preferences. <!--Original XRef content: 'Figure 1‐2'--><xref
|
||||
role="CodeOrFigureOrTable" linkend="RDMAP.archo.mkr.6"> displays a typical
|
||||
desktop Front Panel.</para>
|
||||
<figure>
|
||||
<title id="RDMAP.archo.mkr.6">Typical Front Panel</title>
|
||||
<graphic id="RDMAP.archo.grph.1" entityref="RDMAP.archo.fig.2"></graphic>
|
||||
</figure>
|
||||
<para>Workspaces are abstractions supported by the Window Manager that can
|
||||
be thought of as virtual desktops. Application windows exist within one,
|
||||
some, or all available workspaces. The user usually determines which workspaces
|
||||
an application window exists in as part of the user's customization. You
|
||||
should rarely use the workspace API other than to explicitly designate in
|
||||
which workspace your application appears on session restart. In general,
|
||||
do not place your application within multiple workspaces, because this overrides
|
||||
the user's prerogative.<indexterm><primary>desktop management</primary><secondary>window management</secondary></indexterm><indexterm>
|
||||
<primary>Window Manager <$endrange></primary></indexterm></para>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.archo.div.10">
|
||||
<title>Style Management</title>
|
||||
<para>The <literal><indexterm><primary>desktop management</primary><secondary>style management</secondary></indexterm><indexterm><primary>Style Manager <$startrange></primary></indexterm></literal>Style
|
||||
Manager enables users to customize their desktop using a GUI. Users are shielded
|
||||
from advanced concepts, such as X resources, for most common customization
|
||||
options. Style Manager provides controls for desktop-wide properties that
|
||||
adjust backdrops, keyboard settings, mouse settings, screen saver options,
|
||||
window management, and session management. These properties either do not
|
||||
affect applications directly or indirectly affect them through the X server
|
||||
or window manager.</para>
|
||||
<para>You, as an application developer, are more directly influenced by font
|
||||
choices, color choices, and input device mappings. The Motif toolkit and
|
||||
the Common Desktop Environment handle many of these settings transparently
|
||||
for widgets. However, your application will appear more integrated with the
|
||||
rest of the desktop if it responds to user font and color preferences. Applications
|
||||
that directly interact with the mouse will feel more integrated with the
|
||||
rest of the desktop if they are consistent with other applications; for example,
|
||||
by using the same mouse button double-click minimum interval value ( <command>multiClickTime</command> resource).</para>
|
||||
<para>To accommodate differences between platform vendor's display technology
|
||||
and available font sets, the Common Desktop Environment defines font aliases
|
||||
that are indirect names to actual font names. Use these aliases in the same
|
||||
way as the rest of desktop uses them.</para>
|
||||
<para>The Style Manager provides the user with color selection options to
|
||||
adjust the desktop color scheme. This color information is private to the
|
||||
Common Desktop Environment. Applications doing widget subclassing can indirectly
|
||||
access some of the color scheme by looking at inherited background pixel
|
||||
values. A call to <computeroutput>XmGetColors()</computeroutput> generates
|
||||
3-D shadow colors.</para>
|
||||
<para>The Common Desktop Environment does not dictate color usage for static
|
||||
colors, such as those used within icons. For these situations, however, your
|
||||
application should attempt to use the colors offered by the Common Desktop
|
||||
Environment Icon Editor, to enhance color sharing.<indexterm>
|
||||
<primary>desktop management</primary><secondary>style management</secondary>
|
||||
</indexterm><indexterm><primary>Style Manager <$endrange></primary></indexterm></para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.archo.div.11">
|
||||
<title id="RDMAP.archo.mkr.7">Motif GUI Engine</title>
|
||||
<para>Think of the Motif toolkit as the GUI engine of the desktop. This section
|
||||
discusses Common Desktop Environment Motif, Common Desktop Environment widgets,
|
||||
and alternative modes of Motif programming.</para>
|
||||
<sect2 id="RDMAP.archo.div.12">
|
||||
<title>Common Desktop Environment Motif Toolkit</title>
|
||||
<para>The<indexterm><primary>graphical user interface engine</primary><secondary>Common Desktop Environment Motif Toolkit</secondary></indexterm><indexterm>
|
||||
<primary>Common Desktop Environment Motif <$startrange></primary></indexterm> Common Desktop Environment Motif
|
||||
toolkit is Motif 1.2.3 with bug fixes, enhancements, and some new features.
|
||||
You must explicitly set resources to enable the new features. Functional
|
||||
additions include file selection box GUI modifications, different default
|
||||
settings of existing resources (primarily to lighten up the default border
|
||||
widths), color management enhancements, internationalization of error messages,
|
||||
and minor usability fixes (some of which have the effect of easing migration
|
||||
of<indexterm><primary>OPEN LOOK</primary></indexterm> OPEN LOOK users to
|
||||
the Common Desktop Environment).</para>
|
||||
<para>Common Desktop Environment Motif and<indexterm><primary>Motif 2.0</primary></indexterm> Motif 2.0 are also highly compatible. Most functions
|
||||
put into Common Desktop Environment Motif have been introduced into Motif
|
||||
2.0. As a result, developers have compiled their applications with Common
|
||||
Desktop Environment Motif, relinked to Motif 2.0, and ran the applications
|
||||
successfully. Widget subclassing that has not followed Motif 1.2 subclassing
|
||||
guidelines designed to shield programs from widget size changes are likely
|
||||
to fail.</para>
|
||||
<para>A drag-and-drop convenience layer has been added on top of the Motif
|
||||
1.2 drag-and-drop API. In addition, the Common Desktop Environment uses the
|
||||
Motif 1.2 preregister drag feedback protocol. A drop site drag manager process
|
||||
keeps track of visible drop zones on the desktop. This data is used by a
|
||||
drag source client process to manage drag feedback interaction. Limited drag
|
||||
time validation of drop zones is followed by full validation at drop time,
|
||||
with <emphasis>snap- back-to-source</emphasis> animation if the drop fails.
|
||||
</para>
|
||||
<para>Common Desktop Environment Motif includes a GUI style guide and certification
|
||||
checklist that has substantially expanded on the Motif 1.2 style guide. Additions
|
||||
affect the input models, window management, and GUI design principles.<indexterm>
|
||||
<primary>graphical user interface engine</primary><secondary>Common Desktop
|
||||
Environment Motif Toolkit</secondary></indexterm><indexterm><primary>Common
|
||||
Desktop Environment Motif <$endrange></primary></indexterm></para>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.archo.div.13">
|
||||
<title>Common Desktop Environment Motif Widgets</title>
|
||||
<para><indexterm><primary>graphical user interface engine</primary><secondary>Common Desktop Environment Motif widgets</secondary></indexterm><indexterm>
|
||||
<primary>Common Desktop Environment widgets</primary></indexterm>Common Desktop
|
||||
Environment Motif provides two types of widgets that are not available in
|
||||
Motif 1.2.3:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>Low-level control widgets:
|
||||
</para>
|
||||
<itemizedlist remap="Bullet2"><listitem><para>SpinBox—A text field and
|
||||
arrow button widget</para>
|
||||
</listitem><listitem><para>ComboBox—A text field and list box widget
|
||||
</para>
|
||||
</listitem><listitem><para>MenuButton—A menu that doesn't need to be
|
||||
in a row column widget</para>
|
||||
</listitem></itemizedlist>
|
||||
<para>These were added primarily to help you port applications from a Microsoft®
|
||||
Windows or OPEN LOOK environment. The SpinBox and ComboBox widgets have equivalents
|
||||
in Motif 2.0.</para>
|
||||
</listitem><listitem><para>Rich and full-featured widgets:</para>
|
||||
<itemizedlist remap="Bullet2"><listitem><para>Terminal Emulator widget—Useful
|
||||
for applications designed to mix the best of a command-line user interface
|
||||
with a GUI</para>
|
||||
</listitem><listitem><para>Editor widget—Available for embedding a more
|
||||
full-featured plain text editor than that available from the Motif Text widget
|
||||
</para>
|
||||
</listitem><listitem><para>Help widgets—Handle navigation and interaction
|
||||
with application help volumes</para>
|
||||
<para>Help is delivered with an application in the form of<indexterm><primary>Semantic Description Language (SDL)</primary></indexterm> Semantic Description
|
||||
Language (SDL) files that have been compiled from <emphasis><indexterm><primary>HelpTag</primary></indexterm>HelpTag</emphasis>, a form of<indexterm><primary>Standard Generalized Markup Language (SGML)</primary></indexterm> Standard
|
||||
Generalized Markup Language (SGML) files. The Help system features mixed
|
||||
text and graphics, hyper links, dynamic reformatting of text, and structured
|
||||
navigation capabilities.</para>
|
||||
</listitem></itemizedlist>
|
||||
</listitem></itemizedlist>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.archo.div.14">
|
||||
<title>GUI Shell</title>
|
||||
<para>The<indexterm><primary>graphical user interface engine</primary><secondary>Desktop KornShell</secondary></indexterm><indexterm><primary>Desktop KornShell
|
||||
(dtksh) <$startrange></primary>
|
||||
</indexterm> Common Desktop Environment includes Desktop KornShell, an interpreted
|
||||
scripting language alternative to C programming of the Motif toolkit. Desktop
|
||||
KornShell includes selected frequently-used Common Desktop Environment, Xt,
|
||||
and Xlib APIs. You must use a compiled language to access the full power
|
||||
of the environment. However, you can write Desktop KornShell scripts that
|
||||
participate in desktop integration activities such as drag and drop, session
|
||||
management, and ToolTalk messaging.</para>
|
||||
<para>If you are comfortable with shell programming, you may prefer to use
|
||||
Desktop KornShell for modest programming tasks because it is:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>Well suited to system-administration-type
|
||||
applications because the shell commands intermix easily with GUI control.
|
||||
</para>
|
||||
</listitem><listitem><para>Good for putting a GUI control program on top of
|
||||
character-based applications because the shell environment handles character-based
|
||||
interaction in a natural way.</para>
|
||||
</listitem><listitem><para>A good way to deliver instruction-set-independent
|
||||
programs to a heterogeneous collection of hosts. For example, use the Common
|
||||
Desktop Environment<indexterm><primary>Mailer</primary></indexterm> Mailer
|
||||
to attach a script to a message that the recipient simply double-clicks to
|
||||
invoke.<indexterm><primary>graphical user interface engine</primary><secondary>Desktop KornShell</secondary></indexterm><indexterm><primary>Desktop KornShell
|
||||
(dtksh) <$endrange></primary>
|
||||
</indexterm></para>
|
||||
</listitem></itemizedlist>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.archo.div.15">
|
||||
<title>GUI Construction</title>
|
||||
<para>The<indexterm><primary>graphical user interface engine</primary><secondary>Application Builder</secondary></indexterm><indexterm><primary>Application
|
||||
Builder <$startrange></primary>
|
||||
</indexterm> easiest way to produce a Common Desktop Environment application,
|
||||
and perhaps the fastest, is to do almost no Motif toolkit programming at
|
||||
all. Use the Common Desktop Environment Application Builder, also known as
|
||||
App Builder, to construct the GUI control portion of your application. App
|
||||
Builder focuses on making default widget behavior easy to access. It does
|
||||
this by hiding many of the more esoteric resources that are available on
|
||||
most widgets. App Builder also makes it as easy to incorporate desktop integration
|
||||
infrastructure into your application, including drag and drop, session management,
|
||||
and ToolTalk messaging.</para>
|
||||
<para>App Builder maintains the user interface state in<indexterm><primary>Builder Interface Language (BIL)</primary></indexterm> Builder Interface Language
|
||||
(BIL) files. A code generator takes the BIL files and produces Motif toolkit
|
||||
code. App Builder can also generate<indexterm><primary>User Interface Language
|
||||
(UIL)</primary></indexterm> User Interface Language (UIL) files.</para>
|
||||
<para>As you make changes to your application's user interface, App Builder
|
||||
merges your custom code with the code it generates. Generated code is a good
|
||||
source of example code, even if you do not using App Builder to maintain
|
||||
your application's GUI state.</para>
|
||||
<para>In addition, nonprogrammers can use App Builder to produce an application
|
||||
GUI prototype. The prototype can roll forward to programmers for the production
|
||||
phase of development.<indexterm><primary>graphical user interface engine</primary><secondary>Application Builder</secondary></indexterm><indexterm>
|
||||
<primary>Application Builder <$endrange></primary></indexterm></para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.archo.div.16">
|
||||
<title id="RDMAP.archo.mkr.8">Integration Technologies</title>
|
||||
<para>Common Desktop Environment technologies discussed thus far have been
|
||||
directly involved with putting a GUI onto the screen. The integration technologies
|
||||
described in this section are underlying infrastructure, not GUI providers.
|
||||
</para>
|
||||
<sect2 id="RDMAP.archo.div.17">
|
||||
<title>Process Execution<indexterm><primary>integration technologies</primary>
|
||||
<secondary>process execution</secondary></indexterm><indexterm><primary>process
|
||||
execution</primary></indexterm></title>
|
||||
<para>To provide a network-leveraging environment, the Common Desktop Environment
|
||||
provides the<indexterm><primary>Sub Process Control (SPC)</primary></indexterm> Sub
|
||||
Process Control (SPC) mechanism to start, manage, and collect results from
|
||||
applications running on a remote host. A remote host installs an SPC daemon
|
||||
that serves as the remote end of a socket- based control mechanism. This control
|
||||
mechanism tries to maintain the illusion that the remote process is a local <symbol role="Variable">child</symbol> to the <symbol role="Variable">parent</symbol>
|
||||
process. Authentication of the user that owns the parent process is based
|
||||
upon the ability of the parent process to write a <command>setuid</command>
|
||||
file to the user's home directory <emphasis>and</emphasis> the ability of
|
||||
the child process to read the result.</para>
|
||||
<para>The SPC API and associated control programs are private to the Common
|
||||
Desktop Environment. Actions represent the public API for running applications
|
||||
remotely.</para>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.archo.div.18">
|
||||
<title>Application Messaging<indexterm><primary>integration technologies</primary>
|
||||
<secondary>application messaging</secondary></indexterm><indexterm><primary>ToolTalk Messaging Service <$startrange></primary></indexterm></title>
|
||||
<para>The ToolTalk Messaging Service is the application messaging mechanism
|
||||
for the Common Desktop Environment. Application messaging addresses inter-
|
||||
application control and cooperation for applications working on behalf of
|
||||
a single user. The ToolTalk session daemon is a local message-routing process
|
||||
whose control scope typically corresponds to that of the X server. This means
|
||||
that clients within a session issue requests, the ToolTalk session manager
|
||||
finds or starts some client within a session that is able to handle the request,
|
||||
and the ToolTalk session daemon tracks the request until completion.</para>
|
||||
<para>The desktop provides two standard ToolTalk protocols known as <emphasis>messages sets</emphasis>. A message set contains a number of messages that
|
||||
can be exchanged between a sender and a handler process. These messages are
|
||||
grouped together because they describe related requests and notices. The
|
||||
sender and recipient may be within the same process or on different hosts.
|
||||
Message sets have associated utility functions that allow you to concentrate
|
||||
on the semantics of the protocol without getting involved in the low-level
|
||||
messaging details. Some of the message set functions enable you to defer
|
||||
to default behavior with almost no work on your part.</para>
|
||||
<sect3 id="RDMAP.archo.div.19">
|
||||
<title>Desktop Message Set</title>
|
||||
<para>The Desktop Message Set encompasses three areas. The first is windowing
|
||||
behavior. The second involves file access and short term file life cycle
|
||||
control. The third is specific to applications that have extension languages
|
||||
and is not generic enough to warrant library support.</para>
|
||||
</sect3>
|
||||
<sect3 id="RDMAP.archo.div.20">
|
||||
<title>Media Message Set</title>
|
||||
<para>The Media Message Set allows an application to be a container for arbitrary
|
||||
media, or to be a media player/editor that can be driven from such a container.
|
||||
The Media message interface allows a container application (such as<indexterm>
|
||||
<primary>Mailer</primary></indexterm> Mailer or<indexterm><primary>File Manager</primary></indexterm> File Manager) to compose, display, edit, or print a
|
||||
file or buffer of an arbitrary media type, without understanding anything
|
||||
about the format of that media type. ToolTalk 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.<indexterm>
|
||||
<primary>integration technologies</primary><secondary>application messaging</secondary></indexterm><indexterm><primary>ToolTalk Messaging Service <$endrange></primary></indexterm></para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.archo.div.21">
|
||||
<title>Data Typing<indexterm><primary>data typing <$startrange></primary></indexterm></title>
|
||||
<para>The Common Desktop Environment provides a uniform user interface to
|
||||
the objects contained on the desktop. To do this, the desktop has a mechanism,
|
||||
called data typing, to determine an object's type using a set of criteria.
|
||||
The criteria includes properties potentially shared by file-based and buffer-based
|
||||
objects such as name pattern and content pattern. Other criteria are exclusive
|
||||
to files, and include path-name pattern and file permissions. Associated
|
||||
with every desktop type is an extensible set of attributes, including icon
|
||||
name, name template pattern, list of actions suitable for presentation to
|
||||
a user, equivalent type names for other type spaces (for example, MIME type),
|
||||
and a textual description of this type. The <emphasis>actions and data-types
|
||||
database</emphasis> stores data criteria and data attributes.</para>
|
||||
<para>The Common Desktop Environment defines, and platform vendors supply,
|
||||
a set of desktop type definitions. Your application should augment the database
|
||||
with both proprietary and public data types at application installation time.
|
||||
</para>
|
||||
<para>Information is extracted from the actions and data-types through a Common
|
||||
Desktop Environment library API. The data typing API matches an object's
|
||||
properties with the database type criteria to determine the object's desktop
|
||||
type. The matching algorithm uses a set of precedence rules to resolve conflicts.
|
||||
</para>
|
||||
<para>The Common Desktop Environment type space is defined by the X/Open
|
||||
Common Desktop Environment standard and exists primarily to support desktop-oriented
|
||||
activities such as icon display and action association. The MIME type space
|
||||
is defined by the Internet Engineering Task Force and exists to deal with
|
||||
exchange of mail message parts. A ToolTalk media type space exists in order
|
||||
to match data with handlers, and is a subset of X selection target types
|
||||
defined by the X Consortium. Thus, to do a complete job of type definition,
|
||||
you have to define a Common Desktop Environment type, X selection target,
|
||||
and MIME type. For private Common Desktop Environment types, append the type
|
||||
name to an organization's name. This partitions the name space without need
|
||||
for centralized allocation of types. The Common Desktop Environment claims
|
||||
the <emphasis>Dt</emphasis> prefix, for <emphasis>Desktop</emphasis>.<indexterm>
|
||||
<primary>data typing <$endrange></primary></indexterm></para>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.archo.div.22">
|
||||
<title id="RDMAP.archo.mkr.9">Method Invocation<indexterm><primary>actions <$startrange></primary></indexterm></title>
|
||||
<para>A Common Desktop Environment type can be thought of as the class of
|
||||
a desktop object. Using this analogy, actions can be thought of as the<indexterm>
|
||||
<primary>methods, and actions</primary></indexterm> methods available on instances
|
||||
of a class. Thus, the actions attribute in a type attribute list describes
|
||||
operations that are available for the type. A single action in the actions
|
||||
and data-types database has multiple parts, many of which are optional. These
|
||||
parts include:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>A description of how to invoke
|
||||
the operation: for example, through ToolTalk, through an execution string
|
||||
passed to the SPC mechanism, from within a terminal emulator, and so on.
|
||||
</para>
|
||||
</listitem><listitem><para>A description of the type of arguments associated
|
||||
with the action. The type of the desktop objects (files and buffers) that
|
||||
it accepts is defined by the actions and data-types database. Actions are
|
||||
polymorphic with respect to data types. For example, the Open action invokes
|
||||
a text editor for arguments that are text files and a graphics editor for
|
||||
arguments that are graphics files.</para>
|
||||
</listitem><listitem><para>A description of the number of arguments, if any,
|
||||
associated with the action.</para>
|
||||
</listitem><listitem><para>An optional indication as to where to carry out
|
||||
the operation: the local machine, a particular remote machine, the machine
|
||||
on which the executable resides, and so on. In addition, these execution
|
||||
locations can be included in a list so that if a host is not available then
|
||||
the next host on the list is tried. This provides a measure of redundancy
|
||||
that can be used to increase the likelihood of application launch, even in
|
||||
the face of remote host unavailability. Thus, actions provide network distribution
|
||||
guidance, implemented either through built-in ToolTalk facilities or through
|
||||
the SPC mechanism directly.</para>
|
||||
</listitem><listitem><para>An optional label, help string, and icon that the
|
||||
user sees when interacting with the action's GUI. These are hints to an application
|
||||
about how to represent the action to the user. These hints may be ignored,
|
||||
as the Front Panel does by ignoring the icon if the Front Panel configuration
|
||||
file supplies an alternative icon.</para>
|
||||
</listitem></itemizedlist>
|
||||
<para>The collection of actions available to the user is assembled at the
|
||||
same time as the system is collecting type database information. In fact,
|
||||
related action and type information usually reside together in the same file.
|
||||
Desktop-defined, system-administrator-defined (host-specific), and user-defined
|
||||
files are assembled in order into a single (actions and data-types) database,
|
||||
with later definitions taking precedence. This ordering of search path precedence
|
||||
and traversal is used elsewhere by the desktop for such things as help volume
|
||||
and icon file searches.</para>
|
||||
<para>The actions and data-types<indexterm><primary>database</primary></indexterm> database
|
||||
and the File Manager use action files to instantiate actions as file system
|
||||
objects that can be viewed, invoked, moved, copied, and so on. The database
|
||||
contains references to an action's implementation (for example “run <filename>/usr/bin/app</filename> on machine <filename>net_app_svr</filename>”).
|
||||
However, a representation is needed of an action as an object that the user
|
||||
can directly manipulate. This is achieved by using an object's name, which
|
||||
identifies it as an action to any object manager that is looking for actions.
|
||||
Thus, if there is an executable file named <command>Dtstyle</command> and
|
||||
an action named Dtstyle, the File Manager will interpret that file, regardless
|
||||
of its content, as the Dtstyle action reference. In addition, the File Manager
|
||||
uses the action's label as the name that the user sees for this file. Action
|
||||
labels are localizable, whereas action names are programmatic entities that
|
||||
should not be localized.</para>
|
||||
<para>The good feature about using files simply as pointers into the actions
|
||||
and data- types database is that the underlying implementation can evolve
|
||||
without the user having to do anything. However, one user's actions and data-types
|
||||
database may not match another user's actions and data-types database. Thus,
|
||||
a user cannot exchange an action reference, for example as a mail message
|
||||
attachment, and expect another person to have a comparable definition for
|
||||
that action. Exchanging a Desktop KornShell script is the best solution to
|
||||
this problem.</para>
|
||||
<para>Actions are useful because they integrate both legacy command-line
|
||||
applications and ToolTalk applications into the desktop as polymorphic, distributed
|
||||
operations on desktop objects.<literal><indexterm><primary>actions <$endrange></primary>
|
||||
</indexterm></literal></para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.archo.div.23">
|
||||
<title id="RDMAP.archo.mkr.10">Information Technologies</title>
|
||||
<para>CDE information technologies comprise
|
||||
</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>The Help system, which provides help on the CDE user interface, and potentially,
|
||||
the help you provide for your CDE applications.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>The Information Manager, an on-line documentation access facility
|
||||
that provides access to CDE documentation, and potentially, your application-specific documentation.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<sect2 id="RDMAP.archo.div.24">
|
||||
<title id="RDMAP.archo.mkr.11">Help System</title>
|
||||
<indexterm><primary>help</primary><secondary>general information</secondary></indexterm>
|
||||
<para>The Help system provides a complete set of authoring and programming
|
||||
tools to develop on-line help for CDE applications:
|
||||
</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>It enables authors to include formatted text, graphics, hyperlinks, and communication
|
||||
with the application.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>It provides programmers with a toolkit for integrating on-line
|
||||
help into an application. The toolkit includes specialized Help dialogs and supporting
|
||||
routines that enable users to display, navigate, search, and print on-line help.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.archo.div.25">
|
||||
<title id="RDMAP.archo.mkr.12">Information Manager</title>
|
||||
<indexterm><primary>information manager</primary><secondary>general information</secondary></indexterm>
|
||||
<para>The Information Manager provides on-line access to documentation organized into hierarchies
|
||||
of information libraries, bookcases, books, book sections, and smaller divisions of documentation.
|
||||
All CDE documentation is shipped with the Information Manager.
|
||||
</para>
|
||||
<para>To integrate application-specific documentation with the Information Manager,
|
||||
a CDE application calls a small API (<Symbol>DtInfo</Symbol>).
|
||||
Alternatively, programmers may
|
||||
develop their own browsers using the DtInfo Database Engine API (<Symbol>DtMmdb</Symbol>).
|
||||
</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
||||
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 04:30:53-->
|
||||
428
cde/doc/en_US.UTF-8/guides/progOview/ch02.sgm
Normal file
428
cde/doc/en_US.UTF-8/guides/progOview/ch02.sgm
Normal file
@@ -0,0 +1,428 @@
|
||||
<!-- $XConsortium: ch02.sgm /main/10 1996/09/08 19:46:32 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.consi.div.1">
|
||||
<title id="RDMAP.consi.mkr.1">Development Environment Considerations</title>
|
||||
<para>This chapter discusses general information you should know before starting
|
||||
to use the Common Desktop Environment application program interfaces (APIs).
|
||||
</para>
|
||||
<para>Before you integrate your application into the desktop, you should have
|
||||
a basic understanding of how the desktop works. Install the Common Desktop
|
||||
Environment on your platform and familiarize yourself with its features.
|
||||
For an introduction to the desktop, see the <emphasis>User's Guide</emphasis>
|
||||
or the <emphasis>Desktop Introduction</emphasis> online help volume.</para>
|
||||
<informaltable id="RDMAP.consi.itbl.1" frame="All">
|
||||
<tgroup cols="1">
|
||||
<colspec colname="1" colwidth="4.0 in">
|
||||
<tbody>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Common Desktop Environment Characteristics24'--><xref
|
||||
role="JumpText" linkend="RDMAP.consi.mkr.2"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Underlying Foundations25'--><xref
|
||||
role="JumpText" linkend="RDMAP.consi.mkr.3"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Running Existing Applications26'--><xref
|
||||
role="JumpText" linkend="RDMAP.consi.mkr.4"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Libraries and Header Files27'--><xref
|
||||
role="JumpText" linkend="RDMAP.consi.mkr.5"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Demo Programs27'--><xref role="JumpText"
|
||||
linkend="RDMAP.consi.mkr.6"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Man Pages27'--><xref role="JumpText"
|
||||
linkend="RDMAP.consi.mkr.7"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Development Environment Directory
|
||||
Structure28'--><xref role="JumpText" linkend="RDMAP.consi.mkr.8"></para></entry>
|
||||
</row></tbody></tgroup></informaltable>
|
||||
<sect1 id="RDMAP.consi.div.2">
|
||||
<title id="RDMAP.consi.mkr.2">Common Desktop Environment Characteristics</title>
|
||||
<para>The Common Desktop Environment provides a productive and comfortable
|
||||
desktop environment for UNIX users. As you develop your application, keep
|
||||
in mind the experience that the Common Desktop Environment delivers to its
|
||||
users. Develop your application with the following<indexterm><primary>guidelines</primary><secondary>application development</secondary></indexterm><indexterm>
|
||||
<primary>goals for desktop look and feel</primary></indexterm><indexterm>
|
||||
<primary>application development</primary><secondary>guidelines <$startrange></secondary></indexterm> characteristics
|
||||
in mind, to help make it a powerful, consistent, and predictable part of
|
||||
the Common Desktop Environment:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>Hide the complexities of UNIX.<indexterm>
|
||||
<primary>UNIX</primary></indexterm></para>
|
||||
<para>Because the Common Desktop Environment targets end users as its primary
|
||||
customers, providing an application that hides UNIX as much as possible is
|
||||
a key ingredient to a successful product.</para>
|
||||
</listitem><listitem><para>Provide a common look and feel.<indexterm><primary>look and feel</primary></indexterm></para>
|
||||
<para>Successful applications in the Common Desktop Environment share look-
|
||||
and-feel characteristics with other applications on the desktop. Follow the
|
||||
style and other guidelines (such as the Common Desktop Environment standard
|
||||
font names) so that your application encompasses the Common Desktop Environment
|
||||
Motif look and feel.</para>
|
||||
</listitem><listitem><para>Make applications easy to use.<indexterm><primary>ease of use</primary></indexterm></para>
|
||||
<para>Provide an easily readable default font size, and provide keyboard
|
||||
accelerators for mouse-oriented actions. Use the desktop online help component
|
||||
to integrate a complete Help system into your application. Basic computer
|
||||
interaction styles should be consistent across platforms wherever possible.
|
||||
</para>
|
||||
</listitem><listitem><para>Take advantage of desktop integration services.<indexterm>
|
||||
<primary>desktop</primary><secondary>integration services</secondary></indexterm><indexterm>
|
||||
<primary>integration</primary><secondary>services, desktop</secondary></indexterm><indexterm>
|
||||
<primary>services, desktop integration</primary></indexterm></para>
|
||||
<para>The Common Desktop Environment provides a set of desktop integration
|
||||
services that enable applications to be well-integrated into the desktop.
|
||||
Users benefit because they do not have to know whether an application is
|
||||
running on a local machine or somewhere on the network, or which toolkit
|
||||
(if any) was used to write the application they are running. Provide mechanisms
|
||||
in your application that enable it to be launched from the desktop and to
|
||||
communicate with other Common Desktop Environment applications. Use the online
|
||||
Help system to provide users with quick information. Use drag and drop to
|
||||
provide users with a more predictable way to use their systems.</para>
|
||||
</listitem><listitem><para>Design for individual and cultural differences.
|
||||
</para>
|
||||
<para>By following the Common Desktop Environment conventions and policies,
|
||||
your application will naturally provide for smooth, consistent, and appropriate
|
||||
customization of:<indexterm><primary>customization</primary><secondary>of
|
||||
desktop</secondary></indexterm><indexterm><primary>desktop</primary><secondary>customization</secondary></indexterm></para>
|
||||
<itemizedlist remap="Bullet2"><listitem><para>Fonts</para>
|
||||
</listitem><listitem><para>Color</para>
|
||||
</listitem><listitem><para>Keyboard and mouse bindings</para>
|
||||
</listitem><listitem><para>Locale-specific configuration files</para>
|
||||
<para>For more about locale-specific configuration files, see the localization
|
||||
section of the <emphasis>Advanced User's and System Administration Guide</emphasis> .<indexterm><primary>guidelines</primary><secondary>for application
|
||||
development</secondary></indexterm><indexterm><primary>goals for desktop
|
||||
look and feel</primary></indexterm><indexterm><primary>application development</primary><secondary>guidelines <$endrange></secondary></indexterm></para>
|
||||
</listitem></itemizedlist>
|
||||
</listitem></itemizedlist>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.consi.div.3">
|
||||
<title id="RDMAP.consi.mkr.3">Underlying Foundations</title>
|
||||
<para>To compile an application that uses the desktop APIs, you need:<indexterm>
|
||||
<primary>compiling</primary><secondary>an application</secondary></indexterm><indexterm>
|
||||
<primary>software requirements, for application development</primary></indexterm><indexterm>
|
||||
<primary>requirements (software), for application development</primary></indexterm><indexterm>
|
||||
<primary>application development</primary><secondary>required software</secondary>
|
||||
</indexterm></para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>Common Desktop Environment header
|
||||
files and libraries</para>
|
||||
</listitem><listitem><para>X11R6.2 or later header files and libraries<indexterm>
|
||||
<primary>X11R6.2</primary></indexterm></para>
|
||||
</listitem><listitem><para>ANSI C compiler; or C++ compiler, version 2.0 or
|
||||
later, if you are developing a C++ application<indexterm><primary>compilers,
|
||||
used for application development</primary></indexterm><indexterm><primary>ANSI C</primary></indexterm><indexterm><primary>C++</primary></indexterm></para>
|
||||
</listitem></itemizedlist>
|
||||
<para>The resulting binary file must be run in an environment in which matching
|
||||
libraries are installed. The run-time libraries are in <filename>/usr/dt/lib</filename>, and they include the directories listed in <!--Original XRef
|
||||
content: 'Table 2‐2 on page 28'--><xref role="CodeOrFigOrTabAndPNum"
|
||||
linkend="RDMAP.consi.mkr.9">.</para>
|
||||
<para>To run properly, Common Desktop Environment-based applications require
|
||||
an environment in which some files from the following run-time directories
|
||||
are installed:<indexterm><primary>run-time</primary><secondary>directories,
|
||||
and running applications</secondary></indexterm></para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para><filename>/etc/dt/*</filename></para>
|
||||
</listitem><listitem><para><filename>/var/dt/*</filename></para>
|
||||
</listitem><listitem><para>The following subdirectories of <filename>/usr/dt</filename>:</para>
|
||||
<itemizedlist remap="Bullet2"><listitem><para><filename>app-defaults</filename></para>
|
||||
</listitem><listitem><para><command>appconfig</command></para>
|
||||
</listitem><listitem><para><command>bin</command></para>
|
||||
</listitem><listitem><para><command>dthelp</command></para>
|
||||
</listitem><listitem><para><command>lib</command></para>
|
||||
</listitem></itemizedlist>
|
||||
</listitem></itemizedlist>
|
||||
<para>Your application should depend on only those run-time files <emphasis>explicitly</emphasis> mentioned in the X/Open XCDE standard. It should <symbol role="Variable">not</symbol> depend on files not mentioned in the standard;
|
||||
for example, <filename>/usr/dt/appconfig/icons</filename>. If you build such
|
||||
dependencies into your application, it should be robust enough to run in
|
||||
an environment in which such files are missing or have changed.</para>
|
||||
<para>For a listing of the minimum run-time environment required to run a
|
||||
Common Desktop Environment application, see the <filename>dtfilsys(5)</filename>
|
||||
man page.</para>
|
||||
<para>The run-time environment includes Common Desktop Environment Motif,
|
||||
which is Motif 1.2.3 with bug fixes and enhancements.
|
||||
For more information on the Common Desktop Environment run-time environment,
|
||||
see the run-time documentation set.<indexterm><primary>run-time</primary>
|
||||
<secondary>environment</secondary></indexterm></para>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.consi.div.4">
|
||||
<title id="RDMAP.consi.mkr.4">Running Existing Applications<indexterm><primary>applications, running existing</primary></indexterm><indexterm><primary>existing applications, and Common Desktop Environment</primary></indexterm></title>
|
||||
<para>Existing<indexterm><primary>X-based applications</primary></indexterm> X
|
||||
Window System-based applications that are not compiled with any Common Desktop
|
||||
Environment libraries run under the desktop window manager (<command>dtwm</command>) similarly to the way they run under the Motif window manager:
|
||||
they still work. The level of interoperability with the Common Desktop Environment
|
||||
follows these guidelines.</para>
|
||||
<table id="rdmap.consi.tbl.1" frame="topbot">
|
||||
<title>Interoperability of Existing X-Based Applications with the Common
|
||||
Desktop Environment</title>
|
||||
<tgroup cols="2" colsep="0" rowsep="0">
|
||||
<colspec align="left" colwidth="3.35in">
|
||||
<colspec align="left" colwidth="2.92in">
|
||||
<thead>
|
||||
<row><entry align="left" valign="bottom"><para><literal>Characteristics of
|
||||
Existing X-based Applications</literal></para></entry><entry align="left"
|
||||
valign="bottom"><para><literal>Interoperability Status with Desktop</literal></para></entry>
|
||||
</row></thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Motif 1.2 (and later) drag and drop
|
||||
(using preregister protocol)</para></entry>
|
||||
<entry align="left" valign="top"><para>Yes</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Motif 1.2 (and later) drag and drop
|
||||
(using dynamic protocol)</para></entry>
|
||||
<entry align="left" valign="top"><para>No<footnoteref linkend="rdmap.consi.fn.10"></footnoteref> <footnote
|
||||
id="rdmap.consi.fn.10"><para>This is a Motif 1.2 drag-and-drop dynamic protocol
|
||||
interoperability problem, and it is <symbol role="Variable">not</symbol> due
|
||||
to the Common Desktop Environment.</para>
|
||||
</footnote></para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Cut and paste (all applications)</para></entry>
|
||||
<entry align="left" valign="top"><para>Yes</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>OPEN LOOK drag and drop</para></entry>
|
||||
<entry align="left" valign="top"><para>Yes (except multiple-item drag and
|
||||
drop)<footnoteref linkend="rdmap.consi.fn.11"></footnoteref> <footnote id="rdmap.consi.fn.11">
|
||||
<para>This is implemented through a protocol translation mechanism in the
|
||||
drop site database manager (<command>dsdm</command>).</para>
|
||||
</footnote></para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>ToolTalk Media Exchange and Desktop
|
||||
protocols</para></entry>
|
||||
<entry align="left" valign="top"><para>Yes</para></entry></row></tbody></tgroup>
|
||||
</table>
|
||||
<para>If you want to recompile and relink an existing Motif application with
|
||||
the Common Desktop Environment Motif shared libraries, the application must
|
||||
be compatible with Motif 1.2.<indexterm><primary>Motif 1.2</primary></indexterm></para>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.consi.div.5">
|
||||
<title id="RDMAP.consi.mkr.5">Libraries and Header Files<indexterm><primary>libraries, development environment</primary></indexterm><indexterm><primary>header files, development environment</primary></indexterm></title>
|
||||
<para>Compile Common Desktop Environment applications against X11R6.2 header
|
||||
files and libraries, which reside in vendor-specific locations. <!--Original
|
||||
XRef content: 'Table 2‐2 on
|
||||
page 28'--><xref role="CodeOrFigOrTabAndPNum" linkend="RDMAP.consi.mkr.9">
|
||||
lists the locations of all development environment libraries and header files,
|
||||
as subdirectories of <filename>/usr/dt</filename>.</para>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.consi.div.6">
|
||||
<title id="RDMAP.consi.mkr.6">Demo Programs<indexterm><primary>demo programs</primary></indexterm><indexterm><primary>sample programs</primary></indexterm><indexterm>
|
||||
<primary>example programs</primary></indexterm><indexterm><primary>programs,
|
||||
demo</primary></indexterm></title>
|
||||
<para>The <filename>/usr/dt/examples</filename> subdirectories contain source
|
||||
code for development environment component demos, as well as a <emphasis>template</emphasis> application. See <!--Original XRef content: 'Table 2‐2
|
||||
|
||||
on page 28'--><xref role="CodeOrFigOrTabAndPNum" linkend="RDMAP.consi.mkr.9">
|
||||
for a listing of all demo subdirectories.</para>
|
||||
<para>Each demo subdirectory contains source files for one or more demo programs,
|
||||
along with makefiles for the programs. It also contains a <command>README</command> file that describes the demos.</para>
|
||||
<para>The demo whose source is in the <command>template</command> subdirectory
|
||||
is a simple drawing program. This demo illustrates the basic structure of
|
||||
a Common Desktop Environment application that is integrated with the desktop.
|
||||
It is internationalized and contains all localized components in a separate
|
||||
subdirectory. You can use the drawing program source as a template for your
|
||||
application.</para>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.consi.div.7">
|
||||
<title id="RDMAP.consi.mkr.7">Man Pages</title>
|
||||
<para>The Common Desktop Environment man pages reside in <filename>/usr/dt/man</filename>. To view them using either the <filename>man()</filename> command
|
||||
or the desktop man page viewer, you must add <filename>/usr/dt/man</filename>
|
||||
to the <command>MANPATH</command> environment variable. For example, in your <filename>~/.dtprofile</filename> file, set:</para>
|
||||
<programlisting>MANPATH = $MANPATH:/usr/dt/man</programlisting>
|
||||
<para>For a listing of the <filename>/usr/dt/man</filename> subdirectories
|
||||
and contents, see <!--Original XRef content: 'Table 2‐2'--><xref
|
||||
role="CodeOrFigureOrTable" linkend="RDMAP.consi.mkr.9">. For more information
|
||||
on the <filename>man()</filename> command, see the <filename>man</filename>(1)
|
||||
man page.</para>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.consi.div.8">
|
||||
<title id="RDMAP.consi.mkr.8">Development Environment Directory Structure<indexterm>
|
||||
<primary>directory structure <$startrange></primary></indexterm></title>
|
||||
<para><!--Original XRef content: 'Table 2‐2'--><xref role="CodeOrFigureOrTable"
|
||||
linkend="RDMAP.consi.mkr.9"> lists the top-level directories in the development
|
||||
environment directory structure and lists their subdirectories. (All of the
|
||||
top-level directory names are prefixed by <filename>/usr/dt</filename>.)
|
||||
</para>
|
||||
<table id="rdmap.consi.tbl.2" frame="topbot">
|
||||
<title id="rdmap.consi.mkr.9">Development Environment Directories in /usr/dt</title>
|
||||
<tgroup cols="3" colsep="0" rowsep="0">
|
||||
<colspec colwidth="1.22in">
|
||||
<colspec colwidth="1.71in">
|
||||
<colspec colwidth="4.13in">
|
||||
<thead>
|
||||
<row><entry align="left" valign="bottom"><para><literal>Directory</literal></para></entry>
|
||||
<entry align="left" valign="bottom"><para><literal>Subdirectory</literal></para></entry>
|
||||
<entry align="left" valign="bottom"><para><literal>Contents</literal></para></entry>
|
||||
</row></thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para><command>examples</command></para></entry>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>Subdirectories that contain source
|
||||
code for development environment component demo programs</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>README file</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>dtaction</para></entry>
|
||||
<entry align="left" valign="top"><para>Action invocation API demos</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>dtbuilder</para></entry>
|
||||
<entry align="left" valign="top"><para>Application Builder examples</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>dtcalendar</para></entry>
|
||||
<entry align="left" valign="top"><para>Calendar API demos</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>dtdnd</para></entry>
|
||||
<entry align="left" valign="top"><para>Drag-and-drop API demos</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>dtdts</para></entry>
|
||||
<entry align="left" valign="top"><para>Data-typing API demos</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>dthelp</para></entry>
|
||||
<entry align="left" valign="top"><para>Help API demos</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>dtksh</para></entry>
|
||||
<entry align="left" valign="top"><para><command>dtksh</command> example scripts
|
||||
</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>dtsession</para></entry>
|
||||
<entry align="left" valign="top"><para>Session Manager API demos</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>dtterm</para></entry>
|
||||
<entry align="left" valign="top"><para>Terminal Emulator widget API demos
|
||||
</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>dtwidget</para></entry>
|
||||
<entry align="left" valign="top"><para>Common Desktop Environment Motif widgets
|
||||
demos</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>dtwsm</para></entry>
|
||||
<entry align="left" valign="top"><para>Workspace Manager API demos</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>template</para></entry>
|
||||
<entry align="left" valign="top"><para>Template Common Desktop Environment
|
||||
application</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>motif</para></entry>
|
||||
<entry align="left" valign="top"><para>Motif 1.2 API demos</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>motif/clipboard</para></entry>
|
||||
<entry align="left" valign="top"><para><command>XmClipboard</command> API
|
||||
demo</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>motif/dogs</para></entry>
|
||||
<entry align="left" valign="top"><para>Widget binary compatibility mechanism
|
||||
demo</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>motif/draganddrop</para></entry>
|
||||
<entry align="left" valign="top"><para>Motif 1.2 drag-and-drop API demo</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>motif/periodic</para></entry>
|
||||
<entry align="left" valign="top"><para>Motif widgets demo</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>tt</para></entry>
|
||||
<entry align="left" valign="top"><para>ToolTalk Messaging Service demos</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para><command>include<indexterm><primary>header files</primary></indexterm></command></para></entry>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>Development environment library header
|
||||
files</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>csa</para></entry>
|
||||
<entry align="left" valign="top"><para>Calendar header files</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para><command>Dt</command></para></entry>
|
||||
<entry align="left" valign="top"><para>Header files for <command>DtSvc</command>, <command>DtWidget</command>, <command>DtHelp</command>, and</para><para><command>DtTerm</command></para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para><command>Mrm</command></para></entry>
|
||||
<entry align="left" valign="top"><para>Motif 1.2 resource manager header files
|
||||
</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para><command>Tt</command></para></entry>
|
||||
<entry align="left" valign="top"><para>ToolTalk Messaging Service header files
|
||||
</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para><command>Xm</command></para></entry>
|
||||
<entry align="left" valign="top"><para>Motif 1.2 toolkit header files</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para><command>uil</command></para></entry>
|
||||
<entry align="left" valign="top"><para>Motif 1.2-callable UIL compiler header
|
||||
files</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para><command>lib</command><indexterm><primary>libraries, development environment</primary></indexterm></para></entry>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>Library files for <command>libcsa</command>
|
||||
(Calendar),</para><para><command>libDtHelp</command> (Help system),</para><para><command>libDtSvc</command> (actions, data typing, drag and drop, Session Manager,
|
||||
Workspace Manager),</para><para><command>libDtTerm</command> (Terminal Emulator),
|
||||
</para><para><command>libDtWidget</command> (Common Desktop Environment Motif
|
||||
control and editor widgets),</para><para><command>libMrm</command> (Motif
|
||||
1.2 resource manager),</para><para><command>libUil</command> (Motif 1.2-callable
|
||||
UIL compiler),</para><para><command>libXm</command> (Motif 1.2 toolkit),
|
||||
</para><para><command>libtt</command> (ToolTalk)</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para><command>man<indexterm><primary>man
|
||||
pages</primary></indexterm></command></para></entry>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para>Development environment man pages</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para><filename>man1</filename></para></entry>
|
||||
<entry align="left" valign="top"><para>Client and utility man pages</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para><filename>man3</filename></para></entry>
|
||||
<entry align="left" valign="top"><para>API man pages</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para><filename>man4</filename></para></entry>
|
||||
<entry align="left" valign="top"><para>Data formats</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"></entry>
|
||||
<entry align="left" valign="top"><para><filename>man5</filename></para></entry>
|
||||
<entry align="left" valign="top"><para>Header file and action man pages<literal><indexterm>
|
||||
<primary>directory structure <$endrange></primary></indexterm></literal></para></entry></row></tbody></tgroup><?Pub Caret>
|
||||
</table>
|
||||
</sect1>
|
||||
</chapter>
|
||||
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 04:30:53-->
|
||||
<?Pub *0000026382>
|
||||
289
cde/doc/en_US.UTF-8/guides/progOview/ch03.sgm
Normal file
289
cde/doc/en_US.UTF-8/guides/progOview/ch03.sgm
Normal file
@@ -0,0 +1,289 @@
|
||||
<!-- $XConsortium: ch03.sgm /main/9 1996/09/08 19:46:41 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.devap.div.1">
|
||||
<title id="RDMAP.devap.mkr.1">Developing an Application</title>
|
||||
<para>This chapter presents information specific to developing a Common Desktop
|
||||
Environment application, such as naming conventions and other guidelines.
|
||||
It introduces levels of integration, which are the guidelines for determining
|
||||
the desktop functionality to incorporate into your application to make it
|
||||
increasingly integrated with the desktop. It also provides an overview of
|
||||
the Application Builder, a tool to simplify Common Desktop Environment application
|
||||
development.</para>
|
||||
<informaltable id="RDMAP.devap.itbl.1" frame="All">
|
||||
<tgroup cols="1">
|
||||
<colspec colname="1" colwidth="4.0 in">
|
||||
<tbody>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Levels of Desktop Integration32'--><xref
|
||||
role="JumpText" linkend="RDMAP.devap.mkr.2"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Desktop Naming Conventions32'--><xref
|
||||
role="JumpText" linkend="RDMAP.devap.mkr.3"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Public and Private Interfaces33'--><xref
|
||||
role="JumpText" linkend="RDMAP.devap.mkr.6"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Guidelines for Common Desktop Environment
|
||||
Databases34'--><xref role="JumpText" linkend="RDMAP.devap.mkr.7"></para></entry>
|
||||
</row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Application Initialization and libDtSvc34'--><xref
|
||||
role="JumpText" linkend="RDMAP.devap.mkr.8"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Application Builder34'--><xref role="JumpText"
|
||||
linkend="RDMAP.devap.mkr.9"></para></entry></row></tbody></tgroup></informaltable>
|
||||
<sect1 id="RDMAP.devap.div.2">
|
||||
<title id="RDMAP.devap.mkr.2">Levels of Desktop Integration<indexterm><primary>desktop</primary><secondary>integration, levels of</secondary></indexterm><indexterm>
|
||||
<primary>integration</primary><secondary>levels of</secondary></indexterm><indexterm>
|
||||
<primary>application development</primary><secondary>levels of integration</secondary></indexterm></title>
|
||||
<para>Users can run any<indexterm><primary>X-based applications</primary>
|
||||
</indexterm> X11-based application from a shell command line in the Common
|
||||
Desktop Environment. If you want to integrate your application into the desktop,
|
||||
however, there are guidelines for you to follow. The Common Desktop Environment
|
||||
defines three levels of integration to give you maximum flexibility in designing
|
||||
your application or porting an existing application:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para><emphasis>Basic Integration</emphasis> —Enables your application to be launched from the desktop.
|
||||
You do <emphasis>not</emphasis> need to change your application code to perform
|
||||
basic integration. See <!--Original XRef content: 'Chapter 5, &xd2;Basic
|
||||
Application Integration'--><xref role="ChapNumAndTitle" linkend="RDMAP.BIntg.mkr.1">,
|
||||
for more information.<indexterm><primary>basic integration</primary></indexterm><indexterm>
|
||||
<primary>levels of integration</primary><secondary>basic</secondary></indexterm></para>
|
||||
</listitem><listitem><para><emphasis>Recommended Integration</emphasis>—Enables
|
||||
your application to enhance its level of consistency with the desktop. See
|
||||
<!--Original XRef content: 'Chapter 6, &xd2;Recommended Integration'--><xref
|
||||
role="ChapNumAndTitle" linkend="RDMAP.recin.mkr.1">, for more information.<indexterm>
|
||||
<primary>recommended integration</primary></indexterm><indexterm><primary>levels of integration</primary><secondary>recommended</secondary></indexterm></para>
|
||||
</listitem><listitem><para><emphasis>Optional Integration</emphasis>—Enables
|
||||
you to leverage services provided by the desktop for achieving specialized
|
||||
tasks. See <!--Original XRef content: 'Chapter 7, &xd2;Optional
|
||||
Integration'--><xref role="ChapNumAndTitle" linkend="RDMAP.optin.mkr.1">,
|
||||
for more information.<indexterm><primary>optional integration</primary></indexterm><indexterm>
|
||||
<primary>levels of integration</primary><secondary>optional</secondary>
|
||||
</indexterm></para>
|
||||
</listitem></itemizedlist>
|
||||
<para>For more information on all three levels of integration, see the <emphasis>Programmer's Guide.</emphasis> Basic Integration is also discussed in the <emphasis>Advanced User's and System Administrator's Guide</emphasis>.</para>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.devap.div.3">
|
||||
<title id="RDMAP.devap.mkr.3">Desktop Naming Conventions<indexterm><primary>desktop</primary><secondary>naming conventions</secondary></indexterm><indexterm>
|
||||
<primary>naming conventions</primary><secondary>desktop</secondary></indexterm><indexterm>
|
||||
<primary>conventions, desktop naming</primary></indexterm><indexterm><primary>application development</primary><secondary>desktop naming conventions <$startrange></secondary></indexterm></title>
|
||||
<para>The Common Desktop Environment uses naming conventions similar to those
|
||||
used by X and Motif. Desktop clients, desktop libraries, and other desktop
|
||||
components share a common prefix for externally visible names: <command>dt</command>, <command>Dt</command>, or <command>DT</command>. Private desktop
|
||||
structures, functions, and defines (found in the Common Desktop Environment
|
||||
code; not for developer use) have an <filename>_dt</filename>, <filename>_Dt</filename>, or <filename>_DT</filename> prefix. <!--Original XRef content:
|
||||
'Table 3‐1'--><xref role="CodeOrFigureOrTable" linkend="RDMAP.devap.mkr.4">
|
||||
lists the desktop naming conventions.</para>
|
||||
<table id="RDMAP.devap.tbl.1" frame="Topbot">
|
||||
<title id="RDMAP.devap.mkr.4">Desktop Naming Conventions</title>
|
||||
<tgroup cols="3" colsep="0" rowsep="0">
|
||||
<?PubTbl tgroup dispwid="6.69in">
|
||||
<colspec colwidth="207*">
|
||||
<colspec colwidth="83*">
|
||||
<colspec colwidth="262*">
|
||||
<thead>
|
||||
<row><entry align="left" valign="bottom"><para><literal>Name</literal></para></entry>
|
||||
<entry align="left" valign="bottom"><para><literal>Prefix</literal></para></entry>
|
||||
<entry align="left" valign="bottom"><para><literal>Example</literal></para></entry>
|
||||
</row></thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Desktop clients and utilities</para></entry>
|
||||
<entry align="left" valign="top"><para><command>dt</command></para></entry>
|
||||
<entry align="left" valign="top"><para><command>dthelpview</command></para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Resource names and classes</para></entry>
|
||||
<entry align="left" valign="top"><para><command>Dt</command></para></entry>
|
||||
<entry align="left" valign="top"><para><command>DtNhelpType, DtCHelpType</command></para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Library names</para></entry>
|
||||
<entry align="left" valign="top"><para><command>Dt</command></para></entry>
|
||||
<entry align="left" valign="top"><para><command>libDtHelp</command></para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Include references</para></entry>
|
||||
<entry align="left" valign="top"><para><command>Dt</command></para></entry>
|
||||
<entry align="left" valign="top"><para><command>#include <Dt/Help.h></command>
|
||||
</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Public function names</para></entry>
|
||||
<entry align="left" valign="top"><para><command>Dt</command></para></entry>
|
||||
<entry align="left" valign="top"><para><command>DtCreateHelpDialog</command></para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Public data structure names</para></entry>
|
||||
<entry align="left" valign="top"><para><command>Dt</command></para></entry>
|
||||
<entry align="left" valign="top"><para><command>DtHelpDialogCallbackStruct</command></para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Constant names</para></entry>
|
||||
<entry align="left" valign="top"><para><command>Dt</command></para></entry>
|
||||
<entry align="left" valign="top"><para><filename>DtHELP_NEW_WINDOW</filename></para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Environment variables</para></entry>
|
||||
<entry align="left" valign="top"><para><command>DT</command></para></entry>
|
||||
<entry align="left" valign="top"><para><command>DTHELPSEARCHPATH</command></para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Private desktop symbols (structures,
|
||||
functions, defines)</para></entry>
|
||||
<entry align="left" valign="top"><para><filename>_dt</filename>, <filename>_Dt</filename>, <filename>_DT</filename></para></entry>
|
||||
<entry align="left" valign="top"><para><command>_DtHelpFunction, _DtHELP_DEFINE</command></para></entry></row></tbody></tgroup></table>
|
||||
<para><!--Original XRef content: 'Table 3‐2'--><xref role="CodeOrFigureOrTable"
|
||||
linkend="RDMAP.devap.mkr.5"> lists the exceptions to the preceding naming
|
||||
conventions.</para>
|
||||
<table id="rdmap.devap.tbl.2" frame="topbot">
|
||||
<title id="rdmap.devap.mkr.5">Exceptions to Desktop Naming Conventions</title>
|
||||
<tgroup cols="3" colsep="0" rowsep="0">
|
||||
<?PubTbl tgroup dispwid="6.74in">
|
||||
<colspec colwidth="207*">
|
||||
<colspec colwidth="189*">
|
||||
<colspec colwidth="160*">
|
||||
<thead>
|
||||
<row><entry align="left" valign="bottom"><para><literal>Name</literal></para></entry>
|
||||
<entry align="left" valign="bottom"><para><literal>Prefix</literal></para></entry>
|
||||
<entry align="left" valign="bottom"><para><literal>Example</literal></para></entry>
|
||||
</row></thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>Common Desktop Environment Motif<indexterm>
|
||||
<primary>Motif</primary></indexterm></para></entry>
|
||||
<entry align="left" valign="top"><para><command>Xm</command></para></entry>
|
||||
<entry align="left" valign="top"><para><command>XmCreateLabel</command></para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para><command>dtksh</command> Convenience
|
||||
Functions</para></entry>
|
||||
<entry align="left" valign="top"><para><command>Dtksh</command></para></entry>
|
||||
<entry align="left" valign="top"><para><command>DtkshAddButtons</command></para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para>ToolTalk Messaging Service<indexterm>
|
||||
<primary>ToolTalk Messaging Service</primary></indexterm></para></entry>
|
||||
<entry align="left" valign="top"><para>tt (for functions), Tt (for typedefs),
|
||||
TT (for constants)</para></entry>
|
||||
<entry align="left" valign="top"><para><filename>tt_open</filename>, Tt_message,
|
||||
TT_NOTICE</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para><indexterm><primary>X11R6.2</primary>
|
||||
</indexterm>X11R6.2</para></entry>
|
||||
<entry align="left" valign="top"><para><command>X</command>, <command>Xt</command></para></entry>
|
||||
<entry align="left" valign="top"><para><command>XOpenDisplay, XtCreateWidget</command></para></entry></row></tbody></tgroup></table>
|
||||
<caution>
|
||||
<para>Do <emphasis>not</emphasis> use the prefixes <command>dt</command>, <command>Dt</command>, <command>DT</command>, <filename>_dt</filename>, <filename>_Dt</filename>, <filename>_DT</filename>, <command>Xm</command>, <command>tt</command>, <command>Tt</command>, <command>TT</command>, <command>X</command>,
|
||||
or <command>Xt</command> to define new symbols in your application code.
|
||||
If you do, you might define one that has already been defined—or might
|
||||
be defined in the future—in the Common Desktop Environment, ToolTalk,
|
||||
X11, or Motif code.<indexterm><primary>naming conventions</primary><secondary>caution notice</secondary></indexterm><indexterm><primary>desktop</primary>
|
||||
<secondary>naming conventions</secondary></indexterm><indexterm><primary>naming conventions</primary><secondary>desktop</secondary></indexterm><indexterm>
|
||||
<primary>conventions, desktop naming</primary></indexterm><indexterm><primary>application development</primary><secondary>desktop naming conventions <$endrange></secondary></indexterm></para>
|
||||
</caution>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.devap.div.4">
|
||||
<title id="RDMAP.devap.mkr.6">Public and Private Interfaces<indexterm><primary>public interfaces</primary></indexterm><indexterm><primary>private interfaces</primary></indexterm><indexterm><primary>interfaces</primary><secondary>private</secondary></indexterm><indexterm><primary>interfaces</primary><secondary>public</secondary></indexterm><indexterm><primary>application development</primary><secondary>public and private interfaces</secondary></indexterm></title>
|
||||
<para>If a Common Desktop Environment interface is documented in the man pages
|
||||
or the Common Desktop Environment documentation set, you can assume that
|
||||
the interface is public unless otherwise stated. An interface is not necessarily
|
||||
public just because it has a header file associated with it. Interfaces that
|
||||
are not documented are private to the Common Desktop Environment and are
|
||||
subject to change without notice.</para>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.devap.div.5">
|
||||
<title id="RDMAP.devap.mkr.7">Guidelines for Common Desktop Environment Databases<indexterm>
|
||||
<primary>guidelines</primary><secondary>database syntax</secondary></indexterm><indexterm>
|
||||
<primary>database</primary><secondary>syntax</secondary></indexterm><indexterm>
|
||||
<primary>syntax, for databases</primary></indexterm><indexterm><primary>application development</primary><secondary>databases, guidelines for</secondary>
|
||||
</indexterm></title>
|
||||
<para>You can find the syntax for the desktop databases, such as those used
|
||||
for actions and data types, in man pages located in the <filename>/usr/dt/man/man4</filename> directory.</para>
|
||||
<para>For more information on databases, see the <emphasis>Programmer's Guide</emphasis>.</para>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.devap.div.6">
|
||||
<title id="RDMAP.devap.mkr.8">Application Initialization and libDtSvc<indexterm>
|
||||
<primary>application development</primary><secondary>initialization and libDtSvc</secondary></indexterm><indexterm><primary>desktop</primary><secondary>libDtSvc and application initialization</secondary></indexterm></title>
|
||||
<para>If your application uses any of the <command>libDtSvc</command> APIs
|
||||
(for actions, data typing, drag and drop, Session Manager, or Workspace Manager),
|
||||
it must first initialize the <command>libDtSvc</command> library by calling
|
||||
either <filename>DtInitialize()</filename><indexterm><primary>DtInitialize()</primary></indexterm> or <filename>DtAppInitialize()</filename><indexterm>
|
||||
<primary>DtAppInitialize()</primary></indexterm>. Refer to the <filename>DtInitialize</filename>(3) or <filename>DtAppInitialize</filename>(3) man
|
||||
page for more information.</para>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.devap.div.7">
|
||||
<title id="RDMAP.devap.mkr.9">Application Builder<indexterm><primary>application
|
||||
development</primary><secondary>Application Builder <$startrange></secondary></indexterm></title>
|
||||
<para>Application Builder (App Builder) is a tool that enables you to easily
|
||||
create the graphical user interface (GUI) for Common Desktop Environment
|
||||
applications, without having to write code to call the desktop application
|
||||
program interfaces (APIs). It abstracts the Motif toolkit into simple object
|
||||
palettes and object property sheets. You can use App Builder to construct
|
||||
a wide range of applications, from simple GUI-based programs to complex,
|
||||
integrated systems. It supports User Interface Language (UIL) file import
|
||||
and export to enable you to migrate your application among other Motif-based
|
||||
tools and products.<indexterm><primary>Application Builder</primary><secondary>App Builder</secondary></indexterm><indexterm><primary>App Builder (Application
|
||||
Builder)</primary></indexterm></para>
|
||||
<para>App Builder is ideally suited for use if you:<indexterm><primary>Application
|
||||
Builder</primary><secondary>when to use</secondary></indexterm></para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>Are not an expert Motif programmer
|
||||
</para>
|
||||
</listitem><listitem><para>Are not familiar with the Common Desktop Environment
|
||||
Motif widgets</para>
|
||||
</listitem><listitem><para>Are not familiar with the desktop services (for
|
||||
example,<indexterm><primary>drag and drop</primary></indexterm> drag and
|
||||
drop,<indexterm><primary>ToolTalk Messaging Service</primary></indexterm> ToolTalk
|
||||
messaging,<indexterm><primary>Session Manager</primary></indexterm> sessioning,<indexterm><primary>Help system</primary></indexterm>
|
||||
help, and<indexterm>
|
||||
<primary>internationalization</primary></indexterm> internationalization)</para>
|
||||
</listitem><listitem><para>Want to build your application user interface quickly
|
||||
and be able to change it easily</para>
|
||||
</listitem><listitem><para>Are working collaboratively with other people to
|
||||
build a single application</para>
|
||||
</listitem></itemizedlist>
|
||||
<para>In fact, even if you do not fit into any of the preceding categories,
|
||||
you will likely find App Builder to be appropriate and helpful for your application
|
||||
development.</para>
|
||||
<para>Using App Builder, you can:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>Lay out the user interface for
|
||||
an application, constructing it piece-by-piece from a collection of objects
|
||||
from the Common Desktop Environment<indexterm><primary>Motif</primary></indexterm> Motif
|
||||
toolkit</para>
|
||||
</listitem><listitem><para>Define connections between objects to provide application
|
||||
GUI behavior, then use the test mode that enables connections to be tested
|
||||
</para>
|
||||
</listitem><listitem><para>Add some of the desktop services functionality
|
||||
to your application</para>
|
||||
</listitem><listitem><para>Edit applications that were previously created
|
||||
using App Builder</para>
|
||||
</listitem><listitem><para>Merge automatically generated code with hand-generated
|
||||
code</para>
|
||||
</listitem><listitem><para>Generate C-language source code and associated
|
||||
project files (for example, message catalogs) for the application</para>
|
||||
</listitem></itemizedlist>
|
||||
<para>You can<indexterm><primary>compiling</primary><secondary>an application</secondary></indexterm> compile and invoke your application from within App
|
||||
Builder. You can execute the build, run, and debug cycles all from a common
|
||||
environment without having to exit and restart App Builder.</para>
|
||||
<sect2 id="RDMAP.devap.div.8">
|
||||
<title>Demo Programs<indexterm><primary>Application Builder</primary><secondary>demo programs</secondary></indexterm><indexterm><primary>demo programs</primary>
|
||||
</indexterm></title>
|
||||
<para>You can find the App Builder example programs in <filename>/usr/dt/examples/dtbuilder</filename>. Read the <command>README</command> file for detailed information
|
||||
on these programs.</para>
|
||||
<sect3 id="RDMAP.devap.div.9">
|
||||
<title>Related Documentation</title>
|
||||
<para>For more information on Application Builder, see the appropriate man
|
||||
pages, the App Builder help volume, and the <emphasis>Application Builder
|
||||
User's Guide</emphasis>.<indexterm><primary>application
|
||||
development</primary><secondary>Application Builder <$endrange></secondary></indexterm><?Pub Caret></para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
||||
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 04:30:53-->
|
||||
<?Pub *0000020547>
|
||||
157
cde/doc/en_US.UTF-8/guides/progOview/ch04.sgm
Normal file
157
cde/doc/en_US.UTF-8/guides/progOview/ch04.sgm
Normal file
@@ -0,0 +1,157 @@
|
||||
<!-- $XConsortium: ch04.sgm /main/7 1996/09/08 19:46:50 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.port.div.1">
|
||||
<title id="RDMAP.port.mkr.1">Portability and Maintenance</title>
|
||||
<para>This chapter contains information you can use to write highly portable
|
||||
applications and use to ensure that your application will be compatible with
|
||||
future Common Desktop Environment releases.</para>
|
||||
<informaltable id="RDMAP.port.itbl.1" frame="All">
|
||||
<tgroup cols="1">
|
||||
<colspec colname="1" colwidth="4.0 in">
|
||||
<tbody>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Portability Issues37'--><xref role="JumpText"
|
||||
linkend="RDMAP.port.mkr.2"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Common Desktop Environment Motif
|
||||
Widget Binary Compatibility Guidelines40'--><xref role="JumpText" linkend="RDMAP.port.mkr.4"></para></entry>
|
||||
</row></tbody></tgroup></informaltable>
|
||||
<sect1 id="RDMAP.port.div.2">
|
||||
<title id="RDMAP.port.mkr.2">Portability Issues<indexterm><primary>portability
|
||||
issues <$startrange></primary>
|
||||
</indexterm></title>
|
||||
<para>This section presents issues that might affect your application's portability
|
||||
between different platforms that support the Common Desktop Environment.
|
||||
</para>
|
||||
<sect2 id="RDMAP.port.div.3">
|
||||
<title id="RDMAP.port.mkr.3">Standards<indexterm><primary>standards <$startrange></primary></indexterm></title>
|
||||
<para>To be Common Desktop Environment-compliant, your application must<indexterm>
|
||||
<primary>Motif 2.1</primary></indexterm> follow the Motif 2.1,<indexterm>
|
||||
<primary>ANSI C</primary></indexterm> ANSI-C, and<indexterm><primary>X11R6.2</primary></indexterm> X11R6.2 standards. If you are developing your application
|
||||
in C++, use C++ version 2.0 or later. No further assumptions are made that
|
||||
you adhere to any standards, such as POSIX, when you write a Common Desktop
|
||||
Environment application. Applications that use the desktop application program
|
||||
interfaces (APIs) will be portable to other Common Desktop Environment platforms.
|
||||
However, using POSIX can enhance your software's portability.</para>
|
||||
<para>The<indexterm><primary>POSIX</primary></indexterm> POSIX standard,
|
||||
IEEE Std 1003.1-1990, is entitled <emphasis>IEEE Standard for Information
|
||||
Technology—Portable Operating System Interface (POSIX)—Part 1:
|
||||
System Application Program Interface (API) [C Language],</emphasis> ISBN
|
||||
1-55937-061-0.</para>
|
||||
<para>The Motif 2.1 standard, IEEE Std 1295, is entitled <emphasis>Standard
|
||||
for Information Technology—X Window System Graphical User Interface—Modular
|
||||
Toolkit Environment.</emphasis><indexterm><primary>standards <$endrange></primary></indexterm></para>
|
||||
<para>For information on ordering IEEE Std 1003.1-1990 and IEEE Std 1295,
|
||||
see <!--Original XRef content: '&xd2;Related Books&xd3; on page xv'--><xref
|
||||
role="SecTitleAndPageNum" linkend="RDMAP.pref.mkr.2">.</para>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.port.div.4">
|
||||
<title>Makefiles<indexterm><primary>makefiles <$startrange></primary></indexterm></title>
|
||||
<para>Certain libraries that the Common Desktop Environment depends on, for
|
||||
example X11, are likely to be installed in different locations on different
|
||||
platforms. Include platform-specific references to accommodate this or write
|
||||
a separate makefile for each platform.</para>
|
||||
<para>Also, the <command>make</command> program functionality can differ across
|
||||
platforms. If you want to write just one makefile for your application, use
|
||||
the common <command>make</command> functionality used by the platforms to
|
||||
which you want to port your program. Avoid platform-specific <command>make</command> features.</para>
|
||||
<para>The Common Desktop Environment requires no additional defined constants
|
||||
(<filename>-D</filename> parameters) to integrate with the desktop. If you
|
||||
do follow a standard, such as POSIX, you might need to compile with additional
|
||||
standard-specific flags. Read about the standard to find out if it includes
|
||||
special compiler considerations.</para>
|
||||
<para>Each subdirectory of <filename>/usr/dt/examples</filename> contains
|
||||
sample makefile source files for different platforms. These makefiles take
|
||||
into account system differences. In particular, see the <filename>/usr/dt/examples/dtdts</filename> <command>directory</command> for generic examples of makefiles.
|
||||
</para>
|
||||
<sect3 id="RDMAP.port.div.5">
|
||||
<title>Compile Options</title>
|
||||
<para>To enable your application to find the desktop <command>include</command>
|
||||
files, add:</para>
|
||||
<programlisting>-I/usr/dt/include</programlisting>
|
||||
<para>to each makefile's compile line.</para>
|
||||
</sect3>
|
||||
<sect3 id="RDMAP.port.div.6">
|
||||
<title>Link Options</title>
|
||||
<para>To enable your application to reference desktop libraries, add:</para>
|
||||
<programlisting>-L/usr/dt/lib -l<<symbol role="Variable">libname1</symbol>> -l<<symbol role="Variable">libname2</symbol>>...</programlisting>
|
||||
<para>to each makefile's link line, where <symbol role="Variable">libname1</symbol>, <symbol role="Variable">libname2</symbol> are the names of libraries
|
||||
your application needs to reference.<indexterm><primary>makefiles <$endrange></primary>
|
||||
</indexterm> You can include as many desktop library names in this line as
|
||||
you want. For example:</para>
|
||||
<programlisting>-L/usr/dt/lib -lDtSvc -ltt -lXm</programlisting>
|
||||
<para>enables your application to reference the Desktop Services, ToolTalk
|
||||
Messaging System, and Motif 2.1 libraries.</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.port.div.7">
|
||||
<title>File-Naming Conventions<indexterm><primary>file naming conventions</primary></indexterm><indexterm><primary>naming conventions</primary><secondary>file</secondary></indexterm></title>
|
||||
<para>You should limit your application file names, and the file names your
|
||||
application generates, to 14 characters. This will make your application
|
||||
portable to platforms that have this limitation. Some platforms can be configured
|
||||
to have this constraint.</para>
|
||||
<para>Do not place length limitations on file names that an end user generates.
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.port.div.8">
|
||||
<title>Display Support<indexterm><primary>display support</primary></indexterm></title>
|
||||
<para>Your application should support the following display options and configurations:
|
||||
</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>Monochrome (including black-and-white
|
||||
icons)</para>
|
||||
</listitem><listitem><para>Color (including color icons)</para>
|
||||
</listitem><listitem><para>Small screens, such as<indexterm><primary>VGA</primary></indexterm> VGA (640x480—scale application window or font
|
||||
size to fit completely on the screen)</para>
|
||||
</listitem></itemizedlist>
|
||||
<para>If you use the<indexterm><primary>Icon Editor</primary></indexterm> Icon
|
||||
Editor to create color icons, your application will share colors with other
|
||||
desktop applications more readily. This helps conserve color cells when running
|
||||
on a<indexterm><primary>Pseudo Color display</primary></indexterm> Pseudo
|
||||
Color display.<literal><indexterm><primary>portability issues <$endrange></primary></indexterm></literal></para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.port.div.9">
|
||||
<title id="RDMAP.port.mkr.4">Common Desktop Environment Motif Widget Binary Compatibility Guidelines<indexterm><primary>guidelines</primary><secondary>Common Desktop Environment Motif widget binary compatibility</secondary>
|
||||
</indexterm><indexterm><primary>compatibility</primary><secondary>guidelines,
|
||||
for Common Desktop Environment widgets</secondary></indexterm><indexterm>
|
||||
<primary>widget</primary><secondary>compatibility guidelines <$startrange></secondary></indexterm></title>
|
||||
<para>Any widget subclass that you implement using the standard Xt APIs that
|
||||
rely on the size of data structures of widgets from which you have subclassed
|
||||
might not be compatible with any new version of Motif or the Common Desktop
|
||||
Environment. The reason for this is that new fields may be added to the superclasses
|
||||
in the new version of Motif. An example is that new fields have been added
|
||||
to the <command>XmManager</command> and <command>XmPrimitive</command> classes
|
||||
in Motif 2.0.</para>
|
||||
<para>The incompatibility occurs because a subclass must contain compiled-in
|
||||
references to its instance fields that are specified relative to the start
|
||||
address of the widget instance. When you install a new Motif library for
|
||||
a widget whose superclass instance structure has been extended, the compiled-in
|
||||
references will point to the wrong memory location.</para>
|
||||
<para>To avoid this difficulty, Motif provides a mechanism for defining resources
|
||||
and accessing widget fields that allows you to reference all fields in the
|
||||
instance and constraint structures relative to the start of the widget <command>part</command> structure, instead of the overall widget structure. (The overall
|
||||
widget structure includes the superclass part structure.) The mechanism resolves
|
||||
these relative references at run time, when the widget class is first initialized.
|
||||
To resolve references, it factors in the size of the widget's superclass
|
||||
instance structure, which it reads from the currently linked Motif library.
|
||||
</para>
|
||||
<note>
|
||||
<para>If you implement subclassing, you <emphasis>must</emphasis> use the
|
||||
Motif reference- resolving mechanism if you want your application to be binary
|
||||
compatible with future releases of the Common Desktop Environment.</para>
|
||||
</note>
|
||||
<para>For details regarding this Motif mechanism, consult the Motif 2.1 <filename>XmResolvePartOffsets(3x)</filename> and <filename>XmResolveAllPartOffsets(3x)</filename> man pages and the <emphasis>Motif Programmer's Reference</emphasis>. You can find example source code in Motif's example code<literal><indexterm><primary>guidelines</primary><secondary>Common
|
||||
Desktop Environment Motif widget binary compatibility</secondary></indexterm><indexterm>
|
||||
<primary>compatibility</primary><secondary>guidelines, for Common Desktop
|
||||
Environment widgets</secondary></indexterm><indexterm><primary>widget</primary>
|
||||
<secondary>compatibility guidelines <$endrange></secondary></indexterm></literal>.</para>
|
||||
</sect1>
|
||||
</chapter><?Pub Caret>
|
||||
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 04:30:53-->
|
||||
<?Pub *0000011964>
|
||||
123
cde/doc/en_US.UTF-8/guides/progOview/ch05.sgm
Normal file
123
cde/doc/en_US.UTF-8/guides/progOview/ch05.sgm
Normal file
@@ -0,0 +1,123 @@
|
||||
<!-- $XConsortium: ch05.sgm /main/5 1996/08/25 15:13:45 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.BIntg.div.1">
|
||||
<title id="RDMAP.BIntg.mkr.1">Basic Application Integration</title>
|
||||
<para>Basic application integration is a set of highly recommended tasks you
|
||||
should perform. These tasks <emphasis>do not</emphasis> require modification
|
||||
of the source code for your application.</para>
|
||||
<informaltable id="RDMAP.BIntg.itbl.1" frame="All">
|
||||
<tgroup cols="1">
|
||||
<colspec colname="1" colwidth="4.0 in">
|
||||
<tbody>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Basic Integration Features41'--><xref
|
||||
role="JumpText" linkend="RDMAP.BIntg.mkr.2"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Organization of Basic Integration
|
||||
Information42'--><xref role="JumpText" linkend="RDMAP.BIntg.mkr.3"></para></entry>
|
||||
</row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Basic Integration Tasks43'--><xref
|
||||
role="JumpText" linkend="RDMAP.BIntg.mkr.4"></para></entry></row></tbody>
|
||||
</tgroup></informaltable>
|
||||
<para>Basic integration does not involve extensive use of the desktop application
|
||||
program interface (API). Therefore, it does not provide other interaction
|
||||
with the desktop, such as drag and drop, session management, ToolTalk messaging,
|
||||
and programmatic access to the actions and data types database.</para>
|
||||
<sect1 id="RDMAP.BIntg.div.2">
|
||||
<title id="RDMAP.BIntg.mkr.2">Basic Integration Features</title>
|
||||
<para>Basic application integration provides these features for end users:
|
||||
</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>A graphical way to locate and
|
||||
start your application on the desktop.</para>
|
||||
<para>Your application will provide a desktop <symbol role="Variable">registration
|
||||
package</symbol>, and your installation script will automatically register
|
||||
your application.</para>
|
||||
<para>Registration creates an application group at the top level of Application
|
||||
Manager. The application group contains an icon the user double-clicks to
|
||||
start the application.</para>
|
||||
</listitem><listitem><para>The ability to recognize and manipulate your application's
|
||||
data files.</para>
|
||||
<para>Your application will provide data types for its data files.</para>
|
||||
<para>Data typing configures data files to use a unique icon in File Manager
|
||||
to help users identify them. The data files also have meaningful desktop
|
||||
behavior. Two examples are:</para>
|
||||
<itemizedlist remap="Bullet2"><listitem><para>The user can start your application
|
||||
by double-clicking a data file.</para>
|
||||
</listitem><listitem><para>Dropping a data file on a desktop printer drop
|
||||
zone prints the file using the appropriate print command.</para>
|
||||
</listitem></itemizedlist>
|
||||
</listitem><listitem><para>Easy font and color selection using Style Manager.
|
||||
</para>
|
||||
<para>Your application will change interface fonts and background, foreground,
|
||||
and shadow colors dynamically.</para>
|
||||
<para>The desktop defines general interface font and color resources that
|
||||
are used if no corresponding application-specific resources exist.</para>
|
||||
</listitem></itemizedlist>
|
||||
<para>Basic integration provides these advantages to system administrators:
|
||||
</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>Easy installation and registration.
|
||||
</para>
|
||||
<para>Upon installation, the application is automatically registered. The
|
||||
system administrator has little or no additional work to do.</para>
|
||||
</listitem><listitem><para>Easy ongoing administration.</para>
|
||||
<para>All the desktop's configuration files are gathered in one location.
|
||||
Furthermore, the application can easily be unregistered if, for example,
|
||||
the system administrator wants to update it or to move it to a different
|
||||
application server.</para>
|
||||
</listitem></itemizedlist>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.BIntg.div.3">
|
||||
<title id="RDMAP.BIntg.mkr.3">Organization of Basic Integration Information</title>
|
||||
<para>Most of the tasks involved in basic integration are also performed by
|
||||
system administrators who are integrating an existing application into the
|
||||
desktop. Therefore, most basic integration documentation is located in the <emphasis>Advanced User's and System Administrator's Guide</emphasis>.</para>
|
||||
<para>The <emphasis>Programmer's Guide</emphasis> contains a chapter on basic
|
||||
integration. Where appropriate, the chapter refers you to the information
|
||||
contained in the <emphasis>Advanced User's and System Administrator's Guide</emphasis>. It also contains additional information specific to application
|
||||
programmers.</para>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.BIntg.div.4">
|
||||
<title id="RDMAP.BIntg.mkr.4">Basic Integration Tasks</title>
|
||||
<para>These are the general tasks involved in basic integration:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>Modify any application resources
|
||||
that set fonts and colors. This allows users to change the application's
|
||||
interface fonts and colors using Style Manager.</para>
|
||||
<para>See the section on modifying font and color resources in the <emphasis>Advanced User's and System Administrator's Guide</emphasis>.</para>
|
||||
</listitem><listitem><para>Provide printing for your application's data files.
|
||||
</para>
|
||||
<para>See the <emphasis>Programmer's Guide</emphasis> basic integration chapter
|
||||
for details.</para>
|
||||
<para>Some types of printing integration require that you modify your application
|
||||
code. They are optional, and are discussed in the <emphasis>Programmer's
|
||||
Guide</emphasis> basic integration chapter because they are closely related
|
||||
to basic integration tasks.</para>
|
||||
</listitem><listitem><para>Create the registration package for your application.
|
||||
</para>
|
||||
<para>See this documentation:</para>
|
||||
<itemizedlist remap="Bullet2"><listitem><para><emphasis>Programmer`s Guide</emphasis> basic integration chapter</para>
|
||||
</listitem><listitem><para><emphasis>Advanced User's and System Administrator's
|
||||
Guide</emphasis></para>
|
||||
</listitem></itemizedlist>
|
||||
</listitem><listitem><para>Modify your application's installation script to
|
||||
install the registration package files and perform the registration procedure.
|
||||
</para>
|
||||
<para>See this documentation:</para>
|
||||
<itemizedlist remap="Bullet2"><listitem><para><emphasis>Programmer's Guide</emphasis> basic integration chapter</para>
|
||||
</listitem><listitem><para>The section on registering the application using <command>dtappintegrate</command> in the <emphasis>Advanced User's and System Administrator's
|
||||
Guide</emphasis></para>
|
||||
</listitem></itemizedlist>
|
||||
</listitem></itemizedlist>
|
||||
<programlisting></programlisting>
|
||||
</sect1>
|
||||
</chapter>
|
||||
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 04:30:53-->
|
||||
<?Pub Caret>
|
||||
<?Pub *0000007986>
|
||||
810
cde/doc/en_US.UTF-8/guides/progOview/ch06.sgm
Normal file
810
cde/doc/en_US.UTF-8/guides/progOview/ch06.sgm
Normal file
@@ -0,0 +1,810 @@
|
||||
<!-- $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>
|
||||
619
cde/doc/en_US.UTF-8/guides/progOview/ch07.sgm
Normal file
619
cde/doc/en_US.UTF-8/guides/progOview/ch07.sgm
Normal file
@@ -0,0 +1,619 @@
|
||||
<!-- $XConsortium: ch07.sgm /main/12 1996/09/08 19:47:09 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.optin.div.1">
|
||||
<title id="RDMAP.optin.mkr.1">Optional Integration</title>
|
||||
<para>The Common Desktop Environment components discussed in this chapter
|
||||
enable you to leverage services provided by the desktop for achieving specialized
|
||||
tasks.<indexterm><primary>optional integration <$startrange></primary></indexterm><indexterm><primary>integration</primary><secondary>optional</secondary></indexterm><indexterm><primary>levels of integration</primary><secondary>optional <$startrange></secondary></indexterm></para>
|
||||
<informaltable id="RDMAP.optin.itbl.1" frame="All">
|
||||
<tgroup cols="1">
|
||||
<colspec colname="1" colwidth="4.0 in">
|
||||
<tbody>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Common Desktop Environment Motif
|
||||
Control Widgets64'--><xref role="JumpText" linkend="RDMAP.optin.mkr.2"></para></entry>
|
||||
</row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Data Typing67'--><xref role="JumpText"
|
||||
linkend="RDMAP.optin.mkr.3"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Action Invocation69'--><xref role="JumpText"
|
||||
linkend="RDMAP.optin.mkr.4"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Workspace Manager70'--><xref role="JumpText"
|
||||
linkend="RDMAP.optin.mkr.5"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Terminal Emulator Widget72'--><xref
|
||||
role="JumpText" linkend="RDMAP.optin.mkr.6"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Text Editor Widget73'--><xref role="JumpText"
|
||||
linkend="RDMAP.optin.mkr.7"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Calendar74'--><xref role="JumpText"
|
||||
linkend="RDMAP.optin.mkr.8"></para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para>Information Manager ??</para></entry></row>
|
||||
<row rowsep="1">
|
||||
<entry><para><!--Original XRef content: 'Desktop KornShell (dtksh)76'--><xref
|
||||
role="JumpText" linkend="RDMAP.optin.mkr.9"></para></entry></row></tbody>
|
||||
</tgroup></informaltable>
|
||||
<note>
|
||||
<para>In addition to incorporating any components described in this section
|
||||
into your application, 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">.
|
||||
The components discussed in <!--Original XRef content: 'Chapter 6,
|
||||
&xd2;Recommended Integration'--><xref role="ChapNumAndTitle" linkend="RDMAP.recin.mkr.1">,
|
||||
are critical to making your application highly integrated with the desktop.
|
||||
</para>
|
||||
</note>
|
||||
<para>For more information on optional integration, see the <emphasis>Programmer's
|
||||
Guide</emphasis>.</para>
|
||||
<sect1 id="RDMAP.optin.div.2">
|
||||
<title id="RDMAP.optin.mkr.2">Common Desktop Environment Motif Control Widgets</title>
|
||||
<para>The Common Desktop Environment Motif<indexterm><primary>widget</primary>
|
||||
<secondary>Common Desktop Environment <$startrange></secondary></indexterm> control widgets are designed to
|
||||
ease porting<indexterm><primary>OPEN LOOK</primary></indexterm> OPEN LOOK
|
||||
and<indexterm><primary>Microsoft Windows</primary></indexterm> Microsoft
|
||||
Windows applications to the Common Desktop Environment by providing equivalent
|
||||
functionality in Common Desktop Environment Motif. The Common Desktop Environment
|
||||
Motif widgets library <command>libDtWidget</command> contains widgets and
|
||||
functions that are used to provide common functionality across all Common
|
||||
Desktop Environment applications. The widgets provided include:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>Text field and arrow button
|
||||
widget (<filename>DtSpinBox)<indexterm><primary>text field and arrow button
|
||||
widget (DtSpinBox)</primary></indexterm><indexterm><primary>DtSpinBox</primary>
|
||||
</indexterm><indexterm><primary>Common Desktop Environment widgets</primary>
|
||||
<secondary>DtSpinBox</secondary></indexterm></filename></para>
|
||||
</listitem></itemizedlist>
|
||||
<figure>
|
||||
<title>Example of text field and arrow button widget (<command>DtSpinBox</command>)</title>
|
||||
<graphic id="RDMAP.optin.grph.1" entityref="RDMAP.optin.fig.1"></graphic>
|
||||
</figure>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>Text field and list box widget
|
||||
(<filename>DtComboBox)<indexterm><primary>text field and list box widget (DtComboBox)</primary></indexterm><indexterm><primary>DtComboBox</primary></indexterm><indexterm>
|
||||
<primary>Common Desktop Environment widgets</primary><secondary>DtComboBox</secondary></indexterm></filename></para>
|
||||
</listitem></itemizedlist>
|
||||
<figure>
|
||||
<title>Examples of text field and list box widget (<command>DtComboBox</command>)</title>
|
||||
<graphic id="RDMAP.optin.grph.2" entityref="RDMAP.optin.fig.2"></graphic>
|
||||
<graphic id="RDMAP.optin.grph.4" Entityref="RDMAP.optin.fig.4"></graphic>
|
||||
</figure>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>Menu button widget
|
||||
(<filename>DtMenuButton)<indexterm><primary>menu button widget (DtMenuButton)</primary>
|
||||
</indexterm><indexterm><primary>DtMenuButton</primary></indexterm><indexterm>
|
||||
<primary>Common Desktop Environment widgets</primary><secondary>DtMenuButton</secondary></indexterm></filename></para>
|
||||
</listitem></itemizedlist>
|
||||
<figure>
|
||||
<title>Example of menu button widget (<command>DtMenuButton</command>)</title>
|
||||
<graphic id="RDMAP.optin.grph.3" entityref="RDMAP.optin.fig.3"></graphic>
|
||||
</figure>
|
||||
<para>The Common Desktop Environment Motif Widget library <command>libDtWidget</command> supports drivability between Common Desktop Environment applications
|
||||
and legacy OPEN LOOK applications. That is, it enables you to write applications
|
||||
that operate the same way OPEN LOOK applications do, in areas such as cut,
|
||||
copy, paste, and mouse-button functionality.</para>
|
||||
<note>
|
||||
<para>The Common Desktop Environment supports all<indexterm><primary>Motif</primary></indexterm><indexterm><primary>widget</primary><secondary>Motif</secondary></indexterm> Motif widgets.</para>
|
||||
</note>
|
||||
<table id="RDMAP.optin.tbl.1" frame="Topbot">
|
||||
<title>Common Desktop Environment Control Widgets</title>
|
||||
<tgroup cols="2" colsep="0" rowsep="0">
|
||||
<colspec colwidth="143*">
|
||||
<colspec colwidth="313*">
|
||||
<thead>
|
||||
<row><entry align="left" valign="bottom"><para><literal>Widget Name</literal></para></entry>
|
||||
<entry align="left" valign="bottom"><para><literal>Description</literal></para></entry>
|
||||
</row></thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para><command>DtSpinBox</command></para></entry>
|
||||
<entry align="left" valign="top"><para><command>TextField</command> widget
|
||||
with additional controls for incrementing and decrementing numeric values,
|
||||
or browsing through and selecting from a list of text strings</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para><command>DtComboBox</command></para></entry>
|
||||
<entry align="left" valign="top"><para>Combination of <command>TextField</command>
|
||||
and pop-up List widgets that provides a list of valid choices for the <command>TextField</command></para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para><command>DtMenuButton</command></para></entry>
|
||||
<entry align="left" valign="top"><para>Command widget that provides menu cascading
|
||||
functionality of an <command>XmCascadeButton</command> widget outside of
|
||||
a Menu Bar, or a Menu Pane (a pull-down menu, a pop-up menu, or an option
|
||||
menu)</para></entry></row></tbody></tgroup></table>
|
||||
<sect2 id="RDMAP.optin.div.4">
|
||||
<title>Library and Header Files<indexterm><primary>Common Desktop Environment
|
||||
widgets</primary><secondary>library and header files</secondary></indexterm></title>
|
||||
<para>The library <command>libDtWidget</command> provides access to the <command>DtSpinBox</command>, <command>DtComboBox</command>, and <command>DtMenuButton</command> widgets. The <command>libDtWidget</command> header files for these
|
||||
widgets are:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para><filename>Dt/SpinBox.h</filename></para>
|
||||
</listitem><listitem><para><filename>Dt/ComboBox.h</filename></para>
|
||||
</listitem><listitem><para><filename>Dt/MenuButton.h</filename></para>
|
||||
</listitem></itemizedlist>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.optin.div.5">
|
||||
<title>Demo Programs<indexterm><primary>Common Desktop Environment widgets</primary><secondary>demo programs</secondary></indexterm><indexterm><primary>demo programs</primary></indexterm></title>
|
||||
<para>You can find the Common Desktop Environment Motif control widgets demos
|
||||
in <filename>/usr/dt/examples/dtwidget</filename>. Read the <command>README</command> file for detailed information on the demos.</para>
|
||||
<sect3 id="RDMAP.optin.div.6">
|
||||
<title>Related Documentation</title>
|
||||
<para>For more information on Common Desktop Environment Motif control widgets,
|
||||
see the relevant man pages and the <emphasis>Programmer's Guide</emphasis>.<indexterm>
|
||||
<primary>widget</primary><secondary>Common Desktop Environment <$endrange></secondary></indexterm></para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.optin.div.7">
|
||||
<title id="RDMAP.optin.mkr.3">Data Typing</title>
|
||||
<para>You can define data types when you perform basic integration for your
|
||||
application. This section focuses on a different aspect of data typing: extracting
|
||||
information from the actions and data-types database.</para>
|
||||
<para>Data typing provides an extension to the attributes of files and data
|
||||
beyond what is provided by traditional<indexterm><primary>UNIX</primary>
|
||||
</indexterm> UNIX file systems. These extensions include typing and attribute
|
||||
management. Use the data-typing API if your application receives data from
|
||||
external sources and must act on it. For example, your application might
|
||||
want to display an icon or execute an action that has a system-wide definition.
|
||||
</para>
|
||||
<para>Data typing consist of two parts:<indexterm><primary>data typing</primary>
|
||||
<secondary>two parts of</secondary></indexterm></para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>A database that stores data
|
||||
criteria and data attributes</para>
|
||||
</listitem><listitem><para>A collection of routines that query the database
|
||||
</para>
|
||||
</listitem></itemizedlist>
|
||||
<para>The data-typing system determines a type for a file or byte vector based
|
||||
on a set of criteria. These criteria include its name, permissions, symbolic
|
||||
link value, and contents. The attributes associated with a type describe
|
||||
its user-visible interfaces, including a description, the icon to represent
|
||||
it graphically, and the actions that apply to it. Attributes also exist that
|
||||
name the interchange formats to which the data conforms.</para>
|
||||
<para>The Common Desktop Environment File Manager and Common Desktop Environment
|
||||
Mail attachment window use data typing to determine the icon and actions
|
||||
associated with a file. For example, for a C file <symbol role="Variable">filename</symbol>.<command>c</command>, File Manager uses the. <command>c</command> extension to determine the file's data type, C_SOURCE. It then
|
||||
uses C_SOURCE to determine the icon file name for the icon that it can use
|
||||
for <symbol role="Variable">filename</symbol>.<command>c</command>.</para>
|
||||
<sect2 id="RDMAP.optin.div.8">
|
||||
<title>Database Loading<indexterm><primary>database</primary><secondary>loading</secondary></indexterm><indexterm><primary>data typing</primary><secondary>database loading</secondary></indexterm></title>
|
||||
<para>This section discusses the loading API for the actions and data-types
|
||||
database. The syntax for this and any Common Desktop Environment databases
|
||||
a developer defines is discussed in man pages in the
|
||||
<filename>/usr/dt/man/man4</filename> directory.</para>
|
||||
<para>The external database loading API consists of two functions:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para><filename>DtDbLoad()</filename></para>
|
||||
</listitem><listitem><para><filename>DtDbReloadNotify()</filename></para>
|
||||
</listitem></itemizedlist>
|
||||
<para><filename>DtDbLoad()</filename> reads in the actions and data-types
|
||||
database. It determines the set of directories that are searched for database
|
||||
files, and it loads into the database the <filename>.dt</filename> files
|
||||
that are found. Your application must call <filename>DtDbLoad()</filename>
|
||||
before calling any of the routines that query the actions and data-types
|
||||
database.<indexterm><primary>DtDbLoad()</primary></indexterm><indexterm>
|
||||
<primary>database</primary><secondary>DtDbLoad()</secondary></indexterm></para>
|
||||
<para><filename>Use DtDbReLoadNotify()</filename> to request notification
|
||||
of actions and data-types database reload events. It registers an application's
|
||||
interest in database reload messages. <filename><indexterm><primary>DtDbReLoadNotify()</primary></indexterm><indexterm><primary>database</primary><secondary>DtDbReLoadNotify()</secondary></indexterm></filename></para>
|
||||
<para>Your application should reload the database whenever it changes, so
|
||||
that the end user will notice updates without having to restart the application.
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.optin.div.9">
|
||||
<title>Database Queries<indexterm><primary>database</primary><secondary>query
|
||||
functions</secondary></indexterm><indexterm><primary>data typing</primary>
|
||||
<secondary>database query functions</secondary></indexterm></title>
|
||||
<para>To look up an attribute for a data object, you must first determine
|
||||
the type of the object and then ask for the appropriate attribute value for
|
||||
that type. The database query functions enable you to perform operations
|
||||
such as retrieve type data and attributes, free memory, and load and unload
|
||||
the database. These functions are documented in the <emphasis>Programmer's
|
||||
Guide</emphasis> and also in man pages in the <filename>man3</filename> directory.
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.optin.div.10">
|
||||
<title>Library and Header Files<indexterm><primary>data typing</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 data typing. Include the
|
||||
<filename>Dt/Dt.h</filename> <command>and Dt/Dts.h</command> header files to access
|
||||
the data-typing API.</para>
|
||||
<note>
|
||||
<para>If your application uses any of the data-typing APIs, or loads the
|
||||
actions and data-types database, 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.optin.div.11">
|
||||
<title>Demo Programs<indexterm><primary>data typing</primary><secondary>demo
|
||||
programs</secondary></indexterm><indexterm><primary>demo programs</primary>
|
||||
</indexterm></title>
|
||||
<para>You can find the data typing demos in
|
||||
<filename>/usr/dt/examples/dtdts</filename>.
|
||||
Read the <command>README</command> file for detailed information
|
||||
on the demos.</para>
|
||||
<sect3 id="RDMAP.optin.div.12">
|
||||
<title>Related Documentation</title>
|
||||
<para>For more information on data typing, see the relevant man pages and
|
||||
the <emphasis>Programmer's Guide</emphasis>.</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.optin.div.13">
|
||||
<title id="RDMAP.optin.mkr.4">Action Invocation</title>
|
||||
<para>The action invocation API enables applications to invoke desktop actions
|
||||
on file or buffer arguments. It chooses a suitable action for the file or
|
||||
buffer based on the <command>Class</command>, <command>Type</command>, <command>Mode</command>, and <command>Number</command> of the action arguments. For
|
||||
example, an Open action might invoke an image viewer for GIF files, a word
|
||||
processor for complex documents, and a simple text editor for ordinary ASCII
|
||||
files. Your application need not concern itself with the details of action
|
||||
selection or invocation.</para>
|
||||
<para>Use the action invocation API so that your application uses the same
|
||||
mechanisms as the rest of the desktop. The user can then experience uniform
|
||||
desktop behavior.</para>
|
||||
<para>The action functions in the <command>libDtSvc</command> library provide
|
||||
a way to invoke desktop actions (such as Open and Print) for files or buffers.
|
||||
They contain parameters that enable you to modify an action's behavior. The
|
||||
action invocation API consists of the following functions:<indexterm><primary>action invocation</primary><secondary>API</secondary></indexterm></para>
|
||||
<informaltable>
|
||||
<tgroup cols="2" colsep="0" rowsep="0">
|
||||
<?PubTbl tgroup dispwid="6.13in">
|
||||
<colspec align="left" colwidth="216*">
|
||||
<colspec align="left" colwidth="289*">
|
||||
<tbody>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para><filename>DtActionInvoke()</filename></para></entry>
|
||||
<entry align="left" valign="top"><para>Invokes the specified action on its
|
||||
arguments, which can be files or buffers</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para><filename>DtActionLabel()</filename></para></entry>
|
||||
<entry align="left" valign="top"><para>Provides access to the localizable
|
||||
label string associated with an action</para></entry></row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para><filename>DtActionDescription()</filename></para></entry>
|
||||
<entry align="left" valign="top"><para>Returns a string containing the description
|
||||
information associated with the action your application called</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para><filename>DtActionExists()</filename></para></entry>
|
||||
<entry align="left" valign="top"><para>A Boolean function that checks whether
|
||||
a given name corresponds to an existing action</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para><filename>DtActionIcon()</filename></para></entry>
|
||||
<entry align="left" valign="top"><para>Returns the name of the icon associated
|
||||
with the specified action</para></entry></row></tbody></tgroup></informaltable>
|
||||
<sect2 id="rdmap.optin.div.14">
|
||||
<title>Library and Header Files<indexterm><primary>action invocation</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 actions. Include the
|
||||
<filename>Dt/Dt.h</filename> and <filename>Dt/Action.h</filename> header files to access
|
||||
the actions API.</para>
|
||||
<note>
|
||||
<para>If your application uses any of the action invocation 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.optin.div.15">
|
||||
<title>Demo Programs<indexterm><primary>action invocation</primary><secondary>demo programs</secondary></indexterm><indexterm><primary>demo programs</primary>
|
||||
</indexterm></title>
|
||||
<para>You can find the action invocation demos in
|
||||
<filename>/usr/dt/examples/dtaction</filename>.
|
||||
Read the <command>README</command> file for detailed information
|
||||
on the demos.</para>
|
||||
<sect3 id="rdmap.optin.div.16">
|
||||
<title>Related Documentation</title>
|
||||
<para>For more information on actions, see the relevant man pages and the <emphasis>Programmer's Guide</emphasis>.</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.optin.div.17">
|
||||
<title id="RDMAP.optin.mkr.5">Workspace Manager</title>
|
||||
<para>The Common Desktop Environment Workspace Manager provides support for
|
||||
multiple workspaces. Each workspace is a <emphasis>virtual screen</emphasis>.
|
||||
Windows can be placed in a single workspace, all workspaces, or any combination
|
||||
of individual workspaces. Workspaces can be added, deleted, or renamed dynamically
|
||||
by the user.</para>
|
||||
<para>The Workspace Manager API provides functions for applications that need
|
||||
to know in which workspaces their windows reside, or that need to have some
|
||||
control over how the windows are placed in the workspaces. Additionally,
|
||||
the API enables applications to monitor changes to the overall workspace
|
||||
state, such as which workspace is the current one.</para>
|
||||
<para>The Common Desktop Environment does not require applications to use
|
||||
the Workspace Manager API to run on the desktop. Most desktop applications
|
||||
can run as expected without knowledge of the Workspace Manager. In particular,
|
||||
if your application has a single, main, top-level window and complies with
|
||||
ICCCM 1.1 and<indexterm><primary>Motif 1.2</primary></indexterm> Motif 1.2,
|
||||
you do not have to integrate with the Common Desktop Environment Workspace
|
||||
Manager for the application to run on the desktop.</para>
|
||||
<para>However, more complex applications with multiple top-level windows need
|
||||
to use the Workspace Manager API in conjunction with the<indexterm><primary>Session Manager</primary></indexterm> Session Manager API to properly save
|
||||
and restore the application's state. The Workspace Manager API enables an
|
||||
application to find out which workspaces each of its windows is in. The API
|
||||
also enables an application to display its windows in the correct workspace
|
||||
when the session resumes.</para>
|
||||
<para>The Workspace Manager API addresses the following tasks:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>Get information on workspaces
|
||||
</para>
|
||||
</listitem><listitem><para>Get and set the current workspace</para>
|
||||
</listitem><listitem><para>Notify a client of changes to workspace state</para>
|
||||
</listitem><listitem><para>Add and remove workspace functions for a client
|
||||
</para>
|
||||
</listitem><listitem><para>Get and set the workspaces occupied by a client
|
||||
</para>
|
||||
</listitem><listitem><para>Identify backdrop windows</para>
|
||||
</listitem></itemizedlist>
|
||||
<para>All Workspace Manager API functions share the prefix <command>DtWsm</command>.</para>
|
||||
<sect2 id="RDMAP.optin.div.18">
|
||||
<title>Library and Header Files<indexterm><primary>Workspace 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 that for Workspace Manager. Include
|
||||
the <filename>Dt/Dt.h</filename> and <filename>Dt/Wsm.h</filename> header
|
||||
files to access the Workspace Manager API.</para>
|
||||
<note>
|
||||
<para>If your application uses any of the Workspace 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.optin.div.19">
|
||||
<title>Demo Programs<indexterm><primary>Workspace Manager</primary><secondary>demo programs</secondary></indexterm><indexterm><primary>demo programs</primary>
|
||||
</indexterm></title>
|
||||
<para>You can find the Workspace Manager demos in
|
||||
<filename>/usr/dt/examples/dtwsm</filename>.
|
||||
Read the <command>README</command> file for detailed information
|
||||
on the demos.</para>
|
||||
<sect3 id="RDMAP.optin.div.20">
|
||||
<title>Related Documentation</title>
|
||||
<para>For more information on Workspace Manager, see the relevant man pages
|
||||
and the <emphasis>Programmer's Guide</emphasis>.</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.optin.div.21">
|
||||
<title id="RDMAP.optin.mkr.6">Terminal Emulator Widget</title>
|
||||
<para>The <command>DtTerm</command> widget provides the functionality required
|
||||
to emulate an ANSI X3.64-1979-style terminal emulator (specifically a DEC
|
||||
VT220-like terminal with extensions). The Terminal Emulator widget library,
|
||||
<filename>libDtTerm,</filename> provides the <command>DtTerm</command> widget for use
|
||||
in adding a terminal emulator window to a GUI. If you include a terminal emulator
|
||||
in your application, use Common Desktop Environment Motif widgets to add display
|
||||
enhancements to it such as pop-up menus and scroll bars.<indexterm><primary>DEC VT220</primary></indexterm><indexterm><primary>Terminal Emulator</primary>
|
||||
<secondary>DEC VT220-like</secondary></indexterm><indexterm><primary>widget</primary><secondary>DtTerm</secondary></indexterm><indexterm><primary>Terminal
|
||||
Emulator</primary><secondary>DtTerm widget</secondary></indexterm></para>
|
||||
<para>The Common Desktop Environment Terminal Emulator, which is a part of
|
||||
the run-time environment, is a window that behaves as a terminal, enabling
|
||||
access to traditional terminal-based applications from within the desktop.
|
||||
The <command>DtTerm</command> widget is the foundation for the desktop run-time
|
||||
terminal emulator, <command>dtterm</command>.<indexterm><primary>run-time</primary><secondary>terminal emulator</secondary></indexterm></para>
|
||||
<para>The <command>libDtTerm</command> library includes a set of convenience
|
||||
functions to create, access, and support the <command>DtTerm</command> widget.
|
||||
</para>
|
||||
<sect2 id="RDMAP.optin.div.22">
|
||||
<title>Library and Header Files<indexterm><primary>Terminal Emulator Widget</primary><secondary>library and header files</secondary></indexterm></title>
|
||||
<para>The <command>libDtTerm</command> library provides a set of widgets based
|
||||
on Motif for designing a terminal emulator or for adding a terminal emulator
|
||||
window to a GUI.</para>
|
||||
<para>Include the <filename>Dt/Term.h</filename> header file to access <command>libDtTerm</command> APIs in your application.</para>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.optin.div.23">
|
||||
<title>Demo Programs<indexterm><primary>Terminal Emulator Widget</primary>
|
||||
<secondary>demo programs</secondary></indexterm><indexterm><primary>demo
|
||||
programs</primary></indexterm></title>
|
||||
<para>You can find the Terminal Emulator demos in
|
||||
<filename>/usr/dt/examples/dtterm</filename>.
|
||||
Read the <command>README</command> file for detailed information
|
||||
on the demos.</para>
|
||||
<sect3 id="RDMAP.optin.div.24">
|
||||
<title>Related Documentation</title>
|
||||
<para>For more information on the <command>DtTerm</command> widget, see the
|
||||
relevant man pages.</para>
|
||||
<para>For more information on the desktop terminal emulator, see the terminal
|
||||
emulator help volume, the relevant man pages, or the <emphasis>User's Guide</emphasis>.</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.optin.div.25">
|
||||
<title id="RDMAP.optin.mkr.7">Text Editor Widget</title>
|
||||
<para>The Common Desktop Environment text editing system consists of two
|
||||
components:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para><command>The text editor application,
|
||||
dtpad</command>, which provides editing services through graphical, action,
|
||||
and ToolTalk interfaces<command><indexterm><primary>dtpad</primary></indexterm><indexterm>
|
||||
<primary>Text Editor</primary><secondary>dtpad</secondary></indexterm></command></para>
|
||||
</listitem><listitem><para><command>The editor widget, DtEditor</command>,
|
||||
which provides a programmatic interface for the following editing services:<command><indexterm>
|
||||
<primary>Text Editor</primary><secondary>DtEditor widget</secondary></indexterm></command></para>
|
||||
<itemizedlist remap="Bullet2"><listitem><para>Cut and paste</para>
|
||||
</listitem><listitem><para>Search and replace</para>
|
||||
</listitem><listitem><para>Simple formatting</para>
|
||||
</listitem><listitem><para>Spell checking (for 8-bit locales)</para>
|
||||
</listitem><listitem><para>Undo previous edit</para>
|
||||
</listitem><listitem><para>Enhanced I/O handling capabilities that support
|
||||
input and output of ASCII text, multibyte text, and buffers of data</para>
|
||||
</listitem><listitem><para>Support for reading and writing files directly
|
||||
</para>
|
||||
</listitem></itemizedlist>
|
||||
</listitem></itemizedlist>
|
||||
<para>Although the Motif text widget also provides a programmatic interface,
|
||||
applications that want to assure a system-wide uniform editor should use
|
||||
the <command>DtEditor</command> widget. The Common Desktop Environment Text
|
||||
Editor and Mailer use the editor widget. Use this widget in the following
|
||||
circumstances:<indexterm><primary>Text Editor</primary><secondary>when to
|
||||
use widget <$startrange></secondary>
|
||||
</indexterm></para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>You need the functionality,
|
||||
such as spell checking, undo, and find/change, that is provided by the <command>DtEditor</command> widget.</para>
|
||||
</listitem><listitem><para>You want users to be able to read and write data
|
||||
to and from a file.</para>
|
||||
</listitem><listitem><para>When your program does not need to edit the text
|
||||
while the widget has control of the text<indexterm><primary>Text Editor</primary><secondary>when to use widget <$endrange></secondary></indexterm>.</para>
|
||||
</listitem></itemizedlist>
|
||||
<sect2 id="RDMAP.optin.div.26">
|
||||
<title>Library and Header Files<indexterm><primary>Text Editor</primary><secondary>library and header files</secondary></indexterm></title>
|
||||
<para>The <command>DtEditor</command> widget is in the <command>libDtWidget</command> library. The header file is <filename>Dt/Editor.h</filename>.
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.optin.div.27">
|
||||
<title>Demo Programs<indexterm><primary>Text Editor</primary><secondary>demo programs</secondary></indexterm></title>
|
||||
<para>A demo containing an example of the <command>DtEditor</command> widget
|
||||
(<filename>editor.c</filename>) is in
|
||||
<filename>/usr/dt/examples/dtwidget</filename> directory.
|
||||
Read the <command>README</command> file for detailed
|
||||
information on the demo.</para>
|
||||
<sect3 id="RDMAP.optin.div.28">
|
||||
<title>Related Documentation</title>
|
||||
<para>For more information on the Text Editor widget, see the relevant man
|
||||
pages and the <emphasis>Programmer's Guide</emphasis>.</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.optin.div.29">
|
||||
<title id="RDMAP.optin.mkr.8">Calendar</title>
|
||||
<para>The Common Desktop Environment Calendar comprises the infrastructure
|
||||
and API that enables users to schedule their time and resources in a networked
|
||||
environment. The Calendar GUI is part of the Common Desktop Environment run-time
|
||||
environment.<indexterm><primary>run-time</primary><secondary>Calendar GUI</secondary></indexterm></para>
|
||||
<para>Calendar consists of:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>A daemon that manages the calendar
|
||||
database</para>
|
||||
</listitem><listitem><para>A calendar and scheduling API that defines a set
|
||||
of high-level functions so that calendar-enabled applications can access
|
||||
the functionality supported by the daemon</para>
|
||||
</listitem><listitem><para>A library implementation of the calendar and scheduling
|
||||
API</para>
|
||||
</listitem></itemizedlist>
|
||||
<para>Additionally, it provides a user interface for both GUI and TTY interaction.
|
||||
The system supports entering, deleting, and modifying calendar entries, as
|
||||
well as browsing and search features. You can access all this functionality
|
||||
through the network.</para>
|
||||
<para>The development environment provides a library for client access to
|
||||
the Calendar data. It is extensible in that it allows users to define their
|
||||
own calendar entry attributes.The library provides a client callback mechanism
|
||||
for notification of database updates.</para>
|
||||
<para>The calendar daemon implements the services behind the library of calendar
|
||||
and scheduling API calls. It supports deleting, inserting, and modifying
|
||||
calendar entries. It also manages calendar reminders and supports the creation
|
||||
and removal of the Calendar database. It also provides mechanisms for retrieving
|
||||
Calendar data.</para>
|
||||
<para>Calendar entry data integrates with the desktop through drag and drop
|
||||
and the ToolTalk messaging interfaces.</para>
|
||||
<para>The calendar and scheduling API is an implementation of the X.400 Application
|
||||
Programming Interface Association (<indexterm><primary>X.400 API Association
|
||||
(XAPIA)</primary></indexterm><indexterm><primary>Calendar</primary><secondary>XAPIA</secondary></indexterm>XAPIA) Calendaring and Scheduling API 1.0. Use
|
||||
the calendar and scheduling API to integrate your application with Calendar,
|
||||
or to develop your own calendar application.</para>
|
||||
<sect2 id="RDMAP.optin.div.30">
|
||||
<title>Library and Header Files<indexterm><primary>Calendar</primary><secondary>library and header files</secondary></indexterm></title>
|
||||
<para>The Calendar library, <command>libcsa</command>, provides a programmatic
|
||||
way to access and manage Calendar data in a networked environment.</para>
|
||||
<para>Include the <filename>csa/csa.h</filename> header file to access <command>libcsa</command> APIs in your application.</para>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.optin.div.31">
|
||||
<title>Demo Programs<indexterm><primary>Calendar</primary><secondary>demo
|
||||
programs</secondary></indexterm><indexterm><primary>demo programs</primary>
|
||||
</indexterm></title>
|
||||
<para>You can find the Calendar demos in
|
||||
<filename>/usr/dt/examples/dtcalendar</filename>.
|
||||
Read the <command>README</command> file for detailed information
|
||||
on the demos.</para>
|
||||
<sect3 id="RDMAP.optin.div.32">
|
||||
<title>Related Documentation</title>
|
||||
<para>For more information on the calendar, see the relevant man pages, the
|
||||
Calendar help volume, and the <emphasis>Programmer's Guide</emphasis>.</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.optin.div.32a">
|
||||
<title id="RDMAP.optin.mkr.8a">Information Manager</title>
|
||||
<para><indexterm><primary>information manager</primary><secondary>general information</secondary></indexterm>The Information Manager provides access to on-line documentation, organized
|
||||
in a manner that is typical of hardcopy manuals: bookcases contain books, which
|
||||
contain sections, which in turn contain subsections, and so on. The Information Manager is
|
||||
is separate from the Help facility.
|
||||
</para>
|
||||
<sect2 id="RDMAP.optin.div.32b">
|
||||
<title>Header Files</title>
|
||||
<indexterm><primary>information manager</primary><secondary>header files</secondary></indexterm>
|
||||
<para>The header files are:
|
||||
</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><Filename>/usr/dt/include/Dt/Info.h</Filename>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><Filename>/usr/dt/include/Dt/Search.h</Filename>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><Filename>/usr/dt/include/Dt/Mmdb.h</Filename> (for extending or replacing the default
|
||||
browser, <command>dtinfo</command>)
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.optin.div.32c">
|
||||
<title>Related Documentation</title>
|
||||
<indexterm><primary>information manager</primary><secondary>documentation</secondary></indexterm>
|
||||
<para>For more information on the Information Manager, refer to
|
||||
<citetitle>Information System Author's and Programmer's Guide</citetitle>.
|
||||
</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.optin.div.33">
|
||||
<title id="RDMAP.optin.mkr.9">Desktop KornShell (dtksh)</title>
|
||||
<para>Desktop KornShell<indexterm><primary>dtksh</primary></indexterm><indexterm>
|
||||
<primary>Desktop KornShell (dtksh)</primary></indexterm> (which is <command>dtksh</command>) provides a way to engage in graphic user interaction through
|
||||
shell scripts. The user interface capabilities are based on the Common Desktop
|
||||
Environment Motif widget set, the Xt Intrinsics, and the X11 library.</para>
|
||||
<para><command>dtksh</command> is a version of <filename><indexterm><primary>ksh-93</primary></indexterm>ksh-93</filename> extended to access many X, Xt,
|
||||
Motif, and Common Desktop Environment facilities. <filename>ksh-93</filename>
|
||||
is a version of<indexterm><primary>KornShell</primary></indexterm> KornShell,
|
||||
the command shell and programming language <command>ksh</command>. <command>dtksh</command> extends <command>ksh</command> to provide support
|
||||
for:<emphasis><indexterm><primary>Desktop KornShell (dtksh)</primary><secondary>extension of ksh</secondary></indexterm></emphasis></para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>Access to the Common Desktop
|
||||
Environment Motif widget set from within a shell script</para>
|
||||
</listitem><listitem><para>Fully localized shell scripts—<command>dtksh</command> scripts can use <command>catopen</command> and <command>catgets</command> commands</para>
|
||||
</listitem><listitem><para>Access to the Common Desktop Environment application
|
||||
Help system</para>
|
||||
</listitem><listitem><para>Response to session-management Save state directives
|
||||
</para>
|
||||
</listitem><listitem><para>Access to most of the Common Desktop Environment
|
||||
Desktop Services Message Set</para>
|
||||
</listitem><listitem><para>Access to many of the Common Desktop Environment
|
||||
data-typing API functions</para>
|
||||
</listitem><listitem><para>Access to most of the Common Desktop Environment
|
||||
action API functions</para>
|
||||
</listitem></itemizedlist>
|
||||
<sect2 id="RDMAP.optin.div.34">
|
||||
<title>Demo Programs<indexterm><primary>Desktop KornShell (dtksh)</primary>
|
||||
<secondary>demo programs</secondary></indexterm><indexterm><primary>demo programs</primary></indexterm></title>
|
||||
<para>You can find the <command>dtksh</command> demos in
|
||||
<filename>/usr/dt/examples/dtksh</filename>.
|
||||
Read the <command>README</command> file for detailed information
|
||||
on the demos.</para>
|
||||
<sect3 id="RDMAP.optin.div.35">
|
||||
<title>Related Documentation<?Pub Caret></title>
|
||||
<para>For more information on <command>dtksh</command>, see the relevant man
|
||||
pages and <emphasis>Desktop KornShell User's Guide</emphasis>.<indexterm>
|
||||
<primary>optional integration <$endrange></primary></indexterm><indexterm><primary>integration</primary>
|
||||
<secondary>optional</secondary></indexterm><indexterm><primary>levels of integration</primary><secondary>optional <$endrange></secondary></indexterm></para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
||||
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 04:30:53-->
|
||||
<?Pub *0000039352>
|
||||
37
cde/doc/en_US.UTF-8/guides/progOview/credits.sgm
Normal file
37
cde/doc/en_US.UTF-8/guides/progOview/credits.sgm
Normal file
@@ -0,0 +1,37 @@
|
||||
<!-- $XConsortium: credits.sgm /main/3 1996/08/18 19:47:18 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. -->
|
||||
<!--Para: Copyright &xd3; 1994, 1995 Hewlett-Packard Company
|
||||
|
||||
Copyright &xd3; 1994, 1995 International Business Machines Corp.
|
||||
|
||||
Copyright &xd3; 1994, 1995 Sun Microsystems, Inc.
|
||||
|
||||
Copyright &xd3; 1994, 1995 Novell, Inc.-->
|
||||
<!--Para: All rights reserved. This product and related documentation are protected by copyright and distributed under licenses
|
||||
restricting its use, copying, distribution, and decompilation. No part of this product or related documentation may be
|
||||
reproduced in any form by any means without prior written authorization.-->
|
||||
<!--Para: RESTRICTED RIGHTS LEGEND: Use, duplication, or disclosure by the United States Government is subject to the restrictions
|
||||
set forth in DFARS 252.227-7013 (c)(1)(ii) and FAR 52.227-19.-->
|
||||
<!--Para: THIS PUBLICATION IS PROVIDED &xd2;AS IS&xd3; WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
|
||||
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE, OR NON-INFRINGEMENT.-->
|
||||
<!--Para: The code and documentation for the DtComboBox and DtSpinBox widgets were contributed by Interleaf, Inc. Copyright 1993,
|
||||
Interleaf, Inc.-->
|
||||
<!--Para: TRADEMARKS:-->
|
||||
<!--Para: OPEN LOOK is a registered trademark of Novell, Inc.-->
|
||||
<!--Para: OpenWindows is a trademark of Sun Microsystems, Inc.-->
|
||||
<!--Para: ToolTalk is a registered trademark of Sun Microsystems, Inc.-->
|
||||
<!--Para: NFS is a registered trademark of Sun Microsystems, Inc.-->
|
||||
<!--Para: X Window System is a trademark of X Consortium, Inc.-->
|
||||
<!--Para: UNIX is a trademark exclusively licensed through X/Open Company, Ltd.-->
|
||||
<!--Para: Motif and Motif are trademarks of Open Software Foundation, Ltd.-->
|
||||
<!--Para: Adobe is a registered trademark of Adobe Systems, Inc.-->
|
||||
<!--Para: PostScript is a trademark of Adobe Systems, Inc., which may be registered in certain jurisdictions.-->
|
||||
<!--Para: Microsoft is a registered trademark of Microsoft Corporation.-->
|
||||
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 04:30:53-->
|
||||
BIN
cde/doc/en_US.UTF-8/guides/progOview/graphics/ComboBo3.tif
Normal file
BIN
cde/doc/en_US.UTF-8/guides/progOview/graphics/ComboBo3.tif
Normal file
Binary file not shown.
BIN
cde/doc/en_US.UTF-8/guides/progOview/graphics/ComboBox.tif
Normal file
BIN
cde/doc/en_US.UTF-8/guides/progOview/graphics/ComboBox.tif
Normal file
Binary file not shown.
BIN
cde/doc/en_US.UTF-8/guides/progOview/graphics/MenuBut2.tif
Normal file
BIN
cde/doc/en_US.UTF-8/guides/progOview/graphics/MenuBut2.tif
Normal file
Binary file not shown.
BIN
cde/doc/en_US.UTF-8/guides/progOview/graphics/SpinBox.tif
Normal file
BIN
cde/doc/en_US.UTF-8/guides/progOview/graphics/SpinBox.tif
Normal file
Binary file not shown.
BIN
cde/doc/en_US.UTF-8/guides/progOview/graphics/fpanel.tif
Normal file
BIN
cde/doc/en_US.UTF-8/guides/progOview/graphics/fpanel.tif
Normal file
Binary file not shown.
BIN
cde/doc/en_US.UTF-8/guides/progOview/graphics/road1.cgm
Normal file
BIN
cde/doc/en_US.UTF-8/guides/progOview/graphics/road1.cgm
Normal file
Binary file not shown.
10
cde/doc/en_US.UTF-8/guides/progOview/part1.sgm
Normal file
10
cde/doc/en_US.UTF-8/guides/progOview/part1.sgm
Normal file
@@ -0,0 +1,10 @@
|
||||
<!-- $XConsortium: part1.sgm /main/1 1996/01/23 18:53:09 vobadm $ -->
|
||||
<!-- (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. -->
|
||||
<Title>Common Desktop Environment Architectural Overview</Title>
|
||||
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 04:30:53-->
|
||||
10
cde/doc/en_US.UTF-8/guides/progOview/part2.sgm
Normal file
10
cde/doc/en_US.UTF-8/guides/progOview/part2.sgm
Normal file
@@ -0,0 +1,10 @@
|
||||
<!-- $XConsortium: part2.sgm /main/1 1996/01/23 18:53:36 vobadm $ -->
|
||||
<!-- (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. -->
|
||||
<Title>Development Environment Overview</Title>
|
||||
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 04:30:53-->
|
||||
385
cde/doc/en_US.UTF-8/guides/progOview/preface.sgm
Normal file
385
cde/doc/en_US.UTF-8/guides/progOview/preface.sgm
Normal file
@@ -0,0 +1,385 @@
|
||||
<!-- $XConsortium: preface.sgm /main/8 1996/09/08 19:47:18 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. -->
|
||||
|
||||
<preface id="RDMAP.pref.div.1">
|
||||
<title id="RDMAP.pref.mkr.1">Preface</title>
|
||||
<para>The <emphasis>Common Desktop Environment: Programmer's Overview</emphasis>
|
||||
provides a high-level view of the Common Desktop Environment development
|
||||
environment and the developer documentation set. Read this book first before
|
||||
starting application design and development.</para>
|
||||
<note>
|
||||
<para>In this manual, the terms <emphasis>(the) Common Desktop Environment</emphasis> and <emphasis>the</emphasis> <emphasis><indexterm><primary>desktop</primary><secondary>Common Desktop Environment</secondary></indexterm>desktop</emphasis> are used interchangeably.</para>
|
||||
</note>
|
||||
<para>Outside of the Preface, this manual omits the <emphasis>Common Desktop
|
||||
Environment</emphasis> prefix when referring to a Common Desktop Environment
|
||||
development or run-time environment manual. For example, the <emphasis>Common
|
||||
Desktop Environment: Programmer's Overview</emphasis> is referred to as the <emphasis>Programmer's Overview</emphasis>.</para>
|
||||
<sect1 id="RDMAP.pref.div.2">
|
||||
<title>Who Should Use This Book</title>
|
||||
<para>Read the <emphasis>Programmer's Overview</emphasis> if you are:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>An application developer who
|
||||
wants to develop a new Common Desktop Environment application, or integrate
|
||||
an existing<indexterm><primary>Motif</primary></indexterm> Motif<superscript>
|
||||
®</superscript> or<indexterm><primary>OPEN LOOK</primary></indexterm> OPEN
|
||||
LOOK<superscript>®</superscript> application into the desktop</para>
|
||||
</listitem><listitem><para>A manager, architect, or project lead interested
|
||||
in designing a project involving applications that will run on the Common
|
||||
Desktop Environment desktop</para>
|
||||
</listitem></itemizedlist>
|
||||
<para>For the remainder of this manual, Motif is referred to as Motif®.
|
||||
</para>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.pref.div.3">
|
||||
<title>How This Book Is Organized</title>
|
||||
<para>The Programmer's Overview is divided into two parts. Part I contains
|
||||
an architectural overview of the Common Desktop Environment, including high-
|
||||
level information on both the run-time and development environments. Part
|
||||
II contains information useful to know before developing an application,
|
||||
and describes the development environment components.</para>
|
||||
<para>This section provides brief descriptions of the chapters and appendixes
|
||||
contained in this manual.</para>
|
||||
<para><!--Original XRef content: 'Chapter 1, &xd2;Architectural Overview'--><xref
|
||||
role="ChapNumAndTitleLead-in" linkend="RDMAP.archo.mkr.1"><emphasis role="Lead-in">,</emphasis> presents an overview of the Common Desktop Environment
|
||||
architecture.</para>
|
||||
<para><!--Original XRef content: 'Chapter 2, &xd2;Development Environment
|
||||
Considerations'--><xref role="ChapNumAndTitleLead-in" linkend="RDMAP.consi.mkr.1"><emphasis
|
||||
role="Lead-in">,</emphasis> discusses information you should know
|
||||
about the environment before you start to develop an application.</para>
|
||||
<para><!--Original XRef content: 'Chapter 3, &xd2;Developing an Application'--><xref
|
||||
role="ChapNumAndTitleLead-in" linkend="RDMAP.devap.mkr.1"><emphasis role="Lead-in">,</emphasis> presents information specific to developing a Common
|
||||
Desktop Environment application, such as naming conventions and guidelines
|
||||
to follow.</para>
|
||||
<para><!--Original XRef content: 'Chapter 4, &xd2;Portability and Maintenance'--><xref
|
||||
role="ChapNumAndTitleLead-in" linkend="RDMAP.port.mkr.1"><emphasis role="Lead-in">,</emphasis> discusses issues pertaining to writing portable and
|
||||
maintainable applications.</para>
|
||||
<para><!--Original XRef content: 'Chapter 5, &xd2;Basic Application
|
||||
Integration'--><xref role="ChapNumAndTitleLead-in" linkend="RDMAP.BIntg.mkr.1"><emphasis
|
||||
role="Lead-in">,</emphasis> summarizes how to make your application
|
||||
launch-integrated (that is, started by double-clicking an icon on the desktop).
|
||||
</para>
|
||||
<para><!--Original XRef content: 'Chapter 6, &xd2;Recommended Integration'--><xref
|
||||
role="ChapNumAndTitleLead-in" linkend="RDMAP.recin.mkr.1"><emphasis role="Lead-in">,</emphasis> provides overviews of all components and guidelines
|
||||
that you should use so your application has the same look and feel as, and
|
||||
interoperates well with, other Common Desktop Environment desktop applications.
|
||||
</para>
|
||||
<para><!--Original XRef content: 'Chapter 7, &xd2;Optional Integration'--><xref
|
||||
role="ChapNumAndTitleLead-in" linkend="RDMAP.optin.mkr.1"><emphasis role="Lead-in">,</emphasis> provides overviews of the components to incorporate
|
||||
into your application as needed for added functionality.</para>
|
||||
<para><!--Original XRef content: 'Appendix A, &xd2;Component and Guideline
|
||||
Reference'--><xref role="AppendixNumAndTitleLead-in" linkend="RDMAP.compr.mkr.1"><emphasis
|
||||
role="Lead-in">,</emphasis> lists in alphabetical order all development
|
||||
environment components and guidelines, with associated library, header files,
|
||||
and documentation.</para>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.pref.div.4">
|
||||
<title id="RDMAP.pref.mkr.2">Related Books</title>
|
||||
<para>For information on<indexterm><primary>Motif</primary><secondary>related
|
||||
documentation</secondary></indexterm> Motif, see:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para><emphasis>Motif Programmer's
|
||||
Guide</emphasis>, Release 1.2, by Open Software Foundation, 11 Cambridge
|
||||
Center, Cambridge, MA 02142, published by PTR Prentice Hall, Englewood Cliffs,
|
||||
NJ 07632</para>
|
||||
</listitem><listitem><para><emphasis>Motif Programmer's Reference</emphasis>,
|
||||
Release 1.2, by Open Software Foundation, 11 Cambridge Center, Cambridge,
|
||||
MA 02142, published by PTR Prentice Hall, Englewood Cliffs, NJ 07632</para>
|
||||
</listitem><listitem><para><emphasis>Motif Reference Guide</emphasis>,
|
||||
by Douglas A. Young, published by PTR Prentice Hall, Englewood Cliffs, NJ
|
||||
07632</para>
|
||||
</listitem><listitem><para><emphasis>Motif 1.2 Style Guide</emphasis>,
|
||||
by Open Software Foundation, 11 Cambridge Center, Cambridge, MA 02142, published
|
||||
by PTR Prentice Hall, Englewood Cliffs, NJ 07632</para>
|
||||
</listitem></itemizedlist>
|
||||
<note>
|
||||
<para>The <emphasis>Common Desktop Environment: Style Guide and Certification
|
||||
Checklist</emphasis> is an extension of the <emphasis>Motif 1.2 Style
|
||||
Guide</emphasis> to the Common Desktop Environment.</para>
|
||||
</note>
|
||||
<itemizedlist remap="Bullet1"><listitem><para><emphasis>OSF Application Environment
|
||||
Specification (AES) User Environment Volume</emphasis>, Revision C, by Open
|
||||
Software Foundation, 11 Cambridge Center, Cambridge, MA 02142, published
|
||||
by PTR Prentice Hall, Englewood Cliffs, NJ 07632</para>
|
||||
</listitem></itemizedlist>
|
||||
<para>Motif 1.2 IEEE Std 1295 standard, which you can order from: IEEE Service
|
||||
Center, 445 Hoes Lane, P.O. Box 1331, Piscataway, NJ 08855</para>
|
||||
<para>For information on POSIX<indexterm><primary>POSIX</primary></indexterm>,
|
||||
see the IEEE Std 1003.1-1990 standard, which you can order from: IEEE Service
|
||||
Center, 445 Hoes Lane, P.O. Box 1331, Piscataway, NJ 08855</para>
|
||||
<para>For information on<indexterm><primary>Xlib documentation</primary>
|
||||
</indexterm> Xlib, see:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para><emphasis>Xlib Programming Manual</emphasis> <emphasis>for Version 11 (Volume 1) by Adrian Nye, published
|
||||
by O'Reilly & Associates, Sebastopol, CA, 95472</emphasis></para>
|
||||
</listitem><listitem><para><emphasis>Xlib Reference Manual</emphasis> <emphasis>for Version 11 (Volume 2), published by O'Reilly & Associates, Sebastopol,
|
||||
CA, 95472</emphasis></para>
|
||||
</listitem></itemizedlist>
|
||||
<para>For information on<indexterm><primary>Xt documentation</primary></indexterm> Xt,
|
||||
see:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para><emphasis>X Toolkit Intrinsics
|
||||
Programming Manual</emphasis>, (Volume 4) by Adrian Nye and Tim O'Reilly,
|
||||
published by O'Reilly and Associates, Sebastopol, CA 95472.</para>
|
||||
</listitem><listitem><para><emphasis>X Toolkit Intrinsics Reference Manual,</emphasis> (Volume 5) edited by Tim O'Reilly, published by O'Reilly and
|
||||
Associates, Sebastopol, CA 95472.</para>
|
||||
</listitem></itemizedlist>
|
||||
<para>For more information on<indexterm><primary>ToolTalk documentation</primary></indexterm> ToolTalk®, see:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para><emphasis>The ToolTalk Service:
|
||||
An Inter-Operability Solution</emphasis>, published by SunSoft Press and
|
||||
PTR Prentice Hall, Englewood Cliffs, NJ 07632, ISBN 0-13-088717-X</para>
|
||||
</listitem><listitem><para><emphasis>ToolTalk and Open Protocols: Inter-Application
|
||||
Communication</emphasis>, by Astrid Julienne and Brian Holtz, published by
|
||||
SunSoft Press and PTR Prentice Hall, Englewood Cliffs, NJ 07632, ISBN 013-031055-7
|
||||
</para>
|
||||
</listitem></itemizedlist>
|
||||
<para>In addition to the <emphasis>Programmer's Overview</emphasis>, the<indexterm>
|
||||
<primary>documentation set</primary><secondary>development environment</secondary>
|
||||
</indexterm> development environment documentation set consists of:</para>
|
||||
<itemizedlist remap="Bullet1">
|
||||
<listitem><para><emphasis>Common Desktop Environment:
|
||||
Style Guide and Certification Checklist</emphasis></para>
|
||||
</listitem>
|
||||
<listitem><para><emphasis>Common Desktop Environment: Application
|
||||
Builder User's Guide</emphasis></para>
|
||||
</listitem>
|
||||
<listitem><para><emphasis>Common Desktop Environment: Programmer's
|
||||
Guide</emphasis></para>
|
||||
</listitem>
|
||||
<listitem><para><emphasis>Common Desktop Environment: Help System
|
||||
Author's and Programmer's Guide</emphasis></para>
|
||||
</listitem>
|
||||
<listitem><para><emphasis>Common Desktop Environment: ToolTalk
|
||||
Messaging Overview</emphasis></para>
|
||||
</listitem>
|
||||
<listitem><para><emphasis>Common Desktop Environment: Internationalization
|
||||
Programmer's Guide</emphasis></para>
|
||||
</listitem>
|
||||
<listitem><para><emphasis>Common Desktop Environment: Desktop KornShell
|
||||
User's Guide</emphasis></para>
|
||||
</listitem>
|
||||
<listitem><para><citetitle>Common Desktop Environment: Information
|
||||
System Author's and Programmer's Guide</citetitle></para></listitem>
|
||||
<listitem><para><emphasis>Common Desktop Environment</emphasis>:
|
||||
Glossary</para>
|
||||
</listitem><listitem><para>Online man pages</para>
|
||||
</listitem></itemizedlist>
|
||||
<para>For more information on these development environment books, see the
|
||||
following section, <!--Original XRef content: '&xd2;Development Environment
|
||||
Documentation'--><xref role="SectionTitle" linkend="RDMAP.pref.mkr.3">.
|
||||
</para>
|
||||
<para>The run-time environment documentation set consists of:<indexterm>
|
||||
<primary>documentation set</primary><secondary>run-time</secondary></indexterm><indexterm>
|
||||
<primary>run-time</primary><secondary>documentation set</secondary></indexterm></para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para><emphasis>Common Desktop Environment:
|
||||
User's Guide</emphasis></para>
|
||||
</listitem><listitem><para><emphasis>Common Desktop Environment: Advanced
|
||||
User's and System Administrator's Guide</emphasis></para>
|
||||
</listitem><listitem><para>Online help volumes</para>
|
||||
</listitem></itemizedlist>
|
||||
<note>
|
||||
<para>The <emphasis>Advanced User's and System Administrator's Guide</emphasis>
|
||||
contains information to help you integrate an application into the desktop.
|
||||
</para>
|
||||
</note>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.pref.div.5">
|
||||
<title id="RDMAP.pref.mkr.3">Development Environment Documentation</title>
|
||||
<para>This section provides an overview of each manual—except for the
|
||||
<emphasis>Programmer's Overview</emphasis>—in the developer documentation
|
||||
set.</para>
|
||||
<sect2 id="RDMAP.pref.div.6">
|
||||
<title>Common Desktop Environment: Style Guide and Certification Checklist</title>
|
||||
<para>The <emphasis>Common Desktop Environment: Style Guide and Certification
|
||||
Checklist</emphasis> provides application design style guidelines and the
|
||||
list of requirements for Common Desktop Environment application-level certification.
|
||||
These requirements consist of the Motif requirements with Common Desktop
|
||||
Environment-specific additions.</para>
|
||||
<para>The checklist describes keys using a model keyboard mechanism. It assumes
|
||||
that your application is being designed for a left-to-right language environment
|
||||
in an English-language locale. Wherever keyboard input is specified, the
|
||||
keys are indicated by the engravings on the Motif model keyboard. Mouse buttons
|
||||
are described using a virtual button mechanism to better describe behavior
|
||||
independent from the number of buttons on the mouse.</para>
|
||||
<para>This book provides information to assist the application designer in
|
||||
developing consistent applications and behaviors within the applications.
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.pref.div.7">
|
||||
<title>Common Desktop Environment: Application Builder User's Guide</title>
|
||||
<para>The Common Desktop Environment Application Builder (also called App
|
||||
Builder) is an interactive tool for developing Common Desktop Environment
|
||||
applications. It provides features that facilitate both the construction
|
||||
of an application graphical user interface (GUI) and the incorporation of
|
||||
the desktop's many useful desktop services (such as Help, ToolTalk, Drag
|
||||
and Drop). The <emphasis>Common Desktop Environment: Application Builder
|
||||
User's Guide</emphasis> explains how to create an interface by dragging and
|
||||
dropping “objects” from a palette. It also explains how to
|
||||
make connections between objects in the interface, how to use the application
|
||||
framework editor to easily integrate desktop services, how to generate C
|
||||
code, and how to add application code to the App Builder output to produce
|
||||
a finished application.</para>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.pref.div.8">
|
||||
<title>Common Desktop Environment: Programmer's Guide</title>
|
||||
<para>The <emphasis>Common Desktop Environment: Programmer's Guide</emphasis>
|
||||
has two parts. Each part provides a detailed description of elements of the
|
||||
Common Desktop Environment, a conceptual diagram, and a task-oriented description
|
||||
of how to use each element, complete with code examples.</para>
|
||||
<para>Part I, “Recommended Integration,” provides an overview
|
||||
of basic integration, and describes how to integrate new applications with
|
||||
the Session Manager, fonts, and drag and drop. It also discusses displaying
|
||||
error messages.</para>
|
||||
<para>Part II, “Optional Integration,” describes how to integrate
|
||||
new applications with the Workspace Manager, Common Desktop Environment Motif
|
||||
widgets, actions, data types, and Calendar.</para>
|
||||
<para>The <emphasis>Programmer's Guide</emphasis> provides an introduction
|
||||
to the application program interfaces (APIs) for the components referred
|
||||
to in the descriptions of Parts I and II above, with cross-references to
|
||||
the relevant man pages. Details are covered in the man pages.</para>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.pref.div.9">
|
||||
<title>Common Desktop Environment: Help System Author's and Programmer's
|
||||
Guide</title>
|
||||
<para>The <emphasis>Common Desktop Environment: Help System Author's and Programmer's
|
||||
Guide</emphasis> describes how to develop online help for application software.
|
||||
It covers how to create help topics and how to integrate online help into
|
||||
a Motif application.</para>
|
||||
<para>The audience for this book includes:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>Authors who design, create,
|
||||
and view online help information</para>
|
||||
</listitem><listitem><para>Developers who want to create software applications
|
||||
that provide a fully integrated help facility</para>
|
||||
</listitem></itemizedlist>
|
||||
<para>This book has four parts. Part I describes the collaborative role that
|
||||
authors and developers undertake to design application help. Part II provides
|
||||
information for authors organizing and writing online help. Part III describes
|
||||
the Help System application programmer's toolkit. Part IV contains information
|
||||
for both authors and programmers about preparing online help for different
|
||||
language environments.</para>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.pref.div.10">
|
||||
<title>Common Desktop Environment: ToolTalk Messaging Overview</title>
|
||||
<para>The <emphasis>Common Desktop Environment: ToolTalk Messaging Overview</emphasis> describes the ToolTalk components, commands, and error messages
|
||||
offered as convenience routines to enable your application to conform to
|
||||
Media Exchange and Desktop Services message set conventions. This manual
|
||||
is for developers who create or maintain applications that use the ToolTalk
|
||||
service to interoperate with other applications.</para>
|
||||
<para>The <emphasis>ToolTalk Messaging Overview</emphasis> does <symbol role="Variable">not</symbol> describe general ToolTalk functionality. For detailed information
|
||||
about the ToolTalk service, refer to <emphasis>The ToolTalk Service: An Inter-Operability
|
||||
Solution</emphasis>. For tips and techniques to help make using ToolTalk
|
||||
easier, read <emphasis>ToolTalk and Open Protocols: Inter-Application Communication</emphasis>. Both of these books are listed in <!--Original XRef content:
|
||||
'&xd2;Related Books&xd3; on page xv'--><xref role="SecTitleAndPageNum"
|
||||
linkend="RDMAP.pref.mkr.2">.</para>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.pref.div.11">
|
||||
<title>Common Desktop Environment: Internationalization Programmer's Guide</title>
|
||||
<para>The <emphasis>Common Desktop Environment: Internationalization Programmer's
|
||||
Guide</emphasis> provides information for internationalizing an application
|
||||
so that it can be easily localized to support various languages and cultural
|
||||
conventions in a consistent user interface.</para>
|
||||
<para>Specifically, this guide:</para>
|
||||
<itemizedlist remap="Bullet1"><listitem><para>Provides guidelines and hints
|
||||
for developers on how to write applications for worldwide distribution</para>
|
||||
</listitem><listitem><para>Provides an overall view of internationalization
|
||||
topics that span different layers within the desktop</para>
|
||||
</listitem><listitem><para>Provides pointers to reference and more detailed
|
||||
documentation. In some cases, standard documentation is referenced.</para>
|
||||
</listitem></itemizedlist>
|
||||
<para>This guide is not intended to duplicate the existing reference or conceptual
|
||||
documentation, but rather to provide guidelines and conventions on specific
|
||||
internationalization topics. It focuses on internationalization topics and
|
||||
not on any specific component or layer in an open software environment.</para>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.pref.div.12">
|
||||
<title>Common Desktop Environment: Desktop KornShell User's Guide</title>
|
||||
<para>The <emphasis>Common Desktop Environment: Desktop KornShell User's Guide</emphasis> describes how to create Motif applications with Desktop KornShell
|
||||
(<command>dtksh</command>) scripts. It contains several example scripts of
|
||||
increasing complexity, in addition to the basic information a developer needs
|
||||
to get started.</para>
|
||||
<para>This guide is intended for developers who find a shell-style scripting
|
||||
environment suitable for a particular task. It assumes a knowledge of KornShell
|
||||
programming, Motif, the Xt Intrinsics, and, to a lesser extent, Xlib.</para>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.pref.div.12a">
|
||||
<title>Common Desktop Environment: Information System Author's
|
||||
and Programmer's Guide</title>
|
||||
<para>The <citetitle>Common Desktop Environment: Information System
|
||||
Author's and Programmer's Guide</citetitle> describes how to
|
||||
develop and integrate on-line documentation. This manual is addressed
|
||||
to two audiences: the documentation author, who
|
||||
develops the documentation content; and the programmer,
|
||||
who integrates the documentation with the CDE documentation
|
||||
browser, <command>dtinfo</command>.
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2 id="RDMAP.pref.div.13">
|
||||
<title>Common Desktop Environment: Glossary</title>
|
||||
<para>The <emphasis>Common Desktop Environment: Glossary</emphasis> provides
|
||||
a comprehensive list of terms used in the Common Desktop Environment. The
|
||||
Glossary is the source and reference base for all users of the desktop. Because
|
||||
the audience for this glossary consists of many different types of users—from
|
||||
end users to developers to translators—the format for a glossary definition
|
||||
may include information about the audience, where the term originated, and
|
||||
the Common Desktop Environment component that uses the term in its graphical
|
||||
user interface.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1 id="RDMAP.pref.div.14">
|
||||
<title>What DocBook SGML Markup Means</title>
|
||||
<para>This book is written in the Structured Generalized Markup
|
||||
Language (SGML) using the DocBook Document Type Definition (DTD).
|
||||
The following table describes the DocBook markup used for
|
||||
various semantic elements.
|
||||
</para>
|
||||
<table id="RDMAP.pref.tbl.1" frame="Topbot">
|
||||
<title>DocBook SGML Markup</title>
|
||||
<tgroup cols="3" colsep="0" rowsep="0">
|
||||
<colspec colwidth="1.65in">
|
||||
<colspec colwidth="2.63in">
|
||||
<colspec colwidth="2.92in">
|
||||
<thead>
|
||||
<row>
|
||||
<entry align="left" valign="bottom"><para><literal>Markup Appearance</literal></para></entry>
|
||||
<entry align="left" valign="bottom"><para><literal>Semantic Element(s)</literal></para></entry>
|
||||
<entry align="left" valign="bottom"><para><literal>Example</literal></para></entry></row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para><command>AaBbCc123</command></para></entry>
|
||||
<entry align="left" valign="top"><para>The names of commands.</para></entry>
|
||||
<entry align="left" valign="top"><para>Use the <command>ls</command> command to list files.</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para><literal>AaBbCc123</literal></para></entry>
|
||||
<entry align="left" valign="top"><para>The names of command options.</para></entry>
|
||||
<entry align="left" valign="top"><para>Use <command>ls</command> <literal>−a</literal>
|
||||
to list all files.</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para><symbol role="Variable">AaBbCc123</symbol></para></entry>
|
||||
<entry align="left" valign="top"><para>Command-line placeholder:
|
||||
replace with a real name or value.</para></entry>
|
||||
<entry align="left" valign="top"><para>To delete a file, type <command>rm</command> <symbol role="Variable">filename</symbol>.</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para><filename>AaBbCc123</filename></para></entry>
|
||||
<entry align="left" valign="top"><para>The names of files and
|
||||
directories.</para></entry>
|
||||
<entry align="left" valign="top"><para>Edit your <filename>.login</filename>
|
||||
file.</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="left" valign="top"><para><emphasis>AaBbCc123</emphasis></para></entry>
|
||||
<entry align="left" valign="top"><para>Book titles, new words or terms, or
|
||||
words to be emphasized.</para></entry>
|
||||
<entry align="left" valign="top"><para>Read Chapter 6 in <emphasis>User's
|
||||
Guide</emphasis>.
|
||||
These are called <emphasis>class</emphasis> options.
|
||||
You <emphasis>must</emphasis> be root to do this.</para></entry>
|
||||
</row></tbody></tgroup></table>
|
||||
</sect1>
|
||||
</preface>
|
||||
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 04:30:53-->
|
||||
<?Pub *0000023399>
|
||||
Reference in New Issue
Block a user