Commit Graph

52314 Commits

Author SHA1 Message Date
Vadim Zeitlin
a7dc53953b Add an explicit SetFocus() call to fix wxTreeCtrl unit test.
Fixing the implicit focus grabbing by wxTreeCtrl::SelectItem() in r65905 broke
its unit test case as the simulated key event was not delivered to wxTreeCtrl
itself any more.

Fix this by simply setting the focus to the tree explicitly before sending it
any key strokes.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66170 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-16 22:38:19 +00:00
Vadim Zeitlin
a48cf5e2d3 Correct wxMSW wxToolTip behaviour for wxRadioBox items tooltips.
The assert added in r66053 checking that we couldn't have tooltips for child
windows if we didn't have the tooltip for the main one turned out to be wrong,
at least in wxRadioBox case it's perfectly possible to have the tooltips for
the individual radio buttons without having one for the box itself.

Replace the assert with a simple if check.

This fixes a unit test failure in RadioBoxTestCase.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66169 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-16 22:38:13 +00:00
Vadim Zeitlin
6ab66823d8 Don't use some "recent" C++98 features not supported by VC6.
Don't return void values nor redeclare the same variable in for loops to fix
VC6 compilation.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66168 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-16 22:38:06 +00:00
Vadim Zeitlin
496dbbe76e No changes, just refactor common code in wxImage cloning functions.
Extract code common to several wxImage methods creating new images based on an
existing one in a new MakeEmptyClone() method.

Closes #12682.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66167 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-16 22:37:59 +00:00
Vadim Zeitlin
e4f54cce1e Fix crashes in wxDateTime::ParseDate() for some invalid dates.
Parsing an incomplete date with nothing but whitespace and/or date delimiter
characters at the end crashed as we happily went beyond the end of string.

Fix this by not using a loop which didn't check for the iterator validity.

Closes #12685.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66166 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-16 22:37:52 +00:00
Jouk Jansen
3e90629b6b Update OpenVMS makefile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66161 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-15 08:52:56 +00:00
Vadim Zeitlin
a24b341aea VC6 compilation fix in wxDIB::Create().
Deal with the lack of scope around variables declared inside the for loop in
this compiler, previously it gave "error C2360: initialization of 'x' is
skipped by 'case' label" message and also complained about redefinition of 'x'.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66157 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-15 00:22:01 +00:00
Vadim Zeitlin
806f8df360 Fix incorrect use of word "alternative" in the documentation.
There can't be only one alternative.

Closes #12681.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66156 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-15 00:11:21 +00:00
Vadim Zeitlin
5a1d70f925 Restore code for closing inherited file descriptors in the child.
The code closing all file descriptors inherited from the parent in the child
process created by wxExecute() was  removed in r57324 by mistake (probably
due the fact that its meaning was poorly explained) but we still do need to do
this, of course, to avoid descriptor "leaks" (e.g. the parent couldn't really
close any of them).

Restore the code for closing all unneeded file descriptors in the child in
slightly modified form and add a comment pointing to an URL explaining how to
do it better in the future.

Closes #12636.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66153 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-14 14:04:44 +00:00
Vadim Zeitlin
3b81609771 Fix spurious errors when writing to the child process stdin under Unix.
Since the child pipe was made non-blocking in r65993, it became possible to
write to child process without deadlocking when the pipe became full. However
this still resulted in an error from wxFileOutputStream as it didn't handle
EAGAIN returned from write() any differently than any other error, even though
it is an expected situation in this particular case.

Change Unix wxExecute() to use wxPipeOutputStream which ignores EAGAIN unlike
wxFileOutputStream to fix this.

See #12636.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66152 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-14 14:04:37 +00:00
Vadim Zeitlin
f895c3fce2 No real changes, just reamed HAS_PIPE_INPUT_STREAM.
Renamed the symbol indicating whether pipe-based streams are available from
HAS_PIPE_INPUT_STREAM to HAS_PIPE_STREAMS as it's not really input-specific.

See #12636.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66151 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-14 14:04:27 +00:00
Vadim Zeitlin
65fe93d8a5 Add wxFile::{Get,Clear}LastError() functions.
Remember the errno of the last file operation instead of just remembering
whether there was an error or not.

See #12636.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66150 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-14 12:09:59 +00:00
Vadim Zeitlin
0547ad09cc Handle image hot spot in wxImage::Rotate180().
Set the hot spot coordinates correctly for the image returned from
Rotate180(), just as it's already done by Rotate90().

Closes #12680.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66149 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-14 12:09:51 +00:00
Vadim Zeitlin
8524dec372 Add wxImage::Rotate180() function.
Closes #12679.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66146 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-14 01:02:35 +00:00
Vadim Zeitlin
000c2be40d Handle hot spots in wxImage::Rotate90().
Set hot spot coordinates for the rotated image if the original one had them.

Also handle the case when the source image has both alpha and mask correctly.

Closes #3680.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66145 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-14 01:02:27 +00:00
Vadim Zeitlin
f8314f3c20 Don't use standard menu ids in the unit test to avoid Mac problems.
wxOSX rearranges the standard menu items such as wxID_EXIT and wxID_ABOUT and,
for the former, changes its text to "Quit", so don't use them in the menu unit
test which expects to find the items in the menus to which they were added and
exactly with the labels used when adding them.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66144 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-13 17:13:29 +00:00
Vadim Zeitlin
42b4e5cd2a Don't put cursor at the end of wxGridCellEnumEditor control.
Putting the cursor to the end of the control when the editing starts doesn't
make much sense as this should be the default behaviour anyhow and, worse,
this results in an assert under wxMSW where a read-only wxComboBox doesn't
have any cursor to move.

Closes #12446.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66143 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-13 15:03:33 +00:00
Vadim Zeitlin
18198aaea2 Initialize scrollbar positions in wxGTK correctly.
The scrollbar positions stored in wxWindow::m_scrollPos were not initially
correct in wxGTK because wxScrollHelper::SetScrollbars() didn't update them
and only set the values of the underlying GtkAdjustments themselves. This
resulted in filtering out of the first scroll event as the code (wrongly)
believed that the scrollbar position hadn't changed.

Fix this by setting m_scrollPos to the real scrollbar positions.

Closes #12468.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66142 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-13 15:03:26 +00:00
Vadim Zeitlin
681694bca9 Add a unit test checking selection updating in virtual wxListCtrl.
Verify that the selection is updated correctly after the number of items in
the control is decreased.

See #12378.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66141 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-13 15:03:20 +00:00
Vadim Zeitlin
0231d18f1a Don't assert if config file contains an invalid boolean value.
Asserts should be only triggered by programming errors, not by user actions,
and the assert checking that the value is either 0 or 1 in
wxConfigBase::DoReadBool() could happen if the user edited the file and put a
wrong value into it.

Replace the assert with a warning message.

See #11437.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66140 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-13 15:03:10 +00:00
Vadim Zeitlin
65571ec7bf Add a beginning of wxMenu unit test.
Test wxMenu and wxMenuBar item search and counting functions.

See #12672.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66139 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-13 15:03:02 +00:00
Vadim Zeitlin
553d672896 Make menu operations always work with "Test" menu in the sample.
Some tests in the "Menu" menu of the menu sample worked with the "Test" menu
while others used the last one ("Help" initially but possibly something else
if the test commands from "Menubar" menu were used).

Harmonize all menu commands to use the "Test" menu now.

See #12668.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66138 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-13 15:02:50 +00:00
Vadim Zeitlin
f71adb5029 Fix resizing of wxGrid columns when they were reordered.
The column resizing code in wxGrid didn't take account of the fact that the
column positions and indices could be different. Correct it by inserting calls
to wxGrid::GetColAt() and GetColPos() in a new wxGridOperations::GetLineBefore()
method.

Closes #11984.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66137 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-13 15:02:42 +00:00
Jouk Jansen
76d23441fc Update SETUP for OpenVMS
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66124 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-12 07:15:46 +00:00
Michael Wetherell
948c6134e7 Use wxFS_SEEKABLE flag loading images.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66121 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-11 15:51:09 +00:00
Vadim Zeitlin
f32848c53f Improve check for ASCII locale in wxGTK initialization code.
Use wxFontMapper::GetEncodingFromName() to check if the current locale
encoding is ASCII instead of just comparing the name with "US-ASCII" which is
not the name used by most platforms (e.g. current Linux systems call this
encoding "ANSI_X3.4-1968").

This avoid creating a wxCSConv object for ASCII encoding unnecessarily on
startup.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66120 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-11 12:09:30 +00:00
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