620 lines
37 KiB
Plaintext
620 lines
37 KiB
Plaintext
<!-- $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>
|