Added tech note
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_2_BRANCH@7532 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -60,6 +60,7 @@ docs/html/icons/*.gif
|
|||||||
docs/html/icons/*.png
|
docs/html/icons/*.png
|
||||||
docs/html/icons/*.jpg
|
docs/html/icons/*.jpg
|
||||||
docs/tech/*.txt
|
docs/tech/*.txt
|
||||||
|
docs/tech/*.htm
|
||||||
|
|
||||||
src/makeenvs/*.env
|
src/makeenvs/*.env
|
||||||
src/make.env
|
src/make.env
|
||||||
|
@@ -452,7 +452,7 @@ clean: $(PERIPH_CLEAN_TARGET)
|
|||||||
|
|
||||||
|
|
||||||
# Making documents
|
# Making documents
|
||||||
docs: allhlp allhtml allpdfrtf
|
docs: allhlp allhtml allpdfrtf htb htmlhelp
|
||||||
alldocs: docs
|
alldocs: docs
|
||||||
hlp: wxhlp
|
hlp: wxhlp
|
||||||
wxhlp: $(DOCDIR)/winhelp/wx.hlp
|
wxhlp: $(DOCDIR)/winhelp/wx.hlp
|
||||||
@@ -639,6 +639,13 @@ touchmanual:
|
|||||||
|
|
||||||
updatedocs: touchmanual alldocs
|
updatedocs: touchmanual alldocs
|
||||||
|
|
||||||
|
cleandocs:
|
||||||
|
-erase /Y $(DOCDIR)\html\wx\wx.htm
|
||||||
|
-erase /Y $(DOCDIR)\pdf\wx.rtf
|
||||||
|
-erase /Y $(DOCDIR)\latex\wx\wx.rtf
|
||||||
|
-erase /Y $(DOCDIR)\htmlhelp\wx.chm
|
||||||
|
-erase /Y $(DOCDIR)\htb\wx.htb
|
||||||
|
|
||||||
# Start Word, running the GeneratePDF macro. MakeManual.dot should be in the
|
# Start Word, running the GeneratePDF macro. MakeManual.dot should be in the
|
||||||
# Office StartUp folder, and PDFMaker should be installed.
|
# Office StartUp folder, and PDFMaker should be installed.
|
||||||
updatepdf: # touchmanual pdfrtf
|
updatepdf: # touchmanual pdfrtf
|
||||||
|
@@ -216,6 +216,9 @@ ren s setup.w06
|
|||||||
ren setup.w07 s
|
ren setup.w07 s
|
||||||
ren s setup.w07
|
ren s setup.w07
|
||||||
|
|
||||||
|
ren setup.w08 s
|
||||||
|
ren s setup.w08
|
||||||
|
|
||||||
rem Put all the setup files into a single zip archive.
|
rem Put all the setup files into a single zip archive.
|
||||||
zip32 wxMSW-%version%-setup.zip readme.txt setup.*
|
zip32 wxMSW-%version%-setup.zip readme.txt setup.*
|
||||||
|
|
||||||
|
@@ -18,7 +18,7 @@ News
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<H3><a name="release2_1_16">May 24th, 2000</H3><P>
|
<H3><a name="release2_1_16">June 4th, 2000</H3><P>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="download.htm" target=wxmain>wxWindows 2.1.16</a> contains fixes
|
<li><a href="download.htm" target=wxmain>wxWindows 2.1.16</a> contains fixes
|
||||||
|
@@ -190,7 +190,7 @@ Additions and changes:
|
|||||||
\item Many optical improvements to GTK port.
|
\item Many optical improvements to GTK port.
|
||||||
\item Support for menu accelerators in GTK port.
|
\item Support for menu accelerators in GTK port.
|
||||||
\item Enhanced and improved support for scrolling, including child windows.
|
\item Enhanced and improved support for scrolling, including child windows.
|
||||||
\item Complete rewrite of clipboard and drag'n'drop classes.
|
\item Complete rewrite of clipboard and drag and drop classes.
|
||||||
\item Improved support for ODBC databases.
|
\item Improved support for ODBC databases.
|
||||||
\item Improved tab traversal in dialogs.
|
\item Improved tab traversal in dialogs.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
@@ -11,4 +11,5 @@
|
|||||||
|
|
||||||
\section{\class{wxDateSpan}}\label{wxdatespan}
|
\section{\class{wxDateSpan}}\label{wxdatespan}
|
||||||
|
|
||||||
TODO
|
The documentation for this section has not yet been written.
|
||||||
|
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
This class represents a source for a drag and drop operation.
|
This class represents a source for a drag and drop operation.
|
||||||
|
|
||||||
See \helpref{Drag'n'Drop overview}{wxdndoverview} and \helpref{wxDataObject overview}{wxdataobjectoverview}
|
See \helpref{Drag and drop overview}{wxdndoverview} and \helpref{wxDataObject overview}{wxdataobjectoverview}
|
||||||
for more information.
|
for more information.
|
||||||
|
|
||||||
\wxheading{Derived from}
|
\wxheading{Derived from}
|
||||||
|
@@ -11,7 +11,7 @@ the whole window area, but only a small portion of it. The normal sequence of ca
|
|||||||
\helpref{OnEnter}{wxdroptargetonenter}, possibly many times \helpref{OnDragOver}{wxdroptargetondragover},
|
\helpref{OnEnter}{wxdroptargetonenter}, possibly many times \helpref{OnDragOver}{wxdroptargetondragover},
|
||||||
\helpref{OnDrop}{wxdroptargetondrop} and finally \helpref{OnData}{wxdroptargetondata}.
|
\helpref{OnDrop}{wxdroptargetondrop} and finally \helpref{OnData}{wxdroptargetondata}.
|
||||||
|
|
||||||
See \helpref{Drag'n'Drop overview}{wxdndoverview} and \helpref{wxDataObject overview}{wxdataobjectoverview}
|
See \helpref{Drag and drop overview}{wxdndoverview} and \helpref{wxDataObject overview}{wxdataobjectoverview}
|
||||||
for more information.
|
for more information.
|
||||||
|
|
||||||
\wxheading{Derived from}
|
\wxheading{Derived from}
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
\section{Drag'n'Drop overview}\label{wxdndoverview}
|
\section{Drag and drop overview}\label{wxdndoverview}
|
||||||
|
|
||||||
Classes: \helpref{wxDataObject}{wxdataobject},
|
Classes: \helpref{wxDataObject}{wxdataobject},
|
||||||
\helpref{wxTextDataObject}{wxtextdataobject},
|
\helpref{wxTextDataObject}{wxtextdataobject},
|
||||||
@@ -8,12 +8,12 @@ Classes: \helpref{wxDataObject}{wxdataobject},
|
|||||||
\helpref{wxFileDropTarget}{wxfiledroptarget}
|
\helpref{wxFileDropTarget}{wxfiledroptarget}
|
||||||
|
|
||||||
Note that wxUSE\_DRAG\_AND\_DROP must be defined in setup.h in order
|
Note that wxUSE\_DRAG\_AND\_DROP must be defined in setup.h in order
|
||||||
to use Drag'n'Drop in wxWindows.
|
to use drag and drop in wxWindows.
|
||||||
|
|
||||||
See also: \helpref{wxDataObject overview}{wxdataobjectoverview} and \helpref{DnD sample}{samplednd}
|
See also: \helpref{wxDataObject overview}{wxdataobjectoverview} and \helpref{DnD sample}{samplednd}
|
||||||
|
|
||||||
It may be noted that data transfer to and from the clipboard is quite
|
It may be noted that data transfer to and from the clipboard is quite
|
||||||
similar to data transfer with Drag'n'Drop and the code to implement
|
similar to data transfer with drag and drop and the code to implement
|
||||||
these two types is almost the same. In particular, both data transfer
|
these two types is almost the same. In particular, both data transfer
|
||||||
mechanisms store data in some kind of \helpref{wxDataObject}{wxdataobject}
|
mechanisms store data in some kind of \helpref{wxDataObject}{wxdataobject}
|
||||||
and identify its format(s) using the \helpref{wxDataFormat}{wxdataformat}
|
and identify its format(s) using the \helpref{wxDataFormat}{wxdataformat}
|
||||||
|
@@ -177,7 +177,6 @@ If you use JPEG image handler, documentation for your program should
|
|||||||
contain following sentence: "This software is based in part on the work of
|
contain following sentence: "This software is based in part on the work of
|
||||||
the Independent JPEG Group". See src/jpeg/README for details.
|
the Independent JPEG Group". See src/jpeg/README for details.
|
||||||
|
|
||||||
|
|
||||||
Documentation
|
Documentation
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
@@ -216,5 +215,5 @@ web site) or contact Julian Smart <julian.smart@ukonline.co.uk>.
|
|||||||
|
|
||||||
Good luck!
|
Good luck!
|
||||||
|
|
||||||
The wxWindows Team, 24th May, 2000
|
The wxWindows Team, 4th June, 2000
|
||||||
|
|
||||||
|
@@ -5,5 +5,6 @@ TN0004 Compiling a sample in the C++Builder IDE
|
|||||||
TN0005 Adding a wxWindows contribution
|
TN0005 Adding a wxWindows contribution
|
||||||
TN0006 Making and installing RPMs for wxWindows
|
TN0006 Making and installing RPMs for wxWindows
|
||||||
TN0007 Using and modifying the BC++ IDE files
|
TN0007 Using and modifying the BC++ IDE files
|
||||||
|
TN0008 How to learn wxWindows programming
|
||||||
|
|
||||||
Version: $Id$
|
Version: $Id$
|
||||||
|
144
docs/tech/tn0008.htm
Normal file
144
docs/tech/tn0008.htm
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
<HTML>
|
||||||
|
|
||||||
|
<HEAD>
|
||||||
|
<TITLE>How to learn wxWindows programming</TITLE>
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
|
<BODY BGCOLOR=#FFFFFF TEXT=#000000 LINK=#FF0000 VLINK=#000000>
|
||||||
|
|
||||||
|
<font face="Arial, Lucida Sans, Helvetica">
|
||||||
|
|
||||||
|
<a name="top"></a>
|
||||||
|
|
||||||
|
<table align=center width=100% border=4 cellpadding=5 cellspacing=0>
|
||||||
|
<tr>
|
||||||
|
<td bgcolor="#660000" align=left colspan=2>
|
||||||
|
<font size=+1 face="Arial, Lucida Sans, Helvetica" color="#FFFFFF">
|
||||||
|
How to learn wxWindows programming
|
||||||
|
</font>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
|
||||||
|
The following is a response by Edward Ream to a common question,
|
||||||
|
"What's the best way to learn wxWindows [and C++]?".<P>
|
||||||
|
|
||||||
|
Date: Sun, 04 Jun 2000 14:37:06 -0500<BR>
|
||||||
|
From: "Edward K. Ream" <edream@tds.net> <BR>
|
||||||
|
To: wx-users@wxwindows.org<BR>
|
||||||
|
Subject: Re: [wx-users] How to learn using wx-windows <BR>
|
||||||
|
Reply-To: wx-users@wxwindows.org<P>
|
||||||
|
|
||||||
|
> Reading the Linux Journal article on wxpython, and having used wxclips<BR>
|
||||||
|
> I got interested in wxwindows as a development interface. However, the<BR>
|
||||||
|
> programming experience I got is old, and from a former generation (For-<BR>
|
||||||
|
> tran). I'd like to refresh my experience and start in C++. Will<BR>
|
||||||
|
> wx-windows be a very high step to take?<P>
|
||||||
|
|
||||||
|
I'm new to wxWindows myself, but I'd like to answer this question
|
||||||
|
anyway. In the past two years I've learned two similar frameworks
|
||||||
|
(Apple's Yellow Box, aka NextStep/OpenStep and Borland's C++
|
||||||
|
Builder/Delphi) and last year I became a C++ enthusiast after 20 years
|
||||||
|
of using C.<P>
|
||||||
|
|
||||||
|
<B>About C++.</B><P>
|
||||||
|
|
||||||
|
The major Aha for me was that the complexity of C++ doesn't matter in
|
||||||
|
practice. What _does_ matter is that C++ allows you to do simple things
|
||||||
|
simply, more simply than C. With a system like wxWindows you will be
|
||||||
|
creating objects and then using those objects to call methods. So don't
|
||||||
|
be afraid of C++: you'll only be using the easy tip of the
|
||||||
|
iceberg.<P>
|
||||||
|
|
||||||
|
Besides the C++ Programming Language, by Bjarne Stroustrup, the
|
||||||
|
"official" guide to C++, I highly recommend Inside the C++ Object Model,
|
||||||
|
by Stanley B. Lippman. (Lipmann was one of the C++ honchos at Bell
|
||||||
|
Labs.) This book will tell you what _not_ to do, as well as why
|
||||||
|
everything in C++ is as it is. If you are confused by anything in C++,
|
||||||
|
Lippman's book is the cure.<P>
|
||||||
|
|
||||||
|
<B>About applications frameworks.</B><P>
|
||||||
|
|
||||||
|
Application frameworks such as wxWindows are organized around a set of
|
||||||
|
cooperating classes. Take a look at the main application class, wxApp,
|
||||||
|
some frame and panel classes, graphics classes, menu classes, control
|
||||||
|
classes, etc. In general, to do anything in a framework involves
|
||||||
|
creating an object of the specified type, then doing something with that
|
||||||
|
object.<P>
|
||||||
|
|
||||||
|
For example, suppose you want to create a menu bar. A menu bar is
|
||||||
|
composed of a single menu bar object of type(class) wxMenuBar that
|
||||||
|
contains menu objects of type wxMenu. Each menu object contains menu
|
||||||
|
item objects of type wxMenuItem. So you create the menu bar object,
|
||||||
|
then create all the menu objects (creating the menu item objects along
|
||||||
|
the way) and finally "attach" the menu objects to the menu bar object
|
||||||
|
using a call to the wxMenuBar::Append method.<P>
|
||||||
|
|
||||||
|
As an overview I would look at the "Alphabetical class reference"
|
||||||
|
section of the reference manual. I find the HTML version to be the
|
||||||
|
easiest to use: you can browse very quickly through it. Here's how to
|
||||||
|
read this (very large) reference:<P>
|
||||||
|
|
||||||
|
<ol>
|
||||||
|
<li>Get an overview of the kinds of classes involved. The class names
|
||||||
|
will tell you a lot about what each class does. Open some of the
|
||||||
|
classes, in particular, wxApp (the main application object), wxFrame,
|
||||||
|
wxControl (the base class for all controls) and one or two controls,
|
||||||
|
like wxButton.
|
||||||
|
|
||||||
|
<li>When scanning a class for the first several times, read the
|
||||||
|
introductory remarks and quickly scan the list of methods of the class
|
||||||
|
to get a general idea about what kinds of operations can be done to
|
||||||
|
objects of the class. You are not looking for detail at this stage,
|
||||||
|
just for the big picture. In particular, what classes exist and how do
|
||||||
|
they work together.
|
||||||
|
|
||||||
|
<li>Pay particular attention to the classes from which a class is
|
||||||
|
derived. For example, a button (an object of type wxButton) is derived
|
||||||
|
from the wxControl, wxWindow, wxEvtHandler and wxObject classes. What
|
||||||
|
does this mean? It means that a button _is_ a control, and a button
|
||||||
|
_is_ a window, and a button _is_ an event handler and a button _is_ an
|
||||||
|
object. So you must understand the parent classes of an object to
|
||||||
|
understand the object itself.
|
||||||
|
|
||||||
|
For example, if b is a button you can invoke b.m for any of method m of
|
||||||
|
the wxControl, wxWindow, wxEvtHandler or wxObject classes. You are not
|
||||||
|
limited to just the methods of wxButton! This is one of the keys of
|
||||||
|
object oriented programming.
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
Some other tips:<P>
|
||||||
|
|
||||||
|
Read some sample code. You will find that almost none of the C++
|
||||||
|
language is actually being used; it's just endlessly creating objects
|
||||||
|
and then calling methods using those objects.<P>
|
||||||
|
|
||||||
|
Learn as much as you can about the String class; after using a good
|
||||||
|
String class you'll never want to use C's string functions again.
|
||||||
|
wxWindows contains other nifty utilty classes as well.<P>
|
||||||
|
|
||||||
|
The application class, wxApp, contains the main event loop. Learn about
|
||||||
|
event handling and event tables (reading sample code will help). Almost
|
||||||
|
everything in this kind of application framework happens as the result
|
||||||
|
of an event and your app is essentially doing nothing but responding to
|
||||||
|
events. Having the event loop written for you is a major, major
|
||||||
|
benefit.<P>
|
||||||
|
|
||||||
|
I hope this helps. Perhaps we can work together in learning about
|
||||||
|
wxWindows. Please feel free to ask me any questions you might have. If
|
||||||
|
I've made any blunders in this posting I hope the wxWindows experts will
|
||||||
|
correct me gently.<P>
|
||||||
|
|
||||||
|
Edward<BR>
|
||||||
|
--------------------------------------------------------------------<BR>
|
||||||
|
Edward K. Ream email: edream@tds.net<BR>
|
||||||
|
Leo: Literate Editor with Outlines<BR>
|
||||||
|
Leo: http://personalpages.tds.net/~edream/front.html<BR>
|
||||||
|
--------------------------------------------------------------------<P>
|
||||||
|
|
||||||
|
</font>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
@@ -18,7 +18,7 @@ MINGW32=1
|
|||||||
MINGW32VERSION=2.95
|
MINGW32VERSION=2.95
|
||||||
|
|
||||||
# If building DLL, the version
|
# If building DLL, the version
|
||||||
WXVERSION=21_11
|
WXVERSION=21_16
|
||||||
|
|
||||||
# Say yes if you have a "modern" linker that supports --shared option.
|
# Say yes if you have a "modern" linker that supports --shared option.
|
||||||
# Note that you're probably going to wait forever for dlltool/gcc/etc
|
# Note that you're probably going to wait forever for dlltool/gcc/etc
|
||||||
|
@@ -658,7 +658,7 @@ clean: $(PERIPH_CLEAN_TARGET)
|
|||||||
|
|
||||||
|
|
||||||
# Making documents
|
# Making documents
|
||||||
docs: allhlp allhtml allpdfrtf
|
docs: allhlp allhtml allpdfrtf htb htmlhelp
|
||||||
alldocs: docs
|
alldocs: docs
|
||||||
hlp: wxhlp
|
hlp: wxhlp
|
||||||
wxhlp: $(DOCDIR)/winhelp/wx.hlp
|
wxhlp: $(DOCDIR)/winhelp/wx.hlp
|
||||||
@@ -845,6 +845,13 @@ touchmanual:
|
|||||||
|
|
||||||
updatedocs: touchmanual alldocs
|
updatedocs: touchmanual alldocs
|
||||||
|
|
||||||
|
cleandocs:
|
||||||
|
-erase /Y $(DOCDIR)\html\wx\wx.htm
|
||||||
|
-erase /Y $(DOCDIR)\pdf\wx.rtf
|
||||||
|
-erase /Y $(DOCDIR)\latex\wx\wx.rtf
|
||||||
|
-erase /Y $(DOCDIR)\htmlhelp\wx.chm
|
||||||
|
-erase /Y $(DOCDIR)\htb\wx.htb
|
||||||
|
|
||||||
# Start Word, running the GeneratePDF macro. MakeManual.dot should be in the
|
# Start Word, running the GeneratePDF macro. MakeManual.dot should be in the
|
||||||
# Office StartUp folder, and PDFMaker should be installed.
|
# Office StartUp folder, and PDFMaker should be installed.
|
||||||
updatepdf: # touchmanual pdfrtf
|
updatepdf: # touchmanual pdfrtf
|
||||||
|
Reference in New Issue
Block a user