Commit Graph

8916 Commits

Author SHA1 Message Date
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
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
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
Vadim Zeitlin
de28042337 Add public wxDocManager::GetAnyUsableView().
This method tries to find the current view harder than GetCurrentView() and
always returns a non-NULL view if there are any open documents at all.

This is used by wxDocManager internally to find the view to apply the user
commands to and will also be needed in the upcoming changes outside of
wxDocManager, so just make this method public, as it seems that it could be
useful in user code too, especially if we could use some better fallback than
the first opened document (e.g. the last document the user interacted with
would be better).

This also clarifies the confusion between GetCurrentView() and GetActiveView(),
see #13296.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73925 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-04 23:59:43 +00:00
Vadim Zeitlin
ee05c45dff Consistently set wxMenuBar parent in all ports.
Previously, wxGTK used the associated frame as wxMenuBar parent, while the
other ports did not. Do set the frame as menu bar parent in all ports now.

Of course, considering that wxMenuBar is not a window at all, this doesn't
necessarily make much sense, but at least it makes the behaviour consistent.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73923 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-04 23:59:37 +00:00
Vadim Zeitlin
4ed3f4abd8 Pass menu events to the handler in the associated menu bar.
We handled the menu events in the menu itself and the associated window, but
not in the menu bar that the menu belonged to. This was unexpected, so allow
handling the events in the menu bar itself too.

Closes #15095.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73922 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-04 23:59:32 +00:00
Vadim Zeitlin
3bad8c3926 Fix menu event handlers calling order.
Pass the menu event to the window associated with the menu first, before
falling back on wxApp.

This required adding yet another flag to keep state in wxEvent but it seems to
be unavoidable as wxMenuBase::SendEvent() calls ProcessEvent() twice and we
must have some way to distinguish the first call from the second one.

Added a test case verifying that the menu events are indeed processed in the
expected order.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73921 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-04 23:59:29 +00:00
Vadim Zeitlin
21160e4544 Add a trivial virtual dtor to suppress g++ warnings.
Add a useless but virtual dtor to ValidationTraverserBase private class to
avoid g++ warnings.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73886 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-04-30 10:35:57 +00:00
Vadim Zeitlin
3bc1418b81 Fix wxEVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK event type name.
Fix incorrect conflict resolution between the changes of r73823 and r73850:
the first renamed wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICKED to
wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK while the latter renamed it
to wxEVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICKED. The proper new name is
wxEVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK, use it instead.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73851 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-04-25 11:56:55 +00:00
Vadim Zeitlin
ce7fe42e84 Provide shorter synonyms for wxEVT_XXX constants.
Use the same short names as are used by the event table macros for the event
type constants themselves. This makes them much more comfortable to use, e.g.
Bind(wxEVT_BUTTON) compared to Bind(wxEVT_COMMAND_BUTTON_CLICKED).

The old long names are still kept for backwards compatibility and shouldn't be
removed as it doesn't really cost anything to continue providing them, but all
new event types should only use the short versions.

Closes #10661.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73850 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-04-25 10:11:03 +00:00
Vadim Zeitlin
0623b0f001 Add wxSocketBase::GetSocket().
Provide direct access to the underlying socket descriptor.

Closes #8829.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73837 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-04-22 10:45:30 +00:00
Vadim Zeitlin
e3b507e93e Check that focused window is non-NULL before using it in wxComboCtrl.
wxWindow::FindFocus() may return NULL, don't crash by attempting to
dereference the pointer returned by it.

Closes #15146.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73809 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-04-11 16:54:41 +00:00
Vadim Zeitlin
f75b1bd31c Make wxToolBar styles consistent and add wxTB_DEFAULT_STYLE.
Don't include wxBORDER_NONE in neither wxToolBar ctor and Create() nor
wxFrame::CreateToolBar() flags parameter, override GetDefaultBorder() in
wxToolBar itself instead to use the border style appropriate for the current
platform by default. This has the same effect -- the default border style is
used unless another one is explicitly specified -- but is more clear and
consistent.

Also add wxTB_DEFAULT_STYLE for consistency with the other classes.

Closes #15037.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73757 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-31 01:12:27 +00:00
Vadim Zeitlin
00a399c062 Remove wxTextCtrl::OnEnabled() hack from wxGTK.
Don't change the background colour when the control is being enabled or
disabled, it doesn't seem necessary and it's unclear why was this added by
r10179 in the first place. It does result in problems however as it could
somehow make the selection of wxTextCtrl invisible when it lost focus and so
fixes a serious usability problem which happened to all wxTextCtrls for which
a wxEVT_UPDATE_UI handler using wxUpdateUIEvent::Enable() was defined.

Closes #14898.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73756 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-31 01:12:21 +00:00
Vadim Zeitlin
8dd4c6113d Add a comment with links to proper command line parsing rules.
No real changes, just added a comment with links to the descriptions of the
correct rules that we should use in ConvertStringToArgs().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73747 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-31 01:11:47 +00:00
Vadim Zeitlin
ce4ae5639b Added wxBookCtrlBase::FindPage().
Add helper function to find the index of the given page.

Closes #15125.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73734 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-29 19:53:13 +00:00
Vadim Zeitlin
46e2a1b8c2 Fix assert when constructing invalid wxGBSpan inside wxWidgets itself.
Various wxGridBagSizer methods returning wxGBSpan asserted when trying to
construct an invalid wxGBSpan as its components must now (since r66964) be
positive.

Fix this by adding a special new method to wxGBSpan for constructing such
invalid spans and use it now.

Closes #15124.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73731 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-27 23:10:25 +00:00
Vadim Zeitlin
1127eb3a6a Add wxDocManager::FindDocumentByPath() helper.
Simply refactor the code which already existed inside wxDocManager in a new
public method.

Closes #15126.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73730 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-27 23:10:20 +00:00
Vadim Zeitlin
49cfad613b Fix display of empty wxStaticBoxSizers.
wxStaticBoxSizer should be considered shown if its static box is shown, even
if it has no elements (or all of them are hidden).

Closes #14698.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73729 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-27 23:10:15 +00:00
Vadim Zeitlin
beba4fa694 Add wxDocument::Activate() method.
Make activating the first (and, in the vast majority of cases, the only) view
of the document easier.

Closes #15120.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73720 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-26 11:00:59 +00:00
Vadim Zeitlin
cc00695bb7 Don't create temporary file in wxDebugReport ctor.
Just use wxFileName::GetTempDir() instead of creating a file in the temporary
directory and then using its path.

Closes #15103.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73672 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-16 17:27:31 +00:00
Vadim Zeitlin
3cca1b3d8b No real changes, just use wxString::clear() instead of assignment.
Consistently use clear() everywhere instead of assigning wxEmptyString in some
places and wxT("") in some others to a string in order to clear it.

See #15091.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73632 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-09 15:08:40 +00:00
Vadim Zeitlin
6aa4e3989f Return false from wxFileName::AppendDir() and InsertDir() on failure.
Give the caller a way to know whether the directory was valid or not.

Closes #15091.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73631 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-09 15:08:36 +00:00
Vadim Zeitlin
87b621a5b7 Fix compilation for MinGW with wxUSE_IPV6==1.
MinGW doesn't provide wspiapi.h header, so only include it when using MSVC and
include ws2tcpip.h which directly declares the functions used for the other
compilers.

This doesn't have quite the same semantics but it's better than failing to
compile at all.

See #15005.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73626 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-09 15:08:13 +00:00
Vadim Zeitlin
c35c7df103 Don't give error message for non-existent paths in wxFileSystemWatcher.
The file we're trying to watch might have been just deleted, this is an
unavoidable (and not only in theory but also in practice when watching busy
directories) race condition so don't give an error message if this does happen
but simply return false from Add().

Closes #15051.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73591 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-02 12:11:40 +00:00
Vadim Zeitlin
f6268c151c Make wxRect parameter of wxRichToolTip::ShowFor() const.
This parameter is read-only, so accept a const pointer here.

See #15060.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73589 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-02 12:11:32 +00:00
Václav Slavík
2aab96f58d Add wxPreferencesEditor class.
Implements native UI for preferences editing.  In particular, the API
handles the differences between modal (Windows) and non-modal (OS X) preferences windows and provides platform's native look.

Currently implemented natively for wxOSX/Cocoa, wxGTK and Windows (the latter is used as a fallback generic implementation as well).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73576 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-02-28 16:29:05 +00:00
Vadim Zeitlin
de6e6d08b2 Fix compilation in !wxUSE_MENUS case.
wxFrameBase::ShouldUpdateMenuFromIdle() should be defined inside "#if
wxUSE_MENUS" as it's only declared when wxUSE_MENUS==1.

Closes #15062.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73564 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-02-24 13:48:26 +00:00
Stefan Csomor
116d7e5805 closes #13841
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73517 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-02-14 08:07:24 +00:00
Vadim Zeitlin
e949d38c4e Don't recurse into top level children when validating recursively.
Even with wxWS_EX_VALIDATE_RECURSIVELY flag, we should never validate the top
level children (e.g. dialogs) when validating the parent window. This is never
useful and can be completely unexpected.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73482 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-02-06 12:48:12 +00:00
Vadim Zeitlin
5abc0d2197 Refactor children traversal in wxWindow::TransferData{To,From}Window().
No real changes, just factor out the logic for children traversal into a
helper template class and reuse it in Validate() and both TransferData()
methods to avoid triplicating it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73481 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-02-06 12:48:09 +00:00
Vadim Zeitlin
968b44d37b Ignore empty LC_XXX variables in locale detection code.
If LC_ALL or LC_MESSAGES is set but empty, ignore it and use the next
environment variable. This is consistent with the standard setlocale()
behaviour which only uses LC_ALL if it is set and not empty.

Closes #15006.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73466 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-02-05 20:46:26 +00:00
Vadim Zeitlin
25aa4f927a No changes, just remove unused part of expression.
We don't do anything with the result of inserting the watch in
fswatchercmn.cpp.

Closes #15027.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73464 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-02-05 20:46:18 +00:00
Vadim Zeitlin
8f9e2a5558 Avoid harmless warning about comparing unsigned with 0.
Fix warning in assert in wxProcess::SetPriority(): don't compare unsigned
priority with wxPRIORITY_MIN which is just 0, the condition is always true.

Closes #14931.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73456 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-02-04 16:16:00 +00:00
Steve Lamerton
236cff7334 Rename all WEB_VIEW* style identifiers to WEBVIEW*.
This makes wxWebView consistent with the rest of the toolkit. 

Closes #15013

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73453 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-02-01 09:38:53 +00:00
Vadim Zeitlin
f668749377 Initialize all wxHTTPStream members in ctor.
Don't leave m_httpsize and m_read_bytes uninitialized.

Closes #14993.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73436 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-23 11:44:30 +00:00
Jouk Jansen
d599097d03 Update openVMS compile support
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73429 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-22 07:18:35 +00:00
Vadim Zeitlin
ae72623b64 Add wxCheckListBox::GetCheckedItems() helper.
This method is similar to wxListBox::GetSelections() and allows to retrieve
all checked items at once.

Closes #14969.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73422 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-21 11:18:55 +00:00
Paul Cornett
784d9056f4 sizeof(char) is 1. By definition.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73407 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-20 03:08:33 +00:00
Vadim Zeitlin
eaf4bde6e6 Add wxProcess::SetPriority() to allow setting the priority of child processes.
This uses the same conventions as wxThread::SetPriority() but works on the
entire process.

Closes #14931.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73406 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-20 02:10:12 +00:00
Vadim Zeitlin
12ce0a7402 Fix wxDateTime::GetWeekOfYear() for the days in the last week of the year.
The code took into account the possibility that the days in the beginning of
the year might belong to the last week of the previous year but not that the
days at the end of the year could belong to the first week of the next year.

Closes #14973.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73402 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-20 02:09:48 +00:00
Paul Cornett
4787c92d39 use const arrays for wxDC array parameters, closes #10712
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73382 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-18 17:27:51 +00:00
Steve Lamerton
4c687fff5e Allow registering of custom wxWebView backends.
Add wxWebViewFactory as an abstract factory to provide backend creation. Remove old factory methods using wxWebViewBackend enum in favour of the new wxString based method.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73369 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-13 19:22:24 +00:00
Paul Cornett
f4120538eb define wxComboBox rtti stuff even when wxUSE_COMBOCTRL==0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73346 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-05 05:08:43 +00:00
Vadim Zeitlin
a246ab8b5e Attempt to fix MSVC6 compilation after the previous commit.
Include <shlobj.h> before our wx/msw/missing.h, otherwise many things were
redefined.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73345 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-04 22:14:47 +00:00
Vadim Zeitlin
6fdda829b4 Including wx/msw/missing.h to define INVALID_FILE_ATTRIBUTES for MSVC6.
This header is also needed in filename.cpp (see r73317 for a previous commit
fixing the same problem in filefn.cpp).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73344 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-04 20:13:03 +00:00