Commit Graph

144 Commits

Author SHA1 Message Date
Vadim Zeitlin
3120eccfe2 Fix confusion with LOGFONT{A,W} parameters to MSW GetTheme[Sys]Font().
Change the signature of GetThemeFont() and GetThemeSysFont() methods of
wxUxThemeEngine to take an artificial wxUxThemeFont::Ptr type instead of
LOGFONT which allows the broken code to compile correctly and even work in
Unicode builds but crashed in ANSI ones under Windows Vista/7 as these
functions expect a LOGFONTW and not LOGFONTA even in non-Unicode build under
these systems.

This generalizes the previous fix/workaround for the same problem in
wxStaticBox so remove it now and use wxUxThemeFont both there and in
wxMenuItem to avoid crashes when using owner-drawn menus in ANSI build.

Closes #12364.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65955 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-10-30 23:50:22 +00:00
Vadim Zeitlin
abaa31e7ea No real changes, just cleanup of wxMSW MenuDrawData.
Derive MenuDrawData::Margins from Windows MARGINS struct to avoid ugly (and
potentially dangerous) reinterpret_cast<>s when using it.

Also add some helper functions to Margins to make using it less painful.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65954 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-10-30 23:50:08 +00:00
Vadim Zeitlin
60a7194e43 Postpone initialization of owner-drawn menu metrics.
Doing it during globals initialization time didn't work and could even result
in a crash due to dereferencing a NULL wxTheApp pointer.

Closes #11806.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63712 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-03-19 09:57:15 +00:00
Vadim Zeitlin
9d043a9227 Compilation fixes for PCH-less build after ownerdraw-refactor branch merge.
Forward declare more classes, in particular use tagRECT which can be forward
declared, instead of RECT typedef in public headers.

Also include more header in #ifndef WX_PRECOMP case.

See #11595.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63272 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-26 09:01:13 +00:00
Vadim Zeitlin
b8190883d0 Compilation fix after ownerdraw-refactor branch merge.
Don't use HDC in public headers, it may not be declared there. Use WXHDC
instead even if this means having ugly casts.

This fixed mingw32 compilation (see #11595).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63252 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-24 14:15:12 +00:00
Vadim Zeitlin
03cc29918f Fix off by 1 errors in owner-drawn menu drawing code in wxMSW.
The label was offset by 1 pixel vertically and the check marks were 1 pixel
too wide compared to the native ones under XP, correct this.

Closes #11420 (again).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63227 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-23 13:22:07 +00:00
Vadim Zeitlin
ee00931326 Correct drawing of check marks for owner-drawn items without bitmaps.
Standard check mark was not drawn correctly for check/radio items without
bitmaps.

Closes #11480.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63225 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-23 13:21:52 +00:00
Vadim Zeitlin
9c32ed26a2 Correct alignment of menu accelerator strings in owner-drawn menus.
Draw them right-aligned as the native menus do.

Closes #11479.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63224 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-23 13:21:46 +00:00
Vadim Zeitlin
aa4919edd1 Use theme functions for drawing owner-drawn menus.
This makes the menu items with custom attributes or bitmaps look more native,
especially on post-XP systems.

Closes #11420.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63223 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-23 13:21:36 +00:00
Vadim Zeitlin
98fbab9e7b Refactor owner-drawing code.
Only keep common code in the base class and extract all menu/listbox-specific
stuff into derived classes.

This makes the code cleaner and more maintainable but introduces some problems
in wxCheckListBox appearance which will be fixed by the next patch.

Closes #10635.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63220 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-23 13:21:12 +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
654c223bc7 check for m_parentMenu being NULL in IsChecked/Checked/Enable() too (closes #10460)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-01 12:30:27 +00:00
Vadim Zeitlin
3350ab0cf2 allow calling SetItemLabel() for menu items with NULL menu parent too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58578 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-31 23:16:55 +00:00
Vadim Zeitlin
5c6aad4737 allow calling SetItemLabel() for items not attached to the menu or menu bar yet (comment 9 of #10452)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58574 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-31 22:46:43 +00:00
Vadim Zeitlin
d4290fa5b8 corrections after last commit, (see #10452 comment:6)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58571 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-31 21:53:03 +00:00
Vadim Zeitlin
3d45718de5 use SetMenuItemInfo() to update the item label to avoid reseting its bitmap and so use the same code for the desktop and CE versions (see #10452)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58556 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-31 17:51:02 +00:00
Vadim Zeitlin
5c33522fca replace wx_{const,static,reinterpret}_cast with their standard C++ equivalents
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-02 02:39:52 +00:00
Paul Cornett
cabb286d30 move 8 copies of the same function to common code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54092 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-11 05:23:53 +00:00
Paul Cornett
efebabb7ff mark long-deprecated ctor as such
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53809 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-29 04:26:29 +00:00
Vadim Zeitlin
fa7134b05a use kind, not id, of a menu item to test whether it's a separator: this allows having separators with ids other than wxID_SEPARATOR in case it's useful to distinguish between them (patch 1929039)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53056 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-04-06 15:55:42 +00:00
Vadim Zeitlin
dca0f65178 more /Wp64 warning fixes: mostly use UINT_PTR instead of UINT and define our WX[WL]PARAM with __w64 if available to avoid hundreds of warnings when casting LPARAMs to pointers/handles
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52165 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-28 02:22:52 +00:00
Vadim Zeitlin
660e7fda2c fix several problems in handling of the menu items with negative ids
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50033 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-17 20:38:07 +00:00
Julian Smart
52af3158e9 Menu label consistency changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48023 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-11 17:54:59 +00:00
Václav Slavík
c9f7896861 first phase of transition to unified Unicode build:
1. changed c_str() to return wxCStrData (implicitly convertible to wxChar*)
2. added template type-safe wrappers for vararg functions
3. added wxUniChar class representing single Unicode character
4. changed wxString::operator[] and wxString::iterator to return wxUniChar


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44865 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-17 10:26:10 +00:00
Vadim Zeitlin
345319d60c fixes to menu stock items support (patch 1547639)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41021 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-05 21:00:55 +00:00
Robert Roebling
efb27c04d3 I forgot to commit this one.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40988 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-04 08:52:29 +00:00
Robert Roebling
ee0a94cfc2 Commited FRM's stockitem patch (empty stock items).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40978 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-03 12:23:04 +00:00
Włodzimierz Skiba
48a1108eb8 Include wx/font.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39734 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-06-14 19:51:14 +00:00
Włodzimierz Skiba
3b3dc8019a Include wx/menu.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39205 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-05-18 07:13:20 +00:00
Włodzimierz Skiba
e4db172a3b Include wx/log.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38920 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-04-26 08:21:31 +00:00
Mart Raudsepp
8907154c1a Nuke #pragma implementation/interface's
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35650 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-09-23 12:56:45 +00:00
Gilles Depeyrot
220aea7b09 corrected typo in comment
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32773 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-03-12 14:16:28 +00:00
Vadim Zeitlin
51d2fa37c4 more visual improvements to owner-drawn menus (patch 1143785)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32197 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-02-19 17:25:37 +00:00
Julian Smart
271fa25083 Applied [ 1059554 ] patch for [1028659] fixes a couple of bugs with menus
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31958 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-02-12 10:42:00 +00:00
Vadim Zeitlin
c9cb79cbd6 compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29191 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-09-18 09:59:01 +00:00
Vadim Zeitlin
f03e9ae7a7 replaced wxLogLastError with an assert when checking an item not attached to a menu (see bug 1030141)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29189 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-09-18 09:46:02 +00:00
Włodzimierz Skiba
598ddd96f4 Source cleaning: -1/wxID_ANY/wxDefaultCoord, ::, !!, TRUE/true, FALSE/false, whitespaces, tabs.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28966 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-08-30 10:18:55 +00:00
Julian Smart
655719367a Use old licence name
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27408 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-05-23 20:53:33 +00:00
Julian Smart
77ffb5937e Name and version changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27404 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-05-23 14:56:36 +00:00
Robin Dunn
ea16d35127 silence a bogus error message
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26943 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-04-25 00:43:20 +00:00
Vadim Zeitlin
af498247c5 make XTI compile with VC6 (patch 896614)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26820 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-04-15 22:51:57 +00:00
Vadim Zeitlin
3a5bcc4db0 removed Win16 code (patch 905241), last version with remains of Win16 support tagged with BEFORE_WIN16_REMOVAL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26423 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-03-28 13:10:14 +00:00
Julian Smart
51f8b24631 Applied [ 876737 ] menu item with bitmap uses wrong font
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25211 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-01-17 17:05:35 +00:00
Stefan Csomor
3ff066a4ec macro naming changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@23376 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-09-04 01:19:40 +00:00
Stefan Csomor
e70b4f1095 unicode adaptions, menu support
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@23224 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-08-25 23:33:36 +00:00
Václav Slavík
14f355c2b5 added support for gcc precompiled headers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22723 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-08-09 12:46:53 +00:00
Julian Smart
09785dd38d Fixed menubar on WinCE
Removed some obsolete files


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21921 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-07-12 15:11:00 +00:00
Julian Smart
4676948b68 More WinCE mods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21902 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-07-11 21:50:07 +00:00
Mattia Barbon
222ed1d678 STL-ification patch for wxMSW and wxGTK.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21876 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-07-10 19:55:12 +00:00
Julian Smart
19b4237945 Applied patch [ 731719 ] Owner draw font leak/overuse
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20443 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-05-03 11:56:38 +00:00