Commit Graph

6699 Commits

Author SHA1 Message Date
Václav Slavík
2a715bcb3c Fix r71367: don't set bgCol twice needlessly.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71368 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-05-06 16:56:38 +00:00
Václav Slavík
b7f37d6d86 Fix wxOwnerDrawnComboBox background on with classic theme.
In wxMSW, if the classic theme was used, read-only wxOwnerDrawnComboBox
had gray background, but native look should be the same for both
editable and read-only combo boxes: white text entry-like rectangle.

Apparently, a similar problem existed with non-classic themes too
before, as there was a workaround in place. Fixed by moving the
workaround into code used by both themed and classic rendering.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71367 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-05-06 13:10:34 +00:00
Dimitri Schoolwerth
ae580de376 Fixed parts of toolbar background not being drawn with older comctl32.dll.
When using comctl32.dll versions older than 6.0 toolbar icons would not have their background drawn. Fix this in a rough way by always completely erasing the background like was done before. Regression since r62971.

Closes #13512.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71341 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-05-02 14:44:45 +00:00
Julian Smart
d022fa4e45 Restored the exact-fit-button horizontal margin calculation from 2.8 since it was too cramped.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71287 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-27 11:39:52 +00:00
Robin Dunn
70175534bf Make wxTaskBarIcon's ctor have the same API on all platforms even though setting the icon type can only be done on wxOSX-cocoa
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71242 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-20 05:41:54 +00:00
Vadim Zeitlin
6f3320bf3d No real changes, just some typo fixes for previous commits.
Fix wxCOMPtr comment and don't use "s_" for non-static variable.

Closes #14227.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71202 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-16 12:12:15 +00:00
Vadim Zeitlin
580ffdf4c0 Use new style directory selection dialog under Vista and later.
Use IFileDialog in wxDirDialog implementation if possible, it shows a much
more user-friendly dialog than the one used by SHBrowseForFolder().

Closes #11401.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71201 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-15 23:18:12 +00:00
Vadim Zeitlin
66180c31f6 Call wxThread::OnExit() from wxThread::Exit() in wxMSW too.
Exit() is documented to call OnExit() and the pthreads version of wxThread did
behave as documented, so make wxMSW follow it as well and explicitly call
OnExit() before exiting the thread.

Closes #14212.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71197 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-14 22:37:34 +00:00
Vadim Zeitlin
4b666be659 Add support for VT_I8 (long long) values to wxAutomationObject.
Just map VT_I8 to wxLongLong.

Closes #14210.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71196 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-14 22:31:57 +00:00
Steve Lamerton
601d0ba7c6 Always check that we get a valid IDispatch* from get_Document as sometimes the call can succeed but return NULL.
Fixes #14182

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71192 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-12 21:15:16 +00:00
Vadim Zeitlin
e5f9b4ae2d Handle Ctrl-O and Ctrl-L MSW wxWebView accelerators too.
Do the same thing for them as for Ctrl-N, Ctrl-F and Ctrl-P, they are also
used by the control.

Closes #14192.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71123 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-06 19:51:23 +00:00
Vadim Zeitlin
525454303e Set the menu itself as event object for EVT_MENU_{OPEN,CLOSED} in wxMSW.
Make wxMSW consistent with the other ports and set the menu itself, not the
window it is attached to, as the event object for the menu open/close events.

See #1595.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71115 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-05 22:27:36 +00:00
Vadim Zeitlin
e911dd0a5a Hide combobox popup when it is hidden itself in wxMSW.
It was possible to hide the main part of a combobox control but keep its popup
shown and this notably happened in wxGrid when TAB was pressed while a
wxChoice cell editor was dropped down.

Avoid this Cheshire combobox syndrome by explicitly dismissing the popup when
a combobox is hidden.

Closes #3113.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71104 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-05 18:40:20 +00:00
Vadim Zeitlin
a24fb9f847 Refactor: move wxComboBox::MSWDoPopupOrDismiss() down to wxChoice.
No real changes, just make this method available in wxChoice for the next
commit needs.

See #3113.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71103 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-05 18:40:15 +00:00
Vadim Zeitlin
2415cf6725 Remove support for MetroWerks CodeWarrior compiler.
This compiler doesn't exist any more and was probably unsupported even in 2.8,
let alone 2.9, so remove all the __MWERKS__ tests to simplify things.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71102 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-05 18:40:11 +00:00
Vadim Zeitlin
5e0b09554d Fix handling of the main window of composite controls in wxMSW wxToolTip.
The main window itself should be added using DoAddHWND() and not
AddOtherWindow() as it is not, precisely, "other". This fixes removing and
updating it twice unnecessarily.

Closes #14184.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71097 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-05 13:55:56 +00:00
Vadim Zeitlin
f7dd07f64d No real changes, just use clearer names for wxMSW wxToolTip methods.
Rename wxToolTip::DoAddOtherWindow() to DoAddHWND() as it should be used for
adding any window associated with the tooltip, either the main or an auxiliary
one. And rename wxToolTip::Add() to AddOtherWindow() because it shouldn't be
used for the main window.

See #14184.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71096 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-05 13:55:51 +00:00
Vadim Zeitlin
3caee5cfaa Really fix source coordinates handling in wxDC::Blit() in wxMSW.
It turns out that the changes r71028 were unnecessary (and actually harmful)
in most cases, they're only needed when a DIB is used as a source DC. So move
the manual coordinates adjustments to the branch of code using StretchDIBits()
and don't do it anywhere else.

Also don't list this as an incompatible change as wxMSW actually already
worked as the other ports in the majority of cases and list it as a simple bug
fix instead.

Closes #14188.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71095 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-05 13:55:43 +00:00
Stefan Csomor
b0bb9f2828 correct text drawing with background brush, fixes #14161
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71069 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-01 13:37:53 +00:00
Steve Lamerton
34326da778 Minor changes, just trim trailing spaces in webview code.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71034 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-28 18:00:30 +00:00
Steve Lamerton
e81ef29720 Correctly use QueryInterface in GetDocument to ensure that we only return an IHTMLDocument2 pointer if one is available. Check GetDocument being NULL when used. This fixes the displaying of non-html documents such as pdfs.
Fixes #14060

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71030 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-27 19:33:59 +00:00
Vadim Zeitlin
6f26e88002 Honour source wxDC coordinate system in wxDC::Blit() in wxMSW.
wxGTK and wxOSX already did this so do it in wxMSW as well.

Update the documentation to make this explicit.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71028 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-27 12:28:04 +00:00
Vadim Zeitlin
0d57a51305 Minor fix to wxGraphicsContext::SetInterpolationQuality() in wxMSW.
Only update the internal variable if we really succeeded in changing the
interpolation mode.

See #14134.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71009 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-26 11:23:54 +00:00
Vadim Zeitlin
c3562311c8 Implement wxGraphicsContext::SetInterpolationQuality() for wxMSW.
Provide implementation of the previously stubbed out method.

Closes #14134.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70990 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-24 18:24:15 +00:00
Vadim Zeitlin
b9e52a19e6 Implement horizontal mouse wheel events support for wxMSW.
Handle WM_MOUSEHWHEEL messages and translate them to the corresponding
wxMouseEvents.

Closes #14105.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70962 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-22 00:27:02 +00:00
Vadim Zeitlin
a4087a4324 Fix wxMSW compilation when wxUSE_FONTMAP==0.
Don't use wxFontMapper::GetEncodingName() in wxFontEnumerator if wxFontMapper
is not available.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70952 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-20 23:26:39 +00:00
Vadim Zeitlin
76cae7cbc2 Avoid crashes in wxMSW when using buttons without valid parent.
Child controls such as buttons are supposed to always have a valid parent but
if, somehow, they don't, still don't crash in wxMSW button code but just
trigger an assert failure instead of unavailable button top level parent
instead.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70935 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-18 01:35:53 +00:00
Julian Smart
7f6cf37004 Removed redundant DoEnable
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70881 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-12 11:42:49 +00:00
Julian Smart
6c6b938377 A fix for flicker when the top-level window is disabled or enabled (e.g. by modal dialogs).
Achieved by using IsThisEnabled to determine the visual disabled state and thus requiring no refresh on top-level window enabling/disabling.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70870 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-11 05:31:06 +00:00
Julian Smart
944a0ae011 It should be possible to set a null bitmap without asserting due to change of size
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70815 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-05 18:26:20 +00:00
Vadim Zeitlin
c6907dcd41 Remove the wrong "std::" scope prefix before ceil() call.
Fix compilation errors with VC6 (and possibly other compilers) introduced in
r70797 (see #13383): as we only include <math.h> and not <cmath> we don't
necessarily have std::ceil() available, only the extern "C" ceil(). Just use
the latter instead of the former.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70811 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-05 13:00:51 +00:00
Vadim Zeitlin
bb5a951418 Use __WINDOWS__ for OS checks and __WXMSW__ for GUI checks (round 2).
This is continuation of r70796 and serves the same purpose.

Closes #14065, #14066.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70808 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-04 20:31:42 +00:00
Vadim Zeitlin
d890beb9c8 Use standard IDC_CROSS cursor in wxMSW.
There doesn't seem to be any reason to prefer our own WXCURSOR_CROSS to it.

Closes #13035.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70802 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-04 00:29:58 +00:00
Vadim Zeitlin
a02b2a9d31 Don't set value unnecessarily in wxSpinCtrl::Create() in wxMSW.
This is not only unnecessary but also results in an unexpected event (which
could be avoided by using ChangeValue() but why bother calling it at all if we
don't need to).

Closes #13589.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70800 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-04 00:29:51 +00:00
Vadim Zeitlin
bcdeea5a5b No changes, just add wxSpinCtrl::Init() to wxMSW.
Remove a "TODO" comment about adding it and initialize all member variables
there instead of doing it only in Create().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70799 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-04 00:29:48 +00:00
Vadim Zeitlin
76c6713102 Fix stretchable spaces in wxToolBar after tool removal in wxMSW.
The stretchable spaces need to be manually updated after removing a tool from
the toolbar.

Closes #13577.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70798 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-04 00:29:44 +00:00
Vadim Zeitlin
0c827c6eef Correct mouse event coordinates in wxMSW wxUIActionSimulator.
The rounding of the floating point division was not done quite correctly.

Closes #13383.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70797 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-04 00:29:37 +00:00
Vadim Zeitlin
d98a58c543 Use __WINDOWS__ for OS kind checks and reserve __WXMSW__ for GUI toolkit.
This change prepares the way for using wxGTK under Windows as this would
still define __WINDOWS__ but use __WXGTK__ instead of __WXMSW__.

Closes #14064.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70796 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-04 00:29:31 +00:00
Vadim Zeitlin
e18a74e240 Take disabled windows into account in wxFindWindowAtPoint() in wxMSW.
Use ChildWindowFromPointEx(CWP_SKIPINVISIBLE) to ensure that we find the
disabled children (by not using CWP_SKIPDISABLED).

Add a unit test to check for the correct behaviour in all cases and document
it.

Closes #2942.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70794 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-04 00:29:17 +00:00
Vadim Zeitlin
b54eae5237 Remove redundant assignment in wxDialUpManagerMSW code.
No real changes, just remove a redundant assignment flagged by a static code
analysis tool.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70751 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-29 13:59:01 +00:00
Vadim Zeitlin
59859d3da1 Replace incorrect uses of wxString::empty() with the intended clear().
empty() doesn't empty the string but just checks for its emptiness, clear()
was supposed to be used here instead.

Thanks to PVS-Studio for finding these problems.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70750 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-29 13:58:58 +00:00
Vadim Zeitlin
4934653e18 Dispatch unknown messages immediately in wxMSW YieldFor().
Failure to do this can have catastrophic consequences, e.g. embedded ActiveX
IE controls may stop working -- even after resuming the normal message
dispatching.

Closes #14027.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70690 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-25 23:49:45 +00:00
Julian Smart
c8c77ee2af The tree only sets the focus in response to a TVN_SELCHANGINGW event if the tree is not being deleted.
TVN_SELCHANGINGW is generated when the tree items are deleted. Without this change, if a tree control is
in a dialog being closed, the newly active window will become inactive momentarily when tree items
are deleted and you will see a flicker.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70660 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-21 09:24:52 +00:00
Vadim Zeitlin
82b30473f9 Make wxDragImage ctors taking hot spot point really deprecated in wxMSW.
They were documented as deprecated and deprecated in the generic version (and
actually not even available there any more without WXWIN_COMPATIBILITY_2_6)
but not in wxMSW, where we just had the weird wxLogDebug() statements that
were inconsistent with our handling of deprecation everywhere else.

Do deprecate them now, remove wxLogDebug() and also remove the deprecated
ctors and Create() overloads from the documentation.

Finally, remove the documentation of deprecated and available in the generic
version only ctor taking only wxCursor (closes #13967).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70584 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-15 00:35:25 +00:00
Vadim Zeitlin
c3d3028a44 Update marks in non-current months shown in wxMSW wxCalendarCtrl.
Native wxMSW calendar control can show more than just the current month. When
other months are shown, ensure that they don't have marks for the days marked
in the current month as this doesn't make sense.

See #13934.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70568 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-11 16:26:47 +00:00
Vadim Zeitlin
169b83dd23 Set marks used in wxMSW wxCalendarCtrl unconditionally.
This fixes wrong display (random days could have been shown marked) when not
using wxCAL_SHOW_HOLIDAYS style. Apparently we need to set the marks
unconditionally as they are not turned off by default, so ensure we call
UpdateMarks() even without wxCAL_SHOW_HOLIDAYS.

See #13934.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70567 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-11 16:26:41 +00:00
Vadim Zeitlin
fd76344ecc Don't set PAGESETUPDLG::hDevNames and hDevMode when using PSD_RETURNDEFAULT.
If the page setup dialog is used to retrieve the default information, hDevMode
and hDevNames fields must not be set, otherwise PageSetupDlg() function simply
fails because of incorrect parameters passed to it.

Closes #13928.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70516 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-05 15:45:03 +00:00
Vadim Zeitlin
0c6dff0370 Preserve focus when window is minimized and restored in wxMSW.
Add specific code to save and restore the focus when the window is minimized
and restored in wxMSW as the existing code in WM_ACTIVATE handler wasn't
enough because this event was generated too late when minimizing the window
(when it was already minimized and so the focus had been already lost) and too
early when restoring it (so the window was still minimized and restoring focus
failed).

This is still not perfect as we do in our code something Windows would be
expected to do automatically but for whatever reason, it doesn't do it for
wxWidgets programs, and this manual workaround at least prevents the annoying
total focus loss.

Closes #1599.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70513 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-05 14:18:28 +00:00
Vadim Zeitlin
7e08367534 Ensure that the progress dialog parent is activated at the end under MSW.
The progress dialog parent was supposed to become the new foreground window
when the progress dialog was closed, but this didn't happen because
m_parentTop was never set when the native progress dialog implementation was
used under MSW. Fix this by explicitly calling the new SetTopParent() from its
ctor.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70512 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-05 14:18:25 +00:00
Vadim Zeitlin
7cee4f7621 No changes, just implement Raise() in wxTopLevelWindow in wxMSW.
Get rid of two identical implementations in wxFrame and wxDialog and only
override this function once in wxTopLevelWindow.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70511 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-05 14:18:22 +00:00