diff --git a/Makefile.in b/Makefile.in
index b31ac68e4f..c9f05f85f4 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -2863,9 +2863,61 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION__GUI_HDR = \
wx/gtk1/tglbtn.h \
wx/gtk1/treectrl.h
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_@GUI_HDR = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION__GUI_HDR)
-@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@GUI_HDR \
-@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@ = wx/generic/fontdlgg.h \
-@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@ wx/gtk/gnome/gprint.h
+COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_GUI_HDR = \
+ wx/generic/fdrepdlg.h \
+ wx/generic/filepickerg.h \
+ wx/generic/listctrl.h \
+ wx/generic/statusbr.h \
+ wx/gtk/accel.h \
+ wx/gtk/anybutton.h \
+ wx/gtk/bmpbuttn.h \
+ wx/gtk/button.h \
+ wx/gtk/checkbox.h \
+ wx/gtk/checklst.h \
+ wx/gtk/chkconf.h \
+ wx/gtk/collpane.h \
+ wx/gtk/colordlg.h \
+ wx/gtk/choice.h \
+ wx/gtk/combobox.h \
+ wx/gtk/control.h \
+ wx/gtk/clrpicker.h \
+ wx/gtk/dialog.h \
+ wx/gtk/dirdlg.h \
+ wx/gtk/filectrl.h \
+ wx/gtk/filedlg.h \
+ wx/gtk/fontpicker.h \
+ wx/gtk/filepicker.h \
+ wx/gtk/fontdlg.h \
+ wx/gtk/frame.h \
+ wx/gtk/gauge.h \
+ wx/gtk/gnome/gvfs.h \
+ wx/gtk/infobar.h \
+ wx/gtk/listbox.h \
+ wx/gtk/mdi.h \
+ wx/gtk/menu.h \
+ wx/gtk/menuitem.h \
+ wx/gtk/msgdlg.h \
+ wx/gtk/notebook.h \
+ wx/gtk/print.h \
+ wx/gtk/radiobox.h \
+ wx/gtk/radiobut.h \
+ wx/gtk/scrolbar.h \
+ wx/gtk/scrolwin.h \
+ wx/gtk/slider.h \
+ wx/gtk/spinbutt.h \
+ wx/gtk/spinctrl.h \
+ wx/gtk/statbmp.h \
+ wx/gtk/statbox.h \
+ wx/gtk/statline.h \
+ wx/gtk/stattext.h \
+ wx/gtk/toolbar.h \
+ wx/gtk/textctrl.h \
+ wx/gtk/textentry.h \
+ wx/gtk/tglbtn.h \
+ wx/gtk/treeentry_gtk.h \
+ wx/generic/fontdlgg.h \
+ wx/gtk/gnome/gprint.h
+@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@GUI_HDR = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_GUI_HDR)
COND_TOOLKIT_GTK_TOOLKIT_VERSION_3_GUI_HDR = \
wx/generic/fdrepdlg.h \
wx/generic/filepickerg.h \
diff --git a/build/bakefiles/common.bkl b/build/bakefiles/common.bkl
index 4747f48f1a..db792b410b 100644
--- a/build/bakefiles/common.bkl
+++ b/build/bakefiles/common.bkl
@@ -32,10 +32,12 @@
_$(CPU)
- _amd64
- _amd64
+ _x64
+ _x64
_ia64
_ia64
+ _x64
+ _x64
@@ -318,6 +320,8 @@
/MACHINE:X64
/MACHINE:IA64
/MACHINE:IA64
+ /MACHINE:X64
+ /MACHINE:X64
diff --git a/build/bakefiles/config.bkl b/build/bakefiles/config.bkl
index 19fee62899..2f0327eedb 100644
--- a/build/bakefiles/config.bkl
+++ b/build/bakefiles/config.bkl
@@ -103,7 +103,8 @@ your environment is set up appropriately with the correct compiler in the
PATH. Rather it affects some options passed to some of the common build
utilities such as the resource compiler and the linker.
-Accepted values: AMD64, IA64.
+Accepted values: IA64, X64
+(AMD64 accepted as synonym for X64 but should not be used any more).
diff --git a/build/bakefiles/files.bkl b/build/bakefiles/files.bkl
index 2f82756444..f5c3e587f2 100644
--- a/build/bakefiles/files.bkl
+++ b/build/bakefiles/files.bkl
@@ -1236,6 +1236,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
wx/gtk/treeentry_gtk.h
+ $(GTK_HDR)
wx/generic/fontdlgg.h
wx/gtk/gnome/gprint.h
diff --git a/build/bakefiles/wxpresets/presets/wx_win32.bkl b/build/bakefiles/wxpresets/presets/wx_win32.bkl
index 6c2a9d0742..6aa181c825 100644
--- a/build/bakefiles/wxpresets/presets/wx_win32.bkl
+++ b/build/bakefiles/wxpresets/presets/wx_win32.bkl
@@ -101,7 +101,7 @@
_$(CPU)
- _amd64
+ _x64
_ia64
diff --git a/build/msw/config.vc b/build/msw/config.vc
index b9cc991260..d01e853bdb 100644
--- a/build/msw/config.vc
+++ b/build/msw/config.vc
@@ -52,7 +52,8 @@ BUILD = debug
# PATH. Rather it affects some options passed to some of the common build
# utilities such as the resource compiler and the linker.
#
-# Accepted values: AMD64, IA64.
+# Accepted values: IA64, X64
+# (AMD64 accepted as synonym for X64 but should not be used any more).
TARGET_CPU = $(CPU)
# Should debugging info be included in the executables? The default value
diff --git a/build/msw/makefile.vc b/build/msw/makefile.vc
index fe793f6685..2dd0e26802 100644
--- a/build/msw/makefile.vc
+++ b/build/msw/makefile.vc
@@ -1723,17 +1723,23 @@ BUILD_CFG_FILE = $(SETUPHDIR)\build.cfg
### Conditionally set variables: ###
!if "$(TARGET_CPU)" == "AMD64"
-ARCH_SUFFIX = _amd64
+ARCH_SUFFIX = _x64
!endif
!if "$(TARGET_CPU)" == "IA64"
ARCH_SUFFIX = _ia64
!endif
+!if "$(TARGET_CPU)" == "X64"
+ARCH_SUFFIX = _x64
+!endif
!if "$(TARGET_CPU)" == "amd64"
-ARCH_SUFFIX = _amd64
+ARCH_SUFFIX = _x64
!endif
!if "$(TARGET_CPU)" == "ia64"
ARCH_SUFFIX = _ia64
!endif
+!if "$(TARGET_CPU)" == "x64"
+ARCH_SUFFIX = _x64
+!endif
!if "$(USE_GUI)" == "0"
PORTNAME = base
!endif
@@ -1782,12 +1788,18 @@ LINK_TARGET_CPU = /MACHINE:X64
!if "$(TARGET_CPU)" == "IA64"
LINK_TARGET_CPU = /MACHINE:IA64
!endif
+!if "$(TARGET_CPU)" == "X64"
+LINK_TARGET_CPU = /MACHINE:X64
+!endif
!if "$(TARGET_CPU)" == "amd64"
LINK_TARGET_CPU = /MACHINE:X64
!endif
!if "$(TARGET_CPU)" == "ia64"
LINK_TARGET_CPU = /MACHINE:IA64
!endif
+!if "$(TARGET_CPU)" == "x64"
+LINK_TARGET_CPU = /MACHINE:X64
+!endif
!if "$(RUNTIME_LIBS)" == "dynamic"
__RUNTIME_LIBS_10 = D
!endif
diff --git a/build/osx/wxiphone.xcodeproj/project.pbxproj b/build/osx/wxiphone.xcodeproj/project.pbxproj
index 1fb528b287..addb860f0a 100644
--- a/build/osx/wxiphone.xcodeproj/project.pbxproj
+++ b/build/osx/wxiphone.xcodeproj/project.pbxproj
@@ -513,6 +513,7 @@
AAC2CB4D851230008AE4ABA1 /* dcscreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 22D6E6D9712338C6906CFAA4 /* dcscreen.cpp */; };
AB58406CEBA13BC4A2A83B66 /* printmac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CC5C13F8AA1387BADB7E60C /* printmac.cpp */; };
ABCD15C4AB37396EA17B7B28 /* translation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6AC666417602346EA583709E /* translation.cpp */; };
+ AC0B0C52922B30188AE95E94 /* tabart.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51054B41BFD83E97BAF76D07 /* tabart.cpp */; };
AC6AC589EFB233C7B65A3224 /* overlaycmn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 303ACF199BE431BD891C9301 /* overlaycmn.cpp */; };
AC91349D7F0E37739B1F5165 /* palette.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BEF6B3FB66243812969E5BD1 /* palette.cpp */; };
ACD644CFA85A3B70A3E3B118 /* jcparam.c in Sources */ = {isa = PBXBuildFile; fileRef = 2F41EDEB298538CC86FF6DC1 /* jcparam.c */; };
@@ -1003,6 +1004,7 @@
4FDE5A962FA234FA83A605AD /* Indicator.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Indicator.cxx; path = ../../src/stc/scintilla/src/Indicator.cxx; sourceTree = ""; };
4FE0B33481283D3493613B0F /* config.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = config.cpp; path = ../../src/common/config.cpp; sourceTree = ""; };
508B04B4FF913BECBC9DBFFB /* LexSpecman.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = LexSpecman.cxx; path = ../../src/stc/scintilla/src/LexSpecman.cxx; sourceTree = ""; };
+ 51054B41BFD83E97BAF76D07 /* tabart.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = tabart.cpp; path = ../../src/aui/tabart.cpp; sourceTree = ""; };
5145561C78303EEE9F827962 /* LexLua.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = LexLua.cxx; path = ../../src/stc/scintilla/src/LexLua.cxx; sourceTree = ""; };
5168ADF7BE39351F8F24E1E6 /* cfstring.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = cfstring.cpp; path = ../../src/osx/core/cfstring.cpp; sourceTree = ""; };
5190E3E110443FD29F2474FC /* treelist.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = treelist.cpp; path = ../../src/generic/treelist.cpp; sourceTree = ""; };
@@ -2146,6 +2148,7 @@
A298576700C33F018616E7BD /* auibook.cpp */,
05A4437E9697300390FDE14E /* auibar.cpp */,
C0155E0C2F6131358D2DA5ED /* tabmdi.cpp */,
+ 51054B41BFD83E97BAF76D07 /* tabart.cpp */,
);
name = src/aui;
sourceTree = "";
@@ -3455,6 +3458,7 @@
E104017EE1A4357DAF84E1E6 /* auibook.cpp in Sources */,
39CC380F801F3EE984523275 /* auibar.cpp in Sources */,
6C46AF0370793AA0B74A5A4A /* tabmdi.cpp in Sources */,
+ AC0B0C52922B30188AE95E94 /* tabart.cpp in Sources */,
DE43350F6C9D3148A64F0AF9 /* art_internal.cpp in Sources */,
7DC4A542372437ECA0790F87 /* art_msw.cpp in Sources */,
A0BA01A85C303C78A3130711 /* art_aui.cpp in Sources */,
diff --git a/build/tools/git-make-release b/build/tools/git-make-release
index f0e7c7dcb1..72513ad436 100755
--- a/build/tools/git-make-release
+++ b/build/tools/git-make-release
@@ -48,18 +48,24 @@ cleanup
git archive --prefix=$prefix/ HEAD | (cd ..; tar x)
cd ..
-mv $prefix/include/wx/msw/setup0.h $prefix/include/wx/msw/setup.h
+# All setup0.h files are supposed to be renamed to just setup.h when checked
+# out and in the distribution.
+find $prefix/include/wx -type f -name setup0.h | while read f; do
+ mv $f ${f%0.h}.h
+done
tar cjf $prefix.tar.bz2 $prefix
cd $prefix
set +x
for f in `cat ../eol-native`; do
- if [ $f == "include/wx/msw/setup0.h" ]; then
- # we renamed this file above so adjust
- f="include/wx/msw/setup.h"
- fi
- unix2dos $f
+ case $f in
+ */setup0.h)
+ # we renamed this file above so adjust
+ f=${f%0.h}.h
+ ;;
+ esac
+ unix2dos -q $f
done
set -x
diff --git a/docs/changes.txt b/docs/changes.txt
index 6b48cb59e6..eb56788041 100644
--- a/docs/changes.txt
+++ b/docs/changes.txt
@@ -10,6 +10,14 @@ INCOMPATIBLE CHANGES SINCE 2.8.x
the "Changes Since wxWidgets 2.8" section of the manual,
please read it if the explanation here is too cryptic.
+Table of contents of this section:
+
+ - Unicode-related changes
+ - wxODBC and contrib libraries removal
+ - Changes in behaviour not resulting in compilation errors
+ - Build system changes
+ - Major new features in this release
+
Unicode-related changes
-----------------------
@@ -470,6 +478,20 @@ Changes in behaviour visible to end users
now the control scrolls if too much text is added.
+Build system changes
+--------------------
+
+- In wxMSW makefile builds, "_x64" is used instead of "_amd64" when compiling
+ for this architecture in the architecture-specific paths and library names.
+ TARGET_CPU can still be specified as "amd64" for compatibility but "x64"
+ should be used now.
+
+- Official wxMSW binaries, i.e. those built with OFFICIAL_BUILD=1, built with
+ MSVC now include the version of the compiler used and the architecture if
+ it's not the default "x86". E.g. a library built with MSVC 10 for amd64 is
+ called "wxbase294ud_vc110_amd64.dll" now.
+
+
Major new features in this release
----------------------------------
@@ -565,6 +587,7 @@ All (GUI):
- Added wxDataViewListCtrl::GetItemCount() (Kry).
- Added support for Korean Johab and Vietnamese encodings (jank9201).
- Fix off by 1 bug with setting font size in points in wxHTML (gevorg).
+- Fix return value of wxGenericListCtrl::InsertColumn() (Sebastian Walderich).
GTK:
diff --git a/docs/msw/install.txt b/docs/msw/install.txt
index c6293f691c..c0cbd4d61e 100644
--- a/docs/msw/install.txt
+++ b/docs/msw/install.txt
@@ -253,7 +253,7 @@ Using makefiles:
1. Open a 64-bit build command prompt, for either x64 or Itanium. Change
directory to build\msw. Then for x64 type:
- nmake -f makefile.vc TARGET_CPU=AMD64
+ nmake -f makefile.vc TARGET_CPU=X64
or for Itanium:
@@ -266,7 +266,7 @@ Using makefiles:
2. Change to the directory of one of the samples such as samples\minimal. Type
the same command used to build the main library, for example for x64:
- nmake -f makefile.vc TARGET_CPU=AMD64
+ nmake -f makefile.vc TARGET_CPU=X64
Notes:
@@ -277,7 +277,7 @@ additional library to be linked or the following error is received.
If you receive this error add bufferoverflowu.lib to link, e.g.:
- nmake -f makefile.vc TARGET_CPU=AMD64 LDFLAGS=bufferoverflowu.lib
+ nmake -f makefile.vc TARGET_CPU=X64 LDFLAGS=bufferoverflowu.lib
See http://support.microsoft.com/?id=894573 for more information.
@@ -710,7 +710,7 @@ DEBUG_INFO=1
omitted or set to 'default' its value is determined the value of
the BUILD option.
-TARGET_CPU=AMD64|IA64
+TARGET_CPU=X64|IA64
(VC++ only.) Set this variable to build for x86_64 systems. If unset, x86
build is performed.
diff --git a/docs/release_files.mdwn b/docs/release_files.mdwn
new file mode 100644
index 0000000000..14d4c586a3
--- /dev/null
+++ b/docs/release_files.mdwn
@@ -0,0 +1,35 @@
+wxWidgets 2.9.4
+===============
+
+This directory contains the files for wxWidgets 2.9.4 release.
+
+Please notice that since the 2.9 series only a single source distribution is
+provided instead of the multiple distributions containing only the files for
+each port as was done before. So you only need to download wxWidgets-2.9.4.zip
+(or .7z for much smaller archive size) for Microsoft Windows systems or
+wxWidgets-2.9.4.tar.bz2 for Unix ones, including Mac OS X. The only difference
+between these files is that the ZIP (and 7z) archives contain files with DOS
+line endings while the tar balls contain files with Unix line endings.
+
+Windows users: note that the provided wxWidgets-2.9.4-Setup.exe file installs
+the sources for wxMSW and does *not* include wxWidgets binaries and you still
+need to build the library, please see `docs/msw/install.txt` for instructions.
+
+
+Reporting Problems
+------------------
+
+Please report any bugs in this release using [our Trac](http://trac.wxwidgets.org/report)
+or by posting to [wx-users mailing list](http://groups.google.com/group/wx-users).
+
+
+Check Sums
+----------
+
+To verify your download you can use the following sha1sums:
+
+ 0b8921c5f115bd335cde24f0cf4f579067815195 wxWidgets-2.9.4.7z
+ 231c3e6b411ab3ab4c787e9bfa2bb5743ea8317d wxWidgets-2.9.4.tar.bz2
+ 2031902d1bd0c69d559e5c98e49fc232cfaba87b wxWidgets-2.9.4.zip
+ 1c46c67f0db0fd89d86ab03f8cd1aa2016dcd95f wxWidgets-docs-html-2.9.4.tar.bz2
+ e1a8ccc1032df673900e8d9248f32969a0d3ccb5 wxWidgets-docs-html-2.9.4.zip
diff --git a/docs/tech/tn0022.txt b/docs/tech/tn0022.txt
index ff1133c692..7bcac24c83 100644
--- a/docs/tech/tn0022.txt
+++ b/docs/tech/tn0022.txt
@@ -11,10 +11,6 @@ Put a date on the release line in docs/changes.txt.
Update the date in the manual (docs/doxygen/mainpages/manual.h).
-Mark the milestone corresponding to the previous release as being completed and
-create a new version and a new milestone for it in Trac admin web interface
-(ask Robin Dunn for password to access it).
-
Creating release files
----------------------
@@ -77,6 +73,9 @@ being "default downloads" for the appropriate platforms (.zip or .exe for MSW,
.tar.bz2 for everything else) as otherwise SourceForge would continue to suggest
people to download old files.
+Also upload docs/release_files.mdwn as README.md to display it by default when
+its directory is viewed on the web.
+
Also upload the files to the FTP mirror at ftp.wxwidgets.org (ask Chris for
access if you don't have it).
@@ -100,8 +99,8 @@ Version updates
---------------
Trac: mark the milestone corresponding to the release as completed and add a
-new version for it to allow reporting bugs against it (ask Vadim or Robin to do
-it).
+new version for it to allow reporting bugs against it and create the next
+milestone (ask Vadim or Robin to do it or to get admin password).
Run misc/scripts/inc_release to increment micro version, i.e. replace x.y.z
with x.y.z+1 (minor or major versions updates require manual intervention).
diff --git a/include/msvc/wx/setup.h b/include/msvc/wx/setup.h
index 06fa7d7ddc..ad4cb5d12b 100644
--- a/include/msvc/wx/setup.h
+++ b/include/msvc/wx/setup.h
@@ -71,7 +71,7 @@
// architecture-specific part: not used (again, for compatibility), for x86
#if defined(_M_X64)
- #define wxARCH_SUFFIX _amd64
+ #define wxARCH_SUFFIX _x64
#elif defined(_M_IA64)
#define wxARCH_SUFFIX _ia64
#else // assume _M_IX86
diff --git a/include/wx/generic/private/listctrl.h b/include/wx/generic/private/listctrl.h
index 3145bd1b7d..48a1f016b8 100644
--- a/include/wx/generic/private/listctrl.h
+++ b/include/wx/generic/private/listctrl.h
@@ -644,7 +644,7 @@ public:
long FindItem( const wxPoint& pt );
long HitTest( int x, int y, int &flags ) const;
void InsertItem( wxListItem &item );
- void InsertColumn( long col, const wxListItem &item );
+ long InsertColumn( long col, const wxListItem &item );
int GetItemWidthWithImage(wxListItem * item);
void SortItems( wxListCtrlCompare fn, wxIntPtr data );
diff --git a/include/wx/listbook.h b/include/wx/listbook.h
index 1d8853526c..4e46af0847 100644
--- a/include/wx/listbook.h
+++ b/include/wx/listbook.h
@@ -88,10 +88,6 @@ protected:
wxBookCtrlEvent* CreatePageChangingEvent() const;
void MakeChangedEvent(wxBookCtrlEvent &event);
- // get flags for different list control modes
- long GetListCtrlIconViewFlags() const;
- long GetListCtrlReportViewFlags() const;
-
// event handlers
void OnListSelected(wxListEvent& event);
void OnSize(wxSizeEvent& event);
diff --git a/include/wx/msw/statbox.h b/include/wx/msw/statbox.h
index 15b25cb4e2..27180f2c1e 100644
--- a/include/wx/msw/statbox.h
+++ b/include/wx/msw/statbox.h
@@ -43,10 +43,6 @@ public:
// returns true if the platform should explicitly apply a theme border
virtual bool CanApplyThemeBorder() const { return false; }
- virtual wxPoint GetClientAreaOrigin() const;
- virtual void DoGetClientSize(int *width, int *height) const;
-
-
protected:
virtual wxSize DoGetBestSize() const;
diff --git a/include/wx/richtext/richtextbuffer.h b/include/wx/richtext/richtextbuffer.h
index 1a644eac9a..cc28edbc5e 100644
--- a/include/wx/richtext/richtextbuffer.h
+++ b/include/wx/richtext/richtextbuffer.h
@@ -3613,7 +3613,9 @@ public:
/**
Copy constructor.
*/
- wxRichTextFieldType(const wxRichTextFieldType& fieldType) { Copy(fieldType); }
+ wxRichTextFieldType(const wxRichTextFieldType& fieldType)
+ : wxObject(fieldType)
+ { Copy(fieldType); }
void Copy(const wxRichTextFieldType& fieldType) { m_name = fieldType.m_name; }
@@ -3766,7 +3768,9 @@ public:
The copy constructor.
*/
- wxRichTextFieldTypeStandard(const wxRichTextFieldTypeStandard& field) { Copy(field); }
+ wxRichTextFieldTypeStandard(const wxRichTextFieldTypeStandard& field)
+ : wxRichTextFieldType(field)
+ { Copy(field); }
/**
Initialises the object.
diff --git a/interface/wx/spinctrl.h b/interface/wx/spinctrl.h
index 0b88027f09..958f0869eb 100644
--- a/interface/wx/spinctrl.h
+++ b/interface/wx/spinctrl.h
@@ -23,7 +23,7 @@
dialog) under MSW.
@style{wxALIGN_LEFT}
Same as wxTE_LEFT for wxTextCtrl: the text is left aligned.
- @style{wxALIGN_CENTRE}
+ @style{wxALIGN_CENTRE_HORIZONTAL}
Same as wxTE_CENTRE for wxTextCtrl: the text is centered.
@style{wxALIGN_RIGHT}
Same as wxTE_RIGHT for wxTextCtrl: the text is right aligned (this is
diff --git a/interface/wx/stattext.h b/interface/wx/stattext.h
index 08fddf0b15..3ab1ac2b7e 100644
--- a/interface/wx/stattext.h
+++ b/interface/wx/stattext.h
@@ -25,14 +25,14 @@
Align the text to the left.
@style{wxALIGN_RIGHT}
Align the text to the right.
- @style{wxALIGN_CENTRE}
+ @style{wxALIGN_CENTRE_HORIZONTAL}
Center the text (horizontally).
@style{wxST_NO_AUTORESIZE}
By default, the control will adjust its size to exactly fit to the
size of the text when SetLabel() is called. If this style flag is
given, the control will not change its size (this style is
especially useful with controls which also have the @c wxALIGN_RIGHT or
- the @c wxALIGN_CENTRE style because otherwise they won't make sense any
+ the @c wxALIGN_CENTRE_HORIZONTAL style because otherwise they won't make sense any
longer after a call to SetLabel()).
@style{wxST_ELLIPSIZE_START}
If the labeltext width exceeds the control width, replace the beginning
diff --git a/src/common/imagtga.cpp b/src/common/imagtga.cpp
index e7203f3065..9a5c4ccd87 100644
--- a/src/common/imagtga.cpp
+++ b/src/common/imagtga.cpp
@@ -292,9 +292,9 @@ int ReadTGA(wxImage* image, wxInputStream& stream)
case 1:
{
- unsigned char r;
- unsigned char g;
- unsigned char b;
+ unsigned char r = 0;
+ unsigned char g = 0;
+ unsigned char b = 0;
// No compression read the data directly to imageData.
@@ -486,9 +486,9 @@ int ReadTGA(wxImage* image, wxInputStream& stream)
case 9:
{
- unsigned char r;
- unsigned char g;
- unsigned char b;
+ unsigned char r = 0;
+ unsigned char g = 0;
+ unsigned char b = 0;
// Decode the RLE data.
diff --git a/src/common/time.cpp b/src/common/time.cpp
index 4a76dfac48..5b2460ca69 100644
--- a/src/common/time.cpp
+++ b/src/common/time.cpp
@@ -292,8 +292,6 @@ wxLongLong wxGetUTCTimeUSec()
// Get local time as milliseconds since 00:00:00, Jan 1st 1970
wxLongLong wxGetUTCTimeMillis()
{
- wxLongLong val = MILLISECONDS_PER_SECOND;
-
// If possible, use a function which avoids conversions from
// broken-up time structures to milliseconds
#if defined(__WINDOWS__)
@@ -306,7 +304,10 @@ wxLongLong wxGetUTCTimeMillis()
t /= 10000;
t -= wxLL(11644473600000); // Unix - Windows epochs difference in ms.
return t;
-#elif defined(HAVE_GETTIMEOFDAY)
+#else // !__WINDOWS__
+ wxLongLong val = MILLISECONDS_PER_SECOND;
+
+#if defined(HAVE_GETTIMEOFDAY)
struct timeval tp;
if ( wxGetTimeOfDay(&tp) != -1 )
{
@@ -342,6 +343,8 @@ wxLongLong wxGetUTCTimeMillis()
val *= wxGetUTCTime();
return val;
#endif // time functions
+
+#endif // __WINDOWS__/!__WINDOWS__
}
wxLongLong wxGetLocalTimeMillis()
diff --git a/src/generic/listbkg.cpp b/src/generic/listbkg.cpp
index 0861211c0e..88a3c4a7ff 100644
--- a/src/generic/listbkg.cpp
+++ b/src/generic/listbkg.cpp
@@ -38,24 +38,6 @@
#include "wx/sysopt.h"
-namespace
-{
-
-// FIXME: This function exists because native OS X wxListCtrl seems to have
-// problems with report view, either imperfect display or reported hanging, so
-// disable it for now (but it should be fixed, and this function removed).
-bool CanUseReportView()
-{
-#if defined(__WXMAC__) && !defined(__WXUNIVERSAL__) && wxOSX_USE_CARBON
- if (wxSystemOptions::GetOptionInt(wxMAC_ALWAYS_USE_GENERIC_LISTCTRL) == 0)
- return false;
- else
-#endif
- return true;
-}
-
-} // anonymous namespace
-
// ----------------------------------------------------------------------------
// various wxWidgets macros
// ----------------------------------------------------------------------------
@@ -118,13 +100,10 @@ wxListbook::Create(wxWindow *parent,
wxDefaultPosition,
wxDefaultSize,
wxLC_SINGLE_SEL |
- (CanUseReportView() ? GetListCtrlReportViewFlags()
- : GetListCtrlIconViewFlags())
+ (IsVertical() ? wxLC_ALIGN_LEFT : wxLC_ALIGN_TOP) |
+ wxLC_LIST
);
- if ( CanUseReportView() )
- GetListView()->InsertColumn(0, wxT("Pages"));
-
#ifdef __WXMSW__
// On XP with themes enabled the GetViewRect used in GetControllerSize() to
// determine the space needed for the list view will incorrectly return
@@ -138,20 +117,6 @@ wxListbook::Create(wxWindow *parent,
return true;
}
-// ----------------------------------------------------------------------------
-// wxListCtrl flags
-// ----------------------------------------------------------------------------
-
-long wxListbook::GetListCtrlIconViewFlags() const
-{
- return (IsVertical() ? wxLC_ALIGN_LEFT : wxLC_ALIGN_TOP) | wxLC_ICON;
-}
-
-long wxListbook::GetListCtrlReportViewFlags() const
-{
- return wxLC_REPORT | wxLC_NO_HEADER;
-}
-
// ----------------------------------------------------------------------------
// wxListbook geometry management
// ----------------------------------------------------------------------------
@@ -259,39 +224,34 @@ bool wxListbook::SetPageImage(size_t n, int imageId)
void wxListbook::SetImageList(wxImageList *imageList)
{
- if ( CanUseReportView() )
+ wxListView * const list = GetListView();
+
+ // If imageList presence has changed, we update the list control style
+ if ( (imageList != NULL) != (GetImageList() != NULL) )
{
- wxListView * const list = GetListView();
+ // Preserve the selection which is lost when changing the mode
+ const int oldSel = GetSelection();
- // If imageList presence has changed, we update the list control view
- if ( (imageList != NULL) != (GetImageList() != NULL) )
+ // Update the style to use icon view for images, list view otherwise
+ long style = list->GetWindowStyle() & ~wxLC_MASK_TYPE;
+ if ( imageList )
{
- // Preserve the selection which is lost when changing the mode
- const int oldSel = GetSelection();
-
- // Update the style to use icon view for images, report view otherwise
- long style = wxLC_SINGLE_SEL;
- if ( imageList )
- {
- style |= GetListCtrlIconViewFlags();
- }
- else // no image list
- {
- style |= GetListCtrlReportViewFlags();
- }
-
- list->SetWindowStyleFlag(style);
- if ( !imageList )
- list->InsertColumn(0, wxT("Pages"));
-
- // Restore selection
- if ( oldSel != wxNOT_FOUND )
- SetSelection(oldSel);
+ style |= wxLC_ICON;
+ }
+ else // no image list
+ {
+ style |= wxLC_LIST;
}
- list->SetImageList(imageList, wxIMAGE_LIST_NORMAL);
+ list->SetWindowStyleFlag(style);
+
+ // Restore selection
+ if ( oldSel != wxNOT_FOUND )
+ SetSelection(oldSel);
}
+ list->SetImageList(imageList, wxIMAGE_LIST_NORMAL);
+
wxBookCtrlBase::SetImageList(imageList);
}
diff --git a/src/generic/listctrl.cpp b/src/generic/listctrl.cpp
index de34935ced..e41e9ce95d 100644
--- a/src/generic/listctrl.cpp
+++ b/src/generic/listctrl.cpp
@@ -4125,8 +4125,10 @@ void wxListMainWindow::InsertItem( wxListItem &item )
RefreshLines(id, GetItemCount() - 1);
}
-void wxListMainWindow::InsertColumn( long col, const wxListItem &item )
+long wxListMainWindow::InsertColumn( long col, const wxListItem &item )
{
+ long idx = -1;
+
m_dirty = true;
if ( InReportView() )
{
@@ -4143,9 +4145,11 @@ void wxListMainWindow::InsertColumn( long col, const wxListItem &item )
node = m_columns.Item( col );
m_columns.Insert( node, column );
m_aColWidths.Insert( colWidthInfo, col );
+ idx = col;
}
else
{
+ idx = m_aColWidths.GetCount();
m_columns.Append( column );
m_aColWidths.Add( colWidthInfo );
}
@@ -4167,6 +4171,7 @@ void wxListMainWindow::InsertColumn( long col, const wxListItem &item )
// invalidate it as it has to be recalculated
m_headerWidth = 0;
}
+ return idx;
}
int wxListMainWindow::GetItemWidthWithImage(wxListItem * item)
@@ -4947,14 +4952,14 @@ long wxGenericListCtrl::DoInsertColumn( long col, const wxListItem &item )
{
wxCHECK_MSG( InReportView(), -1, wxT("can't add column in non report mode") );
- m_mainWin->InsertColumn( col, item );
+ long idx = m_mainWin->InsertColumn( col, item );
// NOTE: if wxLC_NO_HEADER was given, then we are in report view mode but
// still have m_headerWin==NULL
if (m_headerWin)
m_headerWin->Refresh();
- return 0;
+ return idx;
}
bool wxGenericListCtrl::ScrollList( int dx, int dy )
diff --git a/src/msw/fswatcher.cpp b/src/msw/fswatcher.cpp
index 7f2bcd6e89..a186acd2ca 100644
--- a/src/msw/fswatcher.cpp
+++ b/src/msw/fswatcher.cpp
@@ -136,7 +136,7 @@ void wxFSWatcherImplMSW::SendEvent(wxFileSystemWatcherEvent& evt)
bool wxFSWatcherImplMSW::DoSetUpWatch(wxFSWatchEntryMSW& watch)
{
- BOOL bWatchSubtree wxDUMMY_INITIALIZE(FALSE);
+ BOOL bWatchSubtree = FALSE;
switch ( watch.GetType() )
{
diff --git a/src/msw/statbox.cpp b/src/msw/statbox.cpp
index 3bd2e55081..6272f6396e 100644
--- a/src/msw/statbox.cpp
+++ b/src/msw/statbox.cpp
@@ -543,26 +543,4 @@ void wxStaticBox::OnPaint(wxPaintEvent& WXUNUSED(event))
#endif // !__WXWINCE__
-
-wxPoint wxStaticBox::GetClientAreaOrigin() const
-{
- // See: http://msdn.microsoft.com/en-us/library/aa511279.aspx
- wxPoint pt = ConvertDialogToPixels(wxPoint(6,11));
- return pt;
-}
-
-
-void wxStaticBox::DoGetClientSize(int *width, int *height) const
-{
- // See: http://msdn.microsoft.com/en-us/library/aa511279.aspx
- wxPoint lr = ConvertDialogToPixels(wxPoint(6,7));
- wxPoint ul = GetClientAreaOrigin();
- wxSize sz = GetSize();
-
- if (width)
- *width = sz.x - ul.x - lr.x;
- if (height)
- *height = sz.y - ul.y - lr.x;
-}
-
#endif // wxUSE_STATBOX
diff --git a/src/msw/treectrl.cpp b/src/msw/treectrl.cpp
index 2cfcbd8f39..e84bd1b324 100644
--- a/src/msw/treectrl.cpp
+++ b/src/msw/treectrl.cpp
@@ -2925,10 +2925,7 @@ wxTreeCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
// click if needed
if ( processed )
{
- int htFlags = 0;
- wxTreeItemId item = HitTest(wxPoint(x, y), htFlags);
-
- if ( htFlags & wxTREE_HITTEST_ONITEMSTATEICON )
+ if ( tvht.flags & TVHT_ONITEMSTATEICON )
{
m_triggerStateImageClick = true;
}
diff --git a/src/osx/cocoa/stattext.mm b/src/osx/cocoa/stattext.mm
index 76497e7fca..591a97a476 100644
--- a/src/osx/cocoa/stattext.mm
+++ b/src/osx/cocoa/stattext.mm
@@ -102,7 +102,7 @@ private:
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle setLineBreakMode:m_lineBreak];
int style = GetWXPeer()->GetWindowStyleFlag();
- if (style & wxALIGN_CENTER)
+ if (style & wxALIGN_CENTER_HORIZONTAL)
[paragraphStyle setAlignment: NSCenterTextAlignment];
else if (style & wxALIGN_RIGHT)
[paragraphStyle setAlignment: NSRightTextAlignment];
diff --git a/src/osx/cocoa/textctrl.mm b/src/osx/cocoa/textctrl.mm
index c75aad1a69..2daf86fb94 100644
--- a/src/osx/cocoa/textctrl.mm
+++ b/src/osx/cocoa/textctrl.mm
@@ -923,6 +923,7 @@ wxWidgetImplType* wxWidgetImpl::CreateTextControl( wxTextCtrl* wxpeer,
wxNSTextScrollView* v = nil;
v = [[wxNSTextScrollView alloc] initWithFrame:r];
c = new wxNSTextViewControl( wxpeer, v );
+ c->SetNeedsFocusRect( true );
}
else
{
@@ -932,24 +933,39 @@ wxWidgetImplType* wxWidgetImpl::CreateTextControl( wxTextCtrl* wxpeer,
else
v = [[wxNSTextField alloc] initWithFrame:r];
- if ( style & wxNO_BORDER )
+ if ( style & wxTE_RIGHT)
{
- // FIXME: How can we remove the native control's border?
- // setBordered is separate from the text ctrl's border.
+ [v setAlignment:NSRightTextAlignment];
}
-
+ else if ( style & wxTE_CENTRE)
+ {
+ [v setAlignment:NSCenterTextAlignment];
+ }
+
NSTextFieldCell* cell = [v cell];
[cell setScrollable:YES];
// TODO: Remove if we definitely are sure, it's not needed
// as setting scrolling to yes, should turn off any wrapping
// [cell setLineBreakMode:NSLineBreakByClipping];
- [v setBezeled:NO];
- [v setBordered:NO];
-
c = new wxNSTextFieldControl( wxpeer, wxpeer, v );
+
+ if ( (style & wxNO_BORDER) || (style & wxSIMPLE_BORDER) )
+ {
+ // under 10.7 the textcontrol can draw its own focus
+ // even if no border is shown, on previous systems
+ // we have to emulate this
+ [v setBezeled:NO];
+ [v setBordered:NO];
+ if ( UMAGetSystemVersion() < 0x1070 )
+ c->SetNeedsFocusRect( true );
+ }
+ else
+ {
+ // use native border
+ c->SetNeedsFrame(false);
+ }
}
- c->SetNeedsFocusRect( true );
return c;
}
diff --git a/src/osx/iphone/textctrl.mm b/src/osx/iphone/textctrl.mm
index d8f65b39a7..ab3baf12f2 100644
--- a/src/osx/iphone/textctrl.mm
+++ b/src/osx/iphone/textctrl.mm
@@ -674,6 +674,7 @@ bool wxUITextFieldControl::SetHint(const wxString& hint)
{
wxCFStringRef hintstring(hint);
[m_textField setPlaceholder:hintstring.AsNSString()];
+ return true;
}
#endif
diff --git a/src/osx/iphone/toolbar.mm b/src/osx/iphone/toolbar.mm
index 659fb243f2..dcfe1a9bda 100644
--- a/src/osx/iphone/toolbar.mm
+++ b/src/osx/iphone/toolbar.mm
@@ -249,6 +249,7 @@ bool wxToolBar::Create(
SetPeer(new wxWidgetIPhoneImpl( this, toolbar ));
MacPostControlCreate(pos, size) ;
+ return true;
}
wxToolBar::~wxToolBar()
diff --git a/src/osx/iphone/window.mm b/src/osx/iphone/window.mm
index d453aa8871..2ad2b7e27f 100644
--- a/src/osx/iphone/window.mm
+++ b/src/osx/iphone/window.mm
@@ -561,10 +561,22 @@ void wxWidgetIPhoneImpl::GetBestRect( wxRect *r ) const
bool wxWidgetIPhoneImpl::IsEnabled() const
{
+ UIView* targetView = m_osxView;
+ // TODO add support for documentViews
+
+ if ( [targetView respondsToSelector:@selector(isEnabled) ] )
+ return [targetView isEnabled];
+
+ return true;
}
void wxWidgetIPhoneImpl::Enable( bool enable )
{
+ UIView* targetView = m_osxView;
+ // TODO add support for documentViews
+
+ if ( [targetView respondsToSelector:@selector(setEnabled:) ] )
+ [targetView setEnabled:enable];
}
void wxWidgetIPhoneImpl::SetMinimum( wxInt32 v )
@@ -577,10 +589,12 @@ void wxWidgetIPhoneImpl::SetMaximum( wxInt32 v )
wxInt32 wxWidgetIPhoneImpl::GetMinimum() const
{
+ return 0;
}
wxInt32 wxWidgetIPhoneImpl::GetMaximum() const
{
+ return 0;
}
void wxWidgetIPhoneImpl::PulseGauge()
diff --git a/src/propgrid/propgrid.cpp b/src/propgrid/propgrid.cpp
index 42395f47a2..f9f94ebfcc 100644
--- a/src/propgrid/propgrid.cpp
+++ b/src/propgrid/propgrid.cpp
@@ -5553,12 +5553,14 @@ void wxPropertyGrid::HandleKeyEvent( wxKeyEvent &event, bool fromChild )
if ( keycode == WXK_TAB )
{
+#if defined(__WXGTK__)
wxWindow* mainControl;
if ( HasInternalFlag(wxPG_FL_IN_MANAGER) )
mainControl = GetParent();
else
mainControl = this;
+#endif
if ( !event.ShiftDown() )
{
diff --git a/src/richtext/richtextctrl.cpp b/src/richtext/richtextctrl.cpp
index e0e80081a1..3d7a97adb4 100644
--- a/src/richtext/richtextctrl.cpp
+++ b/src/richtext/richtextctrl.cpp
@@ -3896,7 +3896,7 @@ bool wxRichTextCtrl::LayoutContent(bool onlyVisibleRect)
GetBuffer().Layout(dc, context, availableSpace, availableSpace, flags);
GetBuffer().Invalidate(wxRICHTEXT_NONE);
- if (!IsFrozen())
+ if (!IsFrozen() && !onlyVisibleRect)
SetupScrollbars();
}
diff --git a/src/unix/fswatcher_inotify.cpp b/src/unix/fswatcher_inotify.cpp
index 6c27e5c0f2..1ad02086e3 100644
--- a/src/unix/fswatcher_inotify.cpp
+++ b/src/unix/fswatcher_inotify.cpp
@@ -344,9 +344,12 @@ protected:
wxString mask = (inevt.mask & IN_ISDIR) ?
wxString::Format("IS_DIR | %u", inevt.mask & ~IN_ISDIR) :
wxString::Format("%u", inevt.mask);
+ const char* name = "";
+ if (inevt.len)
+ name = inevt.name;
return wxString::Format("Event: wd=%d, mask=%s, cookie=%u, len=%u, "
"name=%s", inevt.wd, mask, inevt.cookie,
- inevt.len, inevt.name);
+ inevt.len, name);
}
static wxFileName GetEventPath(const wxFSWatchEntry& watch,
@@ -354,7 +357,7 @@ protected:
{
// only when dir is watched, we have non-empty e.name
wxFileName path = watch.GetPath();
- if (path.IsDir())
+ if (path.IsDir() && inevt.len)
{
path = wxFileName(path.GetPath(), inevt.name);
}