Commit Graph

7325 Commits

Author SHA1 Message Date
Vadim Zeitlin
6c3dfd113b Suppress harmless unused parameter warnings in release build.
Use WXUNUSED_UNLESS_DEBUG() for the parameters used only inside debug checks.

Closes #16829.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78435 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-02-04 13:16:20 +00:00
Vadim Zeitlin
3d2d8fc4ab Consistently refuse to create bitmaps with 0 width or height.
Homogenize the behaviour of all ports when creating bitmaps with 0 width or
height: just fail always as it doesn't seem to make sense to support this.

Closes #16828.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78434 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-02-03 18:28:21 +00:00
Vadim Zeitlin
041f9a4cf2 Fix wxEVT_TREE_STATE_IMAGE_CLICK generation in wxMSW wxTreeCtrl.
Use GET_{X,Y}_LPARAM() to extract them from the event position, which handle
negative coordinates (and coordinates can perfectly well be negative when
using multiple displays) correctly, unlike {LO,HI}WORD().

Closes #16812.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78420 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-27 11:51:27 +00:00
Vadim Zeitlin
a3747ac959 Don't leave too much blank space in wxDatePickerCtrl under XP.
In our efforts to account for the longest possible string we made the control
too wide by default which didn't look very good, so reduce the amount of space
added to it, this still seems to be (just) enough for all the reasonable date
formats (tested under Windows XP SP3 with default DPI).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78417 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-26 15:10:45 +00:00
Vadim Zeitlin
510ae4e0b4 Send deactivation events to MDI children frame in wxMSW too.
For some reason, the code only forwarded activation events to the current MDI
child, but not the deactivation ones. And even though this was literally
always the case (the check for the event being the activation one is there
since r9), it is clearly wrong as the focus restoring code in wxTopLevelWindow
in wxMSW doesn't work if the focus hadn't been previously saved.

This fix hopefully completes the changes started by r78340 and r78341 and
ensures that the focus is always properly restored to the last focused window
inside an MDI child.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78361 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-09 03:30:13 +00:00
Vadim Zeitlin
a6d74d8176 No changes, just fix a slightly misleading comment in wxMSW focus code.
DefWindowProc() never preserves the focused window actually, whether we use
WM_NEXTDLGCTL (which is only handled by DefDlgProc() anyhow) or not.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78360 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-09 03:30:10 +00:00
Vadim Zeitlin
5c9d7e139d Always invalidate wxStaticText best size after changing its label.
wxST_NO_AUTORESIZE style only affects whether the control is actually resized
when its text changes, but its best size should always change, so that if the
window containing it is explicitly relaid out the size does change.

Moreover, in wxMSW and wxOSX the best size was never invalidated at all when
the label was ellipsized, so it was never updated for them, preventing, for
example, comparing the best size with the current one to check if the text is
effectively ellipsized (and so needs to be shown in a tooltip, for example).

Fix this by calling InvalidateBestSize() unconditionally, this should make
these ports behave in the same was as wxGTK already did.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78357 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-09 03:29:58 +00:00
Vadim Zeitlin
f3833aa067 Don't change MDI children order after showing a file dialog in wxMSW.
Don't use the generic focus saving/restoring code for wxMDIParentFrame in
wxMSW as it already saves and restores the active MDI child on its own and we
should let it do it, as our code could change the active child when restoring
focus if it hadn't been saved correctly previously.

The fact that it is isn't saved is another bug, but even if it is fixed, we
should let MSW MDI implementation handle activation as we can't do it any
better -- but can do worse, as the bug described in #16635 shows.

Closes #16635.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78341 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-03 01:07:53 +00:00
Vadim Zeitlin
8509ce2358 Fix saving focus for MDI child frames in wxMSW.
Use wxWindow::IsDescendant() instead of wxGetTopLevelParent() to determine
whether the focused window is inside the TLW, as the former works correctly
for any window, including wxMDIChildFrames, while the latter would return
wxMDIParentFrame for them (as MDI children are not considered to be TLWs) and
so saving the focus would always fail and the focus was always restored to the
first child of wxMDIChildFrame after switching from it to another child frame
and back, as could be seen by applying the simple patch:

---------------------------------- >8 --------------------------------------
diff --git a/samples/docview/view.cpp b/samples/docview/view.cpp
index 9f20032..8386522 100644
--- a/samples/docview/view.cpp
+++ b/samples/docview/view.cpp
@@ -160,8 +160,9 @@ bool TextEditView::OnCreate(wxDocument *doc, long flags)
     wxFrame* frame = wxGetApp().CreateChildFrame(this, false);
     wxASSERT(frame == GetFrame());
     m_text = new wxTextCtrl(frame, wxID_ANY, "",
-                            wxDefaultPosition, wxDefaultSize,
+                            wxPoint(5, 5), wxDefaultSize,
                             wxTE_MULTILINE);
+    new wxButton(frame, wxID_ANY, "Button", wxPoint(5, 100));
     frame->Show();

     return true;
---------------------------------- >8 --------------------------------------

Notice that the bug usually stayed hidden because it didn't happen if
wxMDIChildFrame contained a wxPanel (which also stores the last focus) inside
it or if the focus switched away from the entire application instead of just
going to another child and back, as in this case the last focus was stored in
wxMDIParentFrame, for which the old code did work.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78340 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-03 01:07:50 +00:00
Vadim Zeitlin
957f3c5b50 Fix reading of not NUL-terminated strings using wxRegKey.
Even though this is typically the case, some strings in Windows registry are
not NUL-terminated, deal with them correctly by using the explicit length.

Closes #16719.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78327 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-27 14:24:58 +00:00
Vadim Zeitlin
7dd75c8844 Revert "Add support for reading multi string values to wxRegKey."
Reverts r78136 (see #15727) because the multi-string values in Windows
registry are actually not "name=value" pairs at all but just NUL-separated
strings and the API provided for reading them was inappropriate.

Also see #16719.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78326 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-27 14:24:52 +00:00
Vadim Zeitlin
8d12e07453 Fix flickering when resizing a frame with status bar in wxMSW.
The flicker was only visible under Windows XP or when using a class theme
and was due to mis-positioning the status bar initially in PositionStatusBar().
Fix this by adjusting its position by the toolbar offset before calling its
SetSize().

Closes #16705.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78325 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-27 14:24:46 +00:00
Vadim Zeitlin
9bd2b4be51 Make disabling submenus work in wxMSW.
As submenu items don't have a valid ID, we need to address them by their
position when calling EnableMenuItem() -- and for simplicity do it for all the
items.

Closes #16747.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78324 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-27 14:24:40 +00:00
Vadim Zeitlin
73a38319d8 Add support for strikeout fonts to wxMSW wxTextCtrl.
Map them to CFE_STRIKEOUT in the native rich text control.

See #16591.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78315 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-25 01:31:54 +00:00
Tim Kosse
1966dfb17d Add Windows 10 support to wxGetWinVersion() and wxGetOsDescription().
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78284 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-20 10:13:21 +00:00
Vadim Zeitlin
ddce6780f6 Fix inserting tools removed from wxToolBar back into it in wxMSW.
Make sure to reset the "to be deleted" flag we set on the tool when removing
it from the toolbar to avoid layout problems if the tool is added back later.

Closes #16735.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78279 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-16 20:16:23 +00:00
Vadim Zeitlin
090a8353e5 Move wxRendererMSW::DrawTextCtrl() implementation to wxRendererGeneric.
This ensures that wxRendererGeneric::DrawGauge() is actually usable as
otherwise calling it always resulted in an assertion failure because it used
DrawTextCtrl() which was not implemented in wxRendererGeneric. So this fixes
using DrawGauge() in non-MSW ports which was added by r77023 (see #16406) but
apparently never worked.

Also remove wxRendererMSW::DrawGauge() as it's exactly the same as the version
inherited from wxRendererGeneric.

Closes #16725.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78278 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-16 20:16:20 +00:00
Stefan Neis
99d08bcc4b No real changes, just fixed a couple of typos in comments, fixes #16726.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78271 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-14 11:12:31 +00:00
Vadim Zeitlin
494b66b5fb Fix appearance of wxMSW wxToggleButtons with bitmaps in pressed state.
Correct the "pushed" state determination in our own drawn code, it didn't work
for wxToggleButton which doesn't return BST_PUSHED from BM_GETSTATE. But it
does have BM_GETCHECK returning its state directly, so add a new virtual
MSWIsPushed() method and implement it differently for it.

Closes #13755.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78251 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-07 01:52:42 +00:00
Vadim Zeitlin
81f6d00518 Move MSWGetDefaultLayout() outside of #if wxUSE_EXCEPTIONS block.
Build fix for wxUSE_EXCEPTIONS==0 after r78236.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78250 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-06 13:07:10 +00:00
Vadim Zeitlin
29cd13cc8f Fix checked disabled wxToolBar tools with custom images in wxMSW.
Windows doesn't use the correct image for checked disabled tools, at least up
to and including Windows 7, so don't put such tools in the "checked" state at
all: this doesn't matter as they are disabled anyhow, but shows the correct
image for them.

Closes #12989.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78248 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-05 22:19:25 +00:00
Vadim Zeitlin
bf08ea2666 Don't generate wxEVT_MENU_{OPEN,CLOSE} for disabled top menus in wxMSW.
Windows still sends these messages even if a top level menu is disabled, for
some reason, so filter them out manually.

Closes #2168.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78247 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-05 22:19:19 +00:00
Vadim Zeitlin
79f93d5535 No real changes, just make wxMenuBar::MSWGetMenu() const.
There is no reason not to.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78246 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-05 22:19:16 +00:00
Vadim Zeitlin
1d05c077a0 Use another bool constant instead of BOOL one in wxBitmapComboBox.
Just s/FALSE/false/

See #16690.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78243 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-05 22:18:59 +00:00
Vadim Zeitlin
7e869a5d4d Measure wxBitmapComboBox height correctly if it has images.
This fixes a regression introduced in r77548 (see #14279): wxBitmapComboBox
must be higher than a normal wxComboBox if it has big enough bitmaps.

Closes #16690.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78242 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-05 22:18:52 +00:00
Vadim Zeitlin
c76ad77c01 Don't use right-to-left markers in wxMSW wxMessageDialog code.
This mechanism is provided as an alternative to specifying MB_RTLREADING
style, e.g. if the source code can't be modified but the [string] resource
from which the message box message is loaded can be. We don't need to do this
if we do add MB_RTLREADING however.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78237 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-05 22:18:29 +00:00
Vadim Zeitlin
f1fd45892f Fall back to default process layout direction in wxMSW.
Add helper wxApp::MSWGetDefaultLayout() static method and use it instead of
wxTheApp->GetLayoutDirection() in wxMSW code.

This serves two purposes: first, wxMessageDialog doesn't crash when it's shown
before wxTheApp is created (or after it's destroyed) any more. And second, we
use the correct layout direction if the main application has enabled it by
calling SetProcessDefaultLayout() or using two U+200E characters in the
beginning of its "FileDescription" resource field by default now.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78236 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-05 22:18:25 +00:00
Vadim Zeitlin
59086bd01a Use the layout direction of wxTextCtrl itself, not the app, in wxMSW.
A wxTextCtrl inside an RTL window in an otherwise LTR application should still
be considered RTL, it's not clear at all why do we need to ask the application
for the layout here, so change this for consistency.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78235 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-05 22:18:20 +00:00
Vadim Zeitlin
eb171a4592 Don't dereference wxTheApp unconditionally when showing wxMessageDialog.
The application might not yet (or already) exist, don't crash in this case.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78234 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-05 22:18:16 +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
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
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
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
Vadim Zeitlin
8b72652a28 Make results of wxDC::DrawEllipticArc() consistent across all platforms.
And also consistent with wxGraphicsContext method with the same name.

Document the rules determining what is drawn.

Closes #4437.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78125 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-11 01:02:14 +00:00
Vadim Zeitlin
dbd22a81e4 Improve drawing of monochrome bitmaps with masks in wxMSW.
This is a compromise solution between r78040, which handled monochrome bitmaps
correctly, but broke drawing bitmaps without using their mask, and r78054
which simply reverted it: this version preserves the old behaviour when not
using the mask, but draws at least the shape (if not the colour) correctly
for the monochrome bitmaps.

Notice that this also reverts r78039 which is not needed any more without
r78040.

Closes #16512.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78123 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-11 01:02:02 +00:00
Vadim Zeitlin
870d9b4cfe Fix size of the icon returned from wxFSVolume::GetIcon().
Calling SetHICON() is not enough, the icon size already needs to be set or,
even better, CreateFromHICON(), which does both atomically, should be used.

Closes #16672.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78116 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-10 23:48:40 +00:00
Vadim Zeitlin
f0aea4098c Refactor: extra wxStaticText auto-resizing code from wxMSW to common.
This will allow its reuse in wxGenericStaticText and maybe other ports that
need it in the future.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78061 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-10-24 21:54:31 +00:00
Vadim Zeitlin
9650c5b55b Avoid spurious error messages for WM_MDISETMENU under Windows XP.
WM_MDISETMENU handler doesn't seem to reset the last error under Windows XP
and this could result in spurious debug error messages when setting the
initial menu in which case NULL is returned to indicate that there was no
previous menu, but this doesn't indicate that an error occurred.

Explicitly reset the last error to ERROR_SUCCESS ourselves before using
WM_MDISETMENU to ensure that the last error can only be set after its return
if it was really done by the code handling it, i.e. if an error really
happened.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78056 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-10-24 13:45:41 +00:00
Vadim Zeitlin
e897361354 Revert "Use MaskBlt() with the correct ROP when drawing bitmaps with mask."
This reverts r78040 (see #16512) as it broke the appearance of the disabled
buttons in MSW toolbars as can be seen in the sample.

The change itself might still be correct and could have just uncovered some
other bug elsewhere, but for now still revert it just to make the toolbars
usable again.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78054 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-10-20 22:06:50 +00:00
Vadim Zeitlin
82a591c138 Fix for PCH-less build after wake up changes.
Include wx/msw/private.h when not using PCH to get wxZeroMemory() (this makes
it unnecessary to include wx/msw/wrapwin.h as it's already included by the
other header).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78049 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-10-19 19:05:18 +00:00
Vadim Zeitlin
e1b09f3b5d Avoid spurious errors from wxFileType::GetCommand() under Windows XP too.
This problem was already fixed in r77649 for Windows 7 (and hopefully all the
other supported Windows versions), but it turns out that XP returns a
different error when the association is not found in the registry, so the
debug error message was still given under it.

Fix this by checking for both ERROR_NO_ASSOCIATION and ERROR_FILE_NOT_FOUND.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78048 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-10-19 14:16:22 +00:00