Commit Graph

52438 Commits

Author SHA1 Message Date
Vadim Zeitlin
6c4d607e60 Initialize wxCSConv immediately instead of deferring it.
Deferred initialization code was not MT-safe and just wasn't that useful
anyhow because it is rare to create a wxCSConv object and not use it
afterwards.

Remove the deferred initialization logic and create the real conversion used
by wxCSConv immediately in its ctor.

Also improve the comments by clearly explaining the possible values of
wxCSConv::m_name and m_encoding.

Closes #12630.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66119 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-11 12:09:22 +00:00
Vadim Zeitlin
93fdbfb70d Fix typo in error message given if wxUSE_CAIRO is undefined.
Replaced the wrongly copy-and-pasted wxUSE_BUTTON with wxUSE_CAIRO.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66118 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-11 12:09:13 +00:00
Robin Dunn
f2e4cf3dc6 No docs yet, just the bare interace so we can get XML for Phoenix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66117 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-11 04:09:09 +00:00
Robin Dunn
033b1b9413 Fix a parameter type and add some missing const keywords
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66116 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-11 01:29:14 +00:00
Vadim Zeitlin
87f528f15b Disable unit tests which can't work in ANSI build.
Disable unit tests involving operations (such as conversions between UTF and
anything but plain ASCII) not available in ANSI build.

This fixes the test suite for non-Unicode build under Unix.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66103 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 13:53:49 +00:00
Vadim Zeitlin
716ee1223e Use wxString::To8BitData() instead of mb_str() to handle NULs correctly.
In ANSI build wxString::mb_str() returns a pointer to the internal wxString
data directly instead of a buffer with a proper length, so it provides access
to the part of the string before the first embedded NUL only.

Use To8BitData() which always returns the buffer of the correct size in all
builds.

The open question remains whether mb_str() should be changed to return a (non
owned) buffer and not just a pointer in ANSI build. This would make
manipulating strings with embedded NULs safer but mb_str() would be less
efficient and less compatible.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66102 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 13:53:40 +00:00
Vadim Zeitlin
23231f1c71 Fix wxString::{Before,After}{First,Last} unit test for ANSI build.
The test used a wide character constant and so didn't work in ANSI build. Use
an ASCII string there now while still keeping the original version in Unicode
build.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66101 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 13:53:34 +00:00
Vadim Zeitlin
f7d83f24fb Don't check for wxDF_UNICODETEXT support in ANSI builds.
wxDF_UNICODETEXT clipboard format can't be even constructed without provoking
an assert in ANSI build of wxGTK, so avoid using it, we don't support it
anyhow.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66100 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 13:53:27 +00:00
Vadim Zeitlin
8aab23a129 Initialize paragraph descent in wxRichTextParagraph::Layout().
This variable was used as the initial value for the descent but was never
initialized, so the descent computation could be completely wrong.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66099 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 13:53:22 +00:00
Vadim Zeitlin
2c032a5d71 Don't crash in wxGUIEventLoop::Exit() if not running in wxX11.
The implementation of wxEventLoop::IsRunning() has changed since this code was
written and it doesn't check for m_impl != NULL any more. Because of this,
calling Exit() for an active but not running event loop resulted in a crash in
wxX11.

Fix this by doing nothing in this case. This seems better than asserting as
the event handling code exits the loop if an event handler throws an exception
and the loop might not be running in this case yet (events could be processed
because of a wxYield() call).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66098 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 13:53:15 +00:00
Vadim Zeitlin
04a8da5f57 Implement bitmap mask copying in wxX11.
Copy the mask pixmap properly in wxX11, otherwise copying masks resulted in
freeing the same pixmap twice and an X error.

This fixes the bitmap unit test for wxX11.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66097 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 13:53:08 +00:00
Vadim Zeitlin
5f480c0bf1 Don't test for DC validity in wxX11 wxDC text extent functions.
The code in GetTextExtent() and GetChar{Width,Height}() works fine even for
non-initialized wxMemoryDC and the ellipsization unit test relies on this
working so simply remove the asserts which resulted in the test failures.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66096 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 13:52:59 +00:00
Vadim Zeitlin
bb1b20f1a9 Disable measuring context unit test for wxX11.
wxCairoRenderer::CreateMeasuringContext() is only implemented for wxGTK so the
test fails under other ports when using Cairo. Disable it for wxX11 for now.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66095 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 13:52:52 +00:00
Vadim Zeitlin
711a481223 Use Cairo for wxGraphicsContext in wxX11.
Check for Cairo in configure for wxX11 too.

Fix compilation of wxCairoContext for non-{GTK,MSW} platforms.

Also make wxUSE_CAIRO a "normal" option, i.e. add it to all wx/setup.h files
instead of defining it as 1 unconditionally for wxGTK and 0 for everything
else.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66094 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 13:52:45 +00:00
Vadim Zeitlin
ac98aec510 Disable unit test for wxColour alpha under wxX11.
wxX11 doesn't support alpha component of wxColour currently.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66093 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 13:52:35 +00:00
Vadim Zeitlin
1f1dee6b0d Fix signed/unsigned comparison warnings in wxUniv wxNotebook.
Recent replacement of size_t wxNotebook::m_selection with int
wxBookCtrlBase::m_selection resulted in appearance of many warnings in wxUniv
wxNotebook. Fix them by removing some now unnecessary casts between int and
size_t and adjusting the remaining ones.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66092 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 13:52:29 +00:00
Vadim Zeitlin
7822ffb1de Add #if checks fixing minimal wxGTK build.
Check for functions availability before using them. This fixes compilation of
wxGTK with all features disabled.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66091 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 13:52:22 +00:00
Vadim Zeitlin
357f4c818d Fix harmless unused parameter warnings in minimal build.
No real changes, just add some wxUnusedVar() to avoid warnings about
parameters unused in some non-default build configurations.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66090 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 13:52:17 +00:00
Vadim Zeitlin
f422aafede Don't exclude a bunch of wxDir methods when wxUSE_LONGLONG==0.
The #endif part of a #if wxUSE_LONGLONG check was incorrectly positioned and
excluded the definition of several wxDir methods not related to wxLongLong
when wxUSE_LONGLONG was 0.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66089 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 13:52:10 +00:00
Vadim Zeitlin
9ce5cf09c2 Fix wxGLCanvas compilation with wxUSE_PALETTE==0.
This fixes compilation problems with the minimal build of wxGTK and will make
removing palette support in the future simpler.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66088 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 13:52:04 +00:00
Vadim Zeitlin
6d61520df3 Fix wxStandardDialogLayoutAdapter compilation with wxUSE_BUTTON==0.
This class probably should not be compiled in at all in the minimal build but
in the meanwhile just add #if checks around its button-related parts.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66087 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 13:51:57 +00:00
Vadim Zeitlin
ac04aa9943 Make wxBitmap::ConvertToDisabled() available in all ports.
This method was defined in wxBitmapBase which is not used by wxMSW (and wxOS2)
so it wasn't available there. Move the definition of the method inline and
reuse it for all ports, making it part of either wxBitmapBase or wxBitmap as
appropriate.

This is clearly ugly but we still have no good solution for deriving wxBitmap
from wxBitmapBase in wxMSW as it already inherits from MSW-specific wxGDIImage
there.

Also document that ConvertToDisabled() is only available when wxUSE_IMAGE==1.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66086 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 13:51:51 +00:00
Vadim Zeitlin
82302ad45a Disconnect "hide" menu signal to fix menu destruction in wxGTK.
The "hide" signal handler was triggered when destroying a sub-menu (even if it
was not shown at this time). Disconnect it to avoid asserts due to attempts to
generate an event for an already detached menu and to avoid the (bogus)
wxEVT_MENU_CLOSE event as well.

Closes #12668.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66082 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 00:36:55 +00:00
Vadim Zeitlin
08e78a5412 Add a test for deleting a sub-menu to the menu sample.
Also fix some typos in the help message.

See #12668.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66081 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 00:36:50 +00:00
Vadim Zeitlin
519d7f238c Fix wxUSE_DC_CACHEING spelling in the documentation.
It was consistently misspelt as wxUSE_DC_CACHE.

Closes #12377.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66080 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 00:36:45 +00:00
Vadim Zeitlin
9b341e6fa1 No changes, just simplify docview sample a bit.
Remove some unnecessary function arguments and m_frame member variable.

Closes #12374.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66079 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 00:36:39 +00:00
Vadim Zeitlin
0c46625036 Correct wxID_SEPARATOR description in menu documentation.
Also correct a typo in Delete() function links.

Closes #12666.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66078 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 00:36:30 +00:00
Vadim Zeitlin
382c4adea6 Fix preprocessor definitions for wxBase build under OS X.
Define __WXOSX__ for non-GUI build under Darwin. Ensure that the rest of the
code compiles correctly when just __WXOSX__ is defined but neither of
__WXOSX_{CARBON,COCOA,IPHONE}__ is. This ensures that wxBase can actually be
built under Mac.

Move OS X symbols definitions in wx/platform.h after wx/setup.h inclusion as
they rely on __DARWIN__ and wxUSE_GUI values which are both define in that
file now. Still keep them before wx/chkconf.h inclusion which relies on
__WXOSX_XXX__ being defined. Yes, it's a mess and should be cleaned up more
permanently some day.

Also remove some redundancy from wx/osx/{carbon,cocoa}/private.h by factoring
out common parts into wx/osx/core/private.h. Also include this header itself
from wx/osx/private.h directly instead of including it thrice from different
sub-ports headers.

Closes #12660.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66077 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-09 23:53:42 +00:00
Vadim Zeitlin
947d5ad04c Fix timeval struct initialization in wxSelectDispatcher.
The tv_usec field could overflow its maximal value while tv_sec was always
left 0.

It would be even better to reuse SetTimeValFromMS() from socket.cpp here in
the future.

See #11542.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66076 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-09 23:53:33 +00:00
Vadim Zeitlin
bbacbe3980 Fix crash in wxCFEventLoop::AddSourceForFD().
Don't reset CFFileDescriptorRef before passing it to
CFFileDescriptorCreateRunLoopSource(), this resulted in a crash inside this
function.

Closes #11542.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66075 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-09 23:53:28 +00:00
Vadim Zeitlin
11ea2e3a84 Remove non-existent functions declarations from wxOSX/Carbon.
wxMacSetupConverters() and wxMacCleanupConverters() don't seem to exist any
more so don't declare them.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66074 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-09 23:53:21 +00:00
Vadim Zeitlin
327ac3ec2a Document wxRenameFile() behaviour when destination is a directory.
Document that the source file is moved to the destination if it's a directory,
apparently this is not obvious.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66071 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-08 16:28:57 +00:00
Vadim Zeitlin
d97ee1b955 Unload bogus XRC resources in "garbage" unit test.
Leaving invalid XRC entries in wxXmlResource internal list of loaded resources
resulted in failures in the XRC unit test which executed after this one.

It seems that loading an invalid resource shouldn't prevent the other ones
from loading correctly later and this probably should be corrected at
wxXmlResource level but for now work around this problem in the test itself.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66070 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-08 16:28:51 +00:00
Vadim Zeitlin
adf1edd924 Fix crash in XRC ID range support code.
Really fix removing the record from the linked list. This code was modified by
r66064 but was still wrong because the wrong pointer was updated.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66069 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-08 13:50:46 +00:00
Vadim Zeitlin
e7cad4b7a1 Compilation fix for STL build after ID range changes in XRC.
Fix compilation of the new code which relied on implicit conversion of
wxString to "const char *" which is unavailable when wxUSE_STL==1.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66066 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-07 22:13:55 +00:00
Vadim Zeitlin
d807030e1e Factor our hash function used for XRC ids hash map.
Define the hash function in a separate function instead of duplicating it in
XRCID_Lookup() and RemoveXRCIDEntry().

The hash function is extremely simplistic and inefficient right now, it should
be replaced with wxStringHash::stringHash().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66065 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-07 19:34:05 +00:00
Vadim Zeitlin
74c99b8552 Fix memory leak of XRC ids introduced by the ID range support patch.
Fix bug in linked list processing in RemoveXRCIDEntry() added in r66059: it
incorrectly overwrote the XRC id table entry with the next element in the list
instead of just updating the pointer used during iteration.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66064 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-07 19:33:55 +00:00
Vadim Zeitlin
125c2fccdc Reformat long lines in the new part of the xrc sample.
No changes, just break the too long lines.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66063 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-07 19:33:38 +00:00
Vadim Zeitlin
14f0c8b716 Use Connect() of Bind() in the new part of xrc sample.
Use Connect() for compatibility (notably with VC6 which doesn't support
Bind()). Also connect the event handlers on loading the dialog instead of
waiting until the relevant page is selected, this makes the code slightly
simpler as we don't need to remember whether we connected them or not any
longer.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66062 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-07 19:33:30 +00:00
Vadim Zeitlin
f7aaef4d53 Test both ChangeSelection() and SetSelection() in notebook sample.
Test wxBookCtrl::SetSelection() too to be able to check that it does generate
events as expected.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66061 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-07 19:33:22 +00:00
Vadim Zeitlin
409f747ed9 Don't require skipping "page changed" event in wxMSW wxNotebook.
wxMSW wxNotebook implementation used to handle EVT_NOTEBOOK_PAGE_CHANGED event
to update the currently shown page which meant that page changing was broken
if the user code handled and didn't skip this event.

As the other ports don't require the user code to skip this event, don't do
this in wxMSW neither and always update the selected page unconditionally.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66060 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-07 19:33:10 +00:00
Vadim Zeitlin
0526c8cc07 Add support for id ranges to XRC.
Allow to declare ranges of consecutive IDs in XRC by using the "id[n]" syntax.
Show this functionality in the xrc sample and test it in the new unit test.

Also show and test the "object reference" XRC functionality.

Closes #11431.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66059 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-07 14:00:59 +00:00
Vadim Zeitlin
1f6ea93556 Make wxXmlResource::ReportError() wxXmlNode parameter const.
This function (and the related DoReportError()) doesn't need to modify its
"context" argument so take a const-pointer in it.

See #11431.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66058 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-07 14:00:43 +00:00
Vadim Zeitlin
62d3301bf9 Mention the GUI test in the unit test tech note.
Update the tech note to mention the (relatively) new GUI test program too.

See #11431.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66057 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-07 14:00:31 +00:00
Vadim Zeitlin
5fcef18409 Update and reorganize XRC overview to make it more useful.
Emphasize the parts most useful for the new users instead of more advanced
concepts and generally make the text more readable.

Closes #12661.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66056 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-07 14:00:19 +00:00
Peter Cawley
955bad410e Add support for toggle buttons to wxRibbonButtonBar.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66055 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-07 13:44:22 +00:00
Vadim Zeitlin
258593354e Fix build with Borland C++ compiler.
Disable some parts of the code that this compiler had problems with. Add
parentheses to work around its bugs elsewhere.

Closes #12558.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66054 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-07 13:16:20 +00:00
Vadim Zeitlin
0ce0f1e9eb Update all windows associated with the tooltip when it changes in wxMSW.
Although the tooltip was initially correctly set for all windows associated
with it, it was only updated for the main one if its text changed later. This
resulted in leaving the old tooltip for the composite controls such as
wxComboBox or controls with sub-windows such as wxRadioBox.

Fix this by storing all windows associated with the tooltip (for space
efficiency, only allocate the array if necessary however as it will be empty
in the majority of cases) and apply SetTip() to all of them, not just the main
one.

Closes #12659.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66053 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-07 13:12:16 +00:00
Stefan Csomor
2d64bab703 disable code because of OS bug, fixes #12478, fixes #12554
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66052 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-07 11:54:09 +00:00
Peter Cawley
32eb560338 Improve behaviour of scrolling through a ribbon gallery.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66051 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-06 23:46:25 +00:00