4 <TITLE>wxWindows Book
</TITLE> 
   7 <BODY BGCOLOR=#FFFFFF TEXT=#
000000 LINK=#FF0000 VLINK=#
000000> 
   9 <font face=
"Arial, Lucida Sans, Helvetica"> 
  11 <table width=
100% border=
0 cellpadding=
5 cellspacing=
0> 
  13 <td bgcolor=
"#C4ECF9"> 
  14 <font size=+
1 face=
"Arial, Lucida Sans, Helvetica" color=
"#000000"> 
  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> 
  38 <H3><a name=
"about">About the wxWindows book
</a></H3> 
  40 August 
2000: the 'wxBook' project is getting going again,
 
  41 with a good response from potential contributors.
<P> 
  43 Robin Dunn has set up a 
<a href=
"http://wxwindows.org/mailman/listinfo/wxbook">wxBook mailing list
</a>.
<P> 
  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
 
  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> 
  60 Goals for the book:
<P> 
  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.
 
  73 Audience: beginners + experienced wxWindows users, but with reasonable C++
 
  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> 
  83 <H3><a name=
"participants">Participants
</a></H3> 
  85 So far, the following people are interested in taking part in this project:
<P> 
  88 <li><a href=
"mailto:julian.smart@ukonline.co.uk">Julian Smart
</a> -
 
  89 editor and coordinator of the project; introductory chapter, some other
 
  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.
 
  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.
 
 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 
 109 <li><a href="mailto:tomr@scitechsoft.com">Tom Ryan</a>, SciTech Software. 
 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 
 117 <li><a href="mailto:mheck@www.surveyorcorp.com">Matt Heck</a>, SurveyorCorp Inc. 
 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; 
 129 Others welcome! Please contact 
<a href=
"mailto:julian.smart@ukonline.co.uk">Julian Smart
</a> 
 130 if you would like to contribute.
 
 136 <H3><a name=
"publication">Publication
</a></H3> 
 138 We will 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
 
 143 Tom Ryan originally wrote:<P> 
 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. 
 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.  
 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. 
 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> 
 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> 
 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> 
 184 <H3><a name="suggestions">Suggestions and comments</a></H3> 
 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) 
 205 <H3><a name=
"format">File format
</a></H3> 
 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
 
 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> 
 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
 
 231 <H3><a name=
"style">Style guide
</a></H3> 
 233 We should write a style and formatting guide.
<P> 
 239 <H3><a name=
"titles">Book Titles
</a></H3> 
 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> 
 245 Suggestions for the main book:
<P> 
 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
 
 254 Other book titles that a publisher might be interested (but would be distinct projects):
<P> 
 257 <li>Writing GTK+ Application Using wxWindows
 
 258 <li>Migrating MFC Apps to Linux Using wxWindows
 
 265 <H3><a name=
"contents">Contents
</a></H3> 
 267 The following is open to discussion.
<P> 
 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
 
 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.