dnl TODO some samples are never built so far:
dnl mfc, nativdlg, oleauto, ownerdrw, proplist
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS bombs controls dialogs drawing dynamic \
- forty fractal image richedit wxpoem"
+ forty fractal image wxpoem"
fi
dnl for convenience, sort the files to build in alphabetical order
samples/help/Makefile
samples/image/Makefile
samples/internat/Makefile
- samples/joytest/Makefile
samples/layout/Makefile
samples/listctrl/Makefile
samples/mdi/Makefile
samples/memcheck/Makefile
- samples/mfc/Makefile
samples/minifram/Makefile
samples/minimal/Makefile
- samples/nativdlg/Makefile
samples/notebook/Makefile
- samples/oleauto/Makefile
- samples/ownerdrw/Makefile
samples/png/Makefile
samples/printing/Makefile
samples/proplist/Makefile
- samples/regtest/Makefile
samples/resource/Makefile
- samples/richedit/Makefile
samples/sashtest/Makefile
samples/scroll/Makefile
samples/splitter/Makefile
- samples/tab/Makefile
- samples/taskbar/Makefile
samples/text/Makefile
samples/thread/Makefile
samples/toolbar/Makefile
HTML Help format. If your system doesn't know what to do with the help
file, you can install the HTML Help Viewer as part of IE 4+, NT
Service Pack 4+, or the HTML Workshop at
+
http://msdn.microsoft.com/workshop/author/htmlhelp/download.asp.
----------------------------------------------------------------------
+What's new in 2.1b2
+--------------------
+
+Added the missing wxWindow.GetUpdateRegion() method.
+
+Made a new change in SWIG (update your patches everybody) that
+provides a fix for global shadow objects that get an exception in
+their __del__ when their extension module has already been deleted.
+It was only a 1 line change in .../SWIG/Modules/pycpp.cxx at about
+line 496 if you want to do it by hand.
+
+It is now possible to run through MainLoop more than once in any one
+process. The cleanup that used to happen as MainLoop completed (and
+prevented it from running again) has been delayed until the wxc module
+is being unloaded by Python.
+
+I fixed a bunch of stuff in the C++ version of wxGrid so it wouldn't
+make wxPython look bad.
+
+wxWindow.PopupMenu() now takes a wxPoint instead of x,y. Added
+wxWindow.PopupMenuXY to be consistent with some other methods.
+
+Added wxGrid.SetEditInPlace and wxGrid.GetEditInPlace.
+
+You can now provide your own app.MainLoop method. See
+wxPython/demo/demoMainLoop.py for an example and some explaination.
+
+Got the in-place-edit for the wxTreeCtrl fixed and added some demo
+code to show how to use it.
+
+Put the wxIcon constructor back in for GTK as it now has one that
+matches MSW's.
+
+Added wxGrid.GetCells
+
+Added wxSystemSettings static methods as functions with names like
+wxSystemSettings_GetSystemColour.
+
+Removed wxPyMenu since using menu callbacks have been depreciated in
+wxWindows. Use wxMenu and events instead.
+
+Added alternate wxBitmap constructor (for MSW only) as
+ wxBitmapFromData(data, type, width, height, depth = 1)
+
+Added a helper function named wxPyTypeCast that can convert shadow
+objects of one type into shadow objects of another type. (Like doing
+a down-cast.) See the implementation in wx.py for some docs.
+
+
+
+
What's new in 2.1b1
--------------------
Added new methods to wxTextCtrl.
+Fixed some problems with how SWIG was wrapping some wxTreeCtrl
+methods.
+
What's new in 2.0b8
I have finally started documenting wxPython. There are several pages
in the wxWindows documentation tree specifically about wxPython, and I
-have added notes within the class references about where wxPython
+have added notes within the class references about where and how wxPython
diverges from wxWindows.
Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a
DSM (Dumb Stupid Mistake) on my part but it was nasty none the less
because the behavior was so different on different platforms.
-
The dynamicly loaded module on Solaris is still segfaulting, so it
must have been a different issue all along...
3. Varioius bug fixes, enhancements, etc.
+----------------------------------------------------------------------
+
Build Instructions
generation. If you want to playaround with this the patches are in
wxPython/SWIG.patches and they should be applied to the 1.1p5 version
of SWIG. These new patches are documented at
-http://starship.skyport.net/crew/robind/python/#swig, and they should
-also end up in the 1.2 version of SWIG.
+http://starship.skyport.net/crew/robind/#swig, and they should also
+end up in the 1.2 version of SWIG.
wxPython is organized as a Python package. This means that the
directory containing the results of the build process should be a
5. If it builds successfully, congratulations! Move on to the next
step. If not then you can try mailing me for help. Also, I will
always have a pre-built win32 version of this extension module at
-http://starship.skyport.net/crew/robind/python.
+http://alldunn.com/wxPython/.
-6. Change to the $(WXWIN)/utils/wxPython/tests directory.
+6. Change to the $(WXWIN)/utils/wxPython/demo directory.
-7. Try executing the test programs. Note that some of these print
-diagnositc or test info to standard output, so they will require the
-console version of python. For example:
+7. Try executing the demo program. For example:
- python test1.py
+ python demo.py
-To run them without requiring a console, you can use the pythonw.exe
+To run it without requiring a console, you can use the pythonw.exe
version of Python either from the command line or from a shortcut.
Unix
----
+0. I configure wxWindows like this, YMMV:
+
+./configure --with-gtk --disable-shared --enable-threads --disable-unicode
1. Change into the $(WXWIN)/utils/wxPython/src directory.
5. Change to the $(WXWIN)/utils/wxPython/tests directory.
-6. Try executing the test programs. For example:
+6. Try executing the demo program. For example:
- python test1.py
-
-
-------------------------
-10/20/1998
+ python demo.py
+----------------
Robin Dunn
robin@alldunn.com
cp *.cpp ~/wxgtk_dist/wxGTK/src/gtk
cd ..
+cd msw
+mkdir ~/wxgtk_dist/wxGTK/src/msw
+cp Makefile.am ~/wxgtk_dist/wxGTK/src/msw
+cp Makefile.in ~/wxgtk_dist/wxGTK/src/msw
+cd ..
+
+cd motif
+mkdir ~/wxgtk_dist/wxGTK/src/motif
+cp Makefile.am ~/wxgtk_dist/wxGTK/src/motif
+cp Makefile.in ~/wxgtk_dist/wxGTK/src/motif
+cd ..
+
cd common
mkdir ~/wxgtk_dist/wxGTK/src/common
cp glob.inc ~/wxgtk_dist/wxGTK/src/common
cd jpeg
mkdir ~/wxgtk_dist/wxGTK/src/jpeg
cp * ~/wxgtk_dist/wxGTK/src/jpeg
-cd ..
-
-cd ..
+cd ../..
echo Utils dir..
mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/lib/sizers
cp ./lib/sizers/*.py ~/wxgtk_dist/wxGTK/utils/wxPython/lib/sizers
-mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/tests
-cp ./tests/README.txt ~/wxgtk_dist/wxGTK/utils/wxPython/tests
-cp ./tests/*.py ~/wxgtk_dist/wxGTK/utils/wxPython/tests
-
mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/demo
cp ./demo/README.txt ~/wxgtk_dist/wxGTK/utils/wxPython/demo
cp ./demo/*.py ~/wxgtk_dist/wxGTK/utils/wxPython/demo
mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/demo/bitmaps
cp ./demo/bitmaps/* ~/wxgtk_dist/wxGTK/utils/wxPython/demo/bitmaps
-mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/tests/bitmaps
-cp ./tests/bitmaps/* ~/wxgtk_dist/wxGTK/utils/wxPython/tests/bitmaps
-cd ..
-
-echo wxOLE..
-
-cd wxOLE
-mkdir ~/wxgtk_dist/wxGTK/utils/wxOLE
-mkdir ~/wxgtk_dist/wxGTK/utils/wxOLE/gtk
-cp ./gtk/wxole.* ~/wxgtk_dist/wxGTK/utils/wxOLE/gtk
-mkdir ~/wxgtk_dist/wxGTK/utils/wxOLE/samples
-mkdir ~/wxgtk_dist/wxGTK/utils/wxOLE/samples/servlet
-cp ./samples/servlet/Makefile ~/wxgtk_dist/wxGTK/utils/wxOLE/samples/servlet
-cp ./samples/servlet/*.xpm ~/wxgtk_dist/wxGTK/utils/wxOLE/samples/servlet
-cp ./samples/servlet/*.cpp ~/wxgtk_dist/wxGTK/utils/wxOLE/samples/servlet
-cp ./samples/servlet/*.gnorba ~/wxgtk_dist/wxGTK/utils/wxOLE/samples/servlet
-
cd ../..
-
echo Samples dir..
cd samples
cp *.xpm ~/wxgtk_dist/wxGTK/samples/db
cd ..
-echo DDE sample..
-
-cd dde
-mkdir ~/wxgtk_dist/wxGTK/samples/dde
-cp Makefile.am ~/wxgtk_dist/wxGTK/samples/dde
-cp Makefile.in ~/wxgtk_dist/wxGTK/samples/dde
-cp *.cpp ~/wxgtk_dist/wxGTK/samples/dde
-cp *.h ~/wxgtk_dist/wxGTK/samples/dde
-cp *.xpm ~/wxgtk_dist/wxGTK/samples/dde
-cd ..
+#echo DDE sample..
+#
+#cd dde
+#mkdir ~/wxgtk_dist/wxGTK/samples/dde
+#cp Makefile.am ~/wxgtk_dist/wxGTK/samples/dde
+#cp Makefile.in ~/wxgtk_dist/wxGTK/samples/dde
+#cp *.cpp ~/wxgtk_dist/wxGTK/samples/dde
+#cp *.h ~/wxgtk_dist/wxGTK/samples/dde
+#cp *.xpm ~/wxgtk_dist/wxGTK/samples/dde
+#cd ..
+#
echo Dialogs sample..
cp *.cpp ~/wxgtk_dist/wxGTK/samples/splitter
cd ..
-echo Tab sample..
-
-cd tab
-mkdir ~/wxgtk_dist/wxGTK/samples/tab
-cp Makefile.am ~/wxgtk_dist/wxGTK/samples/tab
-cp Makefile.in ~/wxgtk_dist/wxGTK/samples/tab
-cp *.cpp ~/wxgtk_dist/wxGTK/samples/tab
-cp *.h ~/wxgtk_dist/wxGTK/samples/tab
-cd ..
-
echo Text sample..
cd text
cp Setup ~/wxgtk_dist/wxGTK/utils/wxPython/src
cd ~/wxgtk_dist
-tar ch wxGTK | gzip -f9 > wxGTK-2.1.0-b7b.tgz
+tar ch wxGTK | gzip -f9 > wxGTK-2.1.0-b8b.tgz
cp *.xpm ~/wxmotif_dist/wxMotif/samples/db
cd ..
-echo DDE sample..
-
-cd dde
-mkdir ~/wxmotif_dist/wxMotif/samples/dde
-cp Makefile.am ~/wxmotif_dist/wxMotif/samples/dde
-cp Makefile.in ~/wxmotif_dist/wxMotif/samples/dde
-cp *.cpp ~/wxmotif_dist/wxMotif/samples/dde
-cp *.h ~/wxmotif_dist/wxMotif/samples/dde
-cp *.xpm ~/wxmotif_dist/wxMotif/samples/dde
-cd ..
-
echo Dialogs sample..
cd dialogs
cp *.cpp ~/wxmotif_dist/wxMotif/samples/splitter
cd ..
-echo Tab sample..
-
cd tab
mkdir ~/wxmotif_dist/wxMotif/samples/tab
cp Makefile.am ~/wxmotif_dist/wxMotif/samples/tab
cd ../..
cd ~/wxmotif_dist
-tar ch wxMotif | gzip -f9 > wxMotif-2.1.0-b7.tgz
+tar ch wxMotif | gzip -f9 > wxMotif-2.1.0-b8.tgz
\twocolwidtha{7cm}
\begin{twocollist}
\twocolitem{{\bf EVT\_SPIN(id, func)}}{Catch all scroll commands.}
-\twocolitem{{\bf EVT\_SPIN\_UP(id, func)}}{Catch up (or left) commands.}
-\twocolitem{{\bf EVT\_SPIN\_DOWN(id, func)}}{Catch down (or right) commands.}
+\twocolitem{{\bf EVT\_SPIN\_UP(id, func)}}{Catch up (or left) commands. Win32 only. }
+\twocolitem{{\bf EVT\_SPIN\_DOWN(id, func)}}{Catch down (or right) commands. Win32 only. }
\twocolitem{{\bf EVT\_COMMAND\_TOP(id, func)}}{Catch a command to put the scroll thumb at the maximum position.}
\twocolitem{{\bf EVT\_COMMAND\_SCROLL(id, func)}}{Catch all scroll commands.}
\twocolitem{{\bf EVT\_COMMAND\_TOP(id, func)}}{Catch a command to put the scroll thumb at the maximum position.}
\twocolwidtha{5cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxTR\_HAS\_BUTTONS}}{Use this style to show + and - buttons to the
-left of parent items.}
+left of parent items. Win32 only. }
\twocolitem{\windowstyle{wxTR\_EDIT\_LABELS}}{Use this style if you wish the user to be
able to edit labels in the tree control.}
\twocolitem{\windowstyle{wxTR\_MULTIPLE}}{Use this style to allow the user to
#ifndef _WX_CARET_H_BASE_
#define _WX_CARET_H_BASE_
+#ifdef __GNUG__
+#pragma interface "caret.h"
+#endif
+
// ---------------------------------------------------------------------------
// forward declarations
// ---------------------------------------------------------------------------
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
-#if 0 //def __GNUG__
- #pragma implementation "caret.h"
-#endif
-
#ifndef _WX_CARET_H_
#define _WX_CARET_H_
+#ifdef __GNUG__
+#pragma interface "caret.h"
+#endif
+
#include "wx/timer.h"
+class wxCaret;
+
+class wxCaretTimer : public wxTimer
+{
+public:
+ wxCaretTimer(wxCaret *caret);
+ virtual void Notify();
+
+private:
+ wxCaret *m_caret;
+};
+
class wxCaret : public wxCaretBase
{
public:
// draw the caret on the given DC
void DoDraw(wxDC *dc);
-
+
private:
// GTK specific initialization
void InitGeneric();
- class CaretTimer : public wxTimer
- {
- public:
- CaretTimer(wxCaret *caret) { m_caret = caret; }
-
- virtual void Notify() { m_caret->Blink(); }
-
- private:
- wxCaret *m_caret;
- } m_timer;
-
- bool m_blinkedOut; // TRUE => caret hidden right now
+ wxCaretTimer m_timer;
+ bool m_blinkedOut; // TRUE => caret hidden right now
};
#endif // _WX_CARET_H_
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-// ============================================================================
-// declarations
-// ============================================================================
-
-// ----------------------------------------------------------------------------
-// headers
-// ----------------------------------------------------------------------------
-#ifdef __GNUG__
- #pragma implementation "caret.cpp"
- #pragma interface "caret.cpp"
-#endif
-
// For compilers that support precompilation, includes "wx/wx.h".
#include <wx/wxprec.h>
// headers
// ----------------------------------------------------------------------------
-#if 0 //def __GNUG__
- #pragma implementation "caret.h"
+#ifdef __GNUG__
+#pragma implementation "caret.h"
#endif
// For compilers that support precompilation, includes "wx.h".
// implementation
// ============================================================================
+wxCaretTimer::wxCaretTimer(wxCaret *caret)
+{
+ m_caret = caret;
+}
+
+void wxCaretTimer::Notify()
+{
+ m_caret->Blink();
+}
+
// ----------------------------------------------------------------------------
// wxCaret static functions and data
// ----------------------------------------------------------------------------
##
## Process this file with automake to produce Makefile.in
-AUTOMAKE_OPTIONS = 1.3
-# no-dependencies
+AUTOMAKE_OPTIONS =
+# 1.3 no-dependencies
SUFFIXES = .cpp .c
wxMutex::wxMutex()
{
+ p_internal = new wxMutexInternal;
+
+#if 0
+ /* I don't know where this function is supposed to exist,
+ and NP actually means non-portable, RR. */
pthread_mutexattr_t attr_type;
-
pthread_mutexattr_settype( &attr_type, PTHREAD_MUTEX_FAST_NP );
- p_internal = new wxMutexInternal;
pthread_mutex_init( &(p_internal->p_mutex), (const pthread_mutexattr_t*) &attr_type );
+#else
+ pthread_mutex_init( &(p_internal->p_mutex), (const pthread_mutexattr_t*) NULL );
+#endif
m_locked = 0;
}
----
0. I configure wxWindows like this, YMMV:
-./configure --with-gtk --without-shared --with-threads --without-unicode --with-libjpeg
-
+./configure --with-gtk --disable-shared --enable-threads --disable-unicode
1. Change into the $(WXWIN)/utils/wxPython/src directory.