f6bcfd974e
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@7748 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
235 lines
12 KiB
TeX
235 lines
12 KiB
TeX
\chapter{Introduction}\label{introduction}
|
|
\pagenumbering{arabic}%
|
|
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
|
|
\setfooter{\thepage}{}{}{}{}{\thepage}%
|
|
|
|
The wxWindows Dialog Editor is a tool for creating dialog resource files, in {\tt .wxr} format.
|
|
It differs from wxBuilder in the following respectes:
|
|
|
|
\begin{enumerate}\itemsep=0pt
|
|
\item Scope. It is written for dialog editing only, and is therefore more convenient than wxBuilder for this purpose.
|
|
\item File format. Dialog editor reads and writes wxWindows resource files (extension {\tt .wxr}) and has
|
|
no independent file format.
|
|
\item Robustness. It is written in a more principled way than wxBuilder, and is less ambitious.
|
|
\item Ease of use. Windows are edited using the mouse or via consistent {\it property editors}, which
|
|
provide immediate visual feedback of changed properties.
|
|
\end{enumerate}
|
|
|
|
Dialog Editor 2.0 should be compiled and used with wxWindows 2.0.
|
|
|
|
\section{Current status}
|
|
|
|
Dialog Editor currently runs under wxMSW and wxGTK. It has yet to
|
|
be tested under wxMotif.
|
|
|
|
\section{Future developments}
|
|
|
|
\begin{itemize}\itemsep=0pt
|
|
\item Motif compilation.
|
|
\item It would be nice to have a dialog browser, showing thumbnails of
|
|
all dialogs in a particular directory.
|
|
\item Maybe add a menubar editor (from wxBuilder).
|
|
\item Maybe convert Windows .rc files.
|
|
\end{itemize}
|
|
|
|
\chapter{Commands}\label{commands}
|
|
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
|
|
\setfooter{\thepage}{}{}{}{}{\thepage}%
|
|
|
|
\section{Dialog editor menu bar}
|
|
|
|
\subsection{File menu}
|
|
|
|
\begin{twocollist}\itemsep=0pt
|
|
\twocolitem{New Dialog}{Creates a new dialog resource.}
|
|
\twocolitem{New Project}{Creates a new project (clears index and resets project name).}
|
|
\twocolitem{Open...}{Opens an existing resource file.}
|
|
\twocolitem{Save}{Saves the current resources.}
|
|
\twocolitem{Save As...}{Saves the current resources in a named file.}
|
|
\twocolitem{Clear}{Clears the current resources.}
|
|
\twocolitem{Convert Old Resources...}{Takes a directory of wxWindows 1.68 dialog resources,
|
|
and converts them to wxWindows 2 resources, in a separate directory. See
|
|
\helpref{Converting old files}{convertingoldfiles}.}
|
|
\twocolitem{Exit}{Exits the program.}
|
|
\end{twocollist}
|
|
|
|
\subsection{Edit menu}
|
|
|
|
\begin{twocollist}\itemsep=0pt
|
|
\twocolitem{Test Dialog}{Creates the current dialog for test purposes.}
|
|
\twocolitem{Recreate}{Recreates the currently selected control from the underlying resource. This may be necessary
|
|
to regenerate items that cannot be changed dynamically, and which have got out of sync with the displayed
|
|
item.}
|
|
\twocolitem{Delete}{Deletes the currently selected resource.}
|
|
\end{twocollist}
|
|
|
|
\subsection{Help menu}
|
|
|
|
\begin{twocollist}\itemsep=0pt
|
|
\twocolitem{Help Topics}{Displays on-line help at the contents page.}
|
|
\twocolitem{About}{Displays an dialog showing the Dialog Editor version and author.}
|
|
\end{twocollist}
|
|
|
|
\latexonly{\newpage}
|
|
\section{Command toolbar}
|
|
|
|
The command toolbar consists of the following tools:
|
|
|
|
\begin{twocollist}%\itemsep=0pt
|
|
\twocolitem{\icon{new.eps}{New}}{Clears the project.}
|
|
\twocolitem{\icon{open.eps}{Open}}{Opens an existing resource file.}
|
|
\twocolitem{\icon{save.eps}{Save}}{Saves the current resources.}
|
|
\twocolitem{\icon{vert.eps}{Horizontal align}}{Aligns the centre of the selected controls horizontally.}
|
|
\twocolitem{\icon{alignt.eps}{Horizontal top-align}}{Aligns the top sides of the selected controls horizontally.}
|
|
\twocolitem{\icon{alignb.eps}{Horizontal bottom-align}}{Aligns the bottom sides of the selected controls horizontally.}
|
|
\twocolitem{\icon{horiz.eps}{Vertical align}}{Aligns the centre of the selected controls vertically.}
|
|
\twocolitem{\icon{alignl.eps}{Vertical left-align}}{Aligns the left sides of the selected controls vertically.}
|
|
\twocolitem{\icon{alignr.eps}{Vertical right-align}}{Aligns the right sides of the selected controls vertically.}
|
|
\twocolitem{\icon{copysize.eps}{Copy size}}{Copies the size of the first selected control to the subsequently selected control(s).}
|
|
\twocolitem{\icon{copywdth.eps}{Copy width}}{Copies the width of the first selected control to the subsequently selected control(s).}
|
|
\twocolitem{\icon{copyhght.eps}{Copy height}}{Copies the height of the first selected control to the subsequently selected control(s).}
|
|
\twocolitem{\icon{disthor.eps}{Distribute horizontally}}{Evenly distributes the space between the selected controls, horizontally. Note that the controls
|
|
should be selected in order from left to right.}
|
|
\twocolitem{\icon{distvert.eps}{Distribute vertically}}{Evenly distributes the space between the selected controls, vertically. Note that the controls
|
|
should be selected in order from top to bottom.}
|
|
\twocolitem{\icon{tofront.eps}{To front}}{Puts the selected control(s) to the front of the display list.}
|
|
\twocolitem{\icon{toback.eps}{To back}}{Puts the selected control(s) to the back of the display list.}
|
|
\twocolitem{\icon{help.eps}{Help}}{Invokes Dialog Editor help.}
|
|
\end{twocollist}
|
|
|
|
\latexonly{\newpage}
|
|
\section{Tool palette}
|
|
|
|
The tool palette is used to select a type of control to create on the dialog.
|
|
To create a new control, select a tool with left-click, then left-click on the dialog.
|
|
Select the pointer tool to use left-click for selecting and deselecting
|
|
items.
|
|
|
|
\section{Resource tree}
|
|
|
|
The resource tree shows a list of the dialogs, controls and bitmaps currently loaded
|
|
in Dialog Editor. Double-clicking on an item shows the associated resource.
|
|
|
|
\chapter{Procedures}\label{procedures}
|
|
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
|
|
\setfooter{\thepage}{}{}{}{}{\thepage}%
|
|
|
|
\section{Running Dialog Editor}
|
|
|
|
To run Dialog Editor under Windows, click on the Program Manager or Explorer icon.
|
|
Under UNIX, run from the command line.
|
|
|
|
The main window shows a menu bar, command toolbar, tool palette, resource list, and
|
|
status line.
|
|
|
|
\section{Creating a dialog}
|
|
|
|
To create a new dialog, click on the {\bf File: New} menu item, or equivalent
|
|
toolbar button. A dialog will appear. To put a control on the dialog, left-click
|
|
on the appropriate palette icon and then left-click on the dialog. A new item
|
|
will appear at the place you clicked.
|
|
|
|
You can edit any control or dialog by control-left clicking. A property editor
|
|
will appear, allowing any property to be selected and edited (see \helpref{Using property editors}{propeditors}).
|
|
You can also edit items by right-clicking to show a menu, and then selecting {\it Edit properties}.
|
|
|
|
To move a control, drag the item with the left mouse button, or edit
|
|
the position values in the property editor. To resize a control, you
|
|
can either select it by left-clicking and then dragging on a selection
|
|
handle, or edit the size values in the property editor.
|
|
|
|
You can delete items from the right-click menu, or by selecting the item and
|
|
choosing {\bf Edit: Delete} from the menu bar.
|
|
|
|
\section{Using property editors}\label{propeditors}
|
|
|
|
Property editors consist of a list of properties and current values, plus controls at the top of
|
|
the editor. If the property is of an appropriate type, you can edit the value directly in the
|
|
text field, and confirm or cancel the value using the two buttons to the left of it.
|
|
If the property has a predefined range of values, such as labelFontFamily, you can
|
|
see a list of permissable values by clicking on the button labelled with an ellipsis symbol ({\bf ...}).
|
|
This will show a listbox with possible values and current selection. You may also be able
|
|
to cycle through values by double-clicking the value in the listbox.
|
|
|
|
Properties may have special editors appropriate to the type. Filename properties invoke
|
|
the file selector, and properties containing list of user-definable strings use a
|
|
string editor.
|
|
|
|
When you change a property value, this value is immediately reflected in
|
|
the dialog or control. If the item allows this value to be changed
|
|
dynamically, the relevant wxWindows function will be called internally
|
|
to effect the change. If the value cannot be changed dynamically, the
|
|
item will be destroyed and re-created, which means that there will be
|
|
more flickering associated with some kinds of property changes than
|
|
others.
|
|
|
|
\section{Saving and loading files}
|
|
|
|
Use {\it File: Save} and {\it File: Save as} or the equivalent toolbar button
|
|
to save the current dialog(s) in a wxWindows resource file (extension {\tt .wxr}).
|
|
|
|
The {\tt .wxr} file can be used directly in a wxWindows program, if
|
|
wxWindows resources have been enabled when building the wxWindows library.
|
|
These files can be loaded dynamically, or included directly into program source
|
|
with a \verb$#include$ directive. See the wxWindows user manual for further details.
|
|
|
|
\section{Working with identifiers}
|
|
|
|
Dialog Editor keeps track of identifiers in your resources, and reads and writes an include file of the
|
|
form {\tt name.h} where 'name' is the root name of your {\tt .wxr} file. Dialog Editor
|
|
knows about the predefined identifiers such as wxID\_OK.
|
|
|
|
When you create a dialog or control, the identifier is initially generated. When you
|
|
edit the identifier via a property editor, you can choose a new name, such as a predefined
|
|
symbol and optionally change the integer assigned to the name (assuming it's not a
|
|
predefined symbol).
|
|
|
|
When you save the project, the identifier include file is saved as well. Include this file
|
|
in your project so that you can refer to controls and dialogs by identifier rather than
|
|
obscure integers. Note that the {\tt .wxr} file itself can only contain integer ids and not the symbols,
|
|
due to way in which the resource file is loaded.
|
|
|
|
\section{Multi-platform development}
|
|
|
|
{\tt .wxr} files generated on one environment (e.g. Windows) can be used in another (e.g. GTK).
|
|
If you use default fonts and colouring (set {\bf useSystemDefaults} to True in the dialog properties)
|
|
then the dialog fonts and colours will take on the native values, rather than ones specified in the
|
|
resource. Without this, colours in the dialog resource may not match system colours.
|
|
|
|
Also, set {\bf useDialogUnits} to True whenever possible since this will cause the dialog
|
|
to be created using a scale based on the current system font size, and will result in dialogs that are
|
|
portable between screen resolutions as well as platforms.
|
|
|
|
Because the same control can have different sizes on different GUIs,
|
|
the user should be cautious in assuming that one resource file will work for all
|
|
platforms. It may be better to plan to conditionally include or load different
|
|
resource files for different platforms, with spacing modified to suit each
|
|
environment. The best thing is to try your dialog resource on several platforms
|
|
and see whether tweaking is required for some platforms.
|
|
|
|
\section{Converting old files}\label{convertingoldfiles}
|
|
|
|
Dialog Editor can make an attempt at converting dialog resources created with Dialog Editor for wxWindows 1.68.
|
|
The command is {\bf Convert Old Resources...} on the {\bf File} menu.
|
|
|
|
You need to specify two directories, an input and an output directory. Dialog Editor will
|
|
do the following conversions:
|
|
|
|
\begin{enumerate}\itemsep=0pt
|
|
\item wxMultiText becomes a wxTextCtrl with wxTE\_MULTILINE style.
|
|
\item wxText becomes a wxTextCtrl.
|
|
\item wxMessage becomes either a wxStaticText or wxStaticBitmap.
|
|
\item wxButton becomes a wxBitmapButton if necessary.
|
|
\item wxGroupBox becomes wxStaticBox.
|
|
\item Controls that no longer have labels, such as wxTextCtrl and wxListBox,
|
|
have a separate wxStaticText control created for them at approximately the correct
|
|
position. The label's window name becomes ControlName_Label where ControlName is
|
|
the name of the control that formerly had the label.
|
|
\item Identifiers are allocated.
|
|
\item Font sizes are reduced to counter the decreased font size now created by wxWindows
|
|
for a given point size.
|
|
\item The dialog height is reduced slightly to compensate for the fact that the dialog caption
|
|
is no longer included in the size.
|
|
\end{enumerate}
|
|
|