Commit Graph

33719 Commits

Author SHA1 Message Date
Vadim Zeitlin
e91fb2bbee Fix crash when using wxMessageBox before creating wxTheApp.
CheckIfCanBeUsedAsParent() used by wxMessageBox ctor shouldn't dereference
wxTheApp unconditionally, otherwise it's impossible to show a message box
before creating the application object or after destroying it without crashing.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78233 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-05 22:18:13 +00:00
Vadim Zeitlin
c6cd1a305e Don't put wxMenu::MSWGetMenu() inside wxUSE_OWNER_DRAWN check.
This doesn't make any sense, this function is not related to the owner drawing
code at all and should always be available.

This corrects the changes of r70316, see #13851.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78232 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-05 22:18:07 +00:00
Vadim Zeitlin
0c61827188 Remove unnecessary assert from wxMenuBar::MSWGetMenu().
This assert was triggered after the changes of the previous commit as we can
get WM_MENUSELECT with menu bar handle as parameter from Windows and still
search for the menu with this handle -- and there is nothing wrong with this,
so just return NULL but without asserting in this case.

This corrects the changes of r67355, see #13080.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78231 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-05 22:18:01 +00:00
Vadim Zeitlin
2d20e3fc51 Harmonize wxMenuEvent handling between all major ports.
Send these events to the menu itself first, then to the menu bar containing
it or the window invoking it if it's a popup menu and, finally, to the top
level window in all of wxGTK, wxMSW and wxOSX.

In particular, this ensures that help strings are now shown in the parent MDI
frame status bar by default, even when the menus are attached to the client
MDI frame or shown as popup menus.

At the implementation level, this logic is now encapsulated in a new static
wxMenu::ProcessMenuEvent() method which can be easily modified and reused in
other ports.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78230 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-05 22:17:58 +00:00
Vadim Zeitlin
62763ad541 Fix fields initialization in wxCommandEvent copy ctor.
Neither m_isCommandEvent nor, worse, m_propagationLevel was set correctly for
wxCommandEvent objects constructed using copy ctor -- and hence Clone(). This
means that such events were not propagated upwards the window hierarchy, quite
possibly resulting in mysterious bugs.

Fix this now by initializing these fields in both the normal and copy ctors.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78229 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-05 22:17:52 +00:00
Vadim Zeitlin
693abd284f Refactor: extract menu event handling logic from wxMenu::SendEvent().
Make this logic available for reuse with the events of different kind, e.g.
wxMenuEvent in the upcoming commit.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78228 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-05 22:17:48 +00:00
Vadim Zeitlin
d7653d9c0c Remove "isPopup" parameter from DoSendMenuOpenCloseEvent() in wxMSW.
This parameter is redundant, we can find out whether a menu is a popup one or
not from the menu itself, assuming that we always have a valid wxMenu pointer
for popup menus events, which really should be the case (we may not have one
for the events from system menus).

This allows to handle popup menu events case in the base class version of
MSWFindMenuFromHMENU() which will allow to reuse it from places other than
DoSendMenuOpenCloseEvent() without code duplication now.

There should be no changes to the behaviour, this is just a simplification.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78227 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-05 22:17:43 +00:00
Vadim Zeitlin
90639b8339 Send idle events from inside wxYield() in all ports, including wxMSW.
This means it can be now done in wxEventLoopBase itself and calls to
ProcessIdle() in the port-specific code are not needed any more, so remove
them.

This introduces a change in behaviour for wxMSW, where idle event handlers
were not invoked from inside wxYield() at all previously, and for wxOSX, where
only a single idle event is now generated from wxYield() instead of a stream
of them until no idle handler needs any more of them as before. But on the
bright side, the new behaviour seems to make most sense and is now the same in
all ports.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78222 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-05 22:17:23 +00:00
Vadim Zeitlin
340d7f67b6 Use DTM_GETIDEALSIZE to implement wxDateTimePickerCtrl::DoGetBestSize().
If possible, i.e. when running under Vista or later, just ask the control for
its best size instead of trying to approximate it ourselves.

Notice that we still use our own height, to ensure that it's the same as for
the text controls, but it's the width that really counts.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78221 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-05 22:17:17 +00:00
Vadim Zeitlin
9fc78c8167 Add wxLocale::GetOSInfo() and use it in MSW wxDateTimePickerCtrl.
This fixes the size of wxDateTimePickerCtrl in programs that don't set any
specific locale: previously, the standard "%m/%d/%y" format was used for
computing the best size of the control in this case, but this could have been
significantly shorter than the format actually used (compare with the default
"%d %b, %Y"), resulting in the control contents being truncated by default.

GetOSInfo() is currently different from GetInfo() only under MSW, but we might
need to make the same distinction under OS X too, so do make this function
public instead of keeping it MSW-specific.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78220 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-05 22:17:13 +00:00
Vadim Zeitlin
8a00553fda Remove unneeded CacheBestSize() from wxMSW wxDateTimePickerCtrl.
The best size is already cached by the base class GetBestSize(), no need to do
it here as well.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78219 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-05 22:17:08 +00:00
Vadim Zeitlin
c671950f72 No real changes, just fix some typos in comments.
Closes #16699.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78215 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-03 17:18:17 +00:00
Artur Wieczorek
07371fcd56 Define wxPG toolbar event handler only if library is compiled with toolbar classes.
Include wxPropertyGridManager::OnToolbarClick() code only if wxUSE_TOOLBAR is set to 1.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78214 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-03 17:01:35 +00:00
Artur Wieczorek
922bef4df6 Restore wxPG toolbar buttons state if selecting wxPG page was unsuccessful.
Toolbar button corresponding to the unsuccessfully selected page should be released and button corresponding to the old page should be pressed again.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78213 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-03 16:59:11 +00:00
Artur Wieczorek
7dc1ab1c76 Use wxCONTROL_FOCUSED control state flag when drawing native wxPG check box in the "modified state" under wxOSX.
Generally, wxCONTROL_PRESSED control flag is used when drawing native check box (wxPGEditor_CheckBox) in "modified state" but under wxOSX this flag is equivalent to wxCONTROL_CHECKED flag and hence it is necessary to indicate this state in an alternative way.

Closes #16696

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78212 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-01 22:47:48 +00:00
Artur Wieczorek
8a25a6fb49 Add member function to retrieve wxBoolProperty attribute.
Added wxBoolProperty::DoGetAttribute virtual function.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78211 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-29 20:18:47 +00:00
Artur Wieczorek
29bf859fae Check if new index is in range before selecting new value in wxPGProperty::SetChoiceSelection.
Closes #16697

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78210 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-29 16:45:21 +00:00
Artur Wieczorek
f34f9d6708 Refresh wxPGProperty after changing its attribute.
Closes #16696

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78209 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-28 20:45:35 +00:00
Václav Slavík
128c6c71e1 Improve wxAcceleratorEntry::ToString() formatting
This method used the wxKeyNames[] array originally intended for parsing
accelerator specification and not for human-friendly formatting. In
particular, non-alphanumeric keys such as WXK_DOWN and many others were
formatted using all-uppercase name, which was highly unusual and not
native on any platforms (the only unaffected one was OS X).

Improve the formatting by doing the following:

a) use Title case for the entries; because parsing is case-insensitive,
   this has no effect on it;
b) add display_name field for keys where the symbolic name wasn't
   appropriate for display and set it for some of the keys that are
   likely to show up in menus;
c) add explanatory comments for translators

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78181 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-25 19:04:32 +00:00
Václav Slavík
cfc3dc874f Translate menu accelerators from XRC
The content of <accel> property was taken verbatim and appended to the
(translated) label; this bypassed wx's internal accelerators translation
mechanism, because wxMenuItem code quite reasonably assumes that the
string passed to it is translated.

Explicitly use SetAccel() instead, to force translation. This matters
for languages such as German where e.g. Ctrl+ is translated as Strg+.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78179 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-25 19:04:26 +00:00
Václav Slavík
541a460f7b Close NSWindows properly
Don't just release the window, call the close method. This is usually
the same, but in some situations, the difference (close sends
NSWindowWillCloseNotification, which wx doesn't use) is significant.

In particular, if the window is shown as fullscreen, OS X won't dispose
of its space correctly when the window is released, but not closed
first. See https://github.com/vslavik/poedit/issues/119

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78177 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-25 18:23:02 +00:00
Artur Wieczorek
161e8dcff2 Use Boolean variable to store Boolean values in wxPG.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78175 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-24 16:09:46 +00:00
Artur Wieczorek
1fd049988d Use a hash set instead of vector to hold dedicated keys in wxPG.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78173 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-24 16:04:53 +00:00
Václav Slavík
4d8d25e8bc Skip Cocoa's options in wxCmdLineParser on OS X
Skip Cocoa-specific flags used by Xcode (such as -AppleLanguages) on OS
X when parsing the command line. They all take a single argument, so
skip both the flag and the following value in the argv list.

Also fix handling of -ApplePersistenceIgnoreState, which didn't skip the
value as it should.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78171 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-24 13:45:02 +00:00
Paul Cornett
b74403baca Remove gtk_tree_view_set_fixed_height_mode() call from AssociateModel()
The check for wxDV_VARIABLE_LINE_HEIGHT is already done in Create(), and the
IsVirtualListModel() check was probably an attempt to get around a performance
problem (#16680), but it's not a valid criteria for changing the height mode.
closes #16683


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78170 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-22 19:12:41 +00:00
Paul Cornett
daa8fd03f3 fix "wrong type" error when using wxDataViewChoiceByIndexRenderer, closes #15955
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78168 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-21 17:00:29 +00:00
Paul Cornett
173cfe28a1 fix build when GDK_WINDOWING_X11 is not defined
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78163 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-19 18:59:43 +00:00
Vadim Zeitlin
17135e0a77 Don't use X11-only functions when not using X11 in wxGTK.
See #16688.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78161 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-19 13:29:28 +00:00
Vadim Zeitlin
a6b14c2ed1 Don't crash when switching to full screen in non X11-based wxGTK.
Only use internal X11 display if we're running in a such environment.

See #16688.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78160 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-19 13:29:23 +00:00
Vadim Zeitlin
015206314b Don't use frame extents when not using X11 in wxGTK.
See #16688.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78159 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-19 13:29:18 +00:00
Vadim Zeitlin
d4aaa5f40a Don't defer wxTLW initialization in wxGTK when not using X11.
See #16688.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78158 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-19 13:29:13 +00:00
Artur Wieczorek
7170eca0f7 Allow using the letter 'E' (capital) as a symbol of exponent when entering floating point numbers.
Currently, only the letter 'e' is accepted when editing wxPG numeric properties.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78156 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-18 22:34:30 +00:00
Artur Wieczorek
460b24e486 Fix adjustment of columns width in response to splitter position change in wPG.
In wxPropertyGridPageState::PropagateColSizeDec recursion is replaced with iteration and there is handled PG with more then 2 columns.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78154 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-18 16:34:16 +00:00
Artur Wieczorek
c6c08c9484 Make more realistic estimation of the best size of wxPropertyGridManager.
Current best size (especially width) of wxPropertyGrid Manager is too small. wxPG manager should be wide enough to hold wxPG with two columns and scroll bar.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78151 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-15 17:39:34 +00:00
Artur Wieczorek
9c74163386 Fix setting initial size of wxPropertyGridManager.
wxPG manager is now created with proper size (based on its best size) even if default size is requested. (r78149 is a prerequisite for this patch.)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78150 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-15 17:27:24 +00:00
Artur Wieczorek
c0e2e0c5d8 Fix adding/removing categorized/alphabetic mode buttons in wxPropertyGridManager.
Modify wxPropertyGridManager::RecreateControls() to allow adding/removing categorized/alphabetic mode buttons to/from wxPG manager tool bar at any time (not only when creating the tool bar).
Modify wxPropertyGridManager::SetExtraStyle() to fully support manipulating these buttons via wxPG_EX_MODE_BUTTONS flag.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78149 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-15 17:14:39 +00:00
Paul Cornett
dc555a92e3 notify all windows in capture stack about capture lost, and empty the stack
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78148 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-15 17:02:21 +00:00
Paul Cornett
00cc0233f6 fix releasing mouse capture before showing modal dialog, see #16647
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78147 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-14 18:56:37 +00:00
Vadim Zeitlin
2f3969724b Remove assert checking for non zero page size in wxDataViewCtrl.
This assert seems to be quite useless and can be triggered if a key is
(perhaps accidentally) sent to a small (e.g. not yet fully laid out)
wxDataViewCtrl window.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78146 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-13 01:52:05 +00:00
Václav Slavík
bb57c8e60f Fix disabling wxStaticText repeatedly in wxOSX.
Changes in r78107 would reset control's color to gray if it was disabled
more than once in a row. Guard against this and only remember the color
of an enabled control.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78144 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-12 15:10:56 +00:00
Paul Cornett
7913d200c8 fix creating wxFont with non-ascii name, closes #16671
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78141 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-12 07:43:06 +00:00
Paul Cornett
4d40e7806c fix build with old pango versions which don't define PANGO_VERSION_CHECK(), closes #16660
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78140 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-11 18:31:21 +00:00
Jouk Jansen
e609b182a4 Correction on commit #78110 as suggested by VZ
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78139 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-11 07:59:21 +00:00
Jouk Jansen
3cb2392abc Correction on commit #78099
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78137 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-11 07:46:00 +00:00
Vadim Zeitlin
89738ef01f Add support for reading multi string values to wxRegKey.
Add a wxRegKey::QueryValue() overload working with REG_MULTI_SZ values.

Closes #16653.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78136 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-11 01:03:00 +00:00
Vadim Zeitlin
69e00f892c Free converted command lines arguments automatically in wxMSW.
This makes the code slightly simpler (no more need for the scope guard) and
avoids memory leaks when not using wxEntry() (but calling wxEntryStart()
instead).

Closes #16664.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78135 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-11 01:02:55 +00:00
Vadim Zeitlin
dec924cdf1 Add wxCursor::GetHotSpot() and implement it for wxMSW and wxGTK.
Allow retrieving the coordinates of the cursor hot spot, at least for the
ports for which we know how to do it.

Closes #16539.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78134 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-11 01:02:50 +00:00
Vadim Zeitlin
261e7eac73 Add RAII AutoIconInfo class wrapping ICONINFO Windows struct.
This ensures that we never forget to delete the handles returned by
GetIconInfo() and also centralizes the error message given if it fails in a
single place.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78132 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-11 01:02:40 +00:00
Vadim Zeitlin
8de1128c07 Return correct menu pointer for wxEVT_MENU_{OPEN,CLOSE} in MDI frames.
These events are supposed to carry a pointer to the menu which was opened or
closed, but wxMenuEvent::GetMenu() always returned NULL for the menus opened
when a child MDI frame was active, as its menu bar, containing the menu, was
not searched for it.

Fix this by overriding MSWFindMenuFromHMENU() at wxMDIParentFrame level, just
as we already do for FindItemInMenuBar().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78130 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-11 01:02:31 +00:00
Vadim Zeitlin
c813c30c34 Fix best size calculation for buttons with bitmaps in wxMSW.
Add the bitmap margins to the bitmap size, not the total button size.

This fixes the buttons becoming unnecessarily tall as soon as they were
assigned even a tiny bitmap.

Closes #16536.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78127 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-11 01:02:20 +00:00