Initial import of the CDE 2.1.30 sources from the Open Group.

This commit is contained in:
Peter Howkins
2012-03-10 18:21:40 +00:00
commit 83b6996daa
18978 changed files with 3945623 additions and 0 deletions

View File

@@ -0,0 +1,97 @@
<!-- $XConsortium: BEntity.sgm /main/5 1996/06/19 16:02:49 drk $ -->
<!ENTITY ABUG.intro.fig.1 SYSTEM "./builderGuide/graphics/MainWin.tif" NDATA TIFF>
<!ENTITY ABUG.intro.fig.2 SYSTEM "./builderGuide/graphics/DtIcon.tif" NDATA TIFF>
<!ENTITY ABUG.proj.fig.1 SYSTEM "./builderGuide/graphics/NameProj.tif" NDATA TIFF>
<!ENTITY ABUG.proj.fig.2 SYSTEM "./builderGuide/graphics/ProjOrg.tif" NDATA TIFF>
<!ENTITY ABUG.proj.fig.3 SYSTEM "./builderGuide/graphics/NameMod.tif" NDATA TIFF>
<!ENTITY ABUG.proj.fig.4 SYSTEM "./builderGuide/graphics/PrjOModA.tif" NDATA TIFF>
<!ENTITY ABUG.proj.fig.5 SYSTEM "./builderGuide/graphics/PrjOModA.tif" NDATA TIFF>
<!ENTITY ABUG.layo.fig.1 SYSTEM "./builderGuide/graphics/MWwCP.tif" NDATA TIFF>
<!ENTITY ABUG.layo.fig.2 SYSTEM "./builderGuide/graphics/MWwSpanP.tif" NDATA TIFF>
<!ENTITY ABUG.layo.fig.3 SYSTEM "./builderGuide/graphics/AlignMen.tif" NDATA TIFF>
<!ENTITY ABUG.layo.fig.4 SYSTEM "./builderGuide/graphics/DistMenu.tif" NDATA TIFF>
<!ENTITY ABUG.edprp.fig.1 SYSTEM "./builderGuide/graphics/ColChoos.tif" NDATA TIFF>
<!ENTITY ABUG.crobj.fig.1 SYSTEM "./builderGuide/graphics/PanedWin.tif" NDATA TIFF>
<!ENTITY ABUG.crobj.fig.2 SYSTEM "./builderGuide/graphics/MenuChoi.tif" NDATA TIFF>
<!ENTITY ABUG.crobj.fig.3 SYSTEM "./builderGuide/graphics/ItemsSub.tif" NDATA TIFF>
<!ENTITY ABUG.crobj.fig.4 SYSTEM "./builderGuide/graphics/MsgEdit.tif" NDATA TIFF>
<!ENTITY ABUG.afunc.fig.1 SYSTEM "./builderGuide/graphics/HelpEdit.tif" NDATA TIFF>
<!ENTITY ABUG.afunc.fig.2 SYSTEM "./builderGuide/graphics/ConnEd.tif" NDATA TIFF>
<!ENTITY ABUG.afunc.fig.3 SYSTEM "./builderGuide/graphics/DnDEdit.tif" NDATA TIFF>
<!ENTITY ABUG.afunc.fig.4 SYSTEM "./builderGuide/graphics/AppFrmEd.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.1 SYSTEM "./builderGuide/graphics/AttachEd.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.2 SYSTEM "./builderGuide/graphics/AttIcTp1.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.3 SYSTEM "./builderGuide/graphics/AttIcTp2.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.4 SYSTEM "./builderGuide/graphics/AttIcTp3.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.5 SYSTEM "./builderGuide/graphics/AttIcTp4.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.6 SYSTEM "./builderGuide/graphics/AttIcTp5.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.7 SYSTEM "./builderGuide/graphics/AttIcTp6.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.8 SYSTEM "./builderGuide/graphics/AttIcTp7.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.9 SYSTEM "./builderGuide/graphics/AttIcSi1.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.10 SYSTEM "./builderGuide/graphics/AttIcSi2.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.11 SYSTEM "./builderGuide/graphics/AttIcSi3.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.12 SYSTEM "./builderGuide/graphics/AttIcSi4.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.13 SYSTEM "./builderGuide/graphics/AttIcS5.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.14 SYSTEM "./builderGuide/graphics/AttIcSi6.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.1 SYSTEM "./builderGuide/graphics/MainWin.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.2 SYSTEM "./builderGuide/graphics/MainWIcO.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.3 SYSTEM "./builderGuide/graphics/CustDIcO.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.4 SYSTEM "./builderGuide/graphics/FSDIcO.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.5 SYSTEM "./builderGuide/graphics/CtrlPIcO.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.6 SYSTEM "./builderGuide/graphics/TextPIcO.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.7 SYSTEM "./builderGuide/graphics/DrawAIcO.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.8 SYSTEM "./builderGuide/graphics/TermPIcO.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.9 SYSTEM "./builderGuide/graphics/ProjOrg.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.10 SYSTEM "./builderGuide/graphics/BrowsMW.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.11 SYSTEM "./builderGuide/graphics/CodeGen.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.12 SYSTEM "./builderGuide/graphics/CGOption.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.13 SYSTEM "./builderGuide/graphics/CGEnvOpt.tif" NDATA TIFF>
<!ENTITY ABUG.apRPE.fig.1 SYSTEM "./builderGuide/graphics/PrpEdSep.tif" NDATA TIFF>

View File

@@ -0,0 +1,3 @@
/* $XConsortium: Title.tmpl /main/2 1996/06/19 16:02:53 drk $ */
/* TOC title, only what's between quotes should be modified. */
title = "Application Builder User's Guide"

View File

@@ -0,0 +1,147 @@
<!-- $XConsortium: adbook.sgm /main/7 1996/07/13 15:44:18 rws $ -->
<!DOCTYPE DocBook PUBLIC "-//HaL and O'Reilly//DTD DocBook V2.2.1//EN" [
<!ENTITY ABUG.intro.fig.1 SYSTEM "./graphics/MainWin.tif" NDATA TIFF>
<!ENTITY ABUG.intro.fig.2 SYSTEM "./graphics/DtIcon.tif" NDATA TIFF>
<!ENTITY ABUG.proj.fig.1 SYSTEM "./graphics/NameProj.tif" NDATA TIFF>
<!ENTITY ABUG.proj.fig.2 SYSTEM "./graphics/ProjOrg.tif" NDATA TIFF>
<!ENTITY ABUG.proj.fig.3 SYSTEM "./graphics/NameMod.tif" NDATA TIFF>
<!ENTITY ABUG.proj.fig.4 SYSTEM "./graphics/PrjOModA.tif" NDATA TIFF>
<!ENTITY ABUG.proj.fig.5 SYSTEM "./graphics/PrjOModA.tif" NDATA TIFF>
<!ENTITY ABUG.layo.fig.1 SYSTEM "./graphics/MWwCP.tif" NDATA TIFF>
<!ENTITY ABUG.layo.fig.2 SYSTEM "./graphics/MWwSpanP.tif" NDATA TIFF>
<!ENTITY ABUG.layo.fig.3 SYSTEM "./graphics/AlignMen.tif" NDATA TIFF>
<!ENTITY ABUG.layo.fig.4 SYSTEM "./graphics/DistMenu.tif" NDATA TIFF>
<!ENTITY ABUG.edprp.fig.1 SYSTEM "./graphics/ColChoos.tif" NDATA TIFF>
<!ENTITY ABUG.crobj.fig.1 SYSTEM "./graphics/PanedWin.tif" NDATA TIFF>
<!ENTITY ABUG.crobj.fig.2 SYSTEM "./graphics/MenuChoi.tif" NDATA TIFF>
<!ENTITY ABUG.crobj.fig.3 SYSTEM "./graphics/ItemsSub.tif" NDATA TIFF>
<!ENTITY ABUG.crobj.fig.4 SYSTEM "./graphics/MsgEdit.tif" NDATA TIFF>
<!ENTITY ABUG.afunc.fig.1 SYSTEM "./graphics/HelpEdit.tif" NDATA TIFF>
<!ENTITY ABUG.afunc.fig.2 SYSTEM "./graphics/ConnEd.tif" NDATA TIFF>
<!ENTITY ABUG.afunc.fig.3 SYSTEM "./graphics/DnDEdit.tif" NDATA TIFF>
<!ENTITY ABUG.afunc.fig.4 SYSTEM "./graphics/AppFrmEd.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.1 SYSTEM "./graphics/AttachEd.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.2 SYSTEM "./graphics/AttIcTp1.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.3 SYSTEM "./graphics/AttIcTp2.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.4 SYSTEM "./graphics/AttIcTp3.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.5 SYSTEM "./graphics/AttIcTp4.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.6 SYSTEM "./graphics/AttIcTp5.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.7 SYSTEM "./graphics/AttIcTp6.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.8 SYSTEM "./graphics/AttIcTp7.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.9 SYSTEM "./graphics/AttIcSi1.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.10 SYSTEM "./graphics/AttIcSi2.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.11 SYSTEM "./graphics/AttIcSi3.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.12 SYSTEM "./graphics/AttIcSi4.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.13 SYSTEM "./graphics/AttIcS5.tif" NDATA TIFF>
<!ENTITY ABUG.group.fig.14 SYSTEM "./graphics/AttIcSi6.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.1 SYSTEM "./graphics/MainWin.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.2 SYSTEM "./graphics/MainWIcO.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.3 SYSTEM "./graphics/CustDIcO.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.4 SYSTEM "./graphics/FSDIcO.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.5 SYSTEM "./graphics/CtrlPIcO.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.6 SYSTEM "./graphics/TextPIcO.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.7 SYSTEM "./graphics/DrawAIcO.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.8 SYSTEM "./graphics/TermPIcO.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.9 SYSTEM "./graphics/ProjOrg.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.10 SYSTEM "./graphics/BrowsMW.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.11 SYSTEM "./graphics/CodeGen.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.12 SYSTEM "./graphics/CGOption.tif" NDATA TIFF>
<!ENTITY ABUG.apWDB.fig.13 SYSTEM "./graphics/CGEnvOpt.tif" NDATA TIFF>
<!ENTITY ABUG.apRPE.fig.1 SYSTEM "./graphics/PrpEdSep.tif" NDATA TIFF>
<!ENTITY % local.notations "| XPM | XBM | XWD">
<!NOTATION XPM SYSTEM "XPM">
<!NOTATION XBM SYSTEM "XBM">
<!NOTATION XWD SYSTEM "XWD">
<!ENTITY pref SYSTEM "./preface.sgm">
<!ENTITY intro SYSTEM "./ch01.sgm">
<!ENTITY proj SYSTEM "./ch02.sgm">
<!ENTITY layo SYSTEM "./ch03.sgm">
<!ENTITY edprp SYSTEM "./ch04.sgm">
<!ENTITY crobj SYSTEM "./ch05.sgm">
<!ENTITY afunc SYSTEM "./ch06.sgm">
<!ENTITY group SYSTEM "./ch07.sgm">
<!ENTITY test SYSTEM "./ch08.sgm">
<!ENTITY codeg SYSTEM "./ch09.sgm">
<!ENTITY apWDB SYSTEM "./appa.sgm">
<!ENTITY apRPE SYSTEM "./appb.sgm">
]>
<!-- ____________________________________________________________________________ -->
<DocBook>
<Book>
<Title>Common Desktop Environment: Application Builder User's Guide</Title>
&pref;
&intro;
&proj;
&layo;
&edprp;
&crobj;
&afunc;
&group;
&test;
&codeg;
&apWDB;
&apRPE;
</Book>
</DocBook>

View File

@@ -0,0 +1,661 @@
<!-- $XConsortium: appa.sgm /main/10 1996/10/22 12:19:44 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="ABUG.apWDB.div.1">
<title id="ABUG.apWDB.mkr.1">App Builder Windows and Dialog Boxes</title>
<para>This appendix describes the major windows and dialog boxes in App Builder,
including illustrations of the windows and dialog boxes and descriptions
of the window and dialog box elements</para>
<informaltable id="ABUG.apWDB.itbl.1" frame="All">
<tgroup cols="1">
<colspec colname="1" colwidth="4.0 in">
<tbody>
<row rowsep="1">
<entry><para><!--Original XRef content: 'App Builder Primary Window116'--><xref
role="JumpText" linkend="ABUG.apWDB.mkr.2"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'Windows Palette118'--><xref role="JumpText"
linkend="ABUG.apWDB.mkr.3"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'Panes Palette121'--><xref role="JumpText"
linkend="ABUG.apWDB.mkr.4"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'Controls Palette124'--><xref role="JumpText"
linkend="ABUG.apWDB.mkr.5"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'Project Organizer127'--><xref role="JumpText"
linkend="ABUG.apWDB.mkr.7"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'Module Browser128'--><xref role="JumpText"
linkend="ABUG.apWDB.mkr.8"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'Code Generator Window130'--><xref
role="JumpText" linkend="ABUG.apWDB.mkr.9"></para></entry></row></tbody></tgroup>
</informaltable>
<sect1 id="ABUG.apWDB.div.2">
<title id="ABUG.apWDB.mkr.2">App Builder Primary Window</title>
<!-- REVIEWERS - Following figure will be updated to include callouts -
same as in CDE1. -->
<graphic id="ABUG.apWDB.igrph.1" entityref="ABUG.apWDB.fig.1"></graphic>
<para><indexterm><primary>App Builder</primary><secondary>primary window</secondary>
</indexterm>The App Builder primary window is the starting point for building
a graphical user interface. The interface is created by dragging objects
from the App Builder object palettes (Windows, Panes, and Controls) to the
workspace, editing the properties of the resultant interface objects, and
adjusting the layout of the interface. See <!--Original XRef content: '&xd2;Overview
of the App Builder Process'--><xref role="SectionTitle" linkend="ABUG.intro.mkr.4">
in <!--Original XRef content: 'Chapter&numsp;1, &xd2;Getting Started'--><xref
role="ChapNumAndTitle" linkend="ABUG.intro.mkr.1">, for a summary
of the steps involved in creating an interface.</para>
<informaltable>
<tgroup cols="2" colsep="0" rowsep="0">
<colspec align="left" colwidth="100*">
<colspec align="left" colwidth="356*">
<tbody>
<row>
<entry><para>Title bar</para></entry>
<entry><para>Includes the name of the application, &ldquo;Application Builder,&rdquo;
the window manager menu, a minimize button, a maximize button, the name of
the current project (if one is open), and a &ldquo;(Save Needed)&ldquo;
indication if the current project has changed since being saved.<indexterm><primary>title bar</primary></indexterm>
</para></entry>
</row>
<row>
<entry><para>Mode bar</para></entry>
<entry><para>Includes Build, Test Shown Modules, and Test Project radio buttons
for specifying build and test modes.
<?Pub _newline>Build is for designing and building an interface.
<?Pub _newline>Test Shown Modules is for testing help, menus, and connections
in current, shown modules. All window objects will be shown, including those
for which the initial state is not set to Visible.
<?Pub _newline>Test Project is for testing help, menus, and connections in
the current project. Objects for which the initial state is not set to Visible
will not be shown.</para></entry></row>
<row>
<entry><para>Windows palette</para></entry>
<entry><para>Includes the three App Builder window objects: main window,
custom dialog, and file selection dialog. Window objects are dropped on the
workspace. See <!--Original XRef content: '&xd2;Windows Palette'--><xref
role="SectionTitle" linkend="abug.apwdb.mkr.3"> below for details.
</para></entry></row>
<row>
<entry><para>Panes palette</para></entry>
<entry><para>Includes the four App Builder pane objects: control pane, text
pane, draw area pane, and term pane. Pane objects are dropped on main windows,
custom dialogs, or other panes. See
<!--Original XRef content: '&xd2;Panes
Palette&xd3; on page&numsp;121'--><xref role="SecTitleAndPageNum" linkend="abug.apwdb.mkr.4">
for details.</para></entry></row>
<row>
<entry><para>Controls palette</para></entry>
<entry><para>Includes 14 App Builder control objects: button, menu button,
combo box, option menu, menu bar, radio box, check box, gauge, scale, separator,
text field, label, list, and spin box. Control objects are dropped on control
panes. See <!--Original XRef content: '&xd2;Controls Palette&xd3; on page&numsp;124'--><xref
role="SecTitleAndPageNum" linkend="abug.apwdb.mkr.5"> for details.</para></entry>
</row>
<row>
<entry><para>Object information area</para></entry>
<entry><para>Provides information about the object beneath the cursor. See
<!--Original XRef content: '&xd2;Object Information Area&xd3; on page&nums--><!--p;126'--><xref
role="SecTitleAndPageNum" linkend="abug.apwdb.mkr.6"> for details.</para></entry>
</row></tbody></tgroup></informaltable>
<sect2 id="ABUG.apWDB.div.3">
<title id="ABUG.apWDB.mkr.3">Windows Palette<indexterm><primary>Windows palette</primary></indexterm><indexterm><primary>palette</primary><secondary>Windows</secondary></indexterm></title>
<para>The Windows palette contains three objects: main window, custom dialog,
and file selection dialog.</para>
<sect3 id="ABUG.apWDB.div.4">
<title>Main Window</title>
<graphic id="ABUG.apWDB.igrph.2" entityref="ABUG.apWDB.fig.2"></graphic>
<para>A <emphasis>main window</emphasis> is the basic App Builder object.
It is created by dropping a main window icon on the workspace. The starting
point for a user interface is built in a main window. A main window has
a minimize button and therefore can be iconified.<indexterm><primary>main window</primary><secondary>definition of</secondary></indexterm><indexterm><primary>windows</primary><secondary>main</secondary></indexterm>
</para>
<para>The status region includes the name of the module the window is part
of and indicates when the window object is selected. It does not appear in
the compiled application.</para>
<para>Examples of main windows used in building App Builder itself are the
App Builder primary window, the Project Organizer, the Module Browser, and
the Code Generator.</para>
</sect3>
<sect3 id="ABUG.apWDB.div.5">
<title>Custom Dialog</title>
<graphic id="ABUG.apWDB.igrph.3" entityref="ABUG.apWDB.fig.3"></graphic>
<para>A <emphasis><indexterm><primary>custom dialog</primary><secondary>definition
of</secondary></indexterm>custom dialog</emphasis> is a window for displaying
information or providing a pop-up for a specific task within an interface.
It is created by dropping a custom dialog icon on the workspace. A custom
dialog might be &ldquo;connected&rdquo; to a button or a menu in a main window,
causing the pop-up dialog to be displayed when the button is clicked or a
menu item is chosen. A custom dialog cannot be closed to an icon.
</para>
<para>The status region includes the name of the module the dialog is part
of and indicates when the dialog object is selected. It does not appear in
the compiled application.</para>
<para>Examples of custom dialogs used in building App Builder include the
File Selection Dialog, the Project Name and Module Name dialog boxes, all
of the editors, and the message dialog boxes.</para>
</sect3>
<sect3 id="ABUG.apWDB.div.6">
<title>File Selection Dialog</title>
<graphic id="ABUG.apWDB.igrph.4" entityref="ABUG.apWDB.fig.4"></graphic>
<para>A <emphasis><indexterm><primary>file selection dialog</primary></indexterm>file
selection dialog</emphasis> is a specialized pop-up dialog for specifying
a file in an Open or Save operation. It is created by dropping a file selection
dialog icon on the workspace.</para>
<para>The status region includes the name of the module the dialog is part
of and indicates when the dialog object is selected. It does not appear in
the compiled application.</para>
</sect3>
</sect2>
<sect2 id="ABUG.apWDB.div.7">
<title id="ABUG.apWDB.mkr.4">Panes Palette<indexterm><primary>palette</primary><secondary>Panes</secondary></indexterm></title>
<para>The Panes palette contains four objects: control pane, text pane, draw
area pane, and term pane. All panes can be dropped on a main window, a custom
dialog, or another pane. If a pane is dropped on a pane, the dropped pane
will become a child of the first pane or a layered pane will be created.
See <!--Original XRef content: '&xd2;To
Create a Layered Pane'--><xref role="SectionTitle" linkend="abug.crobj.mkr.5">
in <!--Original
XRef content: 'Chapter&numsp;5, &xd2;Creating and
Editing Pan--><!--es, Menus, and
Messages'--><xref role="ChapNumAndTitle" linkend="abug.crobj.mkr.1"> for more
information.</para>
<sect3 id="ABUG.apWDB.div.8">
<title>Control Pane</title>
<graphic id="ABUG.apWDB.igrph.5" entityref="ABUG.apWDB.fig.5"></graphic>
<para>A <emphasis><indexterm><primary>control pane</primary></indexterm>control
pane</emphasis> is the drop site for App Builder controls. It is created by
dropping a control pane icon on a main window, a custom dialog, or another
pane. In the figure above, a control pane has been dropped on the top-left
corner of a main window, in anticipation of resizing it to fill the entire
canvas.</para>
<para>Examples of control panes used in building App Builder include the pane
on which the three panes palettes reside on the App Builder primary window
and the pane beneath the controls on each of the property editors.</para>
</sect3>
<sect3 id="ABUG.apWDB.div.9">
<title>Text Pane<indexterm><primary>text pane</primary><secondary>definitionof</secondary></indexterm><indexterm><primary>objects</primary><secondary>text pane</secondary></indexterm></title>
<graphic id="ABUG.apWDB.igrph.6" entityref="ABUG.apWDB.fig.6"></graphic>
<para>A <emphasis>text pane</emphasis> is a multi-line text-entry area in
the completed application. It is created by dropping a text pane icon on
a main window, custom dialog, or another pane.
</para>
<para>Examples of the use of text panes in building App Builder include the
Initial Value field in the Text Pane property editor and the Help Text field
in the Help Editor.</para>
</sect3>
<sect3 id="ABUG.apWDB.div.10">
<title>Draw Area Pane<indexterm><primary>draw area pane</primary></indexterm><indexterm><primary>objects</primary><secondary>draw area pane</secondary></indexterm></title>
<graphic id="ABUG.apWDB.igrph.7" entityref="ABUG.apWDB.fig.7"></graphic>
<para>A <emphasis>draw area pane</emphasis> is used as a drawing or display
area in the completed application. It is created by dropping a draw area
pane icon on a main window, custom dialog, or another pane.</para>
<para>Note the horizontal and vertical scroll bars, which enable you to view
objects outside the current view area.</para>
<para>Examples of the use of draw area panes in building App Builder include
the panes displaying modules and module objects in the Module Browser, and
the pane displaying modules in the Project Organizer.
</para>
</sect3>
<sect3 id="ABUG.apWDB.div.11">
<title>Term Pane<indexterm><primary>term pane</primary></indexterm><indexterm><primary>objects</primary><secondary>term pane</secondary></indexterm></title>
<graphic id="ABUG.apWDB.igrph.8" entityref="ABUG.apWDB.fig.8"></graphic>
<para>A <emphasis>term pane</emphasis> is a terminal emulation object which
accepts user input and echoes standard output. It is created by dropping
a term pane icon on a main window, custom dialog, or another pane.</para>
</sect3>
</sect2>
<sect2 id="ABUG.apWDB.div.12">
<title id="ABUG.apWDB.mkr.5">Controls Palette<indexterm><primary>palette</primary><secondary>Controls &lt;$startrange></secondary></indexterm><indexterm><primary>Controls palette &lt;$startrange></primary></indexterm></title>
<para>The Controls palette contains 14 objects, including buttons, lists,
text fields, and a menu bar. To find out how to edit the properties of these
objects, see &ldquo; <!--Original XRef content: 'Chapter&numsp;4, &xd2;Editing Properties
of Interface Objects'--><xref role="ChapNumAndTitle" linkend="ABUG.edprp.mkr.1">.
To find out how to create menus and submenus and attach them to objects,
see &ldquo; <!--Original XRef content: '&xd2;Creating and Editing
Menus'--><xref role="SectionTitle" linkend="ABUG.crobj.mkr.11"> in
<!--Original XRef content: 'Chapter&numsp;5, &xd2;Creating and Editing Panes,
Menus, and Messages'--><xref role="ChapNumAndTitle" linkend="ABUG.crobj.mkr.1">.
</para>
<informaltable>
<tgroup cols="2" colsep="0" rowsep="0">
<colspec align="left" colwidth="100*">
<colspec align="left" colwidth="356*">
<tbody>
<row>
<entry><para>Button</para></entry>
<entry><para><indexterm><primary>button control</primary></indexterm><indexterm>
<primary>controls</primary><secondary>button</secondary></indexterm><indexterm>
<primary>objects</primary><secondary>button</secondary></indexterm>A control
which, when clicked, performs a specified action. A button can be a push
button, a drawn button, or a menu button, settable in the Button property
editor. A drawn button, like a push button, performs a specific function
when clicked; the label on a drawn button, however, can change dynamically,
depending on the status of the application.
</para></entry></row>
<row>
<entry><para>Menu Button</para></entry>
<entry><para><indexterm><primary>controls</primary><secondary>menu button</secondary></indexterm><indexterm><primary>menu button control</primary>
</indexterm><indexterm><primary>objects</primary><secondary>menu button</secondary>
</indexterm>A specialized button, ready for attachment of a menu. Note that
there is no menu button property editor; edit the properties of a menu button
in the Button Property Editor.</para></entry></row>
<row>
<entry><para>Combo Box</para></entry>
<entry><para><indexterm><primary>combo box control</primary></indexterm><indexterm>
<primary>controls</primary><secondary>combo box</secondary></indexterm><indexterm>
<primary>objects</primary><secondary>combo box</secondary></indexterm>A combination
text field and option menu object. As with an option menu, you can select
an item from a pop-down menu, but you can also edit any of the items in
the list&mdash;if you have checked &ldquo; Editable &rdquo; in the property
editor, and if you write code to make it work.</para></entry></row>
<row>
<entry><para>Option Menu</para></entry>
<entry><para><indexterm><primary>controls</primary><secondary>option menu</secondary></indexterm><indexterm><primary>option menu control</primary>
</indexterm><indexterm><primary>objects</primary><secondary>option menu</secondary>
</indexterm>One of the three &ldquo;choice&rdquo; objects (option menu,
radio box, check box). When you click on an option menu, a menu is displayed,
providing a choice of items to choose from. The chosen item remains in the
option menu box and becomes the active choice. Examples of option menus
in App Builder are Object Type in the property editors and Source and Target
in the Connections Editor. An option menu is an exclusive- choice object.
</para></entry></row>
<row>
<entry><para>Radio Box</para></entry>
<entry><para><indexterm><primary>radio box control</primary></indexterm><indexterm>
<primary>controls</primary><secondary>radio box</secondary></indexterm><indexterm>
<primary>objects</primary><secondary>radio box</secondary></indexterm>One
of the three &ldquo;choice&rdquo; objects (option menu, radio box, check
box). A radio box is comprised of a label and two or more round buttons representing
application functions, only one of which can be selected (hence the term
&ldquo;radio button,&ldquo; named for the type of buttons on an automobile
radio). A radio box is an exclusive-choice object.
</para></entry></row>
<row>
<entry><para>Check Box</para></entry>
<entry><para><indexterm><primary>check box control</primary></indexterm><indexterm>
<primary>objects</primary><secondary>check box</secondary></indexterm><indexterm>
<primary>controls</primary><secondary>check box</secondary></indexterm>One
of the three &ldquo;choice&rdquo; objects (option menu, radio box, check
box). A check box is comprised of a label and one or more check boxes, each
with its own label. Each check box has a &ldquo;binary&rdquo; (on or off)
state, and each is independent of the other. A check box is a nonexclusive-choice
object.
</para></entry></row>
<row>
<entry><para>Gauge</para></entry>
<entry><para><indexterm><primary>gauge control</primary></indexterm><indexterm>
<primary>controls</primary><secondary>gauge</secondary></indexterm><indexterm>
<primary>objects</primary><secondary>gauge</secondary></indexterm>One of two
&ldquo;scale&rdquo; objects (gauge, scale). A gauge is used to indicate
a value.
</para></entry></row>
<row>
<entry><para>Scale</para></entry>
<entry><para><indexterm><primary>scale control</primary></indexterm><indexterm>
<primary>controls</primary><secondary>scale</secondary></indexterm><indexterm>
<primary>objects</primary><secondary>scale</secondary></indexterm>One of two
&ldquo;scale&rdquo; objects (gauge, scale). A scale, like a gauge, indicates
a value, but a user can modify the value of a scale by moving the slider.
</para></entry></row>
<row>
<entry><para>Separator</para></entry>
<entry><para><indexterm><primary>separator</primary></indexterm><indexterm>
<primary>controls</primary><secondary>separator</secondary></indexterm><indexterm>
<primary>objects</primary><secondary>separator</secondary></indexterm>A horizontal
or vertical line used to indicate separate functions in an application window.
</para></entry></row>
<row>
<entry><para>Menu Bar</para></entry>
<entry><para><indexterm><primary>menu bar control</primary></indexterm><indexterm>
<primary>controls</primary><secondary>menu bar</secondary></indexterm><indexterm>
<primary>objects</primary><secondary>menu bar</secondary></indexterm>A horizontal
bar of menu buttons arrayed across the top of a main window. The buttons
are cascade buttons, for attaching menus. The default menu bar includes
File, Edit, and Help topics. You can change, delete, or add to this group
of topics. Note that the menu bar is not strictly a control object: it is
a control pane with three buttons.
</para></entry></row>
<row>
<entry><para>Text Field</para></entry>
<entry><para><indexterm><primary>text field control</primary></indexterm><indexterm>
<primary>controls</primary><secondary>text field</secondary></indexterm><indexterm>
<primary>objects</primary><secondary>text field</secondary></indexterm>A single-line
text-entry area with a label (in contrast to a text <symbol role="Variable">pane</symbol>, which is a is a multi-line text-entry area).</para></entry>
</row>
<row>
<entry><para>Label</para></entry>
<entry><para><indexterm><primary>label control</primary></indexterm><indexterm>
<primary>controls</primary><secondary>label</secondary></indexterm><indexterm>
<primary>objects</primary><secondary>label</secondary></indexterm>A text string
or graphic icon which can be attached to an object for identification purposes.
</para></entry></row>
<row>
<entry><para>Scrolling List</para></entry>
<entry><para><indexterm><primary>scrolling list control</primary></indexterm><indexterm>
<primary>controls</primary><secondary>scrolling list</secondary></indexterm><indexterm>
<primary>objects</primary><secondary>scrolling list</secondary></indexterm>An
object for listing selectable options. A scrolling list is comprised of a
variable-length list with scroll bars and an optional label. A list can allow
single or multiple selections, and it can include a pop-up menu.
</para></entry></row>
<row>
<entry><para>Spin Box</para></entry>
<entry><para><indexterm><primary>spin box control</primary></indexterm><indexterm>
<primary>controls</primary><secondary>spin box</secondary></indexterm><indexterm>
<primary>objects</primary><secondary>spin box</secondary></indexterm>An object
for selecting from a number of choices, only one of which is visible at any
one time. A spin box is comprised of a text field, a label, and a set of
arrows for sequencing through the choices.<indexterm><primary>palette</primary>
<secondary>Controls &lt;$endrange></secondary></indexterm><indexterm><primary>Controls palette &lt;$endrange></primary></indexterm></para></entry>
</row>
</tbody></tgroup></informaltable>
</sect2>
<sect2 id="ABUG.apWDB.div.13">
<title id="ABUG.apWDB.mkr.6">Object Information Area<indexterm><primary>object information area &lt;$startrange></primary></indexterm></title>
<para>The object information area provides information about the object directly beneath the cursor&mdash;either on
one of the primary window palettes or in the user interface. It includes
the following information fields:</para>
<informaltable>
<tgroup cols="2" colsep="0" rowsep="0">
<colspec align="left" colwidth="100*">
<colspec align="left" colwidth="356*">
<tbody>
<row>
<entry><para>Object Type</para></entry>
<entry><para>The type of object beneath the cursor (main window, control
pane, text field, for example). This field is active in the App Builder primary
window, so you can use it to identify object types in the object palettes.
</para></entry></row>
<row>
<entry><para>Object Name</para></entry>
<entry><para>The name of the interface object beneath the cursor. This name,
in combination with the module name, uniquely identifies App Builder objects.
Palette objects do not have names, so the field will be blank if the cursor
is over the App Builder primary window. Note that all palette objects are
given unique names when they are instantiated in the interface; you can change
the name in the property editor for the object.</para></entry></row>
<row>
<entry><para>Position</para></entry>
<entry><para>The (x,y) pixel coordinates of the top-left corner of the object
beneath the cursor, measured in the coordinate system of the object that
contains it. If the object is a window object (main window, custom dialog,
or file selection dialog), the position will be relative to the top-left
corner of the monitor screen.
<?Pub _newline>If the object is a pane that was dropped on the top-left corner
of a window, its position will be 0,0, since 0,0 are the coordinates of the
top-left corner of the parent window. A pane that is dropped on another pane
and made a layered pane also has coordinates of 0,0.
<?Pub _newline>If the object is a control or a pane that has been made a child
of a control pane, its coordinates are measured from the top-left corner
of the parent object to the top- left corner of the child object.</para></entry>
</row>
<row>
<entry><para>Size</para></entry>
<entry><para>The size, in pixels, of the object beneath the cursor, in the
form &ldquo;width X, height Y.&rdquo;</para></entry></row>
<row>
<entry><para>Cursor Position</para></entry>
<entry><para>The (x,y) pixel coordinate location of the cursor, measured
in the coordinate system of the object that contains it. Every object, including
controls, has its own coordinate system. Some compound objects, comprised
of more than one widget, have multiple coordinate systems; a custom dialog,
for instance, includes a control pane, a tool bar, and buttons, each with
its own coordinate system.</para></entry></row>
<row>
<entry><para>Editing Module</para></entry>
<entry><para>The name of the module currently being edited. Any window dragged
from the Windows palette becomes part of that module. If more than one module
is shown on the workspace, you can change the current module by selecting
an object in another module.<indexterm><primary>object information area &lt;$endrange></primary></indexterm></para></entry>
</row>
</tbody></tgroup></informaltable>
</sect2>
</sect1>
<sect1 id="ABUG.apWDB.div.14">
<title id="ABUG.apWDB.mkr.7">Project Organizer<indexterm><primary>Project Organizer</primary></indexterm></title>
<para>The Project Organizer is used to open, save, or close a project, and
to save, show, hide, import, export, or remove modules.
</para>
<graphic id="ABUG.apWDB.igrph.9" entityref="ABUG.apWDB.fig.9"></graphic>
<informaltable>
<tgroup cols="2" colsep="0" rowsep="0">
<colspec align="left" colwidth="100*">
<colspec align="left" colwidth="356*">
<tbody>
<row>
<entry><para>Location</para></entry>
<entry><para>A control pane with Project Path and Module Path fields; indicates
the full-path location of the current project and the relative path to modules.
The module will normally be in the same folder as the project, and its
path will be noted as &ldquo;.&rdquo; (&ldquo;dot,&rdquo; signifying the
current folder).</para></entry></row>
<row>
<entry><para>Module Array</para></entry>
<entry><para>A draw area pane that depicts each of the modules in the current
project as a single icon with the module name beneath the App Builder icon.
</para></entry></row>
</tbody></tgroup></informaltable>
</sect1>
<sect1 id="ABUG.apWDB.div.15">
<title id="ABUG.apWDB.mkr.8">Module Browser<indexterm><primary>module browser</primary></indexterm><indexterm><primary>browser</primary></indexterm></title>
<para>The Module Browser (also called the browser) provides a hierarchical,
tree view of a module. Use it to view modules, edit the interface, group
or ungroup objects, create connections, and display object property editors
for editing. About the only things you can't do in the Browser that you can
do in the interface is move or align objects.
</para>
<para>To display the Browser, choose Module Browser from the View menu in
the App Builder primary window and select a module in the pull-right menu
displayed or select an object in the interface and Choose Browse from the
pop- up menu (displayed by pressing mouse button 3 in the interface).
</para>
<graphic id="ABUG.apWDB.igrph.10" entityref="ABUG.apWDB.fig.10"></graphic>
<informaltable>
<tgroup cols="2" colsep="0" rowsep="0">
<colspec align="left" colwidth="100*">
<colspec align="left" colwidth="356*">
<tbody>
<row>
<entry><para>Edit menu</para></entry>
<entry><para>Includes the same functions as the Edit menu in the App Builder
primary window: Undo, Cut, Copy, Paste, and Delete. If you select an object
or objects in the Browser and choose a menu item, the objects selected will
be selected in the interface and the function chosen will be performed in
the interface.</para></entry></row>
<row>
<entry><para>View menu</para></entry>
<entry><para><emphasis>Horizontal</emphasis> displays child objects to the
right of their parent object. Toggles with Vertical, which displays child
objects below their parent object. Vertical is the default view.
<?Pub _newline><emphasis>Hide Object Glyph</emphasis> hides the icons/glyphs
that represent the objects in the interface. Toggles with Show Object Glyph,
which is the default.
<?Pub _newline><emphasis>Show Object Type</emphasis> displays the object types
of objects in the interface. Toggles with Hide Object Type, which is the
default.
<?Pub _newline><emphasis>Collapse</emphasis> &ldquo;undisplays&rdquo; the
children of selected parent objects. This enables you to see more of the
interface in a smaller space.
<?Pub _newline><emphasis>Expand</emphasis> displays the children of selected
collapsed parent objects.
<?Pub _newline><emphasis>Expand All</emphasis> expands all collapsed parent
objects.
<?Pub _newline><emphasis>Module</emphasis> displays the module chosen from
the submenu.
<?Pub _newline><emphasis>Find</emphasis> displays a Find Object dialog box,
for finding objects by object name; if the object is found, the object is
selected and the canvas scrolls to show the object.
<?Pub _newline><emphasis>Tearoff Browser</emphasis> displays a new browser,
enabling you to view more than one module.</para></entry></row>
<row>
<entry><para>Module name</para></entry>
<entry><para>Indicates the module being viewed. Can be changed through the
View menu.</para></entry></row>
<row>
<entry><para>Top-level view</para></entry>
<entry><para>Shows all direct children of the module&mdash;windows, menus,
and messages. A detailed view of each of the objects selected here is shown
in the detailed tree view.</para></entry></row>
<row>
<entry><para>Detailed tree view</para></entry>
<entry><para>Shows a detailed view of the top-level objects selected. All
children of the selected top-level objects are shown.</para></entry></row>
</tbody></tgroup></informaltable>
<note>
<para>When you group objects or edit the interface in the Browser, be sure
to check the interface to see that you haven't obscured any objects. In particular,
if you group objects, the rectangular group created may hide an object behind
it.
</para>
</note>
</sect1>
<sect1 id="ABUG.apWDB.div.16">
<title id="ABUG.apWDB.mkr.9">Code Generator Window<indexterm><primary>Code Generator</primary></indexterm></title>
<para>The Code Generator window is used to generate code for the created interface
and to make and run the completed application. Display the window by choosing
Code Generator from the File menu of the App Builder primary window.
</para>
<graphic id="ABUG.apWDB.igrph.11" entityref="ABUG.apWDB.fig.11"></graphic>
<informaltable>
<tgroup cols="2" colsep="0" rowsep="0">
<colspec align="left" colwidth="100*">
<colspec align="left" colwidth="356*">
<tbody>
<row>
<entry><para>Path</para></entry>
<entry><para>Indicates the path to the current project, which is included
in the title bar at the top of the window.</para></entry></row>
<row>
<entry><para>Output Pane</para></entry>
<entry><para>Refers to the text pane below this label. The results when you
click on the buttons below the pane are displayed in this text pane. (The
functions of the buttons also appear as menu items in the File menu.)</para></entry>
</row>
<row>
<entry><para>Generate Code</para></entry>
<entry><para>Generates code for the current project. The output for this
action is displayed in the output pane.</para></entry></row>
<row>
<entry><para>Make</para></entry>
<entry><para>&ldquo;Makes&rdquo; the application for the current project.
The output for this action is displayed in the Output Pane.</para></entry>
</row>
<row>
<entry><para>Run</para></entry>
<entry><para>Runs the compiled application after generating code and making
the application. The output for this action is displayed in the Output Pane.
The primary window for the compiled application will be displayed.</para></entry>
</row>
<row>
<entry><para>Make &amp; Run</para></entry>
<entry><para>Combines the functions of the first three buttons (Generate
Code, Make, Run). The output for this action is displayed in the Output Pane.
The primary window for the compiled application will be displayed.</para></entry>
</row>
<row>
<entry><para>Abort</para></entry>
<entry><para>Aborts the currently running function. If the compiled application
is being run, clicking Abort quits the application.</para></entry></row>
<row>
<entry><para>Term Pane</para></entry>
<entry><para>Performs any terminal emulation functions.</para></entry></row>
</tbody></tgroup></informaltable>
<sect2 id="ABUG.apWDB.div.17">
<title>Code Generator Options Dialog Box<indexterm><primary>Code Generator Options dialog box</primary></indexterm></title>
<para>The Code Generator Options dialog box, accessible from the Options menu
in the Code Generator window, is used to set options that determine what
will happen when various Code Generator functions are performed.
</para>
<graphic id="ABUG.apWDB.igrph.12" entityref="ABUG.apWDB.fig.12"></graphic>
<informaltable>
<tgroup cols="2" colsep="0" rowsep="0">
<colspec align="left" colwidth="141*">
<colspec align="left" colwidth="387*">
<tbody>
<row>
<entry><para>Project</para></entry>
<entry><para>The name of the current project.</para></entry></row>
<row>
<entry><para>Generate Code For</para></entry>
<entry><para>Specifies whether code will be generated for Entire Project,
Main Only, Specific Modules Only, or Specific Modules and Main. If one of
the latter two choices is specified, the modules in the scrolling list are
active.</para></entry></row>
<row>
<entry><para>Don't Merge</para></entry>
<entry><para>Specifies whether user-written code will be merged into the
generated code; if you check Don't Merge, any user-written code will be discarded
when code is generated.</para></entry></row>
<row>
<entry><para>Report Normal Messages</para></entry>
<entry><para>Determines whether Normal Messages will
be displayed in the output pane when code is generated, whether no messages
will be generated (Be Silent), or whether all messages will be displayed
(Be Verbose).</para></entry></row>
<row>
<entry><para>Make Arguments</para></entry>
<entry><para>Specifies what arguments will be appended to the Make command
when it is run in the Code Generator.</para></entry></row>
<row>
<entry><para>Run Time Arguments</para></entry>
<entry><para>Specifies what arguments will be appended to the Run command
when it is run in the Code Generator.</para></entry></row>
<row>
<entry><para>Reset to Defaults</para></entry>
<entry><para>Resets all Code Generator Options settings to their default
values.</para></entry></row>
</tbody></tgroup></informaltable>
</sect2>
<sect2 id="ABUG.apWDB.div.18">
<title>Code Generator Environment Options Dialog Box<indexterm><primary>environment options, Code Generator</primary></indexterm><indexterm><primary>Code Generator</primary><secondary>environment options</secondary></indexterm></title>
<para>The Code Generator Environment Options dialog box, accessible from the
Options menu in the Code Generator window, is used for specifying a Variable
Name and a Value for the variable, which value will be used for functions
performed in the Code Generator window.
</para>
<graphic id="ABUG.apWDB.igrph.13" entityref="ABUG.apWDB.fig.13"></graphic>
<informaltable>
<tgroup cols="2" colsep="0" rowsep="0">
<colspec align="left" colwidth="100*">
<colspec align="left" colwidth="356*">
<tbody>
<row>
<entry><para>Variable Name</para></entry>
<entry><para>Specifies the name of an environment variable.</para></entry></row>
<row>
<entry><para>Value</para></entry>
<entry><para>Specifies a value for the variable specified in Variable Name.
This value is only set for the Code Generator window and has no effect on
the value of the variable outside of the Code Generator.</para></entry>
</row>
<row>
<entry><para>Get</para></entry>
<entry><para>Gets the current Code Generator value of Variable Name and displaying
it in the Value text field.</para></entry></row>
<row>
<entry><para>Set</para></entry>
<entry><para>Sets Variable Name to the value in Value. This value is set
for Code Generator window functions only.</para></entry></row>
<row>
<entry><para>Reset</para></entry>
<entry><para>Resets Value for Variable Name to its value as set outside of
the Code Generator.</para></entry></row>
<row>
<entry><para>Cancel</para></entry>
<entry><para>Cancels any changes made to Value and closes the Environment
Options dialog box.</para></entry>
</row></tbody></tgroup>
</informaltable>
</sect2>
</sect1>
</appendix>
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 10:11:44-->
<?Pub *0000042042>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,76 @@
<!-- $XConsortium: book.sgm /main/5 1996/07/13 15:44:23 rws $ -->
<!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 "./builderGuide/BEntity.sgm">
%BEntities;
<!ENTITY % local.notations "| XPM | XBM | XWD">
<!NOTATION XPM SYSTEM "XPM">
<!NOTATION XBM SYSTEM "XBM">
<!NOTATION XWD SYSTEM "XWD">
<!ENTITY pref SYSTEM "./builderGuide/preface.sgm">
<!ENTITY intro SYSTEM "./builderGuide/ch01.sgm">
<!ENTITY proj SYSTEM "./builderGuide/ch02.sgm">
<!ENTITY layo SYSTEM "./builderGuide/ch03.sgm">
<!ENTITY edprp SYSTEM "./builderGuide/ch04.sgm">
<!ENTITY crobj SYSTEM "./builderGuide/ch05.sgm">
<!ENTITY afunc SYSTEM "./builderGuide/ch06.sgm">
<!ENTITY group SYSTEM "./builderGuide/ch07.sgm">
<!ENTITY test SYSTEM "./builderGuide/ch08.sgm">
<!ENTITY codeg SYSTEM "./builderGuide/ch09.sgm">
<!ENTITY apWDB SYSTEM "./builderGuide/appa.sgm">
<!ENTITY apRPE SYSTEM "./builderGuide/appb.sgm">
]>
<!-- ____________________________________________________________________________ -->
<Book>
<Title>Common Desktop Environment: Application Builder User's Guide</Title>
&pref;
&intro;
&proj;
&layo;
&edprp;
&crobj;
&afunc;
&group;
&test;
&codeg;
&apWDB;
&apRPE;
</Book>

View File

@@ -0,0 +1,340 @@
<!-- $XConsortium: ch01.sgm /main/6 1996/09/08 19:47:49 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="ABUG.intro.div.1">
<Title Id="ABUG.intro.mkr.1">Getting Started</Title>
<Para>App Builder is a development tool that makes designing, creating, and
prototyping a user interface easier. App Builder gives you the freedom to
create and try user interfaces without writing any code. Because you can create
and modify an interface easily, you'll find that you can spend more time
designing and testing, the surest route to better user interfaces.</Para>
<InformalTable Id="ABUG.intro.itbl.1" Frame="All">
<TGroup Cols="1">
<ColSpec Colname="1" Colwidth="4.0 in">
<TBody>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Application Builder Primary Window2'--><XRef Role="JumpText" Linkend="ABUG.intro.mkr.2"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Starting and Exiting App Builder3'--><XRef Role="JumpText" Linkend="ABUG.intro.mkr.3"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Overview of the App Builder Process4'--><XRef Role="JumpText" Linkend="ABUG.intro.mkr.4"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Object Types5'--><XRef Role="JumpText" Linkend="ABUG.intro.mkr.5"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Rules for Dropping Objects6'--><XRef Role="JumpText" Linkend="ABUG.intro.mkr.6"></Para></Entry>
</Row>
</TBody>
</TGroup>
</InformalTable>
<Sect1 Id="ABUG.intro.div.2">
<Title Id="ABUG.intro.mkr.2">Application Builder Primary Window</Title>
<Para>The Application Builder primary window, shown below, is the starting point
for creating a user interface. See
<!--Original XRef content: '&xd2;App Builder Primary Window&xd3; on page&numsp;116'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.apWDB.mkr.2">,
for a detailed description of the primary window.<IndexTerm>
<Primary>drag and drop</Primary>
</IndexTerm><IndexTerm>
<Primary>creating</Primary>
<Secondary>interface</Secondary>
</IndexTerm><IndexTerm>
<Primary>interface</Primary>
<Secondary>creating</Secondary>
</IndexTerm><IndexTerm>
<Primary>user interface</Primary><Secondary>&lt;Emphasis>See&lt;Default Para Font> interface&lt;$nopage></Secondary>
</IndexTerm><IndexTerm>
<Primary>interface</Primary>
<Secondary>creating</Secondary>
</IndexTerm><IndexTerm>
<Primary>creating</Primary>
<Secondary>interface</Secondary>
</IndexTerm><IndexTerm>
<Primary>creating</Primary>
<Secondary>interface</Secondary>
</IndexTerm><IndexTerm>
<Primary>interface</Primary>
<Secondary>creating</Secondary>
</IndexTerm>
</Para>
<Figure>
<Title>Application Builder primary window</Title>
<Graphic Entityref="ABUG.intro.fig.1" Id="ABUG.intro.grph.1"></Graphic>
</Figure>
<Para><IndexTerm>
<Primary>App Builder</Primary>
<Secondary>primary window</Secondary>
</IndexTerm>The basic method for creating an App Builder user interface is to <Emphasis>drag and drop</Emphasis>
objects from the App Builder primary window onto the workspace or onto
other App Builder objects. See
<!--Original XRef content: 'Chapter&numsp;3, &xd2;Laying Out a User Interface'--><XRef Role="ChapNumAndTitle" Linkend="ABUG.layo.mkr.1">, for
details.</Para>
</Sect1>
<Sect1 Id="ABUG.intro.div.3">
<Title Id="ABUG.intro.mkr.3">Starting and Exiting App Builder</Title>
<Sect2 Id="ABUG.intro.div.4" Role="Procedure">
<Title>To Open App Builder from an Icon</Title>
<Sidebar>
<Para><Graphic Entityref="ABUG.intro.fig.2" Id="ABUG.intro.igrph.1"></Graphic></Para>
</Sidebar>
<OrderedList>
<ListItem>
<Para>If App Builder has previously been open and the App Builder icon is on the
workspace, double-click the icon to open App Builder.<IndexTerm>
<Primary>App Builder</Primary>
<Secondary>icon</Secondary>
</IndexTerm><IndexTerm>
<Primary>App Builder</Primary>
<Secondary>starting</Secondary>
</IndexTerm><IndexTerm>
<Primary>starting App Builder</Primary>
</IndexTerm><IndexTerm>
<Primary>&lt;Filename | Command>dtappbuilder&lt;Default Para Font> command</Primary>
</IndexTerm>
</Para>
</ListItem>
<ListItem>
<Para>If App Builder is installed on the Front Panel, click the App Builder icon in
the Personal Applications subpanel to open App Builder.</Para>
<Para>To install App Builder on the Front Panel, see &ldquo;To Put an Application Icon in
the Front Panel&rdquo; in the Application Manager help volume for instructions.</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="ABUG.intro.div.5" Role="Procedure">
<Title>To Start App Builder from the Command Line</Title>
<Para>The command to run App Builder is <Command>dtbuilder</Command>. Do the following to start App
Builder from the command line:</Para>
<OrderedList>
<ListItem>
<Para>Type <Command>dtbuilder</Command></Para>
<Para>If dtbuilder is in your path, App Builder will start. If it is not in your path,
you will need to type the full path name (which, by default, is
<Filename>/usr/dt/bin/dtbuilder</Filename>) or change to the folder where <Command>dtbuilder</Command> is
located before typing <Command>dtbuilder</Command>.</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="ABUG.intro.div.6" Role="Procedure">
<Title>To Exit App Builder<IndexTerm><Primary>App Builder</Primary><Secondary>exiting</Secondary></IndexTerm><IndexTerm><Primary>quitting</Primary><Secondary>App Builder</Secondary></IndexTerm></Title>
<OrderedList>
<ListItem>
<Para>Choose Exit from the File menu of the App Builder primary window to quit
App Builder.</Para>
<Para>If you have not saved all changes, a message dialog box will be displayed,
giving you the opportunity to discard the changes and continue the exit
process or to cancel the exit process and continue running App Builder.
Click Discard Changes if you do not want to save them. Click Cancel if you
do not want to discard your changes; you could then save your changes and
exit.<IndexTerm>
<Primary>App Builder</Primary>
<Secondary>quitting</Secondary>
</IndexTerm>
</Para>
</ListItem>
</OrderedList>
</Sect2>
</Sect1>
<Sect1 Id="ABUG.intro.div.7">
<Title Id="ABUG.intro.mkr.4">Overview of the App Builder Process</Title>
<Para>The basic process of building and maintaining a user interface with App
Builder is simple and straightforward. There are many variations on this
formula, but the process is similar for any application.<IndexTerm><Primary>App Builder</Primary><Secondary>overview of process</Secondary></IndexTerm><IndexTerm><Primary>interface</Primary><Secondary>overview of creating and maintaining</Secondary></IndexTerm>
</Para>
<OrderedList>
<ListItem>
<Para>Start App Builder. See
<!--Original XRef content: '&xd2;Starting and Exiting App Builder&xd3; on page&numsp;3'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.intro.mkr.3">.</Para>
</ListItem>
<ListItem>
<Para>Open a new project and a new module. See
<!--Original XRef content: '&xd2;Creating, Opening, and Saving
Projects&xd3; on page&numsp;7'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.proj.mkr.3">.</Para>
</ListItem>
<ListItem>
<Para>Drag and drop windows (main windows and custom dialogs) to the
workspace, creating a new module for each window, in most cases. See
<!--Original XRef content: '&xd2;Dragging and Dropping Palette Objects&xd3; on page&numsp;22'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.layo.mkr.2">.</Para>
</ListItem>
<ListItem>
<Para>Drag and drop panes onto main windows or custom dialogs. See
<!--Original XRef content: '&xd2;Dragging
and Dropping Palette Objects&xd3; on page&numsp;22'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.layo.mkr.2">.</Para>
</ListItem>
<ListItem>
<Para>Drag and drop controls (buttons, choice objects, text fields, for example)
onto control panes. See
<!--Original XRef content: '&xd2;Dragging and Dropping Palette Objects&xd3; on
page&numsp;22'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.layo.mkr.2">.</Para>
</ListItem>
<ListItem>
<Para>Create pane objects, menus, and message dialogs. See
<!--Original XRef content: 'Chapter&numsp;5, &xd2;Creating
and Editing Panes, Menus, and Messages'--><XRef Role="ChapNumAndTitle" Linkend="ABUG.crobj.mkr.1">.</Para>
</ListItem>
<ListItem>
<Para>Create help dialogs. See
<!--Original XRef content: '&xd2;Creating Help and Help Connections&xd3; on page&numsp;67'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.afunc.mkr.2">.</Para>
</ListItem>
<ListItem>
<Para>Edit the properties of interface objects. See
<!--Original XRef content: 'Chapter&numsp;4, &xd2;Editing Properties of
Interface Objects'--><XRef Role="ChapNumAndTitle" Linkend="ABUG.edprp.mkr.1">.</Para>
</ListItem>
<ListItem>
<Para>Make functional connections between objects in the user interface. See
<!--Original XRef content: 'Chapter&numsp;6, &xd2;Adding Functionality to the Interface'--><XRef Role="ChapNumAndTitle" Linkend="ABUG.afunc.mkr.1">.</Para>
</ListItem>
<ListItem>
<Para>Go into test mode to test menus, help, and connections. See
<!--Original XRef content: 'Chapter&numsp;8,
&xd2;Testing Menus, Help, and Connections'--><XRef Role="ChapNumAndTitle" Linkend="ABUG.test.mkr.1">.</Para>
</ListItem>
<ListItem>
<Para>Display the Code Generator to generate code and make the user interface.
See
<!--Original XRef content: 'Chapter&numsp;9, &xd2;Generating Code and Building an Application'--><XRef Role="ChapNumAndTitle" Linkend="ABUG.codeg.mkr.1">.</Para>
</ListItem>
<ListItem>
<Para>Add user code to the code generated by App Builder. See
<!--Original XRef content: '&xd2;Adding User
Code to Generated Code&xd3; on page&numsp;112'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.codeg.mkr.6">.</Para>
</ListItem>
<ListItem>
<Para>Debug the code, make and run the application.</Para>
</ListItem>
<ListItem>
<Para>Repeat the process to modify and maintain the user interface.</Para>
</ListItem>
</OrderedList>
</Sect1>
<Sect1 Id="ABUG.intro.div.8">
<Title Id="ABUG.intro.mkr.5">Object Types<IndexTerm><Primary>object types</Primary></IndexTerm><IndexTerm><Primary>types of objects</Primary></IndexTerm></Title>
<Para>There are three basic types of objects on the primary window: windows, panes,
and controls. See
<!--Original XRef content: '&xd2;App Builder Primary Window&xd3; on page&numsp;116'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.apWDB.mkr.2">, for
descriptions of each of the objects.</Para>
<Para>The windows in App Builder are:</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>Main window</Para>
</ListItem>
<ListItem>
<Para>Custom dialog</Para>
</ListItem>
<ListItem>
<Para>File selection dialog</Para>
</ListItem>
</ItemizedList>
<Para>The panes in App Builder are:</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>Control pane</Para>
</ListItem>
<ListItem>
<Para>Text pane</Para>
</ListItem>
<ListItem>
<Para>Draw area pane</Para>
</ListItem>
<ListItem>
<Para>Term pane</Para>
</ListItem>
</ItemizedList>
<Para>The controls in App Builder are:</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>Button</Para>
</ListItem>
<ListItem>
<Para>Check box (Choice object)</Para>
</ListItem>
<ListItem>
<Para>Combo box</Para>
</ListItem>
<ListItem>
<Para>Gauge</Para>
</ListItem>
<ListItem>
<Para>Label</Para>
</ListItem>
<ListItem>
<Para>List (scrolling list)</Para>
</ListItem>
<ListItem>
<Para>Menu bar*</Para>
</ListItem>
<ListItem>
<Para>Menu button</Para>
</ListItem>
<ListItem>
<Para>Option menu (Choice object)</Para>
</ListItem>
<ListItem>
<Para>Radio box (Choice object)</Para>
</ListItem>
<ListItem>
<Para>Scale</Para>
</ListItem>
<ListItem>
<Para>Separator</Para>
</ListItem>
<ListItem>
<Para>Spin box</Para>
</ListItem>
<ListItem>
<Para>Text Field</Para>
</ListItem>
</ItemizedList>
<Note>
<Para>*The menu bar is not a control, but it is on the Controls palette. It can
only be dropped on a main window.</Para>
</Note>
</Sect1>
<Sect1 Id="ABUG.intro.div.9">
<Title Id="ABUG.intro.mkr.6">Rules for Dropping Objects<IndexTerm><Primary>rules</Primary><Secondary>for dropping objects</Secondary></IndexTerm><IndexTerm><Primary>objects</Primary><Secondary>rules for dropping</Secondary></IndexTerm><IndexTerm><Primary>drag and drop</Primary><Secondary>rules</Secondary></IndexTerm><IndexTerm><Primary>rules</Primary><Secondary>drag and drop</Secondary></IndexTerm></Title>
<Para>The rules for dragging and dropping the three types of App Builder objects are
explained below. An error message will be displayed if you attempt to drop an
object on an illegal target.</Para>
<Para><Emphasis><IndexTerm>
<Primary>drop rules</Primary>
<Secondary>for windows</Secondary>
</IndexTerm><IndexTerm>
<Primary>windows</Primary>
<Secondary>drop rules</Secondary>
</IndexTerm>Windows</Emphasis> (main window, custom dialog, file selection dialog) can be dropped
anywhere on the workspace except for the App Builder primary window.</Para>
<Para><Emphasis><IndexTerm>
<Primary>drop rules</Primary>
<Secondary>for panes</Secondary>
</IndexTerm><IndexTerm>
<Primary>panes</Primary>
<Secondary>drop rules</Secondary>
</IndexTerm>Panes</Emphasis> (control pane, text pane, draw area pane, term pane) can be dropped on
a main window, a custom dialog, or on another pane. See
<!--Original XRef content: '&xd2;Creating and
Editing Pane Entities&xd3; on page&numsp;40'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.crobj.mkr.2"> for more information.</Para>
<Para><Emphasis><IndexTerm>
<Primary>controls</Primary>
<Secondary>drop rules</Secondary>
</IndexTerm><IndexTerm>
<Primary>drop rules</Primary>
<Secondary>for controls</Secondary>
</IndexTerm>Controls</Emphasis> (buttons, menus, boxes, for example) can be dropped on a control pane
or a group.</Para>
<Note>
<Para>As noted above, a menu bar is on the Controls palette, but it is not
really a control. It can only be dropped on a main window. A menu bar can be
dropped anywhere on a main window; it will always appear at the top of the
window.</Para>
</Note>
</Sect1>
</Chapter>
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 10:11:44-->

View File

@@ -0,0 +1,566 @@
<!-- $XConsortium: ch02.sgm /main/6 1996/09/08 19:47: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="ABUG.proj.div.1">
<Title Id="ABUG.proj.mkr.1">Managing Projects and Modules</Title>
<Para Id="ABUG.proj.mkr.2">When you use App Builder to create a graphical user interface, you are
working on a <Emphasis>project</Emphasis>, which is comprised of one or more <Emphasis>modules</Emphasis>. App Builder,
which was built with itself, was a single project comprising over 30 modules.</Para>
<InformalTable Id="ABUG.proj.itbl.1" Frame="All">
<TGroup Cols="1">
<ColSpec Colname="1" Colwidth="4.0 in">
<TBody>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Creating, Opening, and Saving Projects7'--><XRef Role="JumpText" Linkend="ABUG.proj.mkr.3"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Creating, Importing, Exporting, and Saving Modules13'--><XRef Role="JumpText" Linkend="ABUG.proj.mkr.6"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Showing, Hiding, and Removing Modules18'--><XRef Role="JumpText" Linkend="ABUG.proj.mkr.8"></Para></Entry>
</Row>
</TBody>
</TGroup>
</InformalTable>
<Sect1 Id="ABUG.proj.div.2">
<Title Id="ABUG.proj.mkr.3">Creating, Opening, and Saving Projects</Title>
<Para>A project file is started when you choose New Project from the File menu of the
App Builder primary window or New from the Project menu of the Project
Organizer, or when you drag and drop a window onto the workspace in a new
session of App Builder. See
<!--Original XRef content: '&xd2;Project Organizer&xd3; on page&numsp;127'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.apWDB.mkr.7"> for a description
of the Project Organizer. See
<!--Original XRef content: '&xd2;Dragging and Dropping Palette Objects&xd3; on
page&numsp;22'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.layo.mkr.2"> for a discussion of drag and drop procedures.</Para>
<Para>A project file is saved when you choose Save Project from the File menu of the
App Builder primary window or when you select Save from the Project menu
of the Project Organizer. A project file has a <Command>.bip</Command> (builder interface project)
suffix.
</Para>
<Sect2 Id="ABUG.proj.div.3" Role="Procedure">
<Title>To Create a New Project<IndexTerm><Primary>projects</Primary><Secondary>creating</Secondary></IndexTerm><IndexTerm><Primary>creating</Primary><Secondary>projects</Secondary></IndexTerm></Title>
<OrderedList>
<ListItem>
<Para>Choose New Project from the File menu of the App Builder primary
window or New from the Project menu of the Project Organizer.</Para>
<Para>The Project Name dialog box will be displayed. By default, an unnamed
project is called <Command>Untitled</Command>.</Para>
<Graphic Entityref="ABUG.proj.fig.1" Id="ABUG.proj.igrph.1"></Graphic>
<Para>If you have made changes to the current project since you last saved it, a
message dialog box will be displayed first, giving you the option to discard
the changes and create the new project or to cancel the New Project
operation.</Para>
<Para>Click Discard Changes to throw out the changes and close the current
project.</Para>
<Para>Click Cancel if you want to save the current project. Save the current project
before creating the new project.</Para>
</ListItem>
<ListItem>
<Para>Type a name (all lowercase) for the project and click Apply.</Para>
<Para>The name of the project (with <Filename>.bip</Filename> added as a suffix) will be displayed in
the title bar at the top of the App Builder primary window. Every module
you create or import will be part of the current project until you open
another project.</Para>
</ListItem>
</OrderedList>
<Note>
<Para>Project names should be all lowercase so that there is no conflict
between the name of the project resource file and the project executable file.
<Literal><IndexTerm>
<Primary>naming</Primary>
<Secondary>resource files</Secondary>
</IndexTerm><IndexTerm>
<Primary>resource file</Primary>
<Secondary>naming</Secondary>
</IndexTerm></Literal>The name of the resource file created when you generate code is the same as
the name of the project, minus the <Filename>.bip</Filename> suffix, but it is given an initial capital
letter. <Literal><IndexTerm>
<Primary>naming</Primary>
<Secondary>projects</Secondary>
</IndexTerm><IndexTerm>
<Primary>projects</Primary>
<Secondary>naming</Secondary>
</IndexTerm></Literal></Para>
</Note>
</Sect2>
<Sect2 Id="ABUG.proj.div.4" Role="Procedure">
<Title Id="ABUG.proj.mkr.4">To Open an Existing Project<IndexTerm><Primary>projects</Primary><Secondary>opening existing</Secondary></IndexTerm><IndexTerm><Primary>opening</Primary><Secondary>existing projects</Secondary></IndexTerm></Title>
<OrderedList>
<ListItem>
<Para>Choose Open Project from the File menu of the App Builder primary
window or Open from the Project menu of the Project Organizer.</Para>
<Para>The Open Project dialog box will be displayed.</Para>
<Para>If you have made changes to the current project since you last saved it, a
message dialog box will be displayed first, giving you the option to discard
the changes and open the other project or to cancel the Open Project
operation.</Para>
<Para>Click Discard Changes to throw out the changes and close the current
project.</Para>
<Para>Click Cancel if you want to save the current project. Save the current project
before opening the other project.</Para>
</ListItem>
<ListItem>
<Para>Change folders, if necessary.</Para>
<Para>You have to press Return or click Update before the folder change is
registered.</Para>
</ListItem>
<ListItem>
<Para>Double-click the appropriate project file (<Filename>.bip</Filename> suffix) in the Files list</Para>
<Para><Emphasis>Or,</Emphasis> select the file and click Open.</Para>
<Para>The name of the project will be displayed in the title bar of the App Builder
primary window and the selected project will be displayed in the Project
Organizer.</Para>
<Graphic Entityref="ABUG.proj.fig.2" Id="ABUG.proj.igrph.2"></Graphic>
</ListItem>
<ListItem>
<Para>In the module array of the Project Organizer, select the modules you want to
display and choose Show from the Module menu to display the module
interfaces.</Para>
<Para>See
<!--Original XRef content: '&xd2;To Show a Hidden Module&xd3; on page&numsp;18'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.proj.mkr.9"> for detailed instructions.</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="ABUG.proj.div.5" Role="Procedure">
<Title>To Save a Project<IndexTerm><Primary>projects</Primary><Secondary>saving</Secondary></IndexTerm><IndexTerm><Primary>saving</Primary><Secondary>project</Secondary></IndexTerm></Title>
<Para>A project is only saved when you explicitly choose to save it, so be sure to save
often and regularly.</Para>
<OrderedList>
<ListItem>
<Para>Choose Save Project from the File menu of the App Builder primary
window or Save from the Project menu of the Project Organizer.</Para>
<Para>If you have saved the project before, the project will be saved without
comment.</Para>
<Para>If this is the first time you have saved the project, the Save Project dialog
box will be displayed.</Para>
</ListItem>
<ListItem>
<Para>Change to the appropriate folder.</Para>
<Para>You will normally want a separate folder for each project you work on. You
are apt to have Makefile problems otherwise.</Para>
</ListItem>
<ListItem>
<Para>Type a file name in the Enter file name field.</Para>
<Para>You do not have to append <Filename>.bip</Filename> to the project name; this is done
automatically when you save a project.</Para>
</ListItem>
<ListItem>
<Para>Click Save.</Para>
<Para>The project will be saved.</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="ABUG.proj.div.6" Role="Procedure">
<Title Id="ABUG.proj.mkr.5">To Save a Version of a Project<IndexTerm><Primary>projects</Primary><Secondary>saving in different folder</Secondary></IndexTerm><IndexTerm><Primary>saving</Primary><Secondary>project to different folder</Secondary></IndexTerm></Title>
<Para>Do the following to save a version of the current project in a different folder.
You might want to do this so that you can compare two versions of a project or
put the two versions out for review. If you have made unsaved changes to the
current project those changes will be saved in the new project only.</Para>
<OrderedList>
<ListItem>
<Para>Choose Save Project As from the File menu of the App Builder primary
window or Save As from the Project menu of the Project Organizer.</Para>
<Para>The Save Project dialog box will be displayed, with the current project name
in the Enter file name field.</Para>
</ListItem>
<ListItem>
<Para>Change to another folder.</Para>
</ListItem>
<ListItem>
<Para>Type a name in the Enter file name field.</Para>
</ListItem>
<ListItem>
<Para>Click Save.</Para>
<Para>The project&mdash;the project file (<Filename>.bip</Filename> suffix) and all of the module files (<Filename>.bil</Filename>
suffixes)&mdash;has been copied to another folder. The original project and
module files are not affected. The new project will now be the current
project; its name will be displayed in the title bar of the App Builder
primary window.</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="ABUG.proj.div.7" Role="Procedure">
<Title>To Rename a Project<IndexTerm><Primary>projects</Primary><Secondary>renaming</Secondary></IndexTerm><IndexTerm><Primary>renaming</Primary><Secondary>projects</Secondary></IndexTerm></Title>
<Para>Do the following to give the current project a different name. The modules that
comprise the current project will become part of a new project with a new
name and <Emphasis>the current project will</Emphasis> <Emphasis>no longer exist</Emphasis>. See
<!--Original XRef content: '&xd2;To Save a Version of a
Project'--><XRef Role="SectionTitle" Linkend="ABUG.proj.mkr.5"> above if you want to save a <Symbol Role="Variable">version</Symbol> of the the current project.</Para>
<OrderedList>
<ListItem>
<Para>Choose Save Project As from the File menu of the App Builder primary
window or Save As from the Project menu of the Project Organizer.</Para>
<Para>The Save Project dialog box will be displayed, with the current project name
in the Enter file name field.</Para>
</ListItem>
<ListItem>
<Para>Modify the name or type in a new name in the Enter file name field.</Para>
</ListItem>
<ListItem>
<Para>Click Save.</Para>
<Para>A message dialog box will be displayed for each module in the project,
telling you that the module exists and giving you the option to overwrite it
or cancel the operation.</Para>
</ListItem>
<ListItem>
<Para>Click Overwrite for each module if you want to rename the project and save
the module.</Para>
<Para>Click Cancel if you do not want to rename the project and overwrite the
current module.</Para>
<Para>If you click Overwrite for each of the modules the project will be renamed;
the new project name will be displayed in the title bar of the App Builder
primary window. The old project file (<Filename>.bip</Filename> suffix) will still be in the folder,
but it will not be the active project file. If you generate code for the project
and run <Command>make</Command> in the folder, the new project name will be used.</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="ABUG.proj.div.8" Role="Procedure">
<Title>To Save a Project to a File (Encapsulate Project)<IndexTerm><Primary>encapsulated project file</Primary></IndexTerm><IndexTerm><Primary>projects</Primary><Secondary>saving as encapsulated file</Secondary></IndexTerm><IndexTerm><Primary>saving</Primary><Secondary>project to encapsulated file</Secondary></IndexTerm></Title>
<Para>A project is comprised of one or more modules. Normally a project file is saved
in a file with a <Filename>.bip</Filename> suffix, and each module file is saved in a separate file
with a <Filename>.bil</Filename> suffix. To save a project as a single file (for convenience in mailing
the project to someone, for instance):</Para>
<OrderedList>
<ListItem>
<Para>Open the project, as described in
<!--Original XRef content: '&xd2;To Open an Existing Project&xd3; on page&numsp;9'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.proj.mkr.4">.</Para>
</ListItem>
<ListItem>
<Para>Choose Save Project As from the File menu of the App Builder primary
window or Save As from the Project menu of the Project Organizer.</Para>
</ListItem>
<ListItem>
<Para>Change to the appropriate folder, if necessary.</Para>
</ListItem>
<ListItem>
<Para>Select Save As Encapsulated Project.</Para>
<Para>The name of the current project will be displayed in the Enter file name
field, with a <Filename>.bix</Filename> (builder interface exchange) suffix.</Para>
</ListItem>
<ListItem>
<Para>Click Save or press Return.</Para>
</ListItem>
</OrderedList>
<Note>
<Para>When a project is saved as an encapsulated file, the <Filename>.bip</Filename> file is not
affected. When an encapsulated project is opened in App Builder, it is opened
just like any other project. When you attempt to save a project that was opened
from an encapsulated file, a message dialog box will be displayed, explaining
that the project will be saved as individual files. Choose Save Project As if you
want to save it as an encapsulated project again.</Para>
</Note>
</Sect2>
<Sect2 Id="ABUG.proj.div.9" Role="Procedure">
<Title>To Close a Project<IndexTerm><Primary>projects</Primary><Secondary>closing</Secondary></IndexTerm><IndexTerm><Primary>closing projects</Primary></IndexTerm></Title>
<OrderedList>
<ListItem>
<Para>Choose Close Project from the File menu of the App Builder primary
window or Close from the Project menu of the Project Organizer.</Para>
<Para>If you have made changes since saving the project a message dialog box will
be displayed, giving you the chance to discard the changes or to cancel the
close operation.</Para>
</ListItem>
</OrderedList>
</Sect2>
</Sect1>
<Sect1 Id="ABUG.proj.div.10">
<Title Id="ABUG.proj.mkr.6">Creating, Importing, Exporting, and Saving Modules</Title>
<Para>A <Symbol Role="Variable">module</Symbol> is a logical unit of a project. Each window and dialog in App Builder
is a module of the App Builder project, for instance. A module is created when
you choose New Module from the File menu of the App Builder primary
window or New from the Module menu of the Project Organizer.</Para>
<Para>You do not have to create a new module for each window, but in most cases
you will want to: this will make maintaining modules simpler and will allow
you to use a module for various applications.</Para>
<Para>All module files in a project are saved when the project is saved. You can
explicitly save a particular module by choosing Save from the Module menu of
the Project Organizer. A saved module file has a <Filename>.bil</Filename> (builder interface
language) suffix.</Para>
<Sect2 Id="ABUG.proj.div.11" Role="Procedure">
<Title>To Create a New Module<IndexTerm><Primary>creating</Primary><Secondary>modules</Secondary></IndexTerm><IndexTerm><Primary>modules</Primary><Secondary>creating</Secondary></IndexTerm></Title>
<Para>Do the following to create a new module, which will become part of the
current project.</Para>
<OrderedList>
<ListItem>
<Para>Choose New Module from the File menu of the App Builder primary
window or New from the Module menu of the Project Organizer.</Para>
<Para>The Module Name dialog box will be displayed, with Untitled selected as
the default name:</Para>
<Graphic Entityref="ABUG.proj.fig.3" Id="ABUG.proj.igrph.3"></Graphic>
<Note>
<Para>If you drag and drop a window on the workspace after creating a new
project, the Module Name dialog box will be displayed, just as if you had
chosen New Module from the File menu.</Para>
</Note>
</ListItem>
<ListItem>
<Para>In the dialog box, type in the name you want to give the new module.<IndexTerm>
<Primary>modules</Primary>
<Secondary>naming</Secondary>
</IndexTerm><IndexTerm>
<Primary>naming</Primary>
<Secondary>modules</Secondary>
</IndexTerm>
</Para>
</ListItem>
<ListItem>
<Para>Click Apply or press Return.</Para>
<Para>The name of the new module will appear in the Editing Module field at the
bottom of the App Builder primary window. Any windows you drag from
the Windows palette and drop on the workspace will be part of the new
module.</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="ABUG.proj.div.12" Role="Procedure">
<Title>To Import a Module into a Project<IndexTerm><Primary>modules</Primary><Secondary>importing</Secondary></IndexTerm><IndexTerm><Primary>importing</Primary><Secondary>modules</Secondary></IndexTerm></Title>
<Para>To import an existing module into the current project:</Para>
<OrderedList>
<ListItem>
<Para>Choose Import Module from the File menu of the App Builder primary
window or Import from the Module menu of the Project Organizer.</Para>
<Para>The Import File dialog box will be displayed.</Para>
</ListItem>
<ListItem>
<Para>Change to the folder where the module (<Filename>.bil</Filename> suffix) file is saved.</Para>
</ListItem>
<ListItem>
<Para>Change the Import Format type, if necessary.</Para>
<Para>By default, BIL format is selected. If the file you are importing is a UIL file,
click the UIL button. The file will be converted to BIL format when it is
imported.<IndexTerm>
<Primary>importing</Primary>
<Secondary>module in UIL format</Secondary>
</IndexTerm><IndexTerm>
<Primary>UIL format</Primary>
<Secondary>importing modules in</Secondary>
</IndexTerm><IndexTerm>
<Primary>modules</Primary>
<Secondary>importing in UIL format</Secondary>
</IndexTerm>
</Para>
</ListItem>
<ListItem>
<Para>Change Import By method, if necessary.</Para>
<Para>By default, Import By Copy is selected. If you want to import the module
by reference rather than making a copy of it, click the Reference button.</Para>
<Note>
<Para>Import By Reference, which causes module files to be shared, can be
dangerous, since the actual module file may be changed or deleted
inadvertantly.</Para>
</Note>
</ListItem>
<ListItem>
<Para>Double-click on the module to be imported in the Files list.</Para>
<Para><Emphasis>Or,</Emphasis> select the file and click Import.</Para>
<Para>The module will be added to the current project the next time you save the
project.</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="ABUG.proj.div.13" Role="Procedure">
<Title>To Save a Module<IndexTerm><Primary>modules</Primary><Secondary>saving</Secondary></IndexTerm><IndexTerm><Primary>saving</Primary><Secondary>modules</Secondary></IndexTerm></Title>
<Para>All modules in a project are saved when you save the project. If you want to
save individual modules, you can do so in the Project Organizer.
</Para>
<OrderedList>
<ListItem>
<Para>Display the Project Organizer by choosing Project Organizer from the File
menu of the App Builder primary window.</Para>
<Graphic Entityref="ABUG.proj.fig.4" Id="ABUG.proj.igrph.4"></Graphic>
</ListItem>
<ListItem>
<Para>In the module array of the Project Organizer select the module you want to
save.</Para>
</ListItem>
<ListItem>
<Para>Choose Save from the Module menu.</Para>
<Para>If you have saved the module previously during this App Builder session,
the module will be saved without comment.</Para>
<Para>If this is the first time you have saved the module, the Save BIL File dialog
box will be displayed, with the name of the selected module (with a <Filename>.bil</Filename>
suffix) in the Enter file name field.</Para>
</ListItem>
<ListItem>
<Para>Change to the folder where you want to save the module, if necessary.</Para>
</ListItem>
<ListItem>
<Para>Click Save or press Return.</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="ABUG.proj.div.14" Role="Procedure">
<Title>To Rename a Module<IndexTerm><Primary>renaming</Primary><Secondary>modules</Secondary></IndexTerm><IndexTerm><Primary>modules</Primary><Secondary>renaming</Secondary></IndexTerm></Title>
<Para>Use Save As from the Module menu of the Project Organizer to rename a
module. When you save the current project, the new module name will replace
the old name in the project (<Filename>.bip</Filename>) file. The original module will still be in the
project folder, but it will not be part of the project. To save a module without
affecting the project, see
<!--Original XRef content: '&xd2;To Export a Module&xd3; on page&numsp;16'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.proj.mkr.7">.</Para>
<OrderedList>
<ListItem>
<Para>Display the Project Organizer by choosing Project Organizer from the File
menu of the App Builder primary window.</Para>
</ListItem>
<ListItem>
<Para>Select the module you want to rename.</Para>
</ListItem>
<ListItem>
<Para>Choose Save As from the Module menu.</Para>
<Para>The Save BIL File dialog box will be displayed, with the name of the
selected module (with a <Filename>.bil</Filename> suffix) in the Enter file name field.</Para>
</ListItem>
<ListItem>
<Para>Type a file name in the Enter file name field.</Para>
</ListItem>
<ListItem>
<Para>Click Save or press Return.</Para>
<Para>The new module name will replace the old name in the project (<Filename>.bip</Filename>) file
the next time you save the project.</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="ABUG.proj.div.15" Role="Procedure">
<Title Id="ABUG.proj.mkr.7">To Export a Module<IndexTerm><Primary>modules</Primary><Secondary>exporting</Secondary></IndexTerm><IndexTerm><Primary>exporting</Primary><Secondary>modules</Secondary></IndexTerm></Title>
<Para>Do the following to save a <Emphasis>copy</Emphasis> of a module in the current project. The current
project is not affected when you export a module. A new module is created,
which is not part of the current project; the original module remains as part of
the project.</Para>
<OrderedList>
<ListItem>
<Para>From the File menu of the App Builder primary window choose Export
Module and select one of the currently open modules from the submenu
displayed.</Para>
<Para><Emphasis>Or,</Emphasis> in the Project Organizer select the module to be exported in the module
array and choose Export from the Module menu.</Para>
<Para>The Export File dialog box will be displayed, with the selected module
name in the Enter file name field.</Para>
</ListItem>
<ListItem>
<Para>Type a new file name in the Enter file name field</Para>
<Para><Emphasis>Or,</Emphasis> change to the folder where you want to save the module and type a file
name in the Enter file name field.</Para>
<Para>If you want to save a version of the module in the current folder, do not
change folders. Simply give the module a different name.</Para>
</ListItem>
<ListItem>
<Para>Click Export or press Return.</Para>
<Para>A copy of the selected module has been created.</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="ABUG.proj.div.16" Role="Procedure">
<Title>To Save a Module in UIL Format<IndexTerm><Primary>exporting</Primary><Secondary>module in UIL format</Secondary></IndexTerm><IndexTerm><Primary>UIL format</Primary><Secondary>saving module in</Secondary></IndexTerm><IndexTerm><Primary>modules</Primary><Secondary>saving in UIL format</Secondary></IndexTerm><IndexTerm><Primary>saving</Primary><Secondary>module in UIL format</Secondary></IndexTerm></Title>
<Para>To save a module in UIL (user interface language) format instead of BIL
(builder interface language) format:</Para>
<OrderedList>
<ListItem>
<Para>Choose Export Module from the File menu of the App Builder primary
window and select the module you want to export from the submenu that is
displayed.</Para>
<Para><Emphasis>Or,</Emphasis> in the Project Organizer select the module to be exported and choose
Export from the Module menu.</Para>
<Para>The Export File dialog box will be displayed, with the selected module
name in the Enter file name field.</Para>
</ListItem>
<ListItem>
<Para>Change to the folder where you want to save the module, if necessary.</Para>
</ListItem>
<ListItem>
<Para>Select Save As UIL (above the Enter file name field).</Para>
<Para>The file name suffix will change from <Filename>.bil</Filename> to <Filename>.uil</Filename>.</Para>
</ListItem>
<ListItem>
<Para>Type a file name in the Enter file name field, if necessary.</Para>
<Para>If the name in the Enter file name field is OK, leave it as it is.</Para>
</ListItem>
<ListItem>
<Para>Click Export or press Return.</Para>
<Para>The file will be saved with a <Filename>.uil</Filename> suffix.</Para>
</ListItem>
</OrderedList>
</Sect2>
</Sect1>
<Sect1 Id="ABUG.proj.div.17">
<Title Id="ABUG.proj.mkr.8">Showing, Hiding, and Removing Modules</Title>
<Para>For a small project you may always want to show all modules. For a large
project with many modules you may want to show only one or two modules at
a time. Use the Project Organizer to show and hide modules, and to remove
modules from projects. The Project Organizer displays icons for all of the
modules that comprise a project. In the Project Organizer you can display or
hide the interfaces for selected modules and you can remove modules from a
project.
</Para>
<Graphic Entityref="ABUG.proj.fig.5" Id="ABUG.proj.igrph.5"></Graphic>
<Sect2 Id="ABUG.proj.div.18" Role="Procedure">
<Title Id="ABUG.proj.mkr.9">To Show a Hidden Module<IndexTerm><Primary>modules</Primary><Secondary>showing</Secondary></IndexTerm><IndexTerm><Primary>showing modules</Primary></IndexTerm></Title>
<OrderedList>
<ListItem>
<Para>Display the Project Organizer by choosing Project Organizer from the File
menu of the App Builder primary window.</Para>
</ListItem>
<ListItem>
<Para>Double-click the module icons in the module array of the Project Organizer
that you want to show.</Para>
<Para><Emphasis>Or,</Emphasis> select the module icons and choose Show from the Module menu.</Para>
<Para>The user interfaces for the selected modules will be displayed.</Para>
</ListItem>
</OrderedList>
<Note>
<Para>If a module you want to show is in a different project, you will first
have to open the other project. See
<!--Original XRef content: '&xd2;To Open an Existing Project&xd3; on page&numsp;9'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.proj.mkr.4"> for
instructions.</Para>
</Note>
</Sect2>
<Sect2 Id="ABUG.proj.div.19" Role="Procedure">
<Title>To Hide a Shown Module<IndexTerm><Primary>modules</Primary><Secondary>hiding</Secondary></IndexTerm><IndexTerm><Primary>hiding modules</Primary></IndexTerm></Title>
<Para>To hide a module that is displayed (to clean up the workspace so that you can
more easily work on another module, for instance):</Para>
<OrderedList>
<ListItem>
<Para>Display the Project Organizer by choosing Project Organizer from the File
menu of the App Builder primary window.</Para>
</ListItem>
<ListItem>
<Para>Select the modules in the module array that you want to hide.</Para>
<Para>Select one module by clicking mouse button 1 on it. To add to the selection
click mouse button 2 on other modules. To select a number of adjacent
modules drag-select with mouse button 1 or mouse button 2, starting above
and to the left of the first module to be selected.</Para>
</ListItem>
<ListItem>
<Para>Choose Hide from the Module menu.</Para>
<Para>The user interfaces for the selected modules will be hidden.</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="ABUG.proj.div.20" Role="Procedure">
<Title>To Remove a Module from a Project<IndexTerm><Primary>projects</Primary><Secondary>removing a module from</Secondary></IndexTerm><IndexTerm><Primary>modules</Primary><Secondary>removing from project</Secondary></IndexTerm><IndexTerm><Primary>removing module from project</Primary></IndexTerm></Title>
<Para>When you remove a module from the current project, the module file will still
exist in the project folder, but it will no longer be part of the project. The
module file name will be removed from the project file (<Filename>.bip</Filename> suffix) the next
time the project is saved. With the appropriate project open, do the following
to remove one or more modules from the project.</Para>
<OrderedList>
<ListItem>
<Para>Display the Project Organizer by choosing Project Organizer from the File
menu of the App Builder primary window.</Para>
</ListItem>
<ListItem>
<Para>Select the modules in the module array that you want to remove.</Para>
</ListItem>
<ListItem>
<Para>Choose Remove from the Module menu of the Project Organizer.</Para>
</ListItem>
</OrderedList>
</Sect2>
</Sect1>
</Chapter>
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 10:11:44-->

View File

@@ -0,0 +1,445 @@
<!-- $XConsortium: ch03.sgm /main/6 1996/09/08 19:48:08 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="ABUG.layo.div.1">
<Title Id="ABUG.layo.mkr.1">Laying Out a User Interface</Title>
<Para>The basic App Builder process for laying out an interface is to drag objects
from the App Builder primary window and drop them on the workspace or on
other App Builder objects.</Para>
<Para>See
<!--Original XRef content: 'Appendix&numsp;A, &xd2;App Builder Windows and Dialog Boxes'--><XRef Role="AppendixNumAndTitle" Linkend="ABUG.apRPE.mkr.1"> for a full
description of the primary window and its elements, and for a description of
the Module Browser.</Para>
<InformalTable Id="ABUG.layo.itbl.1" Frame="All">
<TGroup Cols="1">
<ColSpec Colname="1" Colwidth="4.0 in">
<TBody>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Dragging and Dropping Palette Objects22'--><XRef Role="JumpText" Linkend="ABUG.layo.mkr.2"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'To Create a Main Window, Custom Dialog, or File Selection Dialog22'--><XRef Role="JumpText" Linkend="ABUG.layo.mkr.3"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'To Create a Window with a Spanning Control Pane22'--><XRef Role="JumpText" Linkend="ABUG.layo.mkr.4"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Selecting Interface Objects24'--><XRef Role="JumpText" Linkend="ABUG.layo.mkr.5"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Editing Objects in the Interface or in the Browser26'--><XRef Role="JumpText" Linkend="ABUG.layo.mkr.7"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'To Cut or Copy Objects26'--><XRef Role="JumpText" Linkend="ABUG.layo.mkr.8"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'To Paste Objects27'--><XRef Role="JumpText" Linkend="ABUG.layo.mkr.9"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Aligning and Distributing Objects in an Interface28'--><XRef Role="JumpText" Linkend="ABUG.layo.mkr.10"></Para></Entry>
</Row>
</TBody>
</TGroup>
</InformalTable>
<Sect1 Id="ABUG.layo.div.2">
<Title Id="ABUG.layo.mkr.2">Dragging and Dropping Palette Objects</Title>
<Para>The rules for dropping palette objects are simple; they are enforced by error
messages when they are violated.</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>Windows (main window, custom dialog, file selection dialog) are dropped
on the workspace.</Para>
</ListItem>
<ListItem>
<Para>Panes (control, draw area, text, and term) are dropped on windows or on
other panes.</Para>
</ListItem>
<ListItem>
<Para>Controls (buttons, boxes, choice objects, and others) are dropped on a
control pane. The menu bar, which is on the Controls palette, is not strictly a
control; it is dropped on a main window only.</Para>
</ListItem>
</ItemizedList>
<Sect2 Id="ABUG.layo.div.3" Role="Procedure">
<Title Id="ABUG.layo.mkr.3">To Create a Main Window, Custom Dialog, or File Selection Dialog</Title>
<OrderedList>
<ListItem>
<Para>Drag a main window, custom dialog, or a file selection dialog box from the
Windows palette and drop it on the workspace.<IndexTerm>
<Primary>creating</Primary>
<Secondary>main window</Secondary>
</IndexTerm><IndexTerm>
<Primary>windows</Primary>
<Secondary>creating main</Secondary>
</IndexTerm><IndexTerm>
<Primary>main window</Primary>
<Secondary>creating</Secondary>
</IndexTerm><IndexTerm>
<Primary>custom dialog</Primary>
<Secondary>creating</Secondary>
</IndexTerm><IndexTerm>
<Primary>creating</Primary>
<Secondary>custom dialog</Secondary>
</IndexTerm>
</Para>
<Para>If you haven't previously named the module, the Module Name dialog box
will be displayed. Move the cursor to the Module Name dialog box, type a
name, and click Apply.</Para>
<Para>The module name will be displayed in the status area at the bottom of the
window.</Para>
</ListItem>
<ListItem>
<Para>Edit the properties of the window object, if necessary.</Para>
<Para>This can be done now or later. See
<!--Original XRef content: '&xd2;To Edit Properties of an Object&xd3; on
page&numsp;32'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.edprp.mkr.3"> for general instructions. See
<!--Original XRef content: '&xd2;Example: Editing Main Window
Properties&xd3; on page&numsp;35'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.edprp.mkr.6"> for specific instructions for a main window or a
primary main window.</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="ABUG.layo.div.4" Role="Procedure">
<Title Id="ABUG.layo.mkr.4">To Create a Window with a Spanning Control Pane<IndexTerm><Primary>spanning control pane</Primary><Secondary>description of</Secondary></IndexTerm><IndexTerm><Primary>windows</Primary><Secondary>spanning control pane</Secondary></IndexTerm></Title>
<Para>Often you will want a control pane to fill the entire blank pane area of a main
window or custom dialog. You can then drop controls or other panes on the
control pane to create a complex window such as the App Builder primary
window. Do the following once you have dropped a main window or custom
dialog on the workspace.</Para>
<OrderedList>
<ListItem>
<Para>Drag a control pane from the Panes palette and drop it on the top-left corner<IndexTerm>
<Primary>creating</Primary>
<Secondary>spanning control pane</Secondary>
</IndexTerm><IndexTerm>
<Primary>spanning control pane</Primary>
<Secondary>creating</Secondary>
</IndexTerm>
of the main window or custom dialog.</Para>
<Graphic Entityref="ABUG.layo.fig.1" Id="ABUG.layo.igrph.1"></Graphic>
</ListItem>
<ListItem>
<Para>Drag the bottom-right corner of the control pane (an arrow pointing
towards a corner will be displayed) beyond the bottom-right corner of the
window and release mouse button 1.</Para>
<Graphic Entityref="ABUG.layo.fig.2" Id="ABUG.layo.igrph.2"></Graphic>
<Para>The control pane will be attached to the four sides of the window. If you
resize the window, the control pane will be resized with it.</Para>
<Para>See
<!--Original XRef content: '&xd2;To Attach Objects in an Interface&xd3; on page&numsp;99'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.group.mkr.9"> for details about
attachments.</Para></ListItem>
</OrderedList>
</Sect2>
</Sect1>
<Sect1 Id="ABUG.layo.div.5">
<Title Id="ABUG.layo.mkr.5">Selecting Interface Objects</Title>
<Para>For many actions, including editing, moving, aligning, and grouping, you need
to select one or more objects in an interface. You can only multiply-select
<Emphasis>siblings</Emphasis>&mdash;objects that are children of the same parent. (All windows in a project
are siblings, for instance, as are panes in a window and control objects in a
single control pane. Panes that are dropped on a control pane and created as
children of the control pane function like control objects in the control pane.)</Para>
<Para>You can select objects in the interface or in the Module Browser. See
<!--Original XRef content: '&xd2;Module
Browser&xd3; on page&numsp;128'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.apWDB.mkr.8"> for a description of the Browser. See
<!--Original XRef content: '&xd2;Editing Objects in
the Interface or in the Browser&xd3; on page&numsp;26'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.layo.mkr.7"> for information about cutting,
copying, and pasting interface objects.</Para>
<Para>Only control objects can be grouped or aligned (using the Align and Distribute
functions).</Para>
<Sect2 Id="ABUG.layo.div.6" Role="Procedure">
<Title>To Select Window or Pane Objects in the Interface or the Browser</Title>
<Para>Selecting an object in the Module Browser also selects it in the interface, and
vice versa.<IndexTerm>
<Primary>selecting</Primary>
<Secondary>single object</Secondary>
</IndexTerm>
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>Select a single window (main window, custom dialog, or file selection dialog
box) by clicking mouse button 1 on the object in the Browser or in the
interface (click in the status area at the bottom of the window object).</Para>
</ListItem>
<ListItem>
<Para>Select an additional window by clicking mouse button 2 on the window in
the browser or in the interface.</Para>
</ListItem>
<ListItem>
<Para>Select a single pane by clicking mouse button 1 on the pane in the Browser
or in the interface.</Para>
</ListItem>
<ListItem>
<Para>Select additional panes in the same window by clicking mouse button 2 on
the pane in the Browser or in the interface.</Para>
</ListItem>
</ItemizedList>
</Sect2>
<Sect2 Id="ABUG.layo.div.7" Role="Procedure">
<Title Id="ABUG.layo.mkr.6">To Select Control Objects in the Interface or the Browser<IndexTerm><Primary>objects</Primary><Secondary>selecting</Secondary></IndexTerm><IndexTerm><Primary>control objects</Primary><Secondary>selecting</Secondary></IndexTerm><IndexTerm><Primary>selecting</Primary><Secondary>objects</Secondary></IndexTerm></Title>
<Para>Selecting an object in the Module Browser also selects it in the interface, and
vice versa.<IndexTerm>
<Primary>selecting</Primary>
<Secondary>single object</Secondary>
</IndexTerm>
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>Select one object by clicking it in the interface or in the Module Browser.</Para>
</ListItem>
<ListItem>
<Para>Select a number of adjacent objects by positioning the mouse cursor above
and to the left of the objects, pressing mouse button 1, and dragging the<IndexTerm>
<Primary>multiple-select</Primary>
</IndexTerm><IndexTerm>
<Primary>selecting</Primary>
<Secondary>multiple objects</Secondary>
</IndexTerm>
mouse to encompass other objects down and to the right of the first object.<Literal><IndexTerm>
<Primary>drag-select</Primary>
</IndexTerm></Literal></Para>
</ListItem>
<ListItem>
<Para>Add or subtract an object to the current selection by clicking mouse button 2
on the object.</Para>
<Para>If an object is selected, clicking mouse button 2 on it deselects it.</Para>
</ListItem>
<ListItem>
<Para>To add a number of adjacent objects to those that are selected, position the
mouse cursor above and to the left of the objects to be added, press mouse
button 2, and drag the mouse to encompass other objects down and to the
right of the first object.<IndexTerm>
<Primary>objects</Primary>
<Secondary>adding to selection</Secondary>
</IndexTerm>
</Para>
</ListItem>
<ListItem>
<Para>To deselect all but one object, click mouse button 1 on an object.<IndexTerm>
<Primary>objects</Primary>
<Secondary>deselecting</Secondary>
</IndexTerm><IndexTerm>
<Primary>deselecting objects</Primary>
</IndexTerm>
</Para>
<Para>Only that object will be selected.</Para>
</ListItem>
</ItemizedList>
<Note>
<Para>When you have selected a number of objects in the interface, all the
objects will move if you press mouse button 1 on one of the objects and move
the mouse. A rectangular border will be drawn around the objects as you move
the mouse.</Para>
</Note>
</Sect2>
</Sect1>
<Sect1 Id="ABUG.layo.div.8">
<Title Id="ABUG.layo.mkr.7">Editing Objects in the Interface or in the Browser<IndexTerm><Primary>objects</Primary><Secondary>editing</Secondary></IndexTerm><IndexTerm><Primary>editing</Primary><Secondary>interface objects</Secondary></IndexTerm><IndexTerm><Primary>browser</Primary><Secondary>editing objects</Secondary></IndexTerm><IndexTerm><Primary>module browser</Primary><Secondary>editing objects</Secondary></IndexTerm><IndexTerm><Primary>editing</Primary><Secondary>browser</Secondary></IndexTerm><IndexTerm><Primary>editing</Primary><Secondary>interface</Secondary></IndexTerm></Title>
<Para>Once you have created an interface by dragging and dropping objects on the
workspace or on other App Builder objects, you may want to edit the interface
in various ways. You can cut, copy, paste, and delete objects, and you can undo
the last editing function performed&mdash;and you can perform these functions in
the interface or in the Module Browser, or between the interface and the
Browser. See
<!--Original XRef content: '&xd2;Module Browser&xd3; on page&numsp;128'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.apWDB.mkr.8"> for a description of the Browser.</Para>
<Para>You can copy or cut any object you can select&mdash;from a single control to a
complex window with multiple panes and many controls&mdash;and you can paste
that object in any open module.</Para>
<Note>
<Para>Objects selected in the interface are also selected in the Browser, and
vice versa. See
<!--Original XRef content: '&xd2;To Select Control Objects in the Interface or the Browser&xd3; on
page&numsp;24'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.layo.mkr.6"> for instructions for selecting objects. When you edit objects in the
Module Browser, be sure to check to see what is happening in the
interface&mdash;especially if you are cutting and pasting.</Para>
</Note>
<Sect2 Id="ABUG.layo.div.9" Role="Procedure">
<Title Id="ABUG.layo.mkr.8">To Cut or Copy Objects<IndexTerm><Primary>cutting objects</Primary></IndexTerm><IndexTerm><Primary>copying objects</Primary></IndexTerm><IndexTerm><Primary>objects</Primary><Secondary>cut or copy</Secondary></IndexTerm></Title>
<OrderedList>
<ListItem>
<Para>Select the objects you want to edit in the interface or the Browser.</Para>
</ListItem>
<ListItem>
<Para>Choose Cut or Copy from an Edit or pop-up menu.</Para>
<Para>Choose Cut or Copy from the Edit menu in the App Builder primary
window, from the Edit menu in the Module Browser, or from the pop-up
menu in either the primary window or the Browser (displayed by pressing
mouse button 3 in the interface or the Browser).</Para>
<Para>The chosen function (cut or copy) will be performed. If you choose Cut, the
selected objects will be deleted from the interface and placed in the App
Builder edit buffer. If you choose Copy, the selected objects will be placed in
the edit buffer.</Para>
</ListItem>
</OrderedList>
<Para>Choose Undo before performing any other function to cancel the cut or copy
operation.</Para>
</Sect2>
<Sect2 Id="ABUG.layo.div.10" Role="Procedure">
<Title Id="ABUG.layo.mkr.9">To Paste Objects<IndexTerm><Primary>objects</Primary><Secondary>paste</Secondary></IndexTerm><IndexTerm><Primary>pasting objects</Primary></IndexTerm></Title>
<Para>Once you have placed objects in the edit buffer by cutting or copying, you can
paste the objects in the interface with the Paste function.</Para>
<OrderedList>
<ListItem>
<Para>Select the paste location.</Para>
<Para><StructName Role="typedef">Window</StructName>: Windows can be pasted if any App Builder object is selected.
<Emphasis>Pane</Emphasis>: Panes can be pasted if an App Builder window or control pane is
selected.
<Emphasis>Control</Emphasis>: Controls can be pasted if an App Builder control pane or control
object is selected. If a control object is selected, the controls will be pasted in
the parent control pane.</Para>
</ListItem>
<ListItem>
<Para>Choose Paste from the Edit menu in the App Builder primary window, from
the Edit menu in the Module Browser, or from the pop-up menu in either
the primary window or the Browser (displayed by pressing mouse button 3
in the interface or the Browser).</Para>
<Para>The objects will be added to the current module and will be displayed
appropriately in the interface.</Para>
</ListItem>
</OrderedList>
<Note>
<Para>Pasted objects may obscure other objects; you may have to do some
moving and aligning after the paste. See
<!--Original XRef content: '&xd2;Aligning and Distributing Objects in
an Interface&xd3; on page&numsp;28'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.layo.mkr.10"> for instructions.</Para>
</Note>
<Para>Choose Undo before performing any other function to cancel the paste
operation.</Para>
</Sect2>
<Sect2 Id="ABUG.layo.div.11" Role="Procedure">
<Title>To Delete Objects<IndexTerm><Primary>objects</Primary><Secondary>deleting</Secondary></IndexTerm><IndexTerm><Primary>deleting objects</Primary></IndexTerm></Title>
<OrderedList>
<ListItem>
<Para>Select the objects you want to delete in the interface or the Browser.</Para>
</ListItem>
<ListItem>
<Para>Choose Delete from the Edit menu in the App Builder primary window,
from the Edit menu in the Module Browser, or from the pop-up menu in
either the primary window or the Browser (displayed by pressing mouse
button 3 in the interface or the Browser).</Para>
<Para>The objects will be deleted from the interface.</Para>
</ListItem>
</OrderedList>
<Para>Choose Undo before performing any other function to cancel the delete
operation.</Para>
</Sect2>
</Sect1>
<Sect1 Id="ABUG.layo.div.12">
<Title Id="ABUG.layo.mkr.10">Aligning and Distributing Objects in an Interface</Title>
<Para>This section describes &ldquo;static&rdquo; alignment and distribution of objects: the objects
are aligned or distributed one time only. See
<!--Original XRef content: 'Chapter&numsp;7, &xd2;Grouping and
Attaching Objects'--><XRef Role="ChapNumAndTitle" Linkend="ABUG.group.mkr.1">, for instructions to find out how to group and attach objects
for &ldquo;dynamic&rdquo; alignment.</Para>
<Sect2 Id="ABUG.layo.div.13" Role="Procedure">
<Title Id="ABUG.layo.mkr.11">To Align Control Objects in an Interface<IndexTerm><Primary>objects</Primary><Secondary>aligning</Secondary></IndexTerm><IndexTerm><Primary>aligning objects</Primary></IndexTerm></Title>
<OrderedList>
<ListItem>
<Para>Select two or more objects.</Para>
<Para>See
<!--Original XRef content: '&xd2;To Select Control Objects in the Interface or the Browser&xd3; on page&numsp;24'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.layo.mkr.6">
for instructions.</Para>
</ListItem>
<ListItem>
<Para>Choose Align from the Layout menu of the primary window or the interface
pop-up menu (displayed by pressing mouse button 3) and select one of the
alignment icons from the submenu.</Para>
<Para>The selected objects will be aligned according to the alignment choice.
Choices are described below. Vertical alignment icons are on the left and are
described first.<IndexTerm>
<Primary>alignment choices</Primary>
</IndexTerm>
</Para>
</ListItem>
</OrderedList>
<Sidebar>
<Para><Graphic Entityref="ABUG.layo.fig.3" Id="ABUG.layo.igrph.3"></Graphic></Para>
</Sidebar>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>Left-edge: Aligns selected objects vertically along their left edges.</Para>
</ListItem>
<ListItem>
<Para>Vertical-center: Aligns selected objects vertically on their horizontal centers.</Para>
</ListItem>
<ListItem>
<Para>Right-edge: Aligns selected objects vertically along their right edges.</Para>
</ListItem>
<ListItem>
<Para>Colon: Aligns selected objects vertically along their colons or labels.</Para>
</ListItem>
<ListItem>
<Para>Top-edge: Aligns selected objects horizontally along their top edges.</Para>
</ListItem>
<ListItem>
<Para>Horizontal-center: Aligns selected objects horizontally on their vertical
centers.</Para>
</ListItem>
<ListItem>
<Para>Bottom-edge: Aligns selected objects horizontally along their bottom edges.</Para>
</ListItem>
<ListItem>
<Para>Grid: Does no alignment at this time.</Para>
</ListItem>
</ItemizedList>
<Note>
<Para>If you select objects that are arranged horizontally and choose a vertical
alignment (or vice versa), the objects will end up on top of one another. You
can unstack the objects by choosing Distribute from the pop-up menu
immediately after the align function (the objects will still be selected). See
<!--Original XRef content: '&xd2;To
Distribute Control Objects Evenly&xd3; on page&numsp;29'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.layo.mkr.12"> for instructions.</Para>
</Note>
</Sect2>
<Sect2 Id="ABUG.layo.div.14" Role="Procedure">
<Title Id="ABUG.layo.mkr.12">To Distribute Control Objects Evenly<IndexTerm><Primary>objects</Primary><Secondary>distributing evenly</Secondary></IndexTerm><IndexTerm><Primary>distributing objects evenly</Primary></IndexTerm></Title>
<OrderedList>
<ListItem>
<Para>Select one or more objects.</Para>
<Para>See
<!--Original XRef content: '&xd2;To Select Control Objects in the Interface or the Browser&xd3; on page&numsp;24'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.layo.mkr.6">
for instructions. Select one object to center it between the edges of its parent.</Para>
</ListItem>
<ListItem>
<Para>Choose Distribute from the Layout menu of the primary window or the
interface pop-up menu (displayed by pressing mouse button 3) and select
one of the distribute icons from the submenu.</Para>
<Para>The selected objects will be distributed or centered according to your choice.</Para>
<Para>Objects will be spaced 10 pixels apart horizontally or vertically if you
choose one of the distribute choices. If you choose one of the centering
choices, the object or objects will be centered within the boundaries of the
parent control pane.</Para>
</ListItem>
</OrderedList>
<Sidebar>
<Para><Graphic Entityref="ABUG.layo.fig.4" Id="ABUG.layo.igrph.4"></Graphic></Para>
</Sidebar>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>Horizontal-space: Distributes selected objects horizontally 10 pixels apart.
The left-most object is the anchored object, which does not move.</Para>
</ListItem>
<ListItem>
<Para>Vertical-space: Distributes selected objects vertically 10 pixels apart. The
top-most object is the anchored object, which does not move.</Para>
</ListItem>
<ListItem>
<Para>Horizontal-center: Centers selected objects horizontally between the left and
right edges of the parent object, maintaining the distance between selected
objects.</Para>
</ListItem>
<ListItem>
<Para>Vertical-center: Centers selected objects vertically between the top and
bottom edges of the parent object, maintaining the distance between
selected objects.</Para>
</ListItem>
</ItemizedList>
</Sect2>
</Sect1>
</Chapter>
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 10:11:44-->

View File

@@ -0,0 +1,297 @@
<!-- $XConsortium: ch04.sgm /main/6 1996/09/08 19:48:17 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="ABUG.edprp.div.1">
<title id="ABUG.edprp.mkr.1">Editing Properties of Interface
Objects</title>
<para>All objects dragged from the App Builder palettes have <emphasis>properties</emphasis> that can be
edited. These properties include object name, color, and a variety of other
characteristics, depending on the object type. Once you have dropped an object
or have created an object in the interface, you will want to customize the
object
by editing it in the Revolving Property Editor. See
<!--Original XRef content: 'Appendix&numsp;B, &xd2;Revolving
Property Editor'--><xref role="AppendixNumAndTitle" linkend="ABUG.apRPE.mkr.1">,
for an illustration of a property editor and descriptions of
each of the elements in all of the property editors.</para>
<informaltable id="ABUG.edprp.itbl.1" frame="All">
<tgroup cols="1">
<colspec colname="1" colwidth="4.0 in">
<tbody>
<row rowsep="1">
<entry><para><!--Original XRef content: 'To Open a Property Editor32'--><xref
role="JumpText" linkend="ABUG.edprp.mkr.2"></para></entry>
</row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'To Edit Properties of an Object32'--><xref
role="JumpText" linkend="ABUG.edprp.mkr.3"></para></entry>
</row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'To Display a Fixed Property Editor33'--><xref
role="JumpText" linkend="ABUG.edprp.mkr.4"></para></entry>
</row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'Example: Editing Main Window Properties35'--><xref
role="JumpText" linkend="ABUG.edprp.mkr.6"></para></entry>
</row>
</tbody>
</tgroup>
</informaltable>
<sect1 id="ABUG.edprp.div.2" role="Procedure">
<title id="ABUG.edprp.mkr.2">To Open a Property Editor<indexterm><primary>property editor</primary><secondary>opening</secondary></indexterm><indexterm><primary>opening</primary><secondary>property editor</secondary></indexterm></title>
<itemizedlist remap="Bullet1"><listitem><para>Double-click an object in the
interface or in the Module Browser to open the Revolving Property Editor
with the clicked-on object selected.</para>
</listitem><listitem><para><emphasis>Or</emphasis>, select an object in the
interface or in the Module Browser and choose Props (Revolving or Fixed)
from the pop-up menu (displayed by pressing mouse button 3 in the interface
or the Browser) to open the property editor with the object selected.</para>
</listitem><listitem><para><emphasis>Or</emphasis>, choose Properties from
the Editors menu in the App Builder primary window.</para>
<para>The Revolving Property Editor will be displayed, with the object most
recently selected in the interface or the Module Browser selected in the
Revolving Property Editor.</para>
</listitem></itemizedlist>
<sect2 id="ABUG.edprp.div.3" role="Procedure">
<title id="ABUG.edprp.mkr.3">To Edit Properties of an Object<indexterm><primary>objects</primary><secondary>editing properties of</secondary></indexterm><indexterm><primary>editing</primary><secondary>object properties</secondary></indexterm></title>
<para>Once you have displayed the property editor, do the following to edit
the properties of an object:</para>
<orderedlist><listitem><para>Choose the object type that you want to edit
from the Object Type menu at the top of the Revolving Property Editor, if
necessary.</para>
<para>If you double-clicked an object to display the Revolving Property Editor
or if the object was selected when you chose Props from one of the pop-up
menus, the object type and the specific object will already be selected.
</para>
<para>If a tear-off (Fixed) editor is displayed, there is no Object Type menu.
</para>
</listitem><listitem><para>Select the object that you want to edit in the
Objects scrolling list, if necessary.</para>
<para>The object may already be selected.</para>
</listitem><listitem><para>Modify any of the properties, as appropriate.
</para>
<para>See <!--Original XRef content: 'Appendix&numsp;B,
&xd2;Revolving Property Edit--><!--or'--><xref role="AppendixNumAndTitle"
linkend="abug.aprpe.mkr.1">, for descriptions of each of the elements
of the property editors.</para>
<note>
<para><literal>List item editing</literal>: once you have the appropriate
number of items in the list, the easiest way to perform item editing in those
property editors that have an item list* is to select the first item in the
list, thus selecting it in the label text field. Type a new name for the
item and click Return. The new name will be displayed in the item list and
the next item in the list will be selected. Continue down the list with this
select, type, Return sequence until all items are completed. *Property
editors with item lists include the choice objects (Radio Box, Check Box,
Option Menu), Combo Box, List, Menu, Menubar, and Spin Box.</para>
</note>
</listitem><listitem><para>Click the Apply button to apply the changes and
leave the property editor displayed.</para>
<para>Click the OK button to apply the changes and close the property editor.
</para>
<para>Click Reset to reset all changed elements to their values at the last
Apply.</para>
<para>Click Cancel to reset all elements to their values at the last Apply
and close the property editor.</para>
</listitem></orderedlist>
<para>See <!--Original XRef content: '&xd2;Example: Editing Main Window Properties&xd3;
on page&numsp;35'--><xref role="SecTitleAndPageNum" linkend="ABUG.edprp.mkr.6">
for specific instructions for editing the properties of a main window.</para>
</sect2>
<sect2 id="ABUG.edprp.div.4" role="Procedure">
<title id="ABUG.edprp.mkr.4">To Display a Fixed Property Editor<indexterm><primary>tear-off property editor, displaying</primary></indexterm><indexterm><primary>fixed property editor, displaying</primary></indexterm><indexterm><primary>displaying</primary><secondary>fixed property editor</secondary></indexterm></title>
<para>The Revolving Property Editor is a single dialog box that displays one
of 20 property editors, depending on the item you choose from the Object
Type option menu. To display a separate, fixed property editor of a specific
object type:</para>
<orderedlist><listitem><para>Select the object you want to edit in the interface
or in the Module Browser. See <!--Original XRef content: '&xd2;Module Browser&xd3;
on page&numsp;128'--><xref role="SecTitleAndPageNum" linkend="ABUG.apWDB.mkr.8">
for a description of the Browser.</para>
</listitem><listitem><para>Choose Props from the pop-up menu (displayed by
pressing mouse button 3 in the interface or in the Module Browser) and select
Fixed from the Props submenu.</para>
<para>A fixed version of the property editor for the selected object type
will be displayed.</para>
</listitem></orderedlist>
<para><emphasis>Or</emphasis></para>
<orderedlist><listitem><para>Choose the object type you want to edit in the
Object Type menu of the Revolving Property Editor.</para>
</listitem><listitem><para>Click the Tear-off button at the top-right of the
Revolving Property Editor.</para>
<para>A fixed version of the property editor for the selected object type
will be displayed.</para>
</listitem></orderedlist>
</sect2>
<sect2 id="ABUG.edprp.div.5" role="Procedure">
<title id="ABUG.edprp.mkr.5">To Select Colors from the Color Chooser<indexterm><primary>setting</primary><secondary>foreground color</secondary></indexterm><indexterm><primary>setting</primary><secondary>background color</secondary></indexterm><indexterm><primary>foreground color</primary></indexterm><indexterm><primary>background color</primary></indexterm><indexterm><primary>Color Chooser</primary></indexterm><indexterm><primary>selecting</primary><secondary>colors</secondary></indexterm></title>
<para>Most property editors have background and foreground color properties.
If you know the name of the color you want to use, type it in the text field
next to Color:Background or Color:Foreground. To select a color from the
Color Chooser palette:</para>
<orderedlist><listitem><para>Click the Background or Foreground menu button
and choose Color Chooser.</para>
<para>The Color Chooser, with an array of color choices available, will be
displayed.</para>
<graphic id="ABUG.edprp.igrph.1" entityref="ABUG.edprp.fig.1"></graphic>
</listitem>
<listitem>
<para>Click the desired color in the palette.
</para>
<para>The name of the selected color will be displayed after Color Name.</para>
</listitem><listitem><para>Click OK to select the color and dismiss the Color
Chooser.</para>
<para>The selected color will be displayed in the rectangle next to the Background
or Foreground menu and the name of the color will be displayed in the text
field next to the colored rectangle.</para>
</listitem><listitem><para>Repeat the process for Background or Foreground,
if desired.</para>
</listitem><listitem><para>Click Apply in the property editor to apply the
changes.</para>
<para>The background or foreground of the object in the interface will display
the
selected color.</para>
</listitem></orderedlist>
</sect2>
</sect1>
<sect1 id="ABUG.edprp.div.6">
<title id="ABUG.edprp.mkr.6">Example: Editing Main Window Properties</title>
<para>Use the procedure for editing a main window below as an example for
editing
other object types.</para>
<para>Your application might have multiple main windows, but only one <emphasis>primary</emphasis>
main window, which is the starting point for the application. By default,
the
first main window created in the current project is designated as the primary
main window. This designation can be changed in the Application Framework
Editor, described in
<!--Original XRef content: '&xd2;To Establish Application Framework Behavior&xd3;
on
page&numsp;86'--><xref role="SecTitleAndPageNum" linkend="ABUG.afunc.mkr.17">.
</para>
<sect2 id="ABUG.edprp.div.7" role="Procedure">
<title>To Edit Properties of a Main Window<indexterm><primary>windows</primary><secondary>primary</secondary></indexterm><indexterm><primary>windows</primary><secondary>main</secondary></indexterm></title>
<para>Once you have dropped a main window on the workspace do the following
to edit its properties. See
<!--Original XRef content: 'Appendix&numsp;B, &xd2;Revolving Property Editor'--><xref
role="AppendixNumAndTitle" linkend="ABUG.apRPE.mkr.1">, for
descriptions of each of the elements of the property editor.<indexterm><primary>main window</primary><secondary>editing properties of &lt;$startrange></secondary></indexterm><indexterm><primary>primary main window</primary><secondary>editing properties
of &lt;$startrange></secondary></indexterm>
</para>
<orderedlist><listitem><para>Double-click the main window to display the Revolving
Property Editor.</para>
<para><emphasis>Or</emphasis>, Choose Properties from the Editors menu of
the App Builder primary
window, choose Main Window from the Object Type menu, and select the
main window in the Objects list.</para>
<para>The main window will be selected in the Revolving Property Editor.</para>
</listitem><listitem><para>Change the Object Name, if necessary.</para>
</listitem><listitem><para>Change the Window Title to something appropriate.
</para>
<para>This is the label that appears in the title bar of the main window.<indexterm><primary>windows</primary><secondary>naming</secondary></indexterm><indexterm><primary>naming</primary><secondary>windows</secondary></indexterm>
</para>
</listitem><listitem><para>Type the names of an Icon File, an Icon Mask File,
and an Icon Label, if you
want an icon to represent the window when it is minimized.</para>
<para>The Icon File and Icon Mask File must be <command>xpm</command> or <command>xbm</command> graphics files.</para>
</listitem><listitem><para>Change the User Resize Mode, if appropriate.<indexterm><primary>User Resize Mode</primary></indexterm>
</para>
<para>This determines if a user can resize the window in the compiled application.
</para>
</listitem><listitem><para>Select Menubar, Toolbar, and Footer, as appropriate,
to add these functional
areas to the window.</para>
<para>If you select Menubar, you will want to create menus after you finish
editing
main window properties. See
<!--Original XRef content: '&xd2;Creating and Editing Menus&xd3; on page&numsp;45'--><xref
role="SecTitleAndPageNum" linkend="ABUG.crobj.mkr.11"> for
instructions.</para>
<note>
<para>Selecting Menubar is the same as dragging a menu bar from the
Controls palette and dropping it on a main window.</para>
</note>
<para>If you select Toolbar or Footer, you will want to edit the properties
of the
control panes that comprise these objects after you finish editing main
window properties. You can drop controls on the control panes, make
connections to programmatic actions, and do other things that can be done
to any control pane.
</para>
</listitem>
<listitem><para>Change the Size Policy and Size, as appropriate.
</para>
<note>
<para>For all main windows and custom dialogs you will probably want to
leave the Size Policy as Fixed while you are creating the application, and
change it to Fit Contents as you finish the application, for internationalization
and other purposes. When Size Policy is Fit Contents, the window will change
size to accommodate changes in the size of objects as the text in the objects
changes&mdash;or if the font size changes, for example.<indexterm><primary>Size Policy property</primary></indexterm>
</para>
</note>
</listitem>
<listitem><para>Set Initial State to Iconic if you want the application to
appear as an icon
when it is started.<indexterm><primary>Initial State property</primary><secondary>Iconic</secondary>
</indexterm>
</para>
</listitem>
<listitem><para>If you want the main window to be invisible when
the application is started,
deselect the visible setting for Initial State.</para>
<para>If the Visible check box is checked, click it to deselect it.<indexterm><primary>Initial State property</primary><secondary>Visible</secondary>
</indexterm>
</para>
</listitem>
<listitem>
<para>Set Background and Foreground colors, if appropriate.
</para>
<para>Type in a color name if you know it or press mouse button 1 on the
Background or Foreground menu button and choose Color Chooser to
display the Color Chooser. Select a color and click OK. Background sets the
color of the blank pane area of the window. Foreground does nothing that is
visible in the completed interface.</para>
</listitem>
<listitem>
<para>Click Help Text to add on item help, if appropriate.
</para>
<para>See
<!--Original XRef content: '&xd2;To Create Help&xd3; on page&numsp;68'--><xref
role="SecTitleAndPageNum" linkend="ABUG.afunc.mkr.4"> for instructions.</para>
</listitem><listitem><para>Click OK to apply the changes and dismiss the Revolving
Property Editor.</para>
<para>Unless you are creating a primary main window, you are finished with
this
task.</para>
</listitem>
<listitem>
<para>If you are creating a primary main window, choose
Application Framework
Editor from the Editors menu.</para>
</listitem>
<listitem>
<para>Type a Vendor Name and Version number in the Application
section of the
Application Framework Editor, if appropriate.</para>
<para>See
<!--Original XRef content: '&xd2;To Establish Application Framework Behavior&xd3;
on page&numsp;86'--><xref role="SecTitleAndPageNum" linkend="ABUG.afunc.mkr.17">
for details
about the editor.</para>
</listitem>
<listitem>
<para>Click OK in the Application Framework Editor to
apply the changes and
close the editor.<indexterm><primary>main window</primary><secondary>editing properties of &lt;$endrange></secondary></indexterm><indexterm><primary>primary main window</primary><secondary>editing properties of &lt;$endrange></secondary></indexterm>
</para>
</listitem></orderedlist>
</sect2>
</sect1>
</chapter>
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 10:11:44-->

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,777 @@
<!-- $XConsortium: ch06.sgm /main/6 1996/09/08 19:48:37 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="ABUG.afunc.div.1">
<title id="ABUG.afunc.mkr.1">Adding Functionality to the Interface</title>
<para>Once you have laid out an interface you may want to add help to interface
elements, make programmatic connections between objects, specify drag and
drop behavior, and specify application framework behavior (including internationalization,
resource file creation, session management, and ToolTalk message handling).
</para>
<informaltable id="ABUG.afunc.itbl.1" frame="All">
<tgroup cols="1">
<colspec colname="1" colwidth="4.0 in">
<tbody>
<row rowsep="1">
<entry><para><!--Original XRef content: 'Creating Help and Help Connections67'--><xref
role="JumpText" linkend="ABUG.afunc.mkr.2"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'Making Connections Between Objects72'--><xref
role="JumpText" linkend="ABUG.afunc.mkr.7"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'Connecting Menu Items to Actions74'--><xref
role="JumpText" linkend="ABUG.afunc.mkr.9"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'Editing Existing Connections77'--><xref
role="JumpText" linkend="ABUG.afunc.mkr.13"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'Establishing Drag and Drop Behavior79'--><xref
role="JumpText" linkend="ABUG.afunc.mkr.14"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'Establishing Application Framework
Behavior83'--><xref role="JumpText" linkend="ABUG.afunc.mkr.16"></para></entry>
</row></tbody></tgroup></informaltable>
<sect1 id="ABUG.afunc.div.2">
<title id="ABUG.afunc.mkr.2">Creating Help and Help Connections</title>
<para>Two kinds of help&mdash;object help and a help volume&mdash;can be accessed
from an App Builder application. Object help is created in App Builder, as
explained in <!--Original XRef content: '&xd2;To Create Help&xd3; on page&numsp;68'--><xref
role="SecTitleAndPageNum" linkend="ABUG.afunc.mkr.4">. A help volume is created
separately from App Builder, and is accessed in your compiled application
from the Help menu or by clicking More in a help dialog box. See the <emphasis>Help System Author's and Programmer's Guide</emphasis>, which is included
in the desktop Help Developer's Kit, for instructions for creating a help
volume.</para>
<sect2 id="ABUG.afunc.div.3">
<title id="ABUG.afunc.mkr.3">About App Builder Help</title>
<para>With App Builder you can create help for any object in the interface&mdash;a
control, a pane, or a window. Help is created in the Help Editor, as described
in <!--Original XRef content: '&xd2;To
Create Help&xd3; on page&numsp;68'--><xref role="SecTitleAndPageNum" linkend="ABUG.afunc.mkr.4">.
In test mode or in the compiled application, help is displayed in the following
ways:<indexterm><primary>help</primary><secondary>displaying</secondary>
</indexterm><indexterm><primary>displaying</primary><secondary>help</secondary>
</indexterm></para>
<itemizedlist remap="Bullet1">
<listitem><para>Press F1 with the cursor over
an interface window.</para>
<para>If help exists for the object with input focus, it is displayed. If
there is no help for the object with input focus but help exists for a parent
window, help for that window will be displayed.</para>
</listitem>
<listitem><para>Click the Help button in a window or dialog box.
</para>
</listitem>
<listitem><para>Choose On Item from the Help menu and click on
an object in the interface.</para>
</listitem></itemizedlist>
<para>See <!--Original XRef content: '&xd2;To Test On Item Help&xd3; on page&numsp;103'--><xref
role="SecTitleAndPageNum" linkend="ABUG.test.mkr.4"> for instructions for
testing On Item help. If help is not available for a particular child object
(a control or a pane) but is available for the parent of the child object
(a pane or a window), help for the parent object is displayed.</para>
</sect2>
<sect2 id="ABUG.afunc.div.4" role="Procedure">
<title id="ABUG.afunc.mkr.4">To Create Help<indexterm><primary>On Item help</primary><secondary>creating</secondary></indexterm><indexterm><primary>creating</primary><secondary>On Item help</secondary></indexterm></title>
<orderedlist>
<listitem><para>Display the Revolving Property Editor.</para>
</listitem>
<listitem><para>Choose the Object Type for which you want to write
help.</para>
</listitem>
<listitem><para>Select the object for which you want to write help.
</para>
</listitem>
<listitem><para>Click Help Text to display the Help Editor with
the appropriate object selected.</para>
<graphic id="ABUG.afunc.igrph.1" entityref="ABUG.afunc.fig.1"></graphic>
</listitem>
<listitem><para>Type help text in the Help Text pane.<indexterm>
<primary>editor</primary><secondary>Help</secondary></indexterm><indexterm>
<primary>Help Editor</primary></indexterm></para>
<para>Press Return when you want a new line to start in the compiled help
dialog box.</para>
</listitem>
<listitem><para>Type a Volume Name if appropriate.</para>
<para>This is the name of a help volume.</para>
</listitem>
<listitem><para>Type a Location ID, if appropriate.</para>
<para>This is the helptag location ID that will provide more information about
the selected object.</para>
<note>
<para>You must create help for an object if you want access to a help volume
from a help dialog box. If you create help for an object and include a Volume
Name and Location ID, the More button will be active in the help dialog box.
</para>
</note>
</listitem>
<listitem><para>Click OK or Apply to apply the changes.</para>
<para>If you want to add help to other objects, choose the appropriate Object
Type in the menu, select the appropriate object, and repeat the previous
two steps.</para>
<para>The Help Editor will be dismissed if you click OK.</para>
</listitem></orderedlist>
</sect2>
<sect2 id="ABUG.afunc.div.5" role="Procedure">
<title id="ABUG.afunc.mkr.5">To Connect a Help Menu to On Item Help<indexterm><primary>connecting</primary><secondary>On Item help to Help menu item</secondary></indexterm><indexterm><primary>connections</primary><secondary>On Item help menu item</secondary></indexterm><indexterm><primary>Help menu</primary><secondary>connecting On Item help to</secondary></indexterm><indexterm><primary>creating</primary><secondary>On Item menu item</secondary></indexterm><indexterm><primary>On Item help</primary><secondary>menu item</secondary></indexterm></title>
<para>One of the standard items in a Help menu is On Item Help, which is used
to display help for a specific object in an interface. The instructions below
assume you have included a menu bar in a main window and that you have attached
a Help menu to the Help item in the menu bar. See <!--Original XRef content:
'&xd2;To Create and Attach a Help
Menu&xd3; on page&numsp;54'--><xref role="SecTitleAndPageNum" linkend="ABUG.crobj.mkr.18">
for instructions.</para>
<orderedlist><listitem><para>Choose Menus from the Editors menu in the App
Builder primary window.</para>
<para>The Menu Property Editor is displayed.</para>
</listitem><listitem><para>Select the Help menu in the Objects list.</para>
</listitem><listitem><para>Select one of the items in the Items list as the
On Item Help item.</para>
</listitem><listitem><para>Type On Item or other appropriate text in the Label
text field.</para>
</listitem><listitem><para>Include an item mnemonic, if appropriate.</para>
<para>An item mnemonic specifies one of the letters in the selected item as
a keyboard shortcut for activating the menu item when the menu is posted.
The letter specified will be underlined in the menu item. Case is significant
for mnemonics.</para>
</listitem><listitem><para>Include an item accelerator, if appropriate.</para>
<para>An item accelerator specifies a keyboard shortcut for choosing the selected
item. An accelerator is comprised of a prefix (Ctrl, Alt, Meta, or Shift),
<filename>&lt;key></filename>, and a letter (upper- or lowercase). To make
Control-x an accelerator, for instance, type <filename>Ctrl&lt;key>x</filename>.
</para>
</listitem><listitem><para>Click Apply.</para>
<para>The changes to the Help menu will be applied.</para>
</listitem><listitem><para>Click Connections to display the Connections Editor.
</para>
<para>The Connections button is at the bottom of the Menu Property Editor.
</para>
</listitem><listitem><para>Choose Menu Item in the Source menu.</para>
</listitem><listitem><para>Select the On Item Help item in the Source list.
</para>
</listitem><listitem><para>Choose Activate On Item Help from the Action Type
menu.</para>
</listitem><listitem><para>Click Connect.</para>
</listitem></orderedlist>
<para>When you choose the On Item Help item in the Help menu in test mode
or in the compiled application, the cursor will become an arrow with a question
mark. Move the cursor over an object and click mouse button 1 to display
On Item help for the selected object (or for one of its parent objects if
no help is available for the object itself). See <!--Original XRef content:
'&xd2;To Test On Item Help&xd3; on page&numsp;103'--><xref role="SecTitleAndPageNum"
linkend="ABUG.test.mkr.4"> for more information.</para>
</sect2>
<sect2 id="ABUG.afunc.div.6" role="Procedure">
<title id="ABUG.afunc.mkr.6">To Connect a Help Menu to a Help Volume<indexterm><primary>help volume</primary></indexterm><indexterm><primary>Help menu</primary></indexterm><indexterm><primary>connecting</primary><secondary>menu item to help topic</secondary></indexterm></title>
<para>After creating a help menu and attaching it to the
Help item in a menu bar as explained in <!--Original XRef content: '&xd2;To
Create and Attach a Help Menu&xd3; on page&numsp;54'--><xref role="SecTitleAndPageNum"
linkend="ABUG.crobj.mkr.18">, do the following to connect menu items to specific
locations in a help volume. See <!--Original XRef content: '&xd2;To Connect
a Help Menu to On Item Help&xd3; on page&numsp;70'--><xref role="SecTitleAndPageNum"
linkend="ABUG.afunc.mkr.5"> for instructions for connecting the On Item help
item in the Help menu to the On Item help function.<indexterm><primary>menu items</primary><secondary>attaching help topic to</secondary></indexterm>
</para>
<orderedlist><listitem><para>Display the Connections Editor.</para>
<para>Click Connections in the Revolving Property Editor or in the Menu Property
Editor or choose Connections from the Editors menu.</para>
</listitem><listitem><para>Choose Menu Item from the Source option menu.</para>
</listitem><listitem><para>Select one of the Help menu items from the Source
scrolling list.</para>
</listitem><listitem><para>Choose Access Help Volume from the Action Type
option menu.</para>
</listitem><listitem><para>Type the name of the help volume in the Volume
text field.</para>
</listitem><listitem><para>Type the appropriate location ID in the Location
text field.</para>
</listitem><listitem><para>Click Connect to make the connection.</para>
</listitem></orderedlist>
</sect2>
</sect1>
<sect1 id="ABUG.afunc.div.7">
<title id="ABUG.afunc.mkr.7">Making Connections Between Objects</title>
<para>In its simplest form a connection is a programmatic relationship between
a source object and a target object: when I click on Button A I want Dialog
Box B to be displayed. This type of connection is described below in <!--Original
XRef content: '&xd2;To Make a
Connection between Two Objects'--><xref role="SectionTitle" linkend="ABUG.afunc.mkr.8">.
</para>
<para>Different types of connections from menu items are described in <!--Original
XRef content: '&xd2;To Connect a
Menu Item to a Predefined Action&xd3; on page&numsp;74'--><xref role="SecTitleAndPageNum"
linkend="ABUG.afunc.mkr.10">, <!--Original XRef content: '&xd2;To Connect
a Menu Item to a
Call Function&xd3; on page&numsp;75'--><xref role="SecTitleAndPageNum" linkend="ABUG.afunc.mkr.11">,
and <!--Original XRef content: '&xd2;To Connect a Menu Item to an Execute
Code
Action&xd3; on page&numsp;76'--><xref role="SecTitleAndPageNum" linkend="ABUG.afunc.mkr.12">.
</para>
<para>Other types of connections (to On Item Help and to a help volume) were
discussed in <!--Original XRef content: '&xd2;To Connect a Help Menu to
On Item Help&xd3; on page&numsp;70'--><xref role="SecTitleAndPageNum" linkend="ABUG.afunc.mkr.5">
and in <!--Original XRef content: '&xd2;To Connect a Help Menu to a Help
Volume&xd3; on page&numsp;71'--><xref role="SecTitleAndPageNum" linkend="ABUG.afunc.mkr.6">.
In <!--Original XRef content: '&xd2;To Connect a
Non-Modal Message to a Function&xd3; on page&numsp;60'--><xref role="SecTitleAndPageNum"
linkend="ABUG.crobj.mkr.24">, a message dialog box is connected to the function
which causes the dialog box to be displayed.</para>
<sect2 id="ABUG.afunc.div.8" role="Procedure">
<title id="ABUG.afunc.mkr.8">To Make a Connection between Two Objects<indexterm><primary>creating</primary><secondary>connection between two objects &lt;$startrange></secondary></indexterm><indexterm><primary>connecting</primary><secondary>two objects &lt;$startrange></secondary></indexterm></title>
<orderedlist>
<listitem><para>Select the source and target objects.</para>
<itemizedlist remap="Bullet2">
<listitem>
<para><emphasis role="Lead-in">By &ldquo;drag-linking&rdquo;</emphasis>: While
holding down the Control key, position the mouse cursor over the intended
source object, press mouse button 1, drag the cursor to the intended target
object, and release the mouse button.</para>
<para>This can be done in the interface or in the Module Browser (or between
the interface and the Module Browser). See <!--Original XRef content: '&xd2;Module
Browser&xd3; on
page&numsp;128'--><xref role="SecTitleAndPageNum" linkend="ABUG.apWDB.mkr.8">
for a description of the Browser.</para>
<para><literal><indexterm><primary>drag-link connection</primary></indexterm></literal>A
line with a &ldquo;plug&rdquo; at its end will extend from the source as you
move the mouse. The target object will be highlighted with a dark box. When
you release the mouse button on the target object, the Connections Editor
will be displayed, with the source and target objects selected.<literal><indexterm>
<primary>connections</primary><secondary>selecting objects through drag-linking</secondary></indexterm></literal></para>
</listitem>
<listitem><para><emphasis role="Lead-in">Through the Connections Editor</emphasis>:
Display the Connections Editor by choosing
Connections in the Editors menu. Choose the object type you want as the source
object in the Source menu, and select the object you want as the source in
the Source list. Then choose the object type you want as the target object
in the Target menu, and select the object you want as the target in the Target
list.<indexterm><primary>connections</primary><secondary>selecting objects through the Connections Editor</secondary></indexterm>
</para>
</listitem></itemizedlist>
<note>
<para>If you select an object in the Revolving Property Editor and click the
Connections button, the Connections Editor will be displayed with the selected
object selected in the Source list.</para>
</note>
<graphic id="ABUG.afunc.igrph.2" entityref="ABUG.afunc.fig.2"></graphic>
</listitem>
<listitem><para>Choose an action in the When menu.<indexterm>
<primary>Connections Editor</primary></indexterm><indexterm><primary>editor</primary><secondary>Connections</secondary></indexterm></para>
<para>This is the action on the source object that will cause an action to
be performed on the target object. Choices vary, depending on the source
object type.</para>
</listitem>
<listitem><para>Choose an action to be performed on the target
in the Action Type menu.</para>
<para>Different target action types require different subsequent action by
you:</para>
<itemizedlist remap="Bullet2"><listitem><para>Predefined: Choose an action
from a second option menu.</para>
</listitem><listitem><para>Call Function: Type the name of a function in the
Function text field. You will also have to write code for the call function,
as described in <!--Original XRef content: '&xd2;Adding
User Code to Generated Code&xd3; on page&numsp;112'--><xref role="SecTitleAndPageNum"
linkend="ABUG.codeg.mkr.6">.</para>
</listitem><listitem><para>Execute Code: Type the code to be performed in
the Execute Code Editor and click OK in the editor.</para>
</listitem></itemizedlist>
</listitem>
<listitem><para>Click Connect to make the connection.</para>
<para><literal><indexterm><primary>connecting</primary><secondary>two objects &lt;$endrange></secondary></indexterm></literal>The
connection will be displayed in the View list at the bottom of the Connections
Editor. <literal><indexterm><primary>creating</primary><secondary>connection
between two objects &lt;$endrange></secondary></indexterm></literal></para>
</listitem>
<listitem><para>Click Cancel to dismiss the Connections Editor.
</para>
</listitem>
</orderedlist>
</sect2>
</sect1>
<sect1 id="ABUG.afunc.div.9">
<title id="ABUG.afunc.mkr.9">Connecting Menu Items to Actions</title>
<para>Once you have created a menu and attached it to an object as described
in <!--Original XRef content: '&xd2;To
Create a Menu&xd3; on page&numsp;47'--><xref role="SecTitleAndPageNum" linkend="ABUG.crobj.mkr.13">
and <!--Original XRef content: '&xd2;To Attach an Existing Menu to an Object&xd3;
on
page&numsp;50'--><xref role="SecTitleAndPageNum" linkend="ABUG.crobj.mkr.15">,
you need to connect a meaningful action to each item in each menu. Choices
for target actions are Predefined, Call Function, Execute Code, Activate
On-Item Help, and Access Help Volume.</para>
<para>Connecting menu items to the first three types of actions are described
below. See <!--Original XRef content: '&xd2;To Connect a Help Menu to On
Item Help&xd3; on page&numsp;70'--><xref role="SecTitleAndPageNum" linkend="ABUG.afunc.mkr.5">
and <!--Original XRef content: '&xd2;To Connect a
Help Menu to a Help Volume&xd3; on page&numsp;71'--><xref role="SecTitleAndPageNum"
linkend="ABUG.afunc.mkr.6"> for instructions for making help connections.
</para>
<sect2 id="ABUG.afunc.div.10" role="Procedure">
<title id="ABUG.afunc.mkr.10">To Connect a Menu Item to a Predefined Action</title>
<para><indexterm><primary>connecting</primary><secondary>menu item and predefined
action</secondary></indexterm><indexterm><primary>menu items</primary><secondary>connecting to predefined action</secondary></indexterm>Only Predefined target
actions are described in this section. See <!--Original XRef content: '&xd2;To
Connect a
Menu Item to a Call Function&xd3; on page&numsp;75'--><xref role="SecTitleAndPageNum"
linkend="ABUG.afunc.mkr.11"> and <!--Original XRef content: '&xd2;To Connect
a Menu Item to an
Execute Code Action&xd3; on page&numsp;76'--><xref role="SecTitleAndPageNum"
linkend="ABUG.afunc.mkr.12"> for information about those connections.</para>
<orderedlist><listitem><para>Display the Connections Editor.</para>
<para>Click Connections at the bottom of the Revolving Property Editor or
choose Connections from the Editors menu of the App Builder primary window.
</para>
</listitem><listitem><para>Choose Menu Item from the Source menu.</para>
<para>All of the menu items in the current project will be listed.</para>
</listitem><listitem><para>Select a menu item from the list below the Source
menu.</para>
<para>This is the item from which the connection will be made.</para>
</listitem><listitem><para>Choose Predefined as the target action type from
the Action Type menu.</para>
<para>The Target menu will be activated.</para>
</listitem><listitem><para>Choose the appropriate type of object from the
Target menu.</para>
<para>This is the type of object that will be acted on when the When action
is performed on the source menu item.</para>
</listitem><listitem><para>Select an object in the list of Target items.</para>
<para>This is the specific object that will be acted on when the When action
is performed on the source menu item.</para>
</listitem><listitem><para>Choose a When action for the Source menu item.
</para>
<para>Choices are Activated, Created, and Destroyed.</para>
</listitem><listitem><para>Choose a target action from the option menu to
the right of Action Type.</para>
<para>The choices vary depending on the target type.</para>
</listitem><listitem><para>Click Connect to make the connection.</para>
<para>The connection will be displayed in the View list at the bottom of the
Connections Editor.</para>
</listitem><listitem><para>Click Cancel to dismiss the Connections Editor.
</para>
</listitem></orderedlist>
<para>The designated target action will be performed in the compiled application
when the When action is performed on the menu item.</para>
<para>Depending on the source When and target action, you may be able to test
the connection in Test mode. See <!--Original XRef content: '&xd2;To Test
Menus in a Module&xd3; on page&numsp;104'--><xref role="SecTitleAndPageNum"
linkend="ABUG.test.mkr.5"> for instructions.</para>
</sect2>
<sect2 id="ABUG.afunc.div.11" role="Procedure">
<title id="ABUG.afunc.mkr.11">To Connect a Menu Item to a Call Function</title>
<para>Only
the Call Function target action is described in this section. See <!--Original
XRef content: '&xd2;To
Connect a Menu Item to a Predefined Action&xd3; on page&numsp;74'--><xref
role="SecTitleAndPageNum" linkend="ABUG.afunc.mkr.10"> and <!--Original XRef
content: '&xd2;To Connect a
Menu Item to an Execute Code Action&xd3; on page&numsp;76'--><xref role="SecTitleAndPageNum"
linkend="ABUG.afunc.mkr.12"> for information about those connections.<indexterm><primary>connecting</primary><secondary>menu item and Call Function action</secondary></indexterm><indexterm><primary>menu items</primary><secondary>connecting to Call Function action</secondary></indexterm>
</para>
<orderedlist><listitem><para>Display the Connections Editor.</para>
<para>Click Connections at the bottom of the Revolving Property Editor or
choose Connections from the Editors menu of the App Builder primary window.
</para>
</listitem><listitem><para>Choose Menu Item from the Source menu.</para>
<para>All of the menu items in the current project will be listed.</para>
</listitem><listitem><para>Select a menu item from the list below the Source
menu.</para>
<para>This is the item from which the connection will be made.</para>
</listitem><listitem><para>Choose Call Function as the target action type
from the Action Type menu.</para>
<para>The Function text field will be activated.</para>
</listitem><listitem><para>Type the name of the function to be called in
the Call Function text field.</para>
<para>This is the function that will be called when the When action is performed
on the source menu item. See <!--Original XRef content: '&xd2;Adding User
Code to Generated Code&xd3; on
page&numsp;112'--><xref role="SecTitleAndPageNum" linkend="ABUG.codeg.mkr.6">
for information about incorporating user code into the generated code.</para>
</listitem><listitem><para>Choose a When action for the Source menu item.
</para>
<para>Choices are Activated, Created, and Destroyed.</para>
</listitem><listitem><para>Click Connect to make the connection.</para>
<para>The connection will be displayed in the View list at the bottom of the
Connections Editor.</para>
</listitem><listitem><para>Click Cancel to dismiss the Connections Editor.
</para>
</listitem></orderedlist>
</sect2>
<sect2 id="ABUG.afunc.div.12" role="Procedure">
<title id="ABUG.afunc.mkr.12">To Connect a Menu Item to an Execute Code Action</title>
<para><indexterm><primary>connecting</primary><secondary>menu item and Execute
Code action</secondary></indexterm><indexterm><primary>menu items</primary>
<secondary>connecting to Execute Code action</secondary></indexterm>Only the
Execute Code target action is described in this section. See <!--Original
XRef content: '&xd2;To
Connect a Menu Item to a Predefined Action&xd3; on page&numsp;74'--><xref
role="SecTitleAndPageNum" linkend="ABUG.afunc.mkr.10"> and <!--Original XRef
content: '&xd2;To Connect a
Menu Item to a Call Function&xd3; on page&numsp;75'--><xref role="SecTitleAndPageNum"
linkend="ABUG.afunc.mkr.11"> for information about those connections.</para>
<orderedlist><listitem><para>Display the Connections Editor.</para>
<para>Click Connections at the bottom of the Revolving Property Editor or
choose Connections from the Editors menu of the App Builder primary window.
</para>
</listitem><listitem><para>Choose Menu Item from the Source menu.</para>
<para>All of the menu items in the current project will be listed.</para>
</listitem><listitem><para>Select a menu item from the list below the Source
menu.</para>
<para>This is the item from which the connection will be made.</para>
</listitem><listitem><para>Choose a When action for the Source menu item.
</para>
<para>Choices are Activated, Created, and Destroyed.</para>
</listitem><listitem><para>Choose Execute Code as the target action type from
the Action Type menu.</para>
<para>The Execute Code Editor will be displayed.</para>
</listitem><listitem><para>Type the code to be executed in the Execute Code
Editor.</para>
<para>The Execute Code Editor will be displayed. Type the code in the editor.
See <!--Original XRef content: '&xd2;Adding User Code to Generated Code&xd3;
on page&numsp;112'--><xref role="SecTitleAndPageNum" linkend="ABUG.codeg.mkr.6">
for information about incorporating user code into the generated code.</para>
</listitem><listitem><para>Click OK in the Execute Code Editor to apply the
changes and dismiss the editor.</para>
</listitem><listitem><para>Click Connect in the Connections Editor to make
the connection.</para>
<para>The connection will be displayed in the View list at the bottom of the
Connections Editor.</para>
</listitem><listitem><para>Click Cancel to dismiss the Connections Editor.
</para>
</listitem></orderedlist>
<para>The code will be executed in the compiled application when the When
action is performed on the menu item.</para>
</sect2>
</sect1>
<sect1 id="ABUG.afunc.div.13">
<title id="ABUG.afunc.mkr.13">Editing Existing Connections</title>
<para>Once you have created a connection you can modify the connection, delete
it, or create a new connection by selecting an existing connection, modifying
it, and saving it as a new connection.</para>
<sect2 id="ABUG.afunc.div.14" role="Procedure">
<title>To Edit an Existing Connection<indexterm><primary>editing</primary><secondary>connections</secondary></indexterm><indexterm><primary>connections</primary><secondary>editing</secondary></indexterm></title>
<orderedlist><listitem><para>Choose Connections from the Editors menu in the
App Builder primary window.</para>
<para>The Connections Editor will be displayed.</para>
</listitem><listitem><para>Choose the source object type whose connection
you want to view from the View menu at the bottom of the Connections Editor.
</para>
<para>If you want to edit a connection with a button as a source object, for
instance, choose Button from the View menu. All connections in the current
project with button as source object will be displayed in the View list.
</para>
<para>If you want to view all connections for a particular source object,
choose Source Object in the View menu and select the object in the Source
menu. All connections for the selected object will be displayed.</para>
</listitem><listitem><para>Select the connection you want to edit in the View
list.</para>
<para>The source and target objects will be selected in the Source and Target
lists at the top of the editor. Their When and Action Type choices will be
displayed.</para>
</listitem><listitem><para>Edit the connection.</para>
<itemizedlist remap="Bullet2"><listitem><para>To <symbol role="Variable">delete</symbol> the selected connection, click Delete.</para>
</listitem><listitem><para>To <emphasis>modify</emphasis> the selected connection,
make changes to any of the choices (source object, When action, target object,
Action Type) and click Change.</para>
</listitem><listitem><para>To <emphasis>add</emphasis> a connection similar
to the selected connection, modify any of the choices and click Connect.
A new connection will be created.</para>
</listitem></itemizedlist>
</listitem><listitem><para>Click Cancel to dismiss the Connections Editor.
</para>
</listitem></orderedlist>
</sect2>
</sect1>
<sect1 id="ABUG.afunc.div.15">
<title id="ABUG.afunc.mkr.14">Establishing Drag and Drop Behavior</title>
<para>Use the Drag and Drop Editor to establish drag and drop behavior for
interface objects. See <!--Original XRef content: '&xd2;To Establish Drag
and Drop Behavior&xd3; on page&numsp;81'--><xref role="SecTitleAndPageNum"
linkend="ABUG.afunc.mkr.15"> for instructions.</para>
<graphic id="ABUG.afunc.igrph.3" entityref="ABUG.afunc.fig.3"></graphic>
<informaltable>
<tgroup cols="2" colsep="0" rowsep="0">
<colspec align="left" colwidth="100*">
<colspec align="left" colwidth="356*">
<tbody>
<row>
<entry><para>Object Type</para></entry>
<entry><para>An option menu for choosing the type of object (Control Pane,
Custom Dialog, Draw Area Pane, Label, or Main Window) for which you wish
to establish drag and drop behavior.</para></entry></row>
<row>
<entry><para>Objects</para></entry>
<entry><para>A scrolling list for selecting a specific object for which you
wish to establish drag and drop behavior.</para></entry></row>
<row>
<entry><para>Drag Operations</para></entry>
<entry><para>Check boxes for specifying which types of operations (Copy,
Move, Link) will be legal for the selected object.</para></entry></row>
<row>
<entry><para>Cursor Filename</para></entry>
<entry><para>A text field for typing the name of the graphics file that contains
the graphical representation of the cursor that will be displayed as a drag
from the selected object is being performed.</para></entry></row>
<row>
<entry><para>Cursor Mask Filename</para></entry>
<entry><para>A text field for typing the name of the graphics file that contains
the bitmap which determines the shape of the visible representation of the
cursor beneath the cursor mask. The cursor mask acts like a stencil, allowing
only the pixels in the cursor that correspond to pixels in the mask to be
visible.</para></entry></row>
<row>
<entry><para>Data Types</para></entry>
<entry><para>Check boxes for specifying Text, Filename, and User Defined
as legal data types for drag operations.</para></entry></row>
<row>
<entry><para>Drag Connection</para></entry>
<entry><para>A push button to display the Connections Editor for creating
the Call Function connection that makes the dragged-from operation functional.
</para></entry></row>
<row>
<entry><para>Drop Operations</para></entry>
<entry><para>Check boxes for specifying which types of operations (Copy,
Move, Link) will be legal for the selected object.</para></entry></row>
<row>
<entry><para>Data Types</para></entry>
<entry><para>Check boxes for specifying Text, Filename, User Defined, and
Any Other Type as legal data types for drop operations.</para></entry></row>
<row>
<entry><para>Drop on Children</para></entry>
<entry><para>A check box for specifying whether a child of the selected object
will be a legal drop site; this is relevant only if the child object is specified
as a legal drop site.</para></entry></row>
<row>
<entry><para>Drop Connection</para></entry>
<entry><para>A push button to display the Connections Editor for creating
the Call Function connection that makes the dropped-on operation functional.
</para></entry></row>
</tbody></tgroup></informaltable>
<sect2 id="ABUG.afunc.div.16" role="Procedure">
<title id="ABUG.afunc.mkr.15">To Establish Drag and Drop Behavior<indexterm><primary>connections</primary><secondary>drop</secondary></indexterm><indexterm><primary>connections</primary><secondary>drag</secondary></indexterm><indexterm><primary>drop connection</primary></indexterm><indexterm><primary>drag connection</primary></indexterm><indexterm><primary>drag and drop</primary><secondary>setting behavior for &lt;$startrange></secondary></indexterm></title>
<orderedlist><listitem><para>Choose Drag and Drop from the Editors menu of
the App Builder primary window.</para>
<para>The Drag and Drop Editor is displayed.<indexterm><primary>editor</primary>
<secondary>Drag and Drop</secondary></indexterm><indexterm><primary>Drag
and Drop Editor</primary></indexterm></para>
</listitem><listitem><para>Choose an Object Type.</para>
</listitem><listitem><para>Select an object in the Objects list.</para>
</listitem><listitem><para>Select the Drag Operations you want to be legal
for the selected object. <literal><indexterm><primary>drag operations</primary>
</indexterm></literal></para>
</listitem><listitem><para>To display a special cursor when a drag operation
is being performed from the selected object, type the names of graphics files
in the Cursor Filename and Cursor Mask Filename fields.</para>
</listitem><listitem><para>Select the Data Types that will be legal for drag
operations.</para>
</listitem><listitem><para>Click Drag Connection.</para>
<para>The Connections Editor is displayed.</para>
</listitem><listitem><para>Choose Dragged From as the When action in the Connections
Editor.</para>
</listitem><listitem><para>Choose Call Function as the Action Type in the
Connections Editor.</para>
</listitem><listitem><para>Type a name for the called function in the Function
text field in the Connections Editor.</para>
<para>This is the name of the function that will be called when a drag operation
is performed. You will have to edit the <filename>stubs.c</filename> file
to make the called function do something useful. See <!--Original XRef content:
'&xd2;Adding User Code to Generated Code&xd3;
on page&numsp;112'--><xref role="SecTitleAndPageNum" linkend="ABUG.codeg.mkr.6">
for information.</para>
</listitem><listitem><para>Click Connect in the Connections Editor.</para>
</listitem><listitem><para>Click Cancel to dismiss the Connections Editor.
</para>
</listitem><listitem><para>Select which Drop Operations will be legal.<indexterm>
<primary>drop operations</primary></indexterm></para>
</listitem><listitem><para>Select the Data Types that will be legal for drop
operations.</para>
</listitem><listitem><para>Check Drop on Children if you want a drop operation
on a child of the selected object to be legal.</para>
<para>This is relevant only if the selected object has a child which is designated
as a legal drop site.</para>
</listitem><listitem><para>Click Drop Connection to display the Connections
Editor.</para>
</listitem><listitem><para>Choose Dropped On as the When action in the Connections
Editor.</para>
</listitem><listitem><para>Choose Call Function as the Action Type in the
Connections Editor.</para>
</listitem><listitem><para>Type a name for the called function in the Function
text field in the Connections Editor.</para>
<para>This is the name of the function that will be called when a drop operation
is performed. You will have to edit the <filename>stubs.c</filename> file
to make the called function do something useful. See <!--Original XRef content:
'&xd2;Adding User Code to Generated Code&xd3;
on page&numsp;112'--><xref role="SecTitleAndPageNum" linkend="ABUG.codeg.mkr.6">
for information.</para>
</listitem><listitem><para>Click Connect in the Connections Editor.</para>
</listitem><listitem><para>Click Cancel to dismiss the Connections Editor.
</para>
</listitem><listitem><para>Click OK or Apply in the Drag and Drop Editor to
apply the changes.<literal><indexterm><primary>drag and drop</primary><secondary>setting behavior for &lt;$endrange></secondary></indexterm></literal></para>
<para>The Drag and Drop Editor will be dismissed if you click OK.</para>
</listitem></orderedlist>
</sect2>
</sect1>
<sect1 id="ABUG.afunc.div.17">
<title id="ABUG.afunc.mkr.16">Establishing Application Framework Behavior</title>
<para>Use the Application Framework Editor to specify basic functionality
in the application for internationalization, resource file attributes, session
management, and ToolTalk message handling. See <!--Original XRef content:
'&xd2;To Establish Application
Framework Behavior&xd3; on page&numsp;86'--><xref role="SecTitleAndPageNum"
linkend="ABUG.afunc.mkr.17"> for instructions.</para>
<graphic id="ABUG.afunc.igrph.4" entityref="ABUG.afunc.fig.4"></graphic>
<informaltable>
<tgroup cols="2" colsep="0" rowsep="0">
<colspec align="left" colwidth="127*">
<colspec align="left" colwidth="401*">
<tbody>
<row>
<entry><para>Application Vendor Name</para></entry>
<entry><para>A text field for typing an optional string, which will be stored
in the source code. Used in the call to initialize ToolTalk (if ToolTalk
is enabled).</para></entry></row>
<row>
<entry><para>Application Version</para></entry>
<entry><para>A text field for typing an optional string, which will be stored
in the source code. Used in the call to initialize ToolTalk.</para></entry>
</row>
<row>
<entry><para>Application Primary Main Window</para></entry>
<entry><para>An option menu for specifying the primary main window of the
application being developed. An application may have more than one main window,
but only one primary window. This window is typically the window which
is first displayed when the application is opened. By default the first main
window dropped on the workspace in a new project is the primary window.
</para></entry></row>
<row>
<entry><para>Internationalization Enabled</para></entry>
<entry><para>A check box for specifying whether internationalization is
enabled; if checked, turns on XPG4-compliant internationalization in the
generated code for the project. In the [<symbol role="Variable">module</symbol>]_<filename>ui.c</filename> file, all labels and strings for objects are generated, enclosed
by the <command>catgets</command>(3C) call, which is used to fetch the appropriate
localized version of the string at runtime. If internationalization is turned
on, <command>dtcodegen</command> will also automatically generate and maintain
the message catalog ([<emphasis>project</emphasis>].<command>msg</command>)
which maps to the generated <command>catgets</command>(3C) calls.</para></entry>
</row>
<row>
<entry><para>Generated Code</para></entry>
<entry><para>Check boxes for specifying which categories of object attributes
(which map to Xt Resources) should be written into a Resource file instead
of placing them directly in the [<symbol role="Variable">module</symbol>]_<filename>ui.c</filename> file&mdash;which is the default. Any attribute (resource)
which is specified in a Resource file&mdash;and not directly in the code&mdash;can
be modified without recompiling the application. The Attribute categories
are as follows:
<?Pub _newline>Colors: Background, Foreground
<?Pub _newline>Label Strings: Label String, Title
<?Pub _newline>Initial Values: Initial Value
<?Pub _newline>Geometry: X, Y, Width, Height, all attachment attributes
<?Pub _newline>Other Strings
<?Pub _newline>Other</para></entry></row>
<row>
<entry><para>Session Management Method</para></entry>
<entry><para>An option menu for specifying the method of session management
(None, Command Line, Session File, or Both), and two push buttons (Session
Save Connection, Session Restore Connection) for displaying the Connections
Editor and making appropriate connections.</para></entry></row>
<row>
<entry><para>ToolTalk Desktop Message Handling</para></entry>
<entry><para>An option menu for specifying what level of the ToolTalk Desktop
Message Alliance protocol the application will participate in, and a push
button (Advanced ToolTalk Connections) for displaying the Connections Editor.
The ToolTalk desktop protocol is a set of predefined ToolTalk messages which
communicate desktop-type events or requests to a running application. App
Builder support for ToolTalk is provided at three levels: None, Basic, or
Advanced, as described below.
<?Pub _newline>None. There is no participation in the ToolTalk Desktop Protocol;
no ToolTalk code is generated.
<?Pub _newline>Basic. The ToolTalk library responds to Desktop messages in
categories 1-3 in a predefined and standard way. Code is generated in <filename>main()</filename> which initializes ToolTalk and calls the function which
tells ToolTalk to handles these messages. At this level, you do not need
to write any special application code.
<?Pub _newline>Advanced. The ToolTalk library responds to messages in categories
1 and 2, but the application is notified (via callback) when messages in
categories 3 &amp; 4 are received.
<?Pub _newline>If you choose Advanced, you must use the Connections Editor
to identify which messages the application wishes to handle. If you click
the Advanced ToolTalk Connections button, the Connections Editor will be
displayed with Application as the Source object type. The When option menu
lists four ToolTalk choices: ToolTalk Do Command, ToolTalk Get Status, ToolTalk
Pause/Resume, and ToolTalk Quit. The only valid action type for a ToolTalk
connection is Call Function; your callback function will be called when the
ToolTalk message is received.
<?Pub _newline>At this level code is generated in
[<emphasis>project</emphasis>]<filename>.c:main()</filename>
which initializes ToolTalk and sets up the Desktop
Protocol so that the callbacks defined in the Connections Editor will be
called when the corresponding message is received. Each user-defined callback
contains descriptive comments describing what the application is expected
to do in response to the message. These callbacks are also generated in
[<emphasis>project</emphasis>]<filename>.c</filename>.</para></entry>
</row>
</tbody></tgroup></informaltable>
<sect2 id="ABUG.afunc.div.18" role="Procedure">
<title id="ABUG.afunc.mkr.17">To Establish Application Framework Behavior<indexterm><primary>application</primary><secondary>setting behavior of &lt;$startrange></secondary></indexterm><indexterm><primary>Application Framework Editor</primary></indexterm><indexterm><primary>editor</primary><secondary>Application Framework</secondary></indexterm></title>
<orderedlist><listitem><para>Choose Application Framework from the Editors
menu in the App Builder primary window to display the editor.</para>
</listitem><listitem><para>Type a Vendor Name and Version number in the text
fields in the <literal><indexterm><primary>vendor name, setting for application</primary></indexterm><indexterm><primary>setting</primary><secondary>vendor
name for application</secondary></indexterm></literal>Application section,
if appropriate.<literal><indexterm><primary>version number, setting for application</primary></indexterm><indexterm><primary>setting</primary><secondary>version
number for application</secondary></indexterm></literal></para>
<para>These are used in the call to initialize ToolTalk, if ToolTalk is enabled.
</para>
</listitem><listitem><para>Choose a different primary main window, if appropriate.<indexterm><primary>primary main window</primary><secondary>setting for application</secondary></indexterm><indexterm><primary>setting</primary><secondary>primary main window for application</secondary></indexterm>
</para>
</listitem><listitem><para>Set Internationalization to Enabled, if appropriate.<literal><indexterm>
<primary>setting</primary><secondary>internationalization</secondary></indexterm><indexterm>
<primary>internationalization of application</primary></indexterm></literal></para>
<para>Internationalization generates labels and strings for objects with a
call that fetches the appropriate localized version of the string at run
time. It also generates and maintains a similar message catalog.</para>
</listitem><listitem><para>Select the attributes you want to be written to
the Resource file in the Generated Code section.</para>
<para>The categories you select are written to a resource file instead of
directly to the module file; these attributes, therefore, can be modified
without recompiling the application.<indexterm><primary>resource file</primary>
<secondary>attributes written to</secondary></indexterm></para>
</listitem><listitem><para>Choose a Method (None, Command Line, Session File,
or Both) in the Session Management section, as appropriate.<indexterm>
<primary>session management method</primary></indexterm></para>
</listitem><listitem><para>Select Session Save Connection and/or Session Restore
Connection, as appropriate, to make connections in the Connections Editor.
</para>
</listitem><listitem><para>Choose a Desktop Message Handling level (None,
Basic, or Advanced) in the ToolTalk section, as appropriate.<indexterm>
<primary>ToolTalk message handling</primary></indexterm></para>
<para>See <!--Original XRef content: '&xd2;Establishing Application Framework
Behavior&xd3; on page&numsp;83'--><xref role="SecTitleAndPageNum" linkend="ABUG.afunc.mkr.16">
for more about ToolTalk message handling.</para>
</listitem><listitem><para>If you did not choose Advanced in the previous
step, click OK to apply the changes made and dismiss the Application Framework
Editor.</para>
</listitem><listitem><para>Click Advanced ToolTalk Connections if you chose
Advanced in the previous step.</para>
</listitem><listitem><para>Choose the appropriate ToolTalk function from the
When menu in the Connections Editor.</para>
</listitem><listitem><para>Choose Call Function as the Action Type.</para>
</listitem><listitem><para>Type in the name of the appropriate call function.
</para>
<para>This is the name of the function that will be called when a ToolTalk
operation is performed. You will have to edit the <filename>stubs.c</filename>
file to make the called function do something useful. See <!--Original XRef
content: '&xd2;Adding User Code to Generated
Code&xd3; on page&numsp;112'--><xref role="SecTitleAndPageNum" linkend="ABUG.codeg.mkr.6">
for information.</para>
</listitem><listitem><para>Click Connect to make the connection.</para>
</listitem><listitem><para>Click Cancel to dismiss the Connections Editor.
</para>
</listitem><listitem><para>Click OK in the Application Framework Editor to
apply the changes and dismiss the editor. <literal><indexterm><primary>application</primary><secondary>setting behavior of &lt;$endrange></secondary></indexterm></literal></para>
</listitem></orderedlist>
</sect2>
</sect1>
</chapter>
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 10:11:44-->
<?Pub *0000053823>

View File

@@ -0,0 +1,471 @@
<!-- $XConsortium: ch07.sgm /main/5 1996/09/08 19:48:47 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="ABUG.group.div.1">
<title id="ABUG.group.mkr.1">Grouping and Attaching Objects</title>
<para>In order to ensure that interface objects maintain consistent spacing
and size relationships, regardless of text changes (including internationalization
changes) and resizing of windows, you may need to group control objects and
to attach objects to each other.</para>
<para>This chapter discusses how to group and attach objects for dynamic layout
behavior.</para>
<informaltable id="ABUG.group.itbl.1" frame="All">
<tgroup cols="1">
<colspec colname="1" colwidth="4.0 in">
<tbody>
<row rowsep="1">
<entry><para><!--Original XRef content: 'Grouping Objects90'--><xref role="JumpText"
linkend="ABUG.group.mkr.2"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'To Create a Group90'--><xref role="JumpText"
linkend="ABUG.group.mkr.3"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'To Edit Group Properties91'--><xref
role="JumpText" linkend="ABUG.group.mkr.4"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'To Ungroup Objects in an Interface92'--><xref
role="JumpText" linkend="ABUG.group.mkr.5"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'To Create a Border around an Object93'--><xref
role="JumpText" linkend="ABUG.group.mkr.6"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'Attaching Objects93'--><xref role="JumpText"
linkend="ABUG.group.mkr.7"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'Attachments Editor94'--><xref role="JumpText"
linkend="ABUG.group.mkr.8"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'To Attach Objects in an Interface99'--><xref
role="JumpText" linkend="ABUG.group.mkr.9"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'Attachment Example: Custom Dialog100'--><xref
role="JumpText" linkend="ABUG.group.mkr.10"></para></entry></row></tbody>
</tgroup></informaltable>
<para><indexterm><primary>objects</primary><secondary>grouping and attaching
in one procedure</secondary></indexterm><indexterm><primary>attaching</primary>
<secondary>objects</secondary></indexterm><indexterm><primary>grouping and
attaching objects</primary></indexterm></para>
<sect1 id="ABUG.group.div.2">
<title id="ABUG.group.mkr.2">Grouping Objects</title>
<para>A <emphasis>group</emphasis> is a collection of objects that can be
treated as a unit. Once the objects in a group are positioned as desired,
the group can be moved, maintaining the relative positioning of the individual
objects. Because groups use dynamic layout for positioning objects, spacing
and alignment in the group are maintained if any of the objects in the group
change size.</para>
<para>See <!--Original XRef content: '&xd2;Group Property Editor&xd3; on
page&numsp;144'--><xref role="SecTitleAndPageNum" linkend="ABUG.apRPE.mkr.6">
for a description of the editor and each of its elements</para>
<sect2 id="ABUG.group.div.3" role="Procedure">
<title id="ABUG.group.mkr.3">To Create a Group<indexterm><primary>groups</primary><secondary>creating</secondary></indexterm><indexterm><primary>creating</primary><secondary>groups</secondary></indexterm></title>
<orderedlist>
<listitem><para>Select the control objects you want to be part
of the group.</para>
<para>You can select the objects either in the interface or the Module Browser,
and you can select the objects in whatever manner is most convenient. See
<!--Original XRef content: '&xd2;To
Select Control Objects in the Interface or the Browser&xd3; on page&numsp;24'--><xref
role="SecTitleAndPageNum" linkend="ABUG.layo.mkr.6"> for instructions.</para>
</listitem>
<listitem><para>Choose Group from the Layout menu or the pop-up
menu (displayed by pressing mouse button 3 with the cursor in the window
interface or in the Module Browser).</para>
<para>A rectangular box will be drawn around the group in the interface,
indicating that the group is selected. Note that Ungroup is active in the
Layout and pop-up menus; this is only true when a group is selected.</para>
<para>A new object will be displayed and selected in the Module Browser&mdash;an
object called &ldquo;group&ldquo; (or &ldquo;group2,&ldquo; and so on, if
other groups exist in the module). The group object is the parent of the
objects that comprise the group. Group members cannot be moved independently.
Any attempt to move an object in a group will cause the entire group to move.
</para>
</listitem></orderedlist>
</sect2>
<sect2 id="ABUG.group.div.4" role="Procedure">
<title id="ABUG.group.mkr.4">To Edit Group Properties<indexterm><primary>groups</primary><secondary>editing properties of &lt;$startrange></secondary></indexterm><indexterm><primary>editing</primary><secondary>group properties &lt;$startrange></secondary></indexterm></title>
<para>Group properties, including horizontal or vertical alignment and spacing
between objects, are set in the<indexterm><primary>Group Property Editor &lt;$startrange></primary></indexterm><indexterm>
<primary>property editor</primary><secondary>Group &lt;$startrange></secondary></indexterm> Group Property Editor.</para>
<orderedlist><listitem><para>Double-click the group in the interface or in
the Module Browser.</para>
<para>The group will be selected in the Revolving Property Editor. In the
interface you will have to click in the space <emphasis>between</emphasis>
group members to select the group.</para>
<para>Alternatively, you can display the Group Property Editor by choosing
Groups from the Editors menu of the primary window. Choosing Groups from
the Editors menu is the same as clicking Tear-off in the Revolving Property
Editor with Group chosen as Object Type.</para>
</listitem><listitem><para>Select the group to be edited from the Group Objects
list, if necessary.</para>
</listitem><listitem><para>Type a new name for the group, if necessary.<indexterm>
<primary>groups</primary><secondary>naming</secondary></indexterm><indexterm>
<primary>naming</primary><secondary>groups</secondary></indexterm></para>
</listitem><listitem><para>Choose a border frame style if you want the group
to have a border in the completed interface (no border is the default).<indexterm>
<primary>groups</primary><secondary>setting border frame style for</secondary>
</indexterm><indexterm><primary>border</primary><secondary>setting frame
style for groups</secondary></indexterm><indexterm><primary>setting</primary>
<secondary>border frame style for groups</secondary></indexterm></para>
<para>Border frame style choices are shadow out, shadow in, etched out, etched
in, and none.</para>
</listitem><listitem><para>Select a Layout Type.</para>
<para>Choices are as-is, vertical, horizontal, and row-column.</para>
<para>Depending on what you select, either the Vert Alignment or Horiz Alignment
option menu, or both, will be active. If you select rows-columns, the Rows
and Columns radio buttons will be active, also.</para>
</listitem><listitem><para>Designate the number of Rows or Columns (if row-column
layout was selected).</para>
<para>The number of columns will be determined automatically if you designate
the number of rows, and the number of rows will be determined automatically
if you designate the number of columns.</para>
</listitem><listitem><para>Choose a vertical alignment (if either vertical
alignment or row-column layout type was chosen).</para>
<para>The choices are align on left edge of objects (the default), align on
colons/labels, align on middle of objects, or align on right edge of objects.
</para>
</listitem><listitem><para>Designate vertical spacing (if either vertical
alignment or row-column layout type was chosen).</para>
<para>The absolute values are in pixels; 10 is the default.</para>
</listitem><listitem><para>Choose a horizontal alignment (if either horizontal
alignment or row- column layout type was chosen).</para>
<para>The choices are align on top edge of objects (the default), align on
middle of objects, or align on bottom edge of objects.</para>
</listitem><listitem><para>Designate horizontal spacing (if either horizontal
alignment or row-column layout type was chosen).</para>
<para>The absolute values are in pixels; 10 is the default.</para>
</listitem><listitem><para>Deselect Visible if you do not want the objects
in the group to be visible when the application is opened.</para>
</listitem><listitem><para>Deselect Active if you do not want the objects
in the group to be active when the application is opened.</para>
</listitem><listitem><para>Click OK or Apply to apply the changes.<indexterm>
<primary>Group Property Editor &lt;$endrange></primary></indexterm><indexterm><primary>property editor</primary>
<secondary>Group &lt;$endrange></secondary></indexterm></para>
<para><literal><indexterm><primary>editing</primary><secondary>group properties &lt;$endrange></secondary></indexterm></literal>The
Revolving Property Editor or Group Property Editor will be dismissed if you
click OK.<literal><indexterm><primary>groups</primary><secondary>editing
properties of &lt;$endrange></secondary>
</indexterm></literal></para>
</listitem></orderedlist>
</sect2>
<sect2 id="ABUG.group.div.5" role="Procedure">
<title id="ABUG.group.mkr.5">To Ungroup Objects in an Interface<indexterm><primary>ungrouping objects</primary></indexterm><indexterm><primary>groups</primary><secondary>undoing</secondary></indexterm></title>
<orderedlist><listitem><para>Select the group in the Module Browser or in
the interface.</para>
<para>In the interface, click between objects in a group to select the group.
You will know the group is selected if a box appears around two or more objects.
</para>
<para>If you can't select a group in the interface or if you want to be sure
to select the right group in an interface with many groups, open the Module
Browser. Groups are shown in the Module Browser by name of group; if you
select the group in the Module Browser, it is also selected in the interface.
</para>
</listitem><listitem><para>Choose Ungroup from the Layout menu or the interface
pop-up menu (displayed by pressing mouse button 3 in an interface window).
</para>
<para>The objects are no longer part of the group. You can now select any
of the objects and move it independently of the other objects.</para>
</listitem></orderedlist>
</sect2>
<sect2 id="ABUG.group.div.6" role="Procedure">
<title id="ABUG.group.mkr.6">To Create a Border around an Object<indexterm><primary>border</primary><secondary>creating for single object</secondary></indexterm><indexterm><primary>objects</primary><secondary>creating border for</secondary></indexterm><indexterm><primary>creating</primary><secondary>border on object</secondary></indexterm></title>
<para>The group function can be used to create a border around an individual
object, such as a label.</para>
<orderedlist><listitem><para>Select the object in the interface.</para>
</listitem><listitem><para>Choose Group from the Layout menu or the interface
pop-up menu.</para>
<para>The object will be part of a group.</para>
</listitem><listitem><para>Display the Group Property Editor.</para>
</listitem><listitem><para>Select the group you want to put a border around.
</para>
<para>If you double-click the group in the Module Browser, the Group Property
Editor will be displayed, with the group selected.</para>
</listitem><listitem><para>Choose the Border Frame style you want to add to
the object.</para>
</listitem><listitem><para>Click OK to apply the change and dismiss the Group
Property Editor.</para>
</listitem></orderedlist>
</sect2>
</sect1>
<sect1 id="ABUG.group.div.7">
<title id="ABUG.group.mkr.7">Attaching Objects</title>
<para><indexterm><primary>attachments</primary></indexterm>Attachments (and
groups, which are based on attachments) establish dynamic layout behavior
for objects in the interface. Dynamic layout behavior ensures that objects
will maintain consistent relationships during resize activities. Attachments
enable an internationalized application to work well in a number of locales.
</para>
<para>All child objects are attached by their top and left edges to the top
and left edge of their parent object, by default. Thus a control pane dropped
on a main window is attached by its left and top edges to the left and top
edges of the main window. Similarly, a button dropped on the control pane
is attached to the control pane.</para>
<para>If the parent object is resized in an upward or leftward direction,
the child object moves with the parent, maintaining the distance from the
top and left edge of the parent.</para>
<para>If a pane object is dropped on the top or left edge of its parent it
will be attached to that edge with an offset of 0. If it is dropped some
distance to the right and below the left and top edges of its parent, it
will have positive offsets.</para>
<para>If a pane object is resized from its right and bottom edges so that
it spans its parent object, it will be attached to the right and bottom edges
of its parent.</para>
<sect2 id="ABUG.group.div.8">
<title id="ABUG.group.mkr.8">Attachments Editor</title>
<para>Used to attach objects to each other for layout purposes, the Attachments
Editor is described below.</para>
<graphic id="ABUG.group.igrph.1" entityref="ABUG.group.fig.1"></graphic>
<informaltable>
<tgroup cols="2" colsep="0" rowsep="0">
<colspec align="left" colwidth="136*">
<colspec align="left" colwidth="392*">
<tbody>
<row>
<entry><para>Object Type</para></entry>
<entry><para>An option menu for choosing the type of object for which you
want to make attachments. Some object types (custom dialog, file selection
dialog, main window) do not have parents and are not included in the menu.
</para></entry></row>
<row>
<entry><para>Objects</para></entry>
<entry><para>A scrolling list for selecting the object for which you want
to make attachments.</para></entry></row>
<row>
<entry><para>Parent</para></entry>
<entry><para>A text field that indicates the parent of the selected object.
</para></entry></row>
<row>
<entry><para>Children</para></entry>
<entry><para>A scrolling list that lists the children of the Parent object.
</para></entry></row>
<row>
<entry><para>Parent attachments/Attachments in child</para></entry>
<entry><para>Radio buttons for displaying the attachments of the parent
of the selected object or the attachments of the children of the selected
object.
<?Pub _newline>Some objects (draw area pane, term pane, text pane) cannot
have children and may be children of a main window or custom dialog; thus,
neither Parent attachments nor Attachments in child will be active. If the
pane is a child of another pane, though, or if it is part of a layered pane,
Parent attachments will be active.</para></entry></row>
<row>
<entry><para>Attach To</para></entry>
<entry><para>Option menus for choosing the type of attachment for the selected
object and what to attach the object to. Also includes text fields for specifying
the Offset (in pixels) from the selected object and its parent or sibling
(a sibling is another object with the same parent) or for specifying the
Percentage offset of the selected object from its parent.
<?Pub _newline>The option menu below &ldquo;Attach To:&rdquo; is for choosing
which sibling to attach to and is active only for sibling attachments (two
small squares). The Offset text field is active for absolute (pixel) attachments
only; the Percentage text field is active for percentage attachments only.
<?Pub _newline>The selected object is shown in the center of its four possible
attachments. The attachments, starting at the top and going clockwise, are
top edge of selected object, right edge of selected object, bottom edge of
selected object, and left edge of selected object.
<?Pub _newline>Top- and left-edge attachments are illustrated and described
below; by default an object is attached at its top and left edges to the
top and left edges of its parent. The selected object (the object at the
center of the four Attach To boxes) is the <emphasis>controlling</emphasis>
object: if you move this controlling object, the pixel or percentage offset
is changed; click Reset to see current values after moving an attached object.
<?Pub _newline>If an attached parent object is resized, its child objects
will retain their pixel or percentage offsets from the edges of their parent.
The offsets will change if a child object is moved.
<?Pub _newline>Sibling icons (two small squares) are inactive if the selected
object has no siblings.</para></entry></row>
<row>
<entry><para><inlinegraphic id="ABUG.group.igrph.2" entityref="ABUG.group.fig.2">
</inlinegraphic></para></entry>
<entry><para>An ascending line from the top edge of a small square to the
top edge of its surrounding box represents an absolute (pixel offset) attachment
of the top edge of the selected object to the top edge of its parent.</para></entry>
</row>
<row>
<entry><para><inlinegraphic id="ABUG.group.igrph.3" entityref="ABUG.group.fig.3">
</inlinegraphic></para></entry>
<entry><para>A descending line from the top edge of a small square to the
bottom edge of its surrounding box represents an absolute (pixel offset)
attachment of the top edge of the selected object to the bottom edge of its
parent. This value will be negative, since y values are positive as they
ascend and negative as they descend.</para></entry></row>
<row>
<entry><para><inlinegraphic id="ABUG.group.igrph.4" entityref="ABUG.group.fig.4">
</inlinegraphic></para></entry>
<entry><para>Two vertically-aligned squares connected by a vertical line
represent an absolute (pixel offset) attachment of the top edge of the selected
object to the bottom edge of its sibling. The offset will change if the selected
object is moved. This value will be negative if the top edge of the selected
object is above the bottom edge of its sibling.</para></entry></row>
<row>
<entry><para><inlinegraphic id="ABUG.group.igrph.5" entityref="ABUG.group.fig.5">
</inlinegraphic></para></entry>
<entry><para>Two horizontally-aligned squares connected by a horizontal line
to the centers of their top edges represent an absolute (pixel offset) attachment
of the vertical center of the selected object to the vertical center of
its sibling. The offset will change if the selected object is moved. This
value will be negative if the center of the selected object is above the
center of its sibling.</para></entry></row>
<row>
<entry><para><inlinegraphic id="ABUG.group.igrph.6" entityref="ABUG.group.fig.6">
</inlinegraphic></para></entry>
<entry><para>A square with a two-headed arrow and a percentage sign above
it represents a percentage offset attachment of the top edge of the selected
object to the top edge of its parent. The offset will change if the selected
object is moved.</para></entry></row>
<row>
<entry><para><inlinegraphic id="ABUG.group.igrph.7" entityref="ABUG.group.fig.7">
</inlinegraphic></para></entry>
<entry><para>A square with a percentage sign above it and a two- headed arrow
between the center line of the square and the top of the surrounding box
represents a percentage offset attachment of the center of the selected object
to the top edge of its parent. The offset will change if the selected object
is moved.</para></entry></row>
<row>
<entry><para><inlinegraphic id="ABUG.group.igrph.8" entityref="ABUG.group.fig.8">
</inlinegraphic></para></entry>
<entry><para>A circle with a diagonal line through it represents no attachment
from the edge (top, left, bottom, or right) to another object. By default
a dropped object has no right or bottom edge attachments.</para></entry>
</row>
</tbody></tgroup>
</informaltable>
<note>
<para>Descriptions of the attachments to the bottom edge of the selected
object are correlatives of the descriptions of the top-edge attachments above.
Substitute &ldquo;bottom&rdquo; for &ldquo;top&rdquo; and &ldquo;top&rdquo;
for &ldquo;bottom&rdquo; for bottom-edge attachments. Normally you will
want top- and left-edge attachments only.</para>
</note>
<informaltable>
<tgroup cols="2" colsep="0" rowsep="0">
<colspec align="left" colwidth="100*">
<colspec align="left" colwidth="356*">
<tbody>
<row>
<entry><para><inlinegraphic id="ABUG.group.igrph.9" entityref="ABUG.group.fig.9">
</inlinegraphic></para></entry>
<entry><para>A horizontal line from the left edge of the surrounding box
to the left edge of a small square represents an absolute (pixel offset)
attachment of the left edge of the selected object to the left edge of its
parent. The offset will change if the selected object is moved.</para></entry>
</row>
<row>
<entry><para><inlinegraphic id="ABUG.group.igrph.10" entityref="ABUG.group.fig.10">
</inlinegraphic></para></entry>
<entry><para>A horizontal line from the right edge of the surrounding box
to the left edge of a small square represents an absolute (pixel offset)
attachment of the left edge of the selected object to the right edge of its
parent. The offset will change if the selected object is moved. This value
will be negative, since x values are positive to the left and negative to
the right.</para></entry></row>
<row>
<entry><para><inlinegraphic id="ABUG.group.igrph.11" entityref="ABUG.group.fig.11">
</inlinegraphic></para></entry>
<entry><para>Two horizontally-aligned squares connected by a horizontal line
represent an absolute (pixel offset) attachment of the left edge of the selected
object to the right edge of its sibling. The offset will change if the selected
object is moved. This value will be negative if the left edge of the selected
object is left of the right edge of its sibling.</para></entry></row>
<row>
<entry><para><inlinegraphic id="ABUG.group.igrph.12" entityref="ABUG.group.fig.12">
</inlinegraphic></para></entry>
<entry><para>Two vertically-aligned squares connected by a vertical line
to the centers of their left edges represent an absolute (pixel offset) attachment
of the horizontal center of the selected object to the horizontal center
of its sibling. The offset will change if the selected object is moved.
This icon is inactive if the selected object has no siblings. This value
will be negative if the center of the selected object is left of the center
of its sibling.</para></entry></row>
<row>
<entry><para><inlinegraphic id="ABUG.group.igrph.13" entityref="ABUG.group.fig.13">
</inlinegraphic></para></entry>
<entry><para>A square with a two-headed arrow and a percentage sign above
it represents a percentage offset attachment of the left edge of the selected
object to the left edge of its parent. The offset will change if the selected
object is moved.</para></entry></row>
<row>
<entry><para><inlinegraphic id="ABUG.group.igrph.14" entityref="ABUG.group.fig.14">
</inlinegraphic></para></entry>
<entry><para>A square with a percentage sign to its left and a two- headed
arrow between the center line of the square and the left of the surrounding
box represents a percentage offset attachment of the center of the selected
object to the left edge of its parent. The offset will change if the selected
object is moved.</para></entry></row>
</tbody></tgroup></informaltable>
<note>
<para>Descriptions of the attachments to the right edge of the selected object
are correlatives of the descriptions of the left-edge attachments above.
Substitute &ldquo;right&rdquo; for &ldquo;left&rdquo; and &ldquo;left&rdquo;
for &ldquo;right&rdquo; for right-edge attachments.
Normally you will want top- and left-edge attachments only.</para>
</note>
</sect2>
<sect2 id="ABUG.group.div.9" role="Procedure">
<title id="ABUG.group.mkr.9">To Attach Objects in an Interface<indexterm><primary>objects</primary><secondary>attaching &lt;$startrange></secondary></indexterm><indexterm><primary>attaching</primary><secondary>objects &lt;$startrange></secondary></indexterm></title>
<para>See
<!--Original XRef content: '&xd2;Attachments Editor&xd3; on page&numsp;94'--><xref
role="SecTitleAndPageNum" linkend="ABUG.group.mkr.8"> for an illustration
of the editor and
descriptions of its elements.</para>
<orderedlist>
<listitem><para>Choose Attachments from the Editors menu in the
App Builder primary
window to display the Attachments Editor.</para>
<para>The Attachments Editor can also be displayed by clicking the Attachments
button in a property editor or by choosing Attachments from the interface
or Module Browser pop-up menu.<indexterm><primary>Attachments Editor</primary></indexterm><indexterm><primary>editor</primary><secondary>Attachments</secondary></indexterm>
</para>
</listitem><listitem><para>Choose the object type you want to attach to its
parent or siblings.</para>
</listitem>
<listitem><para>Select the object that you want to attach.</para>
</listitem><listitem><para>Select an attachment type.</para>
<para>If you choose an icon with one small square you are making an attachment
from a child object to its parent. If you choose an icon with two small
squares you are making a sibling attachment. See
<!--Original XRef content: '&xd2;Attachments Editor&xd3; on
page&numsp;94'--><xref role="SecTitleAndPageNum" linkend="ABUG.group.mkr.8">
for descriptions of the types of attachments.</para>
<para>When you make an attachment, the selected object&mdash;the object in
the center of the four Attach To boxes&mdash;is the controlling object. That is, this
object can be moved without affecting its parent or sibling. The offset value or
percentage value will change to reflect the changed relationship between the
two objects.</para>
<para>On the other hand, if you move the other object&mdash;the object to
which the selected object is attached&mdash;the selected object will move so as to maintain
its relationship with the other object.</para>
<para>You may have to click Reset after moving an object in the interface
before the change is noted in the Attachments Editor.</para>
</listitem>
<listitem><para>Click OK or Apply to apply the changes.</para>
<para><indexterm><primary>objects</primary><secondary>attaching &lt;$endrange></secondary></indexterm>If you click
OK, the Attachments Editor will be dismissed.<indexterm><primary>attaching</primary><secondary>objects &lt;$endrange></secondary></indexterm></para>
</listitem></orderedlist>
</sect2>
</sect1>
<sect1 id="ABUG.group.div.10">
<title id="ABUG.group.mkr.10">Attachment Example: Custom Dialog</title>
<para>Drag and drop an App Builder custom dialog object to see an example
of
attachments. Each of the buttons at the bottom of the custom dialog are
attached to the top and sides of their enclosing dialog panel. They are attached
five pixels from the top of the panel and varying percentages from the left
edge of the panel (Button1 left edge 10%, right edge 30%; Button2 40% and 60%;
Button3 70% and 90%).</para>
<para>The left edge of Button1 will always be 10% from the edge of the panel
and the right edge of Button1 will always be 30% from the edge of the panel. Button1
will therefore always be as wide as 20% of the total width of the panel.
Button2's edges are 40% and 60% from the left edge of the panel; Button3's
edges are 70% and 90% from the left edge of the panel.</para>
<para>The three buttons will grow and shrink as the panel grows and shrinks,
and the distance between them will always be 10% of the total width of the panel.
</para>
</sect1>
</chapter>
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 10:11:44-->
<?Pub *0000034230>

View File

@@ -0,0 +1,258 @@
<!-- $XConsortium: ch08.sgm /main/6 1996/09/08 19:48:56 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="ABUG.test.div.1">
<Title Id="ABUG.test.mkr.1">Testing Menus, Help, and Connections</Title>
<Para>Many functions of your interface can be tested without generating code and
making the application. In both Test Shown Modules and Test Project mode, all
build windows except the App Builder primary window are closed, and the
App Builder primary window is inactive except for the Build button and the
Help menu.</Para>
<Para>If your project is small, you will probably want to test the entire project. If it is
large, you may want to test only selected modules, thus saving the time it takes
to load a large project. In Test Project mode the entire project is available.
Windows that are designated as not visible at startup (as are custom dialogs by
default, for instance) will not be visible.</Para>
<Para>See
<!--Original XRef content: '&xd2;To Show a Hidden Module&xd3; on page&numsp;18'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.proj.mkr.9"> for instructions if you are going to
use Test Shown Modules.</Para>
<InformalTable Id="ABUG.test.itbl.1" Frame="All">
<TGroup Cols="1">
<ColSpec Colname="1" Colwidth="4.0 in">
<TBody>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'To Test a Project or Selected Modules102'--><XRef Role="JumpText" Linkend="ABUG.test.mkr.2"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'To Test Help Volume Access102'--><XRef Role="JumpText" Linkend="ABUG.test.mkr.3"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'To Test On Item Help103'--><XRef Role="JumpText" Linkend="ABUG.test.mkr.4"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'To Test Menus in a Module104'--><XRef Role="JumpText" Linkend="ABUG.test.mkr.5"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'To Test Connections in a Project105'--><XRef Role="JumpText" Linkend="ABUG.test.mkr.6"></Para></Entry>
</Row>
</TBody>
</TGroup>
</InformalTable>
<Sect1 Id="ABUG.test.div.2" Role="Procedure">
<Title Id="ABUG.test.mkr.2">To Test a Project or Selected Modules<IndexTerm><Primary>projects</Primary><Secondary>testing</Secondary></IndexTerm><IndexTerm><Primary>testing</Primary><Secondary>projects</Secondary></IndexTerm></Title>
<OrderedList>
<ListItem>
<Para>Click Test Project or Test Shown Modules in the App Builder primary
window.</Para>
<Para>Depending on which button you selected, all modules in the current project
or only shown modules will be tested.</Para>
</ListItem>
<ListItem>
<Para>Test help, if appropriate.</Para>
<Para>See
<!--Original XRef content: '&xd2;To Test On Item Help&xd3; on page&numsp;103'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.test.mkr.4"> for instructions.</Para>
</ListItem>
<ListItem>
<Para>Test menu displays, if appropriate.</Para>
<Para>See
<!--Original XRef content: '&xd2;To Test Menus in a Module&xd3; on page&numsp;104'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.test.mkr.5"> for instructions.</Para>
</ListItem>
<ListItem>
<Para>Test connections, if appropriate.</Para>
<Para>See
<!--Original XRef content: '&xd2;To Test Connections in a Project&xd3; on page&numsp;105'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.test.mkr.6"> for instructions.</Para>
</ListItem>
<ListItem>
<Para>Click Build to return to build mode.</Para>
</ListItem>
</OrderedList>
<Sect2 Id="ABUG.test.div.3" Role="Procedure">
<Title Id="ABUG.test.mkr.3">To Test Help Volume Access</Title>
<Para>These instructions assume you have created a help menu and attached it to a
Help menu on the menu bar of a main window, as described in
<!--Original XRef content: '&xd2;Creating Help
and Help Connections&xd3; on page&numsp;67'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.afunc.mkr.2">.</Para>
<OrderedList>
<ListItem>
<Para>Display the modules to be tested, if necessary.</Para>
<Para>If you are not going to test the entire project, you will need to show the
modules to be tested. See
<!--Original XRef content: '&xd2;To Show a Hidden Module&xd3; on page&numsp;18'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.proj.mkr.9"> for
instructions.</Para>
</ListItem>
<ListItem>
<Para>Click Test Shown Modules or Test Project, as appropriate.</Para>
<Para>Click Test Project to test the entire project. Click Test Shown Modules to test
selected modules.</Para>
</ListItem>
<ListItem>
<Para>Test help volume access by choosing one of the help volume chapters
(Overview, Tasks, Reference, for example) from the Help menu.</Para>
<Para>A help volume window with the appropriate help text will be displayed, if
the help viewer (<Command>dthelpview</Command>) is accessible and the proper connection has
been made to the compiled help volume. See
<!--Original XRef content: '&xd2;Creating Help and Help
Connections&xd3; on page&numsp;67'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.afunc.mkr.2"> for instructions for creating help and making
connections to it. Dismiss the help window when you are finished with it.</Para>
</ListItem>
<ListItem>
<Para>Click Build to return to build mode.</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="ABUG.test.div.4" Role="Procedure">
<Title Id="ABUG.test.mkr.4">To Test On Item Help</Title>
<Para>These instructions assume you have created a help menu and attached it to a
Help item on the menu bar of a main window, as described in
<!--Original XRef content: '&xd2;Creating Help
and Help Connections&xd3; on page&numsp;67'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.afunc.mkr.2">.</Para>
<OrderedList>
<ListItem>
<Para>Display the modules to be tested, if necessary.</Para>
<Para>If you are not going to test the entire project, you will need to show the
modules to be tested. See
<!--Original XRef content: '&xd2;To Show a Hidden Module&xd3; on page&numsp;18'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.proj.mkr.9"> for
instructions.</Para>
</ListItem>
<ListItem>
<Para>Click Test Shown Modules or Test Project, as appropriate.</Para>
<Para>Click Test Project to test the entire project. Click Test Shown Modules to test
selected modules.</Para>
</ListItem>
<ListItem>
<Para>Test help volume access by choosing one of the help volume chapters
(Overview, Tasks, Reference, for example) from the Help menu.</Para>
<Para>A help volume window with the appropriate help text will be displayed, if
the help viewer (<Command>dthelpview</Command>) is accessible and the proper connection has
been made to the compiled help volume. See
<!--Original XRef content: '&xd2;Creating Help and Help
Connections&xd3; on page&numsp;67'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.afunc.mkr.2"> for instructions for creating help and making
connections to it. Dismiss the help window when you are finished with it.</Para>
</ListItem>
<ListItem>
<Para>Test On Item help by choosing On Item from the Help menu.</Para>
<Para>The cursor will turn into an arrow and a question mark.</Para>
</ListItem>
<ListItem>
<Para>Move the cursor over an interface object and click.</Para>
<Para>If the object (or one of its parent objects) has help text, it will be displayed in
a quick help window.</Para>
</ListItem>
<ListItem>
<Para>Click the More button in the quick-help window, if it is active.</Para>
<Para>The help volume will be displayed, at the location specified in the Location
ID for the selected object in the Help Editor. Dismiss the help window when
you are finished with it.</Para>
</ListItem>
<ListItem>
<Para>Click the Close button in the quick help window to dismiss it.</Para>
</ListItem>
<ListItem>
<Para>Click Build to return to build mode.</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="ABUG.test.div.5" Role="Procedure">
<Title Id="ABUG.test.mkr.5">To Test Menus in a Module<IndexTerm><Primary>menus</Primary><Secondary>testing</Secondary></IndexTerm><IndexTerm><Primary>testing</Primary><Secondary>menus</Secondary></IndexTerm></Title>
<Para>In Test Shown Modules mode, all windows in the currently-shown modules
will be displayed, including those whose initial state is not set Visible. See
<!--Original XRef content: '&xd2;To
Test a Project or Selected Modules&xd3; on page&numsp;102'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.test.mkr.2"> if you want to test the entire
project, with not-Visible windows hidden.</Para>
<OrderedList>
<ListItem>
<Para>Display the module to be tested, if necessary.</Para>
<Para>See
<!--Original XRef content: '&xd2;To Show a Hidden Module&xd3; on page&numsp;18'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.proj.mkr.9"> for instructions.</Para>
</ListItem>
<ListItem>
<Para>Click Test Shown Modules.</Para>
</ListItem>
<ListItem>
<Para>Click or press on the items in a menu bar, if appropriate.</Para>
<Para>The menus will be displayed. If you select a menu item that is connected to
certain predefined functions (Show or Hide a dialog, Access Help Volume,
Activate On Item Help, for example), the function will be performed.</Para>
</ListItem>
<ListItem>
<Para>Click each button menu, as appropriate.</Para>
<Para>The menus will be displayed. If you select a menu item that is connected to
certain predefined functions (Show or Hide a dialog, Access Help Volume,
Activate On Item Help, for example), the function will be performed.</Para>
</ListItem>
<ListItem>
<Para>Press mouse button 3 on a pane or list item to display a pop-up menu, if
appropriate.</Para>
<Para>The menus will be displayed. If you select a menu item that is connected to
certain predefined functions (Show or Hide a dialog, Access Help Volume,
Activate On Item Help, for example), the function will be performed.</Para>
</ListItem>
<ListItem>
<Para>Click Build to return to build mode.</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="ABUG.test.div.6" Role="Procedure">
<Title Id="ABUG.test.mkr.6">To Test Connections in a Project<IndexTerm><Primary>connections</Primary><Secondary>testing</Secondary></IndexTerm><IndexTerm><Primary>testing</Primary><Secondary>connections</Secondary></IndexTerm></Title>
<OrderedList>
<ListItem>
<Para>Display the modules to be tested, if necessary.</Para>
<Para>See
<!--Original XRef content: '&xd2;To Show a Hidden Module&xd3; on page&numsp;18'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.proj.mkr.9"> for instructions.</Para>
</ListItem>
<ListItem>
<Para>Click Test Project.</Para>
<Para>All build windows except the App Builder primary window will be closed,
and the primary window will be inactive except for the Build button and the
Help menu. Only windows in the project with an initial state set to Visible
will be displayed.</Para>
</ListItem>
<ListItem>
<Para>Click a button or choose a menu item that has a testable connection.</Para>
<Para>The following connections should work in test mode as they will work in
the compiled application:</Para>
<ItemizedList Remap="Bullet2">
<ListItem>
<Para>Show</Para>
</ListItem>
<ListItem>
<Para>Hide</Para>
</ListItem>
<ListItem>
<Para>Set Value</Para>
</ListItem>
<ListItem>
<Para>Set Text</Para>
</ListItem>
<ListItem>
<Para>Access Help Volume</Para>
</ListItem>
<ListItem>
<Para>Activate On Item Help</Para>
</ListItem>
<ListItem>
<Para>Enable</Para>
</ListItem>
<ListItem>
<Para>Disable</Para>
<Para>If you connect a button to a custom dialog, for instance, specifying the
button as the source object, Activated as the When action, the custom dialog
as the target object, and Show as the Action Type, the custom dialog will be
displayed when you click the button.</Para>
<Para>Connections to Call Function and Execute Code will be noted by messages
to standard out.</Para>
<Para>Connections to Application Framework, ToolTalk, and message dialogs are
not supported in test mode.</Para>
</ListItem>
</ItemizedList>
</ListItem>
</OrderedList>
</Sect2>
</Sect1>
</Chapter>
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 10:11:44-->

View File

@@ -0,0 +1,291 @@
<!-- $XConsortium: ch09.sgm /main/7 1996/09/08 19:49:04 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="ABUG.codeg.div.1">
<title id="ABUG.codeg.mkr.1">Generating Code and Building an Application</title>
<para>This chapter describes the Code Generator and its use to generate code,
add user code to generated code, make the application, and run the compiled
application. See <!--Original XRef content: '&xd2;Code Generator Window&xd3;
on page&numsp;130'--><xref role="SecTitleAndPageNum" linkend="ABUG.apWDB.mkr.9">
for an illustration of the Code Generator window and descriptions of its
elements.</para>
<informaltable id="ABUG.codeg.itbl.1" frame="All">
<tgroup cols="1">
<colspec colname="1" colwidth="4.0 in">
<tbody>
<row rowsep="1">
<entry><para><!--Original XRef content: 'Making and Running an Application107'--><xref
role="JumpText" linkend="ABUG.codeg.mkr.2"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'To Set Code Generator Options109'--><xref
role="JumpText" linkend="ABUG.codeg.mkr.3"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'To Set Environment Options110'--><xref
role="JumpText" linkend="ABUG.codeg.mkr.4"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'Adding User Code to Generated Code112'--><xref
role="JumpText" linkend="ABUG.codeg.mkr.6"></para></entry></row>
<row rowsep="1">
<entry><para><!--Original XRef content: 'To Generate Code from the Command
Line111'--><xref role="JumpText" linkend="ABUG.codeg.mkr.5"></para></entry>
</row></tbody></tgroup></informaltable>
<sect1 id="ABUG.codeg.div.2">
<title id="ABUG.codeg.mkr.2">Making and Running an Application</title>
<para>Two scenarios are described below. In the first scenario, you build
and run an application in one step. In the second scenario, you generate
code, compile the code, and run the application in separate steps.</para>
<para>In either case, if you have made changes to the project that have not
been saved, a message dialog box will be displayed, telling you that you
have unsaved edits and giving you the choice of cancelling the generate code
process or saving the project. If you choose to save the project, you will
have to specify where to save the project if it has not been saved before.
</para>
<sect2 id="ABUG.codeg.div.3" role="Procedure">
<title>To Make and Run in One Step</title>
<orderedlist><listitem><para><indexterm><primary>application</primary><secondary>building and running in one step</secondary></indexterm><indexterm><primary>running application</primary><secondary>in one step</secondary></indexterm>Choose
Code Generator from the File menu of the App Builder primary window.</para>
<para>The Code Generator is displayed.<indexterm><primary>Code Generator</primary></indexterm></para>
</listitem>
<listitem><para>Click Make &amp; Run to generate code, build the
application, and run it.</para>
<para>If you have saved the project and all goes well, a number of messages
will be displayed in the output pane at the top of the Code Generator. The
final message will be &ldquo;Running: ./[<emphasis>projectname</emphasis>]&rdquo;
and the application will run.</para>
<para>At the least, the application primary window will be displayed. Any
windows whose visibility is not set to yes at application startup will be
hidden. Depending on what functionality you included that does not require
user code, the application might do a variety of things. Menus can be displayed,
some connections can be tested, On Item help can be displayed, and so on.
</para>
</listitem>
</orderedlist>
<note>
<para>Ultimately, you must write some code to complete the application. For
example, any Call Function callbacks specified in the Connections Editor
will have to be substituted for. See <!--Original XRef content: '&xd2;Adding
User Code to Generated Code&xd3; on
page&numsp;112'--><xref role="SecTitleAndPageNum" linkend="ABUG.codeg.mkr.6">
for more information.</para>
</note>
</sect2>
<sect2 id="ABUG.codeg.div.4" role="Procedure">
<title>To Generate Code, Make, and Run Separately</title>
<orderedlist><listitem><para>Click Generate Code to generate code for the
current project.<indexterm><primary>application</primary><secondary>generating
code for</secondary></indexterm><indexterm><primary>generating code for application</primary></indexterm></para>
<para>As the code generator runs, messages are displayed in the output pane
at the top of the Code Generator window. The final message should be &ldquo;Completed
successfully.&rdquo; A number of files will be created, including Makefiles,
project files, module files, and two <filename>dtb_utils</filename> files.
You can look at the files in the term pane at the bottom of the Code Generator
window.</para>
</listitem><listitem><para>Click Make to build the application.<indexterm>
<primary>application</primary><secondary>building</secondary></indexterm><indexterm>
<primary>building application</primary></indexterm></para>
<para>More messages will be displayed in the Output Pane as the application
is compiled. The final message again should be &ldquo;Completed successfully.&rdquo;
A few more files will be created, including object files and the executable
application file, which has the name you gave the project.</para>
</listitem><listitem><para>Click Run to run the application.<indexterm>
<primary>application</primary><secondary>running</secondary></indexterm><indexterm>
<primary>running application</primary></indexterm></para>
<para>The application will be started&mdash;as if you had typed the name of
the executable at the command line.</para>
</listitem><listitem><para>Click Abort to quit the application.<indexterm>
<primary>application</primary><secondary>quitting</secondary></indexterm><indexterm>
<primary>quitting</primary><secondary>application</secondary></indexterm></para>
<para>This will terminate the application, closing all windows. You can also
click Abort to terminate code generation or <command>make</command> operations
started in the Code Generator window.</para>
</listitem>
</orderedlist>
</sect2>
<sect2 id="ABUG.codeg.div.5" role="Procedure">
<title id="ABUG.codeg.mkr.3">To Set Code Generator Options<indexterm><primary>options, Code Generator</primary></indexterm><indexterm><primary>Code Generator</primary><secondary>options</secondary></indexterm><indexterm><primary>setting</primary><secondary>Code Generator options</secondary></indexterm></title>
<para>To change the options that determine what code is generated and other
Code Generator functions:</para>
<orderedlist><listitem><para>Choose Code Generator from the File menu of the
App Builder primary window to display the Code Generator window.</para>
</listitem><listitem><para>Choose Generator from the Options menu to display
the Code Generator Options dialog box.</para>
</listitem><listitem><para>Select one of the Generate Code For options (Entire
Project, Main Only, Specific Modules Only, Specific Modules and Main).</para>
<para>If you select Specific Modules or Specific Modules and Main, the list
of modules is active. Select the names of the modules you want to generate
code for in the list.</para>
</listitem><listitem><para>Click Don't Merge if you do not want your hand-edited
code merged with the generated code.</para>
<note>
<para>Do not select Don't Merge unless you are sure you want to destroy the
user code.</para>
</note>
</listitem>
<listitem><para>Choose a different message reporting option if
you wish.</para>
<para>Choices are Report Normal Messages, Be Silent, and Be Verbose.</para>
</listitem><listitem><para>Type Make Arguments, if appropriate.</para>
<para>These arguments will be included when you click Make or Make &amp; Run.
</para>
</listitem><listitem><para>Type Run Time Arguments, if appropriate.</para>
<para>These arguments will be included when you click Run or Make &amp; Run.
</para>
</listitem><listitem><para>Click Reset to Defaults to set all fields to their
default values.</para>
<para>Default values are Generate Code For Entire Project, Merge user code
with generated code, and Report Normal Messages.</para>
</listitem><listitem><para>Click OK or Apply to make the changes.</para>
<para>The Options dialog box will be dismissed if you click OK.</para>
</listitem></orderedlist>
</sect2>
<sect2 id="ABUG.codeg.div.6" role="Procedure">
<title id="ABUG.codeg.mkr.4">To Set Environment Options<indexterm><primary>environment options, Code Generator</primary></indexterm><indexterm><primary>setting</primary><secondary>environment options</secondary></indexterm></title>
<orderedlist><listitem><para>Choose Code Generator from the File menu of the
App Builder primary window to display the Code Generator window.</para>
</listitem><listitem><para>Choose Environment from the Options menu to display
the Environment Options dialog box.</para>
</listitem><listitem><para>Type a variable in the Variable Name text field.
</para>
<para>You might want to change <command>PATH</command>, for instance.</para>
</listitem><listitem><para>Click Get to display the current value for the
variable in Variable Name.</para>
<para>The value of the variable will be displayed in the Value pane.</para>
</listitem><listitem><para>Make a change to Value and click Set to change
the value of the variable.</para>
<para>This change is made for this App Builder session only.</para>
</listitem><listitem><para>Click Reset to reset Value to its value outside
this session of App Builder.</para>
</listitem><listitem><para>Click Cancel to dismiss the dialog box.</para>
</listitem></orderedlist>
</sect2>
<sect2 id="ABUG.codeg.div.7" role="Procedure">
<title id="ABUG.codeg.mkr.5">To Generate Code from the Command Line</title>
<para>To generate App Builder code from the command line, run <command>dtcodegen</command>. Usage is described below.</para>
<para>Usage: <command>dtcodegen</command> [<symbol role="Variable">options</symbol>] [<symbol role="Variable">project-file</symbol>] [ <symbol role="Variable">module-file</symbol> [<symbol role="Variable">module-file</symbol>] ...]</para>
<para>Code is generated for each module specified on the command line, or
for all modules in the project, if no modules are specified. If no project
file is specified, a project file containing the specified module(s) is searched
for in the current directory.</para>
<para>Files with extension <filename>.bip</filename> are assumend to be BIL
project files, files with <filename>.bix</filename> extension are assumed
to be encapsulated BIL files, and files with a <filename>.bil</filename>
extension are assumed to be BIL module files.</para>
<informaltable>
<tgroup cols="2" colsep="0" rowsep="0">
<colspec align="left" colname="col1" colwidth="169*">
<colspec align="left" colname="col2" colwidth="359*">
<spanspec nameend="col2" namest="col1" spanname="1to2">
<thead>
<row><entry align="left" spanname="1to2" valign="bottom"><para>Options (* = default, + = default with no project
file)</para></entry>
</row>
</thead>
<tbody>
<row>
<entry><para><command>-help (-h)</command></para></entry>
<entry><para>Print out this help message</para></entry></row>
<row>
<entry><para><filename>-main</filename></para></entry>
<entry><para>Write file containing main()</para></entry></row>
<row>
<entry><para><filename>-changed</filename></para></entry>
<entry><para>Only generate files that have changed</para></entry></row>
<row>
<entry><para><command>* -merge</command></para></entry>
<entry><para>Merge generated _stubs.c files with previous version</para></entry>
</row>
<row>
<entry><para><filename>-nomerge</filename></para></entry>
<entry><para>Don't merge existing and new stubs file</para></entry></row>
<row>
<entry><para><command>* -project (-p)</command></para></entry>
<entry><para>Specify a project to generate code for</para></entry></row>
<row>
<entry><para><command>-noproject (-np)</command></para></entry>
<entry><para>Use default project settings, ignore project file</para></entry>
</row>
<row>
<entry><para><command>+ -showall</command></para></entry>
<entry><para>Application shows (maps) all windows at startup</para></entry>
</row>
<row>
<entry><para><command>* -noshowall</command></para></entry>
<entry><para>Application shows (maps) only initially-visible windows
</para></entry></row>
<row>
<entry><para><command>-silent (-s)</command></para></entry>
<entry><para>Silent mode, no messages written</para></entry></row>
<row>
<entry><para><command>-verbose (-v)</command></para></entry>
<entry><para>Verbose mode, detailed progress messages</para></entry></row>
</tbody></tgroup></informaltable>
</sect2>
</sect1>
<sect1 id="ABUG.codeg.div.8">
<title id="ABUG.codeg.mkr.6">Adding User Code to Generated Code</title>
<para>When you generate code for the interface you have developed by clicking
Generate Code in the Code Generator window or running <command>dtcodegen</command> from the command line, a number of files are generated in the
project folder. If your project is called &ldquo;test&rdquo; and it has
one module, called &ldquo;mod1,&rdquo; for instance, the following files
will be created:</para>
<itemizedlist remap="Bullet1"><listitem><para><command>Makefile</command>
(plus Makefiles for other platforms)</para>
</listitem><listitem><para><filename>dtb_utils.c</filename></para>
</listitem><listitem><para><filename>dtb_utils.h</filename></para>
</listitem><listitem><para><filename>mod1.bil</filename> (module file)</para>
</listitem><listitem><para><filename>mod1_stubs.c</filename></para>
</listitem><listitem><para><filename>mod1_ui.c</filename></para>
</listitem><listitem><para><filename>mod1_ui.h</filename></para>
</listitem><listitem><para><filename>test.bip</filename> (project file)</para>
</listitem><listitem><para><filename>test.c</filename></para>
</listitem><listitem><para><filename>test.h</filename></para>
</listitem><listitem><para><command>Test</command> (resource file)</para>
</listitem></itemizedlist>
<para>If you have made Call Function or Execute Code connections in the Connections
Editor, those connections will show up in the generated code. All of the
areas of the generated code that my be modified by you are marked with comments
of the form:</para>
<programlisting>/* DTB_USER_CODE START */
/* DTB_USER_CODE_END */
</programlisting>
<para>The area between the START and END comments are considered a &ldquo;user
segment.&rdquo; Any text (even non-C code) may be added within a user segment,
and the code generator will preserve this code in all future versions of
the code. Each user segment begins with a comment that suggests what type
of code should be added in that segment, or what state the application is
in when that segment is executed. These suggestions are purely informational,
and may be ignored.</para>
<para>Neither App Builder nor the code generator verify that the code added
by you is legal C code. It is your responsibility to ensure that any file
you modify can be processed satisfactorily by your compiler.</para>
<para>If you wish to destroy all of the hand-edited code, you must either
explicitly select Don't Merge from the Options dialog of the Code Generator
Window, or run <command>dtcodegen</command> with the <filename>-nomerge</filename>
option. This should be done only with great caution, as large amounts of
work may be lost.</para>
<para>Under no circumstances should the generated comments be modified. If
they are modified, code generation will fail, and the resulting file will
very likely be uncompilable. A backup file, with the extension <filename>.BAK</filename>, is preserved in the current directory to help recover from
such mistakes.</para>
<para>The user code segments appear in strategic places in the code, to allow
you a great deal of freedom in customizing the generated application. All
code related to <filename>main()</filename> and application-wide data and
structures are defined in &lt;<emphasis>projectname</emphasis>><filename>.h</filename> and &lt;<emphasis>projectname</emphasis>><filename>.c</filename>.
In these files, fields may be added to the Xt resource data structure for
the application, new developer-defined data types and variables may be added,
and the application's startup procedures may be amended.</para>
<para>Each &lt;<emphasis>modulename</emphasis>><filename>_stubs.c</filename>
file contains user segments for modifying the effects of generated connections.
Your code may be added both before and after the automatically-generated
code is executed.</para>
<para>In addition, each file contains a user segment at the top of each file
that can be used to add a custom header or copyright notice.</para>
</sect1>
</chapter>
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 10:11:44-->
<?Pub *0000022158>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,111 @@
<!-- $XConsortium: preface.sgm /main/6 1996/09/08 19:49:13 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="ABUG.pref.div.1">
<Title>Preface</Title>
<Para>This manual introduces the Application Builder <Emphasis>(</Emphasis>referred to throughout this
document as App Builder<Emphasis>)</Emphasis> and shows you how best to use it. See
<!--Original XRef content: '&xd2;Overview of
the App Builder Process&xd3; on page&numsp;4'--><XRef Role="SecTitleAndPageNum" Linkend="ABUG.intro.mkr.4"> for a summary description.</Para>
<Sect1 Id="ABUG.pref.div.2">
<Title>Who Should Use This Book</Title>
<Para>This user's guide is for anyone who wants to build or prototype a user
interface with App Builder. Because you can easily create and modify user
interfaces without writing any code using App Builder, it is a powerful tool for
programmers and non-programmers&mdash;including user interface designers and
project managers.</Para>
</Sect1>
<Sect1 Id="ABUG.pref.div.3">
<Title>How This Book Is Organized</Title>
<Para><!--Original XRef content: 'Chapter&numsp;1, &xd2;Getting Started'--><XRef Role="ChapNumAndTitleLead-in" Linkend="ABUG.intro.mkr.1"><Emphasis Role="Lead-in">,</Emphasis> includes an annotated picture of the App
Builder primary window, an overview of the process of building an
application, and instructions for starting App Builder.</Para>
<Para><!--Original XRef content: 'Chapter&numsp;2, &xd2;Managing Projects and Modules'--><XRef Role="ChapNumAndTitleLead-in" Linkend="ABUG.proj.mkr.1"><Emphasis Role="Lead-in">,</Emphasis> explains how to create, open,
save, and close projects and modules, and how to hide and show modules.</Para>
<Para><!--Original XRef content: 'Chapter&numsp;3, &xd2;Laying Out a User Interface'--><XRef Role="ChapNumAndTitleLead-in" Linkend="ABUG.layo.mkr.1"><Emphasis Role="Lead-in">,</Emphasis> explains how to drag and drop
objects from the object palettes, how to edit interface objects, and how to align
and distribute control objects in the interface.</Para>
<Para><!--Original XRef content: 'Chapter&numsp;4, &xd2;Editing Properties of Interface Objects'--><XRef Role="ChapNumAndTitleLead-in" Linkend="ABUG.edprp.mkr.1"><Emphasis Role="Lead-in">,</Emphasis> explains how to edit
object properties in the Revolving Property Editor.</Para>
<Para><Literal><!--Literal closed to allow XRef:--></Literal>
<!--Original XRef content: 'Chapter&numsp;5, &xd2;Creating and Editing Panes, Menus, and Messages'--><XRef Role="ChapNumAndTitleLead-in" Linkend="ABUG.crobj.mkr.1"><Emphasis Role="Lead-in">,</Emphasis> explains
how to create and edit pane objects, menus, and message dialog boxes.</Para>
<Para><!--Original XRef content: 'Chapter&numsp;6, &xd2;Adding Functionality to the Interface'--><XRef Role="ChapNumAndTitleLead-in" Linkend="ABUG.afunc.mkr.1"><Emphasis Role="Lead-in">,</Emphasis> explains how to create on-
item help, how to create functional connections between objects, and how to
establish drag and drop and application framework behavior.</Para>
<Para><!--Original XRef content: 'Chapter&numsp;7, &xd2;Grouping and Attaching Objects'--><XRef Role="ChapNumAndTitleLead-in" Linkend="ABUG.group.mkr.1"><Emphasis Role="Lead-in">,</Emphasis> explains how to group control
objects and how to attach objects to each other for dynamic resize behavior.</Para>
<Para><!--Original XRef content: 'Chapter&numsp;8, &xd2;Testing Menus, Help, and Connections'--><XRef Role="ChapNumAndTitleLead-in" Linkend="ABUG.test.mkr.1"><Emphasis Role="Lead-in">,</Emphasis> explains how to change
to test mode for testing certain App Builder functions.</Para>
<Para><!--Original XRef content: 'Chapter&numsp;9, &xd2;Generating Code and Building an Application'--><XRef Role="ChapNumAndTitleLead-in" Linkend="ABUG.codeg.mkr.1"><Emphasis Role="Lead-in">,</Emphasis> describes the
Code Generator and explains how to generate code, make your application,
and run it.</Para>
<Para><!--Original XRef content: 'Appendix&numsp;A, &xd2;App Builder Windows and Dialog Boxes'--><XRef Role="AppendixNumAndTitleLead-in" Linkend="ABUG.apRPE.mkr.1"><Emphasis Role="Lead-in">,</Emphasis> describes the
primary window, including its object palettes, and other App Builder
windows, including the Project Organizer, the Module Browser, and the Code
Generator.</Para>
<Para><!--Original XRef content: 'Appendix&numsp;B, &xd2;Revolving Property Editor'--><XRef Role="AppendixNumAndTitleLead-in" Linkend="ABUG.apRPE.mkr.1"><Emphasis Role="Lead-in">,</Emphasis> describes the Revolving Property
Editor in general and each of the individual property editors specifically.</Para>
</Sect1>
<Sect1 Id="ABUG.pref.div.4">
<Title Id="ABUG.pref.mkr.1">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="ABUG.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>&minus;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>