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