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_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
m4datainstall: preinstall
$(INSTALL) -d $(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
# headers to the installation directory
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
@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 " The installation of wxWindows is finished. On certain"
@echo " platforms (e.g. Linux) you'll now have to run ldconfig"
@@ -493,7 +501,7 @@ uninstall:
@$(RM) $(bindir)/wx@TOOLCHAIN_NAME@-config
@$(RM) $(datadir)/wx/$(VER_MAJMIN)/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)/afm
@-rmdir $(datadir)/wx/$(VER_MAJMIN)
@@ -502,6 +510,7 @@ uninstall:
@list='$(HEADERS)'; for p in $$list; do \
$(RM) $(includedir)/wx/$$p; \
done
# TODO: uninstall the files installed by win32install
@echo " Removing i18n files..."
@-for p in $(WX_LINGUAS); do \
$(RM) $(localedir)/$$p/LC_MESSAGES/wxstd.mo; \
@@ -581,7 +590,8 @@ ALL_GUI_DIST: ALL_DIST
if test -f $(DOCDIR)/$(TOOLKITDIR)/changes.txt ; then \
cp $(DOCDIR)/$(TOOLKITDIR)/changes.txt $(DISTDIR)/CHANGES-$(TOOLKIT).txt ; fi
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/wx
mkdir $(DISTDIR)/include/wx/$(TOOLKITDIR)
@@ -790,6 +800,15 @@ UNIV_DIST: ALL_GUI_DIST
cp $(SRCDIR)/univ/*.cpp $(DISTDIR)/src/univ
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
mkdir $(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.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
cp $(SAMPDIR)/calendar/Makefile.in $(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/*.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
cp $(SAMPDIR)/layout/Makefile.in $(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/*.cpp $(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
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/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/templates
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/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
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)
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 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
@@ -1360,6 +1339,27 @@ AC_PROG_LEX
dnl needed for making link to setup.h
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 Check for headers
dnl ------------------------------------------------------------------------
@@ -1835,15 +1835,24 @@ dnl ------------------------------------------------------------------------
TIFF_INCLUDE=
TIFF_LINK=
TIFF_PREREQ_LINKS=-lm
if test "$wxUSE_LIBTIFF" != "no" ; then
AC_DEFINE(wxUSE_LIBTIFF)
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_LIB(tiff, TIFFError,
TIFF_LINK=" -ltiff",
,
-lm)
$TIFF_PREREQ_LINKS)
)
if test "x$TIFF_LINK" = "x" ; then
@@ -1869,6 +1878,7 @@ dnl search for toolkit (widget sets)
dnl ----------------------------------------------------------------
AFMINSTALL=
WIN32INSTALL=
TOOLKIT=
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__"
RESPROGRAMOBJ="\$(PROGRAM)_resources.o"
dnl install Win32-specific files in "make install"
WIN32INSTALL=win32install
fi
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.
case "${host}" in
*-*-linux* )
mgl_os=linux/gcc/glibc
mgl_os="linux/gcc/glibc*"
;;
*-pc-msdosdjgpp )
mgl_os=dos32/dj2
@@ -5190,6 +5203,7 @@ AC_SUBST(WX_MINOR_VERSION_NUMBER)
AC_SUBST(WX_RELEASE_NUMBER)
AC_SUBST(WX_LIBRARY_NAME_STATIC)
AC_SUBST(WX_LIBRARY_NAME_SHARED)
AC_SUBST(WX_LIBRARY_BASENAME)
AC_SUBST(WX_LIBRARY_IMPORTLIB)
AC_SUBST(WX_TARGET_LIBRARY)
AC_SUBST(WX_LIBRARY_LINK1)
@@ -5225,6 +5239,7 @@ AC_SUBST(WXDEBUG_DEFINE)
dnl toolkit options
AC_SUBST(USE_GUI)
AC_SUBST(AFMINSTALL)
AC_SUBST(WIN32INSTALL)
AC_SUBST(TOOLKIT)
AC_SUBST(TOOLKIT_DIR)
AC_SUBST(TOOLKIT_VPATH)

View File

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

View File

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

View File

@@ -353,7 +353,7 @@ class wxShape: public wxShapeEvtHandler
virtual int GetRegionId(const wxString& name);
// 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
inline wxList& GetRegions() const { return (wxList&) m_regions; }

View File

@@ -22,7 +22,7 @@ class wxShapeTextLine: public wxObject
{
DECLARE_DYNAMIC_CLASS(wxShapeTextLine)
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();
inline double GetX() const { return m_x; }

View File

@@ -25,7 +25,8 @@ class wxOGLConstraintType: public wxObject
{
DECLARE_DYNAMIC_CLASS(wxOGLConstraintType)
public:
wxOGLConstraintType(int type = 0, const wxString& name = "", const wxString& phrase = "");
wxOGLConstraintType(int type = 0, const wxString& name = wxEmptyString,
const wxString& phrase = wxEmptyString);
~wxOGLConstraintType();
public:
@@ -60,8 +61,10 @@ class wxOGLConstraint: public wxObject
{
DECLARE_DYNAMIC_CLASS(wxOGLConstraint)
public:
wxOGLConstraint() { m_xSpacing = 0.0; m_ySpacing = 0.0; m_constraintType = 0; m_constraintName = ""; m_constraintId = 0;
m_constrainingObject = NULL; }
wxOGLConstraint() {
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();

View File

@@ -48,7 +48,7 @@ class wxPseudoMetaFile: public wxObject
// Rotate about the given axis by theta radians from the x axis.
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);
@@ -157,7 +157,7 @@ class wxDrawnShape: public wxRectangleShape
inline double GetRotation() const { return m_rotation; }
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 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)
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);
~wxArrowHead();
wxArrowHead(wxArrowHead& toCopy);
@@ -210,8 +210,9 @@ class wxLineShape: public wxShape
// Add an arrowhead.
wxArrowHead *AddArrow(WXTYPE type, int end = ARROW_POSITION_END,
double arrowSize = 10.0, double xOffset = 0.0, const wxString& name = "",
wxPseudoMetaFile *mf = NULL, long arrowId = -1);
double arrowSize = 10.0, double xOffset = 0.0,
const wxString& name = wxEmptyString,
wxPseudoMetaFile *mf = NULL, long arrowId = -1);
// Add an arrowhead in the position indicated by the reference
// list of arrowheads, which contains all legal arrowheads for this

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -58,51 +58,51 @@ void OGLInitializeConstraintTypes()
wxOGLConstraintTypes = new wxList(wxKEY_INTEGER);
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,
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,
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,
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,
new wxOGLConstraintType(gyCONSTRAINT_RIGHT_OF, "Right of", "right of"));
new wxOGLConstraintType(gyCONSTRAINT_RIGHT_OF, wxT("Right of"), wxT("right of")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_ABOVE,
new wxOGLConstraintType(gyCONSTRAINT_ABOVE, "Above", "above"));
new wxOGLConstraintType(gyCONSTRAINT_ABOVE, wxT("Above"), wxT("above")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_BELOW,
new wxOGLConstraintType(gyCONSTRAINT_BELOW, "Below", "below"));
new wxOGLConstraintType(gyCONSTRAINT_BELOW, wxT("Below"), wxT("below")));
// Alignment
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,
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,
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,
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
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,
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,
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,
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()
@@ -137,7 +137,7 @@ wxOGLConstraint::wxOGLConstraint(int type, wxShape *constraining, wxList& constr
m_constrainingObject = constraining;
m_constraintId = 0;
m_constraintName = "noname";
m_constraintName = wxT("noname");
wxNode *node = constrained.First();
while (node)

View File

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

View File

@@ -292,7 +292,7 @@ void wxDrawnShape::Copy(wxShape& copy)
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);
}
@@ -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))
return NULL;

View File

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

View File

@@ -98,7 +98,7 @@ wxMetaRecord::~wxMetaRecord(void)
if (stringParam) delete[] stringParam;
}
wxXMetaFile::wxXMetaFile(char *file)
wxXMetaFile::wxXMetaFile(const wxChar *file)
{
ok = FALSE;
top = 0.0;
@@ -162,11 +162,11 @@ int AddMetaRecordHandle(wxMetaRecord *record)
return (HandleTableSize - 1);
}
bool wxXMetaFile::ReadFile(char *file)
bool wxXMetaFile::ReadFile(const wxChar *file)
{
HandleTableSize = 0;
FILE *handle = fopen(file, "rb");
FILE *handle = wxFopen(file, wxT("rb"));
if (!handle) return FALSE;
// 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);
char *s = (char *)node->Data();
wxChar *s = (wxChar *)node->Data();
if (!s)
{
// FORCE NEW LINE
@@ -435,7 +435,7 @@ wxStringList *oglFormatText(wxDC& dc, const wxString& text, double width, double
else
{
if (buffer.Length() != 0)
buffer += " ";
buffer += wxT(" ");
buffer += s;
dc.GetTextExtent(buffer, &x, &y);
@@ -782,7 +782,7 @@ void UpdateListBox(wxListBox *item, wxList *list)
wxNode *node = list->First();
while (node)
{
char *s = (char *)node->Data();
wxChar *s = (wxChar *)node->Data();
item->Append(s);
node = node->Next();
}

View File

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

View File

@@ -139,7 +139,6 @@ END_EVENT_TABLE()
ScintillaWX::ScintillaWX(wxStyledTextCtrl* win) {
capturedMouse = false;
wMain = win;
stc = win;
wheelRotation = 0;
@@ -221,16 +220,15 @@ void ScintillaWX::SetTicking(bool on) {
void ScintillaWX::SetMouseCapture(bool on) {
if (on && !capturedMouse)
if (on && !stc->HasCapture())
stc->CaptureMouse();
else if (!on && capturedMouse)
else if (!on && stc->HasCapture())
stc->ReleaseMouse();
capturedMouse = on;
}
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) {
// switch (iMessage) {
// case EM_CANPASTE:
// return CanPaste();
// default:
return ScintillaBase::WndProc(iMessage, wParam, lParam);
// }
// return 0;
switch (iMessage) {
case SCI_CALLTIPSHOW: {
// NOTE: This is copied here from scintilla/src/ScintillaBase.cxx
// because of the little tweak that needs done below. When updating
// new versions double check that this is still needed, and that any
// new code there is copied here too.
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) {
#if wxUSE_UNICODE
char ansiChars[3];
ansiChars[0] = key;
ansiChars[1] = 0;
wxString uniChar(ansiChars, wxConvLocal);
wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(uniChar);
wxChar wszChars[2];
wszChars[0] = key;
wszChars[1] = 0;
wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(wszChars);
AddCharUTF((char*)buf.data(), strlen(buf));
#else
AddChar(key);

View File

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

View File

@@ -407,10 +407,25 @@ wxXmlNode *wxXmlResource::DoFindResource(wxXmlNode *parent,
if ( node->GetType() == wxXML_ELEMENT_NODE &&
(node->GetName() == wxT("object") ||
node->GetName() == wxT("object_ref")) &&
(!classname ||
node->GetPropVal(wxT("class"), wxEmptyString) == classname) &&
node->GetPropVal(wxT("name"), &dummy) && dummy == name )
return node;
node->GetPropVal(wxT("name"), &dummy) && dummy == name )
{
wxString cls(node->GetPropVal(wxT("class"), wxEmptyString));
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 )

View File

@@ -1,9 +1,10 @@
@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 DEST=q:\wxBase-%VER%
set VER=2.3.4
set DEST=t:\wxBase-%VER%
mkdir %DEST%
mkdir %DEST%\include
@@ -26,6 +27,18 @@ chdir %WXWIN%
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\licence.txt %DEST%\LICENCE.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\makeprog.b32 %DEST%\src\makeprog.b32
copy /q src\msw\makebase.b32 %DEST%\src\msw\makebase.b32
copy /q src\*.in %DEST%\src
rem Copy the sample
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\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
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\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\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\winundef.h %DEST%\include\wx\msw\winundef.h
copy /q include\wx\protocol\file.h %DEST%\include\wx\protocol\file.h

View File

@@ -8,11 +8,9 @@ config.sub
configure.in
setup.h.in
install-sh
missing
mkinstalldirs
modules
template.mak
wx-config.in
version-script.in
setup.h_vms
distrib/msw/*.rsp
@@ -28,19 +26,18 @@ distrib/msw/tmake/makeall.bat
distrib/msw/tmake/makeall.sh
distrib/msw/tmake/wxwin.pro
distrib/msw/tmake/tmake.conf
distrib/gtk/*
locale/*.po
locale/*.mo
locale/Makefile
art/*.xpm
art/*.ico
art/*.png
art/motif/*.xpm
art/gtk/*.xpm
docs/readme.txt
docs/readme_vms.txt
docs/install.txt
docs/changes.txt
docs/todo.txt
docs/licence.txt
@@ -48,18 +45,10 @@ docs/licendoc.txt
docs/preamble.txt
docs/gpl.txt
docs/lgpl.txt
docs/symbols.txt
docs/bugs.txt
docs/index.htm
docs/html/*.htm
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/*.png
docs/html/images/*.jpg
docs/tech/*.txt
docs/tech/*.htm
@@ -152,19 +141,9 @@ lib/dummy
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/gs_afm/*.afm
utils/*.txt
utils/make*.*
utils/configure
utils/configure.in

View File

@@ -29,6 +29,339 @@ expandlines()
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=""
if [ "$1" = "" ]
@@ -49,328 +382,84 @@ then
exit
fi
PROGNAME=$0
WXSRC=$1
WXDEST=$2
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 From $1
echo To $2
echo From $WXSRC
echo To $WXDEST
echo Version $WXVER
echo CTRL-C if this is not correct.
read dummy
cd $1
doinit
echo Removing backup files...
rm *~ */*~ */*/*~ */*/*/*~ */*/*/*/*~
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"
if [ "$SPINWXX11" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
dospinwxx11
fi
cd wxWindows-${WXVER}
$TAR xf ../wxAll-${WXVER}.tar
if [ "$SPINWXGTK" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
dospinwxgtk
fi
# Translate all .dsp and .dsw files to DOS format
unix2dos --unix2dos `cat $1/distrib/msw/vc.rsp`
if [ "$SPINWXMAC" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
dospinwxmac
fi
# Copy OS/2 specific configure files
cp $1/distrib/os2/os2-specific.zip docs/os2
if [ "$SPINWXMOTIF" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
dospinwxmotif
fi
# Copy the OS/2 files which probably haven't been copied yet
mkdir include/wx/os2
mkdir src/os2
cp $1/include/wx/os2/*.H include/wx/os2
cp $1/src/os2/*.CPP $1/src/os2/*.I src/os2
if [ "$SPINWXDOCS" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
dospinwxdocs
fi
# Make all OS/2 files lower case
$1/distrib/msw/namedown include/wx/os2/*.H
$1/distrib/msw/namedown src/os2/*.CPP src/os2/*.I
cd ..
rm -f wxAll-${WXVER}.tar
$TAR cf $2/wxAll-${WXVER}.tar wxWindows-${WXVER}/*
rm -f -r wxWindows-${WXVER}
gzip $2/wxAll-${WXVER}.tar
if [ "$SPINWXALL" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
dospinwxall
fi
### 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;
} elsif ( $filetype eq "OS2H" ) {
$wxOS2PMINCLUDE{$filename} = $fileflags;
} elsif ( $filetype eq "MGLH" ) {
$wxMGLINCLUDE{$filename} = $fileflags;
} elsif ( $filetype eq "X11H" ) {
$wxX11INCLUDE{$filename} = $fileflags;
} elsif ( $filetype eq "UnivH" ) {

View File

@@ -30,6 +30,7 @@
# MotifH /include/wx/motif
# MSWH /include/wx/msw
# OS2H /include/wx/os2
# MGLH /include/wx/mgl
# X11H /include/wx/x11
# GenericH /include/wx/generic
# HtmlH /include/wx/html
@@ -1229,6 +1230,28 @@ textctrl.h X11H
toplevel.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
app.h MSWH
bitmap.h MSWH
@@ -1266,7 +1289,7 @@ fontdlg.h MSWH
frame.h MSWH
gauge95.h MSWH
gaugemsw.h MSWH
gccpriv.h MSWH
gccpriv.h MSWH Base
gdiimage.h MSWH
gdiobj.h MSWH
glcanvas.h MSWH

View File

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

View File

@@ -170,6 +170,13 @@ wxThread and related classes:
OTHER CHANGES
=============
2.4.0
-----
wxMSW:
- fixed loss of client data in wxChoice::SetString()
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="#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="#charinframe">Why does my simple program using <tt>EVT_CHAR</tt> doesn't work?</a></li>
</ul>
<hr>
@@ -97,6 +98,17 @@ the image libraries and std C++ lib)."
No, this is not possible. It leads to crashes in GTK+.
<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>
</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
filename is absolute you may use \helpref{Normalize}{wxfilenamenormalize}. There
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.
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}
\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
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}.
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.
\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
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
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,
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
@@ -509,7 +510,7 @@ single string.}
array, any additional ones are the command parameters and the array must be
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}}
\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}}
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
rights (superuser under Unix, {\tt SE\_SHUTDOWN} privelege under Windows NT)
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}}
{\bf NB:} This function is obsolete, please use
{\bf NB:} This function is obsolete, please use
\helpref{wxFileName::SplitPath}{wxfilenamesplitpath} instead.
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}}
{\bf NB:} This function is obsolete, please use
{\bf NB:} This function is obsolete, please use
\helpref{wxFileName::SplitPath}{wxfilenamesplitpath} instead.
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 = ""}}
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}.
\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}}
{\bf NB:} This function is obsolete, please use
{\bf NB:} This function is obsolete, please use
\helpref{wxWindow::FindWindowByLabel}{wxwindowfindwindowbylabel} instead.
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}}
{\bf NB:} This function is obsolete, please use
{\bf NB:} This function is obsolete, please use
\helpref{wxWindow::FindWindowByName}{wxwindowfindwindowbyname} instead.
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}}
{\bf NB:} This function is obsolete, please use
{\bf NB:} This function is obsolete, please use
\helpref{wxMenuItem::GetLabelFromText}{wxmenuitemgetlabelfromtext} instead.
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"}}
{\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.
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"}}
{\bf NB:} This function is now obsolete, please use
{\bf NB:} This function is now obsolete, please use
\helpref{wxLogFatalError}{wxlogfatalerror} instead.
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
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
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
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
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
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}}
This macro results in a
This macro results in a
\helpref{compile time assertion failure}{wxcompiletimeassert} if the size
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
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
sometimes desirable to test them at the compile time.
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
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.
\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}}
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
internally defined by this macro to avoid getting the compilation errors
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
\helpref{wxArrayString}{wxarraystring} class.
In the documentation of the list classes below, you should replace wxNode with
wxListName::Node and wxObject with the list element type (i.e. the first
parameter of WX\_DECLARE\_LIST) for the template lists.
In the documentation of the list classes below, the template notations are
used even though these classes are not really templates at all -- but it helps
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}
@@ -138,9 +140,9 @@ members for getting to the next or previous node.
\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,
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}
\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
\rtfsp{\it object} in the node. The last two forms store a key with the object for
later retrieval using the key. The new node is returned in each case.
Appends a new \helpref{wxNode}{wxnode} to the end of the list and puts a
pointer to the \rtfsp{\it object} in the node. The last two forms store a key
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.
@@ -187,22 +190,26 @@ a node whenever the node is destroyed. The default is {\tt FALSE}.
\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.
\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
{\tt TRUE} if successful. The application must delete the actual object separately.
\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.
@@ -214,37 +221,37 @@ Returns the number of elements in the list.
\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).
\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).
\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}
is not found in the list.
\membersection{wxList::Insert}\label{wxlistinsert}
\func{wxNode *}{Insert}{\param{wxObject *}{object}}
\func{wxNode<T> *}{Insert}{\param{T *}{object}}
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
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
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}.
@@ -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
\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.
\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.
@@ -271,7 +278,7 @@ Returns the node associated with {\it object} if it is in the list, NULL otherwi
\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.

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
...
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}

View File

@@ -26,7 +26,7 @@
%\special{!/@scaleunit 1 def}
\parskip=10pt
\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{\\$$\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{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.}

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
derived classes. You should never use wxNodeBase class directly because it
works with untyped (void *) data and this is unsafe. Use wxNode-derived classes
which are defined by WX\_DECLARE\_LIST and WX\_DEFINE\_LIST macros instead as
described in \helpref{wxList}{wxlist} documentation (see example there). wxNode
is defined for compatibility as wxNodeBase containing "wxObject *" pointer, but
usage of this class is deprecated.
wxNodeBase is the node structure used in linked lists (see
\helpref{wxList}{wxlist}) and derived classes. You should never use wxNodeBase
class directly, however, because it works with untyped ({\tt void *}) data and
this is unsafe. Use wxNodeBase-derived classes which are automatically defined
by WX\_DECLARE\_LIST and WX\_DEFINE\_LIST macros instead as described in
\helpref{wxList}{wxlist} documentation (see example there). Also note that
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}
@@ -22,32 +29,32 @@ None.
\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.
\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
set when the node was created).
\membersection{wxNodeBase::IndexOf}
\membersection{wxNode<T>::IndexOf}
\func{int}{IndexOf}{\void}

View File

@@ -1,7 +1,8 @@
\section{\class{wxTreeCtrl}}\label{wxtreectrl}
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}.

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
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
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
\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
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
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
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
platform can implement its native behaviour or just ignore the event if nothing needs to be
done.
%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.
%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
%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
%done.
\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)
----------------------------------------------
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
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
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
3. put the Interfaces and Libraries Folder into the MacOS Support folder and replace older versions
4. remove from the MacOS Support folder the separate OpenTransport folder
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
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.
4. remove from the MacOS Support folder the separate OpenTransport folder.
5. open the file MacOS Support:MacHeaders:MacHeaders.c and add the line
#include <ControlDefinitions.h>
after the
#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
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 Runtimes
(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
include/wx/setup.h
If you don't want OpenGl support, remove the file "glcanvas.cpp" from the
project before compilation and leave the setting at 0
If you don't want OpenGl support, set wxUSE_OPENGL to 0 (the
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
--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):
- *M5.xml -> *M5.mcp for CodeWarrior 5.3
- *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
following projects (for 5.3)
:src:wxxindowsM5.mcp
following projects (for CW 5.3, similar process for CW 7):
:src:wxwindowsM5.mcp
:src:png:pngM5.mcp
:src:tiff:tiffM5.mcp
:src:jpeg:jpegM5.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
-----------------
@@ -125,3 +151,4 @@ Missing PLStringFuncsLib
------------------------
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
For more information, please see changes.txt, todo.txt, and the
For more information, please see install.txt, todo.txt, and the
manuals.
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.
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
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,
Stefan Csomor
Stefan Csomor

View File

@@ -28,6 +28,18 @@ comp.windows.x
comp.windows.x.announce
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:
-----------------------

View File

@@ -13,7 +13,7 @@ the other Unix-based ports including wxMotif, wxX11 and wxBase.
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
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
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"
(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.

View File

@@ -23,95 +23,96 @@
// of new/delete
// ----------------------------------------------------------------------------
class wxCharBuffer
{
public:
wxCharBuffer(const char *str)
: m_str(str ? strdup(str) : NULL)
{
}
#define DEFINE_BUFFER(classname, chartype, strdupfunc) \
class classname \
{ \
public: \
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)
: 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;
};
DEFINE_BUFFER(wxCharBuffer, char, strdup);
#if wxUSE_WCHAR_T
class wxWCharBuffer
inline wchar_t *wxWcsdupReplacement(const wchar_t *wcs)
{
public:
wxWCharBuffer(const wchar_t *wcs)
: m_wcs((wchar_t *)NULL)
{
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';
}
const size_t siz = (wxWcslen(wcs) + 1)*sizeof(wchar_t);
wchar_t *wcsCopy = (wchar_t *)malloc(siz);
memcpy(wcsCopy, wcs, siz);
return wcsCopy;
}
// no need to check for NULL, free() does it
~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;
};
DEFINE_BUFFER(wxWCharBuffer, wchar_t, wxWcsdupReplacement);
#endif // wxUSE_WCHAR_T
#undef DEFINE_BUFFER
#if wxUSE_UNICODE
#define wxMB2WXbuf wxWCharBuffer
#define wxWX2MBbuf wxCharBuffer

View File

@@ -218,9 +218,11 @@ public:
#elif defined(__WXMAC__)
void* m_macPageFormat ;
void* m_macPrintSettings ;
void* m_macPrintSession ;
#endif
private:
int m_printNoCopies;
int m_printOrientation;
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
// 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,
const wxChar *ErrFile,
int ErrLine);

View File

@@ -180,6 +180,13 @@ public:
// remove all items from the m_Handlers list
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:
wxString m_Path;
// the path (location) we are currently in

View File

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

View File

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

View File

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

View File

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

View File

@@ -208,6 +208,13 @@
// Recommended setting: 1 (always)
#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
// (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

View File

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

View File

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

View File

@@ -209,13 +209,6 @@
// Recommended setting: 1 (always)
#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
#define wxUSE_LOGWINDOW 1
@@ -225,6 +218,13 @@
// Recommended setting: 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
// (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

View File

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

View File

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

View File

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

View File

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

View File

@@ -370,7 +370,7 @@ WXDLLEXPORT bool wxYield();
WXDLLEXPORT bool wxYieldIfNeeded();
// 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
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_MACAU zh_MO LANG_CHINESE SUBLANG_CHINESE_MACAU "Chinese (Macau)"
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_CROATIAN hr_HR LANG_CROATIAN SUBLANG_DEFAULT "Croatian"
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
#define TEST_ALL
//#define TEST_ALL
#ifdef TEST_ALL
#define TEST_ARRAYS
#define TEST_CHARSET
@@ -93,7 +93,7 @@
#undef TEST_ALL
static const bool TEST_ALL = TRUE;
#else
#define TEST_PRINTF
#define TEST_DATETIME
static const bool TEST_ALL = FALSE;
#endif
@@ -1766,7 +1766,7 @@ static void TestMimeFilename()
wxFileType::MessageParameters(fname, _T(""))) )
cmd = _T("<no command available>");
else
cmd = wxString('"') + cmd + '"';
cmd = wxString(_T('"')) + cmd + _T('"');
wxPrintf(_T("To open %s (%s) do %s.\n"),
fname.c_str(), desc.c_str(), cmd.c_str());
@@ -2169,9 +2169,9 @@ static void TestLongLongComparison()
#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++ )
{
@@ -2192,8 +2192,7 @@ static void TestLongLongPrintf()
#ifdef wxLongLongFmtSpec
wxLongLong ll = wxLL(0x1234567890abcdef);
wxString s = wxString::Format(_T("%") wxLongLongFmtSpec _T("x"),
ll.GetValue());
wxString s = wxString::Format(_T("%") wxLongLongFmtSpec _T("x"), ll);
wxPrintf(_T("0x1234567890abcdef -> %s (%s)\n"),
s.c_str(), s == _T("1234567890abcdef") ? _T("ok") : _T("ERROR"));
#else // !wxLongLongFmtSpec
@@ -2728,7 +2727,7 @@ I am ready for my first lesson today.");
{
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);
if (wxStrcmp (buf, _T("40000000000")) != 0)
@@ -3171,7 +3170,7 @@ static void TestFtpWuFtpd()
}
else
{
size_t size = in->GetSize();
size_t size = in->StreamSize();
wxPrintf(_T("Reading file %s (%u bytes)..."), filename, size);
wxChar *data = new wxChar[size];
@@ -3254,7 +3253,7 @@ static void TestFtpDownload()
}
else
{
size_t size = in->GetSize();
size_t size = in->StreamSize();
wxPrintf(_T("Reading file %s (%u bytes)..."), filename, size);
fflush(stdout);
@@ -3873,7 +3872,7 @@ static void TestUnicodeToFromAscii()
#include "wx/encconv.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, 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
};
#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()
{
@@ -3892,30 +3920,33 @@ static void TestUtf8()
char buf[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."));
}
else
{
wxCSConv conv(_T("koi8-r"));
if ( conv.WC2MB(buf, wbuf, 0 /* not needed wcslen(wbuf) */) <= 0 )
const Utf8Data& u8d = utf8data[n];
if ( wxConvUTF8.MB2WC(wbuf, (const char *)u8d.text,
WXSIZEOF(wbuf)) == (size_t)-1 )
{
wxPuts(_T("ERROR: conversion to KOI8-R failed."));
wxPuts(_T("ERROR: UTF-8 decoding failed."));
}
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 )
{
wxPuts(_T("ERROR: conversion to UTF-8 failed."));
}
else
{
wxPrintf(_T("The string in UTF-8: %s\n"), buf);
wxString s(wxConvUTF8.cMB2WC((const char *)u8d.text), *wxConvCurrent);
if ( s.empty() )
s = _T("<< conversion failed >>");
wxPrintf(_T("String in current cset: %s\n"), s.c_str());
}
wxPuts(_T(""));
@@ -3928,7 +3959,8 @@ static void TestEncodingConverter()
// using wxEncodingConverter should give the same result as above
char buf[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."));
}
@@ -3937,7 +3969,7 @@ static void TestEncodingConverter()
wxEncodingConverter ec;
ec.Init(wxFONTENCODING_UNICODE, wxFONTENCODING_KOI8);
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(""));
@@ -4594,44 +4626,40 @@ for n in range(20):
wmon2 = dt.GetWeekOfMonth(wxDateTime::Sunday_First),
dnum = dt.GetDayOfYear();
wxPrintf(_T("%s: the day number is %d"), d.FormatDate().c_str(), dnum);
if ( dnum == wn.dnum )
{
wxPrintf(_T(" (ok)"));
}
else
wxPrintf(_T("%s: the day number = %d"), d.FormatDate().c_str(), dnum);
if ( dnum != wn.dnum )
{
wxPrintf(_T(" (ERROR: should be %d)"), wn.dnum);
}
wxPrintf(_T(", week in month is %d"), wmon);
if ( wmon == wn.wmon )
{
wxPrintf(_T(" (ok)"));
}
else
wxPrintf(_T(", week in month = %d"), wmon);
if ( wmon != wn.wmon )
{
wxPrintf(_T(" (ERROR: should be %d)"), wn.wmon);
}
wxPrintf(_T(" or %d"), wmon2);
if ( wmon2 == wn.wmon2 )
{
wxPrintf(_T(" (ok)"));
}
else
wxPrintf(_T(" (%d)"), wmon2);
if ( wmon2 != wn.wmon2 )
{
wxPrintf(_T(" (ERROR: should be %d)"), wn.wmon2);
}
wxPrintf(_T(", week in year is %d"), week);
if ( week == wn.week )
wxPrintf(_T(", week in year = %d"), 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();
TestBitOperations();
TestLongLongComparison();
TestLongLongPrint();
TestLongLongToString();
TestLongLongPrintf();
}
#endif // TEST_LONGLONG
@@ -6531,7 +6560,8 @@ int main(int argc, char **argv)
TestTimeZoneBug();
}
TestTimeFormat();
TestTimeWNumber();
if ( TEST_INTERACTIVE )
TestDateTimeInteractive();

View File

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

View File

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

View File

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

View File

@@ -146,7 +146,7 @@ wxLibrary::wxLibrary(wxDllType handle)
m_handle = handle;
// 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.
if (get_first)
PrepareClasses(get_first());

View File

@@ -173,7 +173,8 @@ wxFSFile* wxLocalFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxString&
{
// location has Unix path separators
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()))
return (wxFSFile*) NULL;
@@ -417,7 +418,61 @@ void wxFileSystem::CleanUpHandlers()
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:

View File

@@ -89,7 +89,9 @@ wxFSFile* wxZipFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxString& l
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() )
{
return new wxFSFile(s,

View File

@@ -676,31 +676,32 @@ bool wxLocale::Init(int language, int flags)
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
wxMB2WXbuf tmp = wxSetlocale(LC_ALL, locale.Mid(0,2));
retloc = tmp;
retloc = wxSetlocale(LC_ALL, locale.Mid(0,2));
}
if ((const wxChar*)retloc == NULL)
if ( !retloc )
{
// Some C libraries (namely glibc) still use old ISO 639,
// so will translate the abbrev for them
wxString mid = locale.Mid(0,2);
if (mid == wxT("he")) locale = wxT("iw") + locale.Mid(3);
else if (mid == wxT("id")) locale = wxT("in") + locale.Mid(3);
else if (mid == wxT("yi")) locale = wxT("ji") + locale.Mid(3);
wxMB2WXbuf tmp = wxSetlocale(LC_ALL, locale);
retloc = tmp;
if (mid == wxT("he"))
locale = wxT("iw") + locale.Mid(3);
else if (mid == wxT("id"))
locale = wxT("in") + locale.Mid(3);
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.)
// Some C libraries don't like xx_YY form and require xx only
wxMB2WXbuf tmp = wxSetlocale(LC_ALL, locale.Mid(0,2));
retloc = tmp;
retloc = wxSetlocale(LC_ALL, locale.Mid(0,2));
}
if ((const wxChar*)retloc == NULL)
if ( !retloc )
{
wxLogError(wxT("Cannot set locale to '%s'."), locale.c_str());
return FALSE;
@@ -720,8 +721,7 @@ bool wxLocale::Init(int language, int flags)
SORT_DEFAULT);
if (SetThreadLocale(lcid))
{
wxMB2WXbuf tmp = wxSetlocale(LC_ALL, wxEmptyString);
retloc = tmp;
retloc = wxSetlocale(LC_ALL, wxEmptyString);
}
else
{
@@ -745,24 +745,22 @@ bool wxLocale::Init(int language, int flags)
}
else
{
wxMB2WXbuf tmp = wxSetlocale(LC_ALL, locale);
retloc = tmp;
retloc = wxSetlocale(LC_ALL, locale);
}
}
}
}
else
{
wxMB2WXbuf tmp = wxSetlocale(LC_ALL, wxEmptyString);
retloc = tmp;
retloc = wxSetlocale(LC_ALL, wxEmptyString);
}
if ((const wxChar*)retloc == NULL)
if ( !retloc )
{
wxLogError(wxT("Cannot set locale to language %s."), name.c_str());
return FALSE;
}
#elif defined(__WXMAC__)
#elif defined(__WXMAC__) || defined(__WXPM__)
wxMB2WXbuf retloc = wxSetlocale(LC_ALL , wxEmptyString);
#else
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_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_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_CROATIAN, "hr_HR", LANG_CROATIAN , SUBLANG_DEFAULT , "Croatian")
LNG(wxLANGUAGE_CZECH, "cs_CZ", LANG_CZECH , SUBLANG_DEFAULT , "Czech")

View File

@@ -58,7 +58,7 @@
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;
}
@@ -198,7 +198,9 @@ bool wxStreamBuffer::FillBuffer()
{
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);
if ( !count )
@@ -259,7 +261,7 @@ void wxStreamBuffer::GetFromBuffer(void *buffer, size_t size)
void wxStreamBuffer::PutToBuffer(const void *buffer, size_t size)
{
size_t left = GetBytesLeft();
if ( size > left )
{
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
m_stream->Reset();
}
size_t ret = 0;
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
// chunks as this will (hopefully) always work (VZ)
if ( size > left && m_fixed )
{
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
m_stream->m_lastcount = ret;
}
return ret;
}
@@ -736,7 +738,7 @@ size_t wxInputStream::GetWBack(void *buf, size_t size)
toget = size;
}
// copy the data from the cache
// copy the data from the cache
memcpy(buf, m_wback + 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
when seeking in wxFromCurrent mode, else it would invalidate
anyway... */
if (m_wback)
{
wxLogDebug( wxT("Seeking in stream which has data written back to it.") );
free(m_wback);
m_wback = NULL;
m_wbacksize = 0;
@@ -1108,13 +1110,13 @@ off_t wxBufferedInputStream::SeekI(off_t pos, wxSeekMode mode)
if (m_wback)
{
wxLogDebug( wxT("Seeking in stream which has data written back to it.") );
free(m_wback);
m_wback = NULL;
m_wbacksize = 0;
m_wbackcur = 0;
}
return m_i_streambuf->Seek(pos, mode);
}
@@ -1124,7 +1126,7 @@ off_t wxBufferedInputStream::TellI() const
if (pos != wxInvalidOffset)
pos -= (m_wbacksize - m_wbackcur);
return pos;
}

View File

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

View File

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

View File

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

View File

@@ -3835,6 +3835,8 @@ void wxGrid::Init()
// init attr cache
m_attrCache.row = -1;
m_attrCache.col = -1;
m_attrCache.attr = NULL;
// TODO: something better than this ?
//
@@ -8638,13 +8640,16 @@ void wxGrid::ClearAttrCache()
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->m_attrCache.row = row;
self->m_attrCache.col = col;
self->m_attrCache.attr = attr;
wxSafeIncRef(attr);
self->ClearAttrCache();
self->m_attrCache.row = row;
self->m_attrCache.col = col;
self->m_attrCache.attr = attr;
wxSafeIncRef(attr);
}
}
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 g = 0.0;
@@ -441,7 +441,7 @@ void wxGLCanvas::SetCurrent()
m_glContext->SetCurrent();
}
void wxGLCanvas::SetColour( const char *colour )
void wxGLCanvas::SetColour( const wxChar *colour )
{
if (m_glContext)
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 */
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)
str << wxT('_');
@@ -149,6 +156,7 @@ static wxString wxReplaceUnderscore( const wxString& title )
str << *pc;
}
++pc;
}
return str;
}
@@ -577,10 +585,9 @@ wxString wxMenuBar::GetLabelTop( size_t pos ) const
wxString text( menu->GetTitle() );
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
// wxWindows - skip both of them
// '_' is the escape character for GTK+
continue;
}
@@ -789,12 +796,6 @@ wxString wxMenuItemBase::GetLabelFromText(const wxString& text)
}
#endif
if ( *pc == wxT('&') )
{
// wxMSW escapes &
continue;
}
label += *pc;
}
@@ -848,13 +849,18 @@ void wxMenuItem::DoSetText( const wxString& str )
// '\t' is the deliminator indicating a hot key
m_text.Empty();
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('_');
}
#if GTK_CHECK_VERSION(2, 0, 0)
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 */
}
#endif
else
else {
m_text << *pc;
}
++pc;
}
m_hotKey = wxT("");
if(*pc == wxT('\t'))
@@ -957,9 +965,9 @@ wxString wxMenuItem::GetFactoryPath() const
for ( const wxChar *pc = m_text.c_str(); *pc; pc++ )
{
if ( *pc == wxT('_') || *pc == wxT('&') )
if ( *pc == wxT('_') )
{
// remove '_' and '&' unconditionally
// remove '_' unconditionally
continue;
}

View File

@@ -2267,7 +2267,7 @@ wxWindow *wxWindowBase::FindFocus()
// VZ: Robert commented the code using out so it generates warnings: should
// be either fixed or removed completely
#if 0
//** #if 0
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);
}
#endif // 0
//** #endif // 0
//-----------------------------------------------------------------------------
// "realize" from m_widget
@@ -2928,9 +2928,9 @@ void wxWindowGTK::ConnectWidget( GtkWidget *widget )
GTK_SIGNAL_FUNC(gtk_window_leave_callback), (gpointer)this );
// This keeps crashing on me. RR.
//
// gtk_signal_connect( GTK_OBJECT(widget), "destroy",
// GTK_SIGNAL_FUNC(gtk_window_destroy_callback), (gpointer)this );
//**
gtk_signal_connect( GTK_OBJECT(widget), "destroy",
GTK_SIGNAL_FUNC(gtk_window_destroy_callback), (gpointer)this );
}
bool wxWindowGTK::Destroy()
@@ -4591,10 +4591,8 @@ wxPoint wxGetMousePosition()
int 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 rootReturn, childReturn;
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 g = 0.0;
@@ -441,7 +441,7 @@ void wxGLCanvas::SetCurrent()
m_glContext->SetCurrent();
}
void wxGLCanvas::SetColour( const char *colour )
void wxGLCanvas::SetColour( const wxChar *colour )
{
if (m_glContext)
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 */
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)
str << wxT('_');
@@ -149,6 +156,7 @@ static wxString wxReplaceUnderscore( const wxString& title )
str << *pc;
}
++pc;
}
return str;
}
@@ -577,10 +585,9 @@ wxString wxMenuBar::GetLabelTop( size_t pos ) const
wxString text( menu->GetTitle() );
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
// wxWindows - skip both of them
// '_' is the escape character for GTK+
continue;
}
@@ -789,12 +796,6 @@ wxString wxMenuItemBase::GetLabelFromText(const wxString& text)
}
#endif
if ( *pc == wxT('&') )
{
// wxMSW escapes &
continue;
}
label += *pc;
}
@@ -848,13 +849,18 @@ void wxMenuItem::DoSetText( const wxString& str )
// '\t' is the deliminator indicating a hot key
m_text.Empty();
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('_');
}
#if GTK_CHECK_VERSION(2, 0, 0)
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 */
}
#endif
else
else {
m_text << *pc;
}
++pc;
}
m_hotKey = wxT("");
if(*pc == wxT('\t'))
@@ -957,9 +965,9 @@ wxString wxMenuItem::GetFactoryPath() const
for ( const wxChar *pc = m_text.c_str(); *pc; pc++ )
{
if ( *pc == wxT('_') || *pc == wxT('&') )
if ( *pc == wxT('_') )
{
// remove '_' and '&' unconditionally
// remove '_' unconditionally
continue;
}

View File

@@ -2267,7 +2267,7 @@ wxWindow *wxWindowBase::FindFocus()
// VZ: Robert commented the code using out so it generates warnings: should
// be either fixed or removed completely
#if 0
//** #if 0
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);
}
#endif // 0
//** #endif // 0
//-----------------------------------------------------------------------------
// "realize" from m_widget
@@ -2928,9 +2928,9 @@ void wxWindowGTK::ConnectWidget( GtkWidget *widget )
GTK_SIGNAL_FUNC(gtk_window_leave_callback), (gpointer)this );
// This keeps crashing on me. RR.
//
// gtk_signal_connect( GTK_OBJECT(widget), "destroy",
// GTK_SIGNAL_FUNC(gtk_window_destroy_callback), (gpointer)this );
//**
gtk_signal_connect( GTK_OBJECT(widget), "destroy",
GTK_SIGNAL_FUNC(gtk_window_destroy_callback), (gpointer)this );
}
bool wxWindowGTK::Destroy()
@@ -4591,10 +4591,8 @@ wxPoint wxGetMousePosition()
int 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 rootReturn, childReturn;
int rootX, rootY, winX, winY;

View File

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

View File

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

View File

@@ -17,6 +17,8 @@
#include "wx/string.h"
#include "wx/wave.h"
#if wxUSE_WAVE
#ifdef __WXMAC__
#include "wx/mac/private.h"
#ifndef __DARWIN__
@@ -57,7 +59,7 @@ bool wxWave::Create(const wxString& fileName, bool isResource)
ret = true;
else
{ /*
if (sndChan)
if (sndChan)
{ // we're playing
FSClose(SndRefNum);
SndRefNum = 0;
@@ -66,7 +68,7 @@ bool wxWave::Create(const wxString& fileName, bool isResource)
sndChan = 0;
KillTimer(0,timerID);
}
if (!lpSnd)
return true;
@@ -81,14 +83,14 @@ bool wxWave::Create(const wxString& fileName, bool isResource)
sndChan->qLength = 128;
if (noErr != SndNewChannel (&sndChan, sampledSynth, initMono | initNoInterp, 0))
if (noErr != SndNewChannel (&sndChan, sampledSynth, initMono | initNoInterp, 0))
{
free(sndChan);
sndChan = 0;
return false;
}
if (!(SndRefNum = MacOpenSndFile ((char *)lpSnd)))
if (!(SndRefNum = MacOpenSndFile ((char *)lpSnd)))
{
SndDisposeChannel(sndChan, TRUE);
free(sndChan);
@@ -102,7 +104,7 @@ bool wxWave::Create(const wxString& fileName, bool isResource)
if (fdwSound & SND_ASYNC)
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);
SndRefNum = 0;
@@ -112,11 +114,11 @@ bool wxWave::Create(const wxString& fileName, bool isResource)
return false;
}
if (async)
if (async)
{ // haven't finish yet
timerID = SetTimer(0, 0, 250, TimerCallBack);
}
else
}
else
{
FSClose (SndRefNum);
SndRefNum = 0;
@@ -125,7 +127,7 @@ bool wxWave::Create(const wxString& fileName, bool isResource)
sndChan = 0;
}*/
}
return ret;
}
@@ -135,8 +137,8 @@ bool wxWave::Play(bool async, bool looped) const
{
char lpSnd[32];
bool ret = false;
if (m_isResource)
if (m_isResource)
{
#if TARGET_CARBON
c2pstrcpy((unsigned char *)lpSnd, m_sndname);
@@ -145,13 +147,13 @@ bool wxWave::Play(bool async, bool looped) const
c2pstr((char *) lpSnd);
#endif
SndListHandle hSnd;
hSnd = (SndListHandle) GetNamedResource('snd ',(const unsigned char *) lpSnd);
if ((hSnd != NULL) && (SndPlay((SndChannelPtr)m_sndChan, (SndListHandle) hSnd, async) == noErr))
ret = true;
}
}
return ret;
}
@@ -159,7 +161,7 @@ bool wxWave::Play(bool async, bool looped) const
bool wxWave::FreeData()
{
bool ret = false;
if (m_isResource)
{
m_sndname.Empty();
@@ -167,9 +169,9 @@ bool wxWave::FreeData()
}
else
{
//TODO,
//TODO,
}
return ret;
}
@@ -188,7 +190,7 @@ bool wxWave::FreeData()
// first, get the volume reference number for the file. Start by
// making a Pstring with just the volume name
strcpy ((char *) name, path);
if (c = strchr ((char *) name, ':'))
if (c = strchr ((char *) name, ':'))
{
c++;
*c = '\0';
@@ -220,7 +222,7 @@ bool wxWave::FreeData()
void TimerCallBack(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime)
{
if(!sndChan)
if(!sndChan)
{
KillTimer(0,timerID);
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) ;
#else
#if PM_USE_SESSION_APIS
PMPrintSession macPrintSession = kPMNoReference;
Boolean accepted;
err = ::UMAPrOpen(&macPrintSession) ;
if ( err == noErr )
{
m_printDialogData.ConvertToNative() ;
@@ -123,13 +120,13 @@ int wxPrintDialog::ShowModal()
if ((err == noErr) &&
(m_printDialogData.GetPrintData().m_macPageFormat != kPMNoPageFormat))
{
err = PMSessionDefaultPageFormat((PMPrintSession)macPrintSession,
err = PMSessionDefaultPageFormat((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
(PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat);
}
}
else
{
err = PMSessionValidatePageFormat((PMPrintSession)macPrintSession,
err = PMSessionValidatePageFormat((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
(PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat,
kPMDontWantBoolean);
}
@@ -145,13 +142,13 @@ int wxPrintDialog::ShowModal()
if ((err == noErr) &&
(m_printDialogData.GetPrintData().m_macPrintSettings != kPMNoPrintSettings))
{
err = PMSessionDefaultPrintSettings((PMPrintSession)macPrintSession,
err = PMSessionDefaultPrintSettings((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
(PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings);
}
}
else
{
err = PMSessionValidatePrintSettings((PMPrintSession)macPrintSession,
err = PMSessionValidatePrintSettings((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
(PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings,
kPMDontWantBoolean);
}
@@ -165,7 +162,7 @@ int wxPrintDialog::ShowModal()
// Display the Print dialog.
if (err == noErr)
{
err = PMSessionPrintDialog((PMPrintSession)macPrintSession,
err = PMSessionPrintDialog((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
(PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings,
(PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat,
&accepted);
@@ -186,7 +183,6 @@ int wxPrintDialog::ShowModal()
wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ;
dialog.ShowModal();
}
::UMAPrClose(&macPrintSession) ;
#else
#pragma warning "TODO: Printing for carbon without session apis"
#endif
@@ -256,11 +252,8 @@ int wxPageSetupDialog::ShowModal()
::UMAPrClose(NULL) ;
#else
#if PM_USE_SESSION_APIS
PMPrintSession macPrintSession = kPMNoReference;
Boolean accepted;
err = ::UMAPrOpen(&macPrintSession) ;
if ( err == noErr )
{
m_pageSetupData.ConvertToNative() ;
@@ -275,13 +268,13 @@ int wxPageSetupDialog::ShowModal()
if ((err == noErr) &&
(m_pageSetupData.GetPrintData().m_macPageFormat != kPMNoPageFormat))
{
err = PMSessionDefaultPageFormat((PMPrintSession)macPrintSession,
err = PMSessionDefaultPageFormat((PMPrintSession)m_pageSetupData.GetPrintData().m_macPrintSession,
(PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat);
}
}
else
{
err = PMSessionValidatePageFormat((PMPrintSession)macPrintSession,
err = PMSessionValidatePageFormat((PMPrintSession)m_pageSetupData.GetPrintData().m_macPrintSession,
(PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat,
kPMDontWantBoolean);
}
@@ -289,7 +282,7 @@ int wxPageSetupDialog::ShowModal()
// Display the Page Setup dialog.
if (err == noErr)
{
err = PMSessionPageSetupDialog((PMPrintSession)macPrintSession,
err = PMSessionPageSetupDialog((PMPrintSession)m_pageSetupData.GetPrintData().m_macPrintSession,
(PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat,
&accepted);
if ((err == noErr) && !accepted)
@@ -312,7 +305,6 @@ int wxPageSetupDialog::ShowModal()
wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ;
dialog.ShowModal();
}
::UMAPrClose(&macPrintSession) ;
#else
#pragma warning "TODO: Printing for carbon without session apis"
#endif

View File

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

View File

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

View File

@@ -473,6 +473,27 @@ ALL_HEADERS = \
xpmdecod.h \
zipstrm.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/calctrl.h \
generic/caret.h \
@@ -537,7 +558,6 @@ ALL_HEADERS = \
protocol/protocol.h
COMMONOBJS = \
parser.o \
appcmn.o \
artprov.o \
artstd.o \

View File

@@ -129,7 +129,8 @@ static void wxCaptureScreenshot(bool activeWindowOnly)
g_displayDC->savePNGFromDC(screenshot.mb_str(),
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 ) );
int x = -1;
if( cbs->event->type == ButtonRelease )
if( NULL != cbs->event && cbs->event->type == ButtonRelease )
{
XButtonEvent* evt = (XButtonEvent*)cbs->event;

View File

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

View File

@@ -193,9 +193,31 @@ int wxChoice::FindString(const wxString& s) const
void wxChoice::SetString(int n, const wxString& s)
{
wxCHECK_RET( (n>=0)&&(n<GetCount()), wxT("invalid item index in wxChoice::SetString") );
SendMessage(GetHwnd(), CB_DELETESTRING, n, 0);
SendMessage(GetHwnd(), CB_INSERTSTRING, n, (LONG)s.c_str() );
wxCHECK_RET( n >= 0 && n < GetCount(),
wxT("invalid item index in wxChoice::SetString") );
// 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
@@ -228,7 +250,8 @@ wxString wxChoice::GetString(int n) const
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"));
}

View File

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

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