]> git.saurik.com Git - wxWidgets.git/blame - docs/html/wxbook.htm
added a few useful utility classes: MemoryHDC and SelectInHDC
[wxWidgets.git] / docs / html / wxbook.htm
CommitLineData
bed9b806
JS
1<HTML>
2
3<HEAD>
4<TITLE>wxWindows Book</TITLE>
5</HEAD>
6
7<BODY BGCOLOR=#FFFFFF TEXT=#000000 LINK=#FF0000 VLINK=#000000>
8
9<font face="Arial, Lucida Sans, Helvetica">
10
f6bcfd97 11<table width=100% border=0 cellpadding=5 cellspacing=0>
bed9b806 12<tr>
f6bcfd97
BP
13<td bgcolor="#C4ECF9">
14<font size=+1 face="Arial, Lucida Sans, Helvetica" color="#000000">
bed9b806
JS
15wxWindows Book
16</font>
17</td>
18</tr>
19</table>
20
21<P>
22
23<center>
24<a href="#about">About</a> |
25<a href="#participants">Participants</a> |
26<a href="#publication">Publication</a> |
9ec98f7c 27<!-- <a href="#suggestions">Suggestions</a> | -->
bed9b806 28<a href="#format">Format</a> |
9ec98f7c
JS
29<a href="#style">Style guide</a> |
30<a href="#titles">Titles</a> |
bed9b806
JS
31<a href="#contents">Contents</a>
32</center>
33
9ec98f7c 34<p>
bed9b806 35<hr>
9ec98f7c 36<p>
bed9b806
JS
37
38<H3><a name="about">About the wxWindows book</a></H3>
39
9ec98f7c
JS
40August 2000: the 'wxBook' project is getting going again,
41with a good response from potential contributors.<P>
42
43Robin Dunn has set up a <a href="http://wxwindows.org/mailman/listinfo/wxbook">wxBook mailing list</a>.<P>
44
45The book will comprise 30 or so chapters dealing with progressively
46more advanced areas of wxWindows; each chapter will be as stand-alone as
47possible. The book will
ad90972f
JS
48not include the API reference, though this could be a
49separate project. The book will be accompanied by a CD-ROM with
9ec98f7c 50wxWindows and its documentation. It will initially be
ad90972f
JS
51available on-line, and when enough is done we will look for a
52publisher.<P>
53
54There will also be a separate small booklet which can easily be printed
55out and which gives an overview of wxWindows facilities by taking
56the reader through a single worked example. Guillermo Rodriguez
57Garcia has volunteered to write this, and will use his Life!
58demo to illustrate it.<P>
bed9b806
JS
59
60Goals for the book:<P>
61
62<ol>
63<li> to allow users to become accomplished wxWindows developers rapidly;
64<li> to be useful over a longer period than just the first few weeks, since
65there are a lot of complex areas to address and not all features will be
66used up-front in a project;
67<li> to promote wxWindows to a wider audience;
68<li> to make at least some money for the authors.
69</ol>
70
71<P>
72
73Audience: beginners + experienced wxWindows users, but with reasonable C++
74knowledge.<P>
75
76It is suggested that any financial return from the book be allocated on a points system,
77with a predefined number of points for chapters, indexing, editing, proof-reading etc.<P>
78
9ec98f7c 79<p>
bed9b806 80<hr>
9ec98f7c 81<p>
bed9b806
JS
82
83<H3><a name="participants">Participants</a></H3>
84
85So far, the following people are interested in taking part in this project:<P>
86
87<ul>
ad90972f
JS
88<li><a href="mailto:julian.smart@ukonline.co.uk">Julian Smart</a> -
89editor and coordinator of the project; introductory chapter, some other
90chapters.
91<li><a href="mailto:guille@iies.es">Guillermo Rodriguez Garcia</a> - Separate tutorial booklet;
92communication classes (wxSocket, wxXXXServer, some protocol stuff); timing and timers.
93<li><a href="mailto:robin@alldunn.com">Robin Dunn</a> - wxPython chapter.
94</i>
9ec98f7c
JS
95<li><a href="mailto:zeitlin@dptmaths.ens-cachan.fr">Vadim Zeitlin</a> - drag and drop, several other chapters.
96<li><a href="mailto:roebling@uni-freiburg.de">Robert Roebling</a> - not known.
ad90972f
JS
97<li><a href="mailto:slavik2@czn.cz">Vaclav Slavik</a> - wxHTML section.
98<li><a href="mailto:gtasker@fastpicsystems.com">George Tasker</a> - database chapter.
99<li><a href="mailto:moreno@mochima.com">Carlos Moreno</a> - wxImage, wxBitmap.
100<li><a href="mailto:Shiv@pspl.co.in">Shiv Shankar Ramakrishnan</a> - wxWindows advocacy, convincing your manager,
101container classes and strings, comparison with STL
102<li><a href="mailto:markusneifer@my-Deja.com">Markus Neifer</a> - user-defined events.
103
104<!--
105<li><a href="mailto:csomor@advancedconcepts.ch">Stefan Csomor</a>. The sequence of events i.e. which action provokes which event sequence,
106this is implicit for the use on MSW, but very important for other systems; and porting to new platforms
107-->
108<!--
bed9b806 109<li><a href="mailto:tomr@scitechsoft.com">Tom Ryan</a>, SciTech Software.
ad90972f
JS
110-->
111<!--
112<li><a href="mailto:karsten@phy.hw.ac.uk">Karsten Ballueder</a>. Short tutorials on some useful
113GNU tools, like autoconf/configure/make, programming
114strategies, etc.
115-->
116<!--
bed9b806
JS
117<li><a href="mailto:mheck@www.surveyorcorp.com">Matt Heck</a>, SurveyorCorp Inc.
118<i>
119<ol>
120 <li>a case study of how and why we've used wxWindows at Surveyor Corp., and
121 how it's worked out so far;
122 <li>an appendix something similar about how to use wxLIVID for video capture and display;
123 <li>proofreading
124</ol>
ad90972f 125-->
bed9b806
JS
126</ul>
127
9ec98f7c
JS
128<P>
129Others welcome! Please contact <a href="mailto:julian.smart@ukonline.co.uk">Julian Smart</a>
130if you would like to contribute.
131
132<p>
bed9b806 133<hr>
9ec98f7c 134<p>
bed9b806
JS
135
136<H3><a name="publication">Publication</a></H3>
137
9ec98f7c
JS
138We wll investigate publishers, especially O'Reilly. We will have to get together
139several sample chapters to convince a publisher that the many-author approach will
140work.<P>
ad90972f
JS
141
142<!--
bed9b806
JS
143Tom Ryan originally wrote:<P>
144
145<PRE>
146Hi Guys,
147
148I just wanted to let you know that I have spoken with officials here
149at California State University, Chico and they are potentially
150interested in publishing a book on wxWindows! A wxWindows
151book would give wxWindows a great deal of exposure.
152
153These discussions came out of the fact that CSUC wanted to
154switch from MFC to wxWindows in their GUI programming classes,
155but there was not a book available for students to work with.
156
157I was thinking that the first edition could be primarily the reference
158documentation combined with a basic wxTutorial and examples. In
159this case, it would be fairly straightforward to get something out
160initially and then we could take it from there.
161</PRE>
162
163<p>
164
165<a href="mailto:benles@powernet.net">Ben Allfree</a> has also expressed an interest
166in publishing a wxWindows book, and distributing it via Amazon. Ben was thinking
167in terms of a quickie job using the existing reference manual.<P>
168
169Another publishing name to think of is O'Reilly. They would probably give us a lot
170of guidance for style, formatting, etc.<P>
171
c7527e3f
JS
172<a href="mailto:Roald.Ribe@winlink.no">Roald Ribe</a> writes:
173"<a href="http://www.bruceeckel.com/javabook.html" target=_new>Thinking in Java</a>
174is published both as a PDF for internet (by the author) and in print by Prentice Hall."<P>
bed9b806 175
ad90972f 176-->
9ec98f7c
JS
177
178<P>
bed9b806 179<hr>
9ec98f7c
JS
180<P>
181
182<!--
bed9b806
JS
183
184<H3><a name="suggestions">Suggestions and comments</a></H3>
185
186<ul>
187<li>Chapter on converting from MFC. (Julian Smart)
188<li>A chapter on why some inconsistencies are almost always going to show up in a
189multiplatform toolkit, how to avoid them, how to deal with when you have
190no choice, and (if wxBook explains the internals or philosophy of
191wxWindows at all) how wxWindows attempts to minimize the number we
192encounter. (Matt Heck)
193<li>Creating the shortest possible path to writing "Hello World" from scratch in wxWindows. (Matt Heck)
194<li>How will royalties for subsequent editions be shared out? (Tom Ryan)
195<li>"My personal feeling is that this project will wind up being developed
196by a small team, led by an editor that will wind up doing about half
197of the total amount of work." (Tom Ryan)
198</ul>
199
9ec98f7c
JS
200<P>
201<hr>
202<P>
203-->
204
205<H3><a name="format">File format</a></H3>
206
207Possible formats:
208
209<ul>
210<li>Word
211<li><a href="http://www.abisource.com" target=_top>Abiword</a>: possibly not developed enough yet, but
212it can output Latex which would make conversion to Tex2RTF format quite simple
213<li>Latex: favoured format so far. The LyX near-WYSIWYG word processor (Unix only) can output Latex.
214See also <a href="http://www.esat.kuleuven.ac.be/~minten/NTTeXing/NTTeXing.html" target=_top>NTTex</a>
215which uses EMACS as an editor. For an introduction to Latex, see <a href="ftp://ftp.tex.ac.uk/tex-archive/info/lshort" target=_top>here</a>.
216A free TeX for Windows: see <a href="http://www.miktex.org/" target=_top>MikTex</a>. More TeX info: <a href="http://www.tug.org/" target=_top>TUG</a>.
217<li>XML: hard to read/write
218<li>SGML: ditto
219<li>DocBook: don't have any information about this, but <a href="http://www.LinuxNinja.com/linux-admin/" target=_top>Linux Admin Made Easy</a>
220uses it.
221<li><a href="http://www.zope.org//Members/jim/StructuredTextWiki/StructuredTextNG" target=_top>Structured text</a> -
222plain text with indentation and other elements to provide structure. The tools seem under-developed and there
223doesn't seem to be a simple way of getting them without using the CVS Zope archive.
224<li>troff - favoured by O'Reilly
225</ul>
226
227<P>
bed9b806 228<hr>
9ec98f7c 229<P>
bed9b806 230
9ec98f7c 231<H3><a name="style">Style guide</a></H3>
bed9b806 232
9ec98f7c 233We should write a style and formatting guide.<P>
bed9b806 234
9ec98f7c 235<P>
bed9b806 236<hr>
9ec98f7c
JS
237<P>
238
239<H3><a name="titles">Book Titles</a></H3>
240
241It would be good to include certain buzzwords such as Linux and open source, to get
242a publisher's (and the potential reader's) attention. The trick is to do that and
243not narrow the scope unduly.<P>
244
245Suggestions for the main book:<P>
246
247<ul>
248<li>Multiplatform GUI development with wxWindows
249<li>wxWindows: an open source multiplatform toolkit
250<li>wxWindows: GUI development for Linux and other platforms
251</ul>
252
253<P>
254Other book titles that a publisher might be interested (but would be distinct projects):<P>
255
256<ul>
257<li>Writing GTK+ Application Using wxWindows
258<li>Migrating MFC Apps to Linux Using wxWindows
259</ul>
260
261<P>
262<hr>
263<P>
bed9b806
JS
264
265<H3><a name="contents">Contents</a></H3>
266
9ec98f7c 267The following is open to discussion.<P>
bed9b806 268
9ec98f7c
JS
269<ul>
270<li>Chapter 01: Introduction to wxWindows: history, advocacy, future developments
271<li>Chapter 02: Installing wxWindows (and what tools to use)
272<li>Chapter 03: C++ and wxWindows. Summarises the sorts of constructs used/not used, plus wxString class,
273some conventions. Vadim suggests putting it in 1st chapter but I think it deserves a chapter of its own.
274<li>Chapter 04: Getting started: Hello World. Introduces app class, frames, menus, status bar, message box
275<li>Chapter 05: Basic event handling
276<li>Chapter 06: Frames and menubars. The components of a frame, menubars.
277<li>Chapter 07: Toolbars and status bars
278<li>Chapter 08: Basic controls
279<li>Chapter 09: Common dialogs
280<li>Chapter 10: Custom dialogs and resources (XML + WXR)
281<li>Chapter 11: Drawing on device contexts
282<li>Chapter 12: Handling input (mouse, keyboard, joystick)
283<li>Chapter 14: Sizers
284<li>Chapter 15: Images and bitmaps
285<li>Chapter 16: Clipboard and drag and drop
286<li>Chapter 17: Advanced controls (list,tree,notebook,splitter,wxWizard,wxCalCtrl...)
287<li>Chapter 18: Document/view classes
288<li>Chapter 19: Scrolling
289<li>Chapter 20: MDI
290<li>Chapter 21: Printing
291<li>Chapter 22: Providing help in your applications
292<li>Chapter 23: Strings and internationalization
6342bd1a
JS
293<li>Chapter 24: Collection and container classes
294<li>Chapter 25: Memory management and debugging (including wxLog)
295<li>Chapter 26: Run-time class information
296<li>Chapter 27: Advanced event handling (user-defined events, ...)
297<li>Chapter 28: Communication classes, including wxSocket
298<li>Chapter 29: Database classes
299<li>Chapter 30: File and stream classes
300<li>Chapter 31: Configuration classes
301<li>Chapter 32: Time, timers and idle processing
302<li>Chapter 33: Writing multithreading applications
303<li>Chapter 34: Perfecting your UI (Adapting to system settings, accelerators, ...)
304<li>Chapter 35: Platform-specific programming (metafiles, OLE automation, taskbar, ...)
305<li>Chapter 36: Using wxHTML
306<li>Chapter 37: Using wxPython
307<li>Chapter 38: wxBase?
9ec98f7c
JS
308<li>Appendix: Comparison with other toolkits: MFC, Qt etc.
309</ul>
bed9b806
JS
310
311</font>
312
313</BODY>
314
315</HTML>