Commit Graph

32008 Commits

Author SHA1 Message Date
Stefan Csomor
7a36d9c7c1 using scan-line polygon conversion for constructing wxregion
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74049 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-24 16:54:37 +00:00
Robin Dunn
3fc2ee048d Add wxRTTI for the wxFileSystemWatcherEvent class
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74048 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-24 16:05:33 +00:00
Vadim Zeitlin
268331f0db Fix regression in wxGTK wxFilePickerCtrl due to wxFileDialog changes.
Revert the changes of r72979 and fix wxFileDialog::GetDirectory() return
value bug (see #14786) differently to avoid breaking wxFilePickerCtrl which
relies on getting wxEVT_BUTTON event when the associated dialog is dismissed.

Closes #15218.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74043 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-22 13:36:14 +00:00
Vadim Zeitlin
3ca5e2db2d Fix GTK+ errors during wxFilePickerCtrl destruction after recent changes.
We do need to destroy the dialog (see #15156), but we must not destroy its
GtkWidget as it is owned by GtkFileChooserButton itself, so amend the changes
of r74030 to only destroy the C++ object, not GTK+ one.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74042 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-22 13:36:10 +00:00
Vadim Zeitlin
50f12a6313 Use the best instead of current page size in OS X preferences dialog.
The page, which is typically just a wxPanel, is usually not created with the
correct size, so resize it to its best size before showing it in the
preferences dialog.

This makes OS X behaviour consistent with MSW and GTK and is generally more
useful.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74041 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-21 23:47:20 +00:00
Vadim Zeitlin
48e0574704 Fit modeless preferences dialog to its contents too.
When a preferences dialog is shown non-modally, it should still fit to the
contents of its pages, so move the code added for the modal case in r73624
to the base wxGenericPreferencesEditorImplBase class.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74040 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-21 23:17:29 +00:00
Vadim Zeitlin
1b495a94e6 Fix last count value after ReadAll() and WriteAll().
This corrects the bugs introduced when applying the patch adding these
functions in r74034: we can't simply use m_lastcount directly in them because
it's also modified by each call to Read() and Write(), so do use the temporary
variable.

See #12056.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74038 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-20 15:26:22 +00:00
Vadim Zeitlin
691745ab41 Add a public wxModalDialogHook class for intercepting modal dialogs.
Extract wxModalDialogHook from wx/testing.h into its own wx/modalhook.h,
extend it to allow to be notified not only about showing modal dialogs but
also about dismissing them and document it and show its use in the dialogs
sample.

Also replace all the WX_TESTING_SHOW_MODAL_HOOK macros occurrences with
WX_HOOK_MODAL_DIALOG.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74037 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-20 13:15:41 +00:00
Vadim Zeitlin
9bc3af3e64 Fix return value of wxCountingOutputStream::LastWrite().
Don't reuse m_lastcount in wxCountingOutputStream to store the stream length,
this doesn't make any sense and results in LastWrite() returning completely
wrong results as it expects m_lastcount to be the number of bytes written by
the last operation.

Add m_lastPos member to store the stream length instead.

Also correct wxCountingOutputStream documentation.

Closes #15215.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74036 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-20 13:15:26 +00:00
Vadim Zeitlin
0f5378d414 Make code reading BMP files more robust.
Check that we did correctly read the requested amount of data instead of
blindly assuming that the needed (from the point of view of BMP format
specification) number of bytes are always available -- this doesn't work so
well with corrupted or truncated files.

Closes #12056.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74035 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-20 13:15:21 +00:00
Vadim Zeitlin
cc437b9654 Add wxInputStream::ReadAll() and wxOutputStream::WriteAll().
Unlike Read() and Write(), these functions always transfer exactly the
specified number of bytes or fail.

See #12056.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74034 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-20 13:15:16 +00:00
Vadim Zeitlin
784eebb38c Propagate wxEVT_COMMAND_TEXT_UPDATED renaming to the real stc.cpp.
wxEVT_COMMAND_TEXT_UPDATED was renamed to wxEVT_TEXT in the generated stc.cpp
but not in stc.cpp.in it was generated from. Do it there too to prevent the
correct version in stc.cpp from being overwritten during the next regeneration.

See #10661.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74032 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-19 12:47:34 +00:00
Vadim Zeitlin
1cdaa5f251 Trigger wxLog auto-creation when getting old logger in wxLogChain ctor.
This ensures that a program that uses wxLogChain or one of the classes
deriving from it, such as wxLogWindow, can do it directly without worrying
about the standard logging being completely suppressed if the default log
target hadn't been instantiated yet.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74031 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-19 12:38:22 +00:00
Vadim Zeitlin
0553426814 Delete the associated dialog in wxGTK wx{File,Dir}Button.
The code seemed to rely on Destroy() being called for deleting the dialog, but
it's actually not used for child windows, so do it in dtor instead.

Closes #15156.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74030 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-19 12:38:18 +00:00
Steve Lamerton
938506b1f7 Use wxCOMPtr throughout the wxWebViewIE Find code.
As well as making the code a bit neater this seems to fix some memory issues.

See #15207.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74020 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-18 14:07:58 +00:00
Vadim Zeitlin
43c42c18d3 Test using wxString::ToCDouble() in wxAny.
Apparently the heap corruption problems in wxOSX/PPC build are due to using
wxString::ToDouble() and not anything done specifically in wxAny at all.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74019 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-17 20:00:10 +00:00
Vadim Zeitlin
615f9ff096 Allow wxPreferencesEditor::Dismiss() to work when using modal dialogs too.
The modal dialog case is not really different, the dialog may still need to be
dismissed if the associated object doesn't exist any longer.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74010 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-16 14:43:09 +00:00
Vadim Zeitlin
dc5d118e65 Use "<Application> Preferences" as generic wxPreferencesEditor dialog title.
This is more appropriate than just "Preferences" under MSW and GTK which use
the generic wxPreferencesEditor, OS X has its own native version which
continues to correctly use "Preferences" for the title.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74007 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-16 14:42:59 +00:00
Vadim Zeitlin
654c4b7b14 Allow to specify the title used by wxPreferencesEditor window.
Customize the title is useful for "Settings"-style windows which are used for
editing the properties of the given object, that should be identified in the
window title, as opposed to the global program preferences.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74006 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-16 14:42:56 +00:00
Vadim Zeitlin
f3c0bcfab0 Open generic wxPreferencesEditor at last shown page.
This is very convenient under systems using a modal dialog for the preferences
editor implementation (such as MSW), as it allows to do several changes in the
same page without having to select it manually every time.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74005 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-16 14:42:52 +00:00
Vadim Zeitlin
2c544b4026 Rename CreateWindow() to CreateDialog() in generic wxPreferencesEditor code.
No real changes, just rename a method to avoid confusion with
wxPreferencesPage::CreateWindow().

Also return the concrete type of the dialog, not a base wxDialog, as it will
be useful for future changes.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74004 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-16 14:42:50 +00:00
Vadim Zeitlin
4d623b67ee Add wxEVT_DIRCTRL_FILEACTIVATED wxDirCtrl event.
Allow processing double clicks on the files in the directory control.

Closes #15208.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74003 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-16 14:33:07 +00:00
Vadim Zeitlin
40c7c7f473 Rename wxEVT_DIRCTRL_CHANGED to wxEVT_DIRCTRL_SELECTIONCHANGED.
This is more consistent with the existing wxEVT_FILECTRL_SELECTIONCHANGED.

Closes #15209.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74002 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-16 14:33:01 +00:00
Vadim Zeitlin
c6dae1699e Allow associating a validator with wxGridCellTextEditor.
Add wxGridCellTextEditor::SetValidator() for finer control over text input in
wxGrid.

Closes #15176.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74001 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-16 14:32:55 +00:00
Václav Slavík
2e57ca641b Call wxThread::Create() from Run() automatically.
In the common case, when Run() is called immediately after Create() and
default stack size is used, it's unnecessarily verbose.  Just create the
thread in Run() if it wasn't done explicitly yet.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73999 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-16 14:15:46 +00:00
Václav Slavík
0dd300cab5 Move POSIX implementation of wxThread::Create() to wxThreadInternal.
No real changes, just refactoring to follow the same pattern as other
implementations use.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73998 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-16 14:15:42 +00:00
Václav Slavík
5063450e48 Lock m_critsect in POSIX wxThread::Create().
This is the documented behavior: all methods accessing m_internal should
lock it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73997 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-16 14:15:38 +00:00
Vadim Zeitlin
9b237f109c Fix wxXmlNode self-assignment.
Don't lose the node contents if it's assigned to itself.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73992 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-15 21:45:25 +00:00
Vadim Zeitlin
0b3e395a5c Fix memory leak in wxXmlNode::operator=().
We must delete all children and attributes in the node being overwritten and
not just the first one of each.

Add a unit test exercising this code to be able to check that valgrind doesn't
report memory leak any more after the fix.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73990 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-15 20:01:58 +00:00
Vadim Zeitlin
2747a51b24 Restore ability to parse hours only with wxDateTime::ParseTime().
This was accidentally removed in r51059, but worked in 2.8 and so should
continue to work.

Also add a unit test to ensure that this doesn't get broken again in the
future.

Closes #15204.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73988 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-15 13:05:49 +00:00
Vadim Zeitlin
b561290c3a Fix crash in wxGTK wxPopupWindow when creating it without parent.
Popup windows don't necessarily have a parent, so don't crash if parent
pointer is NULL in wxPopupWindow::Create().

Closes #15173.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73987 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-15 13:05:45 +00:00
Václav Slavík
a68c185d22 Move wxTransform2D methods' bodies to geometry.cpp.
They are all virtual and so cannot be inlined anyway and having them in
the header like this confuses the g++ linker into always pulling some of
the methods in merely because geometry.h was included.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73984 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-14 16:58:20 +00:00
Vadim Zeitlin
5ec34ab09c Fix spurious g++ warning about possibly uninitialized variable use.
The variables are actually initialized in all cases if the enum has valid
value but the compiler doesn't seem to take this into account, so just
initialize them always to avoid the warnings.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73968 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-12 20:34:37 +00:00
Stefan Csomor
49ee8d1f65 deactivating r65382 see #12267 (which does not seem to happen anymore even without this change), fixes #14938,
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73967 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-12 20:18:57 +00:00
Stefan Csomor
d9307d006e applying editor part of patch, see #15003
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73961 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-10 18:31:51 +00:00
Vadim Zeitlin
94474c2e0b Use wxjpeg_boolean in libtiff sources.
This fixes compilation problem when using libtiff with the built-in modified
version of libjpeg that uses wxjpeg_boolean instead of boolean as it doesn't
define boolean at all in its headers, but just wxjpeg_boolean.

Closes #15179.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73960 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-10 13:25:29 +00:00
Vadim Zeitlin
54753c3d75 Fix duplicate wxContextMenuEvent generation in wxMSW.
Prevent WM_CONTEXTMENU from being propagated upwards the window parent chain
by DefWindowProc(), we already do it ourselves and not marking the message as
processed could result in multiple calls to the same wxEVT_CONTEXT_MENU
handler if it skipped the event.

See #13683.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73949 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-08 11:21:41 +00:00
Vadim Zeitlin
0ba28d4196 Fix wrong wxUSE_ACCEL around wxUSE_HOTKEY-related code in wxMSW.
Closes #15193.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73948 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-08 11:21:37 +00:00
Robin Dunn
58d1949f8c Call InitializeModules instead of just module->Init(). This is needed so the module will have the proper state and not cause an assert when the modules are cleaned up. Since InitializeModules will skip any that are already initialized it doesn't hurt to call it for modules loaded later.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73946 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-07 21:09:31 +00:00
Vadim Zeitlin
10d4023e0d Test for NULL associated frame in doc/view event handling code.
A view might not have any associated frame at all (this is probably a bad idea
but we don't seem to explicitly forbid this).

This should have been part of r73943, see #14314.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73945 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-07 15:56:53 +00:00
Vadim Zeitlin
82dfe81b28 Fix for event propagation in "single document" doc/view mode.
Ensure that the events still get to wxDocManager even when we are using the
single document mode in which a view can be directly associated with the
parent frame.

Closes #14314.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73943 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-07 15:07:28 +00:00
Julian Smart
31be840031 Applied patches for #15184 (wxRichTextAction fix for when the command identifier is wxRICHTEXT_CHANGE_OBJECT) and #15185 (Make adding/deleting wxRichTextTable rows and columns undoable)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73941 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-06 13:39:01 +00:00
Julian Smart
ef3f06797d Applied patch #15183 (wxRichTextTable::DeleteColumns doesn't remove the deleted columns: dghart)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73939 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-06 08:54:48 +00:00
Vadim Zeitlin
789ab84044 Add IEEE 754 single/double precision support to wxDataStream classes.
Allow to optionally raed/write float/double values in IEEE 754 single/double
precision formats, respectively, instead of always using the extended
precision format for both of them.

This makes the code more flexible, allowing for better interoperability with
the other programs, and also allows to implement floating point functions in
these classes even when wxUSE_APPLE_IEEE is turned off (as can be the case
because of the licencing concerns for the code in extended.c).

Closes #10625.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73938 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-06 00:31:03 +00:00
Vadim Zeitlin
337bbb7a06 No real changes, just rename double variables to "d".
Don't use "i" or "f" for double variable names, this is confusing, especially
when we do it inconsistently.

See #10625.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73934 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-06 00:30:49 +00:00
Vadim Zeitlin
61eb6bb673 Extract common parts of wxData{In,Out}putStream in a common base class.
No real changes, just put BigEndianOrdered() and SetConv() methods and the
corresponding fields in a common wxDataStreamBase class instead of duplicating
them in wxDataInputStream and wxDataOutputStream.

This will make it simpler to add more features common to both classes in the
future, see #10625.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73933 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-06 00:30:42 +00:00
Vadim Zeitlin
9618496b6a Don't use gtk_file_chooser_set_filename() for save file dialogs.
This seems to be broken in old GTK+ versions, so use
gtk_file_chooser_set_current_name() and gtk_file_chooser_set_current_folder()
for save file dialogs which seem to work in all versions.

Closes #15133.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73932 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-05 16:17:50 +00:00
Steve Lamerton
ae4adc3d06 Speculative fix for wxWebView unit tests on OSX.
Use stringByEvaluatingJavaScriptFromString as it is guaranteed to return an NSString.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73931 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-05 11:48:47 +00:00
Vadim Zeitlin
49211791f9 Correct misleading error message in locale mismatch assert.
Don't advise people to use non-existent (or at least not publicly accessible)
wxSetLocale(), they should just create wxLocale objects instead.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73930 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-05 00:07:05 +00:00
Vadim Zeitlin
a7c0de8a98 Fix event handling order in doc/view framework.
Ensure that the events are always (provided there is an open document)
processed in the following order:

1. wxDocument
2. wxView
3. wxDocManager
4. wxDocChildFrame
5. wxDocParentFrame
6. wxApp

Do this by forwarding the events from wxDocParentFrame to wxDocChildFrame
first and forward them from there to wxDocManager which -- and this part
remains unchanged -- in turn forwards them to the active wxView which finally
forwards them to wxDocument. This requires another condition in the event
handling code as we still must forward from wxDocParentFrame to wxDocManager
itself if there are no active children at all, but this is the only way to
have the same event order in all cases, whether the event is originally
received by wxDocChildFrame or wxDocParentFrame.

Document this and add a unit test verifying that things indeed work like this.

See #14314.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73928 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-04 23:59:56 +00:00