Commit Graph

7108 Commits

Author SHA1 Message Date
Tobias Taschner
3e7579d733 Fix wxGetWinVersion() for Windows 10
Check for Windows 10 was implemented as check for version 6.4 but the final version of Windows 10 actually returns 10.0.
2015-08-05 20:37:49 +02:00
Tobias Taschner
f7b8fdd275 Fix wxGetOsDescription() for Windows 10.
Check for Windows 10 was implemented as check for version 6.4 but the final
version of Windows 10 actually returns 10.0.

(this is a backport of c87c432033)
2015-08-05 20:30:45 +02:00
Catalin
bed07cc212 Correctly map MAC_CHARSET to wxFONTENCODING_MACROMAN in wxMSW.
Recognize MAC_CHARSET when mapping MSW charsets to wx font encodings.

(cherry picked from commit 6e72126894)
2015-08-04 20:33:30 -07:00
Paul Cornett
8d2772eaf2 avoid shadowed variable warnings with VS2015 2015-07-24 20:55:10 -07:00
Vadim Zeitlin
6e5b6521a5 Update HDC in wxDC::SetLogicalScale() in wxMSW.
Unlike the similar (identical?) SetUserScale(), this function didn't call
RealizeScaleAndOrigin(), add it now for consistency.

(this is a backport of 75794137f605328e2d3e6a45106f30b8ac268cbb from master)

See #17053.
2015-07-09 21:01:30 +02:00
Leland Lucius
0797a6f875 Fix accessibility support in wxMSW.
Return the correct result from handing WM_GETOBJECT message.

Closes #17058.

(this is a backport of 6a435345f5 from master)
2015-07-06 23:56:48 +02:00
Vadim Zeitlin
77fb8cb8c1 Fix TDM-GCC warning about int to pointer cast.
Use wxUIntToPtr() to suppress the warning, we know that the cast here is safe
because Windows uses only pointers fitting in the UINT range for the menu (and
other) handles.
2015-06-14 20:37:33 +02:00
Vadim Zeitlin
2ea1d3fc19 Correctly deinitialize wxUxThemeEngine in wxMSW.
Set ms_isThemeEngineAvailable to -1, meaning that we need to reinitialize
themes, instead of false, meaning that themes are not available.

This fixes problems when the library is initialized, shut down and then
initialized again.

Closes #17023.
2015-06-14 19:38:17 +02:00
Vadim Zeitlin
90a523da71 Add better error checking and simplify wxWebViewIE::DoSetPage().
Don't ignore errors (this resulted in warnings in optimized builds because
variable "hr" containing the error code to was assigned but never used) and
don't leak memory in the (admittedly unlikely) case an error really occurs.

Also don't duplicate the code for creating a one element SAFEARRAY<VARIANT>,
extract it into a helper function.
2015-06-14 19:24:13 +02:00
Vadim Zeitlin
0c14584842 Fix harmless signed/unsigned comparison warning in wxMSW wxTreeCtrl.
Don't cast NMHDR::code field to int, this cast was added in the previous
millennium, probably to work around the wrong definition of NM_DBLCLK in some
ancient MinGW headers, but nowadays all MinGW distributions (tested with
MinGW 4.8.1, MinGW-64 4.9.1 and TDM-GCC 4.9.2) define it correctly and so
using this cast results in a warning -- just remove it to get rid of it.
2015-06-14 15:12:19 +02:00
Vadim Zeitlin
70da6f7488 Make wxTextCtrlOleCallback destructor virtual to avoid g++ warnings.
This class doesn't really need a virtual dtor as it's never used
polymorphically, but add it to avoid g++ warnings about it.

(this is a backport of 8ad1e2698f from master)
2015-06-14 15:06:17 +02:00
Vadim Zeitlin
2923d95264 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.

(this is a backport of 8d12e07453 from master)
2015-06-01 00:15:48 +02:00
Vadim Zeitlin
82d4f005d3 Measure wxBitmapComboBox height correctly if it has images.
This fixes a regression introduced in 45e216b (see #14279):
wxBitmapComboBox must be higher than a normal wxComboBox if it has big
enough bitmaps. Closes #16690.

This is the backport of 7e869a5 from master.
2015-04-24 03:53:41 +04:00
Vadim Zeitlin
5a00ab896b Accept wxALIGN_CENTRE_HORIZONTAL in wxMSW wxStaticText too.
Previously it only handled wxALIGN_CENTRE, also the documentation switched to
wxALIGN_CENTRE_HORIZONTAL in 72e88d8ea3 and
preceding commits.

See #16943.
2015-04-12 17:26:43 +02:00
Vadim Zeitlin
46c335c8ef Generate wxEVT_SPINCTRL of the correct wxSpinEvent type.
Handlers for this event expect to get wxSpinEvent but wxMSW and wxGTK1 sent an
object of base wxCommandEvent class which resulted in invalid memory access in
the handlers when using the derived class methods such as Veto().

See #16948.
2015-04-10 16:37:46 +02:00
Vadim Zeitlin
2efa1da0d2 Fix regression in wxMSW wxDC::SetAxisOrientation().
Don't mix signed/unsigned integers in arithmetic operations when normalizing
wxDC scale factors: variable holding GCD value should be of the same type as
variables holding devExt and logExt to avoid wrong results of /= operation
when dividend is a negative value.

Closes #16908.
2015-03-20 00:23:56 +01:00
Vadim Zeitlin
f05b626b3b Don't use wxLog from wxWakeUpMainThread() in wxMSW.
This can result in infinite recursion as wxLog calls wxWakeUpIdle() which
calls wxWakeUpMainThread() again if PostThreadMessage() fails.

See #16841.
2015-03-12 16:38:10 +01:00
Vadim Zeitlin
8bbe683f61 Fix using RegisterHotKey() with negative IDs in wxMSW.
This was broken due to a wrong cast from WPARAM (i.e. 32 bit unsigned int in
Win32) value containing the ID to WORD (i.e. 16 bit unsigned short) which
truncated the ID value.

Notice that MSDN documents the requirement for the IDs to be positive, but
negative IDs seem to work, at least with Windows 7, after this fix.

Closes #16880.
2015-02-25 19:44:48 +01:00
Vadim Zeitlin
f047d93c6a 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/branches/WX_3_0_BRANCH@78419 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-27 11:49:44 +00:00
Václav Slavík
14f052a768 Allow disabling SetProcessDPIAware() call
Add Windows-specific wxMSWDisableSettingHighDPIAware() function then can
be called before startup (i.e. wxEntry() call) to disable wxWidgets'
handling of DPI awareness. This is useful for code embedded in non-wx
applications as well as for purely wx application that are not
HiDPI-ready (although the latter has the option of forcing
dpiAware=false in the manifest).

See also https://groups.google.com/d/msg/wx-dev/Z0VpgzCY34U/f1FfPqGDppMJ
and #16116.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@78406 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-24 15:00:03 +00:00
Vadim Zeitlin
e91a996fa4 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/branches/WX_3_0_BRANCH@78323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-27 14:17:51 +00:00
Tim Kosse
a2b3702934 Add Windows 10 support to wxGetOsDescription(). Map Windows 10 to wxWinVersion_8 in wxGetWinVersion() to not change ABI.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@78285 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-20 10:15:51 +00:00
Vadim Zeitlin
f7cf6e1e9e 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 (for 3.0).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@78275 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-16 20:15:51 +00:00
Stefan Neis
e086d73560 No real changes, just fixed a couple of typos in comments, fixes #16726.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@78271 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-14 11:12:31 +00:00
Vadim Zeitlin
6b9910ac8c 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/branches/WX_3_0_BRANCH@78122 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-11 00:59:13 +00:00
Vadim Zeitlin
b3dc6b7ba2 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/branches/WX_3_0_BRANCH@78118 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-11 00:58:58 +00:00
Vadim Zeitlin
cf6a4556c5 Only select the first radio button if there is one in wxMSW wxRadioBox.
Don't call SetSelection(0) if the radio box is empty.

See #16630.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@78045 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-10-19 12:58:57 +00:00
Vadim Zeitlin
75ce7fb68b Fix excessive height of wxSlider with labels but no ticks in wxMSW.
We shouldn't add the label height to the control best height as the labels are
positioned at the same vertical level as the main part of the control.

See #16604.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77984 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-10-09 15:36:39 +00:00
Vadim Zeitlin
b0f780439c Fix wrong wxStatusBar height in wxMSW in some circumstances.
Creating the status bar before the menu bar but associating it with the frame
after creating the menu bar resulted in a status bar of completely wrong height.
Fix this by enforcing the default height on the status bar when it's attached
to the frame.

Closes #10956.

[This is the backport of r76417 from trunk.]

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77949 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-10-03 01:52:19 +00:00
Vadim Zeitlin
cbc1dbab9a Allow using ESC as accelerator in wxMSW again.
This ended up being broken due to an interplay between different unrelated
changes (at least r15120 and r41134) which were both correct, but didn't work
well together and resulted in not only preventing IsDialogMessage() from
handling ESC, but also our own accelerator tables.

Fix this by doing the check for IsDialogMessage() brokenness in
MSWProcessMessage() itself, just before calling it, instead of doing it in
MSWShouldPreProcessMessage() which is (and must be) called before
MSWTranslateMessage() which checks for accelerators using ESC.

Closes #3813.

[This is the backport of r77071 from trunk.]

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77948 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-10-03 01:52:15 +00:00
Vadim Zeitlin
7d94e9fafd Fix handling of bitmaps with alpha channel in wxMSW wxImageList.
Don't use mask and alpha together, this results in visual artefacts and masks
are unnecessary with RGBA bitmaps anyhow.

The only potentially problematic remaining case is mixing bitmaps with alpha
and mask inside the same image list (as we need to indicate whether we use the
mask or not when creating it), but this should probably be rare and in the
meanwhile we can at least RGBA bitmaps with image lists, which includes doing
this implicitly when they are used as button bitmaps.

Also refactor wxBitmap code to extract part of CopyFromIconOrCursor() to allow
reusing it in the newly added MSWUpdateAlpha().

See #11476.

[This is the backport of r75567 from trunk.]

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77947 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-10-03 01:52:10 +00:00
Vadim Zeitlin
1f2a74014f Fix changing the label of a submenu in wxMSW.
Use position, not the ID, to find the native menu items to allow the code in
wxMenuItem::SetItemLabel() and DoSetBitmap() to also work with submenus and
not just the normal items.

Closes #16246.

[This is the backport of r76676 from trunk.]

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77945 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-10-03 01:51:59 +00:00
Vadim Zeitlin
2e91798e96 Fix wxMSW build in UTF-8 build.
Need an explicit cast to convert the buffer returned by wxString::t_str() to a
pointer in this case.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77942 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-10-02 14:35:38 +00:00
Václav Slavík
a08b2965fc Fix handling of MSWWindowProc return value for menu events
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77889 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-09-26 14:42:46 +00:00
Julian Smart
e5affe951b Corrected border size for wxBORDER_THEME
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77878 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-09-24 12:48:13 +00:00
Vadim Zeitlin
6085c8f788 Use bool constants instead of BOOL ones in wxBitmapComboBox code.
Just s/TRUE/true/

See #14279.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77547 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-09-05 21:54:19 +00:00
Vadim Zeitlin
9352652221 Fix empty wxBitmapComboBox height under wxMSW.
Make (initially) empty wxBitmapComboBox as high as a normal wxComboBox instead
of making it visibly shorter.

Closes #14279.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77546 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-09-05 21:54:13 +00:00
Vadim Zeitlin
41a9ca5f27 Work around buggy printer drivers not returning correct DEVMODE size.
Apparently at least one printer driver doesn't report the memory needed by its
own DEVMODE struct correctly, resulting in a crash due to a buffer overflow
when printing using it.

Work around this by allocating slightly more memory than what we really need.

Closes #16274.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77522 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-09-03 10:45:38 +00:00
Vadim Zeitlin
0e22e89086 Fix creation of wxBitmap from monochrome wxIcon or wxCursor in wxMSW.
Don't suppose that we always have hbmColor because this is not true for
monochrome icons/cursors. Create our own bitmap in this case.

Closes #16512.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77516 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-30 15:13:59 +00:00
Vadim Zeitlin
05a1abfb1f Fix wxFont construction from default wxFontInfo in wxMSW.
Don't use -1 as the real point size.

Also update the font sample to allow testing such font.

Closes #16468.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77494 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-28 12:54:52 +00:00
Vadim Zeitlin
202b377dbc Fix order of radial gradient stops in wxMSW.
Ensure that the order of stops is consistent with the documentation and other
platforms behaviour, i.e. they are counted from inside to outside of the
circle and not vice versa, which happens to be the GDI+ convention.

Closes #16443.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77482 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-25 17:50:58 +00:00
Vadim Zeitlin
7a9065190f Show new style Windows directory selector even for non-existent paths.
Passing an invalid initial directory to wxDirDialog resulted in using the old
style Windows directory selector dialog instead of the new style (file dialog
like) one, which was unintentional, as incorrect initial directory shouldn't
prevent the dialog from being shown.

Fix this by handling ERROR_FILE_NOT_FOUND error specifically and still showing
the new dialog, just without the (non existent) initial directory value, in
this case.

Closes #16430.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77081 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-18 13:09:08 +00:00
Vadim Zeitlin
08547057c5 Add support for paragraph spacing attribute to wxTextCtrl in wxMSW.
Use PFM_SPACEAFTER/PFM_SPACEBEFORE to implement support for them.

Closes #16417.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77069 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-14 12:17:08 +00:00
Vadim Zeitlin
6f64d8e394 Use NMTVDISPINFO instead of TV_DISPINFO in wxMSW code.
The latest w32api 4.0.3, used by MinGW project, still didn't manage to apply a
one line fix to define TV_DISPINFO correctly, so tweak our sources to avoid
using it.

See #15537.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77048 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-10 16:11:30 +00:00
Vadim Zeitlin
0e9005e166 Fix wxDC::DrawRectangle() when using RTL in wxMSW.
Extend the correct edge of the rectangle (always the physical right, not the
logical right) to fix off by one errors in RTL mode, affecting notably wxGrid.

See #16250.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77027 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-09 14:07:35 +00:00
Vadim Zeitlin
d4edc41f6e Fix drawing on wxDC when using right-to-left layout in wxMSW.
Avoid integer overflow when setting wxDC scale. This affected (i.e. broke)
drawing in RTL but probably not only that.

Closes #16254.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77022 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-07 21:07:18 +00:00
Vadim Zeitlin
1c922274d1 Fix window position calculation in wxMSW when using RTL.
Just use the native ::MapWindowPoints() to do the coordinate transformation
instead of doing it ourselves: we did it wrongly by inheriting the layout
direction from wxTheApp instead of from the parent window, so fix this in the
best possible way by not doing it at all and just relying on Windows to do it
for us.

In particular, this corrects the display of wxStatusBar in RTL frames.

Closes #15031.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@76980 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-03 12:44:15 +00:00
Vadim Zeitlin
5528d864b0 Refresh the window when its layout direction changes in wxMSW.
Rearrange the window children and/or redraw its contents when its layout
direction changes.

See #15031.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@76979 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-03 12:44:11 +00:00
Vadim Zeitlin
78d8dde178 Don't activate hidden buttons when Enter is pressed in wxMSW.
The keyboard handling code could decide to activate a button which wasn't
currently visible at all, e.g. because it was on a non-current, and hence
hidden, page of a wxBookCtrl. This didn't make any sense, so check for the
button visibility before activating it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@76978 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-03 12:44:07 +00:00
Vadim Zeitlin
8b38ba9726 Fix background of wxRadioBox buttons and wxSlider labels in wxMSW.
Handle WM_CTLCOLOR correctly for them, this wasn't done before because the
code assumed that sub-windows (i.e. HWNDs which belong to the same logical wx
control) were always children of the main window, but they could also be its
siblings (like in at least the two above mentioned cases).

Account for this case in wxControl::DoMSWControlColor() too now.

Closes #12271.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@76950 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-07-25 17:34:07 +00:00