Compare commits

..

1 Commits

Author SHA1 Message Date
Bryan Petty
ea5a206d1d This commit was manufactured by cvs2svn to create tag 'wxPy_2_3_4_1'.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/tags/wxPy_2_3_4_1@18324 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-18 06:48:23 +00:00
302 changed files with 17433 additions and 5448 deletions

View File

@@ -391,11 +391,19 @@ afminstall: preinstall
$(INSTALL) -d $(datadir)/wx/$(VER_MAJMIN)/gs_afm $(INSTALL) -d $(datadir)/wx/$(VER_MAJMIN)/gs_afm
$(INSTALL_DATA) $(top_srcdir)/misc/afm/*.afm $(datadir)/wx/$(VER_MAJMIN)/afm $(INSTALL_DATA) $(top_srcdir)/misc/afm/*.afm $(datadir)/wx/$(VER_MAJMIN)/afm
$(INSTALL_DATA) $(top_srcdir)/misc/gs_afm/*.afm $(datadir)/wx/$(VER_MAJMIN)/gs_afm $(INSTALL_DATA) $(top_srcdir)/misc/gs_afm/*.afm $(datadir)/wx/$(VER_MAJMIN)/gs_afm
m4datainstall: preinstall m4datainstall: preinstall
$(INSTALL) -d $(datadir)/aclocal $(INSTALL) -d $(datadir)/aclocal
$(INSTALL_DATA) $(top_srcdir)/wxwin.m4 $(datadir)/aclocal $(INSTALL_DATA) $(top_srcdir)/wxwin.m4 $(datadir)/aclocal
win32install: preinstall
$(INSTALL) -d $(includedir)/wx/msw
$(INSTALL_DATA) $(top_srcdir)/include/wx/msw/*.cur \
$(top_srcdir)/include/wx/msw/*.ico \
$(top_srcdir)/include/wx/msw/*.bmp \
$(top_srcdir)/include/wx/msw/wx.rc \
$(includedir)/wx/msw
# this is the real install target: copies the library, wx-config and the # this is the real install target: copies the library, wx-config and the
# headers to the installation directory # headers to the installation directory
preinstall: $(build_libdir)/@WX_TARGET_LIBRARY@ $(top_builddir)/wx@TOOLCHAIN_NAME@-config preinstall: $(build_libdir)/@WX_TARGET_LIBRARY@ $(top_builddir)/wx@TOOLCHAIN_NAME@-config
@@ -462,7 +470,7 @@ preinstall_gl: $(build_libdir)/@WX_TARGET_LIBRARY_GL@
@if test ! -d $(libdir); then $(INSTALL) -d $(libdir); fi @if test ! -d $(libdir); then $(INSTALL) -d $(libdir); fi
@INSTALL_LIBRARY@ $(build_libdir)/@WX_TARGET_LIBRARY_GL@ $(libdir)/@WX_TARGET_LIBRARY_GL@ @INSTALL_LIBRARY@ $(build_libdir)/@WX_TARGET_LIBRARY_GL@ $(libdir)/@WX_TARGET_LIBRARY_GL@
install: @AFMINSTALL@ @WX_ALL_INSTALLED@ m4datainstall install: @AFMINSTALL@ @WX_ALL_INSTALLED@ m4datainstall @WIN32INSTALL@
@echo " " @echo " "
@echo " The installation of wxWindows is finished. On certain" @echo " The installation of wxWindows is finished. On certain"
@echo " platforms (e.g. Linux) you'll now have to run ldconfig" @echo " platforms (e.g. Linux) you'll now have to run ldconfig"
@@ -493,7 +501,7 @@ uninstall:
@$(RM) $(bindir)/wx@TOOLCHAIN_NAME@-config @$(RM) $(bindir)/wx@TOOLCHAIN_NAME@-config
@$(RM) $(datadir)/wx/$(VER_MAJMIN)/afm/* @$(RM) $(datadir)/wx/$(VER_MAJMIN)/afm/*
@$(RM) $(datadir)/wx/$(VER_MAJMIN)/gs_afm/* @$(RM) $(datadir)/wx/$(VER_MAJMIN)/gs_afm/*
# FIXME: wxBase doesnt install these next 3 dirs. # FIXME: wxBase doesnt install these next 3 dirs.
@-rmdir $(datadir)/wx/$(VER_MAJMIN)/gs_afm @-rmdir $(datadir)/wx/$(VER_MAJMIN)/gs_afm
@-rmdir $(datadir)/wx/$(VER_MAJMIN)/afm @-rmdir $(datadir)/wx/$(VER_MAJMIN)/afm
@-rmdir $(datadir)/wx/$(VER_MAJMIN) @-rmdir $(datadir)/wx/$(VER_MAJMIN)
@@ -502,6 +510,7 @@ uninstall:
@list='$(HEADERS)'; for p in $$list; do \ @list='$(HEADERS)'; for p in $$list; do \
$(RM) $(includedir)/wx/$$p; \ $(RM) $(includedir)/wx/$$p; \
done done
# TODO: uninstall the files installed by win32install
@echo " Removing i18n files..." @echo " Removing i18n files..."
@-for p in $(WX_LINGUAS); do \ @-for p in $(WX_LINGUAS); do \
$(RM) $(localedir)/$$p/LC_MESSAGES/wxstd.mo; \ $(RM) $(localedir)/$$p/LC_MESSAGES/wxstd.mo; \
@@ -581,7 +590,8 @@ ALL_GUI_DIST: ALL_DIST
if test -f $(DOCDIR)/$(TOOLKITDIR)/changes.txt ; then \ if test -f $(DOCDIR)/$(TOOLKITDIR)/changes.txt ; then \
cp $(DOCDIR)/$(TOOLKITDIR)/changes.txt $(DISTDIR)/CHANGES-$(TOOLKIT).txt ; fi cp $(DOCDIR)/$(TOOLKITDIR)/changes.txt $(DISTDIR)/CHANGES-$(TOOLKIT).txt ; fi
cp $(DOCDIR)/$(TOOLKITDIR)/readme.txt $(DISTDIR)/README-$(TOOLKIT).txt cp $(DOCDIR)/$(TOOLKITDIR)/readme.txt $(DISTDIR)/README-$(TOOLKIT).txt
cp $(DOCDIR)/$(TOOLKITDIR)/todo.txt $(DISTDIR)/TODO.txt if test -f $(DOCDIR)/$(TOOLKITDIR)/todo.txt ; then \
cp $(DOCDIR)/$(TOOLKITDIR)/todo.txt $(DISTDIR)/TODO.txt ; fi
mkdir $(DISTDIR)/include mkdir $(DISTDIR)/include
mkdir $(DISTDIR)/include/wx mkdir $(DISTDIR)/include/wx
mkdir $(DISTDIR)/include/wx/$(TOOLKITDIR) mkdir $(DISTDIR)/include/wx/$(TOOLKITDIR)
@@ -790,6 +800,15 @@ UNIV_DIST: ALL_GUI_DIST
cp $(SRCDIR)/univ/*.cpp $(DISTDIR)/src/univ cp $(SRCDIR)/univ/*.cpp $(DISTDIR)/src/univ
cp $(SRCDIR)/univ/themes/*.cpp $(DISTDIR)/src/univ/themes cp $(SRCDIR)/univ/themes/*.cpp $(DISTDIR)/src/univ/themes
MGL_DIST: UNIV_DIST
cp $(WXDIR)/wxMGL.spec $(DISTDIR)
cp $(INCDIR)/wx/mgl/*.h $(DISTDIR)/include/wx/mgl
cp $(SRCDIR)/mgl/files.lst $(DISTDIR)/src/mgl
cp $(SRCDIR)/mgl/make* $(DISTDIR)/src/mgl
cp $(SRCDIR)/mgl/*.cpp $(DISTDIR)/src/mgl
mkdir $(DISTDIR)/contrib
cp -R $(WXDIR)/contrib $(DISTDIR)
DEMOS_DIST: ALL_GUI_DIST DEMOS_DIST: ALL_GUI_DIST
mkdir $(DISTDIR)/demos mkdir $(DISTDIR)/demos
cp $(DEMODIR)/Makefile.in $(DISTDIR)/demos cp $(DEMODIR)/Makefile.in $(DISTDIR)/demos
@@ -845,6 +864,13 @@ SAMPLES_DIST: ALL_GUI_DIST
cp $(SAMPDIR)/configure $(DISTDIR)/samples cp $(SAMPDIR)/configure $(DISTDIR)/samples
cp $(SAMPDIR)/configure.in $(DISTDIR)/samples cp $(SAMPDIR)/configure.in $(DISTDIR)/samples
mkdir $(DISTDIR)/samples/artprov
cp $(SAMPDIR)/artprov/Makefile.in $(DISTDIR)/samples/artprov
cp $(SAMPDIR)/artprov/makefile.unx $(DISTDIR)/samples/artprov
cp $(SAMPDIR)/artprov/*.cpp $(DISTDIR)/samples/artprov
cp $(SAMPDIR)/artprov/*.h $(DISTDIR)/samples/artprov
cp $(SAMPDIR)/artprov/*.xpm $(DISTDIR)/samples/artprov
mkdir $(DISTDIR)/samples/calendar mkdir $(DISTDIR)/samples/calendar
cp $(SAMPDIR)/calendar/Makefile.in $(DISTDIR)/samples/calendar cp $(SAMPDIR)/calendar/Makefile.in $(DISTDIR)/samples/calendar
cp $(SAMPDIR)/calendar/makefile.unx $(DISTDIR)/samples/calendar cp $(SAMPDIR)/calendar/makefile.unx $(DISTDIR)/samples/calendar
@@ -1056,6 +1082,10 @@ SAMPLES_DIST: ALL_GUI_DIST
cp $(SAMPDIR)/joytest/*.h $(DISTDIR)/samples/joytest cp $(SAMPDIR)/joytest/*.h $(DISTDIR)/samples/joytest
cp $(SAMPDIR)/joytest/*.wav $(DISTDIR)/samples/joytest cp $(SAMPDIR)/joytest/*.wav $(DISTDIR)/samples/joytest
mkdir $(DISTDIR)/samples/keyboard
cp $(SAMPDIR)/keyboard/Makefile.in $(DISTDIR)/samples/keyboard
cp $(SAMPDIR)/keyboard/*.cpp $(DISTDIR)/samples/keyboard
mkdir $(DISTDIR)/samples/layout mkdir $(DISTDIR)/samples/layout
cp $(SAMPDIR)/layout/Makefile.in $(DISTDIR)/samples/layout cp $(SAMPDIR)/layout/Makefile.in $(DISTDIR)/samples/layout
cp $(SAMPDIR)/layout/makefile.unx $(DISTDIR)/samples/layout cp $(SAMPDIR)/layout/makefile.unx $(DISTDIR)/samples/layout
@@ -1113,6 +1143,11 @@ SAMPLES_DIST: ALL_GUI_DIST
cp $(SAMPDIR)/mobile/wxedit/Makefile.in $(DISTDIR)/samples/mobile/wxedit cp $(SAMPDIR)/mobile/wxedit/Makefile.in $(DISTDIR)/samples/mobile/wxedit
cp $(SAMPDIR)/mobile/wxedit/*.cpp $(DISTDIR)/samples/mobile/wxedit cp $(SAMPDIR)/mobile/wxedit/*.cpp $(DISTDIR)/samples/mobile/wxedit
cp $(SAMPDIR)/mobile/wxedit/*.h $(DISTDIR)/samples/mobile/wxedit cp $(SAMPDIR)/mobile/wxedit/*.h $(DISTDIR)/samples/mobile/wxedit
mkdir $(DISTDIR)/samples/mobile/styles
cp $(SAMPDIR)/mobile/styles/Makefile.in $(DISTDIR)/samples/mobile/styles
cp $(SAMPDIR)/mobile/styles/*.cpp $(DISTDIR)/samples/mobile/styles
cp $(SAMPDIR)/mobile/styles/*.h $(DISTDIR)/samples/mobile/styles
cp $(SAMPDIR)/mobile/styles/*.jpg $(DISTDIR)/samples/mobile/styles
mkdir $(DISTDIR)/samples/dialup mkdir $(DISTDIR)/samples/dialup
cp $(SAMPDIR)/dialup/Makefile.in $(DISTDIR)/samples/dialup cp $(SAMPDIR)/dialup/Makefile.in $(DISTDIR)/samples/dialup
@@ -1308,6 +1343,18 @@ UTILS_DIST: ALL_GUI_DIST
cp $(UTILSDIR)/tex2rtf/src/*.cpp $(DISTDIR)/utils/tex2rtf/src cp $(UTILSDIR)/tex2rtf/src/*.cpp $(DISTDIR)/utils/tex2rtf/src
cp $(UTILSDIR)/tex2rtf/src/tex2rtf.* $(DISTDIR)/utils/tex2rtf/src cp $(UTILSDIR)/tex2rtf/src/tex2rtf.* $(DISTDIR)/utils/tex2rtf/src
mkdir $(DISTDIR)/utils/emulator
mkdir $(DISTDIR)/utils/emulator/src
mkdir $(DISTDIR)/utils/emulator/docs
cp $(UTILSDIR)/emulator/*.in $(DISTDIR)/utils/emulator
cp $(UTILSDIR)/emulator/src/*.h $(DISTDIR)/utils/emulator/src
cp $(UTILSDIR)/emulator/src/*.in $(DISTDIR)/utils/emulator/src
cp $(UTILSDIR)/emulator/src/*.cpp $(DISTDIR)/utils/emulator/src
cp $(UTILSDIR)/emulator/src/*.jpg $(DISTDIR)/utils/emulator/src
cp $(UTILSDIR)/emulator/src/*.wxe $(DISTDIR)/utils/emulator/src
cp $(UTILSDIR)/emulator/docs/*.txt $(DISTDIR)/utils/emulator/docs
cp $(UTILSDIR)/emulator/docs/*.jpg $(DISTDIR)/utils/emulator/docs
mkdir $(DISTDIR)/utils/makegen mkdir $(DISTDIR)/utils/makegen
mkdir $(DISTDIR)/utils/makegen/templates mkdir $(DISTDIR)/utils/makegen/templates
cp $(UTILSDIR)/makegen/Makefile.in $(DISTDIR)/utils/makegen cp $(UTILSDIR)/makegen/Makefile.in $(DISTDIR)/utils/makegen
@@ -1322,7 +1369,29 @@ UTILS_DIST: ALL_GUI_DIST
cp $(UTILSDIR)/HelpGen/Makefile.in $(DISTDIR)/utils/HelpGen cp $(UTILSDIR)/HelpGen/Makefile.in $(DISTDIR)/utils/HelpGen
cp $(UTILSDIR)/HelpGen/src/*.* $(DISTDIR)/utils/HelpGen/src cp $(UTILSDIR)/HelpGen/src/*.* $(DISTDIR)/utils/HelpGen/src
cp -R $(UTILSDIR)/dialoged $(DISTDIR)/utils/dialoged mkdir $(DISTDIR)/utils/dialoged
mkdir $(DISTDIR)/utils/dialoged/src
mkdir $(DISTDIR)/utils/dialoged/src/bitmaps
mkdir $(DISTDIR)/utils/dialoged/docs
cp $(UTILSDIR)/dialoged/Makefile.in $(DISTDIR)/utils/dialoged
cp $(UTILSDIR)/dialoged/src/*.h $(DISTDIR)/utils/dialoged/src
cp $(UTILSDIR)/dialoged/src/*.cpp $(DISTDIR)/utils/dialoged/src
cp $(UTILSDIR)/dialoged/src/Makefile.in $(DISTDIR)/utils/dialoged/src
cp $(UTILSDIR)/dialoged/src/makefile.unx $(DISTDIR)/utils/dialoged/src
cp $(UTILSDIR)/dialoged/src/bitmaps/*.xpm $(DISTDIR)/utils/dialoged/src/bitmaps
cp $(UTILSDIR)/dialoged/docs/*.tex $(DISTDIR)/utils/dialoged/docs
cp $(UTILSDIR)/dialoged/docs/*.ini $(DISTDIR)/utils/dialoged/docs
cp $(UTILSDIR)/dialoged/docs/*.gif $(DISTDIR)/utils/dialoged/docs
mkdir $(DISTDIR)/utils/helpview
mkdir $(DISTDIR)/utils/helpview/src
mkdir $(DISTDIR)/utils/helpview/src/bitmaps
cp $(UTILSDIR)/helpview/Makefile.in $(DISTDIR)/utils/helpview
cp $(UTILSDIR)/helpview/src/*.h $(DISTDIR)/utils/helpview/src
cp $(UTILSDIR)/helpview/src/*.cpp $(DISTDIR)/utils/helpview/src
cp $(UTILSDIR)/helpview/src/Makefile.in $(DISTDIR)/utils/helpview/src
cp $(UTILSDIR)/helpview/src/test.zip $(DISTDIR)/utils/helpview/src
cp $(UTILSDIR)/helpview/src/bitmaps/*.xpm $(DISTDIR)/utils/helpview/src/bitmaps
MISC_DIST: ALL_GUI_DIST MISC_DIST: ALL_GUI_DIST
mkdir $(DISTDIR)/misc mkdir $(DISTDIR)/misc

1036
configure vendored

File diff suppressed because it is too large Load Diff

View File

@@ -1130,27 +1130,6 @@ else
AC_MSG_RESULT(base ($host_alias hosted) only) AC_MSG_RESULT(base ($host_alias hosted) only)
fi fi
dnl ---------------------------------------------------------------------------
dnl When we are using gcc on OS/2, we want to be either using resources (PM)
dnl or a more complete POSIX emulation for Motif/GTK+/X11
dnl ---------------------------------------------------------------------------
dnl (OS/2-only piece)
case "${host}" in
*-pc-os2_emx | *-pc-os2-emx )
dnl Explicitly link -lstdcpp, since we are using "gcc" not "g++"/"c++".
LIBS="$LIBS -lstdcpp"
if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_GTK" = 1 -o "$wxUSE_X11" = 1; then
dnl More complete Unix emulation for unix-like ports
dnl by linking in POSIX/2's cExt (if available).
AC_CHECK_LIB(cExt, drand48, LIBS="$LIBS -lcExt")
else
dnl Include resources for the "native" port (wxPM).
RESPROGRAMOBJ="\${top_srcdir}/include/wx/os2/wx.res"
fi
;;
esac
dnl (end of OS/2-only piece)
dnl --------------------------------------------------------------------------- dnl ---------------------------------------------------------------------------
dnl When we are using Cygwin with Motif/GTK+, we want it to appear like dnl When we are using Cygwin with Motif/GTK+, we want it to appear like
dnl 'just' a POSIX platform, so the Win32 API must not be available dnl 'just' a POSIX platform, so the Win32 API must not be available
@@ -1360,6 +1339,27 @@ AC_PROG_LEX
dnl needed for making link to setup.h dnl needed for making link to setup.h
AC_PROG_LN_S AC_PROG_LN_S
dnl ---------------------------------------------------------------------------
dnl When we are using gcc on OS/2, we want to be either using resources (PM)
dnl or a more complete POSIX emulation for Motif/GTK+/X11
dnl ---------------------------------------------------------------------------
dnl (OS/2-only piece)
case "${host}" in
*-pc-os2_emx | *-pc-os2-emx )
dnl Explicitly link -lstdcpp, since we are using "gcc" not "g++"/"c++".
LIBS="$LIBS -lstdcpp"
if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_GTK" = 1 -o "$wxUSE_X11" = 1; then
dnl More complete Unix emulation for unix-like ports
dnl by linking in POSIX/2's cExt (if available).
AC_CHECK_LIB(cExt, drand48, LIBS="$LIBS -lcExt")
else
dnl Include resources for the "native" port (wxPM).
RESPROGRAMOBJ="\${top_srcdir}/include/wx/os2/wx.res"
fi
;;
esac
dnl (end of OS/2-only piece)
dnl ------------------------------------------------------------------------ dnl ------------------------------------------------------------------------
dnl Check for headers dnl Check for headers
dnl ------------------------------------------------------------------------ dnl ------------------------------------------------------------------------
@@ -1835,15 +1835,24 @@ dnl ------------------------------------------------------------------------
TIFF_INCLUDE= TIFF_INCLUDE=
TIFF_LINK= TIFF_LINK=
TIFF_PREREQ_LINKS=-lm
if test "$wxUSE_LIBTIFF" != "no" ; then if test "$wxUSE_LIBTIFF" != "no" ; then
AC_DEFINE(wxUSE_LIBTIFF) AC_DEFINE(wxUSE_LIBTIFF)
if test "$wxUSE_LIBTIFF" = "sys" -o "$wxUSE_LIBTIFF" = "yes" ; then if test "$wxUSE_LIBTIFF" = "sys" -o "$wxUSE_LIBTIFF" = "yes" ; then
dnl libtiff may depend on libjpeg and libz so use them in the test
dnl below or it would fail
if test "$wxUSE_LIBJPEG" = "sys"; then
TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $JPEG_LINK"
fi
if test "$wxUSE_ZLIB" = "sys"; then
TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $ZLIB_LINK"
fi
AC_CHECK_HEADER(tiffio.h, AC_CHECK_HEADER(tiffio.h,
AC_CHECK_LIB(tiff, TIFFError, AC_CHECK_LIB(tiff, TIFFError,
TIFF_LINK=" -ltiff", TIFF_LINK=" -ltiff",
, ,
-lm) $TIFF_PREREQ_LINKS)
) )
if test "x$TIFF_LINK" = "x" ; then if test "x$TIFF_LINK" = "x" ; then
@@ -1869,6 +1878,7 @@ dnl search for toolkit (widget sets)
dnl ---------------------------------------------------------------- dnl ----------------------------------------------------------------
AFMINSTALL= AFMINSTALL=
WIN32INSTALL=
TOOLKIT= TOOLKIT=
TOOLKIT_INCLUDE= TOOLKIT_INCLUDE=
@@ -1924,6 +1934,9 @@ if test "$USE_WIN32" = 1 ; then
RESFLAGS="--include-dir \$(top_srcdir)/include --include-dir \$(top_srcdir)/\$(program_dir) --define __WIN32__ --define __WIN95__ --define __GNUWIN32__" RESFLAGS="--include-dir \$(top_srcdir)/include --include-dir \$(top_srcdir)/\$(program_dir) --define __WIN32__ --define __WIN95__ --define __GNUWIN32__"
RESPROGRAMOBJ="\$(PROGRAM)_resources.o" RESPROGRAMOBJ="\$(PROGRAM)_resources.o"
dnl install Win32-specific files in "make install"
WIN32INSTALL=win32install
fi fi
if test "$USE_DARWIN" = 1; then if test "$USE_DARWIN" = 1; then
@@ -2075,7 +2088,7 @@ equivalent variable and GTK+ is version 1.2.3 or above.
dnl FIXME_MGL - test for MGL variants for freebsd etc. dnl FIXME_MGL - test for MGL variants for freebsd etc.
case "${host}" in case "${host}" in
*-*-linux* ) *-*-linux* )
mgl_os=linux/gcc/glibc mgl_os="linux/gcc/glibc*"
;; ;;
*-pc-msdosdjgpp ) *-pc-msdosdjgpp )
mgl_os=dos32/dj2 mgl_os=dos32/dj2
@@ -5190,6 +5203,7 @@ AC_SUBST(WX_MINOR_VERSION_NUMBER)
AC_SUBST(WX_RELEASE_NUMBER) AC_SUBST(WX_RELEASE_NUMBER)
AC_SUBST(WX_LIBRARY_NAME_STATIC) AC_SUBST(WX_LIBRARY_NAME_STATIC)
AC_SUBST(WX_LIBRARY_NAME_SHARED) AC_SUBST(WX_LIBRARY_NAME_SHARED)
AC_SUBST(WX_LIBRARY_BASENAME)
AC_SUBST(WX_LIBRARY_IMPORTLIB) AC_SUBST(WX_LIBRARY_IMPORTLIB)
AC_SUBST(WX_TARGET_LIBRARY) AC_SUBST(WX_TARGET_LIBRARY)
AC_SUBST(WX_LIBRARY_LINK1) AC_SUBST(WX_LIBRARY_LINK1)
@@ -5225,6 +5239,7 @@ AC_SUBST(WXDEBUG_DEFINE)
dnl toolkit options dnl toolkit options
AC_SUBST(USE_GUI) AC_SUBST(USE_GUI)
AC_SUBST(AFMINSTALL) AC_SUBST(AFMINSTALL)
AC_SUBST(WIN32INSTALL)
AC_SUBST(TOOLKIT) AC_SUBST(TOOLKIT)
AC_SUBST(TOOLKIT_DIR) AC_SUBST(TOOLKIT_DIR)
AC_SUBST(TOOLKIT_VPATH) AC_SUBST(TOOLKIT_VPATH)

View File

@@ -21,7 +21,7 @@ class wxBoundingBox
{ {
public: public:
wxBoundingBox(); wxBoundingBox();
wxBoundingBox(wxBoundingBox&); wxBoundingBox(const wxBoundingBox&);
wxBoundingBox(const wxPoint2DDouble&); wxBoundingBox(const wxPoint2DDouble&);
wxBoundingBox(double xmin, double ymin, double xmax, double ymax); wxBoundingBox(double xmin, double ymin, double xmax, double ymax);

View File

@@ -142,19 +142,21 @@ typedef void (wxEvtHandler::*wxDynamicSashUnifyEventFunction)(wxDynamicSashSplit
/* /*
wxDynamicSashWindow. See above. wxDynamicSashWindow. See above.
*/ */
extern const wxChar* GIZMODLLEXPORT wxDynamicSashWindowNameStr;
class GIZMODLLEXPORT wxDynamicSashWindow : public wxWindow { class GIZMODLLEXPORT wxDynamicSashWindow : public wxWindow {
public: public:
wxDynamicSashWindow(); wxDynamicSashWindow();
wxDynamicSashWindow(wxWindow *parent, wxWindowID id, wxDynamicSashWindow(wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
long style = wxCLIP_CHILDREN | wxDS_MANAGE_SCROLLBARS | wxDS_DRAG_CORNER, long style = wxCLIP_CHILDREN | wxDS_MANAGE_SCROLLBARS | wxDS_DRAG_CORNER,
const wxString& name = "dynamicSashWindow"); const wxString& name = wxDynamicSashWindowNameStr);
virtual ~wxDynamicSashWindow(); virtual ~wxDynamicSashWindow();
virtual bool Create(wxWindow *parent, wxWindowID id, virtual bool Create(wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
long style = wxCLIP_CHILDREN | wxDS_MANAGE_SCROLLBARS | wxDS_DRAG_CORNER, long style = wxCLIP_CHILDREN | wxDS_MANAGE_SCROLLBARS | wxDS_DRAG_CORNER,
const wxString& name = "dynamicSashWindow"); const wxString& name = wxDynamicSashWindowNameStr);
virtual wxScrollBar *GetHScrollBar(const wxWindow *child) const; virtual wxScrollBar *GetHScrollBar(const wxWindow *child) const;
virtual wxScrollBar *GetVScrollBar(const wxWindow *child) const; virtual wxScrollBar *GetVScrollBar(const wxWindow *child) const;

View File

@@ -353,7 +353,7 @@ class wxShape: public wxShapeEvtHandler
virtual int GetRegionId(const wxString& name); virtual int GetRegionId(const wxString& name);
// Construct names for regions, unique even for children of a composite. // Construct names for regions, unique even for children of a composite.
virtual void NameRegions(const wxString& parentName = ""); virtual void NameRegions(const wxString& parentName = wxEmptyString);
// Get list of regions // Get list of regions
inline wxList& GetRegions() const { return (wxList&) m_regions; } inline wxList& GetRegions() const { return (wxList&) m_regions; }

View File

@@ -22,7 +22,7 @@ class wxShapeTextLine: public wxObject
{ {
DECLARE_DYNAMIC_CLASS(wxShapeTextLine) DECLARE_DYNAMIC_CLASS(wxShapeTextLine)
public: public:
wxShapeTextLine(double the_x = 0.0, double the_y = 0.0, const wxString& the_line = ""); wxShapeTextLine(double the_x = 0.0, double the_y = 0.0, const wxString& the_line = wxEmptyString);
~wxShapeTextLine(); ~wxShapeTextLine();
inline double GetX() const { return m_x; } inline double GetX() const { return m_x; }

View File

@@ -25,7 +25,8 @@ class wxOGLConstraintType: public wxObject
{ {
DECLARE_DYNAMIC_CLASS(wxOGLConstraintType) DECLARE_DYNAMIC_CLASS(wxOGLConstraintType)
public: public:
wxOGLConstraintType(int type = 0, const wxString& name = "", const wxString& phrase = ""); wxOGLConstraintType(int type = 0, const wxString& name = wxEmptyString,
const wxString& phrase = wxEmptyString);
~wxOGLConstraintType(); ~wxOGLConstraintType();
public: public:
@@ -60,8 +61,10 @@ class wxOGLConstraint: public wxObject
{ {
DECLARE_DYNAMIC_CLASS(wxOGLConstraint) DECLARE_DYNAMIC_CLASS(wxOGLConstraint)
public: public:
wxOGLConstraint() { m_xSpacing = 0.0; m_ySpacing = 0.0; m_constraintType = 0; m_constraintName = ""; m_constraintId = 0; wxOGLConstraint() {
m_constrainingObject = NULL; } m_xSpacing = 0.0; m_ySpacing = 0.0; m_constraintType = 0;
m_constraintName = wxEmptyString; m_constraintId = 0;
m_constrainingObject = NULL; }
wxOGLConstraint(int type, wxShape *constraining, wxList& constrained); wxOGLConstraint(int type, wxShape *constraining, wxList& constrained);
~wxOGLConstraint(); ~wxOGLConstraint();

View File

@@ -48,7 +48,7 @@ class wxPseudoMetaFile: public wxObject
// Rotate about the given axis by theta radians from the x axis. // Rotate about the given axis by theta radians from the x axis.
void Rotate(double x, double y, double theta); void Rotate(double x, double y, double theta);
bool LoadFromMetaFile(char *filename, double *width, double *height); bool LoadFromMetaFile(const wxString& filename, double *width, double *height);
void GetBounds(double *minX, double *minY, double *maxX, double *maxY); void GetBounds(double *minX, double *minY, double *maxX, double *maxY);
@@ -157,7 +157,7 @@ class wxDrawnShape: public wxRectangleShape
inline double GetRotation() const { return m_rotation; } inline double GetRotation() const { return m_rotation; }
void SetSize(double w, double h, bool recursive = TRUE); void SetSize(double w, double h, bool recursive = TRUE);
bool LoadFromMetaFile(char *filename); bool LoadFromMetaFile(const wxString& filename);
inline void SetSaveToFile(bool save) { m_saveToFile = save; } inline void SetSaveToFile(bool save) { m_saveToFile = save; }
inline wxPseudoMetaFile& GetMetaFile(int which = 0) const { return (wxPseudoMetaFile&) m_metafiles[which]; } inline wxPseudoMetaFile& GetMetaFile(int which = 0) const { return (wxPseudoMetaFile&) m_metafiles[which]; }

View File

@@ -51,7 +51,7 @@ class wxArrowHead: public wxObject
DECLARE_DYNAMIC_CLASS(wxArrowHead) DECLARE_DYNAMIC_CLASS(wxArrowHead)
public: public:
wxArrowHead(WXTYPE type = 0, int end = 0, double size = 0.0, double dist = 0.0, const wxString& name = "", wxPseudoMetaFile *mf = NULL, wxArrowHead(WXTYPE type = 0, int end = 0, double size = 0.0, double dist = 0.0, const wxString& name = wxEmptyString, wxPseudoMetaFile *mf = NULL,
long arrowId = -1); long arrowId = -1);
~wxArrowHead(); ~wxArrowHead();
wxArrowHead(wxArrowHead& toCopy); wxArrowHead(wxArrowHead& toCopy);
@@ -210,8 +210,9 @@ class wxLineShape: public wxShape
// Add an arrowhead. // Add an arrowhead.
wxArrowHead *AddArrow(WXTYPE type, int end = ARROW_POSITION_END, wxArrowHead *AddArrow(WXTYPE type, int end = ARROW_POSITION_END,
double arrowSize = 10.0, double xOffset = 0.0, const wxString& name = "", double arrowSize = 10.0, double xOffset = 0.0,
wxPseudoMetaFile *mf = NULL, long arrowId = -1); const wxString& name = wxEmptyString,
wxPseudoMetaFile *mf = NULL, long arrowId = -1);
// Add an arrowhead in the position indicated by the reference // Add an arrowhead in the position indicated by the reference
// list of arrowheads, which contains all legal arrowheads for this // list of arrowheads, which contains all legal arrowheads for this

View File

@@ -195,7 +195,7 @@ class wxXMetaFile: public wxObject
wxList metaRecords; wxList metaRecords;
wxList gdiObjects; // List of wxMetaRecord objects created with Create..., wxList gdiObjects; // List of wxMetaRecord objects created with Create...,
// referenced by position in list by SelectObject // referenced by position in list by SelectObject
wxXMetaFile(char *file = NULL); wxXMetaFile(const wxChar* file = NULL);
~wxXMetaFile(void); ~wxXMetaFile(void);
// After this is called, the metafile cannot be used for anything // After this is called, the metafile cannot be used for anything
@@ -204,7 +204,7 @@ class wxXMetaFile: public wxObject
bool Play(wxDC *dc); bool Play(wxDC *dc);
inline bool Ok(void) const { return ok; } inline bool Ok(void) const { return ok; }
bool ReadFile(char *file); bool ReadFile(const wxChar *file);
}; };
#endif #endif

View File

@@ -26,7 +26,7 @@ wxBoundingBox::wxBoundingBox()
} }
wxBoundingBox::wxBoundingBox(wxBoundingBox &other) wxBoundingBox::wxBoundingBox(const wxBoundingBox &other)
{ {
m_minx = other.m_minx; m_minx = other.m_minx;
m_miny = other.m_miny; m_miny = other.m_miny;

View File

@@ -29,6 +29,10 @@
#include "wx/gizmos/dynamicsash.h" #include "wx/gizmos/dynamicsash.h"
const wxChar* wxDynamicSashWindowNameStr = wxT("dynamicSashWindow");
/* /*
wxDynamicSashWindow works by internally storing a tree of Implementation wxDynamicSashWindow works by internally storing a tree of Implementation
objects (wxDynamicSsahWindowImpl) and Leaf objects objects (wxDynamicSsahWindowImpl) and Leaf objects

View File

@@ -286,7 +286,7 @@ wxShape::wxShape(wxShapeCanvas *can)
m_brush = wxWHITE_BRUSH; m_brush = wxWHITE_BRUSH;
m_font = g_oglNormalFont; m_font = g_oglNormalFont;
m_textColour = wxBLACK; m_textColour = wxBLACK;
m_textColourName = "BLACK"; m_textColourName = wxT("BLACK");
m_visible = FALSE; m_visible = FALSE;
m_selected = FALSE; m_selected = FALSE;
m_attachmentMode = ATTACHMENT_MODE_NONE; m_attachmentMode = ATTACHMENT_MODE_NONE;
@@ -305,7 +305,7 @@ wxShape::wxShape(wxShapeCanvas *can)
m_shadowBrush = wxBLACK_BRUSH; m_shadowBrush = wxBLACK_BRUSH;
m_textMarginX = 5; m_textMarginX = 5;
m_textMarginY = 5; m_textMarginY = 5;
m_regionName = "0"; m_regionName = wxT("0");
m_centreResize = TRUE; m_centreResize = TRUE;
m_maintainAspectRatio = FALSE; m_maintainAspectRatio = FALSE;
m_highlighted = FALSE; m_highlighted = FALSE;
@@ -319,10 +319,10 @@ wxShape::wxShape(wxShapeCanvas *can)
// the region eventually (the duplication is for compatibility) // the region eventually (the duplication is for compatibility)
wxShapeRegion *region = new wxShapeRegion; wxShapeRegion *region = new wxShapeRegion;
m_regions.Append(region); m_regions.Append(region);
region->SetName("0"); region->SetName(wxT("0"));
region->SetFont(g_oglNormalFont); region->SetFont(g_oglNormalFont);
region->SetFormatMode(FORMAT_CENTRE_HORIZ | FORMAT_CENTRE_VERT); region->SetFormatMode(FORMAT_CENTRE_HORIZ | FORMAT_CENTRE_VERT);
region->SetColour("BLACK"); region->SetColour(wxT("BLACK"));
} }
wxShape::~wxShape() wxShape::~wxShape()
@@ -616,7 +616,7 @@ void wxShape::FormatText(wxDC& dc, const wxString& s, int i)
node = stringList->First(); node = stringList->First();
while (node) while (node)
{ {
char *s = (char *)node->Data(); wxChar *s = (wxChar *)node->Data();
wxShapeTextLine *line = new wxShapeTextLine(0.0, 0.0, s); wxShapeTextLine *line = new wxShapeTextLine(0.0, 0.0, s);
region->GetFormattedText().Append((wxObject *)line); region->GetFormattedText().Append((wxObject *)line);
node = node->Next(); node = node->Next();
@@ -776,7 +776,7 @@ wxString wxShape::GetTextColour(int regionId) const
{ {
wxNode *node = m_regions.Nth(regionId); wxNode *node = m_regions.Nth(regionId);
if (!node) if (!node)
return wxString(""); return wxEmptyString;
wxShapeRegion *region = (wxShapeRegion *)node->Data(); wxShapeRegion *region = (wxShapeRegion *)node->Data();
return region->GetColour(); return region->GetColour();
} }
@@ -794,7 +794,7 @@ wxString wxShape::GetRegionName(int regionId)
{ {
wxNode *node = m_regions.Nth(regionId); wxNode *node = m_regions.Nth(regionId);
if (!node) if (!node)
return wxString(""); return wxEmptyString;
wxShapeRegion *region = (wxShapeRegion *)node->Data(); wxShapeRegion *region = (wxShapeRegion *)node->Data();
return region->GetName(); return region->GetName();
} }
@@ -822,7 +822,7 @@ void wxShape::NameRegions(const wxString& parentName)
for (int i = 0; i < n; i++) for (int i = 0; i < n; i++)
{ {
if (parentName.Length() > 0) if (parentName.Length() > 0)
buff << parentName << "." << i; buff << parentName << wxT(".") << i;
else else
buff << i; buff << i;
SetRegionName(buff, i); SetRegionName(buff, i);
@@ -834,7 +834,7 @@ void wxShape::NameRegions(const wxString& parentName)
buff.Empty(); buff.Empty();
wxShape *child = (wxShape *)node->Data(); wxShape *child = (wxShape *)node->Data();
if (parentName.Length() > 0) if (parentName.Length() > 0)
buff << parentName << "." << j; buff << parentName << wxT(".") << j;
else else
buff << j; buff << j;
child->NameRegions(buff); child->NameRegions(buff);

View File

@@ -1761,7 +1761,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxShapeRegion, wxObject)
wxShapeRegion::wxShapeRegion() wxShapeRegion::wxShapeRegion()
{ {
m_regionText = ""; m_regionText = wxEmptyString;
m_font = g_oglNormalFont; m_font = g_oglNormalFont;
m_minHeight = 5.0; m_minHeight = 5.0;
m_minWidth = 5.0; m_minWidth = 5.0;
@@ -1773,9 +1773,9 @@ wxShapeRegion::wxShapeRegion()
m_regionProportionX = -1.0; m_regionProportionX = -1.0;
m_regionProportionY = -1.0; m_regionProportionY = -1.0;
m_formatMode = FORMAT_CENTRE_HORIZ | FORMAT_CENTRE_VERT; m_formatMode = FORMAT_CENTRE_HORIZ | FORMAT_CENTRE_VERT;
m_regionName = ""; m_regionName = wxEmptyString;
m_textColour = "BLACK"; m_textColour = wxT("BLACK");
m_penColour = "BLACK"; m_penColour = wxT("BLACK");
m_penStyle = wxSOLID; m_penStyle = wxSOLID;
m_actualColourObject = NULL; m_actualColourObject = NULL;
m_actualPenObject = NULL; m_actualPenObject = NULL;
@@ -1897,7 +1897,7 @@ wxPen *wxShapeRegion::GetActualPen()
return m_actualPenObject; return m_actualPenObject;
if (!m_penColour) return NULL; if (!m_penColour) return NULL;
if (m_penColour == "Invisible") if (m_penColour == wxT("Invisible"))
return NULL; return NULL;
m_actualPenObject = wxThePenList->FindOrCreatePen(m_penColour, 1, m_penStyle); m_actualPenObject = wxThePenList->FindOrCreatePen(m_penColour, 1, m_penStyle);
return m_actualPenObject; return m_actualPenObject;

View File

@@ -41,7 +41,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxBitmapShape, wxShape)
wxBitmapShape::wxBitmapShape():wxRectangleShape(100.0, 50.0) wxBitmapShape::wxBitmapShape():wxRectangleShape(100.0, 50.0)
{ {
m_filename = ""; m_filename = wxEmptyString;
} }
wxBitmapShape::~wxBitmapShape() wxBitmapShape::~wxBitmapShape()

View File

@@ -827,10 +827,10 @@ wxDivisionShape::wxDivisionShape()
m_handleSide = DIVISION_SIDE_NONE; m_handleSide = DIVISION_SIDE_NONE;
m_leftSidePen = wxBLACK_PEN; m_leftSidePen = wxBLACK_PEN;
m_topSidePen = wxBLACK_PEN; m_topSidePen = wxBLACK_PEN;
m_leftSideColour = "BLACK"; m_leftSideColour = wxT("BLACK");
m_topSideColour = "BLACK"; m_topSideColour = wxT("BLACK");
m_leftSideStyle = "Solid"; m_leftSideStyle = wxT("Solid");
m_topSideStyle = "Solid"; m_topSideStyle = wxT("Solid");
ClearRegions(); ClearRegions();
} }
@@ -1574,11 +1574,11 @@ bool wxDivisionShape::ResizeAdjoining(int side, double newPos, bool test)
class OGLPopupDivisionMenu : public wxMenu { class OGLPopupDivisionMenu : public wxMenu {
public: public:
OGLPopupDivisionMenu() : wxMenu() { OGLPopupDivisionMenu() : wxMenu() {
Append(DIVISION_MENU_SPLIT_HORIZONTALLY, "Split horizontally"); Append(DIVISION_MENU_SPLIT_HORIZONTALLY, wxT("Split horizontally"));
Append(DIVISION_MENU_SPLIT_VERTICALLY, "Split vertically"); Append(DIVISION_MENU_SPLIT_VERTICALLY, wxT("Split vertically"));
AppendSeparator(); AppendSeparator();
Append(DIVISION_MENU_EDIT_LEFT_EDGE, "Edit left edge"); Append(DIVISION_MENU_EDIT_LEFT_EDGE, wxT("Edit left edge"));
Append(DIVISION_MENU_EDIT_TOP_EDGE, "Edit top edge"); Append(DIVISION_MENU_EDIT_TOP_EDGE, wxT("Edit top edge"));
} }
void OnMenu(wxCommandEvent& event); void OnMenu(wxCommandEvent& event);
@@ -1626,7 +1626,7 @@ void OGLPopupDivisionMenu::OnMenu(wxCommandEvent& event)
void wxDivisionShape::EditEdge(int side) void wxDivisionShape::EditEdge(int side)
{ {
wxMessageBox("EditEdge() not implemented", "OGL", wxOK); wxMessageBox(wxT("EditEdge() not implemented"), wxT("OGL"), wxOK);
#if 0 #if 0
wxBeginBusyCursor(); wxBeginBusyCursor();

View File

@@ -58,51 +58,51 @@ void OGLInitializeConstraintTypes()
wxOGLConstraintTypes = new wxList(wxKEY_INTEGER); wxOGLConstraintTypes = new wxList(wxKEY_INTEGER);
wxOGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_VERTICALLY, wxOGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_VERTICALLY,
new wxOGLConstraintType(gyCONSTRAINT_CENTRED_VERTICALLY, "Centre vertically", "centred vertically w.r.t.")); new wxOGLConstraintType(gyCONSTRAINT_CENTRED_VERTICALLY, wxT("Centre vertically"), wxT("centred vertically w.r.t.")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_HORIZONTALLY, wxOGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_HORIZONTALLY,
new wxOGLConstraintType(gyCONSTRAINT_CENTRED_HORIZONTALLY, "Centre horizontally", "centred horizontally w.r.t.")); new wxOGLConstraintType(gyCONSTRAINT_CENTRED_HORIZONTALLY, wxT("Centre horizontally"), wxT("centred horizontally w.r.t.")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_BOTH, wxOGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_BOTH,
new wxOGLConstraintType(gyCONSTRAINT_CENTRED_BOTH, "Centre", "centred w.r.t.")); new wxOGLConstraintType(gyCONSTRAINT_CENTRED_BOTH, wxT("Centre"), wxT("centred w.r.t.")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_LEFT_OF, wxOGLConstraintTypes->Append(gyCONSTRAINT_LEFT_OF,
new wxOGLConstraintType(gyCONSTRAINT_LEFT_OF, "Left of", "left of")); new wxOGLConstraintType(gyCONSTRAINT_LEFT_OF, wxT("Left of"), wxT("left of")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_RIGHT_OF, wxOGLConstraintTypes->Append(gyCONSTRAINT_RIGHT_OF,
new wxOGLConstraintType(gyCONSTRAINT_RIGHT_OF, "Right of", "right of")); new wxOGLConstraintType(gyCONSTRAINT_RIGHT_OF, wxT("Right of"), wxT("right of")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_ABOVE, wxOGLConstraintTypes->Append(gyCONSTRAINT_ABOVE,
new wxOGLConstraintType(gyCONSTRAINT_ABOVE, "Above", "above")); new wxOGLConstraintType(gyCONSTRAINT_ABOVE, wxT("Above"), wxT("above")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_BELOW, wxOGLConstraintTypes->Append(gyCONSTRAINT_BELOW,
new wxOGLConstraintType(gyCONSTRAINT_BELOW, "Below", "below")); new wxOGLConstraintType(gyCONSTRAINT_BELOW, wxT("Below"), wxT("below")));
// Alignment // Alignment
wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_TOP, wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_TOP,
new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_TOP, "Top-aligned", "aligned to the top of")); new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_TOP, wxT("Top-aligned"), wxT("aligned to the top of")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_BOTTOM, wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_BOTTOM,
new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_BOTTOM, "Bottom-aligned", "aligned to the bottom of")); new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_BOTTOM, wxT("Bottom-aligned"), wxT("aligned to the bottom of")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_LEFT, wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_LEFT,
new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_LEFT, "Left-aligned", "aligned to the left of")); new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_LEFT, wxT("Left-aligned"), wxT("aligned to the left of")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_RIGHT, wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_RIGHT,
new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_RIGHT, "Right-aligned", "aligned to the right of")); new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_RIGHT, wxT("Right-aligned"), wxT("aligned to the right of")));
// Mid-alignment // Mid-alignment
wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_TOP, wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_TOP,
new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_TOP, "Top-midaligned", "centred on the top of")); new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_TOP, wxT("Top-midaligned"), wxT("centred on the top of")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_BOTTOM, wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_BOTTOM,
new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_BOTTOM, "Bottom-midaligned", "centred on the bottom of")); new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_BOTTOM, wxT("Bottom-midaligned"), wxT("centred on the bottom of")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_LEFT, wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_LEFT,
new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_LEFT, "Left-midaligned", "centred on the left of")); new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_LEFT, wxT("Left-midaligned"), wxT("centred on the left of")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_RIGHT, wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_RIGHT,
new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_RIGHT, "Right-midaligned", "centred on the right of")); new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_RIGHT, wxT("Right-midaligned"), wxT("centred on the right of")));
} }
void OGLCleanUpConstraintTypes() void OGLCleanUpConstraintTypes()
@@ -137,7 +137,7 @@ wxOGLConstraint::wxOGLConstraint(int type, wxShape *constraining, wxList& constr
m_constrainingObject = constraining; m_constrainingObject = constraining;
m_constraintId = 0; m_constraintId = 0;
m_constraintName = "noname"; m_constraintName = wxT("noname");
wxNode *node = constrained.First(); wxNode *node = constrained.First();
while (node) while (node)

View File

@@ -434,7 +434,7 @@ void wxDividedShape::ReadAttributes(wxExpr *clause)
void wxDividedShape::EditRegions() void wxDividedShape::EditRegions()
{ {
wxMessageBox("EditRegions() is unimplemented.", "OGL", wxOK); wxMessageBox(wxT("EditRegions() is unimplemented."), wxT("OGL"), wxOK);
// TODO // TODO
#if 0 #if 0

View File

@@ -292,7 +292,7 @@ void wxDrawnShape::Copy(wxShape& copy)
drawnCopy.m_currentAngle = m_currentAngle; drawnCopy.m_currentAngle = m_currentAngle;
} }
bool wxDrawnShape::LoadFromMetaFile(char *filename) bool wxDrawnShape::LoadFromMetaFile(const wxString& filename)
{ {
return m_metafiles[0].LoadFromMetaFile(filename, &m_width, &m_height); return m_metafiles[0].LoadFromMetaFile(filename, &m_width, &m_height);
} }
@@ -1825,7 +1825,7 @@ void wxPseudoMetaFile::Copy(wxPseudoMetaFile& copy)
* *
*/ */
bool wxPseudoMetaFile::LoadFromMetaFile(char *filename, double *rwidth, double *rheight) bool wxPseudoMetaFile::LoadFromMetaFile(const wxString& filename, double *rwidth, double *rheight)
{ {
if (!wxFileExists(filename)) if (!wxFileExists(filename))
return NULL; return NULL;

View File

@@ -77,17 +77,17 @@ wxLineShape::wxLineShape()
// and make the three line regions. // and make the three line regions.
ClearRegions(); ClearRegions();
wxShapeRegion *newRegion = new wxShapeRegion; wxShapeRegion *newRegion = new wxShapeRegion;
newRegion->SetName("Middle"); newRegion->SetName(wxT("Middle"));
newRegion->SetSize(150, 50); newRegion->SetSize(150, 50);
m_regions.Append((wxObject *)newRegion); m_regions.Append((wxObject *)newRegion);
newRegion = new wxShapeRegion; newRegion = new wxShapeRegion;
newRegion->SetName("Start"); newRegion->SetName(wxT("Start"));
newRegion->SetSize(150, 50); newRegion->SetSize(150, 50);
m_regions.Append((wxObject *)newRegion); m_regions.Append((wxObject *)newRegion);
newRegion = new wxShapeRegion; newRegion = new wxShapeRegion;
newRegion->SetName("End"); newRegion->SetName(wxT("End"));
newRegion->SetSize(150, 50); newRegion->SetSize(150, 50);
m_regions.Append((wxObject *)newRegion); m_regions.Append((wxObject *)newRegion);
@@ -234,7 +234,7 @@ void wxLineShape::FormatText(wxDC& dc, const wxString& s, int i)
node = string_list->First(); node = string_list->First();
while (node) while (node)
{ {
char *s = (char *)node->Data(); wxChar *s = (wxChar *)node->Data();
wxShapeTextLine *line = new wxShapeTextLine(0.0, 0.0, s); wxShapeTextLine *line = new wxShapeTextLine(0.0, 0.0, s);
region->GetFormattedText().Append((wxObject *)line); region->GetFormattedText().Append((wxObject *)line);
node = node->Next(); node = node->Next();

View File

@@ -98,7 +98,7 @@ wxMetaRecord::~wxMetaRecord(void)
if (stringParam) delete[] stringParam; if (stringParam) delete[] stringParam;
} }
wxXMetaFile::wxXMetaFile(char *file) wxXMetaFile::wxXMetaFile(const wxChar *file)
{ {
ok = FALSE; ok = FALSE;
top = 0.0; top = 0.0;
@@ -162,11 +162,11 @@ int AddMetaRecordHandle(wxMetaRecord *record)
return (HandleTableSize - 1); return (HandleTableSize - 1);
} }
bool wxXMetaFile::ReadFile(char *file) bool wxXMetaFile::ReadFile(const wxChar *file)
{ {
HandleTableSize = 0; HandleTableSize = 0;
FILE *handle = fopen(file, "rb"); FILE *handle = wxFopen(file, wxT("rb"));
if (!handle) return FALSE; if (!handle) return FALSE;
// Read placeable metafile header, if any // Read placeable metafile header, if any

View File

@@ -423,7 +423,7 @@ wxStringList *oglFormatText(wxDC& dc, const wxString& text, double width, double
{ {
wxString oldBuffer(buffer); wxString oldBuffer(buffer);
char *s = (char *)node->Data(); wxChar *s = (wxChar *)node->Data();
if (!s) if (!s)
{ {
// FORCE NEW LINE // FORCE NEW LINE
@@ -435,7 +435,7 @@ wxStringList *oglFormatText(wxDC& dc, const wxString& text, double width, double
else else
{ {
if (buffer.Length() != 0) if (buffer.Length() != 0)
buffer += " "; buffer += wxT(" ");
buffer += s; buffer += s;
dc.GetTextExtent(buffer, &x, &y); dc.GetTextExtent(buffer, &x, &y);
@@ -782,7 +782,7 @@ void UpdateListBox(wxListBox *item, wxList *list)
wxNode *node = list->First(); wxNode *node = list->First();
while (node) while (node)
{ {
char *s = (char *)node->Data(); wxChar *s = (wxChar *)node->Data();
item->Append(s); item->Append(s);
node = node->Next(); node = node->Next();
} }

View File

@@ -817,7 +817,7 @@ void ListBox::Select(int n) {
if (n > 4) if (n > 4)
n = n - 4; n = n - 4;
else else
n = 1; n = 0;
GETLB(id)->SetFirstItem(n); GETLB(id)->SetFirstItem(n);
#endif #endif
} }

View File

@@ -139,7 +139,6 @@ END_EVENT_TABLE()
ScintillaWX::ScintillaWX(wxStyledTextCtrl* win) { ScintillaWX::ScintillaWX(wxStyledTextCtrl* win) {
capturedMouse = false;
wMain = win; wMain = win;
stc = win; stc = win;
wheelRotation = 0; wheelRotation = 0;
@@ -221,16 +220,15 @@ void ScintillaWX::SetTicking(bool on) {
void ScintillaWX::SetMouseCapture(bool on) { void ScintillaWX::SetMouseCapture(bool on) {
if (on && !capturedMouse) if (on && !stc->HasCapture())
stc->CaptureMouse(); stc->CaptureMouse();
else if (!on && capturedMouse) else if (!on && stc->HasCapture())
stc->ReleaseMouse(); stc->ReleaseMouse();
capturedMouse = on;
} }
bool ScintillaWX::HaveMouseCapture() { bool ScintillaWX::HaveMouseCapture() {
return capturedMouse; return stc->HasCapture();
} }
@@ -429,13 +427,45 @@ long ScintillaWX::DefWndProc(unsigned int /*iMessage*/, unsigned long /*wParam*/
} }
long ScintillaWX::WndProc(unsigned int iMessage, unsigned long wParam, long lParam) { long ScintillaWX::WndProc(unsigned int iMessage, unsigned long wParam, long lParam) {
// switch (iMessage) { switch (iMessage) {
// case EM_CANPASTE: case SCI_CALLTIPSHOW: {
// return CanPaste(); // NOTE: This is copied here from scintilla/src/ScintillaBase.cxx
// default: // because of the little tweak that needs done below. When updating
return ScintillaBase::WndProc(iMessage, wParam, lParam); // new versions double check that this is still needed, and that any
// } // new code there is copied here too.
// return 0; AutoCompleteCancel();
if (!ct.wCallTip.Created()) {
Point pt = LocationFromPosition(wParam);
pt.y += vs.lineHeight;
PRectangle rc = ct.CallTipStart(currentPos, pt,
reinterpret_cast<char *>(lParam),
vs.styles[STYLE_DEFAULT].fontName,
vs.styles[STYLE_DEFAULT].sizeZoomed,
IsUnicodeMode());
// If the call-tip window would be out of the client
// space, adjust so it displays above the text.
PRectangle rcClient = GetClientRectangle();
if (rc.bottom > rcClient.bottom) {
#ifdef __WXGTK__
int offset = int(vs.lineHeight * 1.25) + rc.Height();
#else
int offset = vs.lineHeight + rc.Height();
#endif
rc.top -= offset;
rc.bottom -= offset;
}
// Now display the window.
CreateCallTipWindow(rc);
ct.wCallTip.SetPositionRelative(rc, wMain);
ct.wCallTip.Show();
}
}
break;
default:
return ScintillaBase::WndProc(iMessage, wParam, lParam);
}
return 0;
} }
@@ -607,11 +637,10 @@ void ScintillaWX::DoMiddleButtonUp(Point pt) {
void ScintillaWX::DoAddChar(int key) { void ScintillaWX::DoAddChar(int key) {
#if wxUSE_UNICODE #if wxUSE_UNICODE
char ansiChars[3]; wxChar wszChars[2];
ansiChars[0] = key; wszChars[0] = key;
ansiChars[1] = 0; wszChars[1] = 0;
wxString uniChar(ansiChars, wxConvLocal); wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(wszChars);
wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(uniChar);
AddCharUTF((char*)buf.data(), strlen(buf)); AddCharUTF((char*)buf.data(), strlen(buf));
#else #else
AddChar(key); AddChar(key);

View File

@@ -151,7 +151,6 @@ public:
void DoScrollToColumn(int column); void DoScrollToColumn(int column);
private: private:
bool capturedMouse;
wxStyledTextCtrl* stc; wxStyledTextCtrl* stc;
#if wxUSE_DRAG_AND_DROP #if wxUSE_DRAG_AND_DROP

View File

@@ -407,10 +407,25 @@ wxXmlNode *wxXmlResource::DoFindResource(wxXmlNode *parent,
if ( node->GetType() == wxXML_ELEMENT_NODE && if ( node->GetType() == wxXML_ELEMENT_NODE &&
(node->GetName() == wxT("object") || (node->GetName() == wxT("object") ||
node->GetName() == wxT("object_ref")) && node->GetName() == wxT("object_ref")) &&
(!classname || node->GetPropVal(wxT("name"), &dummy) && dummy == name )
node->GetPropVal(wxT("class"), wxEmptyString) == classname) && {
node->GetPropVal(wxT("name"), &dummy) && dummy == name ) wxString cls(node->GetPropVal(wxT("class"), wxEmptyString));
return node; if (!classname || cls == classname)
return node;
// object_ref may not have 'class' property:
if (cls.empty() && node->GetName() == wxT("object_ref"))
{
wxString refName = node->GetPropVal(wxT("ref"), wxEmptyString);
if (refName.empty())
continue;
wxXmlNode* refNode = FindResource(refName, wxEmptyString, TRUE);
if (refNode &&
refNode->GetPropVal(wxT("class"), wxEmptyString) == classname)
{
return node;
}
}
}
} }
if ( recursive ) if ( recursive )

View File

@@ -1,9 +1,10 @@
@echo off @echo off
rem VZ: this is quick and _very_ dirty rem VZ: this is quick and _very_ dirty, to be replaced by a script directly
rem parsing the files.txt and include/wx/version.h...
set VER=2.3.3 set VER=2.3.4
set DEST=q:\wxBase-%VER% set DEST=t:\wxBase-%VER%
mkdir %DEST% mkdir %DEST%
mkdir %DEST%\include mkdir %DEST%\include
@@ -26,6 +27,18 @@ chdir %WXWIN%
rem Copy the files to the root directory rem Copy the files to the root directory
copy /q configure.in %DEST%
copy /q configure %DEST%
copy /q wxwin.m4 %DEST%
copy /q aclocal.m4 %DEST%
copy /q config.sub %DEST%
copy /q config.guess %DEST%
copy /q install-sh %DEST%
copy /q mkinstalldirs %DEST%
copy /q wx-config.in %DEST%
copy /q setup.h.in %DEST%
copy /q Makefile.in %DEST%
copy /q wxBase.spec %DEST%
copy /q docs\changes.txt %DEST%\CHANGES.txt copy /q docs\changes.txt %DEST%\CHANGES.txt
copy /q docs\licence.txt %DEST%\LICENCE.txt copy /q docs\licence.txt %DEST%\LICENCE.txt
copy /q docs\base\readme.txt %DEST%\README.txt copy /q docs\base\readme.txt %DEST%\README.txt
@@ -39,12 +52,15 @@ copy /q src\makeb32.env %DEST%\src\makeb32.env
copy /q src\makelib.b32 %DEST%\src\makelib.b32 copy /q src\makelib.b32 %DEST%\src\makelib.b32
copy /q src\makeprog.b32 %DEST%\src\makeprog.b32 copy /q src\makeprog.b32 %DEST%\src\makeprog.b32
copy /q src\msw\makebase.b32 %DEST%\src\msw\makebase.b32 copy /q src\msw\makebase.b32 %DEST%\src\msw\makebase.b32
copy /q src\*.in %DEST%\src
rem Copy the sample rem Copy the sample
copy /q samples\console\console.cpp %DEST%\samples\console\console.cpp copy /q samples\console\console.cpp %DEST%\samples\console\console.cpp
copy /q samples\console\console.dsp %DEST%\samples\console\console.dsp copy /q samples\console\console.dsp %DEST%\samples\console\console.dsp
copy /q samples\console\makefile.b32 %DEST%\samples\console\makefile.b32 copy /q samples\console\makefile.b32 %DEST%\samples\console\makefile.b32
copy /q samples\console\makefile.unx %DEST%\samples\console
copy /q samples\console\Makefile.in %DEST%\samples\console
copy /q samples\console\testdata.fc %DEST%\samples\console\testdata.fc copy /q samples\console\testdata.fc %DEST%\samples\console\testdata.fc
rem Copy regex and zlib files rem Copy regex and zlib files
@@ -255,6 +271,7 @@ copy /q include\wx\zstream.h %DEST%\include\wx\zstream.h
copy /q include\wx\unix\gsockunx.h %DEST%\include\wx\unix\gsockunx.h copy /q include\wx\unix\gsockunx.h %DEST%\include\wx\unix\gsockunx.h
copy /q include\wx\unix\mimetype.h %DEST%\include\wx\unix\mimetype.h copy /q include\wx\unix\mimetype.h %DEST%\include\wx\unix\mimetype.h
copy /q include\wx\msw\dde.h %DEST%\include\wx\msw\dde.h copy /q include\wx\msw\dde.h %DEST%\include\wx\msw\dde.h
copy /q include\wx\msw\gccpriv.h %DEST%\include\wx\msw\gccpriv.h
copy /q include\wx\msw\mimetype.h %DEST%\include\wx\msw\mimetype.h copy /q include\wx\msw\mimetype.h %DEST%\include\wx\msw\mimetype.h
copy /q include\wx\msw\winundef.h %DEST%\include\wx\msw\winundef.h copy /q include\wx\msw\winundef.h %DEST%\include\wx\msw\winundef.h
copy /q include\wx\protocol\file.h %DEST%\include\wx\protocol\file.h copy /q include\wx\protocol\file.h %DEST%\include\wx\protocol\file.h

View File

@@ -8,11 +8,9 @@ config.sub
configure.in configure.in
setup.h.in setup.h.in
install-sh install-sh
missing
mkinstalldirs mkinstalldirs
modules
template.mak
wx-config.in wx-config.in
version-script.in
setup.h_vms setup.h_vms
distrib/msw/*.rsp distrib/msw/*.rsp
@@ -28,19 +26,18 @@ distrib/msw/tmake/makeall.bat
distrib/msw/tmake/makeall.sh distrib/msw/tmake/makeall.sh
distrib/msw/tmake/wxwin.pro distrib/msw/tmake/wxwin.pro
distrib/msw/tmake/tmake.conf distrib/msw/tmake/tmake.conf
distrib/gtk/*
locale/*.po locale/*.po
locale/*.mo
locale/Makefile locale/Makefile
art/*.xpm art/*.xpm
art/*.ico
art/*.png
art/motif/*.xpm art/motif/*.xpm
art/gtk/*.xpm art/gtk/*.xpm
docs/readme.txt docs/readme.txt
docs/readme_vms.txt docs/readme_vms.txt
docs/install.txt
docs/changes.txt docs/changes.txt
docs/todo.txt docs/todo.txt
docs/licence.txt docs/licence.txt
@@ -48,18 +45,10 @@ docs/licendoc.txt
docs/preamble.txt docs/preamble.txt
docs/gpl.txt docs/gpl.txt
docs/lgpl.txt docs/lgpl.txt
docs/symbols.txt
docs/bugs.txt
docs/index.htm docs/index.htm
docs/html/*.htm docs/html/*.htm
docs/html/*.gif docs/html/*.gif
docs/html/*.png
docs/html/icons/*.gif
docs/html/icons/*.png
docs/html/icons/*.jpg
docs/html/images/*.gif docs/html/images/*.gif
docs/html/images/*.png
docs/html/images/*.jpg
docs/tech/*.txt docs/tech/*.txt
docs/tech/*.htm docs/tech/*.htm
@@ -152,19 +141,9 @@ lib/dummy
tools/gettext/*.* tools/gettext/*.*
bitmaps/xpm/16x16/*.*
bitmaps/xpm/32x32/*.*
bitmaps/xpm/64x64/*.*
bitmaps/xpm/misc/*.*
bitmaps/*.*
bitmaps/bmp/16x15/*.*
bitmaps/bmp/10x8/*.*
bitmaps/ico/32x32/*.*
misc/afm/*.afm misc/afm/*.afm
misc/gs_afm/*.afm misc/gs_afm/*.afm
utils/*.txt
utils/make*.* utils/make*.*
utils/configure utils/configure
utils/configure.in utils/configure.in

View File

@@ -29,6 +29,339 @@ expandlines()
done done
} }
doinit()
{
cd $WXSRC
echo Removing backup files...
rm *~ */*~ */*/*~ */*/*/*~ */*/*/*/*~
rm -f $WXDEST/wx*-${WXVER}*.tar.gz
# Copy setup files
cp $WXSRC/include/wx/os2/SETUP0.H $WXSRC/include/wx/os2/setup.h
cp $WXSRC/include/wx/msw/setup0.h $WXSRC/include/wx/msw/setup.h
cp $WXSRC/include/wx/univ/setup0.h $WXSRC/include/wx/univ/setup.h
# Copy readme and other files
cp $WXSRC/docs/readme.txt $WXDEST/readme-${WXVER}.txt
cp $WXSRC/docs/changes.txt $WXDEST/changes-${WXVER}.txt
cp $WXSRC/docs/mgl/readme.txt $WXDEST/readme-mgl-${WXVER}.txt
cp $WXSRC/docs/mgl/install.txt $WXDEST/install-mgl-${WXVER}.txt
cp $WXSRC/docs/x11/readme.txt $WXDEST/readme-x11-${WXVER}.txt
cp $WXSRC/docs/x11/readme-nanox.txt $WXDEST/readme-nanox-${WXVER}.txt
cp $WXSRC/docs/x11/install.txt $WXDEST/install-x11-${WXVER}.txt
cp $WXSRC/docs/motif/readme.txt $WXDEST/readme-motif-${WXVER}.txt
cp $WXSRC/docs/motif/install.txt $WXDEST/install-motif-${WXVER}.txt
cp $WXSRC/docs/msw/readme.txt $WXDEST/readme-msw-${WXVER}.txt
cp $WXSRC/docs/msw/install.txt $WXDEST/install-msw-${WXVER}.txt
cp $WXSRC/docs/gtk/readme.txt $WXDEST/readme-gtk-${WXVER}.txt
cp $WXSRC/docs/gtk/install.txt $WXDEST/install-gtk-${WXVER}.txt
cp $WXSRC/docs/mac/readme.txt $WXDEST/readme-mac-${WXVER}.txt
cp $WXSRC/docs/mac/install.txt $WXDEST/install-mac-${WXVER}.txt
cp $WXSRC/docs/os2/install.txt $WXDEST/install-os2-${WXVER}.txt
}
dospinwxgtk()
{
echo Tarring wxGTK...
cd $WXSRC
cat $WXSRC/distrib/msw/generic.rsp $WXSRC/distrib/msw/contrib.rsp $WXSRC/distrib/msw/xml.rsp $WXSRC/distrib/msw/utils.rsp $WXSRC/distrib/msw/ogl.rsp $WXSRC/distrib/msw/tex2rtf.rsp $WXSRC/distrib/msw/dialoged.rsp $WXSRC/distrib/msw/gtk.rsp $WXSRC/distrib/msw/makefile.rsp $WXSRC/distrib/msw/tiff.rsp $WXSRC/distrib/msw/jpeg.rsp > /tmp/wxgtk_in.txt
expandlines /tmp/wxgtk_in.txt /tmp/wxgtk.txt
$TAR cf $WXDEST/wxGTK-${WXVER}.tar -T /tmp/wxgtk.txt
echo Re-tarring wxGTK in a subdirectory...
cd $WXDEST
mkdir wxGTK-${WXVER}
cd wxGTK-${WXVER}
$TAR xf ../wxGTK-${WXVER}.tar
cd ..
rm -f wxGTK-${WXVER}.tar
$TAR cf $WXDEST/wxGTK-${WXVER}.tar wxGTK-${WXVER}/*
rm -f -r wxGTK-${WXVER}
gzip $WXDEST/wxGTK-${WXVER}.tar
}
dospinwxmotif()
{
echo Tarring wxMotif...
cd $WXSRC
cat $WXSRC/distrib/msw/generic.rsp $WXSRC/distrib/msw/motif.rsp $WXSRC/distrib/msw/contrib.rsp $WXSRC/distrib/msw/xml.rsp $WXSRC/distrib/msw/ogl.rsp $WXSRC/distrib/msw/makefile.rsp $WXSRC/distrib/msw/tiff.rsp $WXSRC/distrib/msw/jpeg.rsp > /tmp/wxmotif_in.txt
expandlines /tmp/wxmotif_in.txt /tmp/wxmotif.txt
$TAR cf $WXDEST/wxMotif-${WXVER}.tar -T /tmp/wxmotif.txt
echo Re-tarring wxMotif in a subdirectory...
cd $WXDEST
mkdir wxMotif-${WXVER}
cd wxMotif-${WXVER}
$TAR xf ../wxMotif-${WXVER}.tar
cd ..
rm -f wxMotif-${WXVER}.tar
$TAR cf $WXDEST/wxMotif-${WXVER}.tar wxMotif-${WXVER}/*
rm -f -r wxMotif-${WXVER}
gzip $WXDEST/wxMotif-${WXVER}.tar
}
dospinwxx11()
{
echo Tarring wxX11...
### wxX11: combined wxMotif and wxX11 distributions
cd $WXSRC
cat $WXSRC/distrib/msw/generic.rsp $WXSRC/distrib/msw/motif.rsp $WXSRC/distrib/msw/x11.rsp $WXSRC/distrib/msw/univ.rsp $WXSRC/distrib/msw/contrib.rsp $WXSRC/distrib/msw/utils.rsp $WXSRC/distrib/msw/xml.rsp $WXSRC/distrib/msw/dialoged.rsp $WXSRC/distrib/msw/ogl.rsp $WXSRC/distrib/msw/makefile.rsp $WXSRC/distrib/msw/tiff.rsp $WXSRC/distrib/msw/jpeg.rsp > /tmp/wxx11_in.txt
expandlines /tmp/wxx11_in.txt /tmp/wxx11.txt
$TAR cf $WXDEST/wxX11-${WXVER}.tar -T /tmp/wxx11.txt
echo Re-tarring wxX11 in a subdirectory...
cd $WXDEST
mkdir wxX11-${WXVER}
cd wxX11-${WXVER}
$TAR xf ../wxX11-${WXVER}.tar
cd ..
rm -f wxX11-${WXVER}.tar
$TAR cf $WXDEST/wxX11-${WXVER}.tar wxX11-${WXVER}/*
rm -f -r wxX11-${WXVER}
gzip $WXDEST/wxX11-${WXVER}.tar
}
### wxMSW
# cd $WXSRC
# cat $WXSRC/distrib/msw/msw.rsp $WXSRC/distrib/msw/vc.rsp $WXSRC/distrib/msw/bc.rsp $WXSRC/distrib/msw/contrib.rsp $WXSRC/distrib/msw/xml.rsp $WXSRC/distrib/msw/makefile.rsp $WXSRC/distrib/msw/tiff.rsp $WXSRC/distrib/msw/jpeg.rsp > /tmp/wxmsw_in.txt
# expandlines /tmp/wxmsw_in.txt /tmp/wxmsw.txt
# $TAR cf $WXDEST/wxMSW-${WXVER}.tar -T /tmp/wxmsw.txt
# gzip $WXDEST/wxMSW-${WXVER}.tar
dospinwxmac()
{
echo Tarring wxMac...
### wxMac
cp $WXSRC/include/wx/mac/setup0.h $WXSRC/include/wx/setup.h
cd $WXSRC
cat $WXSRC/distrib/msw/mac.rsp $WXSRC/distrib/msw/generic.rsp $WXSRC/distrib/msw/cw_mac.rsp $WXSRC/distrib/msw/tex2rtf.rsp $WXSRC/distrib/msw/utils.rsp $WXSRC/distrib/msw/dialoged.rsp $WXSRC/distrib/msw/ogl.rsp $WXSRC/distrib/msw/stc.rsp $WXSRC/distrib/msw/xml.rsp $WXSRC/distrib/msw/contrib.rsp $WXSRC/distrib/msw/makefile.rsp $WXSRC/distrib/msw/tiff.rsp $WXSRC/distrib/msw/jpeg.rsp > /tmp/wxmac_in.txt
expandlines /tmp/wxmac_in.txt /tmp/wxmac.txt
$TAR cf $WXDEST/wxMac-${WXVER}.tar -T /tmp/wxmac.txt
rm -f $WXSRC/include/wx/setup.h
echo Re-tarring wxMac in a subdirectory...
cd $WXDEST
mkdir wxMac-${WXVER}
cd wxMac-${WXVER}
$TAR xf ../wxMac-${WXVER}.tar
rm -f -r contrib/src/mmedia contrib/samples/mmedia
cd ..
rm -f wxMac-${WXVER}.tar
$TAR cf $WXDEST/wxMac-${WXVER}.tar wxMac-${WXVER}/*
rm -f -r wxMac-${WXVER}
gzip $WXDEST/wxMac-${WXVER}.tar
}
### wxUniv: universal-specific files
#cd $WXSRC
#cat $WXSRC/distrib/msw/univ.rsp > /tmp/wxuniv_in.txt
#expandlines /tmp/wxuniv_in.txt /tmp/wxuniv.txt
#$TAR cf $WXDEST/wxWindows-${WXVER}-Univ.tar -T /tmp/wxuniv.txt
#
#echo Re-tarring wxUniversal in a subdirectory...
#cd $WXDEST
#mkdir wxWindows-${WXVER}
#cd wxWindows-${WXVER}
#$TAR xf ../wxWindows-${WXVER}-Univ.tar
#cd ..
#rm -f wxWindows-${WXVER}-Univ.tar
#$TAR cf $WXDEST/wxWindows-${WXVER}-Univ.tar wxWindows-${WXVER}/*
#rm -f -r wxWindows-${WXVER}
#gzip $WXDEST/wxWindows-${WXVER}-Univ.tar
dospinwxall()
{
echo Tarring wxAll...
### wxAll: all distributions in one giant archive
cd $WXSRC
cat $WXSRC/distrib/msw/generic.rsp $WXSRC/distrib/msw/msw.rsp $WXSRC/distrib/msw/vc.rsp $WXSRC/distrib/msw/cw.rsp $WXSRC/distrib/msw/cw_mac.rsp $WXSRC/distrib/msw/gtk.rsp $WXSRC/distrib/msw/x11.rsp $WXSRC/distrib/msw/motif.rsp $WXSRC/distrib/msw/mac.rsp $WXSRC/distrib/msw/os2.rsp $WXSRC/distrib/msw/x11.rsp $WXSRC/distrib/msw/univ.rsp $WXSRC/distrib/msw/mgl.rsp $WXSRC/distrib/msw/contrib.rsp $WXSRC/distrib/msw/utilmake.rsp $WXSRC/distrib/msw/utils.rsp $WXSRC/distrib/msw/mmedia.rsp $WXSRC/distrib/msw/tex2rtf.rsp $WXSRC/distrib/msw/stc.rsp $WXSRC/distrib/msw/xml.rsp $WXSRC/distrib/msw/dialoged.rsp $WXSRC/distrib/msw/ogl.rsp $WXSRC/distrib/msw/makefile.rsp $WXSRC/distrib/msw/tiff.rsp $WXSRC/distrib/msw/jpeg.rsp $WXSRC/distrib/msw/docsrc.rsp | uniq > /tmp/wxall_in.txt
expandlines /tmp/wxall_in.txt /tmp/wxall.txt
$TAR cf $WXDEST/wxAll-${WXVER}.tar -T /tmp/wxall.txt
echo Re-tarring wxAll in a subdirectory...
cd $WXDEST
mkdir wxWindows-${WXVER}
# If we have the full set of VC++ project files,
# get them
if [ -f $WXDEST/extra/wxWindows-${WXVER}-VC.zip ]; then
unzip -o $WXDEST/extra/wxWindows-${WXVER}-VC.zip
else
echo "Warning - did not find $WXDEST/deliver/extra/wxWindows-${WXVER}-VC.zip"
fi
cd wxWindows-${WXVER}
$TAR xf ../wxAll-${WXVER}.tar
# Translate all .dsp and .dsw files to DOS format
unix2dos --unix2dos `cat $WXSRC/distrib/msw/vc.rsp`
# Copy OS/2 specific configure files
cp $WXSRC/distrib/os2/os2-specific.zip docs/os2
# Copy the OS/2 files which probably haven't been copied yet
mkdir include/wx/os2
mkdir src/os2
cp $WXSRC/include/wx/os2/*.H include/wx/os2
cp $WXSRC/src/os2/*.CPP $WXSRC/src/os2/*.I src/os2
# Make all OS/2 files lower case
$WXSRC/distrib/msw/namedown include/wx/os2/*.H
$WXSRC/distrib/msw/namedown src/os2/*.CPP src/os2/*.I
cd ..
rm -f wxAll-${WXVER}.tar
$TAR cf $WXDEST/wxAll-${WXVER}.tar wxWindows-${WXVER}/*
rm -f -r wxWindows-${WXVER}
gzip $WXDEST/wxAll-${WXVER}.tar
}
dospinwxdocs()
{
echo Tarring wxDocs...
### Doc sources
#cd $WXSRC
#cat $WXSRC/distrib/msw/docsrc.rsp > /tmp/docsrc_in.txt
#expandlines /tmp/docsrc_in.txt /tmp/docsrc.txt
#$TAR cf $WXDEST/wxWindows-${WXVER}-doc.tar -T /tmp/docsrc.txt
#
#echo Re-tarring docs in a subdirectory...
#cd $WXDEST
#mkdir wxWindows-${WXVER}
#cd wxWindows-${WXVER}
#$TAR xf ../wxWindows-${WXVER}-doc.tar
#cd ..
#rm -f wxWindows-${WXVER}-doc.tar
#$TAR cf $WXDEST/wxWindows-${WXVER}-doc.tar wxWindows-${WXVER}/*
#rm -f -r wxWindows-${WXVER}
#gzip $WXDEST/wxWindows-${WXVER}-doc.tar
### HTML docs
cd $WXSRC
cat $WXSRC/distrib/msw/wx_html.rsp > /tmp/html_in.txt
expandlines /tmp/html_in.txt /tmp/html.txt
$TAR cf $WXDEST/wxWindows-${WXVER}-HTML.tar -T /tmp/html.txt
echo Re-tarring HTML in a subdirectory...
cd $WXDEST
mkdir wxWindows-${WXVER}
cd wxWindows-${WXVER}
$TAR xf ../wxWindows-${WXVER}-HTML.tar
cd ..
rm -f wxWindows-${WXVER}-HTML.tar
$TAR cf $WXDEST/wxWindows-${WXVER}-HTML.tar wxWindows-${WXVER}/*
rm -f -r wxWindows-${WXVER}
gzip $WXDEST/wxWindows-${WXVER}-HTML.tar
### HTB docs
cd $WXSRC
cat $WXSRC/distrib/msw/wx_htb.rsp > /tmp/htb_in.txt
expandlines /tmp/htb_in.txt /tmp/htb.txt
$TAR cf $WXDEST/wxWindows-${WXVER}-HTB.tar -T /tmp/htb.txt
echo Re-tarring HTB in a subdirectory...
cd $WXDEST
mkdir wxWindows-${WXVER}
cd wxWindows-${WXVER}
$TAR xf ../wxWindows-${WXVER}-HTB.tar
cd ..
rm -f wxWindows-${WXVER}-HTB.tar
$TAR cf $WXDEST/wxWindows-${WXVER}-HTB.tar wxWindows-${WXVER}/*
rm -f -r wxWindows-${WXVER}
gzip $WXDEST/wxWindows-${WXVER}-HTB.tar
### PDF docs
cd $WXSRC
cat $WXSRC/distrib/msw/wx_pdf.rsp > /tmp/pdf_in.txt
expandlines /tmp/pdf_in.txt /tmp/pdf.txt
$TAR cf $WXDEST/wxWindows-${WXVER}-PDF.tar -T /tmp/pdf.txt
echo Re-tarring PDF in a subdirectory...
cd $WXDEST
mkdir wxWindows-${WXVER}
cd wxWindows-${WXVER}
$TAR xf ../wxWindows-${WXVER}-PDF.tar
cd ..
rm -f wxWindows-${WXVER}-PDF.tar
$TAR cf $WXDEST/wxWindows-${WXVER}-PDF.tar wxWindows-${WXVER}/*
rm -f -r wxWindows-${WXVER}
gzip $WXDEST/wxWindows-${WXVER}-PDF.tar
}
### Tex2RTF
#cd $WXSRC
#cat $WXSRC/distrib/msw/tex2rtf.rsp > /tmp/tex2rtf_in.txt
#expandlines /tmp/tex2rtf_in.txt /tmp/tex2rtf.txt
#$TAR cf $WXDEST/wxWindows-${WXVER}-tex2rtf.tar -T /tmp/tex2rtf.txt
#
#echo Re-tarring Tex2RTF in a subdirectory...
#cd $WXDEST
#mkdir wxWindows-${WXVER}
#cd wxWindows-${WXVER}
#$TAR xf ../wxWindows-${WXVER}-tex2rtf.tar
#cd ..
#rm -f wxWindows-${WXVER}-tex2rtf.tar
#$TAR cf $WXDEST/wxWindows-${WXVER}-tex2rtf.tar wxWindows-${WXVER}/*
#rm -f -r wxWindows-${WXVER}
#gzip $WXDEST/wxWindows-${WXVER}-tex2rtf.tar
### OGL
#cd $WXSRC
#cat $WXSRC/distrib/msw/ogl.rsp > /tmp/ogl_in.txt
#expandlines /tmp/ogl_in.txt /tmp/ogl.txt
#$TAR cf $WXDEST/wxWindows-${WXVER}-ogl.tar -T /tmp/ogl.txt
#
#echo Re-tarring OGL in a subdirectory...
#cd $WXDEST
#mkdir wxWindows-${WXVER}
#cd wxWindows-${WXVER}
#$TAR xf ../wxWindows-${WXVER}-ogl.tar
#cd ..
#rm -f wxWindows-${WXVER}-ogl.tar
#$TAR cf $WXDEST/wxWindows-${WXVER}-ogl.tar wxWindows-${WXVER}/*
#rm -f -r wxWindows-${WXVER}
#gzip $WXDEST/wxWindows-${WXVER}-ogl.tar
### JPEG
#cd $WXSRC
#cat $WXSRC/distrib/msw/jpeg.rsp > /tmp/jpeg_in.txt
#expandlines /tmp/jpeg_in.txt /tmp/jpeg.txt
#$TAR cf $WXDEST/wxWindows-${WXVER}-jpeg.tar -T /tmp/jpeg.txt
#
#echo Re-tarring jpeg in a subdirectory...
#cd $WXDEST
#mkdir wxWindows-${WXVER}
#cd wxWindows-${WXVER}
#$TAR xf ../wxWindows-${WXVER}-jpeg.tar
#cd ..
#rm -f wxWindows-${WXVER}-jpeg.tar
#$TAR cf $WXDEST/wxWindows-${WXVER}-jpeg.tar wxWindows-${WXVER}/*
#rm -f -r wxWindows-${WXVER}
#gzip $WXDEST/wxWindows-${WXVER}-jpeg.tar
### TIFF
#cd $WXSRC
#cat $WXSRC/distrib/msw/tiff.rsp > /tmp/tiff_in.txt
#expandlines /tmp/tiff_in.txt /tmp/tiff.txt
#$TAR cf $WXDEST/wxWindows-${WXVER}-tiff.tar -T /tmp/tiff.txt
#
#echo Re-tarring docs in a subdirectory...
#cd $WXDEST
#mkdir wxWindows-${WXVER}
#cd wxWindows-${WXVER}
#$TAR xf ../wxWindows-${WXVER}-tiff.tar
#cd ..
#rm -f wxWindows-${WXVER}-tiff.tar
#$TAR cf $WXDEST/wxWindows-${WXVER}-tiff.tar wxWindows-${WXVER}/*
#rm -f -r wxWindows-${WXVER}
#gzip $WXDEST/wxWindows-${WXVER}-tiff.tar
init="" init=""
if [ "$1" = "" ] if [ "$1" = "" ]
@@ -49,328 +382,84 @@ then
exit exit
fi fi
PROGNAME=$0
WXSRC=$1
WXDEST=$2
WXVER=$3 WXVER=$3
SPINWXALL=0
SPINWXX11=0
SPINWXGTK=0
SPINWXMOTIF=0
SPINWXMAC=0
SPINWXDOCS=0
SPINEVERYTHING=0
usage()
{
echo Usage: $PROGNAME "src-dir dest-dir version-number [ options ]"
echo Options:
echo " --help Display this help message"
echo " --wxall Spin wxAll"
echo " --wxgtk Spin wxGTK"
echo " --wxmotif Spin wxMotif"
echo " --wxmac Spin wxMac"
echo " --wxx11 Spin wxX11"
echo " --wxdocs Spin docs"
echo " --all Spin EVERYTHING"
exit 1
}
# Process command line options.
shift 3
for i in "$@"; do
case "$i" in
--wxall) SPINWXALL=1 ;;
--wxx11) SPINWXX11=1 ;;
--wxgtk) SPINWXGTK=1 ;;
--wxmotif) SPINWXMOTIF=1 ;;
--wxmac) SPINWXMAC=1 ;;
--wxdocs) SPINWXDOCS=1 ;;
--all) SPINEVERYTHING=1 ;;
*)
usage
exit
;;
esac
done
echo About to archive wxWindows: echo About to archive wxWindows:
echo From $1 echo From $WXSRC
echo To $2 echo To $WXDEST
echo Version $WXVER
echo CTRL-C if this is not correct. echo CTRL-C if this is not correct.
read dummy read dummy
cd $1 doinit
echo Removing backup files... if [ "$SPINWXX11" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
rm *~ */*~ */*/*~ */*/*/*~ */*/*/*/*~ dospinwxx11
rm -f $2/wx*-${WXVER}*.tar.gz
# Copy setup files
cp $1/include/wx/os2/SETUP0.H $1/include/wx/os2/setup.h
cp $1/include/wx/msw/setup0.h $1/include/wx/msw/setup.h
cp $1/include/wx/univ/setup0.h $1/include/wx/univ/setup.h
echo Tarring...
### Generic
#cat $1/distrib/msw/generic.rsp $1/distrib/msw/contrib.rsp $1/distrib/msw/xml.rsp $1/distrib/msw/makefile.rsp > /tmp/wxgen_in.txt
#expandlines /tmp/wxgen_in.txt /tmp/wxgen.txt
#$TAR cf $2/wxWindows-${WXVER}-gen.tar -T /tmp/wxgen.txt
#gzip $2/wxWindows-${WXVER}-gen.tar
#mv $2/wxWindows-${WXVER}-gen.tar.gz $2/wxWindows-${WXVER}-gen.tgz
### wxGTK
cd $1
cat $1/distrib/msw/generic.rsp $1/distrib/msw/contrib.rsp $1/distrib/msw/xml.rsp $1/distrib/msw/utils.rsp $1/distrib/msw/ogl.rsp $1/distrib/msw/tex2rtf.rsp $1/distrib/msw/dialoged.rsp $1/distrib/msw/gtk.rsp $1/distrib/msw/makefile.rsp $1/distrib/msw/tiff.rsp $1/distrib/msw/jpeg.rsp > /tmp/wxgtk_in.txt
expandlines /tmp/wxgtk_in.txt /tmp/wxgtk.txt
$TAR cf $2/wxGTK-${WXVER}.tar -T /tmp/wxgtk.txt
echo Re-tarring wxGTK in a subdirectory...
cd $2
mkdir wxGTK-${WXVER}
cd wxGTK-${WXVER}
$TAR xf ../wxGTK-${WXVER}.tar
cd ..
rm -f wxGTK-${WXVER}.tar
$TAR cf $2/wxGTK-${WXVER}.tar wxGTK-${WXVER}/*
rm -f -r wxGTK-${WXVER}
gzip $2/wxGTK-${WXVER}.tar
### wxMotif
cd $1
cat $1/distrib/msw/generic.rsp $1/distrib/msw/motif.rsp $1/distrib/msw/contrib.rsp $1/distrib/msw/xml.rsp $1/distrib/msw/ogl.rsp $1/distrib/msw/makefile.rsp $1/distrib/msw/tiff.rsp $1/distrib/msw/jpeg.rsp > /tmp/wxmotif_in.txt
expandlines /tmp/wxmotif_in.txt /tmp/wxmotif.txt
$TAR cf $2/wxMotif-${WXVER}.tar -T /tmp/wxmotif.txt
echo Re-tarring wxMotif in a subdirectory...
cd $2
mkdir wxMotif-${WXVER}
cd wxMotif-${WXVER}
$TAR xf ../wxMotif-${WXVER}.tar
cd ..
rm -f wxMotif-${WXVER}.tar
$TAR cf $2/wxMotif-${WXVER}.tar wxMotif-${WXVER}/*
rm -f -r wxMotif-${WXVER}
gzip $2/wxMotif-${WXVER}.tar
### wxX11: combined wxMotif and wxX11 distributions
cd $1
cat $1/distrib/msw/generic.rsp $1/distrib/msw/motif.rsp $1/distrib/msw/x11.rsp $1/distrib/msw/univ.rsp $1/distrib/msw/contrib.rsp $1/distrib/msw/utils.rsp $1/distrib/msw/xml.rsp $1/distrib/msw/dialoged.rsp $1/distrib/msw/ogl.rsp $1/distrib/msw/makefile.rsp $1/distrib/msw/tiff.rsp $1/distrib/msw/jpeg.rsp > /tmp/wxx11_in.txt
expandlines /tmp/wxx11_in.txt /tmp/wxx11.txt
$TAR cf $2/wxX11-${WXVER}.tar -T /tmp/wxx11.txt
echo Re-tarring wxX11 in a subdirectory...
cd $2
mkdir wxX11-${WXVER}
cd wxX11-${WXVER}
$TAR xf ../wxX11-${WXVER}.tar
cd ..
rm -f wxX11-${WXVER}.tar
$TAR cf $2/wxX11-${WXVER}.tar wxX11-${WXVER}/*
rm -f -r wxX11-${WXVER}
gzip $2/wxX11-${WXVER}.tar
### wxMSW
# cd $1
# cat $1/distrib/msw/msw.rsp $1/distrib/msw/vc.rsp $1/distrib/msw/bc.rsp $1/distrib/msw/contrib.rsp $1/distrib/msw/xml.rsp $1/distrib/msw/makefile.rsp $1/distrib/msw/tiff.rsp $1/distrib/msw/jpeg.rsp > /tmp/wxmsw_in.txt
# expandlines /tmp/wxmsw_in.txt /tmp/wxmsw.txt
# $TAR cf $2/wxMSW-${WXVER}.tar -T /tmp/wxmsw.txt
# gzip $2/wxMSW-${WXVER}.tar
### wxMac
cp $1/include/wx/mac/setup0.h $1/include/wx/setup.h
cd $1
cat $1/distrib/msw/mac.rsp $1/distrib/msw/generic.rsp $1/distrib/msw/cw_mac.rsp $1/distrib/msw/tex2rtf.rsp $1/distrib/msw/utils.rsp $1/distrib/msw/dialoged.rsp $1/distrib/msw/ogl.rsp $1/distrib/msw/stc.rsp $1/distrib/msw/xml.rsp $1/distrib/msw/contrib.rsp $1/distrib/msw/makefile.rsp $1/distrib/msw/tiff.rsp $1/distrib/msw/jpeg.rsp > /tmp/wxmac_in.txt
expandlines /tmp/wxmac_in.txt /tmp/wxmac.txt
$TAR cf $2/wxMac-${WXVER}.tar -T /tmp/wxmac.txt
rm -f $1/include/wx/setup.h
echo Re-tarring wxMac in a subdirectory...
cd $2
mkdir wxMac-${WXVER}
cd wxMac-${WXVER}
$TAR xf ../wxMac-${WXVER}.tar
rm -f -r contrib/src/mmedia contrib/samples/mmedia
cd ..
rm -f wxMac-${WXVER}.tar
$TAR cf $2/wxMac-${WXVER}.tar wxMac-${WXVER}/*
rm -f -r wxMac-${WXVER}
gzip $2/wxMac-${WXVER}.tar
### wxUniv: universal-specific files
#cd $1
#cat $1/distrib/msw/univ.rsp > /tmp/wxuniv_in.txt
#expandlines /tmp/wxuniv_in.txt /tmp/wxuniv.txt
#$TAR cf $2/wxWindows-${WXVER}-Univ.tar -T /tmp/wxuniv.txt
#
#echo Re-tarring wxUniversal in a subdirectory...
#cd $2
#mkdir wxWindows-${WXVER}
#cd wxWindows-${WXVER}
#$TAR xf ../wxWindows-${WXVER}-Univ.tar
#cd ..
#rm -f wxWindows-${WXVER}-Univ.tar
#$TAR cf $2/wxWindows-${WXVER}-Univ.tar wxWindows-${WXVER}/*
#rm -f -r wxWindows-${WXVER}
#gzip $2/wxWindows-${WXVER}-Univ.tar
### wxAll: all distributions in one giant archive
cd $1
cat $1/distrib/msw/generic.rsp $1/distrib/msw/msw.rsp $1/distrib/msw/vc.rsp $1/distrib/msw/cw.rsp $1/distrib/msw/cw_mac.rsp $1/distrib/msw/gtk.rsp $1/distrib/msw/x11.rsp $1/distrib/msw/motif.rsp $1/distrib/msw/mac.rsp $1/distrib/msw/os2.rsp $1/distrib/msw/x11.rsp $1/distrib/msw/univ.rsp $1/distrib/msw/mgl.rsp $1/distrib/msw/contrib.rsp $1/distrib/msw/utilmake.rsp $1/distrib/msw/utils.rsp $1/distrib/msw/mmedia.rsp $1/distrib/msw/tex2rtf.rsp $1/distrib/msw/stc.rsp $1/distrib/msw/xml.rsp $1/distrib/msw/dialoged.rsp $1/distrib/msw/ogl.rsp $1/distrib/msw/makefile.rsp $1/distrib/msw/tiff.rsp $1/distrib/msw/jpeg.rsp $1/distrib/msw/docsrc.rsp | uniq > /tmp/wxall_in.txt
expandlines /tmp/wxall_in.txt /tmp/wxall.txt
$TAR cf $2/wxAll-${WXVER}.tar -T /tmp/wxall.txt
echo Re-tarring wxAll in a subdirectory...
cd $2
mkdir wxWindows-${WXVER}
# If we have the full set of VC++ project files,
# get them
if [ -f $2/extra/wxWindows-${WXVER}-VC.zip ]; then
unzip -o $2/extra/wxWindows-${WXVER}-VC.zip
else
echo "Warning - did not find $2/deliver/extra/wxWindows-${WXVER}-VC.zip"
fi fi
cd wxWindows-${WXVER} if [ "$SPINWXGTK" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
$TAR xf ../wxAll-${WXVER}.tar dospinwxgtk
fi
# Translate all .dsp and .dsw files to DOS format if [ "$SPINWXMAC" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
unix2dos --unix2dos `cat $1/distrib/msw/vc.rsp` dospinwxmac
fi
# Copy OS/2 specific configure files if [ "$SPINWXMOTIF" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
cp $1/distrib/os2/os2-specific.zip docs/os2 dospinwxmotif
fi
# Copy the OS/2 files which probably haven't been copied yet if [ "$SPINWXDOCS" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
mkdir include/wx/os2 dospinwxdocs
mkdir src/os2 fi
cp $1/include/wx/os2/*.H include/wx/os2
cp $1/src/os2/*.CPP $1/src/os2/*.I src/os2
# Make all OS/2 files lower case if [ "$SPINWXALL" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
$1/distrib/msw/namedown include/wx/os2/*.H dospinwxall
$1/distrib/msw/namedown src/os2/*.CPP src/os2/*.I fi
cd ..
rm -f wxAll-${WXVER}.tar
$TAR cf $2/wxAll-${WXVER}.tar wxWindows-${WXVER}/*
rm -f -r wxWindows-${WXVER}
gzip $2/wxAll-${WXVER}.tar
### Doc sources
#cd $1
#cat $1/distrib/msw/docsrc.rsp > /tmp/docsrc_in.txt
#expandlines /tmp/docsrc_in.txt /tmp/docsrc.txt
#$TAR cf $2/wxWindows-${WXVER}-doc.tar -T /tmp/docsrc.txt
#
#echo Re-tarring docs in a subdirectory...
#cd $2
#mkdir wxWindows-${WXVER}
#cd wxWindows-${WXVER}
#$TAR xf ../wxWindows-${WXVER}-doc.tar
#cd ..
#rm -f wxWindows-${WXVER}-doc.tar
#$TAR cf $2/wxWindows-${WXVER}-doc.tar wxWindows-${WXVER}/*
#rm -f -r wxWindows-${WXVER}
#gzip $2/wxWindows-${WXVER}-doc.tar
### HTML docs
cd $1
cat $1/distrib/msw/wx_html.rsp > /tmp/html_in.txt
expandlines /tmp/html_in.txt /tmp/html.txt
$TAR cf $2/wxWindows-${WXVER}-HTML.tar -T /tmp/html.txt
echo Re-tarring HTML in a subdirectory...
cd $2
mkdir wxWindows-${WXVER}
cd wxWindows-${WXVER}
$TAR xf ../wxWindows-${WXVER}-HTML.tar
cd ..
rm -f wxWindows-${WXVER}-HTML.tar
$TAR cf $2/wxWindows-${WXVER}-HTML.tar wxWindows-${WXVER}/*
rm -f -r wxWindows-${WXVER}
gzip $2/wxWindows-${WXVER}-HTML.tar
### HTB docs
cd $1
cat $1/distrib/msw/wx_htb.rsp > /tmp/htb_in.txt
expandlines /tmp/htb_in.txt /tmp/htb.txt
$TAR cf $2/wxWindows-${WXVER}-HTB.tar -T /tmp/htb.txt
echo Re-tarring HTB in a subdirectory...
cd $2
mkdir wxWindows-${WXVER}
cd wxWindows-${WXVER}
$TAR xf ../wxWindows-${WXVER}-HTB.tar
cd ..
rm -f wxWindows-${WXVER}-HTB.tar
$TAR cf $2/wxWindows-${WXVER}-HTB.tar wxWindows-${WXVER}/*
rm -f -r wxWindows-${WXVER}
gzip $2/wxWindows-${WXVER}-HTB.tar
### PDF docs
cd $1
cat $1/distrib/msw/wx_pdf.rsp > /tmp/pdf_in.txt
expandlines /tmp/pdf_in.txt /tmp/pdf.txt
$TAR cf $2/wxWindows-${WXVER}-PDF.tar -T /tmp/pdf.txt
echo Re-tarring PDF in a subdirectory...
cd $2
mkdir wxWindows-${WXVER}
cd wxWindows-${WXVER}
$TAR xf ../wxWindows-${WXVER}-PDF.tar
cd ..
rm -f wxWindows-${WXVER}-PDF.tar
$TAR cf $2/wxWindows-${WXVER}-PDF.tar wxWindows-${WXVER}/*
rm -f -r wxWindows-${WXVER}
gzip $2/wxWindows-${WXVER}-PDF.tar
### Tex2RTF
#cd $1
#cat $1/distrib/msw/tex2rtf.rsp > /tmp/tex2rtf_in.txt
#expandlines /tmp/tex2rtf_in.txt /tmp/tex2rtf.txt
#$TAR cf $2/wxWindows-${WXVER}-tex2rtf.tar -T /tmp/tex2rtf.txt
#
#echo Re-tarring Tex2RTF in a subdirectory...
#cd $2
#mkdir wxWindows-${WXVER}
#cd wxWindows-${WXVER}
#$TAR xf ../wxWindows-${WXVER}-tex2rtf.tar
#cd ..
#rm -f wxWindows-${WXVER}-tex2rtf.tar
#$TAR cf $2/wxWindows-${WXVER}-tex2rtf.tar wxWindows-${WXVER}/*
#rm -f -r wxWindows-${WXVER}
#gzip $2/wxWindows-${WXVER}-tex2rtf.tar
### OGL
#cd $1
#cat $1/distrib/msw/ogl.rsp > /tmp/ogl_in.txt
#expandlines /tmp/ogl_in.txt /tmp/ogl.txt
#$TAR cf $2/wxWindows-${WXVER}-ogl.tar -T /tmp/ogl.txt
#
#echo Re-tarring OGL in a subdirectory...
#cd $2
#mkdir wxWindows-${WXVER}
#cd wxWindows-${WXVER}
#$TAR xf ../wxWindows-${WXVER}-ogl.tar
#cd ..
#rm -f wxWindows-${WXVER}-ogl.tar
#$TAR cf $2/wxWindows-${WXVER}-ogl.tar wxWindows-${WXVER}/*
#rm -f -r wxWindows-${WXVER}
#gzip $2/wxWindows-${WXVER}-ogl.tar
### JPEG
#cd $1
#cat $1/distrib/msw/jpeg.rsp > /tmp/jpeg_in.txt
#expandlines /tmp/jpeg_in.txt /tmp/jpeg.txt
#$TAR cf $2/wxWindows-${WXVER}-jpeg.tar -T /tmp/jpeg.txt
#
#echo Re-tarring jpeg in a subdirectory...
#cd $2
#mkdir wxWindows-${WXVER}
#cd wxWindows-${WXVER}
#$TAR xf ../wxWindows-${WXVER}-jpeg.tar
#cd ..
#rm -f wxWindows-${WXVER}-jpeg.tar
#$TAR cf $2/wxWindows-${WXVER}-jpeg.tar wxWindows-${WXVER}/*
#rm -f -r wxWindows-${WXVER}
#gzip $2/wxWindows-${WXVER}-jpeg.tar
### TIFF
#cd $1
#cat $1/distrib/msw/tiff.rsp > /tmp/tiff_in.txt
#expandlines /tmp/tiff_in.txt /tmp/tiff.txt
#$TAR cf $2/wxWindows-${WXVER}-tiff.tar -T /tmp/tiff.txt
#
#echo Re-tarring docs in a subdirectory...
#cd $2
#mkdir wxWindows-${WXVER}
#cd wxWindows-${WXVER}
#$TAR xf ../wxWindows-${WXVER}-tiff.tar
#cd ..
#rm -f wxWindows-${WXVER}-tiff.tar
#$TAR cf $2/wxWindows-${WXVER}-tiff.tar wxWindows-${WXVER}/*
#rm -f -r wxWindows-${WXVER}
#gzip $2/wxWindows-${WXVER}-tiff.tar
# Copy readme and other files
cd $1
cp $1/docs/readme.txt $2/readme-${WXVER}.txt
cp $1/docs/changes.txt $2/changes-${WXVER}.txt
cp $1/docs/mgl/readme.txt $2/readme-mgl-${WXVER}.txt
cp $1/docs/mgl/install.txt $2/install-mgl-${WXVER}.txt
cp $1/docs/x11/readme.txt $2/readme-x11-${WXVER}.txt
cp $1/docs/x11/readme-nanox.txt $2/readme-nanox-${WXVER}.txt
cp $1/docs/x11/install.txt $2/install-x11-${WXVER}.txt
cp $1/docs/motif/readme.txt $2/readme-motif-${WXVER}.txt
cp $1/docs/motif/install.txt $2/install-motif-${WXVER}.txt
cp $1/docs/msw/readme.txt $2/readme-msw-${WXVER}.txt
cp $1/docs/msw/install.txt $2/install-msw-${WXVER}.txt
cp $1/docs/gtk/readme.txt $2/readme-gtk-${WXVER}.txt
cp $1/docs/gtk/install.txt $2/install-gtk-${WXVER}.txt
cp $1/docs/mac/readme.txt $2/readme-mac-${WXVER}.txt
cp $1/docs/mac/install.txt $2/install-mac-${WXVER}.txt
cp $1/docs/os2/install.txt $2/install-os2-${WXVER}.txt
echo Done!

View File

@@ -97,6 +97,8 @@
$wxGTKINCLUDE{$filename} = $fileflags; $wxGTKINCLUDE{$filename} = $fileflags;
} elsif ( $filetype eq "OS2H" ) { } elsif ( $filetype eq "OS2H" ) {
$wxOS2PMINCLUDE{$filename} = $fileflags; $wxOS2PMINCLUDE{$filename} = $fileflags;
} elsif ( $filetype eq "MGLH" ) {
$wxMGLINCLUDE{$filename} = $fileflags;
} elsif ( $filetype eq "X11H" ) { } elsif ( $filetype eq "X11H" ) {
$wxX11INCLUDE{$filename} = $fileflags; $wxX11INCLUDE{$filename} = $fileflags;
} elsif ( $filetype eq "UnivH" ) { } elsif ( $filetype eq "UnivH" ) {

View File

@@ -30,6 +30,7 @@
# MotifH /include/wx/motif # MotifH /include/wx/motif
# MSWH /include/wx/msw # MSWH /include/wx/msw
# OS2H /include/wx/os2 # OS2H /include/wx/os2
# MGLH /include/wx/mgl
# X11H /include/wx/x11 # X11H /include/wx/x11
# GenericH /include/wx/generic # GenericH /include/wx/generic
# HtmlH /include/wx/html # HtmlH /include/wx/html
@@ -1229,6 +1230,28 @@ textctrl.h X11H
toplevel.h X11H toplevel.h X11H
window.h X11H window.h X11H
app.h MGLH
bitmap.h MGLH
brush.h MGLH
clipbrd.h MGLH
colour.h MGLH
cursor.h MGLH
dc.h MGLH
dcclient.h MGLH
dcmemory.h MGLH
dcscreen.h MGLH
font.h MGLH
fontutil.h MGLH
gdiobj.h MGLH
icon.h MGLH
palette.h MGLH
pen.h MGLH
popupwin.h MGLH
private.h MGLH
region.h MGLH
toplevel.h MGLH
window.h MGLH
accel.h MSWH accel.h MSWH
app.h MSWH app.h MSWH
bitmap.h MSWH bitmap.h MSWH
@@ -1266,7 +1289,7 @@ fontdlg.h MSWH
frame.h MSWH frame.h MSWH
gauge95.h MSWH gauge95.h MSWH
gaugemsw.h MSWH gaugemsw.h MSWH
gccpriv.h MSWH gccpriv.h MSWH Base
gdiimage.h MSWH gdiimage.h MSWH
gdiobj.h MSWH gdiobj.h MSWH
glcanvas.h MSWH glcanvas.h MSWH

View File

@@ -13,7 +13,6 @@
IncludeTemplate("filelist.t"); IncludeTemplate("filelist.t");
#! find all our sources #! find all our sources
$project{"COMMONOBJS"} .= "parser.o ";
foreach $file (sort keys %wxGeneric) { foreach $file (sort keys %wxGeneric) {
next if $wxGeneric{$file} =~ /\bNotMGL\b/; next if $wxGeneric{$file} =~ /\bNotMGL\b/;

View File

@@ -170,6 +170,13 @@ wxThread and related classes:
OTHER CHANGES OTHER CHANGES
============= =============
2.4.0
-----
wxMSW:
- fixed loss of client data in wxChoice::SetString()
2.3.4 2.3.4
----- -----

View File

@@ -32,6 +32,7 @@ See also <a href="faq.htm">top-level FAQ page</a>.
<li><a href="#redhat">Warning about GTK libraries supplied with RedHat</a></li> <li><a href="#redhat">Warning about GTK libraries supplied with RedHat</a></li>
<li><a href="#bincompat">What range of Intel Linux platforms will a given application binary be usable on?</a></li> <li><a href="#bincompat">What range of Intel Linux platforms will a given application binary be usable on?</a></li>
<li><a href="#static">Can I statically link the GTK+ library?</a></li> <li><a href="#static">Can I statically link the GTK+ library?</a></li>
<li><a href="#charinframe">Why does my simple program using <tt>EVT_CHAR</tt> doesn't work?</a></li>
</ul> </ul>
<hr> <hr>
@@ -97,6 +98,17 @@ the image libraries and std C++ lib)."
No, this is not possible. It leads to crashes in GTK+. No, this is not possible. It leads to crashes in GTK+.
<P> <P>
<h3><a name="#charinframe">Why does my simple program using
<tt>EVT_CHAR</tt> doesn't work?</a></h3>
In wxGTK, the frames never get focus and so can never receive <tt>CHAR</tt>
nor <tt>KEY</tt> events so an <tt>EVT_CHAR</tt> handler for a frame will be
never called. To receive these events, you should create a <tt>wxPanel</tt>
inside the frame and register the key event handlers for the panel, not the
frame.
<p>
</font> </font>
</BODY> </BODY>

View File

@@ -89,7 +89,7 @@ on the file name format and the only portable way to answer to this question is
to use \helpref{IsAbsolute}{wxfilenameisabsolute} method. To ensure that the to use \helpref{IsAbsolute}{wxfilenameisabsolute} method. To ensure that the
filename is absolute you may use \helpref{Normalize}{wxfilenamenormalize}. There filename is absolute you may use \helpref{Normalize}{wxfilenamenormalize}. There
is also an inverse function \helpref{MakeRelativeTo}{wxfilenamemakerelativeto} is also an inverse function \helpref{MakeRelativeTo}{wxfilenamemakerelativeto}
which undoes what \helpref{Normalize(wxPATH\_NORM\_DOTS}{wxfilenamenormalize} which undoes what \helpref{Normalize(wxPATH\_NORM\_DOTS)}{wxfilenamenormalize}
does. does.
Other functions returning information about the file format provided by this Other functions returning information about the file format provided by this

View File

@@ -371,7 +371,8 @@ call to this function.
\membersection{::wxSafeYield}\label{wxsafeyield} \membersection{::wxSafeYield}\label{wxsafeyield}
\func{bool}{wxSafeYield}{\param{wxWindow*}{ win = NULL}} \func{bool}{wxSafeYield}{\param{wxWindow*}{ win = NULL}, \param{bool}{
onlyIfNeeded = FALSE}}
This function is similar to wxYield, except that it disables the user input to This function is similar to wxYield, except that it disables the user input to
all program windows before calling wxYield and re-enables it again all program windows before calling wxYield and re-enables it again
@@ -401,7 +402,7 @@ once for each previous successful call to \helpref{wxInitialize}{wxinitialize}.
Calls \helpref{wxApp::Yield}{wxappyield}. Calls \helpref{wxApp::Yield}{wxappyield}.
This function is kept only for backwards compatibility. Please use This function is kept only for backwards compatibility. Please use
the \helpref{wxApp::Yield}{wxappyield} method instead in any new code. the \helpref{wxApp::Yield}{wxappyield} method instead in any new code.
\wxheading{Include files} \wxheading{Include files}
@@ -476,10 +477,10 @@ case of using DDE under Windows for command execution). In particular, in this,
and only this, case the calling code will not get the notification about and only this, case the calling code will not get the notification about
process termination. process termination.
If callback isn't NULL and if execution is asynchronous, If callback isn't NULL and if execution is asynchronous,
\helpref{wxProcess::OnTerminate}{wxprocessonterminate} will be called when \helpref{wxProcess::OnTerminate}{wxprocessonterminate} will be called when
the process finishes. Specifying this parameter also allows you to redirect the the process finishes. Specifying this parameter also allows you to redirect the
standard input and/or output of the process being launched by calling standard input and/or output of the process being launched by calling
\helpref{Redirect}{wxprocessredirect}. If the child process IO is redirected, \helpref{Redirect}{wxprocessredirect}. If the child process IO is redirected,
under Windows the process window is not shown by default (this avoids having to under Windows the process window is not shown by default (this avoids having to
flush an unnecessary console for the processes which don't create any windows flush an unnecessary console for the processes which don't create any windows
@@ -509,7 +510,7 @@ single string.}
array, any additional ones are the command parameters and the array must be array, any additional ones are the command parameters and the array must be
terminated with a NULL pointer.} terminated with a NULL pointer.}
\docparam{flags}{Combination of bit masks {\tt wxEXEC\_ASYNC}, \docparam{flags}{Combination of bit masks {\tt wxEXEC\_ASYNC},
{\tt wxEXEC\_SYNC} and {\tt wxEXEC\_NOHIDE}} {\tt wxEXEC\_SYNC} and {\tt wxEXEC\_NOHIDE}}
\docparam{callback}{An optional pointer to \helpref{wxProcess}{wxprocess}} \docparam{callback}{An optional pointer to \helpref{wxProcess}{wxprocess}}
@@ -617,7 +618,7 @@ See also \helpref{wxExecute}{wxexecute}, \helpref{Exec sample}{sampleexec}.
\func{bool}{wxShutdown}{\param{wxShutdownFlags}{flags}} \func{bool}{wxShutdown}{\param{wxShutdownFlags}{flags}}
This function shuts down or reboots the computer depending on the value of the This function shuts down or reboots the computer depending on the value of the
{\it flags}. Please notice that doing this requires the corresponding access {\it flags}. Please notice that doing this requires the corresponding access
rights (superuser under Unix, {\tt SE\_SHUTDOWN} privelege under Windows NT) rights (superuser under Unix, {\tt SE\_SHUTDOWN} privelege under Windows NT)
and that this function is only implemented under Unix and Win32. and that this function is only implemented under Unix and Win32.
@@ -731,7 +732,7 @@ Returns time of last modification of given file.
\func{char *}{wxFileNameFromPath}{\param{char *}{path}} \func{char *}{wxFileNameFromPath}{\param{char *}{path}}
{\bf NB:} This function is obsolete, please use {\bf NB:} This function is obsolete, please use
\helpref{wxFileName::SplitPath}{wxfilenamesplitpath} instead. \helpref{wxFileName::SplitPath}{wxfilenamesplitpath} instead.
Returns the filename for a full path. The second form returns a pointer to Returns the filename for a full path. The second form returns a pointer to
@@ -925,7 +926,7 @@ Under MS Windows, the current drive is also changed if {\it dir} contains a driv
\func{void}{wxSplitPath}{\param{const char *}{ fullname}, \param{wxString *}{ path}, \param{wxString *}{ name}, \param{wxString *}{ ext}} \func{void}{wxSplitPath}{\param{const char *}{ fullname}, \param{wxString *}{ path}, \param{wxString *}{ name}, \param{wxString *}{ ext}}
{\bf NB:} This function is obsolete, please use {\bf NB:} This function is obsolete, please use
\helpref{wxFileName::SplitPath}{wxfilenamesplitpath} instead. \helpref{wxFileName::SplitPath}{wxfilenamesplitpath} instead.
This function splits a full file name into components: the path (including possible disk/drive This function splits a full file name into components: the path (including possible disk/drive
@@ -1127,7 +1128,7 @@ Gets operating system version information.
\func{const wxChar *}{wxGetUserHome}{\param{const wxString\& }{user = ""}} \func{const wxChar *}{wxGetUserHome}{\param{const wxString\& }{user = ""}}
Returns the home directory for the given user. If the username is empty Returns the home directory for the given user. If the username is empty
(default value), this function behaves like (default value), this function behaves like
\helpref{wxGetHomeDir}{wxgethomedir}. \helpref{wxGetHomeDir}{wxgethomedir}.
\wxheading{Include files} \wxheading{Include files}
@@ -2224,7 +2225,7 @@ Find a menu item identifier associated with the given frame's menu bar.
\func{wxWindow *}{wxFindWindowByLabel}{\param{const wxString\& }{label}, \param{wxWindow *}{parent=NULL}} \func{wxWindow *}{wxFindWindowByLabel}{\param{const wxString\& }{label}, \param{wxWindow *}{parent=NULL}}
{\bf NB:} This function is obsolete, please use {\bf NB:} This function is obsolete, please use
\helpref{wxWindow::FindWindowByLabel}{wxwindowfindwindowbylabel} instead. \helpref{wxWindow::FindWindowByLabel}{wxwindowfindwindowbylabel} instead.
Find a window by its label. Depending on the type of window, the label may be a window title Find a window by its label. Depending on the type of window, the label may be a window title
@@ -2240,7 +2241,7 @@ The search is recursive in both cases.
\func{wxWindow *}{wxFindWindowByName}{\param{const wxString\& }{name}, \param{wxWindow *}{parent=NULL}} \func{wxWindow *}{wxFindWindowByName}{\param{const wxString\& }{name}, \param{wxWindow *}{parent=NULL}}
{\bf NB:} This function is obsolete, please use {\bf NB:} This function is obsolete, please use
\helpref{wxWindow::FindWindowByName}{wxwindowfindwindowbyname} instead. \helpref{wxWindow::FindWindowByName}{wxwindowfindwindowbyname} instead.
Find a window by its name (as given in a window constructor or {\bf Create} function call). Find a window by its name (as given in a window constructor or {\bf Create} function call).
@@ -2418,7 +2419,7 @@ See also \helpref{wxGetDisplayName}{wxgetdisplayname}.
\func{void}{wxStripMenuCodes}{\param{char *}{in}, \param{char *}{out}} \func{void}{wxStripMenuCodes}{\param{char *}{in}, \param{char *}{out}}
{\bf NB:} This function is obsolete, please use {\bf NB:} This function is obsolete, please use
\helpref{wxMenuItem::GetLabelFromText}{wxmenuitemgetlabelfromtext} instead. \helpref{wxMenuItem::GetLabelFromText}{wxmenuitemgetlabelfromtext} instead.
Strips any menu codes from {\it in} and places the result Strips any menu codes from {\it in} and places the result
@@ -3071,7 +3072,7 @@ instead.
\func{void}{wxError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWindows Internal Error"}} \func{void}{wxError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWindows Internal Error"}}
{\bf NB:} This function is now obsolete, please use \helpref{wxLogError}{wxlogerror} {\bf NB:} This function is now obsolete, please use \helpref{wxLogError}{wxlogerror}
instead. instead.
Displays {\it msg} and continues. This writes to standard error under Displays {\it msg} and continues. This writes to standard error under
@@ -3086,7 +3087,7 @@ wxWindows errors. See also \helpref{wxFatalError}{wxfatalerror}.
\func{void}{wxFatalError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWindows Fatal Error"}} \func{void}{wxFatalError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWindows Fatal Error"}}
{\bf NB:} This function is now obsolete, please use {\bf NB:} This function is now obsolete, please use
\helpref{wxLogFatalError}{wxlogfatalerror} instead. \helpref{wxLogFatalError}{wxlogfatalerror} instead.
Displays {\it msg} and exits. This writes to standard error under Unix, Displays {\it msg} and exits. This writes to standard error under Unix,
@@ -3251,7 +3252,7 @@ trace masks.
This function shows a message to the user in a safe way and should be safe to This function shows a message to the user in a safe way and should be safe to
call even before the application has been initialized or if it is currently in call even before the application has been initialized or if it is currently in
some other strange state (for example, about to crash). Under Windows this some other strange state (for example, about to crash). Under Windows this
function shows a message box using a native dialog instead of function shows a message box using a native dialog instead of
\helpref{wxMessageBox}{wxmessagebox} (which might be unsafe to call), elsewhere \helpref{wxMessageBox}{wxmessagebox} (which might be unsafe to call), elsewhere
it simply prints the message to the standard output using the title as prefix. it simply prints the message to the standard output using the title as prefix.
@@ -3494,7 +3495,7 @@ builds the \helpref{wxCHECK}{wxcheck} failures don't result in anything.
To override the default behaviour in the debug builds which is to show the user To override the default behaviour in the debug builds which is to show the user
a dialog asking whether he wants to abort the program, continue or continue a dialog asking whether he wants to abort the program, continue or continue
ignoring any subsequent assert failures, you may override ignoring any subsequent assert failures, you may override
\helpref{wxApp::OnAssert}{wxapponassert} which is called by this function if \helpref{wxApp::OnAssert}{wxapponassert} which is called by this function if
the global application object exists. the global application object exists.
@@ -3517,7 +3518,7 @@ because it will not be executed in release mode at all.
\func{}{wxASSERT\_MIN\_BITSIZE}{\param{}{type}, \param{}{size}} \func{}{wxASSERT\_MIN\_BITSIZE}{\param{}{type}, \param{}{size}}
This macro results in a This macro results in a
\helpref{compile time assertion failure}{wxcompiletimeassert} if the size \helpref{compile time assertion failure}{wxcompiletimeassert} if the size
of the given type {\it type} is less than {\it size} bits. of the given type {\it type} is less than {\it size} bits.
@@ -3551,14 +3552,14 @@ specified {\it condition} is false. The compiler error message should include
the {\it msg} identifier - please note that it must be a valid C++ identifier the {\it msg} identifier - please note that it must be a valid C++ identifier
and not a string unlike in the other cases. and not a string unlike in the other cases.
This macro is mostly useful for testing the expressions involving the This macro is mostly useful for testing the expressions involving the
{\tt sizeof} operator as they can't be tested by the preprocessor but it is {\tt sizeof} operator as they can't be tested by the preprocessor but it is
sometimes desirable to test them at the compile time. sometimes desirable to test them at the compile time.
Note that this macro internally declares a struct whose name it tries to make Note that this macro internally declares a struct whose name it tries to make
unique by using the {\tt \_\_LINE\_\_} in it but it may still not work if you unique by using the {\tt \_\_LINE\_\_} in it but it may still not work if you
use it on the same line in two different source files. In this case you may use it on the same line in two different source files. In this case you may
either change the line in which either of them appears on or use the either change the line in which either of them appears on or use the
\helpref{wxCOMPILE\_TIME\_ASSERT2}{wxcompiletimeassert2} macro. \helpref{wxCOMPILE\_TIME\_ASSERT2}{wxcompiletimeassert2} macro.
\wxheading{See also} \wxheading{See also}
@@ -3570,7 +3571,7 @@ either change the line in which either of them appears on or use the
\func{}{wxCOMPILE\_TIME\_ASSERT}{\param{}{condition}, \param{}{msg}, \param{}{name}} \func{}{wxCOMPILE\_TIME\_ASSERT}{\param{}{condition}, \param{}{msg}, \param{}{name}}
This macro is identical to \helpref{wxCOMPILE\_TIME\_ASSERT2}{wxcompiletimeassert2} This macro is identical to \helpref{wxCOMPILE\_TIME\_ASSERT2}{wxcompiletimeassert2}
except that it allows you to specify a unique {\it name} for the struct except that it allows you to specify a unique {\it name} for the struct
internally defined by this macro to avoid getting the compilation errors internally defined by this macro to avoid getting the compilation errors
described \helpref{above}{wxcompiletimeassert}. described \helpref{above}{wxcompiletimeassert}.

View File

@@ -68,9 +68,11 @@ future versions completely. The use of the latter is especially discouraged as
it is not only unsafe but is also much less efficient than it is not only unsafe but is also much less efficient than
\helpref{wxArrayString}{wxarraystring} class. \helpref{wxArrayString}{wxarraystring} class.
In the documentation of the list classes below, you should replace wxNode with In the documentation of the list classes below, the template notations are
wxListName::Node and wxObject with the list element type (i.e. the first used even though these classes are not really templates at all -- but it helps
parameter of WX\_DECLARE\_LIST) for the template lists. to think about them as if they were. You should replace wxNode<T> with
wxListName::Node and T itself with the list element type (i.e. the first
parameter of WX\_DECLARE\_LIST).
\wxheading{Derived from} \wxheading{Derived from}
@@ -138,9 +140,9 @@ members for getting to the next or previous node.
\func{}{wxList}{\param{unsigned int}{ key\_type}} \func{}{wxList}{\param{unsigned int}{ key\_type}}
\func{}{wxList}{\param{int}{ n}, \param{wxObject *}{objects[]}} \func{}{wxList}{\param{int}{ n}, \param{T *}{objects[]}}
\func{}{wxList}{\param{wxObject *}{object}, ...} \func{}{wxList}{\param{T *}{object}, ...}
Constructors. {\it key\_type} is one of wxKEY\_NONE, wxKEY\_INTEGER, or wxKEY\_STRING, Constructors. {\it key\_type} is one of wxKEY\_NONE, wxKEY\_INTEGER, or wxKEY\_STRING,
and indicates what sort of keying is required (if any). and indicates what sort of keying is required (if any).
@@ -159,15 +161,16 @@ client data held in the nodes.
\membersection{wxList::Append}\label{wxlistappend} \membersection{wxList::Append}\label{wxlistappend}
\func{wxNode *}{Append}{\param{wxObject *}{object}} \func{wxNode<T> *}{Append}{\param{T *}{object}}
\func{wxNode *}{Append}{\param{long}{ key}, \param{wxObject *}{object}} \func{wxNode<T> *}{Append}{\param{long}{ key}, \param{T *}{object}}
\func{wxNode *}{Append}{\param{const wxString\& }{key}, \param{wxObject *}{object}} \func{wxNode<T> *}{Append}{\param{const wxString\& }{key}, \param{T *}{object}}
Appends a new {\bf wxNode} to the end of the list and puts a pointer to the Appends a new \helpref{wxNode}{wxnode} to the end of the list and puts a
\rtfsp{\it object} in the node. The last two forms store a key with the object for pointer to the \rtfsp{\it object} in the node. The last two forms store a key
later retrieval using the key. The new node is returned in each case. with the object for later retrieval using the key. The new node is returned in
each case.
The key string is copied and stored by the list implementation. The key string is copied and stored by the list implementation.
@@ -187,22 +190,26 @@ a node whenever the node is destroyed. The default is {\tt FALSE}.
\membersection{wxList::DeleteNode}\label{wxlistdeletenode} \membersection{wxList::DeleteNode}\label{wxlistdeletenode}
\func{bool}{DeleteNode}{\param{wxNode *}{node}} \func{bool}{DeleteNode}{\param{wxNode<T> *}{node}}
Deletes the given node from the list, returning {\tt TRUE} if successful. Deletes the given node from the list, returning {\tt TRUE} if successful.
\membersection{wxList::DeleteObject}\label{wxlistdeleteobject} \membersection{wxList::DeleteObject}\label{wxlistdeleteobject}
\func{bool}{DeleteObject}{\param{wxObject *}{object}} \func{bool}{DeleteObject}{\param{T *}{object}}
Finds the given client {\it object} and deletes the appropriate node from the list, returning Finds the given client {\it object} and deletes the appropriate node from the list, returning
{\tt TRUE} if successful. The application must delete the actual object separately. {\tt TRUE} if successful. The application must delete the actual object separately.
\membersection{wxList::Find}\label{wxlistfind} \membersection{wxList::Find}\label{wxlistfind}
\func{wxNode *}{Find}{\param{long}{ key}} \func{wxNode<T> *}{Find}{\param{T *}{ object}}
\func{wxNode *}{Find}{\param{const wxString\& }{key}} Returns the node whose client date is {\it object} or NULL if none found.
\func{wxNode<T> *}{Find}{\param{long}{ key}}
\func{wxNode<T> *}{Find}{\param{const wxString\& }{key}}
Returns the node whose stored key matches {\it key}. Use on a keyed list only. Returns the node whose stored key matches {\it key}. Use on a keyed list only.
@@ -214,37 +221,37 @@ Returns the number of elements in the list.
\membersection{wxList::GetFirst}\label{wxlistgetfirst} \membersection{wxList::GetFirst}\label{wxlistgetfirst}
\func{wxNode *}{GetFirst}{\void} \func{wxNode<T> *}{GetFirst}{\void}
Returns the first node in the list (NULL if the list is empty). Returns the first node in the list (NULL if the list is empty).
\membersection{wxList::GetLast}\label{wxlistgetlast} \membersection{wxList::GetLast}\label{wxlistgetlast}
\func{wxNode *}{GetLast}{\void} \func{wxNode<T> *}{GetLast}{\void}
Returns the last node in the list (NULL if the list is empty). Returns the last node in the list (NULL if the list is empty).
\membersection{wxList::IndexOf}\label{wxlistindexof} \membersection{wxList::IndexOf}\label{wxlistindexof}
\func{int}{IndexOf}{\param{wxObject*}{ obj }} \func{int}{IndexOf}{\param{T*}{ obj }}
Returns the index of {\it obj} within the list or wxNOT\_FOUND if {\it obj} Returns the index of {\it obj} within the list or wxNOT\_FOUND if {\it obj}
is not found in the list. is not found in the list.
\membersection{wxList::Insert}\label{wxlistinsert} \membersection{wxList::Insert}\label{wxlistinsert}
\func{wxNode *}{Insert}{\param{wxObject *}{object}} \func{wxNode<T> *}{Insert}{\param{T *}{object}}
Insert object at front of list. Insert object at front of list.
\func{wxNode *}{Insert}{\param{size\_t }{position}, \param{wxObject *}{object}} \func{wxNode<T> *}{Insert}{\param{size\_t }{position}, \param{T *}{object}}
Insert object before {\it position}, i.e. the index of the new item in the Insert object before {\it position}, i.e. the index of the new item in the
list will be equal to {\it position}. {\it position} should be less than or list will be equal to {\it position}. {\it position} should be less than or
equal to \helpref{GetCount}{wxlistgetcount}; if it is equal to it, this is the equal to \helpref{GetCount}{wxlistgetcount}; if it is equal to it, this is the
same as calling \helpref{Append}{wxlistappend}. same as calling \helpref{Append}{wxlistappend}.
\func{wxNode *}{Insert}{\param{wxNode *}{node}, \param{wxObject *}{object}} \func{wxNode<T> *}{Insert}{\param{wxNode<T> *}{node}, \param{T *}{object}}
Inserts the object before the given {\it node}. Inserts the object before the given {\it node}.
@@ -257,13 +264,13 @@ Returns {\tt TRUE} if the list is empty, {\tt FALSE} otherwise.
% Use different label name to avoid clashing with wxListItem label % Use different label name to avoid clashing with wxListItem label
\membersection{wxList::Item}\label{wxlistitemfunc} \membersection{wxList::Item}\label{wxlistitemfunc}
\constfunc{wxNode *}{Item}{\param{size\_t }{index}} \constfunc{wxNode<T> *}{Item}{\param{size\_t }{index}}
Returns the node at given position in the list. Returns the node at given position in the list.
\membersection{wxList::Member}\label{wxlistmember} \membersection{wxList::Member}\label{wxlistmember}
\func{wxNode *}{Member}{\param{wxObject *}{object}} \func{wxNode<T> *}{Member}{\param{T *}{object}}
{\bf NB:} This function is deprecated, use \helpref{Find}{wxlistfind} instead. {\bf NB:} This function is deprecated, use \helpref{Find}{wxlistfind} instead.
@@ -271,7 +278,7 @@ Returns the node associated with {\it object} if it is in the list, NULL otherwi
\membersection{wxList::Nth}\label{wxlistnth} \membersection{wxList::Nth}\label{wxlistnth}
\func{wxNode *}{Nth}{\param{int}{ n}} \func{wxNode<T> *}{Nth}{\param{int}{ n}}
{\bf NB:} This function is deprecated, use \helpref{Item}{wxlistitemfunc} instead. {\bf NB:} This function is deprecated, use \helpref{Item}{wxlistitemfunc} instead.

View File

@@ -380,7 +380,9 @@ wxLogChain *logChain = new wxLogChain(new wxLogStderr);
// all the log messages are sent to stderr and also processed as usually // all the log messages are sent to stderr and also processed as usually
... ...
delete logChain; // don't delete logChain directly as this would leave a dangling
// pointer as active log target, use SetActiveTarget() instead
delete wxLog::SetActiveTarget(...something else or NULL...);
\end{verbatim} \end{verbatim}

View File

@@ -26,7 +26,7 @@
%\special{!/@scaleunit 1 def} %\special{!/@scaleunit 1 def}
\parskip=10pt \parskip=10pt
\parindent=0pt \parindent=0pt
\title{wxWindows 2.3: A portable C++ and Python GUI toolkit} \title{wxWindows 2.3.4: A portable C++ and Python GUI toolkit}
\winhelponly{\author{by Julian Smart et al \winhelponly{\author{by Julian Smart et al
%\winhelponly{\\$$\image{1cm;0cm}{wxwin.wmf}$$} %\winhelponly{\\$$\image{1cm;0cm}{wxwin.wmf}$$}
}} }}

View File

@@ -36,7 +36,9 @@ Constructs a wxMenuItem object.
\docparam{id}{Identifier for this menu item, or ID\_SEPARATOR to indicate a separator.} \docparam{id}{Identifier for this menu item, or ID\_SEPARATOR to indicate a separator.}
\docparam{text}{Text for the menu item, as shown on the menu.} \docparam{text}{Text for the menu item, as shown on the menu. An accelerator
key can be specified using the ampersand '\&' character. In order to embed an
ampersand character in the menu item text, the ampersand must be doubled.}
\docparam{helpString}{Optional help string that will be shown on the status bar.} \docparam{helpString}{Optional help string that will be shown on the status bar.}

View File

@@ -1,12 +1,19 @@
\section{\class{wxNodeBase}}\label{wxnode} \section{\class{wxNode}}\label{wxnode}
A node structure used in linked lists (see \helpref{wxList}{wxlist}) and wxNodeBase is the node structure used in linked lists (see
derived classes. You should never use wxNodeBase class directly because it \helpref{wxList}{wxlist}) and derived classes. You should never use wxNodeBase
works with untyped (void *) data and this is unsafe. Use wxNode-derived classes class directly, however, because it works with untyped ({\tt void *}) data and
which are defined by WX\_DECLARE\_LIST and WX\_DEFINE\_LIST macros instead as this is unsafe. Use wxNodeBase-derived classes which are automatically defined
described in \helpref{wxList}{wxlist} documentation (see example there). wxNode by WX\_DECLARE\_LIST and WX\_DEFINE\_LIST macros instead as described in
is defined for compatibility as wxNodeBase containing "wxObject *" pointer, but \helpref{wxList}{wxlist} documentation (see example there). Also note that
usage of this class is deprecated. although there is a class called wxNode, it is defined for backwards
compatibility only and usage of this class is strongly deprecated.
In the documentation below, the type {\tt T} should be thought of as a
``template'' parameter: this is the type of data stored in the linked list or,
in other words, the first argument of WX\_DECLARE\_LIST macro. Also, wxNode is
written as wxNode<T> even though it isn't really a template class -- but it
helps to think of it as if it were.
\wxheading{Derived from} \wxheading{Derived from}
@@ -22,32 +29,32 @@ None.
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxNodeBase::GetData} \membersection{wxNode<T>::GetData}
\func{void *}{Data}{\void} \constfunc{T *}{GetData}{\void}
Retrieves the client data pointer associated with the node. Retrieves the client data pointer associated with the node.
\membersection{wxNodeBase::GetNext} \membersection{wxNode<T>::GetNext}
\func{wxNodeBase *}{Next}{\void} \constfunc{wxNode<T> *}{GetNext}{\void}
Retrieves the next node (NULL if at end of list). Retrieves the next node or NULL if this node is the last one.
\membersection{wxNodeBase::GetPrevious} \membersection{wxNode<T>::GetPrevious}
\func{wxNodeBase *}{GetPrevious}{\void} \func{wxNode<T> *}{GetPrevious}{\void}
Retrieves the previous node (NULL if at start of list). Retrieves the previous node or NULL if this node is the first one in the list.
\membersection{wxNodeBase::SetData} \membersection{wxNode<T>::SetData}
\func{void}{SetData}{\param{void *}{data}} \func{void}{SetData}{\param{T *}{data}}
Sets the data associated with the node (usually the pointer will have been Sets the data associated with the node (usually the pointer will have been
set when the node was created). set when the node was created).
\membersection{wxNodeBase::IndexOf} \membersection{wxNode<T>::IndexOf}
\func{int}{IndexOf}{\void} \func{int}{IndexOf}{\void}

View File

@@ -1,7 +1,8 @@
\section{\class{wxTreeCtrl}}\label{wxtreectrl} \section{\class{wxTreeCtrl}}\label{wxtreectrl}
A tree control presents information as a hierarchy, with items that may be expanded A tree control presents information as a hierarchy, with items that may be expanded
to show further items. Items in a tree control are referenced by wxTreeItemId handles. to show further items. Items in a tree control are referenced by wxTreeItemId handles,
which may be tested for validity by calling wxTreeItemId::IsOk.
To intercept events from a tree control, use the event table macros described in \helpref{wxTreeEvent}{wxtreeevent}. To intercept events from a tree control, use the event table macros described in \helpref{wxTreeEvent}{wxtreeevent}.

View File

@@ -6,7 +6,8 @@ The tree control displays its items in a tree like structure. Each item has its
own (optional) icon and a label. An item may be either collapsed (meaning that own (optional) icon and a label. An item may be either collapsed (meaning that
its children are not visible) or expanded (meaning that its children are its children are not visible) or expanded (meaning that its children are
shown). Each item in the tree is identified by its {\it itemId} which is of shown). Each item in the tree is identified by its {\it itemId} which is of
opaque data type {\it wxTreeItemId}. opaque data type {\it wxTreeItemId}. You can test whether an item is valid
by calling wxTreeItemId::IsOk.
The items text and image may be retrieved and changed with The items text and image may be retrieved and changed with
\helpref{GetItemText}{wxtreectrlgetitemtext}/\helpref{SetItemText}{wxtreectrlsetitemtext} \helpref{GetItemText}{wxtreectrlgetitemtext}/\helpref{SetItemText}{wxtreectrlsetitemtext}

View File

@@ -3,13 +3,13 @@
wxWindow is the base class for all windows. Any children of the window will be deleted wxWindow is the base class for all windows. Any children of the window will be deleted
automatically by the destructor before the window itself is deleted. automatically by the destructor before the window itself is deleted.
Please note that we documented a number of handler functions (OnChar(), OnMouse() etc.) in this %Please note that we documented a number of handler functions (OnChar(), OnMouse() etc.) in this
help text. These must not be called by a user program and are documented only for illustration. %help text. These must not be called by a user program and are documented only for illustration.
On several platforms, only a few of these handlers are actually written (they are not always %On several platforms, only a few of these handlers are actually written (they are not always
needed) and if you are uncertain on how to add a certain behaviour to a window class, intercept %needed) and if you are uncertain on how to add a certain behaviour to a window class, intercept
the respective event as usual and call \helpref{wxEvent::Skip}{wxeventskip} so that the native %the respective event as usual and call \helpref{wxEvent::Skip}{wxeventskip} so that the native
platform can implement its native behaviour or just ignore the event if nothing needs to be %platform can implement its native behaviour or just ignore the event if nothing needs to be
done. %done.
\wxheading{Derived from} \wxheading{Derived from}

View File

@@ -1,26 +1,45 @@
Installing and compiling wxMac
============================================================
On MacOS X, you can download Apple's free developer tools (gcc
and associated headers and libraries, such as the Carbon API).
You can then use configure in a similar way to compiling
wxWindows on Linux, (or on Windows using MinGW or Cygwin). See
'Apple Developers Tools' below for more details on using
configure.
To target on MacOS 8 or 9, you need to buy Metrowerks
CodeWarrior. You can then compile Mac Classic or MacOS X
applications on Mac OS X, or compile Mac Classic or MacOS X
applications on Mac Classic. However you can only run and debug
each type of application on the target operating system.
Installing latest headers (and Carbon Support) Installing latest headers (and Carbon Support)
---------------------------------------------- ----------------------------------------------
NOTE : these steps are not necessary for Pro 6, only for Pro 5.3 NOTE: these steps are not necessary for CW Pro 6 and above,
only for CW Pro 5.3.
the latest build for carbon support lead to a few changes you will have to The latest build for carbon support leads to a few changes you will have to
follow, in order to successfully compile the code (also necessary if you don't follow, in order to successfully compile the code (also necessary if you don't
want to build the carbon targets) want to build the carbon targets).
1. you need CodeWarrior Pro 5.3 , i.e. 5.0 with all the upgrades 1. You need CodeWarrior Pro 5.3 , i.e. 5.0 with all the upgrades.
2. you have to download the 3.4.0 (or greater) universal interfaces from 2. You have to download the 3.4.0 (or greater) universal interfaces from
ftp://ftp.apple.com/developer/Development_Kits/UniversalHeaders3.4.1.img.bin ftp://ftp.apple.com/developer/Development_Kits/UniversalHeaders3.4.1.img.bin.
3. put the Interfaces and Libraries Folder into the MacOS Support folder and replace older versions 3. put the Interfaces and Libraries Folder into the MacOS Support folder and
4. remove from the MacOS Support folder the separate OpenTransport folder replace older versions.
4. remove from the MacOS Support folder the separate OpenTransport folder.
5. open the file MacOS Support:MacHeaders:MacHeaders.c and add the line 5. open the file MacOS Support:MacHeaders:MacHeaders.c and add the line
#include <ControlDefinitions.h> #include <ControlDefinitions.h>
after the after the
#include <Controls.h> #include <Controls.h>
6. rebuild all MacHeaders from the MacHeaders.mcp project in the same folder 6. rebuild all MacHeaders from the MacHeaders.mcp project in the same folder.
if you want to build the carbon targets, you will also need the latest If you want to build the carbon targets, you will also need the latest
carbonized version of MSL from Metrowerks, at the time of writing, this meant carbonized version of MSL from Metrowerks, at the time of writing, this meant
applying the changes from the folders applying the changes from the folders:
CodeWarrior Pro 5:Pre-Release:Carbon & MacOSX Development:Carbonized MSL and CodeWarrior Pro 5:Pre-Release:Carbon & MacOSX Development:Carbonized MSL and
CodeWarrior Pro 5:Pre-Release:Carbon & MacOSX Development:Carbonized Runtimes CodeWarrior Pro 5:Pre-Release:Carbon & MacOSX Development:Carbonized Runtimes
(consult the file CodeWarrior Pro 5:Pre-Release:Carbon & MacOSX Development:Carbon & MacOSX README) (consult the file CodeWarrior Pro 5:Pre-Release:Carbon & MacOSX Development:Carbon & MacOSX README)
@@ -43,8 +62,9 @@ libraries and headers from http://developer.apple.com/opengl/index.html
If you want OpenGL support with CodeWarrior, set wxUSE_OPENGL to 1 in If you want OpenGL support with CodeWarrior, set wxUSE_OPENGL to 1 in
include/wx/setup.h include/wx/setup.h
If you don't want OpenGl support, remove the file "glcanvas.cpp" from the If you don't want OpenGl support, set wxUSE_OPENGL to 0 (the
project before compilation and leave the setting at 0 default) and remove the file OpenGLLibraryStub from the project
before compilation.
If you want OpenGL support with the Apple Developer Tools under Mac OS X, add If you want OpenGL support with the Apple Developer Tools under Mac OS X, add
--with-opengl to the arguments of configure when configuring wxMac. --with-opengl to the arguments of configure when configuring wxMac.
@@ -56,16 +76,22 @@ The project files are stored as xml text files and converted to binary
CodeWarrior projects in the distribution (see AppleScript Files below): CodeWarrior projects in the distribution (see AppleScript Files below):
- *M5.xml -> *M5.mcp for CodeWarrior 5.3 - *M5.xml -> *M5.mcp for CodeWarrior 5.3
- *M6.xml -> *M6.mcp for CodeWarrior 6 - *M6.xml -> *M6.mcp for CodeWarrior 6
- *M7.xml -> *M7.mcp for CodeWarrior 7 - *M7.xml -> *M7.mcp for CodeWarrior 7 and above.
In order to build the library (and then the samples) you need to make the In order to build the library (and then the samples) you need to make the
following projects (for 5.3) following projects (for CW 5.3, similar process for CW 7):
:src:wxxindowsM5.mcp
:src:wxwindowsM5.mcp
:src:png:pngM5.mcp :src:png:pngM5.mcp
:src:tiff:tiffM5.mcp :src:tiff:tiffM5.mcp
:src:jpeg:jpegM5.mcp :src:jpeg:jpegM5.mcp
:src:zlib:zlibM5.mcp :src:zlib:zlibM5.mcp
Note that if using CW 8 and above, when compiling the samples
you may need to edit the target settings, click on Language
Settings, C/++ Language and remove the forward slash at the
start of /wx/wx_cw_d.h (or similar filename).
AppleScript Files AppleScript Files
----------------- -----------------
@@ -125,3 +151,4 @@ Missing PLStringFuncsLib
------------------------ ------------------------
You will have to build All Targets for MacOS Support:Libraries:Sources:PLStringFuncs:Glue:PLStringFuncsGlue.mcp You will have to build All Targets for MacOS Support:Libraries:Sources:PLStringFuncs:Glue:PLStringFuncsGlue.mcp

View File

@@ -4,7 +4,7 @@ More Information is available from the wxWindows project home page at
http://www.wxwindows.org http://www.wxwindows.org
For more information, please see changes.txt, todo.txt, and the For more information, please see install.txt, todo.txt, and the
manuals. manuals.
Please send problems concerning installation, feature requests, Please send problems concerning installation, feature requests,
@@ -12,7 +12,7 @@ bug reports or comments to the wxWindows users list. Information
on how to subscribe is available from the wxWindows.org homepage. on how to subscribe is available from the wxWindows.org homepage.
Questions/Problems related directly to the mac port can be sent directly Questions/Problems related directly to the mac port can be sent directly
csomor@advancedconcepts.ch csomor@advancedconcepts.ch.
wxWindows/Mac doesn't come with any guarantee whatsoever. It wxWindows/Mac doesn't come with any guarantee whatsoever. It
might crash your harddisk or destroy your monitor. It doesn't might crash your harddisk or destroy your monitor. It doesn't
@@ -20,4 +20,4 @@ claim to be suitable for any special or general purpose.
Regards, Regards,
Stefan Csomor Stefan Csomor

View File

@@ -28,6 +28,18 @@ comp.windows.x
comp.windows.x.announce comp.windows.x.announce
comp.windows.x.motif comp.windows.x.motif
Note: submissions to comp.windows.linux.announce must be
sent to cola@stump.algebra.com, with short descr
of software and location. See http://stump.algebra.com/~cola/
NO CROSSPOSTING when sending to this address.
Pack plenty information into the subject.
Don't write a subject like "Foo version 1.1 released". Many
people will not know what Foo is, so the subject won't help them
select articles. Instead, say "Foo 1.1 - copy files more
efficiently than cp". There is no need to say that the article
is an announcement, so don't write a subject like "ANNOUNCEMENT:
Foo version 1.1 released".
News and links sites: News and links sites:
----------------------- -----------------------

View File

@@ -13,7 +13,7 @@ the other Unix-based ports including wxMotif, wxX11 and wxBase.
a) Do a fresh checkout using the command a) Do a fresh checkout using the command
cvs -d :pserver:anoncvs@cvs.wxwindows.org:/home/wxcvs co wxGTK cvs -d :pserver:anoncvs@cvs.wxwindows.org:/packs/cvsroots/wxwindows co wxGTK
NB: if you realize later that some needed files were not checked out NB: if you realize later that some needed files were not checked out
by this command, please modify CVSROOT/modules to include the missing by this command, please modify CVSROOT/modules to include the missing
@@ -79,7 +79,7 @@ a) Setting up the RPM tree: you should have the RPM tree set up properly
there -- like this you won't forget to update them after redoing "make there -- like this you won't forget to update them after redoing "make
dist"). dist").
b) Start RPM build by going to RPM_ROOT directory and typing "rpmbuild -ba b) Start RPM build by going to RPM_ROOT directory and typing "rpm -ba
SPECS/wxGTK.spec". It may be a good idea to append "2>&1 | tee wxGTK.out" SPECS/wxGTK.spec". It may be a good idea to append "2>&1 | tee wxGTK.out"
(or "|& tee" if you're using the one true shell ;-) as it might be not (or "|& tee" if you're using the one true shell ;-) as it might be not
easy to detect errors in the verbose rpm output if anything goes wrong. easy to detect errors in the verbose rpm output if anything goes wrong.

View File

@@ -23,95 +23,96 @@
// of new/delete // of new/delete
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
class wxCharBuffer #define DEFINE_BUFFER(classname, chartype, strdupfunc) \
{ class classname \
public: { \
wxCharBuffer(const char *str) public: \
: m_str(str ? strdup(str) : NULL) classname(const chartype *str) \
{ : m_str(str ? strdupfunc(str) : NULL) \
} { \
} \
\
classname(size_t len) \
: m_str((chartype *)malloc((len + 1)*sizeof(chartype))) \
{ \
m_str[len] = (chartype)0; \
} \
\
/* no need to check for NULL, free() does it */ \
~classname() { free(m_str); } \
\
/* \
WARNING: \
\
the copy ctor and assignment operators change the passed in object \
even although it is declared as "const", so: \
\
a) it shouldn't be really const \
b) you shouldn't use it afterwards (or know that it was reset) \
\
This is very ugly but is unfortunately needed to make the normal use\
of classname buffer objects possible and is very similar to what \
std::auto_ptr<> does (as if it were an excuse...) \
*/ \
\
/* \
because of the remark above, release() is declared const even if it \
isn't really const \
*/ \
chartype *release() const \
{ \
chartype *p = m_str; \
((classname *)this)->m_str = NULL; \
return p; \
} \
\
classname(const classname& src) \
: m_str(src.release()) \
{ \
} \
\
classname& operator=(const chartype *str) \
{ \
free(m_str); \
m_str = str ? strdupfunc(str) : NULL; \
return *this; \
} \
\
classname& operator=(const classname& src) \
{ \
free(m_str); \
m_str = src.release(); \
\
return *this; \
} \
\
chartype *data() { return m_str; } \
const chartype *data() const { return m_str; } \
operator const chartype *() const { return m_str; } \
chartype operator[](size_t n) const { return m_str[n]; } \
\
private: \
chartype *m_str; \
}
wxCharBuffer(size_t len) DEFINE_BUFFER(wxCharBuffer, char, strdup);
: m_str((char *)malloc((len + 1)*sizeof(char)))
{
m_str[len] = '\0';
}
// no need to check for NULL, free() does it
~wxCharBuffer() { free(m_str); }
wxCharBuffer(/* non const! */ wxCharBuffer& src)
: m_str(src.m_str)
{
// no reference count yet...
src.m_str = (char *)NULL;
}
wxCharBuffer& operator=(/* non const! */ wxCharBuffer& src)
{
m_str = src.m_str;
// no reference count yet...
src.m_str = (char *)NULL;
return *this;
}
char *data() { return m_str; }
const char *data() const { return m_str; }
operator const char *() const { return m_str; }
char operator[](size_t n) const { return m_str[n]; }
private:
char *m_str;
};
#if wxUSE_WCHAR_T #if wxUSE_WCHAR_T
class wxWCharBuffer inline wchar_t *wxWcsdupReplacement(const wchar_t *wcs)
{ {
public: const size_t siz = (wxWcslen(wcs) + 1)*sizeof(wchar_t);
wxWCharBuffer(const wchar_t *wcs) wchar_t *wcsCopy = (wchar_t *)malloc(siz);
: m_wcs((wchar_t *)NULL) memcpy(wcsCopy, wcs, siz);
{ return wcsCopy;
if (wcs) { }
size_t siz = (wxWcslen(wcs) + 1)*sizeof(wchar_t);
m_wcs = (wchar_t *)malloc(siz);
memcpy(m_wcs, wcs, siz);
}
}
wxWCharBuffer(size_t len)
: m_wcs((wchar_t *)malloc((len + 1)*sizeof(wchar_t)))
{
m_wcs[len] = L'\0';
}
// no need to check for NULL, free() does it DEFINE_BUFFER(wxWCharBuffer, wchar_t, wxWcsdupReplacement);
~wxWCharBuffer() { free(m_wcs); }
wxWCharBuffer(/* non const! */ wxWCharBuffer& src)
: m_wcs(src.m_wcs)
{
// no reference count yet...
src.m_wcs = (wchar_t *)NULL;
}
wxWCharBuffer& operator=(/* non const! */ wxWCharBuffer& src)
{
m_wcs = src.m_wcs;
// no reference count yet...
src.m_wcs = (wchar_t *)NULL;
return *this;
}
wchar_t *data() { return m_wcs; }
const wchar_t *data() const { return m_wcs; }
operator const wchar_t *() const { return m_wcs; }
wchar_t operator[](size_t n) const { return m_wcs[n]; }
private:
wchar_t *m_wcs;
};
#endif // wxUSE_WCHAR_T #endif // wxUSE_WCHAR_T
#undef DEFINE_BUFFER
#if wxUSE_UNICODE #if wxUSE_UNICODE
#define wxMB2WXbuf wxWCharBuffer #define wxMB2WXbuf wxWCharBuffer
#define wxWX2MBbuf wxCharBuffer #define wxWX2MBbuf wxCharBuffer

View File

@@ -218,9 +218,11 @@ public:
#elif defined(__WXMAC__) #elif defined(__WXMAC__)
void* m_macPageFormat ; void* m_macPageFormat ;
void* m_macPrintSettings ; void* m_macPrintSettings ;
void* m_macPrintSession ;
#endif #endif
private: private:
int m_printNoCopies; int m_printNoCopies;
int m_printOrientation; int m_printOrientation;
bool m_printCollate; bool m_printCollate;

View File

@@ -714,7 +714,7 @@ int WXDLLEXPORT wxDbConnectionsInUse(void);
// Writes a message to the wxLog window (stdout usually) when an internal error // Writes a message to the wxLog window (stdout usually) when an internal error
// situation occurs. This function only works in DEBUG builds // situation occurs. This function only works in DEBUG builds
const wxChar WXDLLEXPORT *wxDbLogExtendedErrorMsg(const wxChar *userText, const wxChar* WXDLLEXPORT wxDbLogExtendedErrorMsg(const wxChar *userText,
wxDb *pDb, wxDb *pDb,
const wxChar *ErrFile, const wxChar *ErrFile,
int ErrLine); int ErrLine);

View File

@@ -180,6 +180,13 @@ public:
// remove all items from the m_Handlers list // remove all items from the m_Handlers list
static void CleanUpHandlers(); static void CleanUpHandlers();
// Returns the native path for a file URL
static wxString URLToNativePath( const wxString& url );
// Returns the file URL for a native path
static wxString NativePathToURL( const wxString& path );
protected: protected:
wxString m_Path; wxString m_Path;
// the path (location) we are currently in // the path (location) we are currently in

View File

@@ -5,6 +5,8 @@
#if wxUSE_GLCANVAS #if wxUSE_GLCANVAS
#define wxGLCanvasName _T("GLCanvas")
#if defined(__WXMSW__) #if defined(__WXMSW__)
#include "wx/msw/glcanvas.h" #include "wx/msw/glcanvas.h"
#elif defined(__WXMOTIF__) #elif defined(__WXMOTIF__)

View File

@@ -6,7 +6,7 @@
// Created: 17/8/98 // Created: 17/8/98
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Robert Roebling // Copyright: (c) Robert Roebling
// Licence: wxWindows licence // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#if defined(__GNUG__) && !defined(__APPLE__) #if defined(__GNUG__) && !defined(__APPLE__)
@@ -65,15 +65,15 @@ class WXDLLEXPORT wxGLContext: public wxObject
{ {
public: public:
wxGLContext( bool isRGB, wxWindow *win, const wxPalette& palette = wxNullPalette ); wxGLContext( bool isRGB, wxWindow *win, const wxPalette& palette = wxNullPalette );
wxGLContext( wxGLContext(
bool WXUNUSED(isRGB), wxWindow *win, bool WXUNUSED(isRGB), wxWindow *win,
const wxPalette& WXUNUSED(palette), const wxPalette& WXUNUSED(palette),
const wxGLContext *other /* for sharing display lists */ const wxGLContext *other /* for sharing display lists */
); );
~wxGLContext(); ~wxGLContext();
void SetCurrent(); void SetCurrent();
void SetColour(const char *colour); void SetColour(const wxChar *colour);
void SwapBuffers(); void SwapBuffers();
void SetupPixelFormat(); void SetupPixelFormat();
@@ -91,7 +91,7 @@ public:
GtkWidget *m_widget; GtkWidget *m_widget;
wxPalette m_palette; wxPalette m_palette;
wxWindow* m_window; wxWindow* m_window;
private: private:
DECLARE_CLASS(wxGLContext) DECLARE_CLASS(wxGLContext)
}; };
@@ -110,51 +110,52 @@ public:
m_vi = (void*) NULL; m_vi = (void*) NULL;
m_exposed = FALSE; m_exposed = FALSE;
} }
wxGLCanvas( wxWindow *parent, wxWindowID id = -1, wxGLCanvas( wxWindow *parent, wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, const wxSize& size = wxDefaultSize,
long style = 0, const wxString& name = "GLCanvas", long style = 0, const wxString& name = wxGLCanvasName,
int *attribList = (int*) NULL, int *attribList = (int*) NULL,
const wxPalette& palette = wxNullPalette ); const wxPalette& palette = wxNullPalette );
wxGLCanvas( wxWindow *parent, const wxGLContext *shared = (wxGLContext *)NULL, wxGLCanvas( wxWindow *parent, const wxGLContext *shared = (wxGLContext *)NULL,
wxWindowID id = -1, wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, const wxSize& size = wxDefaultSize,
long style = 0, const wxString& name = "GLCanvas", long style = 0, const wxString& name = wxGLCanvasName,
int *attribList = (int*) NULL, int *attribList = (int*) NULL,
const wxPalette& palette = wxNullPalette ); const wxPalette& palette = wxNullPalette );
wxGLCanvas( wxWindow *parent, const wxGLCanvas *shared = (wxGLCanvas *)NULL, wxGLCanvas( wxWindow *parent, const wxGLCanvas *shared = (wxGLCanvas *)NULL,
wxWindowID id = -1, wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, const wxSize& size = wxDefaultSize,
long style = 0, const wxString& name = "GLCanvas", long style = 0, const wxString& name = wxGLCanvasName,
int *attribList = (int*) NULL, int *attribList = (int*) NULL,
const wxPalette& palette = wxNullPalette ); const wxPalette& palette = wxNullPalette );
bool Create( wxWindow *parent, bool Create( wxWindow *parent,
const wxGLContext *shared = (wxGLContext*)NULL, const wxGLContext *shared = (wxGLContext*)NULL,
const wxGLCanvas *shared_context_of = (wxGLCanvas*)NULL, const wxGLCanvas *shared_context_of = (wxGLCanvas*)NULL,
wxWindowID id = -1, wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, const wxSize& size = wxDefaultSize,
long style = 0, const wxString& name = "GLCanvas", long style = 0,
int *attribList = (int*) NULL, const wxString& name = wxGLCanvasName,
const wxPalette& palette = wxNullPalette ); int *attribList = (int*) NULL,
const wxPalette& palette = wxNullPalette );
~wxGLCanvas(); ~wxGLCanvas();
void SetCurrent(); void SetCurrent();
void SetColour(const char *colour); void SetColour(const wxChar *colour);
void SwapBuffers(); void SwapBuffers();
void OnSize(wxSizeEvent& event); void OnSize(wxSizeEvent& event);
void OnInternalIdle(); void OnInternalIdle();
inline wxGLContext* GetContext() const { return m_glContext; } inline wxGLContext* GetContext() const { return m_glContext; }
// implementation // implementation
wxGLContext *m_glContext, wxGLContext *m_glContext,
*m_sharedContext; *m_sharedContext;
wxGLCanvas *m_sharedContextOf; wxGLCanvas *m_sharedContextOf;
@@ -162,10 +163,10 @@ public:
bool m_canFreeVi; bool m_canFreeVi;
GtkWidget *m_glWidget; GtkWidget *m_glWidget;
bool m_exposed; bool m_exposed;
// returns an XVisualInfo* based on desired GL attributes; // returns an XVisualInfo* based on desired GL attributes;
// returns NULL if an appropriate visual is not found. The // returns NULL if an appropriate visual is not found. The
// caller is reponsible for using XFree() to deallocate // caller is reponsible for using XFree() to deallocate
// the returned structure. // the returned structure.
static void* ChooseGLVisual(int *attribList); static void* ChooseGLVisual(int *attribList);

View File

@@ -6,7 +6,7 @@
// Created: 17/8/98 // Created: 17/8/98
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Robert Roebling // Copyright: (c) Robert Roebling
// Licence: wxWindows licence // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#if defined(__GNUG__) && !defined(__APPLE__) #if defined(__GNUG__) && !defined(__APPLE__)
@@ -65,15 +65,15 @@ class WXDLLEXPORT wxGLContext: public wxObject
{ {
public: public:
wxGLContext( bool isRGB, wxWindow *win, const wxPalette& palette = wxNullPalette ); wxGLContext( bool isRGB, wxWindow *win, const wxPalette& palette = wxNullPalette );
wxGLContext( wxGLContext(
bool WXUNUSED(isRGB), wxWindow *win, bool WXUNUSED(isRGB), wxWindow *win,
const wxPalette& WXUNUSED(palette), const wxPalette& WXUNUSED(palette),
const wxGLContext *other /* for sharing display lists */ const wxGLContext *other /* for sharing display lists */
); );
~wxGLContext(); ~wxGLContext();
void SetCurrent(); void SetCurrent();
void SetColour(const char *colour); void SetColour(const wxChar *colour);
void SwapBuffers(); void SwapBuffers();
void SetupPixelFormat(); void SetupPixelFormat();
@@ -91,7 +91,7 @@ public:
GtkWidget *m_widget; GtkWidget *m_widget;
wxPalette m_palette; wxPalette m_palette;
wxWindow* m_window; wxWindow* m_window;
private: private:
DECLARE_CLASS(wxGLContext) DECLARE_CLASS(wxGLContext)
}; };
@@ -110,51 +110,52 @@ public:
m_vi = (void*) NULL; m_vi = (void*) NULL;
m_exposed = FALSE; m_exposed = FALSE;
} }
wxGLCanvas( wxWindow *parent, wxWindowID id = -1, wxGLCanvas( wxWindow *parent, wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, const wxSize& size = wxDefaultSize,
long style = 0, const wxString& name = "GLCanvas", long style = 0, const wxString& name = wxGLCanvasName,
int *attribList = (int*) NULL, int *attribList = (int*) NULL,
const wxPalette& palette = wxNullPalette ); const wxPalette& palette = wxNullPalette );
wxGLCanvas( wxWindow *parent, const wxGLContext *shared = (wxGLContext *)NULL, wxGLCanvas( wxWindow *parent, const wxGLContext *shared = (wxGLContext *)NULL,
wxWindowID id = -1, wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, const wxSize& size = wxDefaultSize,
long style = 0, const wxString& name = "GLCanvas", long style = 0, const wxString& name = wxGLCanvasName,
int *attribList = (int*) NULL, int *attribList = (int*) NULL,
const wxPalette& palette = wxNullPalette ); const wxPalette& palette = wxNullPalette );
wxGLCanvas( wxWindow *parent, const wxGLCanvas *shared = (wxGLCanvas *)NULL, wxGLCanvas( wxWindow *parent, const wxGLCanvas *shared = (wxGLCanvas *)NULL,
wxWindowID id = -1, wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, const wxSize& size = wxDefaultSize,
long style = 0, const wxString& name = "GLCanvas", long style = 0, const wxString& name = wxGLCanvasName,
int *attribList = (int*) NULL, int *attribList = (int*) NULL,
const wxPalette& palette = wxNullPalette ); const wxPalette& palette = wxNullPalette );
bool Create( wxWindow *parent, bool Create( wxWindow *parent,
const wxGLContext *shared = (wxGLContext*)NULL, const wxGLContext *shared = (wxGLContext*)NULL,
const wxGLCanvas *shared_context_of = (wxGLCanvas*)NULL, const wxGLCanvas *shared_context_of = (wxGLCanvas*)NULL,
wxWindowID id = -1, wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, const wxSize& size = wxDefaultSize,
long style = 0, const wxString& name = "GLCanvas", long style = 0,
int *attribList = (int*) NULL, const wxString& name = wxGLCanvasName,
const wxPalette& palette = wxNullPalette ); int *attribList = (int*) NULL,
const wxPalette& palette = wxNullPalette );
~wxGLCanvas(); ~wxGLCanvas();
void SetCurrent(); void SetCurrent();
void SetColour(const char *colour); void SetColour(const wxChar *colour);
void SwapBuffers(); void SwapBuffers();
void OnSize(wxSizeEvent& event); void OnSize(wxSizeEvent& event);
void OnInternalIdle(); void OnInternalIdle();
inline wxGLContext* GetContext() const { return m_glContext; } inline wxGLContext* GetContext() const { return m_glContext; }
// implementation // implementation
wxGLContext *m_glContext, wxGLContext *m_glContext,
*m_sharedContext; *m_sharedContext;
wxGLCanvas *m_sharedContextOf; wxGLCanvas *m_sharedContextOf;
@@ -162,10 +163,10 @@ public:
bool m_canFreeVi; bool m_canFreeVi;
GtkWidget *m_glWidget; GtkWidget *m_glWidget;
bool m_exposed; bool m_exposed;
// returns an XVisualInfo* based on desired GL attributes; // returns an XVisualInfo* based on desired GL attributes;
// returns NULL if an appropriate visual is not found. The // returns NULL if an appropriate visual is not found. The
// caller is reponsible for using XFree() to deallocate // caller is reponsible for using XFree() to deallocate
// the returned structure. // the returned structure.
static void* ChooseGLVisual(int *attribList); static void* ChooseGLVisual(int *attribList);

View File

@@ -97,7 +97,7 @@ public:
WX_DECLARE_EXPORTED_HASH_MAP(unsigned long, wxImageHistogramEntry, WX_DECLARE_EXPORTED_HASH_MAP(unsigned long, wxImageHistogramEntry,
wxIntegerHash, wxIntegerEqual, wxIntegerHash, wxIntegerEqual,
wxImageHistogram); wxImageHistogram)
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// wxImage // wxImage

View File

@@ -208,6 +208,13 @@
// Recommended setting: 1 (always) // Recommended setting: 1 (always)
#define wxUSE_LOG_DIALOG 1 #define wxUSE_LOG_DIALOG 1
// Support for command line parsing using wxCmdLineParser class.
//
// Default is 1
//
// Recommended setting: 1 (can be set to 0 if you don't use the cmd line)
#define wxUSE_CMDLINE_PARSER 1
// Support for multithreaded applications: if 1, compile in thread classes // Support for multithreaded applications: if 1, compile in thread classes
// (thread.h) and make the library a bit more thread safe. Although thread // (thread.h) and make the library a bit more thread safe. Although thread
// support is quite stable by now, you may still consider recompiling the // support is quite stable by now, you may still consider recompiling the

View File

@@ -17,6 +17,8 @@
#pragma interface "wave.h" #pragma interface "wave.h"
#endif #endif
#if wxUSE_WAVE
#include "wx/object.h" #include "wx/object.h"
class WXDLLEXPORT wxWave : public wxObject class WXDLLEXPORT wxWave : public wxObject
@@ -38,12 +40,13 @@ protected:
private: private:
void* m_sndChan; void* m_sndChan;
wxString m_sndname; wxString m_sndname;
void* m_hSnd; void* m_hSnd;
int m_waveLength; int m_waveLength;
bool m_isResource; bool m_isResource;
}; };
#endif
#endif #endif
// _WX_WAVE_H_ // _WX_WAVE_H_

View File

@@ -66,7 +66,7 @@ public:
~wxGLContext(); ~wxGLContext();
void SetCurrent(); void SetCurrent();
void SetColour(const char *colour); void SetColour(const wxChar *colour);
void SwapBuffers(); void SwapBuffers();
@@ -80,8 +80,6 @@ public:
wxWindow* m_window; wxWindow* m_window;
}; };
#define wxGLCanvasName _T("GLCanvas")
class WXDLLEXPORT wxGLCanvas: public wxWindow class WXDLLEXPORT wxGLCanvas: public wxWindow
{ {
DECLARE_CLASS(wxGLCanvas) DECLARE_CLASS(wxGLCanvas)
@@ -106,7 +104,7 @@ class WXDLLEXPORT wxGLCanvas: public wxWindow
const wxPoint& pos, const wxSize& size, long style, const wxString& name); const wxPoint& pos, const wxSize& size, long style, const wxString& name);
void SetCurrent(); void SetCurrent();
void SetColour(const char *colour); void SetColour(const wxChar *colour);
void SwapBuffers(); void SwapBuffers();
void OnSize(wxSizeEvent& event); void OnSize(wxSizeEvent& event);

View File

@@ -209,13 +209,6 @@
// Recommended setting: 1 (always) // Recommended setting: 1 (always)
#define wxUSE_LOG 1 #define wxUSE_LOG 1
// Support for command line parsing using wxCmdLineParser class.
//
// Default is 1
//
// Recommended setting: 1 (can be set to 0 if you don't use the cmd line)
#define wxUSE_CMDLINE_PARSER 1
// Recommended setting: 1 // Recommended setting: 1
#define wxUSE_LOGWINDOW 1 #define wxUSE_LOGWINDOW 1
@@ -225,6 +218,13 @@
// Recommended setting: 1 // Recommended setting: 1
#define wxUSE_LOG_DIALOG 1 #define wxUSE_LOG_DIALOG 1
// Support for command line parsing using wxCmdLineParser class.
//
// Default is 1
//
// Recommended setting: 1 (can be set to 0 if you don't use the cmd line)
#define wxUSE_CMDLINE_PARSER 1
// Support for multithreaded applications: if 1, compile in thread classes // Support for multithreaded applications: if 1, compile in thread classes
// (thread.h) and make the library a bit more thread safe. Although thread // (thread.h) and make the library a bit more thread safe. Although thread
// support is quite stable by now, you may still consider recompiling the // support is quite stable by now, you may still consider recompiling the

View File

@@ -98,12 +98,7 @@ wxICON_SMALL_REMOVEABLE ICON "wx/msw/removble.ico"
// Bitmaps // Bitmaps
// //
#ifdef __SALFORDC__
wxDISABLE_BUTTON_BITMAP BITMAP WXINCDIR"wx/msw/disable.bmp"
#else
wxDISABLE_BUTTON_BITMAP BITMAP "wx/msw/disable.bmp" wxDISABLE_BUTTON_BITMAP BITMAP "wx/msw/disable.bmp"
#endif
// For wxContextHelpButton // For wxContextHelpButton
csquery BITMAP "wx/msw/csquery.bmp" csquery BITMAP "wx/msw/csquery.bmp"

View File

@@ -189,9 +189,6 @@ protected:
// //
// Helper functions // Helper functions
// //
void ChangePage( int nOldSel
,int nSel
); // change pages
int m_nSelection; // The current selection (-1 if none) int m_nSelection; // The current selection (-1 if none)

View File

@@ -399,5 +399,9 @@
#define wxUSE_PROTOCOL_FILE 1 #define wxUSE_PROTOCOL_FILE 1
#define wxUSE_GENERIC_MDI_AS_NATIVE 1 #define wxUSE_GENERIC_MDI_AS_NATIVE 1
// use wxExpr (a.k.a. PrologIO)
#define wxUSE_PROLOGIO 1
#endif #endif
// _WX_SETUP_H_ // _WX_SETUP_H_

View File

@@ -30,6 +30,7 @@ public:
{ {
Create(pParent, vId, rsValue, rPos, rSize, lStyle, rValidator, rsName); Create(pParent, vId, rsValue, rPos, rSize, lStyle, rValidator, rsName);
} }
~wxTextCtrl();
bool Create( wxWindow* pParent bool Create( wxWindow* pParent
,wxWindowID vId ,wxWindowID vId
@@ -154,12 +155,16 @@ public:
void OnPaste(wxCommandEvent& rEvent); void OnPaste(wxCommandEvent& rEvent);
void OnUndo(wxCommandEvent& rEvent); void OnUndo(wxCommandEvent& rEvent);
void OnRedo(wxCommandEvent& rEvent); void OnRedo(wxCommandEvent& rEvent);
void OnDelete(wxCommandEvent& rEvent);
void OnSelectAll(wxCommandEvent& rEvent);
void OnUpdateCut(wxUpdateUIEvent& rEvent); void OnUpdateCut(wxUpdateUIEvent& rEvent);
void OnUpdateCopy(wxUpdateUIEvent& rEvent); void OnUpdateCopy(wxUpdateUIEvent& rEvent);
void OnUpdatePaste(wxUpdateUIEvent& rEvent); void OnUpdatePaste(wxUpdateUIEvent& rEvent);
void OnUpdateUndo(wxUpdateUIEvent& rEvent); void OnUpdateUndo(wxUpdateUIEvent& rEvent);
void OnUpdateRedo(wxUpdateUIEvent& rEvent); void OnUpdateRedo(wxUpdateUIEvent& rEvent);
void OnUpdateDelete(wxUpdateUIEvent& rEvent);
void OnUpdateSelectAll(wxUpdateUIEvent& rEvent);
inline bool IsMLE(void) {return m_bIsMLE;} inline bool IsMLE(void) {return m_bIsMLE;}
inline void SetMLE(bool bIsMLE) {m_bIsMLE = bIsMLE;} inline void SetMLE(bool bIsMLE) {m_bIsMLE = bIsMLE;}

View File

@@ -370,7 +370,7 @@ WXDLLEXPORT bool wxYield();
WXDLLEXPORT bool wxYieldIfNeeded(); WXDLLEXPORT bool wxYieldIfNeeded();
// Yield to other apps/messages and disable user input // Yield to other apps/messages and disable user input
WXDLLEXPORT bool wxSafeYield(wxWindow *win = NULL); WXDLLEXPORT bool wxSafeYield(wxWindow *win = NULL, bool onlyIfNeeded = FALSE);
// Enable or disable input to all top level windows // Enable or disable input to all top level windows
WXDLLEXPORT void wxEnableTopLevelWindows(bool enable = TRUE); WXDLLEXPORT void wxEnableTopLevelWindows(bool enable = TRUE);

File diff suppressed because it is too large Load Diff

View File

@@ -45,7 +45,7 @@ wxLANGUAGE_CHINESE_TRADITIONAL zh_CN LANG_CHINESE SUBLANG_CHINESE_T
wxLANGUAGE_CHINESE_HONGKONG zh_HK LANG_CHINESE SUBLANG_CHINESE_HONGKONG "Chinese (Hongkong)" wxLANGUAGE_CHINESE_HONGKONG zh_HK LANG_CHINESE SUBLANG_CHINESE_HONGKONG "Chinese (Hongkong)"
wxLANGUAGE_CHINESE_MACAU zh_MO LANG_CHINESE SUBLANG_CHINESE_MACAU "Chinese (Macau)" wxLANGUAGE_CHINESE_MACAU zh_MO LANG_CHINESE SUBLANG_CHINESE_MACAU "Chinese (Macau)"
wxLANGUAGE_CHINESE_SINGAPORE zh_SG LANG_CHINESE SUBLANG_CHINESE_SINGAPORE "Chinese (Singapore)" wxLANGUAGE_CHINESE_SINGAPORE zh_SG LANG_CHINESE SUBLANG_CHINESE_SINGAPORE "Chinese (Singapore)"
wxLANGUAGE_CHINESE_TAIWAN zh_TW - - "Chinese (Taiwan)" wxLANGUAGE_CHINESE_TAIWAN zh_TW LANG_CHINESE SUBLANG_CHINESE_TRADITIONAL "Chinese (Taiwan)"
wxLANGUAGE_CORSICAN co - - "Corsican" wxLANGUAGE_CORSICAN co - - "Corsican"
wxLANGUAGE_CROATIAN hr_HR LANG_CROATIAN SUBLANG_DEFAULT "Croatian" wxLANGUAGE_CROATIAN hr_HR LANG_CROATIAN SUBLANG_DEFAULT "Croatian"
wxLANGUAGE_CZECH cs_CZ LANG_CZECH SUBLANG_DEFAULT "Czech" wxLANGUAGE_CZECH cs_CZ LANG_CZECH SUBLANG_DEFAULT "Czech"

View File

@@ -48,7 +48,7 @@
*/ */
// what to test (in alphabetic order)? uncomment the line below to do all tests // what to test (in alphabetic order)? uncomment the line below to do all tests
#define TEST_ALL //#define TEST_ALL
#ifdef TEST_ALL #ifdef TEST_ALL
#define TEST_ARRAYS #define TEST_ARRAYS
#define TEST_CHARSET #define TEST_CHARSET
@@ -93,7 +93,7 @@
#undef TEST_ALL #undef TEST_ALL
static const bool TEST_ALL = TRUE; static const bool TEST_ALL = TRUE;
#else #else
#define TEST_PRINTF #define TEST_DATETIME
static const bool TEST_ALL = FALSE; static const bool TEST_ALL = FALSE;
#endif #endif
@@ -1766,7 +1766,7 @@ static void TestMimeFilename()
wxFileType::MessageParameters(fname, _T(""))) ) wxFileType::MessageParameters(fname, _T(""))) )
cmd = _T("<no command available>"); cmd = _T("<no command available>");
else else
cmd = wxString('"') + cmd + '"'; cmd = wxString(_T('"')) + cmd + _T('"');
wxPrintf(_T("To open %s (%s) do %s.\n"), wxPrintf(_T("To open %s (%s) do %s.\n"),
fname.c_str(), desc.c_str(), cmd.c_str()); fname.c_str(), desc.c_str(), cmd.c_str());
@@ -2169,9 +2169,9 @@ static void TestLongLongComparison()
#endif // wxUSE_LONGLONG_WX #endif // wxUSE_LONGLONG_WX
} }
static void TestLongLongPrint() static void TestLongLongToString()
{ {
wxPuts(_T("*** Testing wxLongLong printing ***\n")); wxPuts(_T("*** Testing wxLongLong::ToString() ***\n"));
for ( size_t n = 0; n < WXSIZEOF(testLongs); n++ ) for ( size_t n = 0; n < WXSIZEOF(testLongs); n++ )
{ {
@@ -2192,8 +2192,7 @@ static void TestLongLongPrintf()
#ifdef wxLongLongFmtSpec #ifdef wxLongLongFmtSpec
wxLongLong ll = wxLL(0x1234567890abcdef); wxLongLong ll = wxLL(0x1234567890abcdef);
wxString s = wxString::Format(_T("%") wxLongLongFmtSpec _T("x"), wxString s = wxString::Format(_T("%") wxLongLongFmtSpec _T("x"), ll);
ll.GetValue());
wxPrintf(_T("0x1234567890abcdef -> %s (%s)\n"), wxPrintf(_T("0x1234567890abcdef -> %s (%s)\n"),
s.c_str(), s == _T("1234567890abcdef") ? _T("ok") : _T("ERROR")); s.c_str(), s == _T("1234567890abcdef") ? _T("ok") : _T("ERROR"));
#else // !wxLongLongFmtSpec #else // !wxLongLongFmtSpec
@@ -2728,7 +2727,7 @@ I am ready for my first lesson today.");
{ {
wxChar buf[200]; wxChar buf[200];
wxSprintf (buf, _T("%07Lo"), (wxLongLong_t)040000000000); wxSprintf(buf, _T("%07") wxLongLongFmtSpec _T("o"), wxLL(040000000000));
wxPrintf (_T("sprintf (buf, \"%%07Lo\", 040000000000ll) = %s"), buf); wxPrintf (_T("sprintf (buf, \"%%07Lo\", 040000000000ll) = %s"), buf);
if (wxStrcmp (buf, _T("40000000000")) != 0) if (wxStrcmp (buf, _T("40000000000")) != 0)
@@ -3171,7 +3170,7 @@ static void TestFtpWuFtpd()
} }
else else
{ {
size_t size = in->GetSize(); size_t size = in->StreamSize();
wxPrintf(_T("Reading file %s (%u bytes)..."), filename, size); wxPrintf(_T("Reading file %s (%u bytes)..."), filename, size);
wxChar *data = new wxChar[size]; wxChar *data = new wxChar[size];
@@ -3254,7 +3253,7 @@ static void TestFtpDownload()
} }
else else
{ {
size_t size = in->GetSize(); size_t size = in->StreamSize();
wxPrintf(_T("Reading file %s (%u bytes)..."), filename, size); wxPrintf(_T("Reading file %s (%u bytes)..."), filename, size);
fflush(stdout); fflush(stdout);
@@ -3873,7 +3872,7 @@ static void TestUnicodeToFromAscii()
#include "wx/encconv.h" #include "wx/encconv.h"
#include "wx/buffer.h" #include "wx/buffer.h"
static const unsigned char textInUtf8_[] = static const unsigned char utf8koi8r[] =
{ {
208, 157, 208, 181, 209, 129, 208, 186, 208, 176, 208, 183, 208, 176, 208, 157, 208, 181, 209, 129, 208, 186, 208, 176, 208, 183, 208, 176,
208, 189, 208, 189, 208, 190, 32, 208, 191, 208, 190, 209, 128, 208, 208, 189, 208, 189, 208, 190, 32, 208, 191, 208, 190, 209, 128, 208,
@@ -3884,7 +3883,36 @@ static const unsigned char textInUtf8_[] =
178, 208, 190, 209, 129, 209, 130, 209, 140, 209, 142, 0 178, 208, 190, 209, 129, 209, 130, 209, 140, 209, 142, 0
}; };
#define textInUtf8 ((const char *)textInUtf8_) static const unsigned char utf8iso8859_1[] =
{
0x53, 0x79, 0x73, 0x74, 0xc3, 0xa8, 0x6d, 0x65, 0x73, 0x20, 0x49, 0x6e,
0x74, 0xc3, 0xa9, 0x67, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x20, 0x65,
0x6e, 0x20, 0x4d, 0xc3, 0xa9, 0x63, 0x61, 0x6e, 0x69, 0x71, 0x75, 0x65,
0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x71, 0x75, 0x65, 0x20, 0x65,
0x74, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x71, 0x75, 0x65, 0
};
static const unsigned char utf8Invalid[] =
{
0x3c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3e, 0x32, 0x30, 0x30,
0x32, 0xe5, 0xb9, 0xb4, 0x30, 0x39, 0xe6, 0x9c, 0x88, 0x32, 0x35, 0xe6,
0x97, 0xa5, 0x20, 0x30, 0x37, 0xe6, 0x99, 0x82, 0x33, 0x39, 0xe5, 0x88,
0x86, 0x35, 0x37, 0xe7, 0xa7, 0x92, 0x3c, 0x2f, 0x64, 0x69, 0x73, 0x70,
0x6c, 0x61, 0x79, 0
};
static const struct Utf8Data
{
const unsigned char *text;
size_t len;
const wxChar *charset;
wxFontEncoding encoding;
} utf8data[] =
{
{ utf8Invalid, WXSIZEOF(utf8Invalid), _T("iso8859-1"), wxFONTENCODING_ISO8859_1 },
{ utf8koi8r, WXSIZEOF(utf8koi8r), _T("koi8-r"), wxFONTENCODING_KOI8 },
{ utf8iso8859_1, WXSIZEOF(utf8iso8859_1), _T("iso8859-1"), wxFONTENCODING_ISO8859_1 },
};
static void TestUtf8() static void TestUtf8()
{ {
@@ -3892,30 +3920,33 @@ static void TestUtf8()
char buf[1024]; char buf[1024];
wchar_t wbuf[1024]; wchar_t wbuf[1024];
if ( wxConvUTF8.MB2WC(wbuf, textInUtf8, WXSIZEOF(textInUtf8)) <= 0 )
for ( size_t n = 0; n < WXSIZEOF(utf8data); n++ )
{ {
wxPuts(_T("ERROR: UTF-8 decoding failed.")); const Utf8Data& u8d = utf8data[n];
} if ( wxConvUTF8.MB2WC(wbuf, (const char *)u8d.text,
else WXSIZEOF(wbuf)) == (size_t)-1 )
{
wxCSConv conv(_T("koi8-r"));
if ( conv.WC2MB(buf, wbuf, 0 /* not needed wcslen(wbuf) */) <= 0 )
{ {
wxPuts(_T("ERROR: conversion to KOI8-R failed.")); wxPuts(_T("ERROR: UTF-8 decoding failed."));
} }
else else
{ {
wxPrintf(_T("The resulting string (in KOI8-R): %s\n"), buf); wxCSConv conv(u8d.charset);
if ( conv.WC2MB(buf, wbuf, WXSIZEOF(buf)) == (size_t)-1 )
{
wxPrintf(_T("ERROR: conversion to %s failed.\n"), u8d.charset);
}
else
{
wxPrintf(_T("String in %s: %s\n"), u8d.charset, buf);
}
} }
}
if ( wxConvUTF8.WC2MB(buf, L"<EFBFBD> la", WXSIZEOF(buf)) <= 0 ) wxString s(wxConvUTF8.cMB2WC((const char *)u8d.text), *wxConvCurrent);
{ if ( s.empty() )
wxPuts(_T("ERROR: conversion to UTF-8 failed.")); s = _T("<< conversion failed >>");
} wxPrintf(_T("String in current cset: %s\n"), s.c_str());
else
{
wxPrintf(_T("The string in UTF-8: %s\n"), buf);
} }
wxPuts(_T("")); wxPuts(_T(""));
@@ -3928,7 +3959,8 @@ static void TestEncodingConverter()
// using wxEncodingConverter should give the same result as above // using wxEncodingConverter should give the same result as above
char buf[1024]; char buf[1024];
wchar_t wbuf[1024]; wchar_t wbuf[1024];
if ( wxConvUTF8.MB2WC(wbuf, textInUtf8, WXSIZEOF(textInUtf8)) <= 0 ) if ( wxConvUTF8.MB2WC(wbuf, (const char *)utf8koi8r,
WXSIZEOF(utf8koi8r)) == (size_t)-1 )
{ {
wxPuts(_T("ERROR: UTF-8 decoding failed.")); wxPuts(_T("ERROR: UTF-8 decoding failed."));
} }
@@ -3937,7 +3969,7 @@ static void TestEncodingConverter()
wxEncodingConverter ec; wxEncodingConverter ec;
ec.Init(wxFONTENCODING_UNICODE, wxFONTENCODING_KOI8); ec.Init(wxFONTENCODING_UNICODE, wxFONTENCODING_KOI8);
ec.Convert(wbuf, buf); ec.Convert(wbuf, buf);
wxPrintf(_T("The same string obtained using wxEC: %s\n"), buf); wxPrintf(_T("The same KOI8-R string using wxEC: %s\n"), buf);
} }
wxPuts(_T("")); wxPuts(_T(""));
@@ -4594,44 +4626,40 @@ for n in range(20):
wmon2 = dt.GetWeekOfMonth(wxDateTime::Sunday_First), wmon2 = dt.GetWeekOfMonth(wxDateTime::Sunday_First),
dnum = dt.GetDayOfYear(); dnum = dt.GetDayOfYear();
wxPrintf(_T("%s: the day number is %d"), d.FormatDate().c_str(), dnum); wxPrintf(_T("%s: the day number = %d"), d.FormatDate().c_str(), dnum);
if ( dnum == wn.dnum ) if ( dnum != wn.dnum )
{
wxPrintf(_T(" (ok)"));
}
else
{ {
wxPrintf(_T(" (ERROR: should be %d)"), wn.dnum); wxPrintf(_T(" (ERROR: should be %d)"), wn.dnum);
} }
wxPrintf(_T(", week in month is %d"), wmon); wxPrintf(_T(", week in month = %d"), wmon);
if ( wmon == wn.wmon ) if ( wmon != wn.wmon )
{
wxPrintf(_T(" (ok)"));
}
else
{ {
wxPrintf(_T(" (ERROR: should be %d)"), wn.wmon); wxPrintf(_T(" (ERROR: should be %d)"), wn.wmon);
} }
wxPrintf(_T(" or %d"), wmon2); wxPrintf(_T(" (%d)"), wmon2);
if ( wmon2 == wn.wmon2 ) if ( wmon2 != wn.wmon2 )
{
wxPrintf(_T(" (ok)"));
}
else
{ {
wxPrintf(_T(" (ERROR: should be %d)"), wn.wmon2); wxPrintf(_T(" (ERROR: should be %d)"), wn.wmon2);
} }
wxPrintf(_T(", week in year is %d"), week); wxPrintf(_T(", week in year = %d"), week);
if ( week == wn.week ) if ( week != wn.week )
{ {
wxPuts(_T(" (ok)")); wxPrintf(_T(" (ERROR: should be %d)"), wn.week);
} }
else
wxPutchar(_T('\n'));
wxDateTime dt2(1, wxDateTime::Jan, d.year);
dt2.SetToTheWeek(wn.week, dt.GetWeekDay());
if ( dt2 != dt )
{ {
wxPrintf(_T(" (ERROR: should be %d)\n"), wn.week); Date d2;
d2.Init(dt2.GetTm());
wxPrintf(_T("ERROR: SetToTheWeek() returned %s\n"),
d2.FormatDate().c_str());
} }
} }
} }
@@ -6406,7 +6434,8 @@ int main(int argc, char **argv)
TestLongLongConversion(); TestLongLongConversion();
TestBitOperations(); TestBitOperations();
TestLongLongComparison(); TestLongLongComparison();
TestLongLongPrint(); TestLongLongToString();
TestLongLongPrintf();
} }
#endif // TEST_LONGLONG #endif // TEST_LONGLONG
@@ -6531,7 +6560,8 @@ int main(int argc, char **argv)
TestTimeZoneBug(); TestTimeZoneBug();
} }
TestTimeFormat();
TestTimeWNumber();
if ( TEST_INTERACTIVE ) if ( TEST_INTERACTIVE )
TestDateTimeInteractive(); TestDateTimeInteractive();

View File

@@ -3,4 +3,3 @@ value1=one
# a comment here # a comment here
value2=two value2=two
value\ with\ spaces\ inside\ it=nothing special value\ with\ spaces\ inside\ it=nothing special
path=$PATH

View File

@@ -24,6 +24,10 @@
#include "wx/wx.h" #include "wx/wx.h"
#endif #endif
#if !wxUSE_RESOURCES
#error "You should set wxUSE_RESOURCES to 1 to compile this sample"
#endif
#if wxUSE_UNICODE #if wxUSE_UNICODE
#error "This sample can't be compiled in Unicode mode." #error "This sample can't be compiled in Unicode mode."
#endif // wxUSE_UNICODE #endif // wxUSE_UNICODE

View File

@@ -3750,7 +3750,7 @@ int WXDLLEXPORT wxDbConnectionsInUse(void)
/********** wxDbLogExtendedErrorMsg() **********/ /********** wxDbLogExtendedErrorMsg() **********/
// DEBUG ONLY function // DEBUG ONLY function
const wxChar WXDLLEXPORT *wxDbLogExtendedErrorMsg(const wxChar *userText, const wxChar* WXDLLEXPORT wxDbLogExtendedErrorMsg(const wxChar *userText,
wxDb *pDb, wxDb *pDb,
const wxChar *ErrFile, const wxChar *ErrFile,
int ErrLine) int ErrLine)

View File

@@ -146,7 +146,7 @@ wxLibrary::wxLibrary(wxDllType handle)
m_handle = handle; m_handle = handle;
// Some system may use a local heap for library. // Some system may use a local heap for library.
get_first = (t_get_first)GetSymbol("wxGetClassFirst"); get_first = (t_get_first)GetSymbol(_T("wxGetClassFirst"));
// It is a wxWindows DLL. // It is a wxWindows DLL.
if (get_first) if (get_first)
PrepareClasses(get_first()); PrepareClasses(get_first());

View File

@@ -173,7 +173,8 @@ wxFSFile* wxLocalFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxString&
{ {
// location has Unix path separators // location has Unix path separators
wxString right = ms_root + GetRightLocation(location); wxString right = ms_root + GetRightLocation(location);
wxFileName fn(right, wxPATH_UNIX); wxString nativePath = wxFileSystem::URLToNativePath(right);
wxFileName fn(nativePath, wxPATH_UNIX);
if (!wxFileExists(fn.GetFullPath())) if (!wxFileExists(fn.GetFullPath()))
return (wxFSFile*) NULL; return (wxFSFile*) NULL;
@@ -417,7 +418,61 @@ void wxFileSystem::CleanUpHandlers()
m_Handlers.Clear(); m_Handlers.Clear();
} }
const static wxString g_unixPathString(wxT("/"));
const static wxString g_nativePathString(wxFILE_SEP_PATH);
// Returns the native path for a file URL
wxString wxFileSystem::URLToNativePath( const wxString& url )
{
wxString path = url ;
if ( path.Find(wxT("file://")) == 0 )
{
path = path.Mid(7) ;
}
#ifndef __UNIX__
// file urls either start with a forward slash (local harddisk),
// otherwise they have a servername/sharename notation,
// which only exists on msw and corresponds to a unc
if ( path[0u] == wxT('/') && path [1u] != wxT('/'))
{
path = path.Mid(1) ;
}
else if ( (url.Find(wxT("file://")) == 0) &&
(path.Find(wxT('/')) != wxNOT_FOUND) &&
(path.Length() > 1) && (path[1u] != wxT(':')) )
{
path = wxT("//") + path ;
}
#endif
path.Replace(g_unixPathString, g_nativePathString) ;
return path ;
}
// Returns the file URL for a native path
wxString wxFileSystem::NativePathToURL( const wxString& path )
{
wxString url = path ;
#ifdef __WXMSW__
// unc notation
if ( url.Find(wxT("\\\\")) == 0 )
{
url = url.Mid(2) ;
}
else
#endif
{
url = wxT("/") + url ;
}
url.Replace(g_nativePathString, g_unixPathString) ;
url = wxT("file://") + url ;
return url ;
}
///// Module: ///// Module:

View File

@@ -89,7 +89,9 @@ wxFSFile* wxZipFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxString& l
if (right.GetChar(0) == wxT('/')) right = right.Mid(1); if (right.GetChar(0) == wxT('/')) right = right.Mid(1);
s = new wxZipInputStream(left, right); wxString leftFilename = wxFileSystem::URLToNativePath(left);
s = new wxZipInputStream(leftFilename, right);
if (s && s->IsOk() ) if (s && s->IsOk() )
{ {
return new wxFSFile(s, return new wxFSFile(s,

View File

@@ -676,31 +676,32 @@ bool wxLocale::Init(int language, int flags)
wxMB2WXbuf retloc = wxSetlocale(LC_ALL, locale); wxMB2WXbuf retloc = wxSetlocale(LC_ALL, locale);
if ((const wxChar*)retloc == NULL) if ( !retloc )
{ {
// Some C libraries don't like xx_YY form and require xx only // Some C libraries don't like xx_YY form and require xx only
wxMB2WXbuf tmp = wxSetlocale(LC_ALL, locale.Mid(0,2)); retloc = wxSetlocale(LC_ALL, locale.Mid(0,2));
retloc = tmp;
} }
if ((const wxChar*)retloc == NULL) if ( !retloc )
{ {
// Some C libraries (namely glibc) still use old ISO 639, // Some C libraries (namely glibc) still use old ISO 639,
// so will translate the abbrev for them // so will translate the abbrev for them
wxString mid = locale.Mid(0,2); wxString mid = locale.Mid(0,2);
if (mid == wxT("he")) locale = wxT("iw") + locale.Mid(3); if (mid == wxT("he"))
else if (mid == wxT("id")) locale = wxT("in") + locale.Mid(3); locale = wxT("iw") + locale.Mid(3);
else if (mid == wxT("yi")) locale = wxT("ji") + locale.Mid(3); else if (mid == wxT("id"))
wxMB2WXbuf tmp = wxSetlocale(LC_ALL, locale); locale = wxT("in") + locale.Mid(3);
retloc = tmp; else if (mid == wxT("yi"))
locale = wxT("ji") + locale.Mid(3);
retloc = wxSetlocale(LC_ALL, locale);
} }
if ((const wxChar*)retloc == NULL) if ( !retloc )
{ {
// (This time, we changed locale in previous if-branch, so try again.) // (This time, we changed locale in previous if-branch, so try again.)
// Some C libraries don't like xx_YY form and require xx only // Some C libraries don't like xx_YY form and require xx only
wxMB2WXbuf tmp = wxSetlocale(LC_ALL, locale.Mid(0,2)); retloc = wxSetlocale(LC_ALL, locale.Mid(0,2));
retloc = tmp;
} }
if ((const wxChar*)retloc == NULL) if ( !retloc )
{ {
wxLogError(wxT("Cannot set locale to '%s'."), locale.c_str()); wxLogError(wxT("Cannot set locale to '%s'."), locale.c_str());
return FALSE; return FALSE;
@@ -720,8 +721,7 @@ bool wxLocale::Init(int language, int flags)
SORT_DEFAULT); SORT_DEFAULT);
if (SetThreadLocale(lcid)) if (SetThreadLocale(lcid))
{ {
wxMB2WXbuf tmp = wxSetlocale(LC_ALL, wxEmptyString); retloc = wxSetlocale(LC_ALL, wxEmptyString);
retloc = tmp;
} }
else else
{ {
@@ -745,24 +745,22 @@ bool wxLocale::Init(int language, int flags)
} }
else else
{ {
wxMB2WXbuf tmp = wxSetlocale(LC_ALL, locale); retloc = wxSetlocale(LC_ALL, locale);
retloc = tmp;
} }
} }
} }
} }
else else
{ {
wxMB2WXbuf tmp = wxSetlocale(LC_ALL, wxEmptyString); retloc = wxSetlocale(LC_ALL, wxEmptyString);
retloc = tmp;
} }
if ((const wxChar*)retloc == NULL) if ( !retloc )
{ {
wxLogError(wxT("Cannot set locale to language %s."), name.c_str()); wxLogError(wxT("Cannot set locale to language %s."), name.c_str());
return FALSE; return FALSE;
} }
#elif defined(__WXMAC__) #elif defined(__WXMAC__) || defined(__WXPM__)
wxMB2WXbuf retloc = wxSetlocale(LC_ALL , wxEmptyString); wxMB2WXbuf retloc = wxSetlocale(LC_ALL , wxEmptyString);
#else #else
return FALSE; return FALSE;
@@ -2174,7 +2172,7 @@ void wxLocale::InitLanguagesDB()
LNG(wxLANGUAGE_CHINESE_HONGKONG, "zh_HK", LANG_CHINESE , SUBLANG_CHINESE_HONGKONG , "Chinese (Hongkong)") LNG(wxLANGUAGE_CHINESE_HONGKONG, "zh_HK", LANG_CHINESE , SUBLANG_CHINESE_HONGKONG , "Chinese (Hongkong)")
LNG(wxLANGUAGE_CHINESE_MACAU, "zh_MO", LANG_CHINESE , SUBLANG_CHINESE_MACAU , "Chinese (Macau)") LNG(wxLANGUAGE_CHINESE_MACAU, "zh_MO", LANG_CHINESE , SUBLANG_CHINESE_MACAU , "Chinese (Macau)")
LNG(wxLANGUAGE_CHINESE_SINGAPORE, "zh_SG", LANG_CHINESE , SUBLANG_CHINESE_SINGAPORE , "Chinese (Singapore)") LNG(wxLANGUAGE_CHINESE_SINGAPORE, "zh_SG", LANG_CHINESE , SUBLANG_CHINESE_SINGAPORE , "Chinese (Singapore)")
LNG(wxLANGUAGE_CHINESE_TAIWAN, "zh_TW", 0 , 0 , "Chinese (Taiwan)") LNG(wxLANGUAGE_CHINESE_TAIWAN, "zh_TW", LANG_CHINESE , SUBLANG_CHINESE_TRADITIONAL , "Chinese (Taiwan)")
LNG(wxLANGUAGE_CORSICAN, "co" , 0 , 0 , "Corsican") LNG(wxLANGUAGE_CORSICAN, "co" , 0 , 0 , "Corsican")
LNG(wxLANGUAGE_CROATIAN, "hr_HR", LANG_CROATIAN , SUBLANG_DEFAULT , "Croatian") LNG(wxLANGUAGE_CROATIAN, "hr_HR", LANG_CROATIAN , SUBLANG_DEFAULT , "Croatian")
LNG(wxLANGUAGE_CZECH, "cs_CZ", LANG_CZECH , SUBLANG_DEFAULT , "Czech") LNG(wxLANGUAGE_CZECH, "cs_CZ", LANG_CZECH , SUBLANG_DEFAULT , "Czech")

View File

@@ -58,7 +58,7 @@
void wxStreamBuffer::SetError(wxStreamError err) void wxStreamBuffer::SetError(wxStreamError err)
{ {
if ( m_stream->m_lasterror == wxSTREAM_NO_ERROR ) if ( m_stream && m_stream->m_lasterror == wxSTREAM_NO_ERROR )
m_stream->m_lasterror = err; m_stream->m_lasterror = err;
} }
@@ -198,7 +198,9 @@ bool wxStreamBuffer::FillBuffer()
{ {
wxInputStream *inStream = GetInputStream(); wxInputStream *inStream = GetInputStream();
wxCHECK_MSG( inStream, FALSE, _T("should have a stream in wxStreamBuffer") ); // It's legal to have no stream, so we don't complain about it just return FALSE
if ( !inStream )
return FALSE;
size_t count = inStream->OnSysRead(m_buffer_start, m_buffer_size); size_t count = inStream->OnSysRead(m_buffer_start, m_buffer_size);
if ( !count ) if ( !count )
@@ -259,7 +261,7 @@ void wxStreamBuffer::GetFromBuffer(void *buffer, size_t size)
void wxStreamBuffer::PutToBuffer(const void *buffer, size_t size) void wxStreamBuffer::PutToBuffer(const void *buffer, size_t size)
{ {
size_t left = GetBytesLeft(); size_t left = GetBytesLeft();
if ( size > left ) if ( size > left )
{ {
if ( m_fixed ) if ( m_fixed )
@@ -451,7 +453,7 @@ size_t wxStreamBuffer::Write(const void *buffer, size_t size)
// lasterror is reset before all new IO calls // lasterror is reset before all new IO calls
m_stream->Reset(); m_stream->Reset();
} }
size_t ret = 0; size_t ret = 0;
if ( !HasBuffer() && m_fixed ) if ( !HasBuffer() && m_fixed )
@@ -479,7 +481,7 @@ size_t wxStreamBuffer::Write(const void *buffer, size_t size)
// //
// FIXME: fine, but if it fails we should (re)try writing it by // FIXME: fine, but if it fails we should (re)try writing it by
// chunks as this will (hopefully) always work (VZ) // chunks as this will (hopefully) always work (VZ)
if ( size > left && m_fixed ) if ( size > left && m_fixed )
{ {
PutToBuffer(buffer, left); PutToBuffer(buffer, left);
@@ -510,7 +512,7 @@ size_t wxStreamBuffer::Write(const void *buffer, size_t size)
// i am not entirely sure what we do this for // i am not entirely sure what we do this for
m_stream->m_lastcount = ret; m_stream->m_lastcount = ret;
} }
return ret; return ret;
} }
@@ -736,7 +738,7 @@ size_t wxInputStream::GetWBack(void *buf, size_t size)
toget = size; toget = size;
} }
// copy the data from the cache // copy the data from the cache
memcpy(buf, m_wback + m_wbackcur, toget); memcpy(buf, m_wback + m_wbackcur, toget);
m_wbackcur += toget; m_wbackcur += toget;
@@ -871,11 +873,11 @@ off_t wxInputStream::SeekI(off_t pos, wxSeekMode mode)
buffer if possible, but is it really needed? It would only work buffer if possible, but is it really needed? It would only work
when seeking in wxFromCurrent mode, else it would invalidate when seeking in wxFromCurrent mode, else it would invalidate
anyway... */ anyway... */
if (m_wback) if (m_wback)
{ {
wxLogDebug( wxT("Seeking in stream which has data written back to it.") ); wxLogDebug( wxT("Seeking in stream which has data written back to it.") );
free(m_wback); free(m_wback);
m_wback = NULL; m_wback = NULL;
m_wbacksize = 0; m_wbacksize = 0;
@@ -1108,13 +1110,13 @@ off_t wxBufferedInputStream::SeekI(off_t pos, wxSeekMode mode)
if (m_wback) if (m_wback)
{ {
wxLogDebug( wxT("Seeking in stream which has data written back to it.") ); wxLogDebug( wxT("Seeking in stream which has data written back to it.") );
free(m_wback); free(m_wback);
m_wback = NULL; m_wback = NULL;
m_wbacksize = 0; m_wbacksize = 0;
m_wbackcur = 0; m_wbackcur = 0;
} }
return m_i_streambuf->Seek(pos, mode); return m_i_streambuf->Seek(pos, mode);
} }
@@ -1124,7 +1126,7 @@ off_t wxBufferedInputStream::TellI() const
if (pos != wxInvalidOffset) if (pos != wxInvalidOffset)
pos -= (m_wbacksize - m_wbackcur); pos -= (m_wbacksize - m_wbackcur);
return pos; return pos;
} }

View File

@@ -872,11 +872,15 @@ wxWindowDisabler::~wxWindowDisabler()
// Yield to other apps/messages and disable user input to all windows except // Yield to other apps/messages and disable user input to all windows except
// the given one // the given one
bool wxSafeYield(wxWindow *win) bool wxSafeYield(wxWindow *win, bool onlyIfNeeded)
{ {
wxWindowDisabler wd(win); wxWindowDisabler wd(win);
bool rc = wxYield(); bool rc;
if (onlyIfNeeded)
rc = wxYieldIfNeeded();
else
rc = wxYield();
return rc; return rc;
} }
@@ -900,13 +904,13 @@ bool wxSetDetectableAutoRepeat( bool WXUNUSED(flag) )
const wxChar *wxGetInstallPrefix() const wxChar *wxGetInstallPrefix()
{ {
wxString prefix; wxString prefix;
if ( wxGetEnv(wxT("WXPREFIX"), &prefix) ) if ( wxGetEnv(wxT("WXPREFIX"), &prefix) )
return prefix.c_str(); return prefix.c_str();
#ifdef wxINSTALL_PREFIX #ifdef wxINSTALL_PREFIX
return wxT(wxINSTALL_PREFIX); return wxT(wxINSTALL_PREFIX);
#else #else
return wxT(""); return wxT("");
#endif #endif
} }

View File

@@ -180,6 +180,7 @@ ALL_HEADERS = \
unix/gsockunx.h \ unix/gsockunx.h \
unix/mimetype.h \ unix/mimetype.h \
msw/dde.h \ msw/dde.h \
msw/gccpriv.h \
msw/mimetype.h \ msw/mimetype.h \
msw/winundef.h \ msw/winundef.h \
protocol/file.h \ protocol/file.h \

View File

@@ -878,6 +878,8 @@ void wxFileCtrl::GoToParentDir()
SetItemState( id, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED ); SetItemState( id, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED );
EnsureVisible( id ); EnsureVisible( id );
} }
m_labelDir->SetLabel(m_dirName);
} }
} }

View File

@@ -3835,6 +3835,8 @@ void wxGrid::Init()
// init attr cache // init attr cache
m_attrCache.row = -1; m_attrCache.row = -1;
m_attrCache.col = -1;
m_attrCache.attr = NULL;
// TODO: something better than this ? // TODO: something better than this ?
// //
@@ -8638,13 +8640,16 @@ void wxGrid::ClearAttrCache()
void wxGrid::CacheAttr(int row, int col, wxGridCellAttr *attr) const void wxGrid::CacheAttr(int row, int col, wxGridCellAttr *attr) const
{ {
wxGrid *self = (wxGrid *)this; // const_cast if ( attr != NULL )
{
wxGrid *self = (wxGrid *)this; // const_cast
self->ClearAttrCache(); self->ClearAttrCache();
self->m_attrCache.row = row; self->m_attrCache.row = row;
self->m_attrCache.col = col; self->m_attrCache.col = col;
self->m_attrCache.attr = attr; self->m_attrCache.attr = attr;
wxSafeIncRef(attr); wxSafeIncRef(attr);
}
} }
bool wxGrid::LookupAttr(int row, int col, wxGridCellAttr **attr) const bool wxGrid::LookupAttr(int row, int col, wxGridCellAttr **attr) const

View File

@@ -121,7 +121,7 @@ void wxGLContext::SetCurrent()
} }
} }
void wxGLContext::SetColour(const char *colour) void wxGLContext::SetColour(const wxChar *colour)
{ {
float r = 0.0; float r = 0.0;
float g = 0.0; float g = 0.0;
@@ -441,7 +441,7 @@ void wxGLCanvas::SetCurrent()
m_glContext->SetCurrent(); m_glContext->SetCurrent();
} }
void wxGLCanvas::SetColour( const char *colour ) void wxGLCanvas::SetColour( const wxChar *colour )
{ {
if (m_glContext) if (m_glContext)
m_glContext->SetColour( colour ); m_glContext->SetColour( colour );

View File

@@ -113,9 +113,16 @@ static wxString wxReplaceUnderscore( const wxString& title )
/* GTK 1.2 wants to have "_" instead of "&" for accelerators */ /* GTK 1.2 wants to have "_" instead of "&" for accelerators */
wxString str; wxString str;
for ( pc = title; *pc != wxT('\0'); pc++ ) pc = title;
while (*pc != wxT('\0'))
{ {
if (*pc == wxT('&')) if ((*pc == wxT('&')) && (*(pc+1) == wxT('&')))
{
// "&" is doubled to indicate "&" instead of accelerator
++pc;
str << wxT('&');
}
else if (*pc == wxT('&'))
{ {
#if GTK_CHECK_VERSION(1, 2, 0) #if GTK_CHECK_VERSION(1, 2, 0)
str << wxT('_'); str << wxT('_');
@@ -149,6 +156,7 @@ static wxString wxReplaceUnderscore( const wxString& title )
str << *pc; str << *pc;
} }
++pc;
} }
return str; return str;
} }
@@ -577,10 +585,9 @@ wxString wxMenuBar::GetLabelTop( size_t pos ) const
wxString text( menu->GetTitle() ); wxString text( menu->GetTitle() );
for ( const wxChar *pc = text.c_str(); *pc; pc++ ) for ( const wxChar *pc = text.c_str(); *pc; pc++ )
{ {
if ( *pc == wxT('_') || *pc == wxT('&') ) if ( *pc == wxT('_') )
{ {
// '_' is the escape character for GTK+ and '&' is the one for // '_' is the escape character for GTK+
// wxWindows - skip both of them
continue; continue;
} }
@@ -789,12 +796,6 @@ wxString wxMenuItemBase::GetLabelFromText(const wxString& text)
} }
#endif #endif
if ( *pc == wxT('&') )
{
// wxMSW escapes &
continue;
}
label += *pc; label += *pc;
} }
@@ -848,13 +849,18 @@ void wxMenuItem::DoSetText( const wxString& str )
// '\t' is the deliminator indicating a hot key // '\t' is the deliminator indicating a hot key
m_text.Empty(); m_text.Empty();
const wxChar *pc = str; const wxChar *pc = str;
for (; (*pc != wxT('\0')) && (*pc != wxT('\t')); pc++ ) while ( (*pc != wxT('\0')) && (*pc != wxT('\t')) )
{ {
if (*pc == wxT('&')) if ((*pc == wxT('&')) && (*(pc+1) == wxT('&')))
{
// "&" is doubled to indicate "&" instead of accelerator
++pc;
m_text << wxT('&');
}
else if (*pc == wxT('&'))
{ {
m_text << wxT('_'); m_text << wxT('_');
} }
#if GTK_CHECK_VERSION(2, 0, 0) #if GTK_CHECK_VERSION(2, 0, 0)
else if ( *pc == wxT('_') ) // escape underscores else if ( *pc == wxT('_') ) // escape underscores
{ {
@@ -878,10 +884,12 @@ void wxMenuItem::DoSetText( const wxString& str )
m_text << wxT('\\'); /* ... and replace them with back slashes */ m_text << wxT('\\'); /* ... and replace them with back slashes */
} }
#endif #endif
else else {
m_text << *pc; m_text << *pc;
}
++pc;
} }
m_hotKey = wxT(""); m_hotKey = wxT("");
if(*pc == wxT('\t')) if(*pc == wxT('\t'))
@@ -957,9 +965,9 @@ wxString wxMenuItem::GetFactoryPath() const
for ( const wxChar *pc = m_text.c_str(); *pc; pc++ ) for ( const wxChar *pc = m_text.c_str(); *pc; pc++ )
{ {
if ( *pc == wxT('_') || *pc == wxT('&') ) if ( *pc == wxT('_') )
{ {
// remove '_' and '&' unconditionally // remove '_' unconditionally
continue; continue;
} }

View File

@@ -2267,7 +2267,7 @@ wxWindow *wxWindowBase::FindFocus()
// VZ: Robert commented the code using out so it generates warnings: should // VZ: Robert commented the code using out so it generates warnings: should
// be either fixed or removed completely // be either fixed or removed completely
#if 0 //** #if 0
static void gtk_window_destroy_callback( GtkWidget* widget, wxWindow *win ) static void gtk_window_destroy_callback( GtkWidget* widget, wxWindow *win )
{ {
@@ -2275,7 +2275,7 @@ static void gtk_window_destroy_callback( GtkWidget* widget, wxWindow *win )
win->GetEventHandler()->ProcessEvent(event); win->GetEventHandler()->ProcessEvent(event);
} }
#endif // 0 //** #endif // 0
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// "realize" from m_widget // "realize" from m_widget
@@ -2928,9 +2928,9 @@ void wxWindowGTK::ConnectWidget( GtkWidget *widget )
GTK_SIGNAL_FUNC(gtk_window_leave_callback), (gpointer)this ); GTK_SIGNAL_FUNC(gtk_window_leave_callback), (gpointer)this );
// This keeps crashing on me. RR. // This keeps crashing on me. RR.
// //**
// gtk_signal_connect( GTK_OBJECT(widget), "destroy", gtk_signal_connect( GTK_OBJECT(widget), "destroy",
// GTK_SIGNAL_FUNC(gtk_window_destroy_callback), (gpointer)this ); GTK_SIGNAL_FUNC(gtk_window_destroy_callback), (gpointer)this );
} }
bool wxWindowGTK::Destroy() bool wxWindowGTK::Destroy()
@@ -4591,10 +4591,8 @@ wxPoint wxGetMousePosition()
int x, y; int x, y;
GdkWindow* windowAtPtr = gdk_window_at_pointer(& x, & y); GdkWindow* windowAtPtr = gdk_window_at_pointer(& x, & y);
if (!windowAtPtr)
return wxPoint(-999, -999);
Display *display = GDK_WINDOW_XDISPLAY(windowAtPtr); Display *display = windowAtPtr ? GDK_WINDOW_XDISPLAY(windowAtPtr) : GDK_DISPLAY();
Window rootWindow = RootWindowOfScreen (DefaultScreenOfDisplay(display)); Window rootWindow = RootWindowOfScreen (DefaultScreenOfDisplay(display));
Window rootReturn, childReturn; Window rootReturn, childReturn;
int rootX, rootY, winX, winY; int rootX, rootY, winX, winY;

View File

@@ -121,7 +121,7 @@ void wxGLContext::SetCurrent()
} }
} }
void wxGLContext::SetColour(const char *colour) void wxGLContext::SetColour(const wxChar *colour)
{ {
float r = 0.0; float r = 0.0;
float g = 0.0; float g = 0.0;
@@ -441,7 +441,7 @@ void wxGLCanvas::SetCurrent()
m_glContext->SetCurrent(); m_glContext->SetCurrent();
} }
void wxGLCanvas::SetColour( const char *colour ) void wxGLCanvas::SetColour( const wxChar *colour )
{ {
if (m_glContext) if (m_glContext)
m_glContext->SetColour( colour ); m_glContext->SetColour( colour );

View File

@@ -113,9 +113,16 @@ static wxString wxReplaceUnderscore( const wxString& title )
/* GTK 1.2 wants to have "_" instead of "&" for accelerators */ /* GTK 1.2 wants to have "_" instead of "&" for accelerators */
wxString str; wxString str;
for ( pc = title; *pc != wxT('\0'); pc++ ) pc = title;
while (*pc != wxT('\0'))
{ {
if (*pc == wxT('&')) if ((*pc == wxT('&')) && (*(pc+1) == wxT('&')))
{
// "&" is doubled to indicate "&" instead of accelerator
++pc;
str << wxT('&');
}
else if (*pc == wxT('&'))
{ {
#if GTK_CHECK_VERSION(1, 2, 0) #if GTK_CHECK_VERSION(1, 2, 0)
str << wxT('_'); str << wxT('_');
@@ -149,6 +156,7 @@ static wxString wxReplaceUnderscore( const wxString& title )
str << *pc; str << *pc;
} }
++pc;
} }
return str; return str;
} }
@@ -577,10 +585,9 @@ wxString wxMenuBar::GetLabelTop( size_t pos ) const
wxString text( menu->GetTitle() ); wxString text( menu->GetTitle() );
for ( const wxChar *pc = text.c_str(); *pc; pc++ ) for ( const wxChar *pc = text.c_str(); *pc; pc++ )
{ {
if ( *pc == wxT('_') || *pc == wxT('&') ) if ( *pc == wxT('_') )
{ {
// '_' is the escape character for GTK+ and '&' is the one for // '_' is the escape character for GTK+
// wxWindows - skip both of them
continue; continue;
} }
@@ -789,12 +796,6 @@ wxString wxMenuItemBase::GetLabelFromText(const wxString& text)
} }
#endif #endif
if ( *pc == wxT('&') )
{
// wxMSW escapes &
continue;
}
label += *pc; label += *pc;
} }
@@ -848,13 +849,18 @@ void wxMenuItem::DoSetText( const wxString& str )
// '\t' is the deliminator indicating a hot key // '\t' is the deliminator indicating a hot key
m_text.Empty(); m_text.Empty();
const wxChar *pc = str; const wxChar *pc = str;
for (; (*pc != wxT('\0')) && (*pc != wxT('\t')); pc++ ) while ( (*pc != wxT('\0')) && (*pc != wxT('\t')) )
{ {
if (*pc == wxT('&')) if ((*pc == wxT('&')) && (*(pc+1) == wxT('&')))
{
// "&" is doubled to indicate "&" instead of accelerator
++pc;
m_text << wxT('&');
}
else if (*pc == wxT('&'))
{ {
m_text << wxT('_'); m_text << wxT('_');
} }
#if GTK_CHECK_VERSION(2, 0, 0) #if GTK_CHECK_VERSION(2, 0, 0)
else if ( *pc == wxT('_') ) // escape underscores else if ( *pc == wxT('_') ) // escape underscores
{ {
@@ -878,10 +884,12 @@ void wxMenuItem::DoSetText( const wxString& str )
m_text << wxT('\\'); /* ... and replace them with back slashes */ m_text << wxT('\\'); /* ... and replace them with back slashes */
} }
#endif #endif
else else {
m_text << *pc; m_text << *pc;
}
++pc;
} }
m_hotKey = wxT(""); m_hotKey = wxT("");
if(*pc == wxT('\t')) if(*pc == wxT('\t'))
@@ -957,9 +965,9 @@ wxString wxMenuItem::GetFactoryPath() const
for ( const wxChar *pc = m_text.c_str(); *pc; pc++ ) for ( const wxChar *pc = m_text.c_str(); *pc; pc++ )
{ {
if ( *pc == wxT('_') || *pc == wxT('&') ) if ( *pc == wxT('_') )
{ {
// remove '_' and '&' unconditionally // remove '_' unconditionally
continue; continue;
} }

View File

@@ -2267,7 +2267,7 @@ wxWindow *wxWindowBase::FindFocus()
// VZ: Robert commented the code using out so it generates warnings: should // VZ: Robert commented the code using out so it generates warnings: should
// be either fixed or removed completely // be either fixed or removed completely
#if 0 //** #if 0
static void gtk_window_destroy_callback( GtkWidget* widget, wxWindow *win ) static void gtk_window_destroy_callback( GtkWidget* widget, wxWindow *win )
{ {
@@ -2275,7 +2275,7 @@ static void gtk_window_destroy_callback( GtkWidget* widget, wxWindow *win )
win->GetEventHandler()->ProcessEvent(event); win->GetEventHandler()->ProcessEvent(event);
} }
#endif // 0 //** #endif // 0
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// "realize" from m_widget // "realize" from m_widget
@@ -2928,9 +2928,9 @@ void wxWindowGTK::ConnectWidget( GtkWidget *widget )
GTK_SIGNAL_FUNC(gtk_window_leave_callback), (gpointer)this ); GTK_SIGNAL_FUNC(gtk_window_leave_callback), (gpointer)this );
// This keeps crashing on me. RR. // This keeps crashing on me. RR.
// //**
// gtk_signal_connect( GTK_OBJECT(widget), "destroy", gtk_signal_connect( GTK_OBJECT(widget), "destroy",
// GTK_SIGNAL_FUNC(gtk_window_destroy_callback), (gpointer)this ); GTK_SIGNAL_FUNC(gtk_window_destroy_callback), (gpointer)this );
} }
bool wxWindowGTK::Destroy() bool wxWindowGTK::Destroy()
@@ -4591,10 +4591,8 @@ wxPoint wxGetMousePosition()
int x, y; int x, y;
GdkWindow* windowAtPtr = gdk_window_at_pointer(& x, & y); GdkWindow* windowAtPtr = gdk_window_at_pointer(& x, & y);
if (!windowAtPtr)
return wxPoint(-999, -999);
Display *display = GDK_WINDOW_XDISPLAY(windowAtPtr); Display *display = windowAtPtr ? GDK_WINDOW_XDISPLAY(windowAtPtr) : GDK_DISPLAY();
Window rootWindow = RootWindowOfScreen (DefaultScreenOfDisplay(display)); Window rootWindow = RootWindowOfScreen (DefaultScreenOfDisplay(display));
Window rootReturn, childReturn; Window rootReturn, childReturn;
int rootX, rootY, winX, winY; int rootX, rootY, winX, winY;

View File

@@ -104,11 +104,8 @@ int wxPrintDialog::ShowModal()
::UMAPrClose(NULL) ; ::UMAPrClose(NULL) ;
#else #else
#if PM_USE_SESSION_APIS #if PM_USE_SESSION_APIS
PMPrintSession macPrintSession = kPMNoReference;
Boolean accepted; Boolean accepted;
err = ::UMAPrOpen(&macPrintSession) ;
if ( err == noErr )
{ {
m_printDialogData.ConvertToNative() ; m_printDialogData.ConvertToNative() ;
@@ -123,13 +120,13 @@ int wxPrintDialog::ShowModal()
if ((err == noErr) && if ((err == noErr) &&
(m_printDialogData.GetPrintData().m_macPageFormat != kPMNoPageFormat)) (m_printDialogData.GetPrintData().m_macPageFormat != kPMNoPageFormat))
{ {
err = PMSessionDefaultPageFormat((PMPrintSession)macPrintSession, err = PMSessionDefaultPageFormat((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
(PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat); (PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat);
} }
} }
else else
{ {
err = PMSessionValidatePageFormat((PMPrintSession)macPrintSession, err = PMSessionValidatePageFormat((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
(PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat, (PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat,
kPMDontWantBoolean); kPMDontWantBoolean);
} }
@@ -145,13 +142,13 @@ int wxPrintDialog::ShowModal()
if ((err == noErr) && if ((err == noErr) &&
(m_printDialogData.GetPrintData().m_macPrintSettings != kPMNoPrintSettings)) (m_printDialogData.GetPrintData().m_macPrintSettings != kPMNoPrintSettings))
{ {
err = PMSessionDefaultPrintSettings((PMPrintSession)macPrintSession, err = PMSessionDefaultPrintSettings((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
(PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings); (PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings);
} }
} }
else else
{ {
err = PMSessionValidatePrintSettings((PMPrintSession)macPrintSession, err = PMSessionValidatePrintSettings((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
(PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings, (PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings,
kPMDontWantBoolean); kPMDontWantBoolean);
} }
@@ -165,7 +162,7 @@ int wxPrintDialog::ShowModal()
// Display the Print dialog. // Display the Print dialog.
if (err == noErr) if (err == noErr)
{ {
err = PMSessionPrintDialog((PMPrintSession)macPrintSession, err = PMSessionPrintDialog((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
(PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings, (PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings,
(PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat, (PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat,
&accepted); &accepted);
@@ -186,7 +183,6 @@ int wxPrintDialog::ShowModal()
wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ; wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ;
dialog.ShowModal(); dialog.ShowModal();
} }
::UMAPrClose(&macPrintSession) ;
#else #else
#pragma warning "TODO: Printing for carbon without session apis" #pragma warning "TODO: Printing for carbon without session apis"
#endif #endif
@@ -256,11 +252,8 @@ int wxPageSetupDialog::ShowModal()
::UMAPrClose(NULL) ; ::UMAPrClose(NULL) ;
#else #else
#if PM_USE_SESSION_APIS #if PM_USE_SESSION_APIS
PMPrintSession macPrintSession = kPMNoReference;
Boolean accepted; Boolean accepted;
err = ::UMAPrOpen(&macPrintSession) ;
if ( err == noErr )
{ {
m_pageSetupData.ConvertToNative() ; m_pageSetupData.ConvertToNative() ;
@@ -275,13 +268,13 @@ int wxPageSetupDialog::ShowModal()
if ((err == noErr) && if ((err == noErr) &&
(m_pageSetupData.GetPrintData().m_macPageFormat != kPMNoPageFormat)) (m_pageSetupData.GetPrintData().m_macPageFormat != kPMNoPageFormat))
{ {
err = PMSessionDefaultPageFormat((PMPrintSession)macPrintSession, err = PMSessionDefaultPageFormat((PMPrintSession)m_pageSetupData.GetPrintData().m_macPrintSession,
(PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat); (PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat);
} }
} }
else else
{ {
err = PMSessionValidatePageFormat((PMPrintSession)macPrintSession, err = PMSessionValidatePageFormat((PMPrintSession)m_pageSetupData.GetPrintData().m_macPrintSession,
(PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat, (PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat,
kPMDontWantBoolean); kPMDontWantBoolean);
} }
@@ -289,7 +282,7 @@ int wxPageSetupDialog::ShowModal()
// Display the Page Setup dialog. // Display the Page Setup dialog.
if (err == noErr) if (err == noErr)
{ {
err = PMSessionPageSetupDialog((PMPrintSession)macPrintSession, err = PMSessionPageSetupDialog((PMPrintSession)m_pageSetupData.GetPrintData().m_macPrintSession,
(PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat, (PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat,
&accepted); &accepted);
if ((err == noErr) && !accepted) if ((err == noErr) && !accepted)
@@ -312,7 +305,6 @@ int wxPageSetupDialog::ShowModal()
wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ; wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ;
dialog.ShowModal(); dialog.ShowModal();
} }
::UMAPrClose(&macPrintSession) ;
#else #else
#pragma warning "TODO: Printing for carbon without session apis" #pragma warning "TODO: Printing for carbon without session apis"
#endif #endif

View File

@@ -295,7 +295,10 @@ void wxMacPrintPreview::DetermineScaling(void)
m_pageWidth = x ; m_pageWidth = x ;
m_pageHeight = y ; m_pageHeight = y ;
m_isOk = true ; m_isOk = true ;
}
else
{
m_isOk = false ;
} }
// At 100%, the page should look about page-size on the screen. // At 100%, the page should look about page-size on the screen.
// m_previewScale = (float)((float)screenWidth/(float)printerWidth); // m_previewScale = (float)((float)screenWidth/(float)printerWidth);

View File

@@ -17,6 +17,8 @@
#include "wx/string.h" #include "wx/string.h"
#include "wx/wave.h" #include "wx/wave.h"
#if wxUSE_WAVE
#ifdef __WXMAC__ #ifdef __WXMAC__
#include "wx/mac/private.h" #include "wx/mac/private.h"
#ifndef __DARWIN__ #ifndef __DARWIN__
@@ -57,7 +59,7 @@ bool wxWave::Create(const wxString& fileName, bool isResource)
ret = true; ret = true;
else else
{ /* { /*
if (sndChan) if (sndChan)
{ // we're playing { // we're playing
FSClose(SndRefNum); FSClose(SndRefNum);
SndRefNum = 0; SndRefNum = 0;
@@ -66,7 +68,7 @@ bool wxWave::Create(const wxString& fileName, bool isResource)
sndChan = 0; sndChan = 0;
KillTimer(0,timerID); KillTimer(0,timerID);
} }
if (!lpSnd) if (!lpSnd)
return true; return true;
@@ -81,14 +83,14 @@ bool wxWave::Create(const wxString& fileName, bool isResource)
sndChan->qLength = 128; sndChan->qLength = 128;
if (noErr != SndNewChannel (&sndChan, sampledSynth, initMono | initNoInterp, 0)) if (noErr != SndNewChannel (&sndChan, sampledSynth, initMono | initNoInterp, 0))
{ {
free(sndChan); free(sndChan);
sndChan = 0; sndChan = 0;
return false; return false;
} }
if (!(SndRefNum = MacOpenSndFile ((char *)lpSnd))) if (!(SndRefNum = MacOpenSndFile ((char *)lpSnd)))
{ {
SndDisposeChannel(sndChan, TRUE); SndDisposeChannel(sndChan, TRUE);
free(sndChan); free(sndChan);
@@ -102,7 +104,7 @@ bool wxWave::Create(const wxString& fileName, bool isResource)
if (fdwSound & SND_ASYNC) if (fdwSound & SND_ASYNC)
async = true; async = true;
if (SndStartFilePlay(sndChan, SndRefNum, 0, 81920, 0, 0, 0, async) != noErr) if (SndStartFilePlay(sndChan, SndRefNum, 0, 81920, 0, 0, 0, async) != noErr)
{ {
FSClose (SndRefNum); FSClose (SndRefNum);
SndRefNum = 0; SndRefNum = 0;
@@ -112,11 +114,11 @@ bool wxWave::Create(const wxString& fileName, bool isResource)
return false; return false;
} }
if (async) if (async)
{ // haven't finish yet { // haven't finish yet
timerID = SetTimer(0, 0, 250, TimerCallBack); timerID = SetTimer(0, 0, 250, TimerCallBack);
} }
else else
{ {
FSClose (SndRefNum); FSClose (SndRefNum);
SndRefNum = 0; SndRefNum = 0;
@@ -125,7 +127,7 @@ bool wxWave::Create(const wxString& fileName, bool isResource)
sndChan = 0; sndChan = 0;
}*/ }*/
} }
return ret; return ret;
} }
@@ -135,8 +137,8 @@ bool wxWave::Play(bool async, bool looped) const
{ {
char lpSnd[32]; char lpSnd[32];
bool ret = false; bool ret = false;
if (m_isResource) if (m_isResource)
{ {
#if TARGET_CARBON #if TARGET_CARBON
c2pstrcpy((unsigned char *)lpSnd, m_sndname); c2pstrcpy((unsigned char *)lpSnd, m_sndname);
@@ -145,13 +147,13 @@ bool wxWave::Play(bool async, bool looped) const
c2pstr((char *) lpSnd); c2pstr((char *) lpSnd);
#endif #endif
SndListHandle hSnd; SndListHandle hSnd;
hSnd = (SndListHandle) GetNamedResource('snd ',(const unsigned char *) lpSnd); hSnd = (SndListHandle) GetNamedResource('snd ',(const unsigned char *) lpSnd);
if ((hSnd != NULL) && (SndPlay((SndChannelPtr)m_sndChan, (SndListHandle) hSnd, async) == noErr)) if ((hSnd != NULL) && (SndPlay((SndChannelPtr)m_sndChan, (SndListHandle) hSnd, async) == noErr))
ret = true; ret = true;
} }
return ret; return ret;
} }
@@ -159,7 +161,7 @@ bool wxWave::Play(bool async, bool looped) const
bool wxWave::FreeData() bool wxWave::FreeData()
{ {
bool ret = false; bool ret = false;
if (m_isResource) if (m_isResource)
{ {
m_sndname.Empty(); m_sndname.Empty();
@@ -167,9 +169,9 @@ bool wxWave::FreeData()
} }
else else
{ {
//TODO, //TODO,
} }
return ret; return ret;
} }
@@ -188,7 +190,7 @@ bool wxWave::FreeData()
// first, get the volume reference number for the file. Start by // first, get the volume reference number for the file. Start by
// making a Pstring with just the volume name // making a Pstring with just the volume name
strcpy ((char *) name, path); strcpy ((char *) name, path);
if (c = strchr ((char *) name, ':')) if (c = strchr ((char *) name, ':'))
{ {
c++; c++;
*c = '\0'; *c = '\0';
@@ -220,7 +222,7 @@ bool wxWave::FreeData()
void TimerCallBack(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime) void TimerCallBack(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime)
{ {
if(!sndChan) if(!sndChan)
{ {
KillTimer(0,timerID); KillTimer(0,timerID);
return; return;
@@ -243,3 +245,4 @@ void TimerCallBack(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime)
}*/ }*/
#endif

View File

@@ -104,11 +104,8 @@ int wxPrintDialog::ShowModal()
::UMAPrClose(NULL) ; ::UMAPrClose(NULL) ;
#else #else
#if PM_USE_SESSION_APIS #if PM_USE_SESSION_APIS
PMPrintSession macPrintSession = kPMNoReference;
Boolean accepted; Boolean accepted;
err = ::UMAPrOpen(&macPrintSession) ;
if ( err == noErr )
{ {
m_printDialogData.ConvertToNative() ; m_printDialogData.ConvertToNative() ;
@@ -123,13 +120,13 @@ int wxPrintDialog::ShowModal()
if ((err == noErr) && if ((err == noErr) &&
(m_printDialogData.GetPrintData().m_macPageFormat != kPMNoPageFormat)) (m_printDialogData.GetPrintData().m_macPageFormat != kPMNoPageFormat))
{ {
err = PMSessionDefaultPageFormat((PMPrintSession)macPrintSession, err = PMSessionDefaultPageFormat((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
(PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat); (PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat);
} }
} }
else else
{ {
err = PMSessionValidatePageFormat((PMPrintSession)macPrintSession, err = PMSessionValidatePageFormat((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
(PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat, (PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat,
kPMDontWantBoolean); kPMDontWantBoolean);
} }
@@ -145,13 +142,13 @@ int wxPrintDialog::ShowModal()
if ((err == noErr) && if ((err == noErr) &&
(m_printDialogData.GetPrintData().m_macPrintSettings != kPMNoPrintSettings)) (m_printDialogData.GetPrintData().m_macPrintSettings != kPMNoPrintSettings))
{ {
err = PMSessionDefaultPrintSettings((PMPrintSession)macPrintSession, err = PMSessionDefaultPrintSettings((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
(PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings); (PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings);
} }
} }
else else
{ {
err = PMSessionValidatePrintSettings((PMPrintSession)macPrintSession, err = PMSessionValidatePrintSettings((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
(PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings, (PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings,
kPMDontWantBoolean); kPMDontWantBoolean);
} }
@@ -165,7 +162,7 @@ int wxPrintDialog::ShowModal()
// Display the Print dialog. // Display the Print dialog.
if (err == noErr) if (err == noErr)
{ {
err = PMSessionPrintDialog((PMPrintSession)macPrintSession, err = PMSessionPrintDialog((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
(PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings, (PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings,
(PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat, (PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat,
&accepted); &accepted);
@@ -186,7 +183,6 @@ int wxPrintDialog::ShowModal()
wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ; wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ;
dialog.ShowModal(); dialog.ShowModal();
} }
::UMAPrClose(&macPrintSession) ;
#else #else
#pragma warning "TODO: Printing for carbon without session apis" #pragma warning "TODO: Printing for carbon without session apis"
#endif #endif
@@ -256,11 +252,8 @@ int wxPageSetupDialog::ShowModal()
::UMAPrClose(NULL) ; ::UMAPrClose(NULL) ;
#else #else
#if PM_USE_SESSION_APIS #if PM_USE_SESSION_APIS
PMPrintSession macPrintSession = kPMNoReference;
Boolean accepted; Boolean accepted;
err = ::UMAPrOpen(&macPrintSession) ;
if ( err == noErr )
{ {
m_pageSetupData.ConvertToNative() ; m_pageSetupData.ConvertToNative() ;
@@ -275,13 +268,13 @@ int wxPageSetupDialog::ShowModal()
if ((err == noErr) && if ((err == noErr) &&
(m_pageSetupData.GetPrintData().m_macPageFormat != kPMNoPageFormat)) (m_pageSetupData.GetPrintData().m_macPageFormat != kPMNoPageFormat))
{ {
err = PMSessionDefaultPageFormat((PMPrintSession)macPrintSession, err = PMSessionDefaultPageFormat((PMPrintSession)m_pageSetupData.GetPrintData().m_macPrintSession,
(PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat); (PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat);
} }
} }
else else
{ {
err = PMSessionValidatePageFormat((PMPrintSession)macPrintSession, err = PMSessionValidatePageFormat((PMPrintSession)m_pageSetupData.GetPrintData().m_macPrintSession,
(PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat, (PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat,
kPMDontWantBoolean); kPMDontWantBoolean);
} }
@@ -289,7 +282,7 @@ int wxPageSetupDialog::ShowModal()
// Display the Page Setup dialog. // Display the Page Setup dialog.
if (err == noErr) if (err == noErr)
{ {
err = PMSessionPageSetupDialog((PMPrintSession)macPrintSession, err = PMSessionPageSetupDialog((PMPrintSession)m_pageSetupData.GetPrintData().m_macPrintSession,
(PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat, (PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat,
&accepted); &accepted);
if ((err == noErr) && !accepted) if ((err == noErr) && !accepted)
@@ -312,7 +305,6 @@ int wxPageSetupDialog::ShowModal()
wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ; wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ;
dialog.ShowModal(); dialog.ShowModal();
} }
::UMAPrClose(&macPrintSession) ;
#else #else
#pragma warning "TODO: Printing for carbon without session apis" #pragma warning "TODO: Printing for carbon without session apis"
#endif #endif

View File

@@ -295,7 +295,10 @@ void wxMacPrintPreview::DetermineScaling(void)
m_pageWidth = x ; m_pageWidth = x ;
m_pageHeight = y ; m_pageHeight = y ;
m_isOk = true ; m_isOk = true ;
}
else
{
m_isOk = false ;
} }
// At 100%, the page should look about page-size on the screen. // At 100%, the page should look about page-size on the screen.
// m_previewScale = (float)((float)screenWidth/(float)printerWidth); // m_previewScale = (float)((float)screenWidth/(float)printerWidth);

View File

@@ -17,6 +17,8 @@
#include "wx/string.h" #include "wx/string.h"
#include "wx/wave.h" #include "wx/wave.h"
#if wxUSE_WAVE
#ifdef __WXMAC__ #ifdef __WXMAC__
#include "wx/mac/private.h" #include "wx/mac/private.h"
#ifndef __DARWIN__ #ifndef __DARWIN__
@@ -57,7 +59,7 @@ bool wxWave::Create(const wxString& fileName, bool isResource)
ret = true; ret = true;
else else
{ /* { /*
if (sndChan) if (sndChan)
{ // we're playing { // we're playing
FSClose(SndRefNum); FSClose(SndRefNum);
SndRefNum = 0; SndRefNum = 0;
@@ -66,7 +68,7 @@ bool wxWave::Create(const wxString& fileName, bool isResource)
sndChan = 0; sndChan = 0;
KillTimer(0,timerID); KillTimer(0,timerID);
} }
if (!lpSnd) if (!lpSnd)
return true; return true;
@@ -81,14 +83,14 @@ bool wxWave::Create(const wxString& fileName, bool isResource)
sndChan->qLength = 128; sndChan->qLength = 128;
if (noErr != SndNewChannel (&sndChan, sampledSynth, initMono | initNoInterp, 0)) if (noErr != SndNewChannel (&sndChan, sampledSynth, initMono | initNoInterp, 0))
{ {
free(sndChan); free(sndChan);
sndChan = 0; sndChan = 0;
return false; return false;
} }
if (!(SndRefNum = MacOpenSndFile ((char *)lpSnd))) if (!(SndRefNum = MacOpenSndFile ((char *)lpSnd)))
{ {
SndDisposeChannel(sndChan, TRUE); SndDisposeChannel(sndChan, TRUE);
free(sndChan); free(sndChan);
@@ -102,7 +104,7 @@ bool wxWave::Create(const wxString& fileName, bool isResource)
if (fdwSound & SND_ASYNC) if (fdwSound & SND_ASYNC)
async = true; async = true;
if (SndStartFilePlay(sndChan, SndRefNum, 0, 81920, 0, 0, 0, async) != noErr) if (SndStartFilePlay(sndChan, SndRefNum, 0, 81920, 0, 0, 0, async) != noErr)
{ {
FSClose (SndRefNum); FSClose (SndRefNum);
SndRefNum = 0; SndRefNum = 0;
@@ -112,11 +114,11 @@ bool wxWave::Create(const wxString& fileName, bool isResource)
return false; return false;
} }
if (async) if (async)
{ // haven't finish yet { // haven't finish yet
timerID = SetTimer(0, 0, 250, TimerCallBack); timerID = SetTimer(0, 0, 250, TimerCallBack);
} }
else else
{ {
FSClose (SndRefNum); FSClose (SndRefNum);
SndRefNum = 0; SndRefNum = 0;
@@ -125,7 +127,7 @@ bool wxWave::Create(const wxString& fileName, bool isResource)
sndChan = 0; sndChan = 0;
}*/ }*/
} }
return ret; return ret;
} }
@@ -135,8 +137,8 @@ bool wxWave::Play(bool async, bool looped) const
{ {
char lpSnd[32]; char lpSnd[32];
bool ret = false; bool ret = false;
if (m_isResource) if (m_isResource)
{ {
#if TARGET_CARBON #if TARGET_CARBON
c2pstrcpy((unsigned char *)lpSnd, m_sndname); c2pstrcpy((unsigned char *)lpSnd, m_sndname);
@@ -145,13 +147,13 @@ bool wxWave::Play(bool async, bool looped) const
c2pstr((char *) lpSnd); c2pstr((char *) lpSnd);
#endif #endif
SndListHandle hSnd; SndListHandle hSnd;
hSnd = (SndListHandle) GetNamedResource('snd ',(const unsigned char *) lpSnd); hSnd = (SndListHandle) GetNamedResource('snd ',(const unsigned char *) lpSnd);
if ((hSnd != NULL) && (SndPlay((SndChannelPtr)m_sndChan, (SndListHandle) hSnd, async) == noErr)) if ((hSnd != NULL) && (SndPlay((SndChannelPtr)m_sndChan, (SndListHandle) hSnd, async) == noErr))
ret = true; ret = true;
} }
return ret; return ret;
} }
@@ -159,7 +161,7 @@ bool wxWave::Play(bool async, bool looped) const
bool wxWave::FreeData() bool wxWave::FreeData()
{ {
bool ret = false; bool ret = false;
if (m_isResource) if (m_isResource)
{ {
m_sndname.Empty(); m_sndname.Empty();
@@ -167,9 +169,9 @@ bool wxWave::FreeData()
} }
else else
{ {
//TODO, //TODO,
} }
return ret; return ret;
} }
@@ -188,7 +190,7 @@ bool wxWave::FreeData()
// first, get the volume reference number for the file. Start by // first, get the volume reference number for the file. Start by
// making a Pstring with just the volume name // making a Pstring with just the volume name
strcpy ((char *) name, path); strcpy ((char *) name, path);
if (c = strchr ((char *) name, ':')) if (c = strchr ((char *) name, ':'))
{ {
c++; c++;
*c = '\0'; *c = '\0';
@@ -220,7 +222,7 @@ bool wxWave::FreeData()
void TimerCallBack(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime) void TimerCallBack(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime)
{ {
if(!sndChan) if(!sndChan)
{ {
KillTimer(0,timerID); KillTimer(0,timerID);
return; return;
@@ -243,3 +245,4 @@ void TimerCallBack(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime)
}*/ }*/
#endif

View File

@@ -21,6 +21,7 @@ TOOLKITDIR = @TOOLKIT_DIR@
WXLIB = @WX_LIBRARY_NAME_STATIC@ WXLIB = @WX_LIBRARY_NAME_STATIC@
WXSHLIB = @WX_LIBRARY_NAME_SHARED@ WXSHLIB = @WX_LIBRARY_NAME_SHARED@
WXLIBBASE = @WX_LIBRARY_BASENAME@
########################### VERSION ################################# ########################### VERSION #################################

View File

@@ -473,6 +473,27 @@ ALL_HEADERS = \
xpmdecod.h \ xpmdecod.h \
zipstrm.h \ zipstrm.h \
zstream.h \ zstream.h \
mgl/app.h \
mgl/bitmap.h \
mgl/brush.h \
mgl/clipbrd.h \
mgl/colour.h \
mgl/cursor.h \
mgl/dc.h \
mgl/dcclient.h \
mgl/dcmemory.h \
mgl/dcscreen.h \
mgl/font.h \
mgl/fontutil.h \
mgl/gdiobj.h \
mgl/icon.h \
mgl/palette.h \
mgl/pen.h \
mgl/popupwin.h \
mgl/private.h \
mgl/region.h \
mgl/toplevel.h \
mgl/window.h \
generic/accel.h \ generic/accel.h \
generic/calctrl.h \ generic/calctrl.h \
generic/caret.h \ generic/caret.h \
@@ -537,7 +558,6 @@ ALL_HEADERS = \
protocol/protocol.h protocol/protocol.h
COMMONOBJS = \ COMMONOBJS = \
parser.o \
appcmn.o \ appcmn.o \
artprov.o \ artprov.o \
artstd.o \ artstd.o \

View File

@@ -129,7 +129,8 @@ static void wxCaptureScreenshot(bool activeWindowOnly)
g_displayDC->savePNGFromDC(screenshot.mb_str(), g_displayDC->savePNGFromDC(screenshot.mb_str(),
r.x, r. y, r.x+r.width, r.y+r.height); r.x, r. y, r.x+r.width, r.y+r.height);
wxMessageBox(_("Screenshot captured: ") + wxString(screenshot)); wxMessageBox(wxString::Format(_T("Screenshot captured: %s"),
screenshot.c_str()));
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------

View File

@@ -617,7 +617,7 @@ void wxListBoxCallback (Widget WXUNUSED(w), XtPointer clientData,
event.SetString( item->GetString( n ) ); event.SetString( item->GetString( n ) );
int x = -1; int x = -1;
if( cbs->event->type == ButtonRelease ) if( NULL != cbs->event && cbs->event->type == ButtonRelease )
{ {
XButtonEvent* evt = (XButtonEvent*)cbs->event; XButtonEvent* evt = (XButtonEvent*)cbs->event;

View File

@@ -139,10 +139,10 @@ wxMenuItem *wxMenu::DoRemove(wxMenuItem *item)
bool wxMenu::DoInsert(size_t pos, wxMenuItem *item) bool wxMenu::DoInsert(size_t pos, wxMenuItem *item)
{ {
if ( !wxMenuBase::DoInsert(pos, item) ) if ( wxMenuBase::DoInsert(pos, item) )
return FALSE; return TRUE;
wxFAIL_MSG(wxT("not implemented")); wxFAIL_MSG(wxT("DoInsert not implemented; or error in wxMenuBase::DoInsert"));
return FALSE; return FALSE;
} }

View File

@@ -193,9 +193,31 @@ int wxChoice::FindString(const wxString& s) const
void wxChoice::SetString(int n, const wxString& s) void wxChoice::SetString(int n, const wxString& s)
{ {
wxCHECK_RET( (n>=0)&&(n<GetCount()), wxT("invalid item index in wxChoice::SetString") ); wxCHECK_RET( n >= 0 && n < GetCount(),
SendMessage(GetHwnd(), CB_DELETESTRING, n, 0); wxT("invalid item index in wxChoice::SetString") );
SendMessage(GetHwnd(), CB_INSERTSTRING, n, (LONG)s.c_str() );
// we have to delete and add back the string as there is no way to change a
// string in place
// we need to preserve the client data
void *data;
if ( m_clientDataItemsType != wxClientData_None )
{
data = DoGetItemClientData(n);
}
else // no client data
{
data = NULL;
}
::SendMessage(GetHwnd(), CB_DELETESTRING, n, 0);
::SendMessage(GetHwnd(), CB_INSERTSTRING, n, (LPARAM)s.c_str() );
if ( data )
{
DoSetItemClientData(n, data);
}
//else: it's already NULL by default
} }
wxString wxChoice::GetString(int n) const wxString wxChoice::GetString(int n) const
@@ -228,7 +250,8 @@ wxString wxChoice::GetString(int n) const
void wxChoice::DoSetItemClientData( int n, void* clientData ) void wxChoice::DoSetItemClientData( int n, void* clientData )
{ {
if ( SendMessage(GetHwnd(), CB_SETITEMDATA, n, (LPARAM)clientData) == CB_ERR ) if ( ::SendMessage(GetHwnd(), CB_SETITEMDATA,
n, (LPARAM)clientData) == CB_ERR )
{ {
wxLogLastError(wxT("CB_SETITEMDATA")); wxLogLastError(wxT("CB_SETITEMDATA"));
} }

View File

@@ -105,7 +105,7 @@ wxColour wxNullColour;
// Default window names // Default window names
const wxChar *wxControlNameStr = wxT("control"); const wxChar *wxControlNameStr = wxT("control");
const wxChar *wxButtonNameStr = wxT("button"); const wxChar *wxButtonNameStr = wxT("button");
const wxChar *wxCanvasNameStr = wxT("canvas"); const wxChar WXDLLEXPORT *wxCanvasNameStr = wxT("canvas");
const wxChar *wxCheckBoxNameStr = wxT("check"); const wxChar *wxCheckBoxNameStr = wxT("check");
const wxChar *wxChoiceNameStr = wxT("choice"); const wxChar *wxChoiceNameStr = wxT("choice");
const wxChar *wxComboBoxNameStr = wxT("comboBox"); const wxChar *wxComboBoxNameStr = wxT("comboBox");
@@ -116,26 +116,26 @@ const wxChar *wxStaticBoxNameStr = wxT("groupBox");
const wxChar *wxListBoxNameStr = wxT("listBox"); const wxChar *wxListBoxNameStr = wxT("listBox");
const wxChar *wxStaticTextNameStr = wxT("message"); const wxChar *wxStaticTextNameStr = wxT("message");
const wxChar *wxStaticBitmapNameStr = wxT("message"); const wxChar *wxStaticBitmapNameStr = wxT("message");
const wxChar *wxMultiTextNameStr = wxT("multitext"); const wxChar WXDLLEXPORT *wxMultiTextNameStr = wxT("multitext");
const wxChar *wxPanelNameStr = wxT("panel"); const wxChar *wxPanelNameStr = wxT("panel");
const wxChar *wxRadioBoxNameStr = wxT("radioBox"); const wxChar *wxRadioBoxNameStr = wxT("radioBox");
const wxChar *wxRadioButtonNameStr = wxT("radioButton"); const wxChar *wxRadioButtonNameStr = wxT("radioButton");
const wxChar *wxBitmapRadioButtonNameStr = wxT("radioButton"); const wxChar WXDLLEXPORT *wxBitmapRadioButtonNameStr = wxT("radioButton");
const wxChar *wxScrollBarNameStr = wxT("scrollBar"); const wxChar *wxScrollBarNameStr = wxT("scrollBar");
const wxChar *wxSliderNameStr = wxT("slider"); const wxChar *wxSliderNameStr = wxT("slider");
const wxChar *wxStaticNameStr = wxT("static"); const wxChar WXDLLEXPORT *wxStaticNameStr = wxT("static");
const wxChar *wxTextCtrlWindowNameStr = wxT("textWindow"); const wxChar WXDLLEXPORT *wxTextCtrlWindowNameStr = wxT("textWindow");
const wxChar *wxTextCtrlNameStr = wxT("text"); const wxChar *wxTextCtrlNameStr = wxT("text");
const wxChar *wxVirtListBoxNameStr = wxT("virtListBox"); const wxChar WXDLLEXPORT *wxVirtListBoxNameStr = wxT("virtListBox");
const wxChar *wxButtonBarNameStr = wxT("buttonbar"); const wxChar WXDLLEXPORT *wxButtonBarNameStr = wxT("buttonbar");
const wxChar *wxEnhDialogNameStr = wxT("Shell"); const wxChar WXDLLEXPORT *wxEnhDialogNameStr = wxT("Shell");
const wxChar *wxToolBarNameStr = wxT("toolbar"); const wxChar *wxToolBarNameStr = wxT("toolbar");
const wxChar *wxStatusLineNameStr = wxT("status_line"); const wxChar *wxStatusLineNameStr = wxT("status_line");
const wxChar *wxGetTextFromUserPromptStr = wxT("Input Text"); const wxChar *wxGetTextFromUserPromptStr = wxT("Input Text");
const wxChar *wxMessageBoxCaptionStr = wxT("Message"); const wxChar *wxMessageBoxCaptionStr = wxT("Message");
const wxChar *wxFileSelectorPromptStr = wxT("Select a file"); const wxChar *wxFileSelectorPromptStr = wxT("Select a file");
const wxChar *wxFileSelectorDefaultWildcardStr = wxT("*.*"); const wxChar *wxFileSelectorDefaultWildcardStr = wxT("*.*");
const wxChar *wxTreeCtrlNameStr = wxT("treeCtrl"); const wxChar WXDLLEXPORT *wxTreeCtrlNameStr = wxT("treeCtrl");
const wxChar *wxDirDialogNameStr = wxT("wxDirCtrl"); const wxChar *wxDirDialogNameStr = wxT("wxDirCtrl");
const wxChar *wxDirDialogDefaultFolderStr = wxT("/"); const wxChar *wxDirDialogDefaultFolderStr = wxT("/");

Some files were not shown because too many files have changed in this diff Show More