]> git.saurik.com Git - wxWidgets.git/blame - utils/configtool/docs/manual/configtool.tex
Eliminated some code.
[wxWidgets.git] / utils / configtool / docs / manual / configtool.tex
CommitLineData
d7463f75
JS
1\documentstyle[a4,makeidx,verbatim,texhelp,fancyhea,mysober,mytitle]{report}%
2\twocolwidtha{4cm}%
3\definecolour{black}{0}{0}{0}%
4\definecolour{cyan}{0}{255}{255}%
5\definecolour{green}{0}{255}{0}%
6\definecolour{magenta}{255}{0}{255}%
7\definecolour{red}{255}{0}{0}%
8\definecolour{blue}{0}{0}{200}%
9\definecolour{yellow}{255}{255}{0}%
10\definecolour{white}{255}{255}{255}%
11%\input{psbox.tex}
12\newcommand{\commandref}[2]{\helpref{{\tt $\backslash$#1}}{#2}}%
13\newcommand{\commandrefn}[2]{\helprefn{{\tt $\backslash$#1}}{#2}\index{#1}}%
14\newcommand{\commandpageref}[2]{\latexignore{\helprefn{{\tt $\backslash$#1}}{#2}}\latexonly{{\tt $\backslash$#1} {\it page \pageref{#2}}}\index{#1}}%
15\newcommand{\indexit}[1]{#1\index{#1}}%
16\newcommand{\inioption}[1]{{\tt #1}\index{#1}}%
17\parskip=10pt%
18\parindent=0pt%
19\title{\cttitle}%
20\author{(c) Julian Smart, 2003}%
21\makeindex%
22\begin{document}%
23%\maketitle%
24\begin{center}
25\image{}{logo.gif}
26
27{\large {\bf Version \ctversion}}
28
29(c) Julian Smart
30\end{center}
31
32\pagestyle{fancyplain}%
33\bibliographystyle{plain}%
34\pagenumbering{arabic}%
35\setheader{{\it CONTENTS}}{}{}{}{}{{\it CONTENTS}}%
36\setfooter{\thepage}{}{}{}{}{\thepage}%
37\tableofcontents%
38
39
40\chapter{Welcome to \ctshortname}%
41\setheader{{\it Welcome}}{}{}{}{}{{\it Welcome}}%
42\setfooter{\thepage}{}{}{}{}{\thepage}%
43
44Welcome to \ctname, the easy way to configure wxWindows.
45Instead of tweaking a setup.h file, or typing a long configure
46command, you can now check and uncheck options in a convenient
47GUI tool, read the relevant reference document for each
48option, and save the setup.h file or configure command file.
49
50\begin{itemize}\itemsep=0pt
51\item For release information, please see \helpref{Release Notes}{releasenotes}.
52\item For a tour of the main windows in \ctshortname, please see the \helpref{User Interface}{documentui} section.
53%\item For a quick tutorial, go straight to \helpref{Getting Started}{gettingstarted}.
54\item For tips and troubleshooting, see the \helpref{How To}{howto} section.
55\end{itemize}
56
57\chapter{Contacts}%
58\setheader{{\it Contacts}}{}{}{}{}{{\it Contacts}}%
59\setfooter{\thepage}{}{}{}{}{\thepage}%
60
61The \ctname home page is at:
62
63{\tt \cturl}
64
65For help with \ctshortname or to report bugs,
66please go to the wxWindows web site.
67
68\section{Credits}
69
70\begin{center}
71{\bf (c) 2003 Julian Smart, Anthemion Software}\hrule
72
73{\it Designed by}
74
75{\bf Julian Smart}
76
77{\it Programmed by}
78
79{\bf Julian Smart}
80
81{\it Additional programming by}
82
83{\bf The wxWindows development team}
84
85\end{center}
86
87\chapter{Installation}%
88\setheader{{\it Installation}}{}{}{}{}{{\it Installation}}%
89\setfooter{\thepage}{}{}{}{}{\thepage}%
90
91{\bf On Windows:}
92
93Please run the installation program. This will create a program
94folder called \ctname (or other name if you have chosen a different name). This
95folder can be accessed via the Start menu under Programs. The
96folder contains shortcuts to the program, help file, and Uninstall program.
97
98You can uninstall \ctshortname either by double-clicking the Uninstall \ctshortname icon
99in the \ctname group, or by invoking the Windows Control Panel,
100double-clicking on Add/Remove Programs, and then choosing the \ctshortname item.
101
102{\bf On Linux:}
103
104Unarchive wxconfigtool-x.xx.tar.gz to a suitable location
105in your filesystem. A directory of the form wxconfigtool-x.xx
106(where x.xx is the version number) will be created.
107
108Add the location to your PATH and run the application with
109'wxconfigtool'. You may wish to set the environment variable
110WXCONFIGTOOLDIR so that wxWindows Configuration Tool can find its data files.
111
112For example:
113
114\begin{verbatim}
115 % cd ~
116 % tar xvfz wxconfigtool-1.01.tar.gz
117 % export WXCONFIGTOOLDIR=`pwd`/wxconfigtool-1.01
118 % export PATH=$PATH:$WXCONFIGTOOLDIR
119 % wxconfigtool
120\end{verbatim}
121
122If you don't want to change your PATH, you could place a
123script in a location already on your PATH, such as
124/usr/local/bin. For example:
125
126\begin{verbatim}
127 #!/bin/sh
128 # Invokes wxWindows Configuration Tool
129 export WXCONFIGTOOLDIR=/home/mydir/wxconfigtool-1.01
130 $WXCONFIGTOOLDIR/wxconfigtool $*
131\end{verbatim}
132
133{\bf On Mac:}
134
135Download and unarchive the HQX file, and drag the wxWindows Configuration Tool folder to an appropriate location
136on your hard disk. Then double-click on the 'wxconfigtool' executable.
137
138\chapter{Release notes}\label{releasenotes}%
139\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
140\setfooter{\thepage}{}{}{}{}{\thepage}%
141
142For licencing information, please see
143the licence files in the installation directory:
144
145\begin{itemize}\itemsep=0pt
146\item licendoc.txt
147\item gpl.txt
148\item lgpl.txt
149\item preamble.txt
150\end{itemize}
151
152\section{What's New?}\label{whatsnew}
153
e7767867
JS
154{\bf Version 1.01, June 14th 2003}
155
156\begin{itemize}\itemsep=10pt
157\item Added Find facility.
158\end{itemize}
159
d7463f75
JS
160{\bf Version 1.0, June 11th 2003}
161
162\begin{itemize}\itemsep=10pt
163\item Initial version.
164\end{itemize}
165
166\section{Known issues}\label{knownissues}
167
168The following problems are known to exist:
169
170\begin{itemize}\itemsep=10pt
171\item No issues as yet.
172\end{itemize}
173
174\section{To Do}\label{todo}
175
176There are many things that could be done to make
177this tool more useful, including the following.
178
179\begin{itemize}\itemsep=10pt
180\item Allow full platform-specific dependency specification
181as mentioned in \helpref{How to specify platform-specific dependencies}{platformdependencies}.
182\item Allow \ctshortname to invoke configure and make, with an output
183window showing build status.
184\item Distinguish between template files and settings file; allow
185application of template files to settings files, and vice versa.
186\item Implement support for string, integer, float settings.
187\item Write a configuration browser.
188\item Add description, date and author information to the settings file.
189\item Command-line mode with ability to change settings from
190the command-line. Just like configure :-)
191\item Decide on standard location for settings files.
192\item Integrate with new (and old?) build systems.
193\item Allow customization of font and colour.
194\item Show all calculated dependencies for each config item.
195\item Add a search facility.
196\end{itemize}
197
198\section{Differences between Windows, Linux and Mac versions}\label{platformdifferences}
199
200Although every effort has been made to make wxWindows Configuration Tool work
201the same way on different environments, some small differences
202are inevitable.
203
204\begin{itemize}\itemsep=10pt
205\item Screenshots illustrate the Windows version; the Linux
206and Mac windows and dialogs will be slightly different, but with equivalent
207functionality.
208\item Dialogs under Windows often have a '?' button on the title
209bar, for context-sensitive help. Under Linux, this button is
210on the dialog itself, usually near the OK or Close button.
211On the Mac, context-sensitive help is not yet supported.
212\item Under Linux, online help invoked from the {\bf Help} button
213in modal dialogs is itself modal. That is, you have to quit
214the help window to return to the dialog. On Windows, you can
215switch back to the dialog without quitting the help viewer.
216\item On Windows and Linux, context menus are invoked with
217right-click. On Mac, use control-click.
218\end{itemize}
219
220\chapter{\ctshortname user interface}\label{documentui}%
221\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
222\setfooter{\thepage}{}{}{}{}{\thepage}%
223
224This section describes the main elements of the \ctname user interface.
225
226The \ctshortname main window looks like this:
227
228\begin{center}
229\image{}{screen01.png}
230\end{center}
231
232\section{Menubar}
233
234%\image{}{menubar.gif}
235
236The \helpref{menubar}{menubarcommands} allows you to perform many functions
237such as loading and saving files, creating new configuration items,
238undo/redo, invoking help, and so on. Try to remember the keyboard shortcuts that are
239displayed next to the menu item labels - they can save you a lot of time
240and make your \ctshortname experience more natural and enjoyable.
241
242\section{Main toolbar}
243
244%\image{}{toolbar.gif}
245
246The main toolbar gives quick access to commonly-used commands.
247If you hold your mouse pointer over the toolbar buttons, a tooltip pops up with a short description
248of the button's function.
249
250You can choose to hide the toolbar altogether
251using the {\bf View | Show Toolbar} menu command.
252
253You can find out more about in the \helpref{toolbar commands}{toolbarcommands} topic.
254
255\section{Configuration window}
256
257%\image{}{configwindow.gif}
258
259The biggest area of \ctshortname is taken up by the configuration window.
260
261On the left is a hierarchy of settings that can be customized.
262You can check and uncheck most settings, but you will find that
263many settings are disabled because they depend on other settings
264being enabled (or disabled).
265
266As an end user, you will probably only want to enable or disable
267options, but it's possible you may wish to update the structure
268of the settings file itself. In which case you can use the
269{\bf Edit} menu to add, remove, or rename items; and you can
270add custom properties to an item, but this is usually only
271useful for a developer of the tool to do.
272
273Undo/Redo can be applied to most editing commands, but (currently) not
274enabling and disabling operations.
275
276There are three tabs in the main window: {\bf Properties}, {\bf Setup.h},
277and {\bf Configure}. The Properties tab contains the properties
278for the selected option. Setup.h shows the setup file,
279and there are buttons to allow you to copy the file to the clipboard
280and regenerate the file. Similarly, the Configure tab shows
281the script that will invoke configure.
282
283The property editor allows you to show detailed information
284about the option. A description for each property is shown
285when you click on the property. You can also edit property values,
286either by clicking and typing, or by double-clicking or clicking
287on the {\bf Edit...} button. If a special editor is defined for
288the property type, it will be shown.
289
290You can invoke help for the selected option, by clicking
291on the question mark toolbar button or the {\bf Help | Configuration Item Help} menu
292item. If there is a help topic defined for the option, the
293wxWindows reference manual will be opened at that topic.
294
295\begin{comment}
296\chapter{Getting started: a step-by-step guide}\label{gettingstarted}%
297\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
298\setfooter{\thepage}{}{}{}{}{\thepage}%
299
300This section will quickly get you up and running with \ctshortname. Click
301on \helpref{Step 1}{step1} to start. If you are
302using a Mac, please interpret 'left-click' to mean 'click', and
303'right-click' to mean 'control-click'.
304
305\section{Step 1: creating a new configuration}\label{step1}
306
307When you run \ctshortname for the first time, you are presented with an
308empty configuration window.
309
310Go to \helpref{Step 2}{step2} to learn how to do the next thing.
311
312\section{Step 2: doing something else}\label{step2}
313
314Go to \helpref{Step 3}{step3} to learn how to do a third thing.
315
316\section{Step 3: a third thing}\label{step3}
317
318Go to \helpref{Step 4}{step4} to learn about saving your document and reloading it.
319
320\section{Step 4: saving and loading documents}\label{step4}
321
322You may wish to save a document, so you can come back to it later. Click on {\bf File | Save} or
323the \image{}{save.png} toolbar button. The first time you save the file, you will be prompted
324for a filename: you can accept the default one provided, or choose another.
325
326To reload the document, click on {\bf File | Open...} or the \image{}{open.gif} toolbar button.
327If you are working on another document, you will be prompted to save it first.
328
329Go to \helpref{Step 5: generating configurations}{step5}
330
331\section{Step 5: generating configurations}\label{step5}
332
333Todo.
334
335Go to \helpref{Step 6: where next?}{step6}
336
337\section{Step 6: where next?}\label{step6}
338
339Congratulations! You have learnt how to create, edit, save, and load configuration
340files.
341
342To get to know \ctshortname more thoroughly, here are some further things you
343can do.
344
345\begin{itemize}
346\item Read the \helpref{How To}{howto} section.
347\item Use the help facilities: most dialogs have a {\bf Help} button for a general description, and they
348also have a {\bf "?"} button for getting information on individual controls on a dialog.
349\item Explore the menubar and the menus that appear when you right-click over
350the window background and individual cards.
351\end{itemize}
352
353\end{comment}
354
355\chapter{Using menubar commands}\label{menubarcommands}%
356\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
357\setfooter{\thepage}{}{}{}{}{\thepage}%
358
359%\image{}{menubar.gif}
360
361This section describes the menubar commands. Commands
362that are not available in the current context are disabled (shown in grey).
363
364\section{File menu}
365
366The File menu shows commands that are mostly related to working
367with files.
368
369\begin{twocollist}\itemsep=0pt
370\twocolitem{{\bf New...} (Ctrl+N)}{Creates a new \ctshortname document.}
371\twocolitem{{\bf Open...} (Ctrl+O)}{Opens an existing document.}
372\twocolitem{{\bf Close} (Ctrl+W)}{Closes the current document.}
373\twocolitem{\hrule}{\htmlonly{\hrule}}
374\twocolitem{{\bf Save} (Ctrl+S)}{Saves the current document.}
375\twocolitem{{\bf Save As...}}{Saves the current document under a new name.}
376\twocolitem{\hrule}{\htmlonly{\hrule}}
377\twocolitem{{\bf Save Setup.h...} (Ctrl+H)}{Saves the generated setup.h file in the specified location.}
378\twocolitem{{\bf Save Configure Script...} (Ctrl+G)}{Saves the generated script containing a configure command in the specified location.}
379\twocolitem{\hrule}{\htmlonly{\hrule}}
380\twocolitem{{\bf Exit} (Alt+F4)}{Exits the program.}
381\end{twocollist}
382
383\section{Edit menu}
384
385The Edit menu shows commands that are related to editing
386document elements.
387
388\twocolwidtha{5cm}
389\begin{twocollist}\itemsep=0pt
390\twocolitem{{\bf Undo} (Ctrl+Z)}{Undoes the last undoable action.}
391\twocolitem{{\bf Redo} (Ctrl+Y)}{Redoes the last redoable action.}
392\twocolitem{\hrule}{\htmlonly{\hrule}}
393\twocolitem{{\bf Cut} (Ctrl+T)}{Cuts the selected option and places it on the clipboard.}
394\twocolitem{{\bf Copy} (Ctrl+C)}{Copies the selected option.}
395\twocolitem{{\bf Paste} (Ctrl+V)}{Pastes an option from the clipboard to the position. Whether the
396option is pasted as a child or sibling of the selection is determined by whether
397the selection is a folder or not. If you want finer control, right-click on the
398item in the tree control and select one of the paste commands.}
399\twocolitem{\hrule}{\htmlonly{\hrule}}
400\twocolitem{{\bf Add Option}}{Shows a menu for adding one of several option types.}
401\twocolitem{\hrule}{\htmlonly{\hrule}}
402\twocolitem{{\bf Custom Property}}{Shows a menu for adding, editing or deleting a custom option property.}
403\twocolitem{\hrule}{\htmlonly{\hrule}}
404\twocolitem{{\bf Delete Option}}{Deletes the selected option.}
405\twocolitem{{\bf Rename Option}}{Shows a dialog for renaming the selected option.}
e7767867
JS
406\twocolitem{\hrule}{\htmlonly{\hrule}}
407\twocolitem{{\bf Find...}}{Shows the Find dialog, allowing you to search for text
408within name, description and notes for each item.}
d7463f75
JS
409\end{twocollist}
410
411\section{View menu}
412
413The View menu gives you commands related to showing or hiding windows
414and various other preferences.
415
416\twocolwidtha{5cm}
417\begin{twocollist}\itemsep=0pt
418\twocolitem{{\bf Show Toolbar}}{Shows or hides the toolbar, beneath the menubar.}
419\twocolitem{\hrule}{\htmlonly{\hrule}}
420\twocolitem{{\bf Settings...} (Ctrl+T)}{Shows the \helpref{Settings Dialog}{settingsdialog}, which
421relate to application-wide settings.}
422\end{twocollist}
423
424\section{Help menu}
425
426The Help menu gives you commands related to getting help.
427
428\twocolwidtha{5cm}
429\begin{twocollist}\itemsep=0pt
430\twocolitem{{\bf Contents}}{Invokes the on-line help, showing the contents page.}
431\twocolitem{{\bf wxWindows Help Contents}}{Invokes the on-line wxWindows reference manual, showing the contents page.}
432\twocolitem{\hrule}{\htmlonly{\hrule}}
433\twocolitem{{\bf Configuration Option Help} (F1)}{Invokes the on-line wxWindows reference manual at the topic for the selected option (if a topic
434is defined).}
435\twocolitem{{\bf What's This?}}{Click to get help on a window or configuration option.}
436\twocolitem{\hrule}{\htmlonly{\hrule}}
437\twocolitem{{\bf About...}}{Displays a dialog giving a brief description of the program.}
438\end{twocollist}
439
440\chapter{Using context menu commands}\label{contextmenucommands}%
441\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
442\setfooter{\thepage}{}{}{}{}{\thepage}%
443
444This section describes the context menu commands available when you right-click.
445On the Mac, this is achieved with control-click.
446
447\section{Configuration tree context menu}
448
449This menu is shown when you right-click over the configuration tree window background.
450On the Mac, this is achieved with control-click.
451
452\twocolwidtha{5cm}
453\begin{twocollist}\itemsep=0pt
454\twocolitem{{\bf Paste before this option}}{Pastes the clipboard option before the clicked-on option.}
455\twocolitem{{\bf Paste after this option}}{Pastes the clipboard option after the clicked-on option.}
456\twocolitem{{\bf Paste as child of this option}}{Pastes the clipboard option as a child of the clicked-on option,
457if it is a group option.}
458\twocolitem{\hrule}{\htmlonly{\hrule}}
459\twocolitem{{\bf C&opy}}{Copies the clicked-on option to the internal clipboard.}
460\twocolitem{{\bf Cu&t}}{Copies the clicked-on option to the internal clipboard, and
461deletes the option from the tree.}
462\end{twocollist}
463
464\chapter{Using toolbar commands}\label{toolbarcommands}%
465\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
466\setfooter{\thepage}{}{}{}{}{\thepage}%
467
468This section describes the toolbar commands.
469
470%\image{}{toolbar.gif}
471
472The toolbar provides quick access to commonly-used
473commands.
474
475\twocolwidtha{5cm}
476\begin{twocollist}\itemsep=0pt
477\twocolitem{\image{}{new.png}{\bf New Document}}{Creates a new document.}
478\twocolitem{\image{}{open.png}{\bf Open Document}}{Opens an existing document, closing the currently open document.}
479\twocolitem{\image{}{save.png}{\bf Save Document}}{Saves the current document.}
480\twocolitem{\hrule}{\htmlonly{\hrule}}
481\twocolitem{\image{}{undo.png}{\bf Undo}}{Undoes the last command.}
482\twocolitem{\image{}{redo.png}{\bf Redo}}{Redoes the last command.}
483\twocolitem{\hrule}{\htmlonly{\hrule}}
484\twocolitem{\image{}{copy.png}{\bf Copy}}{Copies the selected option to an internal clipboard.}
485\twocolitem{\image{}{cut.png}{\bf Cut}}{Cuts the selected option and copies it to the internal clipboard..}
486\twocolitem{\image{}{paste.png}{\bf Paste}}{Pastes the option from the clipboard to the configuration tree.}
487\twocolitem{\hrule}{\htmlonly{\hrule}}
488\twocolitem{\image{}{help.png}{\bf Help}}{Shows the wxWindows manual topic for the
489\twocolitem{\image{}{helpcs.png}{\bf Context Help}}{Shows a context-sensitive help
490cursor; click on a window to show brief help about that window.}
491selected configuration item.}
492\end{twocollist}
493
494\chapter{Using dialogs}\label{dialogs}%
495\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
496\setfooter{\thepage}{}{}{}{}{\thepage}%
497
498Most dialogs have a {\bf "?"} button on their caption to provide context-sensitive help.
499Click on this and then on a control
500in a dialog to get quick help on that control. You can also click on the {\bf Help} button
501for more detailed help on the dialog.
502
503\section{Settings dialog}\label{settingsdialog}
504
505This dialog has a number of tabs to allow you to
506edit different categories of settings that are applicable
507to the application as a whole.
508
509\subsection{General settings dialog}\label{generalapplicationsettingsdialog}
510
511The General Settings Dialog allows you to set a variety of \ctshortname options.
512
513\twocolwidtha{5cm}
514\begin{twocollist}\itemsep=0pt
515\twocolitem{{\bf Load last document on startup}}{If checked, the last viewed document will
516be reloaded when \ctshortname starts up.}
517% If the application terminated abnormally, this
518%option will be switched off the next time \ctshortname runs in case there was a problem with
519%the document file.}
520%\twocolitem{{\bf Auto-save document}}{If checked, \ctshortname will regularly
521%save the document to a temporary file. If \ctshortname or the operating system
522%should terminate abnormally, the next time \ctshortname is run it will
523%check for an auto-save file and ask if you wish to open that file.}
524%\twocolitem{{\bf Show welcome dialog on startup}}{If checked, the \helpref{Welcome Dialog}{welcomedialog} will
525%be shown on startup.}
526\twocolitem{{\bf Show tooltips}}{If checked, tooltips will be shown in most dialogs, when you hover
527the mouse pointer over a control.}
528\end{twocollist}
529
530\subsection{Location settings dialog}\label{locationsettingsdialog}
531
532The Location Settings Dialog allows you to choose various locations.
533
534\twocolwidtha{5cm}
535\begin{twocollist}\itemsep=0pt
536\twocolitem{{\bf wxWindows hierarchy}}{This determines where \ctshortname will look
537when prompting for filenames.}
538\twocolitem{{\bf Use WXWIN environment variable}}{Check this to use
539the value of the WXWIN variable instead of the path entered in the text field.}
540\end{twocollist}
541
542\chapter{Using keyboard shortcuts}\label{keyboardshortcuts}%
543\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
544\setfooter{\thepage}{}{}{}{}{\thepage}%
545
546You can make your \ctshortname experience even smoother by
547using handy keyboard shortcuts. Note that some shortcuts are
548dependent on context: that is, which control has the focus.
549
550\twocolwidtha{3cm}
551\begin{twocollist}\itemsep=0pt
552\twocolitem{{\bf Ctrl + C}}{Copies the selected option to the clipboard.}
553\twocolitem{{\bf Ctrl + H}}{Saves the setup.h file.}
554\twocolitem{{\bf Ctrl + G}}{Saves the configure script file.}
555\twocolitem{{\bf Ctrl + N}}{Creates a new \ctshortname file.}
556\twocolitem{{\bf Ctrl + O}}{Opens a \ctshortname file.}
557\twocolitem{{\bf Ctrl + S}}{Saves the current \ctshortname document.}
558\twocolitem{{\bf Ctrl + T}}{Shows the \helpref{Settings Dialog}{settingsdialog}.}
559\twocolitem{{\bf Ctrl + V}}{Pastes the option on the clipboard (if any) to the configuration tree.}
560\twocolitem{{\bf Ctrl + W}}{Closes the current \ctshortname document.}
561\twocolitem{{\bf Ctrl + X}}{Cuts the selected option and copies it to the clipboard.}
562\twocolitem{{\bf Ctrl + Y}}{Redoes the previously undone edit.}
563\twocolitem{{\bf Ctrl + Z}}{Undoes the previous edit.}
564\twocolitem{{\bf F1}}{Shows the online help for the selected item.}
565\twocolitem{{\bf Alt + F4}}{Closes \ctshortname.}
566\end{twocollist}
567
568\chapter{Reference}\label{reference}%
569\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
570\setfooter{\thepage}{}{}{}{}{\thepage}%
571
572\section{The dependency evaluation algorithm}
573
574\ctshortname pre-calculates a list of all dependencies
575for each option -- this is a kind of reverse-pointer version
576of all the dependencies associated with each item. So
577if option {\bf a} has a {\bf requires} option specifying
578{\bf b}, then {\bf b} will end up with a dependency list
579containing {\bf a} and any other options that refer to it.
580
581When the user enables or disables an option ({\bf b}),
582the list of dependencies for that option is visited,
583and for each mentioned option ({\bf a}), all its dependency information
584is evaluated. This may result in the option {\bf a} being
585(de)selected and perhaps deactivated (made insensitive).
586
587The results of this change are propagated to dependents of
588{\bf a}, recursively, so several options may flip state
589as the result of checking the original option.
590
591The parent-child relationship of a check or radio
592group and its children is considered to be a virtual
593'requires' dependency. Mutual exclusivity is also
594taken into account if the option is a radio option
595or group. For each radio option, all other mutually
596exclusive options need to be listed. See the
597{\bf Platform} group for an example of this.
598
599\section{How \ctshortname generates the configure commands}
600
601If the {\bf configure} property isn't empty,
602\ctshortname will output the string as a parameter
603to configure.
604
605The configure command is taken to be the command to
606use if the option is checked. If the option is
607unchecked, the 'enable' or 'with' is replaced with
608'disable' or 'without'.
609
610TODO: should we distinguish between the case
611where a setting is not passed to configure (using
612the default), versus the case where it's specified but disabled?
613It's probably a good idea to make all the options
614explicit, but on the other hand it makes for a very long
615command line.
616
617\ctshortname checks for the presence of a
618{\bf builtin} custom boolean property and appends 'builtin' or
619'sys' to the configure command depending on where
620the {\bf builtin} setting is checked or unchecked.
621We also allow for passing strings, e.g. for --with-rpath=DIR,
622by using the {\bf value} custom string property.
623
624\section{How \ctshortname generates the setup.h file}
625
626The {\bf Platforms} group is ignored. In all other
627cases, if the setting is prefixed by wxUSE_...
628and it's a boolean setting, \ctshortname will
629output 1 or 0 depending on the setting state.
630
631A few settings that don't have the wxUSE_...
632convention are also checked for and processed.
633
634
635\chapter{How To...}\label{howto}%
636\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
637\setfooter{\thepage}{}{}{}{}{\thepage}%
638
639A variety of topics to help you get the best from \ctshortname.
640
641\section{How to specify dependencies}\label{dependencies}
642
643To ensure consistency throughout the configuration,
644\ctshortname allows specification of dependencies, essentially
645a list of option names that should be considered in evaluating
646whether an option should be enabled or disabled. In addition,
647if the option is constrained to always be disabled
648or enabled in the current context, then it is greyed out
649(deactivated) to prevent the user from changing the state.
650
651There are four kinds of dependencies: requires, precludes,
652enabled-if, and enabled-if-not. Each one represents a
653relationship between the current option (a) and one
654or more named options (b). For the sake of argument
655we will consider only one other option, but multiple
656options are taken to mean (b1 or b2 or b3 or ...)
657Below the allowed combined states of a and b are
658listed for each kind of dependency.
659
6601. a {\bf requires} b
661
662For example, wxUSE_DRAG_AND_DROP requires wxUSE_OLE.
663
664\begin{verbatim}
665 a b
666
667 1 1
668 0 1
669 0 0
670\end{verbatim}
671
6722. a {\bf precludes} b
673
674For example, wxUSE_ODBC precludes wxUSE_UNICODE.
675
676\begin{verbatim}
677 a b
678
679 1 0
680 0 0
681 0 1
682\end{verbatim}
683
684
6853. a {\bf enabled-if} b
686
687For example, __WXUNIVERSAL__ enabled-if X11 or MGL
688
689\begin{verbatim}
690 a b
691
692 1 1
693 1 0
694 0 0
695\end{verbatim}
696
6974. a {\bf enabled-if-not} b
698
699For example, wxUSE_TOOLBAR_SIMPLE enabled-if-not wxUSE_TOOLBAR_NATIVE.
700
701\begin{verbatim}
702 a b
703
704 1 0
705 0 1
706 1 1
707\end{verbatim}
708
709\section{How to specify platform-specific dependencies}\label{platformdependencies}
710
711You can associate one or more options as part of the
712option's {\bf context}. In the case of wxUSE_OLE,
713the context contains __WXMSW__, because it's a Windows-specific
714option. This is used when calculating dependencies, as
715follows. If either option involved in a dependency
716relationship is not part of the current context, that
717is, none of the options in its {\bf context} property is currently
718enabled, then it is ignored in the dependency calculation.
719
720This allows the dependency 'wxUSE_DRAG_AND_DROP requires wxUSE_OLE'
721to only be evaluated when __WXMSW__ is enabled.
722
723It doesn't quite cover all bases, however, because
724it cannot express that the {\it dependency} itself
725is platform specific. You might have a platform-specific
726dependency that exists between two options that are
727perfectly valid for any platform. For example, we
728can't capture the notion that wxUSE_LISTBOX
729should be required if wxUSE_COMBOBOX is set,
730but only for __WXUNIVERSAL__. We could do it
731by complicating the dependency syntax, for example:
732
733wxUSE_COMBOBOX requires wxUSE_LISTBOX:__WXUNIVERSAL__
734
735This means that the dependency should only be
736evaluated if __WXUNIVERSAL__ is enabled.
737This has not been implemented yet.
738
739\section{How to specify custom properties}\label{customproperties}
740
741You can add custom properties to any option, but
742currently only {\bf option} and {\bf value} are
743recognised by \ctshortname.
744
745\ctshortname checks for the presence of a
746{\bf builtin} boolean custom property and appends 'builtin' or
747'sys' to the configure command depending on where
748the {\bf builtin} setting is checked or unchecked.
749We also allow for passing strings, e.g. for --with-rpath=DIR,
750by using the {\bf value} string custom property.
751
752\begin{comment}
753
754\begin{helpglossary}
755
756\gloss{thing}\label{thing}
757
758A glossary entry.
759
760\end{helpglossary}
761\end{comment}
762
763\rtfonly{%
764\addcontentsline{toc}{chapter}{Index}
765\printindex%
766\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}%
767\setfooter{\thepage}{}{}{}{}{\thepage}%
768}
769\winhelponly{
770\chapter{Popups}\label{popups}
771
772} % WinHelp only
773
774\end{document}