Commit Graph

997 Commits

Author SHA1 Message Date
Vadim Zeitlin
0369a9fedf No real changes, just don't initialize extern variable to avoid g++ warning.
g++ warns about initialized extern variables so separate the declaration from
the initialization to avoid this warning.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63270 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-26 09:01:02 +00:00
Vadim Zeitlin
108694fe19 Make wxWindow::MSWGetThemeColour() const.
There doesn't seem to be any reason for this method to not be const.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63269 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-26 09:00:55 +00:00
Vadim Zeitlin
6c0487907a Compilation fix for wxUniv.
We need explicit casts to wxWindow in wxWindowMSW code.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63268 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-26 09:00:48 +00:00
Vadim Zeitlin
7ca106e860 Allow to not create wxPaintDC in EVT_PAINT handler in wxMSW.
Failure to create a wxPaintDC in EVT_PAINT handler resulted in many serious
and difficult to debug problems under wxMSW. We used to document that the user
shouldn't do it but this wasn't enough (see #11648). We could also assert if
we detected that a handler didn't create a wxPaintDC but it seems better to
just handle this case gracefully for consistency with the other platforms.

Add wxDidCreatePaintDC global variable which is reset before generating
wxPaintEvent and set to true when ::BeginPaint() is called from wxPaintDC
ctor and validate the update region of the window ourselves if it wasn't set
(meaning that wxPaintDC wasn't created).

Update the documentation to emphasize the link between EVT_PAINT handlers and
wxPaintDC but without saying that wxPaintDC object must always be created in
the handler as this is not true any more.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63229 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-23 13:22:25 +00:00
Vadim Zeitlin
cbab155657 No real changes, just fix a typo in comments and documentation.
Use "surprising" instead of (common) "surprizing" misspelling.

Closes #11627.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63154 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-14 18:02:26 +00:00
Vadim Zeitlin
bec9bf3e20 Finally really correct background erasing for wxMSW wxToolBar.
Do use TBSTYLE_FLAT and TBSTYLE_TRANSPARENT (the former actually implies the
latter) for MSW toolbar as it is the only way to avoid the flicker of toolbar
buttons. These styles were disabled before because of lack of understanding
about how they worked: with them, the toolbar supposes that its parent takes
care of erasing its background but wx didn't do this (in fact wxFrame did
accidentally erase toolbar background because of the use of Win32 client
rectangle, including tool/status bars, instead of wx client rectangle,
excluding them, in wxWindowMSW::DoEraseBackground(), but it didn't do it
correctly).

Now we allow hooking WM_ERASEBKGND events processing in a parent window by a
child one and use this to handle toolbar background erasing in toolbar itself.
We still prevent the native toolbar from drawing dummy separators and always
erase the area occupied by them ourselves and thus avoid the flicker entirely.

The only remaining flicker in the toolbar sample is that of embedded
wxStaticText control. It does appear with correctly transparent background and
bitmaps with alpha channel also (still) are drawn correctly in wxStaticBitmaps
embedded in the toolbar.

Finally, we still use solid background brush for toolbar but we can easily use
a themed background if really desired, there is just a single function to
change to do it (MSWGetToolbarBgBrush()).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62971 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-22 15:37:43 +00:00
Jaakko Salli
b9de6a2187 Suppress 'unused argument' warnings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62948 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-19 15:07:52 +00:00
Jaakko Salli
a5b1be33b7 Added wxWindowMSW::MSWGetThemeColour(); initially use it in wxComboCtrl::OnThemeChange()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62947 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-19 14:47:37 +00:00
Vadim Zeitlin
b8797d96ca No real changes, just change type of MSWGetBgBrush() argument.
Pass wxWindow instead of HWND to it as in most cases we already have wxWindow
for the HWND we have and calling wxFindWinFromHandle() once more is
unnecessary.

This also makes the code of MSWGetBgBrushForChild() slightly simpler.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62932 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-18 20:49:23 +00:00
Vadim Zeitlin
4f04a4fd78 Always use FVIRTKEY for the accelerators under MSW.
Not using FVIRTKEY results in problems in non-US keyboard layouts and, in
fact, we were already always using it because wxCharCodeWXToMSW() returned
true in its output IsVirtual argument most of the time.

Just do it always now and also remove IsVirtual parameter with badly (if at
all...) defined meaning from wxCharCodeWXToMSW() as it's not used anywhere any
longer.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62913 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-17 16:44:09 +00:00
Vadim Zeitlin
0639363014 Generate erase background events for native controls too under MSW.
Remove the test which prevented the generation of erase background events from
wxMSW::wxWindow::HandleEraseBkgnd(). Although it is true that native controls
mostly erase background on their own, there are exceptions: we must erase the
background of wxToolBar ourselves, for example. More importantly, there is no
reason to prevent the user code from defining wxEVT_ERASE_BACKGROUND handlers
for the native controls as this works just fine under MSW (although it doesn't
under GTK nor probably other ports...). So also add a test erase background
handler to the toolbar sample to verify that this does work.

Closes #11514.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62805 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-07 13:37:01 +00:00
Vadim Zeitlin
ffa50e7361 Added wxSHOW_EFFECT_NONE.
Calling Show/HideWithEffect() with this effect is the same as calling just the normal Show/Hide().

This is convenient as it allows to use the same API, whether with effects or without them.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62267 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-05 22:53:57 +00:00
Vadim Zeitlin
b469c9d81b Handle deprecated background styles correctly in wxMSW.
Handle wxBG_STYLE_TRANSPARENT as wxBG_STYLE_PAINT and wxBG_STYLE_COLOUR as
wxBG_STYLE_ERASE instead of asserting (and almost surely crashing next, as
this assert is in the code called when the window is repainted and so will be
called again when the assert dialog is shown resulting in reentrant assert).

Closes #11208.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62049 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-24 00:22:04 +00:00
Vadim Zeitlin
5ec3853fa6 Don't use deprecated integer mask with wxLogTrace().
Use string mask instead of the deprecated wxTraceMessages to fix compilation
with WXWIN_COMPATIBILITY_2_8==0.

Closes #11229.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62035 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-23 14:28:35 +00:00
Julian Smart
140d93c024 Returning WVR_REDRAW triggers Windows bug that moves child windows, so don't use it.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62018 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-22 15:20:17 +00:00
Julian Smart
7fd86b2141 Avoid duplicate character event for VK_DECIMAL on numeric keypad
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61979 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-20 10:57:32 +00:00
Vadim Zeitlin
4329eae943 Use GetBestSize() rather than DoGetBestSize().
Call GetBestSize() from wxWindowMSW::DoSetSize() so that it works correctly
for the classes which only override DoGetBestClientSize() and not
DoGetBestSize() itself, such as wxStaticText.

Closes #11096.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61785 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-30 17:25:02 +00:00
Vadim Zeitlin
9a83f86094 Globally replace _T() with wxT().
Standardize on using a single macro across all wxWidgets sources and solve the name clash with Sun CC standard headers (see #10660).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-23 20:30:22 +00:00
Vadim Zeitlin
43b2d5e7c3 Put braces around all calls to wxLogFunctions() inside an if statement.
This suppresses all the remaining g++ -Wparentheses warnings and uses consistent style everywhere.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61475 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-20 16:47:54 +00:00
Vadim Zeitlin
743b426605 Added DoGetClientBestSize() and use it for a couple of controls in wxMSW.
DoGetClientBestSize() returns the best size of the client area, without
accounting for the border which is done by GetBestSize() itself and
DoGetBorderSize() called from it.

Use DoGetClientBestSize() in wxStaticText (where it was done
insideDoGetBestSize() before) and in wxListBox, to fix its height calculation.

Also use correct height of listbox items as returned by the control itself
instead of trying to guess it.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61169 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-22 20:36:13 +00:00
Vadim Zeitlin
c753eb9269 implement new wxBG_STYLE_XXX semantics for wxMSW too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61086 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-17 04:36:28 +00:00
Vadim Zeitlin
6de7047076 add virtual DoGetTextExtent() to allow calling the overloaded wxWindowBase::GetTextExtent() on wxWindow objects without any ugly casts/scope resolution operators
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60984 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-10 16:41:41 +00:00
Vadim Zeitlin
f5c1b76c1c add missing wxUSE_DEFERRED_SIZING tests (closes #10766)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60601 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-05-12 12:22:42 +00:00
Vadim Zeitlin
6bd9b9f247 added MSWEndDeferWindowPos(); renamed USE_DEFERRED_SIZING to wxUSE_DEFERRED_SIZING and moved it to the header
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60460 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-05-01 21:48:10 +00:00
Vadim Zeitlin
ff9b9665a2 added names of WM_XXXUISTATE messages to wxGetMessageName() (closes #10691)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60057 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-07 15:00:09 +00:00
Vadim Zeitlin
50e08f9d2f fix compilation breaking typo in recent commit
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59739 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-22 20:51:54 +00:00
Vadim Zeitlin
4b6a582bef replace more __WXDEBUG__ occurrences with wxDEBUG_LEVEL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59725 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-22 12:53:48 +00:00
Vadim Zeitlin
23c26b99e0 fix generation of wxEVT_CHAR_HOOK events which, incredibly, seems to have never worked because of incorrect parameter being passed to SetWindowsHookEx()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59700 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-21 16:11:06 +00:00
Robert Roebling
e47e063af2 Add wxSIZE_FORCE_EVENT and use is from wxSizerItem::SetDimension
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58526 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-30 20:10:44 +00:00
Vadim Zeitlin
d57f1dd7fe undo r58380 as it breaks tree control background repainting (see #9832)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58412 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-25 19:07:11 +00:00
Vadim Zeitlin
838ab05ede allow using wxBG_STYLE_CUSTOM even with the native controls and use it in wxTreeCtrl (see #9832)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58380 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-25 11:40:41 +00:00
Vadim Zeitlin
c6212a0cb7 set m_isBeingDeleted to true (only) in SendDestroyEvent(); call it as early as possible during the window destruction to ensure that destroy event handlers can still access the full window object
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58246 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-20 18:33:33 +00:00
Vadim Zeitlin
d3b9f782ef don't use annoying and unneeded in C++ casts of NULL to "T *" in all other files neither
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58227 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-19 13:55:27 +00:00
Vadim Zeitlin
1ddb6d2857 allow passing -1 range to SetScrollbar() to indicate the the scrollbar should be disabled and use this to implement wxSHOW_SB_ALWAYS in the generic wxScrollHelper
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57535 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-24 21:58:05 +00:00
Vadim Zeitlin
5a9379d7b0 implement wxLoadedDLL, a safer alternative to wxDL_GET_LOADED (closes #10208)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57405 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-17 22:19:41 +00:00
Vadim Zeitlin
fe8f9ad70c don't call DragFinish() before calling DragQueryPoint() or we (naturally) don't get the correct answer from the query (#10238)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57099 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-04 00:17:36 +00:00
Vadim Zeitlin
d9698bd4ac cleanup the Win32 window classes registration code: remove global variables and register the window classes we use on demand to avoid registering MDI or GL classes unnecessarily
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57030 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-29 22:19:55 +00:00
Vadim Zeitlin
5dec01d469 update after r57026 change to app.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57027 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-29 15:03:28 +00:00
Vadim Zeitlin
e408bf5257 add safe wxStrlcpy() function and replaced all wxStrncpy() calls by it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57023 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-29 14:41:02 +00:00
Vadim Zeitlin
e2d4ce7d36 don't load comctl32.dll, just get the handle of the already loaded instance of it instead, this avoids accidentally loading 2 different versions of this DLL in the same process (see #10203)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56863 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-20 16:45:45 +00:00
Vadim Zeitlin
e822d1bd5f fix more Borland release build warnings about unused variable/code without effect
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56463 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-20 10:30:49 +00:00
Vadim Zeitlin
f8cba58b84 reset deferred position/size if the window was moved immediately (#10073)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56348 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-15 21:03:40 +00:00
Vadim Zeitlin
75e8e6dc29 return true from IsDoubleBuffered() if our TLW parent is a composited window; the old version returned false in this case which probably was unintentional as it doesn't seem to make sense (see #9666)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54938 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-02 22:33:08 +00:00
Vadim Zeitlin
d66d050088 add wxGet/Set/HasWindowExStyle() helpers and use them
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54937 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-02 22:30:05 +00:00
Vadim Zeitlin
7157abfba1 generate a size event from ShowWithEffect() for consistency with Show()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54805 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-29 12:35:15 +00:00
Vadim Zeitlin
d8df88930e allow using SetFont(wxNullFont) to reset the font as per documented behaviour (#3238)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54664 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-16 15:53:44 +00:00
Vadim Zeitlin
17a043046c fix wxUniv/MSW build with wxUSE_MENUS==0 (#9694)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54559 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-09 02:36:00 +00:00
Vadim Zeitlin
a6ac49b198 avoid duplicating wxWindow::HandleCommand() in wxFrame, only handle the commands for the frame menu bar elements there: this avoid generating duplicate events if a command event handler skips
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54498 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-05 20:51:16 +00:00
Robin Dunn
f60ca3e24c Add a SetDoubleBuffered method for wxMSW (XP+)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53930 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-02 18:30:13 +00:00
Vadim Zeitlin
2303552172 assert if the window is being recreated, this indicates a bug in the user code and can be difficult to find without the help of this assert
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53555 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-11 17:18:15 +00:00