]> git.saurik.com Git - wxWidgets.git/blob - docs/html/wxbook.htm
added a few useful utility classes: MemoryHDC and SelectInHDC
[wxWidgets.git] / docs / html / wxbook.htm
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
11 <table width=100% border=0 cellpadding=5 cellspacing=0>
12 <tr>
13 <td bgcolor="#C4ECF9">
14 <font size=+1 face="Arial, Lucida Sans, Helvetica" color="#000000">
15 wxWindows 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> |
27 <!-- <a href="#suggestions">Suggestions</a> | -->
28 <a href="#format">Format</a> |
29 <a href="#style">Style guide</a> |
30 <a href="#titles">Titles</a> |
31 <a href="#contents">Contents</a>
32 </center>
33
34 <p>
35 <hr>
36 <p>
37
38 <H3><a name="about">About the wxWindows book</a></H3>
39
40 August 2000: the 'wxBook' project is getting going again,
41 with a good response from potential contributors.<P>
42
43 Robin Dunn has set up a <a href="http://wxwindows.org/mailman/listinfo/wxbook">wxBook mailing list</a>.<P>
44
45 The book will comprise 30 or so chapters dealing with progressively
46 more advanced areas of wxWindows; each chapter will be as stand-alone as
47 possible. The book will
48 not include the API reference, though this could be a
49 separate project. The book will be accompanied by a CD-ROM with
50 wxWindows and its documentation. It will initially be
51 available on-line, and when enough is done we will look for a
52 publisher.<P>
53
54 There will also be a separate small booklet which can easily be printed
55 out and which gives an overview of wxWindows facilities by taking
56 the reader through a single worked example. Guillermo Rodriguez
57 Garcia has volunteered to write this, and will use his Life!
58 demo to illustrate it.<P>
59
60 Goals 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
65 there are a lot of complex areas to address and not all features will be
66 used 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
73 Audience: beginners + experienced wxWindows users, but with reasonable C++
74 knowledge.<P>
75
76 It is suggested that any financial return from the book be allocated on a points system,
77 with a predefined number of points for chapters, indexing, editing, proof-reading etc.<P>
78
79 <p>
80 <hr>
81 <p>
82
83 <H3><a name="participants">Participants</a></H3>
84
85 So far, the following people are interested in taking part in this project:<P>
86
87 <ul>
88 <li><a href="mailto:julian.smart@ukonline.co.uk">Julian Smart</a> -
89 editor and coordinator of the project; introductory chapter, some other
90 chapters.
91 <li><a href="mailto:guille@iies.es">Guillermo Rodriguez Garcia</a> - Separate tutorial booklet;
92 communication classes (wxSocket, wxXXXServer, some protocol stuff); timing and timers.
93 <li><a href="mailto:robin@alldunn.com">Robin Dunn</a> - wxPython chapter.
94 </i>
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.
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,
101 container 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,
106 this is implicit for the use on MSW, but very important for other systems; and porting to new platforms
107 -->
108 <!--
109 <li><a href="mailto:tomr@scitechsoft.com">Tom Ryan</a>, SciTech Software.
110 -->
111 <!--
112 <li><a href="mailto:karsten@phy.hw.ac.uk">Karsten Ballueder</a>. Short tutorials on some useful
113 GNU tools, like autoconf/configure/make, programming
114 strategies, etc.
115 -->
116 <!--
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>
125 -->
126 </ul>
127
128 <P>
129 Others welcome! Please contact <a href="mailto:julian.smart@ukonline.co.uk">Julian Smart</a>
130 if you would like to contribute.
131
132 <p>
133 <hr>
134 <p>
135
136 <H3><a name="publication">Publication</a></H3>
137
138 We wll investigate publishers, especially O'Reilly. We will have to get together
139 several sample chapters to convince a publisher that the many-author approach will
140 work.<P>
141
142 <!--
143 Tom Ryan originally wrote:<P>
144
145 <PRE>
146 Hi Guys,
147
148 I just wanted to let you know that I have spoken with officials here
149 at California State University, Chico and they are potentially
150 interested in publishing a book on wxWindows! A wxWindows
151 book would give wxWindows a great deal of exposure.
152
153 These discussions came out of the fact that CSUC wanted to
154 switch from MFC to wxWindows in their GUI programming classes,
155 but there was not a book available for students to work with.
156
157 I was thinking that the first edition could be primarily the reference
158 documentation combined with a basic wxTutorial and examples. In
159 this case, it would be fairly straightforward to get something out
160 initially 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
166 in publishing a wxWindows book, and distributing it via Amazon. Ben was thinking
167 in terms of a quickie job using the existing reference manual.<P>
168
169 Another publishing name to think of is O'Reilly. They would probably give us a lot
170 of guidance for style, formatting, etc.<P>
171
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>
174 is published both as a PDF for internet (by the author) and in print by Prentice Hall."<P>
175
176 -->
177
178 <P>
179 <hr>
180 <P>
181
182 <!--
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
189 multiplatform toolkit, how to avoid them, how to deal with when you have
190 no choice, and (if wxBook explains the internals or philosophy of
191 wxWindows at all) how wxWindows attempts to minimize the number we
192 encounter. (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
196 by a small team, led by an editor that will wind up doing about half
197 of the total amount of work." (Tom Ryan)
198 </ul>
199
200 <P>
201 <hr>
202 <P>
203 -->
204
205 <H3><a name="format">File format</a></H3>
206
207 Possible 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
212 it 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.
214 See also <a href="http://www.esat.kuleuven.ac.be/~minten/NTTeXing/NTTeXing.html" target=_top>NTTex</a>
215 which 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>.
216 A 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>
220 uses it.
221 <li><a href="http://www.zope.org//Members/jim/StructuredTextWiki/StructuredTextNG" target=_top>Structured text</a> -
222 plain text with indentation and other elements to provide structure. The tools seem under-developed and there
223 doesn'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>
228 <hr>
229 <P>
230
231 <H3><a name="style">Style guide</a></H3>
232
233 We should write a style and formatting guide.<P>
234
235 <P>
236 <hr>
237 <P>
238
239 <H3><a name="titles">Book Titles</a></H3>
240
241 It would be good to include certain buzzwords such as Linux and open source, to get
242 a publisher's (and the potential reader's) attention. The trick is to do that and
243 not narrow the scope unduly.<P>
244
245 Suggestions 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>
254 Other 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>
264
265 <H3><a name="contents">Contents</a></H3>
266
267 The following is open to discussion.<P>
268
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,
273 some 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
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?
308 <li>Appendix: Comparison with other toolkits: MFC, Qt etc.
309 </ul>
310
311 </font>
312
313 </BODY>
314
315 </HTML>