<!-- $XConsortium: Tasks.sgm /main/8 1996/09/08 22:00:54 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. -->
<!--	Help Volume: Application Builder
	File Name: tasks -->
<Chapter Id="ABTasks">
<Title>App Builder Tasks</Title>
<Para>&newline; &empty;</Para>
<!-- The basic App Builder process is to drag and drop objects from the
palettes onto the desktop, to edit the properties of objects in the interface,
to make programmatic connections between objects, and to generate code
to create a working application. -->
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.1">
<Para><XRef Linkend="ABManagingProject">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.2">
<Para><XRef Linkend="ABLayingOutInterface">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.3">
<Para><XRef Linkend="ABEditingProperties">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.4">
<Para><XRef Linkend="ABCreatingPaneObjects">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.5">
<Para><XRef Linkend="ABCreatingMenus">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.6">
<Para><XRef Linkend="ABCreatingMessages">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.7">
<Para><XRef Linkend="ABCreatingHelp">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.8">
<Para><XRef Linkend="ABMakingConnections">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.9">
<Para><XRef Linkend="ABTesting">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.10">
<Para><XRef Linkend="ABGroupandAttach">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.11">
<Para><XRef Linkend="ABMakeDragandDrop">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.12">
<Para><XRef Linkend="ABMakeAppFramework">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.13">
<Para><XRef Linkend="ABBuildandRun">
</Para>
</ListItem>
</ItemizedList>
<Sect1 Id="ABManagingProject">
<Title>Managing Projects and Modules</Title>
<IndexTerm>
<Primary>project management</Primary>
</IndexTerm>
<IndexTerm>
<Primary>managing a project</Primary>
</IndexTerm>
<Para>Whenever you are building an interface with App Builder, you are
working on a <Link Type="Definition" Linkend="ABProjectDef"> project </Link>, which is
comprised of one or more <Link Type="Definition" Linkend="ABModuleDef"> modules
</Link>.</Para>
<Para>A project can be opened, saved, or closed from the App Builder primary
window or in the Project Organizer. Modules can be imported or exported
from the App Builder primary window, but they can be saved, shown,
hidden, or removed from a project only in the Project Organizer.</Para>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.14">
<Para><XRef Linkend="ABStartAB">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.15">
<Para><XRef Linkend="ABQuit">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.16">
<Para><XRef Linkend="ABOpenNewProj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.17">
<Para><XRef Linkend="ABOpenProj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.18">
<Para><XRef Linkend="ABFSDFileSelect">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.19">
<Para><XRef Linkend="ABSaveProj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.20">
<Para><XRef Linkend="ABSaveProjAs">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.21">
<Para><XRef Linkend="ABSaveEncap">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.22">
<Para><XRef Linkend="ABCloseProj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.23">
<Para><XRef Linkend="ABModOpenNew">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.24">
<Para><XRef Linkend="ABModImport">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.25">
<Para><XRef Linkend="ABModSave">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.26">
<Para><XRef Linkend="ABModSaveAs">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.27">
<Para><XRef Linkend="ABModExport">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.28">
<Para><XRef Linkend="ABModSaveAsUil">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.29">
<Para><XRef Linkend="ABModShow">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.30">
<Para><XRef Linkend="ABModHide">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.31">
<Para><XRef Linkend="ABModRemove"></Para>
</ListItem>
</ItemizedList>
<Sect2 Id="ABStartAB">
<Title>To Open or Start App Builder</Title>
<IndexTerm>
<Primary>open App Builder from icon</Primary>
</IndexTerm>
<IndexTerm>
<Primary>start App Builder from icon</Primary>
</IndexTerm>
<IndexTerm>
<Primary>start App Builder, command line</Primary>
</IndexTerm>
<IndexTerm>
<Primary>open App Builder, command line</Primary>
</IndexTerm>
<IndexTerm>
<Primary>command line start</Primary>
</IndexTerm>
<Procedure>
<Title>To Open App Builder from an Icon</Title>
<Step>
<Para>If App Builder has previously been open and the App Builder icon is on
the desktop, double-click on the icon to open App Builder.
&newline; &empty;
<Graphic Entityref="ABiconFig" Id="H.TSKS.grph.1"></Graphic> Application Builder Icon</Para>
</Step>
</Procedure>
<Procedure>
<Title>To Open App Builder from the Front Panel</Title>
<Step>
<Para>If App Builder is installed on the Front Panel, click on the App
Builder icon in the Personal Applications subpanel to open App
Builder.</Para>
<Para>To install App Builder on the Front Panel, as shown below, see <OLink Type="jump" LocalInfo="Appmanager CopyAppToFrontPanel"> To Put an Application Icon
in the Front Panel </OLink> in the Application Manager help volume for
instructions. Click Backtrack to return to this location after reading
the instructions.</Para>
<Graphic Entityref="FrontPanelwABFig" Id="H.TSKS.fig.1"></Graphic>
</Step>
</Procedure>
<Procedure>
<Title>To Start App Builder from the Command Line</Title>
<Step>
<Para>The command to run App Builder is <ComputerOutput>dtbuilder.</ComputerOutput> Use
one of the following methods to start App Builder.</Para>
<ItemizedList Mark="&bull;">
<ListItem Id="H.TSKS.item.32">
<Para>Type <ComputerOutput>dtbuilder</ComputerOutput>
If <ComputerOutput>dtbuilder</ComputerOutput> is in your path, App Builder will
start up. If <ComputerOutput>dtbuilder</ComputerOutput> is not in your path,
modify your path to include it.</Para>
<Para><Emphasis>Or</Emphasis>
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.33">
<Para>Type the full path name to <ComputerOutput>dtbuilder</ComputerOutput>,
which, by default, is
<ComputerOutput>/usr/dt/bin/dtbuilder</ComputerOutput>
<Emphasis>Or</Emphasis>
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.34">
<Para>Change to the folder where <ComputerOutput>dtbuilder</ComputerOutput> is located (<ComputerOutput>/usr/dt/bin/dtbuilder</ComputerOutput> by default) and type</Para>
<Para><ComputerOutput>dtbuilder</ComputerOutput>
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.35">
<Para><XRef Linkend="ABQuit">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABQuit">
<Title>To Exit App Builder</Title>
<IndexTerm>
<Primary>close App Builder</Primary>
</IndexTerm>
<IndexTerm>
<Primary>exit App Builder</Primary>
</IndexTerm>
<IndexTerm>
<Primary>quit App Builder</Primary>
</IndexTerm>
<ItemizedList Mark="&bull;">
<ListItem Id="H.TSKS.item.36">
<Para>Choose Exit from the File menu 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. You could then save your changes and exit.</Para>
</ListItem>
</ItemizedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.37">
<Para><XRef Linkend="ABSaveProj">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABOpenNewProj">
<Title>To Create a New Project</Title>
<IndexTerm>
<Primary>open new project</Primary>
</IndexTerm>
<IndexTerm>
<Primary>new project</Primary>
</IndexTerm>
<IndexTerm>
<Primary>project</Primary>
</IndexTerm>
<IndexTerm>
<Primary>resource file</Primary>
</IndexTerm>
<IndexTerm>
<Primary>project naming</Primary>
</IndexTerm>
<IndexTerm>
<Primary>naming a project</Primary>
</IndexTerm>
<OrderedList>
<ListItem Id="H.TSKS.item.38">
<Para>Choose New Project from the File menu.</Para>
<Para>The Project Name dialog box will be displayed.</Para>
<Para>&newline; &empty;
</Para>
<Graphic Entityref="NameProjectFig" Id="H.TSKS.fig.2"></Graphic>
<Para>If you have made changes to the current project since you last saved
it, a message dialog box will be displayed, giving you the option to discard
the changes and create the new project or to cancel the New Project
operation. You could then save the current project before creating the
new project.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.39">
<Para>Type a name (all lower case) for the project and click Apply.</Para>
<Para>The name of the project (with <ComputerOutput>.bip</ComputerOutput> 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>
<Para>Note: Project names should be all lower case so that there is no
conflict between the name of the project resource file and the project
executable file. The name of the resource file created when you
generate code is the same as the name of the project, minus the .bip
suffix, but it is given an initial capital letter. The name of the
executable file created when you make the project is the same as the
name of the project, minus the .bip suffix, but it is made all lower
case, with an underbar preceding each capital letter (if any) after
the first. See <XRef Linkend="ABBuildandRun"> for detailed information.</Para>
</ListItem>
</OrderedList>
<Para>By default, an unnamed project is called " <ComputerOutput>Untitled.bip</ComputerOutput> ." You can give the project a different name when you save it.</Para>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.40">
<Para><XRef Linkend="ABOpenProj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.41">
<Para><XRef Linkend="ABSaveProj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.42">
<Para><XRef Linkend="ABProjOrg"></Para>
</ListItem>
<ListItem Id="H.TSKS.item.43">
<Para><XRef Linkend="ABFileSelDialog">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABOpenProj">
<Title>To Open an Existing Project</Title>
<IndexTerm>
<Primary>open project</Primary>
</IndexTerm>
<IndexTerm>
<Primary>project</Primary>
</IndexTerm>
<OrderedList>
<ListItem Id="H.TSKS.item.44">
<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 file selection 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, giving you the option to
discard the changes and open the other project or to cancel the Open
Project operation. You could then save the current project before
opening the other project.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.45">
<Para>Change folders, if necessary.</Para>
<Para>See <XRef Linkend="ABFSDFileSelect"> for instructions.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.46">
<Para>Double-click the appropriate project file (<ComputerOutput>.bip</ComputerOutput> suffix) in the Files list of the file selection dialog</Para>
<Para>Or select the file and click Open.</Para>
<Para>The selected project will be displayed in the Project Organizer. See
<XRef Linkend="ABModShow"> for instructions for displaying the modules in a
project. The name of the project will be displayed in the title bar of
the App Builder primary window.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.47">
<Para><XRef Linkend="ABOpenNewProj"></Para>
</ListItem>
<ListItem Id="H.TSKS.item.48">
<Para><XRef Linkend="ABSaveProj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.49">
<Para><XRef Linkend="ABProjOrg"></Para>
</ListItem>
<ListItem Id="H.TSKS.item.50">
<Para><XRef Linkend="ABFileSelDialog">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.51">
<Para><XRef Linkend="ABFSDFileSelect">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABFSDFileSelect">
<Title>To Select a File in a File Selection Dialog Box</Title>
<IndexTerm>
<Primary>select file</Primary>
</IndexTerm>
<IndexTerm>
<Primary>file selection</Primary>
</IndexTerm>
<IndexTerm>
<Primary>file selection dialog box</Primary>
</IndexTerm>
<Para>The file selection dialog box is displayed when various project and
module operations are performed. The file selection dialog box will be
titled "Open Project," "Save Project," "Import File," or "Export
Module," depending on the operation. The leftmost button at the bottom
of the dialog box will be labelled "Open," "Save," "Import," or
"Export."
</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.52">
<Para>Change to the folder where the file is located.</Para>
<Para>See instructions for changing folders below.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.53">
<Para>Double-click on the file name in the Files list to select it
and perform the appropriate action.</Para>
<Para><Emphasis>Or</Emphasis>
Click on the file name in the Files list and press the Return key or
click Open (or Save, Import, or Export, depending on what file
operation is being performed).</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>How to Change Folders</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.54">
<Para>Double-click on one of the folders in the Folders list to
append it to Path and to change the path to that folder.</Para>
<Para><Emphasis>Or</Emphasis>
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.55">
<Para>Double-click on ".." in Folders to move up one folder level.</Para>
<Para><Emphasis>Or</Emphasis>
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.56">
<Para>Click in the Path field to place a text cursor; you can then
type or backspace at the cursor location to designate a change in
Path. Press Return or click Update to make the change. If you
designate a non-existent folder, a warning beep will sound.</Para>
<Para><Emphasis>Or</Emphasis>
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.57">
<Para>Double-click on the Path field to select the entire path; you
can then type in a full path name to replace the current path. Press
Return or click Update to make the change.</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.58">
<Para><XRef Linkend="ABFileSelDialog"> for an illustration of a file selection
dialog box and descriptions of dialog box fields.
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.59">
<Para><XRef Linkend="ABOpenNewProj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.60">
<Para><XRef Linkend="ABProjOrg"></Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABSaveProj">
<Title>To Save a Project</Title>
<IndexTerm>
<Primary>save project</Primary>
</IndexTerm>
<IndexTerm>
<Primary>project</Primary>
</IndexTerm>
<Para>A project is only saved when you explicitly choose to save it, so be
sure to save often and regularly. See <XRef Linkend="ABFileSelDialog"> for an
illustration of a file selection dialog box and descriptions of dialog box
fields.</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.61">
<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
file selection dialog box will be displayed. See <XRef Linkend="ABFSDFileSelect">for instructions.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.62">
<Para>Change to the appropriate folder.</Para>
<Para>Note that you will normally want a separate folder for each project
you work on.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.63">
<Para>Type a file name in the Enter Filename field.</Para>
<Para>You do not have to append .bip to the project name; this is done
automatically when you save a project.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.64">
<Para>Click Save.</Para>
<Para>The project will be saved.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.65">
<Para><XRef Linkend="ABFileSelDialog">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.66">
<Para><XRef Linkend="ABOpenNewProj">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABSaveProjAs">
<Title>To Rename a Project (Save As)</Title>
<IndexTerm>
<Primary>rename project</Primary>
</IndexTerm>
<IndexTerm>
<Primary>project</Primary>
</IndexTerm>
<IndexTerm>
<Primary>save as, project</Primary>
</IndexTerm>
<Para>To save a project with a different name or in a different folder:
</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.67">
<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 file selection dialog box will be displayed, with the
current project name in the Enter Filename field.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.68">
<Para>Change to another folder, if necessary.</Para>
<Para>See <XRef Linkend="ABFSDFileSelect"> for instructions. You have to press Return
or click Update before the folder change is registered.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.69">
<Para>Modify the name or type in a new name in the Enter Filename field.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.70">
<Para>Click Save.</Para>
<Para>The project has been renamed -- in the same folder or in another
folder. The old project file will still be in the folder, but it will
not be the active project file. If you generate code for the project
and run <ComputerOutput>make</ComputerOutput> in the folder, the new project
name will be used.</Para>
<Para>If you saved the project in a different folder, the contents of the
project file will be written in the new folder, and all of the
modules in the folder will have been copied to the new folder.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.71">
<Para><XRef Linkend="ABFileSelDialog">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.72">
<Para><XRef Linkend="ABOpenNewProj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.73">
<Para><XRef Linkend="ABModSaveAs">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABSaveEncap">
<Title>To Save a Project to a File (Encapsulate Project)</Title>
<IndexTerm>
<Primary>save encapsulated</Primary>
</IndexTerm>
<IndexTerm>
<Primary>save as,  encapsulated</Primary>
</IndexTerm>
<IndexTerm>
<Primary>encapsulate file save</Primary>
</IndexTerm>
<Para>A project is comprised of one or more modules. Normally a project file
is saved in a file with a <ComputerOutput>.bip</ComputerOutput> suffix, and each
module file is saved in a separate file with a <ComputerOutput>.bil</ComputerOutput> suffix.)</Para>
<Para>To save a project as a single file (for convenience in mailing the
project to someone, for instance):</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.74">
<Para>Open the project, as described in <XRef Linkend="ABOpenProj">.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.75">
<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 Id="H.TSKS.item.76">
<Para>Change to the appropriate folder, if necessary. See <XRef Linkend="ABFSDFileSelect"> for instructions.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.77">
<Para>Click the Save As Encapsulated Project check box.</Para>
<Para>The name of the current project will be displayed in the Enter
Filename field, with a .bix (builder interface exchange) suffix.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.78">
<Para>Click Save or press Return.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.79">
<Para><XRef Linkend="ABFileSelDialog">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.80">
<Para><XRef Linkend="ABOpenNewProj">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABCloseProj">
<Title>To Close a Project</Title>
<IndexTerm>
<Primary>close project</Primary>
</IndexTerm>
<IndexTerm>
<Primary>project</Primary>
</IndexTerm>
<ItemizedList Mark="&bull;">
<ListItem Id="H.TSKS.item.81">
<Para>Select Close Project in the File menu of the App Builder
primary window.</Para>
</ListItem>
</ItemizedList>
<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>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.82">
<Para><XRef Linkend="ABProjOrg"></Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABModOpenNew">
<Title>To Create a New Module</Title>
<IndexTerm>
<Primary>new module</Primary>
</IndexTerm>
<IndexTerm>
<Primary>open new module</Primary>
</IndexTerm>
<IndexTerm>
<Primary>module</Primary>
</IndexTerm>
<Para>A module is only saved when you explicitly choose to save it -- and
when its project is saved; be sure to save often and regularly. See
<XRef Linkend="ABSaveProj"> or <XRef Linkend="ABModSave"> for instructions.</Para>
<Para>To create a new module, which will become part of the current project:</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.83">
<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>
<Para>Note: If you drag and drop a window on the desktop 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>
</ListItem>
<ListItem Id="H.TSKS.item.84">
<Para>In the dialog box, type in the name you wish to
give the new module.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.85">
<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 desktop will be part of the
new module.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title></Title>
<Step>
<Para>See Also
</Para>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.86">
<Para><XRef Linkend="ABOpenNewProj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.87">
<Para><XRef Linkend="ABModSave">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABModImport">
<Title>To Import a Module into a Project</Title>
<IndexTerm>
<Primary>import module</Primary>
</IndexTerm>
<IndexTerm>
<Primary>module</Primary>
</IndexTerm>
<Para>To import an existing module into the current project:
</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.88">
<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 Id="H.TSKS.item.89">
<Para>Change to the folder where the module (<ComputerOutput>.bil</ComputerOutput> suffix) file is saved.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.90">
<Para>Change Import Format type, if necessary.</Para>
<Para>By default, BIL format is selected. If the file you are importing is a
UIL file, click on the UIL radio button; the file will be converted to
BIL format when it is imported.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.91">
<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 Import
By Reference radio button. Note: 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>
</ListItem>
<ListItem Id="H.TSKS.item.92">
<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>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.93">
<Para><XRef Linkend="ABSaveProj">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABModSave">
<Title>To Save a Module</Title>
<IndexTerm>
<Primary>save module</Primary>
</IndexTerm>
<IndexTerm>
<Primary>module</Primary>
</IndexTerm>
<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 Id="H.TSKS.item.94">
<Para>Display the Project Organizer by choosing Project Organizer
from the File menu of the App Builder primary window.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.95">
<Para>Select the module you wish to save.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.96">
<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
file selection dialog box will be displayed, with the name of the selected
module (with a .bil suffix) in the Enter Filename field.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.97">
<Para>Change to the folder where you wish to save the module, if
necessary.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.98">
<Para>Click Save or press Return.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.99">
<Para><XRef Linkend="ABSaveProj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.100">
<Para><XRef Linkend="ABModSaveAs">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABModSaveAs">
<Title>To Rename a Module (Save As)</Title>
<IndexTerm>
<Primary>module</Primary>
</IndexTerm>
<IndexTerm>
<Primary>rename module</Primary>
</IndexTerm>
<IndexTerm>
<Primary>save as, module</Primary>
</IndexTerm>
<IndexTerm>
<Primary>module</Primary>
</IndexTerm>
<Para>Use Save As to rename a module. When you save the current project, the
new module name will replace the old name in the project (.bip) file.
The original module will still be in the project folder, but it
will not be part of the project.
</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.101">
<Para>Display the Project Organizer by choosing Project Organizer
from the File menu of the App Builder primary window.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.102">
<Para>Select the module you wish to save.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.103">
<Para>Choose Save As from the Module menu.</Para>
<Para>The Save BIL File file selection dialog box will be displayed, with the
name of the selected module (with a .bil suffix) in the Enter Filename
field.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.104">
<Para>Change to the folder where you wish to save the module (if
necessary).</Para>
<Para>Skip this step if you want to save the module in the same folder, but
with a different name.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.105">
<Para>Type a file name in the Enter Filename field.</Para>
<Para>This name will replace the previous module name in the .bil file.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.106">
<Para>Click Save or press Return.</Para>
<Para>The new module name will replace the old name in the project (.bip)
file the next time you save the project. To save a module without
affecting the project, see <XRef Linkend="ABModExport">.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.107">
<Para><XRef Linkend="ABModSave">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.108">
<Para><XRef Linkend="ABSaveProjAs"></Para>
</ListItem>
<ListItem Id="H.TSKS.item.109">
<Para><XRef Linkend="ABSaveProj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.110">
<Para><XRef Linkend="ABModExport">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABModExport">
<Title>To Export a Module</Title>
<IndexTerm>
<Primary>export module</Primary>
</IndexTerm>
<IndexTerm>
<Primary>module</Primary>
</IndexTerm>
<IndexTerm>
<Primary>save module, export</Primary>
</IndexTerm>
<Para>To save a version of a module in the current project folder or to save
a module separately from the current project:
</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.111">
<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 Filename field.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.112">
<Para>Type a new file name in the Enter Filename 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 Filename 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 Id="H.TSKS.item.113">
<Para>Click Export or press Return.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.114">
<Para><XRef Linkend="ABModSave">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.115">
<Para><XRef Linkend="ABModSaveAs">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.116">
<Para><XRef Linkend="ABModImport">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABModSaveAsUil">
<Title>To Save a Module in UIL Format</Title>
<IndexTerm>
<Primary>save module, UIL</Primary>
</IndexTerm>
<IndexTerm>
<Primary>module save, UIL</Primary>
</IndexTerm>
<IndexTerm>
<Primary>UIL save</Primary>
</IndexTerm>
<IndexTerm>
<Primary>export module, UIL</Primary>
</IndexTerm>
<Para>To save a module in UIL (User Interface Language) format:
</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.117">
<Para>Choose Export Module from the File menu of the App Builder primary
window and select the module you wish 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 Filename field.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.118">
<Para>Change to the folder where you want to save the module, if
necessary.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.119">
<Para>Click the Save As UIL check box above the Enter Filename field.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.120">
<Para>Type a file name in the Enter Filename field.</Para>
<Para>This name will replace the previous module name in the .uil file.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.121">
<Para>Click Export or press Return.</Para>
<Para>The file will be saved with a <ComputerOutput>.uil</ComputerOutput> suffix.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.122">
<Para><XRef Linkend="ABModSave">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.123">
<Para><XRef Linkend="ABModSaveAs">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABModShow">
<Title>To Show a Hidden Module</Title>
<IndexTerm>
<Primary>show module</Primary>
</IndexTerm>
<IndexTerm>
<Primary>module</Primary>
</IndexTerm>
<Para>The Project Organizer displays icons for all of the modules that
comprise a project. You can show or hide the interfaces for any of the
modules in the project. See <XRef Linkend="ABProjOrg"> and <XRef Linkend="ABOpenProj"> for
more about the Project Organizer.</Para>
<Para>&newline; &empty;
</Para>
<Graphic Entityref="ProjOrgModArrayFig" Id="H.TSKS.fig.3"></Graphic>
<OrderedList>
<ListItem Id="H.TSKS.item.124">
<Para>Display the Project Organizer by choosing Project Organizer
from the File menu of the App Builder primary window.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.125">
<Para>Double-click on the module icons in the module array in the
Project Organizer that you wish to show (or select the module icons and
choose Show from the Module menu).</Para>
<Para>The user interfaces for the selected modules will be displayed.</Para>
<Para>Note: If a module you wish to show is in a different project, you
will first have to open the other project. See <XRef Linkend="ABOpenProj"> for
instructions.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title></Title>
<Step>
<Para>See Also
</Para>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.126">
<Para><XRef Linkend="ABOpenProj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.127">
<Para><XRef Linkend="ABModHide">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABModHide">
<Title>To Hide a Shown Module</Title>
<IndexTerm>
<Primary>hide module</Primary>
</IndexTerm>
<IndexTerm>
<Primary>module</Primary>
</IndexTerm>
<Para>To hide a module which is displayed (to clean up the desktop so that
you can more easily work on another module, for instance):
</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.128">
<Para>Display the Project Organizer by choosing Project Organizer
from the File menu of the App Builder primary window.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.129">
<Para>Select the modules in the module array that you wish to hide.</Para>
<Para>Select one module by clicking mouse button 1 on it. Add to the
selection by clicking mouse button 2 on other modules. Select a
number of adjacent modules by drag-selecting with mouse button 1 or
mouse button 2, starting above and to the left of the first module to
be selected.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.130">
<Para>Choose Hide from the Module menu.</Para>
<Para>The user interfaces for the selected modules will be hidden.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title></Title>
<Step>
<Para>See Also
</Para>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.131">
<Para><XRef Linkend="ABOpenProj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.132">
<Para><XRef Linkend="ABModShow">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABModRemove">
<Title>To Remove a Module from a Project</Title>
<IndexTerm>
<Primary>removing module from project</Primary>
</IndexTerm>
<IndexTerm>
<Primary>module</Primary>
</IndexTerm>
<IndexTerm>
<Primary>project module</Primary>
</IndexTerm>
<OrderedList>
<ListItem Id="H.TSKS.item.133">
<Para>Display the Project Organizer by choosing Project Organizer
from the File menu of the App Builder primary window.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.134">
<Para>Open the project that contains the module to be removed, if
necessary.</Para>
<Para>Since you can have only one project open at one time, you will have to
close the current project first. See <XRef Linkend="ABOpenProj"> for instructions.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.135">
<Para>Select the module in the module array that you wish to remove.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.136">
<Para>Choose Remove from the Module menu in the Project Organizer.</Para>
<Para>The selected module will be removed 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 the next time the project is saved.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title></Title>
<Step>
<Para>See Also
</Para>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.137">
<Para><XRef Linkend="ABModShow">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.138">
<Para><XRef Linkend="ABModHide">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
</Sect1>
<Sect1 Id="ABLayingOutInterface">
<Title>Laying Out a User Interface</Title>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.139">
<Para><XRef Linkend="ABCreatePrimaryWindow">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.140">
<Para><XRef Linkend="ABDnDMainWindow">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.141">
<Para><XRef Linkend="ABSelectingObjects">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.142">
<Para><XRef Linkend="ABAlignObj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.143">
<Para><XRef Linkend="ABDistObj">
</Para>
</ListItem>
</ItemizedList>
<Sect2 Id="ABCreatePrimaryWindow">
<Title>To Create a Main Window or a Primary Main Window</Title>
<IndexTerm>
<Primary>create</Primary>
</IndexTerm>
<IndexTerm>
<Primary>main window, create</Primary>
</IndexTerm>
<IndexTerm>
<Primary>primary window, create</Primary>
</IndexTerm>
<Para>Your application might have multiple main windows, but only one
primary 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 <XRef Linkend="ABAppFrameworkEditor">.</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.144">
<Para>Drag a main window from the Windows palette and drop it on the
desktop.</Para>
<Para>See <XRef Linkend="ABWindowsPalette"> for an illustration. If there is no
current module, the Module Name dialog box will be displayed; you will
have to give the module a name before proceeding.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.145">
<Para>Double-click on the main window to display the Revolving
Property Editor</Para>
<Para>The main window will be selected in the Revolving Property Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.146">
<Para>Change the Object Name, if necessary.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.147">
<Para>Change the Window Title to something appropriate.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.148">
<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 xpm or xbm graphics files.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.149">
<Para>Change the User Resize Mode, if appropriate.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.150">
<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 <XRef Linkend="ABCreateMenu"> for
instructions.</Para>
<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 Id="H.TSKS.item.151">
<Para>Change the Size Policy and Size, as appropriate.</Para>
<Para>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 -- or if the font size changes, for example.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.152">
<Para>Set Initial State to Iconic if you want the application to
appear as an icon when it is started.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.153">
<Para>Set Initial State to not Visible if you want the main window to
be invisible when the application is started.</Para>
<Para>Click on the Visible check box, which is checked by default.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.154">
<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 Id="H.TSKS.item.155">
<Para>Click Help Text to add on item help, if appropriate.</Para>
<Para>See <XRef Linkend="ABCreateOnItemHelp"> for instructions.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.156">
<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 Id="H.TSKS.item.157">
<Para>If you just created a primary main window, choose Application
Framework Editor from the Editors menu.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.158">
<Para>Type a Vendor Name and Version number in the Application
section of the Application Framework Editor, if appropriate.</Para>
<Para>See <XRef Linkend="ABAppFrameworkEditor"> for details about the editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.159">
<Para>Click OK in the Application Framework Editor to apply the
changes and close the editor.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.160">
<Para><XRef Linkend="ABCreateMenu">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.161">
<Para><XRef Linkend="ABEditaMenu">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.162">
<Para><XRef Linkend="ABMakeDragandDrop">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABDnDMainWindow">
<Title>To Create a Window with a Spanning Control Pane</Title>
<IndexTerm>
<Primary>create</Primary>
</IndexTerm>
<IndexTerm>
<Primary>window, create with control pane</Primary>
</IndexTerm>
<IndexTerm>
<Primary>spanning control pane in window</Primary>
</IndexTerm>
<Para>Often you will want to drop a control pane on top-left corner of the
blank pane area of a main window or custom dialog and grab the
bottom-right corner of the pane to drag it so that the pane covers the
entire blank pane area. You can then drop controls or other panes on
the control pane to create a complex window such as the App Builder
primary window.
</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.163">
<Para>Drag a main window or a custom dialog from the Windows palette
and drop it on the desktop.</Para>
<Para>See <XRef Linkend="ABWindowsPalette"> for an illustration. If you haven't
previously named the module, the Module Name dialog box will be
displayed. Type in a name and click Apply.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.164">
<Para>Drag a control pane from the Panes palette and drop it on the
top-left corner of the main window or custom dialog.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.165">
<Para>Grab the bottom-right corner of the control pane (an arrow
pointing towards a corner will be displayed) and drag the corner of
the control pane beyond the bottom-right corner of the window.</Para>
<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. See <XRef Linkend="ABAttachObj"> for details about attachments.</Para>
<Para>Note: Once a control pane has been resized to cover the blank pane
area, the main window or custom dialog object can only be selected in
the status region.</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="ABSelectingObjects">
<Title>To Select Interface Objects</Title>
<IndexTerm>
<Primary>selecting objects</Primary>
</IndexTerm>
<IndexTerm>
<Primary>object, selecting</Primary>
</IndexTerm>
<IndexTerm>
<Primary>deselecting objects</Primary>
</IndexTerm>
<IndexTerm>
<Primary>drag-select</Primary>
</IndexTerm>
<IndexTerm>
<Primary>multiple-select</Primary>
</IndexTerm>
<Para>For many actions, including moving, aligning, and grouping, you need
to select one or more control objects in an interface. Note that you
can multiply-select "siblings" only; siblings are objects that are the
children of the same parent. All control objects in a single control
pane are siblings, for instance. Any panes that are dropped on a
control pane and created as children of the control pane are also
siblings of controls in the control pane.
</Para>
<ItemizedList Mark="&bull;">
<ListItem Id="H.TSKS.item.166">
<Para>Select one object by clicking on it in the interface or in the
Module Browser.</Para>
<Para>Note that selecting an object in the Module Browser also selects it in the
interface, and vice versa.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.167">
<Para>To select a number of adjacent objects, position the mouse
cursor above and to the left of the objects, press mouse button 1,
and drag the mouse to encompass other objects down and
to the right of the first object.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.168">
<Para>Add or subtract an object to what is currently selected by
clicking mouse button 2 on the object.</Para>
<Para>If an object is selected, clicking mouse button 2 on it unselects it.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.169">
<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.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.170">
<Para>To deselect all but one object, click mouse button 1 on an
object.</Para>
<Para>Only that object will be selected.</Para>
</ListItem>
</ItemizedList>
<Para>Note that 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 cursor.</Para>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.171">
<Para><XRef Linkend="ABGroupsEditor">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.172">
<Para><XRef Linkend="ABAlignObj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.173">
<Para><XRef Linkend="ABDistObj">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABAlignObj">
<Title>To Align Objects in an Interface</Title>
<IndexTerm>
<Primary>align objects</Primary>
</IndexTerm>
<IndexTerm>
<Primary>objects, align</Primary>
</IndexTerm>
<Para>While you are creating an interface, you may want to align the objects
in relation to each other. Use the Align function for this "static"
alignment. Ultimately, you may want to group and attach the objects
for "dynamic" alignment. See <XRef Linkend="ABGroupandAttach"> for
instructions.</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.174">
<Para>Select two or more objects.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.175">
<Para>Choose Align from the interface pop-up menu (displayed by
pressing mouse button 3). 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.</Para>
<Para><InlineGraphic Remap="graphic" Role="left" Entityref="AlignMenuFig"></InlineGraphic><GlossTerm Role="nogloss">Left-edge</GlossTerm> aligns selected objects vertically
along their left edges.&newline;
<GlossTerm Role="nogloss"> Vertical-center</GlossTerm> aligns selected objects
vertically on their horizontal centers. &newline;<GlossTerm Role="nogloss"> Right-edge</GlossTerm> aligns selected objects vertically
along their right edges. &newline;<GlossTerm Role="nogloss"> Colon</GlossTerm> aligns selected objects vertically along
their colons or labels. &newline;<GlossTerm Role="nogloss"> Top-edge</GlossTerm> aligns selected objects horizontally
along their top edges. &newline;<GlossTerm Role="nogloss"> Horizontal-center</GlossTerm> aligns selected
objects horizontally on their vertical centers. &newline;
<GlossTerm Role="nogloss"> Bottom-edge</GlossTerm> aligns selected objects
horizontally along their bottom edges. &newline;
<GlossTerm Role="nogloss"> Grid</GlossTerm> does no alignment at this time.&newline;</Para>
<Para>Note that 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 using the
Distribute function.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.176">
<Para><XRef Linkend="ABSelectingObjects">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.177">
<Para><XRef Linkend="ABDistObj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.178">
<Para><XRef Linkend="ABMakeGroup">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.179">
<Para><XRef Linkend="ABUnGroupObj">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABDistObj">
<Title>To Distribute Objects Evenly</Title>
<IndexTerm>
<Primary>distribute objects evenly</Primary>
</IndexTerm>
<IndexTerm>
<Primary>objects, distribute evenly</Primary>
</IndexTerm>
<IndexTerm>
<Primary>align objects, distribute evenly</Primary>
</IndexTerm>
<Para>While you are creating an interface, you may want to adjust the
spacing between objects. Use the Distribute function for this
"static" adjustment. Ultimately, you may want to group and attach the
objects for "dynamic" alignment. See <XRef Linkend="ABGroupandAttach"> for
instructions.</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.180">
<Para>Select one or more objects.</Para>
<Para>Select one object to center it between the edges of its parent.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.181">
<Para>Choose Distribute from the interface pop-up menu (displayed by
pressing mouse button 3). 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 objects will be centered within the
boundaries of the parent control pane.</Para>
<Para><InlineGraphic Remap="graphic" Role="left" Entityref="DistributeMenuFig"></InlineGraphic><GlossTerm Role="nogloss">Horizontal-space</GlossTerm> distributes selected objects
horizontally 10 pixels apart. The left-most object is the anchored
object, which does not move. &newline;
<GlossTerm Role="nogloss">Vertical-space</GlossTerm> distributes selected objects
vertically 10 pixels apart. The top-most object is the anchored
object, which does not move. &newline;
<GlossTerm Role="nogloss">Horizontal-center</GlossTerm> centers selected objects
horizontally between the left and right edges of the parent object,
maintaining the distance between selected objects. &newline;
<GlossTerm Role="nogloss">Vertical-center</GlossTerm> centers selected objects
vertically between the top and bottom edges of the parent object,
maintaining the distance between selected objects. &newline;</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.182">
<Para><XRef Linkend="ABSelectingObjects">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.183">
<Para><XRef Linkend="ABAlignObj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.184">
<Para><XRef Linkend="ABMakeGroup">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
</Sect1>
<Sect1 Id="ABEditingProperties">
<Title>Editing Properties of Interface Objects</Title>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.185">
<Para><XRef Linkend="ABOpenPropEditor">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.186">
<Para><XRef Linkend="ABEditProps">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.187">
<Para><XRef Linkend="ABPropertyEditorTearoff">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.188">
<Para><XRef Linkend="ABChooseColor">
</Para>
</ListItem>
</ItemizedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.189">
<Para><XRef Linkend="ABPropsEditor">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
<Sect2 Id="ABOpenPropEditor">
<Title>To Open a Property Editor</Title>
<IndexTerm>
<Primary>open property editor</Primary>
</IndexTerm>
<IndexTerm>
<Primary>property editor, open</Primary>
</IndexTerm>
<ItemizedList Mark="&bull;">
<ListItem Id="H.TSKS.item.190">
<Para>Double-click on an object in the interface or in the
Module Browser to open the Revolving Property Editor with the
clicked-on object selected.</Para>
<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 to open the property
editor with the object selected.</Para>
<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>
<Para>See <XRef Linkend="ABPropsEditor"> for an illustration and description of the
Revolving Property Editor and its fields.</Para>
</ListItem>
</ItemizedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;">
<ListItem Id="H.TSKS.item.191">
<Para><XRef Linkend="ABEditProps">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.192">
<Para><XRef Linkend="ABPropsEditor">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABEditProps">
<Title>To Edit the Properties of an Object</Title>
<IndexTerm>
<Primary>edit properties of an object</Primary>
</IndexTerm>
<IndexTerm>
<Primary>properties, edit</Primary>
</IndexTerm>
<IndexTerm>
<Primary>object properties, edit</Primary>
</IndexTerm>
<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.</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.193">
<Para>Choose the object type that you wish to edit from the Object
Type menu at the top of the Revolving Property Editor, if necessary.</Para>
<Para>If a tear-off (Fixed) editor is displayed, there is no Object Type menu.</Para>
<Para>If you double-clicked on 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>
</ListItem>
<ListItem Id="H.TSKS.item.194">
<Para>Select the object that you wish to edit in the Objects
scrolling list, if necessary.</Para>
<Para>The object may already be selected.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.195">
<Para>Modify any of the properties, as appropriate.</Para>
<Para>See <XRef Linkend="ABPropsEditor"> for descriptions of each of the elements of
the property editors.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.196">
<Para>Click the Apply button or press Return to apply the changes and
leave the property editor displayed; click the OK button to apply the
changes and close the property editor.</Para>
<Para>Click Reset to reset all fields to their values before the last Apply.</Para>
<Para>Click Cancel to reset all fields to their values before the last Apply
and close the property editor.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.197">
<Para><XRef Linkend="ABPropsEditor"></Para>
</ListItem>
<ListItem Id="H.TSKS.item.198">
<Para><XRef Linkend="ABPopupMenu"></Para>
</ListItem>
<ListItem Id="H.TSKS.item.199">
<Para><XRef Linkend="ABChooseColor"></Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABPropertyEditorTearoff">
<Title>To Display a Fixed Property Editor</Title>
<IndexTerm>
<Primary>display fixed property editor</Primary>
</IndexTerm>
<IndexTerm>
<Primary>fixed property editor, display</Primary>
</IndexTerm>
<IndexTerm>
<Primary>tear-off property editor, display</Primary>
</IndexTerm>
<IndexTerm>
<Primary>display tear-off property editor</Primary>
</IndexTerm>
<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 Id="H.TSKS.item.200">
<Para>Select the object you wish to edit in the interface or in the
Module Browser.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.201">
<Para>Choose Props from the pop-up menu in the interface or in the
Module Browser and select Fixed from the Props submenu.</Para>
<Para>See <XRef Linkend="ABPopupMenu"> for a description of the pop-up menu.</Para>
</ListItem>
</OrderedList>
<Para><Emphasis>Or</Emphasis>
</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.202">
<Para>Choose the object type you wish to edit in the Revolving
Property Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.203">
<Para>Click the Tear-off button at the top-right of the Revolving
Property Editor.</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="ABChooseColor">
<Title>To Select Colors from the Color Chooser</Title>
<IndexTerm>
<Primary>select colors from color chooser</Primary>
</IndexTerm>
<IndexTerm>
<Primary>color chooser, select colors</Primary>
</IndexTerm>
<IndexTerm>
<Primary>background color</Primary>
</IndexTerm>
<IndexTerm>
<Primary>foreground color</Primary>
</IndexTerm>
<IndexTerm>
<Primary>choosing background color</Primary>
</IndexTerm>
<IndexTerm>
<Primary>choosing foreground color</Primary>
</IndexTerm>
<Para>Most property editors have background and foreground color properties.
If you know the name of the color you wish 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 Id="H.TSKS.item.204">
<Para>Click on 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>
</ListItem>
<ListItem Id="H.TSKS.item.205">
<Para>Click on the desired color in the palette and click on the OK
button to select the color and dismiss the color chooser.</Para>
<Para>Repeat the process for Background or Foreground, if desired.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.206">
<Para>Click Apply in the property editor to apply the changes.</Para>
</ListItem>
</OrderedList>
</Sect2>
</Sect1>
<Sect1 Id="ABCreatingPaneObjects">
<Title>Creating and Viewing Pane Objects</Title>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.207">
<Para><XRef Linkend="ABCreateChildPane">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.208">
<Para><XRef Linkend="ABCreateLayeredPane">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.209">
<Para><XRef Linkend="ABLayeredPaneNext">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.210">
<Para><XRef Linkend="ABMakePanedWindow">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.211">
<Para><XRef Linkend="ABAddPane">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.212">
<Para><XRef Linkend="ABUnmakePanedWindow">
</Para>
</ListItem>
</ItemizedList>
<Sect2 Id="ABCreateChildPane">
<Title>To Create a Child Pane</Title>
<IndexTerm>
<Primary>create</Primary>
</IndexTerm>
<IndexTerm>
<Primary>child pane, create</Primary>
</IndexTerm>
<OrderedList>
<ListItem Id="H.TSKS.item.213">
<Para>Drop a text pane, draw area pane, or term pane on a control
pane in the interface.</Para>
<Para>A message dialog box will be displayed, asking if you want to create
the dropped pane as a child of the control pane or as a layered pane.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.214">
<Para>Click Child.</Para>
<Para>The pane will be instantiated at the drop location, just as if it were
a control object. The pane will be a sibling of the control objects on
the control pane. You will be able to select the pane and move it
around on the control pane just like any other control object.</Para>
<Para>Click Cancel if you do not want to create a child pane or a layered
pane.</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="ABCreateLayeredPane">
<Title>To Create a Layered Pane</Title>
<IndexTerm>
<Primary>create</Primary>
</IndexTerm>
<IndexTerm>
<Primary>layered pane, create</Primary>
</IndexTerm>
<IndexTerm>
<Primary>unmake layered pane</Primary>
</IndexTerm>
<IndexTerm>
<Primary>layered pane, unmake</Primary>
</IndexTerm>
<OrderedList>
<ListItem Id="H.TSKS.item.215">
<Para>Drop a pane on another pane in the interface.</Para>
<Para>A message dialog box will be displayed, giving you the option to
create a layered pane.</Para>
<Para>If you have dropped a text pane, draw area pane, or term pane on a
control pane, you will also have the option to create the object as a
child of the control pane.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.216">
<Para>Click Layer.</Para>
<Para>The pane will be instantiated as a layered pane on top of the pane it
was dropped on. Because it will be the same size as the original pane,
it will obscure the original pane completely. See <XRef Linkend="ABLayeredPaneNext"> for instructions for viewing the layers of a
layered pane.</Para>
<Para>Note that if you resize one of the layers of a layered pane, all panes
are resized.</Para>
<Para>Click Cancel if you do not want to create a child pane or a layered
pane.</Para>
</ListItem>
</OrderedList>
<Para>Note: The only way to unmake a layered pane is to select one of the
layers and choosing Delete or Cut from the pop-up menu or from the
Edit menu.</Para>
</Sect2>
<Sect2 Id="ABLayeredPaneNext">
<Title>To View Layered Panes</Title>
<IndexTerm>
<Primary>view layered panes</Primary>
</IndexTerm>
<IndexTerm>
<Primary>layered panes, view</Primary>
</IndexTerm>
<OrderedList>
<ListItem Id="H.TSKS.item.217">
<Para>Select the visible pane of the layered panes in the interface
or in the Module Browser.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.218">
<Para>Choose NextLayer from the interface pop-up menu (displayed by
pressing mouse button 3).</Para>
<Para>The layer immediately beneath the current pane will be displayed.</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="ABMakePanedWindow">
<Title>To Make a Paned Window</Title>
<IndexTerm>
<Primary>make paned window</Primary>
</IndexTerm>
<IndexTerm>
<Primary>paned window, make</Primary>
</IndexTerm>
<IndexTerm>
<Primary>create</Primary>
</IndexTerm>
<Para>A paned window is a combination of two or more panes (control, text,
draw area, or term panes, in any combination) into one virtual window
with multiple panes, one above the other, separated by a movable sash.
While the paned window maintains a constant height, the individual
panes become smaller or larger as you move the sash between them.
</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.219">
<Para>Drag a pane from the Panes palette and drop it on a
main window or a custom dialog.</Para>
<Para>If you want the paned window to span the top of the parent window,
drop the pane on the top-left corner of the parent. The pane will be
attached to the window at its left and top margins.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.220">
<Para>Resize the pane, if necessary.</Para>
<Para>If you want the paned window to span its parent window, drag the right
edge of the pane beyond the right edge of the window. The pane will be
attached to this edge, also.</Para>
<Para>&newline; &empty;
</Para>
<Graphic Entityref="PanedMWwCpaneFig" Id="H.TSKS.fig.4"></Graphic>
</ListItem>
<ListItem Id="H.TSKS.item.221">
<Para>Drag one or more additional panes to the main window or dialog
and drop them on an unoccupied portion of the window.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.222">
<Para>Select all panes that you want to be part of the paned window.</Para>
<Para>See <XRef Linkend="ABSelectingObjects"> for instructions.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.223">
<Para>Choose Make Paned Window from the Layout menu or from the
interface or Module Browser pop-up menu (see <XRef Linkend="ABPopupMenu"> or <XRef Linkend="ABPopupMenuBrowser">).</Para>
<Para>The paned window will be created. If one of the panes is attached to
the right (East) edge of its parent, a message dialog box will be
displayed, explaining that the children of the paned window have
different East attachments. Click OK.</Para>
<Para>A paned window's size and position are determined by the position and
size of its panes: the left margin of the paned window is determined
by the left (West) edge of the pane that is furthest to the left.
The width of the paned window is determined by the width of its widest
pane.</Para>
<Para>In test mode or in the compiled application, you can resize the panes
by pressing mouse button 1 or mouse button 2 on the sash (the little
square between the panes near the right edge) and moving the mouse up
or down. You can set limits on the minimum and maximum heights of any
of the panes by setting Pane Height in the Paned Window property
editor.</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="ABAddPane">
<Title>To Add a Pane to a Paned Window</Title>
<IndexTerm>
<Primary>add a pane to a paned window</Primary>
</IndexTerm>
<IndexTerm>
<Primary>paned window, add a pane</Primary>
</IndexTerm>
<OrderedList>
<ListItem Id="H.TSKS.item.224">
<Para>Drop a pane on the paned window.</Para>
<Para>A message dialog box will be displayed, giving you the option to
include the new pane as a child of the control pane (if you drop a
text pane, draw area pane, or a term pane on a control pane), create
as a layered pane, or to add it to the paned window.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.225">
<Para>Click Pane to add the pane to the paned window.</Para>
<Para>The new pane will be added to the bottom of the paned window.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.226">
<Para><XRef Linkend="ABMakePanedWindow">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABUnmakePanedWindow">
<Title>To Unmake a Paned Window</Title>
<IndexTerm>
<Primary>unmake a paned window</Primary>
</IndexTerm>
<IndexTerm>
<Primary>paned window, unmake</Primary>
</IndexTerm>
<OrderedList>
<ListItem Id="H.TSKS.item.227">
<Para>Select the paned window.</Para>
<Para>You select a paned window by clicking right at its edge. Be sure you
select the paned window and not one of its panes. You will know you
have selected the paned window if a dark box is drawn around the paned
window and if grab handles appear at the four corners and four
mid-points of the paned window.</Para>
<Para>You could also open the Module Browser and select the paned window
there.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.228">
<Para>Choose Unmake Paned Window from the Layout menu or from the
pop-up menu in the interface or the Module Browser (see <XRef Linkend="ABPopupMenu"> or <XRef Linkend="ABPopupMenuBrowser">).</Para>
<Para>The panes that made up the pane will become separate panes again.</Para>
</ListItem>
</OrderedList>
</Sect2>
</Sect1>
<Sect1 Id="ABCreatingMenus">
<Title>Creating and Editing Menus</Title>
<Para>Menus are available within modules only. Be sure the menu created is
in the same module as the object you wish to attach the menu to. Menus
are created in the current module, which is determined by what is
selected in the interface. See the Editing Module field in the Object
Information Area of the App Builder primary window to see the current
module.
</Para>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.229">
<Para><XRef Linkend="ABCreateMenu">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.230">
<Para><XRef Linkend="ABEditaMenu">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.231">
<Para><XRef Linkend="ABAttachMenu">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.232">
<Para><XRef Linkend="ABAttachSubMenu">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.233">
<Para><XRef Linkend="ABCreateAttachMenu">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.234">
<Para><XRef Linkend="ABCreateSubMenu">
</Para>
</ListItem>
</ItemizedList>
<Sect2 Id="ABCreateMenu">
<Title>To Create a Menu</Title>
<IndexTerm>
<Primary>create</Primary>
</IndexTerm>
<IndexTerm>
<Primary>menu</Primary>
</IndexTerm>
<IndexTerm>
<Primary>new menu, create</Primary>
</IndexTerm>
<IndexTerm>
<Primary>add new menu</Primary>
</IndexTerm>
<OrderedList>
<ListItem Id="H.TSKS.item.235">
<Para>Display the Menu Property Editor by choosing Menus from the
Editors menu in the App Builder primary window.</Para>
<Para>Or you could display the Revolving Property Editor and choose Menu as
the Object Type.</Para>
<Para>If no menus exist in the current project, the Menu Objects list will
be blank and only the Add New Menu and Edit buttons will be active.</Para>
<Para>If any menus exist in the current project, they will be listed in the
Menu Objects list. One of the menus will be selected in the list and
the menu's properties will be displayed for editing.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.236">
<Para>Click Add New Menu.</Para>
<Para>A menu will be created with a default Object Name ("menu,"
"menu2," etc., depending on how many menus there are in the current
module), and with two items in the Items list ("Item1" and "Item2").</Para>
<Para>If you know you are going to need three menus, you could create them
all at one time by clicking Add New Menu three times. You can also
create submenus, which will be attached to menu items, at this time.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.237">
<Para>Edit the menu, as described in <XRef Linkend="ABEditaMenu">.</Para>
<Para>You can do this right after creating the menu or you can do this
later.</Para>
</ListItem>
</OrderedList>
<Para>After you have created and edited a menu you will want to attach it to
an interface object and to make the menu functional by creating
connections between menu items and specific actions. You may also want
to attach a submenu to a menu item.</Para>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.238">
<Para><XRef Linkend="ABEditaMenu">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.239">
<Para><XRef Linkend="ABAttachMenu">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.240">
<Para><XRef Linkend="ABAttachSubMenu">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.241">
<Para><XRef Linkend="ABCreateAttachMenu">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABEditaMenu">
<Title>To Edit a Menu</Title>
<IndexTerm>
<Primary>edit menu</Primary>
</IndexTerm>
<IndexTerm>
<Primary>menu</Primary>
</IndexTerm>
<IndexTerm>
<Primary>enable tearoff menu</Primary>
</IndexTerm>
<IndexTerm>
<Primary>tearoff menu, enable</Primary>
</IndexTerm>
<IndexTerm>
<Primary>add menu items</Primary>
</IndexTerm>
<IndexTerm>
<Primary>menu items, add</Primary>
</IndexTerm>
<IndexTerm>
<Primary>item mnemonic</Primary>
</IndexTerm>
<IndexTerm>
<Primary>mnemonic, item</Primary>
</IndexTerm>
<IndexTerm>
<Primary>accelerator</Primary>
</IndexTerm>
<IndexTerm>
<Primary>item accelerator</Primary>
</IndexTerm>
<IndexTerm>
<Primary>line style, item</Primary>
</IndexTerm>
<IndexTerm>
<Primary>item line style</Primary>
</IndexTerm>
<IndexTerm>
<Primary>submenu, attach</Primary>
</IndexTerm>
<IndexTerm>
<Primary>attach submenu</Primary>
</IndexTerm>
<IndexTerm>
<Primary>create submenu</Primary>
</IndexTerm>
<IndexTerm>
<Primary>submenu, create</Primary>
</IndexTerm>
<IndexTerm>
<Primary>item state, menu</Primary>
</IndexTerm>
<IndexTerm>
<Primary>menu item state</Primary>
</IndexTerm>
<Para>See <XRef Linkend="ABMenusEditor"> for descriptions of each of the menu
properties.</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.242">
<Para>Change Object Name, if necessary.</Para>
<Para>The automatically-generated Object names, which are unique within
modules, do not usually need to be changed.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.243">
<Para>Click Enabled to enable the Tearoff function, if necessary.</Para>
<Para>This will make the menu "postable," meaning that it will be displayed
"permanently" if you click on the Tearoff indicator (a dotted line).</Para>
</ListItem>
<ListItem Id="H.TSKS.item.244">
<Para>Add menu items to the Items list, if necessary.</Para>
<Para>Click Add Item to add an item after the selected item; choose from the
Edit menu button to perform other edit functions.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.245">
<Para>Change Item Label Type for menu items in the Items list, if
necessary.</Para>
<Para>Choices are String (text), Graphic, or Separator. Label becomes
Graphic Filename if Graphic is chosen; Line Style becomes active if
Separator is chosen.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.246">
<Para>Type a different Label or Graphic Filename for the selected
item, if necessary.</Para>
<Para>If Graphic Item Label Type was chosen, the Graphic Filename must be an
xpm or xbm graphic file.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.247">
<Para>Type an Item Mnemonic, if necessary.</Para>
<Para>Type one of the letters in the item label. That letter will be
underlined in the menu item label. If the menu is posted, pressing
that key will cause the action connected with the menu item to be
performed.</Para>
<Para>Note that case is significant for mnemonics and that the same mnemonic
cannot be used more than once in a menu.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.248">
<Para>Type an [Item] Accelerator, if necessary.</Para>
<Para>Type Ctrl&lt;Key>x (or other letter -- upper or lower case) to create the
accelerator with the Control key as prefix. Substitute "Alt," "Meta,"
or "Shift" for "Ctrl" to specify one of those keys as the accelerator
prefix. See <XRef Linkend="ABMenusEditor"> for more information.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.249">
<Para>Choose a Line Style, if Item Label Type is Separator.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.250">
<Para>Attach an Item Submenu, if appropriate.</Para>
<Para>See <XRef Linkend="ABCreateSubMenu"> for instructions.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.251">
<Para>Change Item State, if necessary.</Para>
<Para>By default the item state is Active. If you want it to be inactive
when the application is started, click the Active check box to uncheck
it.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.252">
<Para>Select Background and Foreground Colors, if necessary.</Para>
<Para>Type in a color or choose Color Chooser from the menu and select a
color from the Color Chooser. See <XRef Linkend="ABChooseColor"> for details.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.253">
<Para>Click Connections to add programmatic connections to menu
items, as necessary.</Para>
<Para>See <XRef Linkend="ABMakeConnection"> for instructions.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.254">
<Para>Click Apply or OK to apply the changes.</Para>
<Para>If you click Apply the property editor will remain displayed.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.255">
<Para><XRef Linkend="ABMenusEditor">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.256">
<Para><XRef Linkend="ABCreateMenu">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABAttachMenu">
<Title>To Attach a Menu to an Object</Title>
<IndexTerm>
<Primary>attach menu to object</Primary>
</IndexTerm>
<IndexTerm>
<Primary>menu to an object</Primary>
</IndexTerm>
<Para>The following instructions assume you have created one or more menus
as described in <XRef Linkend="ABCreateMenu"> and that you are ready to attach a
menu to an object in the interface.</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.257">
<Para>Display the Revolving Property Editor with the object to which
you wish to attach a menu selected in the editor.</Para>
<Para>Double-click on the object in the interface or the Module Browser or
choose the appropriate Object Type in the Revolving Property Editor
and select the desired object in the Objects list.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.258">
<Para>Choose Menus from the menu displayed when you press mouse
button 1 on the Popup Menu or Pulldown Menu menu button in the
Revolving Property Editor and select the appropriate menu from the
menus displayed in the pull-right submenu.</Para>
<Para>The name of the selected menu will be displayed in the text field of
the Popup Menu or Pulldown Menu.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.259">
<Para>Click OK or Apply.</Para>
<Para>The menu will be attached to the selected object.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.260">
<Para><XRef Linkend="ABCreateMenu">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.261">
<Para><XRef Linkend="ABEditaMenu">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.262">
<Para><XRef Linkend="ABAttachSubMenu">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.263">
<Para><XRef Linkend="ABCreateAttachMenu">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABAttachSubMenu">
<Title>To Attach a Submenu to a Menu Item</Title>
<IndexTerm>
<Primary>attach submenu to menu item</Primary>
</IndexTerm>
<IndexTerm>
<Primary>submenu, attach to a menu item</Primary>
</IndexTerm>
<Para>The following instructions assume you have created one or more menus
as described in <XRef Linkend="ABCreateMenu"> and that you are ready to attach a
submenu to a menu item.</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.264">
<Para>Display the Menu Property Editor by choosing Menus from the
Editors menu in the App Builder primary window.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.265">
<Para>Choose Menus from the menu displayed when you press mouse
button 1 on the Item SubMenu menu button and select the appropriate
menu from the menus displayed in the pull-right submenu.</Para>
<Para>The name of the selected menu will be displayed in the text field of
the Item SubMenu.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.266">
<Para>Click OK or Apply.</Para>
<Para>The submenu will be attached to the selected menu item.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.267">
<Para><XRef Linkend="ABCreateMenu">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.268">
<Para><XRef Linkend="ABEditaMenu">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.269">
<Para><XRef Linkend="ABCreateSubMenu">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABCreateAttachMenu">
<Title>To Create and Attach a Menu</Title>
<IndexTerm>
<Primary>menu</Primary>
</IndexTerm>
<IndexTerm>
<Primary>create</Primary>
</IndexTerm>
<Para>One method of creating and attaching a menu to an object is described
in <XRef Linkend="ABCreateMenu"> and <XRef Linkend="ABAttachMenu">. With the method
described here you create and attach the menu at one time. Use
whichever method is most convenient.</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.270">
<Para>Display the Revolving Property Editor with the object to which
you wish to attach a menu selected in the editor.</Para>
<Para>Double-click on the object in the interface or the Module Browser or
choose the appropriate Object Type in the Revolving Property Editor
and select the desired object in the Objects list.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.271">
<Para>Choose Create New Menu from the Pulldown or Popup Menu button,
available for some objects.</Para>
<Para>Pulldown menus are available for menu buttons and menu bars. Popup
menus are available for all pane objects and for lists. An Item
Submenu is available for menus themselves.</Para>
<Para>The Menu Property Editor will be displayed, with a newly-created menu
selected in the Menu Objects list. The menu will have default values
for Object Name, Tearoff, Items, Item Label Type, Label, and Item
State. The menu will be attached to the object selected in the
property editor when Create New Menu was chosen.</Para>
<Para>The Object Name will be of the form "object_type_menu" or
"object_type_menu2," etc., depending on what type of object was
selected in the property editor when Create new Menu was chosen and
how many menus have been created for the current module. The menu will
be added to the end of the Menu Objects list, with the name of the
current module preceding the menu name.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.272">
<Para>Edit the menu and click OK to apply the changes and dismiss the
Menu Property Editor.</Para>
<Para>See <XRef Linkend="ABEditaMenu"> for instructions.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.273">
<Para>Click Apply or OK in the Revolving Property Editor to attach
the menu to the selected object.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.274">
<Para><XRef Linkend="ABCreateMenu">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.275">
<Para><XRef Linkend="ABEditaMenu">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.276">
<Para><XRef Linkend="ABAttachMenu">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABCreateSubMenu">
<Title>To Create and Attach a Submenu</Title>
<IndexTerm>
<Primary>create</Primary>
</IndexTerm>
<IndexTerm>
<Primary>submenu, create and attach</Primary>
</IndexTerm>
<Para>The following instructions assume you have created one or more menus
and that you want to attach a submenu to one of the items in one of
the menus. With this method you create the submenu and attach it as
part of a single procedure. Another method for accomplishing this task
is to create the menu as described in <XRef Linkend="ABCreateMenu"> and to
attach it to a menu item as described in <XRef Linkend="ABAttachSubMenu">. Use
whichever method is most convenient.</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.277">
<Para>Display the Menu Property Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.278">
<Para>Select a menu item in the Items list.</Para>
<Para>This is the item to which you will append the submenu.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.279">
<Para>Choose Create New Menu from the Item SubMenu menu.</Para>
<Para>The Revolving Property Editor will be displayed, with the new menu
selected in the Objects list.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.280">
<Para>Edit the menu.</Para>
<Para>See <XRef Linkend="ABEditaMenu"> for instructions. You can do this later if you
like.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.281">
<Para>Click OK to apply the editing changes you made and to dismiss
the Revolving Property Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.282">
<Para>Click Apply in the Menu Property Editor to attach the submenu
to the menu item selected in Step 2.</Para>
</ListItem>
</OrderedList>
<Para>Note: When you are creating a submenu you switch back and forth
between the Menu Property Editor and the Revolving Property Editor,
creating the submenu in one editor and attaching the submenu to the
menu in the other. In the description above, you started by selecting
a menu in the Menu Property Editor and you created the submenu in the
Revolving Property Editor. If you started in the Revolving Property
Editor, you would create the submenu in the Menu Property Editor and
attach the submenu to the menu in the Revolving Property Editor.</Para>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.283">
<Para><XRef Linkend="ABCreateMenu">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.284">
<Para><XRef Linkend="ABEditaMenu">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.285">
<Para><XRef Linkend="ABAttachSubMenu">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
</Sect1>
<Sect1 Id="ABCreatingMessages">
<Title>Creating and Editing Messages</Title>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.286">
<Para><XRef Linkend="ABCreateMessage">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.287">
<Para><XRef Linkend="ABEditMessages">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.288">
<Para><XRef Linkend="ABConnectMessage">
</Para>
</ListItem>
</ItemizedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;">
<ListItem Id="H.TSKS.item.289">
<Para><XRef Linkend="ABMessageExample">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
<Sect2 Id="ABCreateMessage">
<Title>To Create a Message Dialog Box</Title>
<IndexTerm>
<Primary>create</Primary>
</IndexTerm>
<IndexTerm>
<Primary>message dialog box, create</Primary>
</IndexTerm>
<IndexTerm>
<Primary>dialog, message: to create</Primary>
</IndexTerm>
<Para>See <XRef Linkend="ABMessagesEditor"> for descriptions of each of the fields in
the editor. See <XRef Linkend="ABMessageExample"> for a discussion of
how to connect messages to the functions that cause them to be
displayed, with examples.</Para>
<Para>To create error, information, working, question, or
warning messages to be displayed at appropriate times in the compiled
application:</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.290">
<Para>Choose Messages from the Editors menu of the App Builder
primary window to display the Message Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.291">
<Para>Choose the module to which you want to add a message in the
option menu below the Messages list.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.292">
<Para>Click Add Message.</Para>
<Para>A unique name ("message," "message2," etc., depending on how many
messages their are in the current module) will be displayed in the
Name field. The module name and the message name will be added to the
Messages list.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.293">
<Para>Modify the Name if you wish.</Para>
<Para>This is the name used to identify the message internally -- in the
Connections Editor, for instance. This name is not displayed in the
compiled message dialog box.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.294">
<Para>Type a Dialog Title.</Para>
<Para>This will appear in the title bar of the compiled message dialog box.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.295">
<Para>Choose a Message Type (Error, Information, Working, Question, or
Warning).</Para>
<Para>The icon for the message type will be displayed in the Type option
menu and the message type will be displayed above the text pane where
the message text will be typed.</Para>
<Para><InlineGraphic Remap="graphic" Role="left" Entityref="MessageIconsFig"></InlineGraphic> &newline; &empty;</Para>
</ListItem>
<ListItem Id="H.TSKS.item.296">
<Para>Type the message in the text pane, pressing Return when you
want a new line to start in the compiled message.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.297">
<Para>Specify which buttons will appear in the message dialog box by
clicking the check boxes below the message text pane and typing the
labels you want on the Action1, Action2, and Action3 buttons.</Para>
<Para>Each of the message types includes a default set of buttons which you
can modify:</Para>
<VariableList>
<VarListEntry>
<Term>Error</Term>
<ListItem>
<Para>Action2 (Retry label), Cancel, Help; Default Button = Action2.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>Information</Term>
<ListItem>
<Para>Action1 (OK), Help; Default Button = Action1.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>Working</Term>
<ListItem>
<Para>Action1 (Close), Action2 (Stop), Help; Default Button =
Action1.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>Question</Term>
<ListItem>
<Para>Action1 (Yes), Action2 (No), Help; Default Button =
Action1.
</Para>
</ListItem>
</VarListEntry>
<VarListEntry>
<Term>Warning</Term>
<ListItem>
<Para>Action2 (Continue), Cancel, Help; Default Button = Action2.
</Para>
</ListItem>
</VarListEntry>
</VariableList>
</ListItem>
<ListItem Id="H.TSKS.item.298">
<Para>Choose a Default Button from the option menu.</Para>
<Para>This is the button that will have an extra "moat" border when the
message dialog box is displayed. This button will be activated if
Return is pressed.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.299">
<Para>Click the Help Text button and create help text, as
appropriate. See <XRef Linkend="ABCreateOnItemHelp"> for instructions.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.300">
<Para><XRef Linkend="ABEditMessages">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.301">
<Para><XRef Linkend="ABConnectMessage">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.302">
<Para><XRef Linkend="ABMessageExample">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABEditMessages">
<Title>To Edit a Message Dialog Box</Title>
<IndexTerm>
<Primary>edit message dialog box</Primary>
</IndexTerm>
<IndexTerm>
<Primary>message dialog box, edit</Primary>
</IndexTerm>
<OrderedList>
<ListItem Id="H.TSKS.item.303">
<Para>Choose Messages from the Editors menu of the App Builder
primary window to display the Message Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.304">
<Para>Select the message you want to edit in the Messages list.</Para>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.305">
<Para>To delete a message, click Delete Message.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.306">
<Para>To modify the dialog box title, click in the Dialog Title text
field and type the new label.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.307">
<Para>To change the message type, choose a different Type icon.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.308">
<Para>To modify the message, click in the message text pane and type
the appropriate changes.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.309">
<Para>To change the available buttons, click on the check boxes and
type new button labels, if appropriate.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.310">
<Para>To change the Default Button, choose another from the option
menu.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.311">
<Para>To modify help text, click on Help Text, make the changes in
the Help Editor, and click OK in the Help Editor.</Para>
</ListItem>
</ItemizedList>
</ListItem>
<ListItem Id="H.TSKS.item.312">
<Para>Click Apply or OK to apply the changes.</Para>
<Para>The Message Editor will be dismissed if you click OK.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.313">
<Para><XRef Linkend="ABCreateMessage">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.314">
<Para><XRef Linkend="ABConnectMessage">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABConnectMessage">
<Title>To Connect a Message Dialog Box to a Function</Title>
<IndexTerm>
<Primary>connect message dialog box to a function</Primary>
</IndexTerm>
<IndexTerm>
<Primary>message dialog box, connect to function</Primary>
</IndexTerm>
<Para>See <XRef Linkend="ABMessageExample"> for a discussion of how to connect a
message to the function that causes it to be displayed, with
examples. In particular read that section to see how to attach a modal
(blocking) message to a function.</Para>
<Para>To connect a non-modal message to a function:</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.315">
<Para>Display the Connections Editor by clicking Connections in the
Message Editor or by choosing Connections in the Editors menu on the
App Builder primary window.</Para>
<Para>If you select a message in the Message Editor and click Connections,
the selected message will be selected in the Source list of the
Connections Editor. You can skip the next two steps.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.316">
<Para>Display messages in the Source list by choosing Messages in the
Source menu.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.317">
<Para>Select a message in the Source list.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.318">
<Para>Choose Call Function as the Action Type.</Para>
<Para>This activates the When menu on the Source side of the Connections
Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.319">
<Para>Choose a When item (Action1, Action2, Action3, or Cancel
Activated, depending on which buttons were checked in the Message
Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.320">
<Para>Type the name of the Function to be called when the selected
button is selected.</Para>
<Para>When code is generated, this call function will create a stub routine
in <ComputerOutput>stubs.c</ComputerOutput>. You will have to substitute appropriate code
before running <ComputerOutput>make</ComputerOutput>.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.321">
<Para>Click Connect to create the connection.</Para>
<Para>The connection will be displayed in the View list at the bottom of the
Connections Editor.</Para>
<Para>Repeat the previous three steps for each button except Help.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.322">
<Para>Click Cancel to dismiss the Connections Editor.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.323">
<Para><XRef Linkend="ABCreateMessage">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.324">
<Para><XRef Linkend="ABEditMessages">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.325">
<Para><XRef Linkend="ABMessageExample">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
</Sect1>
<Sect1 Id="ABCreatingHelp">
<Title>Creating Help</Title>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.326">
<Para><XRef Linkend="ABCreateHelp">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.327">
<Para><XRef Linkend="ABCreateOnItemHelp">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.328">
<Para><XRef Linkend="ABConnectHelpMenutoVolume">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.329">
<Para><XRef Linkend="ABMakeOnItemHelpConnection">
</Para>
</ListItem>
</ItemizedList>
<Sect2 Id="ABCreateHelp">
<Title>To Create a Help Volume</Title>
<IndexTerm>
<Primary>create</Primary>
</IndexTerm>
<IndexTerm>
<Primary>help volume</Primary>
</IndexTerm>
<Para>A help volume, such as the one one you are viewing now, is created
separately from App Builder, and is accessed from your compiled
application through the Help menu or by clicking More in an on item
help dialog box.</Para>
<Para>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>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.330">
<Para><XRef Linkend="ABCreateOnItemHelp">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABCreateOnItemHelp">
<Title>To Create On Item Help</Title>
<IndexTerm>
<Primary>create</Primary>
</IndexTerm>
<IndexTerm>
<Primary>on item help, create</Primary>
</IndexTerm>
<IndexTerm>
<Primary>help</Primary>
</IndexTerm>
<OrderedList>
<ListItem Id="H.TSKS.item.331">
<Para>Display the Revolving Property Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.332">
<Para>Choose the Object Type for which you want to write help.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.333">
<Para>Select the object for which you want to write help.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.334">
<Para>Click Help Text to display the Help Editor with the appropriate
object selected.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.335">
<Para>Type on item help text in the Help Text pane.</Para>
<Para>Press Return when you want a new line to start in the compiled help
dialog box.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.336">
<Para>Click Apply to apply the changes.</Para>
<Para>If you want to add on item help to other objects, choose the
appropriate Object Type in the menu, select the appropriate object,
and repeat the previous two steps.</Para>
<Para>Click OK to apply the changes and dismiss the Help Editor.</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="ABConnectHelpMenutoVolume">
<Title>To Connect a Help Menu to a Help Volume</Title>
<IndexTerm>
<Primary>connect help menu to help volume</Primary>
</IndexTerm>
<IndexTerm>
<Primary>help menu</Primary>
</IndexTerm>
<IndexTerm>
<Primary>help volume</Primary>
</IndexTerm>
<IndexTerm>
<Primary>connection</Primary>
</IndexTerm>
<Para>After creating a help menu and attaching it to the Help item in a menu
bar, do the following to connect menu items to specific locations in a
help volume. See <XRef Linkend="ABMakeOnItemHelpConnection"> for instructions
for connecting the on item help item in the Help menu to the on item
help function.</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.337">
<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 Id="H.TSKS.item.338">
<Para>Choose Menu Item from the Source option menu.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.339">
<Para>Select one of the Help menu items from the Source scrolling
list.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.340">
<Para>Choose Access Help Volume from the Action Type option menu.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.341">
<Para>Type the name of the help volume in the Volume text field.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.342">
<Para>Type the appropriate location ID in the Location text field.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.343">
<Para>Click Connect to make the connection.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.344">
<Para><XRef Linkend="ABTestHelp">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABMakeOnItemHelpConnection">
<Title>To Connect a Help Menu to On Item Help</Title>
<IndexTerm>
<Primary>on item help, create menu item</Primary>
</IndexTerm>
<IndexTerm>
<Primary>help menu</Primary>
</IndexTerm>
<IndexTerm>
<Primary>create on item help menu item</Primary>
</IndexTerm>
<IndexTerm>
<Primary>connection, on item help menu item</Primary>
</IndexTerm>
<IndexTerm>
<Primary>connect help menu to on item help</Primary>
</IndexTerm>
<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.
</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.345">
<Para>Choose Menus from the Editors menu in the App Builder primary
window to display the Menu Property Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.346">
<Para>Select the Help menu in the Objects list.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.347">
<Para>Select one of the items in the Items list as the On Item help
item.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.348">
<Para>Type "On Item" or other appropriate text in the Label text
field.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.349">
<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.
Note that case is significant for mnemonics.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.350">
<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) plus &lt;Key> plus a letter (upper or lower case). To
make Control-X an accelerator, for instance, type the following:</Para>
<Para>Ctrl&lt;Key>x</Para>
</ListItem>
<ListItem Id="H.TSKS.item.351">
<Para>Click OK or Apply.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.352">
<Para>Click Connections to display the Connections Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.353">
<Para>Choose Menu Item in the Source menu.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.354">
<Para>Select the On Item help item in the Source list.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.355">
<Para>Choose Activate On Item Help from the Action Type menu.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.356">
<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).</Para>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.357">
<Para><XRef Linkend="ABConnectHelpMenutoVolume">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.358">
<Para><XRef Linkend="ABConnectionsEditor">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.359">
<Para><XRef Linkend="ABTestHelp">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
</Sect1>
<Sect1 Id="ABMakingConnections">
<Title>Making Connections Between Interface Objects</Title>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.360">
<Para><XRef Linkend="ABMakeConnection">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.361">
<Para><XRef Linkend="ABEditConnection">
</Para>
</ListItem>
</ItemizedList>
<Sect2 Id="ABMakeConnection">
<Title>To Make a Connection Between Two Objects</Title>
<IndexTerm>
<Primary>make connection between objects</Primary>
</IndexTerm>
<IndexTerm>
<Primary>connection, make</Primary>
</IndexTerm>
<IndexTerm>
<Primary>drag-link connection</Primary>
</IndexTerm>
<IndexTerm>
<Primary>connection, drag-link</Primary>
</IndexTerm>
<Para>In its simplest form a connection is a programmatic relationship
between a source object and a target object. The first step in making
such a connection is to select the source and target objects.</Para>
<Para>The quickest way to select the two objects is to place the cursor over
one of the objects and to"drag-link" a connection to the other. This
can be done in the interface or in the Module Browser (or between the
interface and the Module Browser).</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.362">
<Para>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>A line with a "plug" at its end will extend from the source as you
move the mouse. The target object will be highlighted with a dark box;
release the mouse button when the proper target is highlighted.</Para>
<Para>The Connections Editor will be displayed, with the source and target
objects selected.</Para>
<Para>Alternatively, you can 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, select the object you want as
the source in the Source list, 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.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.363">
<Para>Choose an action in the When menu.</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 Id="H.TSKS.item.364">
<Para>Choose an action to be performed on the target in the Action
Type menu.</Para>
<Para>See <XRef Linkend="ABConnectionsEditor"> for descriptions of the options. If you
choose Predefined, you will also have to choose an action from a
second option menu.</Para>
<Para>If you choose Call Function you will have to type the name of a
function in the Function text field.</Para>
<Para>If you choose Execute Code you will have to type the code to be
performed in the Execute Code Editor and to click OK in the editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.365">
<Para>Click Connect or press Return to make the connection.</Para>
<Para>The connection will be displayed in the View list at the bottom of the
Connections Editor.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.366">
<Para><XRef Linkend="ABEditConnection">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.367">
<Para><XRef Linkend="ABConnectionsEditor">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.368">
<Para><XRef Linkend="ABMakeOnItemHelpConnection">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.369">
<Para><XRef Linkend="ABConnectHelpMenutoVolume">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABEditConnection">
<Title>To Edit Connections</Title>
<IndexTerm>
<Primary>edit connections</Primary>
</IndexTerm>
<IndexTerm>
<Primary>connections, edit</Primary>
</IndexTerm>
<Para>To edit existing connections:
</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.370">
<Para>Choose Connections from the Editors menu in the App Builder
primary window to display the Connections Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.371">
<Para>Choose the source object type whose connection you wish to view
in 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 Id="H.TSKS.item.372">
<Para>Click on the connection you wish to edit to select it 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 Id="H.TSKS.item.373">
<Para>To delete the selected connection, click Delete.</Para>
<Para>To modify the selected connection, make changes to any of the choices
(source object, When action, target object, Action Type) and click
Change.</Para>
<Para>To add a connection similar to the selected connection, modify any of
the choices and click Connect.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.374">
<Para><XRef Linkend="ABMakeConnection">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.375">
<Para><XRef Linkend="ABConnectionsEditor">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
</Sect1>
<Sect1 Id="ABTesting">
<Title>Testing Menus, Help, and Connections</Title>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.376">
<Para><XRef Linkend="ABTestProject">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.377">
<Para><XRef Linkend="ABTestModule">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.378">
<Para><XRef Linkend="ABTestHelp">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.379">
<Para><XRef Linkend="ABTestMenus"></Para>
</ListItem>
</ItemizedList>
<Sect2 Id="ABTestProject">
<Title>To Test a Project</Title>
<IndexTerm>
<Primary>test a project</Primary>
</IndexTerm>
<IndexTerm>
<Primary>project</Primary>
</IndexTerm>
<OrderedList>
<ListItem Id="H.TSKS.item.380">
<Para>Click Test Project.</Para>
<Para>All modules in the current project will be displayed. Windows which
have an initial state of not Visible, as do custom dialogs by default,
will not be shown.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.381">
<Para>Test help, if appropriate.</Para>
<Para>See <XRef Linkend="ABTestHelp"> for detailed instructions.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.382">
<Para>Test menu displays, if appropriate.</Para>
<Para>See <XRef Linkend="ABTestMenus"> for detailed instructions.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.383">
<Para>Test connections, if appropriate.</Para>
<Para>Since windows with an initial state of not Visible are hidden in Test
Project mode, you can test connections that show hidden windows.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.384">
<Para>Click Build to return to build mode.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.385">
<Para><XRef Linkend="ABTestModule">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.386">
<Para><XRef Linkend="ABTestHelp">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.387">
<Para><XRef Linkend="ABTestMenus">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABTestModule">
<Title>To Test Shown Modules</Title>
<IndexTerm>
<Primary>test shown modules</Primary>
</IndexTerm>
<OrderedList>
<ListItem Id="H.TSKS.item.388">
<Para>Click Test Shown Modules in the App Builder primary window.</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. All windows in the currently-shown modules
will be displayed, including those that have an initial state set to
not Visible. See <XRef Linkend="ABTestProject"> if you want to test the entire
project, with not-Visible windows hidden.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.389">
<Para>Display the module to be tested, if necessary.</Para>
<Para>See <XRef Linkend="ABModShow"> for instructions.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.390">
<Para>Test help, if appropriate.</Para>
<Para>See <XRef Linkend="ABTestHelp"> for detailed instructions.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.391">
<Para>Test menu displays, if appropriate.</Para>
<Para>See <XRef Linkend="ABTestMenus"> for detailed instructions.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.392">
<Para>Test connections, if appropriate.</Para>
<Para>Note thatwindows with an initial state of not Visible will not be
hidden in Test Shown Modules mode; see <XRef Linkend="ABTestProject"> for
instructions.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.393">
<Para>Click Build to return to build mode.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.394">
<Para><XRef Linkend="ABTestProject">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.395">
<Para><XRef Linkend="ABTestHelp">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.396">
<Para><XRef Linkend="ABTestMenus">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABTestHelp">
<Title>To Test Help in a Module</Title>
<IndexTerm>
<Primary>test help</Primary>
</IndexTerm>
<IndexTerm>
<Primary>help</Primary>
</IndexTerm>
<OrderedList>
<ListItem Id="H.TSKS.item.397">
<Para>Display the module to be tested, if necessary.</Para>
<Para>See <XRef Linkend="ABModShow"> for instructions.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.398">
<Para>Click Test Shown Modules.</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. All windows in the currently-shown modules
will be displayed, including those that have an initial state set to
not Visible. See <XRef Linkend="ABTestProject"> if you want to test the entire
project, with not-Visible windows hidden.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.399">
<Para>Test help volume access by choosing Overview, Tasks, or
Reference from the Help menu.</Para>
<Para>A help volume window will be displayed. See <XRef Linkend="ABCreateHelp"> for
instructions for creating help and making connections to it. Dismiss
the help window when you are finished with it.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.400">
<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 Id="H.TSKS.item.401">
<Para>Move the cursor over an App Builder object and click.</Para>
<Para>If the clicked-on object (or one of its parent objects) has help text,
it will be displayed in a quick-help window.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.402">
<Para>Click on 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 Id="H.TSKS.item.403">
<Para>Click on the Close button in the quick-help window to dismiss
it.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.404">
<Para>Click on Using Help in the Help menu to learn about help.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.405">
<Para>Click Build to return to build mode.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.406">
<Para><XRef Linkend="ABTestProject">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.407">
<Para><XRef Linkend="ABTestModule">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.408">
<Para><XRef Linkend="ABTestMenus">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABTestMenus">
<Title>To Test Menus in a Module</Title>
<IndexTerm>
<Primary>test menus</Primary>
</IndexTerm>
<IndexTerm>
<Primary>menus, test</Primary>
</IndexTerm>
<OrderedList>
<ListItem Id="H.TSKS.item.409">
<Para>Display the module to be tested, if necessary.</Para>
<Para>See <XRef Linkend="ABModShow"> for instructions.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.410">
<Para>Click Test Shown Modules.</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. All windows in the currently-shown modules
will be displayed, including those that have an initial state set to
not Visible. See <XRef Linkend="ABTestProject"> if you want to test the entire
project, with not-Visible windows hidden.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.411">
<Para>Click or press on the items in a menu bar, if appropriate.</Para>
<Para>The menus will be displayed.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.412">
<Para>Press on each button menu, as appropriate.</Para>
<Para>The menus will be displayed.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.413">
<Para>Press mouse button 3 on a pane or list to display a pop-up
menu, if appropriate.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.414">
<Para>Choose items in displayed menus.</Para>
<Para>If menu items have been connected to functions (Show or Hide a dialog,
Access Help Volume, Activate On Item Help, for example), the function
should be performed.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.415">
<Para>Click on push buttons connected to functions, if appropriate.</Para>
<Para>If you connect a button to a custom dialog, for instance specifying
that the custom dialog should be hidden when the button is pushed,
this function should work.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.416">
<Para>Click Build to return to build mode.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.417">
<Para><XRef Linkend="ABTestProject">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.418">
<Para><XRef Linkend="ABTestModule">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.419">
<Para><XRef Linkend="ABTestHelp">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
</Sect1>
<Sect1 Id="ABGroupandAttach">
<Title>Grouping and Attaching Objects in an Interface</Title>
<IndexTerm>
<Primary>grouping and attaching objects</Primary>
</IndexTerm>
<IndexTerm>
<Primary>attaching objects</Primary>
</IndexTerm>
<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>A group 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>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.420">
<Para><XRef Linkend="ABMakeGroup">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.421">
<Para><XRef Linkend="ABEditGroup">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.422">
<Para><XRef Linkend="ABUnGroupObj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.423">
<Para><XRef Linkend="ABCreateBorder">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.424">
<Para><XRef Linkend="ABAttachObj">
</Para>
</ListItem>
</ItemizedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.425">
<Para><XRef Linkend="ABAboutAttachments">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
<Sect2 Id="ABMakeGroup">
<Title>To Create a Group</Title>
<IndexTerm>
<Primary>create</Primary>
</IndexTerm>
<IndexTerm>
<Primary>group, create</Primary>
</IndexTerm>
<OrderedList>
<ListItem Id="H.TSKS.item.426">
<Para>Select the control objects you wish 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 <XRef Linkend="ABSelectingObjects"> for instructions.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.427">
<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 --
an object called "group" (or "group2," etc., if other groups exist in
the module). The group object is the parent of the objects that
comprise the group. Note that 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>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.428">
<Para><XRef Linkend="ABSelectingObjects">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.429">
<Para><XRef Linkend="ABEditGroup">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.430">
<Para><XRef Linkend="ABUnGroupObj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.431">
<Para><XRef Linkend="ABAlignObj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.432">
<Para><XRef Linkend="ABDistObj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.433">
<Para><XRef Linkend="ABAttachObj">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABEditGroup">
<Title>To Edit Group Properties</Title>
<IndexTerm>
<Primary>edit group properties</Primary>
</IndexTerm>
<IndexTerm>
<Primary>group properties, edit</Primary>
</IndexTerm>
<Para>Group properties, including horizontal or vertical alignment and spacing
between objects, are set in the Group Property Editor.
</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.434">
<Para>Double-click on the group in the interface or in the Module
Browser to display the Group Property Editor.</Para>
<Para>In the interface you will have to click in the space between group
members to select the group. The group will be selected in the Group
Property Editor.</Para>
<Para>You can also display the Group Property Editor by choosing Groups from
the Editors menu.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.435">
<Para>Select the group to be edited from the Group Objects list, if
necessary.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.436">
<Para>Type a new name for the group, if necessary.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.437">
<Para>Choose a border frame style if you wish the group to have a
border in the completed interface (no border is the default).</Para>
<Para>Border frame style choices are shadow out, shadow in, etched out,
etched in, and none.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.438">
<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 Id="H.TSKS.item.439">
<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 Id="H.TSKS.item.440">
<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 Id="H.TSKS.item.441">
<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 Id="H.TSKS.item.442">
<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 Id="H.TSKS.item.443">
<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 Id="H.TSKS.item.444">
<Para>Deselect Visible if you do not want the objects in
the group to be visible when the application is opened.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.445">
<Para>Deselect Active if you do not want the objects in
the group to be active when the application is opened.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.446">
<Para>Click OK or Apply to apply the changes.</Para>
<Para>The Group Property Editor will be dismissed if you click OK.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.447">
<Para><XRef Linkend="ABAttachObj"></Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABUnGroupObj">
<Title>To Ungroup Objects in an Interface</Title>
<IndexTerm>
<Primary>ungroup objects</Primary>
</IndexTerm>
<OrderedList>
<ListItem Id="H.TSKS.item.448">
<Para>Select the group in the 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, as shown below.</Para>
<Para>&newline; &empty;
</Para>
<Graphic Entityref="GroupButtonsFig" Id="H.TSKS.fig.5"></Graphic>
<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 Id="H.TSKS.item.449">
<Para>Choose Ungroup from 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>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.450">
<Para><XRef Linkend="ABMakeGroup">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.451">
<Para><XRef Linkend="ABEditGroup">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.452">
<Para><XRef Linkend="ABBrowser">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABCreateBorder">
<Title>To Create a Border Around an Object</Title>
<IndexTerm>
<Primary>create</Primary>
</IndexTerm>
<IndexTerm>
<Primary>border, create</Primary>
</IndexTerm>
<Para>The group function can be used to create a border around an
individual object, such as a label.
</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.453">
<Para>Select the object in the interface.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.454">
<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 Id="H.TSKS.item.455">
<Para>Display the Group Property Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.456">
<Para>Select the group you wish to put a border around.</Para>
<Para>If you double-click on the group in the Module Browser, the Group
Property Editor will be displayed, with the group selected.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.457">
<Para>Choose the Border Frame style you wish to add to the object.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.458">
<Para>Click OK to apply the change and dismiss the Group Property
Editor.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.459">
<Para><XRef Linkend="ABMakeGroup">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABAttachObj">
<Title>To Attach Objects in an Interface</Title>
<IndexTerm>
<Primary>attach objects</Primary>
</IndexTerm>
<OrderedList>
<ListItem Id="H.TSKS.item.460">
<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.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.461">
<Para>Choose the object type you wish to attach to its parent or
siblings.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.462">
<Para>Select the object that you wish to attach.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.463">
<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 <XRef Linkend="ABAttachmentsEditor"> for descriptions of the types of attachments.</Para>
<Para>When you make an attachment, the selected object -- the
object in the center of the four Attach To boxes -- 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 -- the object to
which the selected object is attached -- the selected object will move
so as to maintain its relationship with the other object.</Para>
<Para>Note that 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 Id="H.TSKS.item.464">
<Para>Click OK or Apply to apply the changes.</Para>
<Para>If you click OK the Attachments Editor will be dismissed.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.465">
<Para><XRef Linkend="ABAttachmentsEditor"></Para>
</ListItem>
<ListItem Id="H.TSKS.item.466">
<Para><XRef Linkend="ABAlignObj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.467">
<Para><XRef Linkend="ABDistObj">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.468">
<Para><XRef Linkend="ABMakeGroup">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.469">
<Para><XRef Linkend="ABAboutAttachments">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
</Sect1>
<Sect1 Id="ABMakeDragandDrop">
<Title>To Establish Drag and Drop Behavior</Title>
<IndexTerm>
<Primary>drag and drop behavior, establish</Primary>
</IndexTerm>
<IndexTerm>
<Primary>drag operations</Primary>
</IndexTerm>
<IndexTerm>
<Primary>drop operations</Primary>
</IndexTerm>
<IndexTerm>
<Primary>drag connection</Primary>
</IndexTerm>
<IndexTerm>
<Primary>drop connection</Primary>
</IndexTerm>
<OrderedList>
<ListItem Id="H.TSKS.item.470">
<Para>Choose Drag and Drop from the Editors menu of the App Builder
primary window to display the Drag and Drop Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.471">
<Para>Choose an Object Type.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.472">
<Para>Select an object in the Objects list.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.473">
<Para>Select the Drag Operations you want to be legal for the
selected object.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.474">
<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 Id="H.TSKS.item.475">
<Para>Select the Data Types that will be legal for drag operations.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.476">
<Para>Click Drag Connection to display the Connections Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.477">
<Para>Choose Dragged From as the When action in the Connections
Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.478">
<Para>Choose Call Function as the Action Type in the Connections
Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.479">
<Para>Type a name for the called function in the Function text field
in the Connections Editor.</Para>
<Para>You will have to edit the <ComputerOutput>stubs.c</ComputerOutput> file to make
the called function do something useful.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.480">
<Para>Click Connect in the Connections Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.481">
<Para>Select which Drop Operations will be legal.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.482">
<Para>Select the Data Types that will be legal for drop operations.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.483">
<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 Id="H.TSKS.item.484">
<Para>Click Drop Connection to display the Connections Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.485">
<Para>Choose Dropped On as the When action in the Connections
Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.486">
<Para>Choose Call Function as the Action Type in the Connections
Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.487">
<Para>Type a name for the called function in the Function text field
in the Connections Editor.</Para>
<Para>You will have to edit the stubs.c file to make the called function do
something useful.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.488">
<Para>Click Connect in the Connections Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.489">
<Para>Click OK or Apply in the Drag and Drop Editor to apply the
changes.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.490">
<Para><XRef Linkend="ABDragDropEditor">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.491">
<Para><XRef Linkend="ABConnectionsEditor">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect1>
<Sect1 Id="ABMakeAppFramework">
<Title>To Establish Application Framework Behavior</Title>
<IndexTerm>
<Primary>establish application framework behavior</Primary>
</IndexTerm>
<IndexTerm>
<Primary>application framework behavior</Primary>
</IndexTerm>
<IndexTerm>
<Primary>vendor name, application framework</Primary>
</IndexTerm>
<IndexTerm>
<Primary>version, application framework</Primary>
</IndexTerm>
<IndexTerm>
<Primary>primary main window, application framework</Primary>
</IndexTerm>
<IndexTerm>
<Primary>internationalization, application framework</Primary>
</IndexTerm>
<IndexTerm>
<Primary>resource file, application framework</Primary>
</IndexTerm>
<IndexTerm>
<Primary>session management, application framework</Primary>
</IndexTerm>
<IndexTerm>
<Primary>tooltalk message handling, application framework</Primary>
</IndexTerm>
<IndexTerm>
<Primary>application framework editor</Primary>
</IndexTerm>
<Para>The Application Framework Editor establishes basic functionality for
the application as a whole. To establish application behavior for
internationalization, resource file attributes, session management,
and ToolTalk message handling:
</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.492">
<Para>Choose Application Framework Editor from the Editors menu in
the App Builder primary window to display the editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.493">
<Para>Type a Vendor Name and Version number in the text fields in the
Application section, if appropriate.</Para>
<Para>These are used in the call to initialize ToolTalk, if ToolTalk is
enabled.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.494">
<Para>Choose a different Primary Main Window, if appropriate.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.495">
<Para>Set Internationalization to Enabled, if appropriate.</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 Id="H.TSKS.item.496">
<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.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.497">
<Para>Choose a Method (None, Command Line, Session File, or Both) in
the Session Management section, as appropriate.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.498">
<Para>Select Session Save Connection and/or Session Restore
Connection, as appropriate, to make connections in the Connections
Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.499">
<Para>Choose a Desktop Message Handling level (None, Basic, or
Advanced) in the ToolTalk section, as appropriate.</Para>
<Para>See <XRef Linkend="ABAppFrameworkEditor"> for details about ToolTalk message
handling.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.500">
<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 Id="H.TSKS.item.501">
<Para>Click Advanced ToolTalk Connections if you chose Advanced
in the previous step.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.502">
<Para>Choose the appropriate ToolTalk function from the When menu in
the Connections Editor.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.503">
<Para>Choose Call Function as the Action Type.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.504">
<Para>Type in the name of the appropriate call function.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.505">
<Para>Click Connect to make the connection.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.506">
<Para>Click OK in the Application Framework Editor to apply
the changes and dismiss the editor.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.507">
<Para><XRef Linkend="ABAppFrameworkEditor">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.508">
<Para><XRef Linkend="ABConnectionsEditor">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect1>
<Sect1 Id="ABBuildandRun">
<Title>Generating Code and Running an Application</Title>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.509">
<Para><XRef Linkend="ABCodeGenCode">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.510">
<Para><XRef Linkend="ABSetCodeGenOptions">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.511">
<Para><XRef Linkend="ABSetEnvironmentOptions">
</Para>
</ListItem>
<ListItem Id="H.TSKS.item.512">
<Para><XRef Linkend="ABCommandLine">
</Para>
</ListItem>
</ItemizedList>
<Sect2 Id="ABCodeGenCode">
<Title>To Make and Run the Application</Title>
<IndexTerm>
<Primary>generate code</Primary>
</IndexTerm>
<IndexTerm>
<Primary>make and run application</Primary>
</IndexTerm>
<IndexTerm>
<Primary>make command, code generator</Primary>
</IndexTerm>
<IndexTerm>
<Primary>code generator, generate code</Primary>
</IndexTerm>
<IndexTerm>
<Primary>run application, code generator</Primary>
</IndexTerm>
<IndexTerm>
<Primary>generate code</Primary>
</IndexTerm>
<IndexTerm>
<Primary>make the application</Primary>
</IndexTerm>
<Para>Two scenarios are described below: in the first, you build and run the
application in one step. In the second case, you generate code,
compile the code, and run the application in separate steps.
</Para>
<Procedure>
<Title>One-Step Make and Run</Title>
<Step>
<OrderedList>
<ListItem Id="H.TSKS.item.513">
<Para>Choose Code Generator from the File menu of the App Builder
primary window to display the Code Generator.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.514">
<Para>Click Make & 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 "Running: ./[projectname]" 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>
<Para>Ultimately, someone is going to have to write some code to complete
the application. Any Call Function callbacks specified in the
Connections Editor will have to be substituted for, for one thing.</Para>
</ListItem>
</OrderedList>
</Step>
</Procedure>
<Procedure>
<Title>Generate Code, Make, and Run Separately</Title>
<Step>
<OrderedList>
<ListItem Id="H.TSKS.item.515">
<Para>Click Generate Code to generate code for the current project.</Para>
<Para>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>
<Para>As <ComputerOutput>dtcodegen</ComputerOutput> runs, messages are displayed in the
output pane at the top of the Code Generator window. The final message
should be "Completed successfully." A number of files will be created,
including Makefiles, project files, module files, and two
<ComputerOutput>dtb.utils</ComputerOutput> files. You can look at the files in the
Term Pane at the bottom of the Code Generator window.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.516">
<Para>Click Make to build the application.</Para>
<Para>More messages will be displayed in the Output Pane as the application
is compiled. The final message again should be "Completed
successfully." 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 Id="H.TSKS.item.517">
<Para>Click Run to run the application.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.518">
<Para>Click Abort to quit the application.</Para>
</ListItem>
</OrderedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABSetCodeGenOptions">
<Title>To Set Code Generator Options</Title>
<IndexTerm>
<Primary>code generator options, set</Primary>
</IndexTerm>
<IndexTerm>
<Primary>set code generator options</Primary>
</IndexTerm>
<IndexTerm>
<Primary>options, code generator</Primary>
</IndexTerm>
<Para>To change the options that determine what code is generated and other
Code Generator functions:
</Para>
<OrderedList>
<ListItem Id="H.TSKS.item.519">
<Para>Choose Code Generator from the File menu of the App Builder
primary window to display the Code Generator window.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.520">
<Para>Choose Generator from the Options menu to display the Code
Generator Options dialog box.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.521">
<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, type the
names of the modules you want to generate code for in the text pane,
pressing Return after each module name.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.522">
<Para>Click Don't Merge if you wish to change that setting.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.523">
<Para>Choose a different message reporting option if you wish.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.524">
<Para>Type Make Arguments, if appropriate.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.525">
<Para>Type Run Time Arguments, if appropriate.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.526">
<Para>Click Reset to Defaults to set all fields to their default
values.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.527">
<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>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.528">
<Para><XRef Linkend="ABCodeGenOptionsDialog"></Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABSetEnvironmentOptions">
<Title>To Set Environment Options</Title>
<IndexTerm>
<Primary>set environment options</Primary>
</IndexTerm>
<IndexTerm>
<Primary>environment options, set</Primary>
</IndexTerm>
<OrderedList>
<ListItem Id="H.TSKS.item.529">
<Para>Choose Code Generator from the File menu of the App Builder
primary window to display the Code Generator window.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.530">
<Para>Choose Environment from the Options menu to display the
Environment Options dialog box.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.531">
<Para>Type a variable in the Variable Name text field.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.532">
<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 Id="H.TSKS.item.533">
<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 Id="H.TSKS.item.534">
<Para>Click Reset to reset Value to its value outside of this session
of App Builder.</Para>
</ListItem>
<ListItem Id="H.TSKS.item.535">
<Para>Click Cancel to dismiss the dialog box.</Para>
</ListItem>
</OrderedList>
<Procedure>
<Title>See Also</Title>
<Step>
<ItemizedList Mark="&bull;" Role="tight">
<ListItem Id="H.TSKS.item.536">
<Para><XRef Linkend="ABCodeGenEnvirOptionsDialog">
</Para>
</ListItem>
</ItemizedList>
</Step>
</Procedure>
</Sect2>
<Sect2 Id="ABCommandLine">
<Title>To Generate Code from the Command Line</Title>
<Para>To generate App Builder code from the command line, run
<ComputerOutput>dtcodegen</ComputerOutput>. Usage is described below.</Para>
<Para>Usage: dtcodegen [options] [project-file] [module-file [module-file] ...]</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 .bip are assumend to be BIL project files, files
with <ComputerOutput>.bix</ComputerOutput> extension are assumed to be
encapsulated BIL files, and files With a <ComputerOutput>.bil</ComputerOutput>
extension are assumed to be BIL module files.</Para>
<LiteralLayout>Options (* = default, + = default with no project file):
  -help (-h)        Print out this help message
  -main             Write file containing main()
  -changed          Only generate files that have changed
* -merge	    Merge generated _stubs.c files with previous version
  -nomerge          Don't merge existing and new stubs file
* -project (-p)     Specify a project to generate code for
  -noproject (-np)  Use default project settings, ignore project file
+ -showall          Application shows (maps) all windows at startup
* -noshowall        Application shows (maps) only initially-visible windows
  -silent (-s)      Silent mode, no messages written
  -verbose (-v)     Verbose mode, detailed progress messages
</LiteralLayout>
<!-- EOF -->
</Sect2>
</Sect1>
</Chapter>
<!--fickle 1.15 help-to-docbook 1.4 01/17/96 17:37:35-->
