\input chap\_wxpython.tex % Chapter 37: Using wxPython
\input chap\_wxbase.tex % Chapter 38: wxBase?
\input chap\_comparison.tex % Appendix: Comparison with other toolkits: MFC, Qt etc.
+\input chap\_resources.tex % Appendix: a compendium of external resources, libraries etc.
\bibliography{refs}
\addcontentsline{toc}{chapter}{Bibliography}
--- /dev/null
+\chapter{Advanced controls}\label{chapadvancedcontrols}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: ADVANCED CONTROLS}}{}{}{}{}{{\it CHAPTER \thechapter: ADVANCED CONTROLS}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+This chapter looks at the following advanced wxWindows controls:
+
+\begin{itemize}\itemsep=0pt
+\item wxListCtrl
+\item wxTreeCtrl
+\item wxNotebook
+\item wxSplitterWindow
+\item wxSashWindow
+\item wxWizard
+\item wxCalCtrl
+\end{itemize}
+
--- /dev/null
+\chapter{Advanced event handling}\label{chapadvancedevents}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: ADVANCED EVENT HANDLING}}{}{}{}{}{{\it CHAPTER \thechapter: ADVANCED EVENT HANDLING}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+This chapter explores the wxWindows event system in more detail, and shows you how to
+create your own event classes.
+
--- /dev/null
+\chapter{Basic controls}\label{chapbasiccontrols}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: BASIC CONTROLS}}{}{}{}{}{{\it CHAPTER \thechapter: BASIC CONTROLS}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+This chapter deals with the most fundamental controls (or widgets) that you will use in your
+application.
+
--- /dev/null
+\chapter{Basic event handling}\label{chapbasicevents}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: BASIC EVENT HANDLING}}{}{}{}{}{{\it CHAPTER \thechapter: BASIC EVENT HANDLING}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+In which Pooh and Piglet come upon the sticky topic of event handling, and ask Owl to help.
+
--- /dev/null
+\chapter{The clipboard and drag-and-drop}\label{chapclipboard}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: THE CLIPBOARD AND DRAG-AND-DROP}}{}{}{}{}{{\it CHAPTER \thechapter: THE CLIPBOARD AND DRAG-AND-DROP}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+In which the murky workings of data transfer are ably described by One Who Knows.
+
--- /dev/null
+\chapter{Common dialogs}\label{commondialogs}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: COMMON DIALOGS}}{}{}{}{}{{\it CHAPTER \thechapter: COMMON DIALOGS}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+In which common dialogs, such as file and colour selectors, are described.
+
--- /dev/null
+\chapter{Interprocess communication}\label{chapcomms}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: INTERPROCESS COMMUNICATION}}{}{}{}{}{{\it CHAPTER \thechapter: INTERPROCESS COMMUNICATION}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+wxSocket, wxIPC, protocols...
+
--- /dev/null
+\chapter{Comparison with other toolkits}\label{chapcomparison}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: COMPARISON WITH OTHER TOOLKITS}}{}{}{}{}{{\it CHAPTER \thechapter: COMPARISON WITH OTHER TOOLKITS}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+In which we show the world how wonderful wxWindows is compared with the competition. But ever so modestly.
+
+Actually, this chapter should be full of helpful tips for converting one's knowledge/apps from other toolkits
+such as MFC.
+
--- /dev/null
+\chapter{Handling application settings with wxConfig}\label{chapconfig}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: HANDLING APPLICATION SETTINGS}}{}{}{}{}{{\it CHAPTER \thechapter: HANDLING APPLICATION SETTINGS}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+Using the wxConfig family of classes to save and restore application settings.
+
--- /dev/null
+\chapter{wxWindows and C++}\label{chapcpp}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: wxWINDOWS AND C++}}{}{}{}{}{{\it CHAPTER \thechapter: wxWINDOWS AND C++}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+What kind of C++ constructs wxWindows uses and doesn't use, and a little introduction to
+some important classes such as wxString. Why STL isn't used within wxWindows.
+
--- /dev/null
+\chapter{Custom dialogs and resources}\label{chapcustomdialogs}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: CUSTOM DIALOGS AND RESOURCES}}{}{}{}{}{{\it CHAPTER \thechapter: CUSTOM DIALOGS AND RESOURCES}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+wxDialog introduced, and how XML resources work.
+
--- /dev/null
+\chapter{Data classes}\label{chapdataclasses}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: DATA CLASSES}}{}{}{}{}{{\it CHAPTER \thechapter: DATA CLASSES}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+Important collection and container classes in wxWindows.
+
--- /dev/null
+\chapter{Working with databases}\label{chapdatabase}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: WORKING WITH DATABASES}}{}{}{}{}{{\it CHAPTER \thechapter: WORKING WITH DATABASES}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+Using databases in wxWindows. This chapter mainly covers the wxDb ODBC classes, but should also
+mention other cross-platform libraries such as Xbase. And perhaps a quick mention of wxExpr for very simple
+data storage needs.
+
--- /dev/null
+\chapter{The document view framework}\label{chapdocview}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: THE DOCUMENT VIEW FRAMEWORK}}{}{}{}{}{{\it CHAPTER \thechapter: THE DOCUMENT VIEW FRAMEWORK}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+This chapter describes the document/view framework and in what situations it can be useful.
+
--- /dev/null
+\chapter{Drawing on device contexts}\label{chapdrawing}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: DRAWING ON DEVICE CONTEXTS}}{}{}{}{}{{\it CHAPTER \thechapter: DRAWING ON DEVICE CONTEXTS}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+Device contexts, a great abstraction...
+
--- /dev/null
+\chapter{Working with files and streams}\label{chapfilestream}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: WORKING WITH FILES AND STREAMS}}{}{}{}{}{{\it CHAPTER \thechapter: WORKING WITH FILES AND STREAMS}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+All about the file and stream handling facilities in wxWindows.
+
--- /dev/null
+\chapter{Working with frames}\label{chapframes}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: WORKING WITH FRAMES}}{}{}{}{}{{\it CHAPTER \thechapter: WORKING WITH FRAMES}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+The humble wxFrame, menubars, etc. Should the toolbar chapter be merged with this one?
+
--- /dev/null
+\chapter{Getting started}\label{gettingstarted}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: GETTING STARTED}}{}{}{}{}{{\it CHAPTER \thechapter: GETTING STARTED}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+Getting started: Hello World. Introduces app class, frames, menus, status bar, message box.
+
--- /dev/null
+\chapter{Adding online help to your application}\label{chaphelp}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: ADDING ONLINE HELP TO YOUR APPLICATION}}{}{}{}{}{{\it CHAPTER \thechapter: ADDING ONLINE HELP TO YOUR APPLICATION}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+The varieties of help you can add to your masterwork.
+
--- /dev/null
+\chapter{Images and bitmaps}\label{chapimages}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: IMAGES AND BITMAPS}}{}{}{}{}{{\it CHAPTER \thechapter: IMAGES AND BITMAPS}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+wxImage and wxBitmap unravelled.
+
--- /dev/null
+\chapter{Handling input}\label{chapinput}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: HANDLING INPUT}}{}{}{}{}{{\it CHAPTER \thechapter: HANDLING INPUT}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+Handling input from keyboard, mouse and joystick.
+
--- /dev/null
+\chapter{Installing wxWindows}\label{chapinstall}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: INSTALLING wxWINDOWS}}{}{}{}{}{{\it CHAPTER \thechapter: INSTALLING wxWINDOWS}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+Installing wxWindows (and what tools to use).
+
--- /dev/null
+\chapter{Introducing wxWindows}\label{chapintro}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: INTRODUCING wxWINDOWS}}{}{}{}{}{{\it CHAPTER \thechapter: INTRODUCING wxWINDOWS}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+Introduction, advocacy, etc.
+
--- /dev/null
+\chapter{The multiple document interface}\label{chapmdi}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: MDI}}{}{}{}{}{{\it CHAPTER \thechapter: MDI}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+MDI.
+
--- /dev/null
+\chapter{Memory management and debugging}\label{chapdebug}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: MEMORY MANAGEMENT AND DEBUGGING}}{}{}{}{}{{\it CHAPTER \thechapter: MEMORY MANAGEMENT AND DEBUGGING}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+Memory management, debugging, wxLog, ...
+
--- /dev/null
+\chapter{Multithreading your application}\label{chapmultithreading}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: MULTITHREADING YOUR APPLICATION}}{}{}{}{}{{\it CHAPTER \thechapter: MULTITHREADING YOUR APPLICATION}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+Multithreading.
+
--- /dev/null
+\chapter{Perfecting your application}\label{chapperfecting}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: PERFECTING YOUR APPLICATION}}{}{}{}{}{{\it CHAPTER \thechapter: PERFECTING YOUR APPLICATION}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+Finishing touches: UI update, splash screen, about box, managing registration, help files (see specific chapter),
+making an installation.
+
--- /dev/null
+\chapter{Platform-specific classes}\label{chapplatform}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: PLATFORM-SPECIFIC CLASSES}}{}{}{}{}{{\it CHAPTER \thechapter: PLATFORM-SPECIFIC CLASSES}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+Metafiles, OLE automation, GNOME integration, taskbar, ...
+
--- /dev/null
+\chapter{Adding printing to your application}\label{chapprinting}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: ADDING PRINTING TO YOUR APPLICATION}}{}{}{}{}{{\it CHAPTER \thechapter: ADDING PRINTING TO YOUR APPLICATION}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+The joys of printing.
+
--- /dev/null
+\chapter{Further resources}\label{chapresources}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: FURTHER RESOURCES}}{}{}{}{}{{\it CHAPTER \thechapter: FURTHER RESOURCES}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+A compendium of external resources, such as:
+
+\begin{itemize}\itemsep=0pt
+\item \urlref{wxTTS}{http://www.anthemion.co.uk/code.htm}
+\item Xbase
+\end{itemize}
+
--- /dev/null
+\chapter{Using run-time class information}\label{chapruntime}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: USING RUN-TIME CLASS INFORMATION}}{}{}{}{}{{\it CHAPTER \thechapter: USING RUN-TIME CLASS INFORMATION}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+CLASSINFO and friends.
+
--- /dev/null
+\chapter{Managing scrolling}\label{chapscrolling}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: MANAGING SCROLLING}}{}{}{}{}{{\it CHAPTER \thechapter: MANAGING SCROLLING}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+Scrolling can be hard. Here's how to do it.
+
--- /dev/null
+\chapter{Working with sizers}\label{chapsizers}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: WORKING WITH SIZERS}}{}{}{}{}{{\it CHAPTER \thechapter: WORKING WITH SIZERS}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+wxSizer and friends.
+
--- /dev/null
+\chapter{The wxString class}\label{chapstrings}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: THE wxSTRING CLASS}}{}{}{}{}{{\it CHAPTER \thechapter: THE wxSTRING CLASS}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+A rather important class explained, together with how internationalisation works.
+
--- /dev/null
+\chapter{Time, timers and idle processing}\label{chaptime}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: TIME, TIMERS AND IDLE PROCESSING}}{}{}{}{}{{\it CHAPTER \thechapter: TIME, TIMERS AND IDLE PROCESSING}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+Time, timers and idle processing.
+
--- /dev/null
+\chapter{Working with toolbars}\label{chaptoolbars}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: WORKING WITH TOOLBARS}}{}{}{}{}{{\it CHAPTER \thechapter: WORKING WITH TOOLBARS}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+Working with toolbars.
+
--- /dev/null
+\chapter{wxBase: wxWindows without the GUI}\label{chapwxbase}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: wxBASE: wxWINDOWS WITHOUT THE GUI}}{}{}{}{}{{\it CHAPTER \thechapter: wxBASE: wxWINDOWS WITHOUT THE GUI}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+All about wxBase.
+
--- /dev/null
+\chapter{Working with the HTML classes}\label{chapwxhtml}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: WORKING WITH THE HTML CLASSES}}{}{}{}{}{{\it CHAPTER \thechapter: WORKING WITH THE HTML CLASSES}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+The coolness of wxHTML.
+
--- /dev/null
+\chapter{An introduction to wxPython}\label{chapwxpython}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter: AN INTRODUCTION TO wxPYTHON}}{}{}{}{}{{\it CHAPTER \thechapter: AN INTRODUCTION TO wxPYTHON}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+wxPython.
+