Commit Graph

155 Commits

Author SHA1 Message Date
Vadim Zeitlin
b78a53aca0 Use disabled version of normal bitmap for disabled one in wxMSW::wxButton.
Initialize the disabled button bitmap with a greyed out version of the normal
one instead of using the same normal bitmap for it. This is more consistent
with the other ports and makes more sense.

Closes #13070.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67284 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-22 17:15:34 +00:00
Vadim Zeitlin
a3b89fa936 Correctly align background brush when erasing owner drawn bitmaps in wxMSW.
Add a hack to work around the problem with background alignment when drawing
the owner-drawn buttons in wxMSW. This fixes the alignment for any custom
brushes used for background painting but doesn't help with user-defined
EVT_ERASE_BACKGROUND handlers which still don't work well with the owner-drawn
buttons. Unfortunately DrawThemeParentBackground() remains a mystery and I
couldn't understand why not only doesn't it position the DC correctly on its
own but also ignores any attempts to do it manually.

This also doesn't help with the stubbornly remaining one pixel non-transparent
border around non-owner-drawn buttons which I just can't get rid of.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67281 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-22 15:07:20 +00:00
Vadim Zeitlin
ce39ca74bc Fix changing the size of the bitmaps in wxMSW wxButton.
The size of the wxImageList used to store the bitmaps wasn't updated before
and so the old bitmap size continued to be used even after changing the actual
bitmaps.

Recreate wxXPButtonImageData to ensure that the image list size does change.

Closes #12909.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67187 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-14 11:54:39 +00:00
Vadim Zeitlin
31dcbd12ef Respect alignment flags for owner-drawn buttons in wxMSW.
Honour wxBU_{LEFT,RIGHT,TOP,BOTTOM} flags for owner drawn buttons too, this
ensures that you can both change the colour and align the text differently for
buttons under XP and later.

Closes #12995.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67184 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-14 11:54:26 +00:00
Vadim Zeitlin
95912bddde Add markup support to wxMSW wxButton and show it in the sample.
Use recently added wxMarkupText to implement support for markup in wxMSW
wxButton.

Update the button page of the widgets sample to show markup support.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67065 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:48:26 +00:00
Vadim Zeitlin
46e3b70f20 Restore height tweaking in wxMSWButton::GetFittingSize().
The change of r66893 was wrong, we do need to adjust the button height here
because the increase to standard height is not enough if we use bigger fonts
that require making taller buttons.

The real problem was the use of EDIT_HEIGHT_FROM_CHAR_HEIGHT() which added too
much to the height, so replace it with something based on the actual font
height. This is still arbitrary but slightly better.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67059 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:47:48 +00:00
Vadim Zeitlin
98977bf454 Initialize wxButton::m_authNeeded in ctor and not Create() in wxMSW.
Ensure that the member is always initialized as calling GetAuthNeeded() for a
default-constructed button would access a non-initialized variable before.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67058 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:47:43 +00:00
Vadim Zeitlin
4bf152c5b4 Only use wxBU_EXACTFIT for width calculations in wxMSW wxButton.
wxBU_EXACTFIT should affect the width of the button best size but not its
height which should be at least the same as the height of a standard button
even when wxBU_EXACTFIT is specified, otherwise buttons created with it (like
the one in generic wxCollapsiblePane implementation) look completely ugly.

This commit restores the old behaviour which was recently changed by wxButton
sizing code simplifications.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67045 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:45:24 +00:00
Vadim Zeitlin
738764c0e6 Don't increase button height in wxMSWButton::GetFittingSize().
This is unnecessary and resulted in too high buttons in some cases for buttons
with images. As we increase the button height to at least the standard value
later in all code using function anyhow, it's not necessary to do anything
with the height inside it.

Now the buttons with an image get the same height whether they have the text
or not.

This change also gets rid of (completely arbitrary) decision to use 11/10 of
the label height when computing the fitting button size and it's always nice
to get rid of dirty hacks like this.

Closes #12924.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66893 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-14 22:12:16 +00:00
Vadim Zeitlin
1e43584aa7 Don't make buttons with images too wide in wxMSW.
We used to increase the button size to the standard size first and then add
the extra padding the buttons with images. This resulted in too much padding
for the buttons with short text labels and images.

Instead, add the padding for the image first and only then increase the button
size to the standard one if still needed.

See #12924.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66892 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-14 22:12:10 +00:00
Vadim Zeitlin
c3d652aeb9 Don't add margins for buttons with text and images by default in wxMSW.
For some reason wxXPButtonImageData added (big) margins around the button by
default resulting in too much padding. Simply remove these margins to make it
behave similarly to wxODButtonImageData.

See #12924.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66891 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-14 22:12:04 +00:00
Vadim Zeitlin
65034d07ed Clarify wxButton::AdjustForBitmapSize() semantics in wxMSW.
This method should only be called if we do have an image, assert (instead of
silently returning) if it's called when we don't.

Also explain in a comment why do we need to call CacheBestSize() only when we
have an image in DoGetBestSize().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66890 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-14 22:11:58 +00:00
Paul Cornett
d2bc87252a non-pch build fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66613 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-07 04:50:53 +00:00
Stefan Csomor
2895324520 merging back XTI branch part 2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66555 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-04 08:31:53 +00:00
Vadim Zeitlin
2f0312f0c4 Compilation fixes for old SDKs (VC6) after recent commit.
Define WM_QUERYUISTATE in wx/msw/missing.h too as src/msw/statbox.cpp uses it
now.

Also move DT_HIDEPREFIX definition from wx/msw/private/button.h to missing.h
as well as it's now used in statbox.cpp too. Include missing.h explicitly from
the files that use DT_HIDEPREFIX.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65582 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-21 12:57:59 +00:00
Vadim Zeitlin
3571e1add4 Add new wxCommandLinkButton class.
A command link button wraps a native MSW control under recent Windows versions
and is implemented generically as a simple bitmap button elsewhere.

In the future, GTK implementation should allow using a different font for the
button label and its note.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65327 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-08-17 14:48:50 +00:00
Vadim Zeitlin
1cd44b9c5f Keep the button bitmap centered if the button has no label in wxMSW.
We should only honour the bitmap alignment if the button shows both the bitmap
and the label. If only the bitmap is shown (e.g. when wxBitmapButton is used),
it should always be centered as it used to be done in 2.8.

Closes #12323.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65235 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-08-10 18:58:02 +00:00
Robin Dunn
06bb8d923d Invalidate best size when the bitmap or bitmap position changes. Add GetBitmapMargins
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63595 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-03-01 23:20:35 +00:00
Vadim Zeitlin
6d9941636d Fix harmless g++ 4.3 warning about suggested parentheses.
Closes #11719.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63552 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-02-25 00:03:48 +00:00
Vadim Zeitlin
f2d7fdf7b0 Add support for showing "elevation" icon in wxMSW buttons.
Add, document and test in the widgets sample wxButton::SetAuthNeeded().

Closes #11705.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63421 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-02-08 19:52:00 +00:00
Václav Slavík
5c3c137277 Fixed dialog units <-> pixels conversion.
The computation is now identical to Windows native one. To achieve this,
MSDN-recommended GetTextExtent() call is used instead of GetCharWidth().
wxMulDivInt32() is used instead of integer arithmetics to achieve
correct rounding.

Use toplevel parent's font instead of window's own. This makes more
sense, as dialog units are defined for TLWs, not individual subcontrols.

Also fixed wxMSW's wxButton::GetDefaultSize() to compute dialog units
correctly.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63251 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-24 11:51:09 +00:00
Václav Slavík
8cb03510a1 Determine wxButton size correctly in wxMSW.
Instead of using default size for default GUI font, use the default font
for this dialog's current font.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63250 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-24 11:51:00 +00:00
Vadim Zeitlin
4b601a59b5 Fix best size computation for buttons without image and with empty label.
If a button was initially created with an empty label (but without image
neither), its best size was computed and cached as being null. Correct this by
giving the button the default size instead, as expected.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62970 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-22 15:37:37 +00:00
Václav Slavík
bdf14bff10 PCH compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62889 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-15 11:24:17 +00:00
Vadim Zeitlin
eb74a51f7e No changes, just add a comment to the button focus handling code.
The workarounds for the button focus issues should become unnecessary if we
switch to setting the focus correctly as explained in the linked post.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62504 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-27 16:44:16 +00:00
Vadim Zeitlin
e431c7df61 Always correctly invalid best size when bitmap changes.
Previously it was done only when the initial bitmap was set, not when it was
subsequently changed.

Closes #11018.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61509 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-23 23:01:10 +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
86ac84b8ce don't draw borders for bitmap buttons with wxBORDER_NONE style
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61116 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-18 17:13:51 +00:00
Vadim Zeitlin
a21175918e added wxBU_NOTEXT style to allow creating bitmap buttons with stock id not showing the label, as it was possible before
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61104 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-17 22:13:46 +00:00
Vadim Zeitlin
a6fd73d33a implement wxBitmapButton as just a wrapper for wxButton under MSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61071 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-15 23:10:16 +00:00
Vadim Zeitlin
958e4b4b75 added missing int
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61069 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-15 22:36:57 +00:00
Vadim Zeitlin
d5b98eb928 implement support for per-state bitmaps in wxMSW wxButton
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61067 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-15 20:18:10 +00:00
Vadim Zeitlin
8f4745feeb implement button support for pre-XP systems (or with themes disabled); using only the normal bitmap so far
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61063 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-15 19:21:49 +00:00
Vadim Zeitlin
9c956c0a59 no real changes, just use AutoHXXX classes instead of manually creating/deleting objects in owner drawing code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61061 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-15 17:53:58 +00:00
Vadim Zeitlin
d8c89c487d no real changes, just extract private classes from msw/dc.cpp into a private header so that they could be reused from button owner drawing code too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61060 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-15 17:49:27 +00:00
Vadim Zeitlin
233f10bf15 implement images support for wxButton under XP and later
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61054 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-15 04:23:54 +00:00
Vadim Zeitlin
2352862a7e preparation work for implementing images support in wxButton: move wxBitmapButton methods to the base class (enhancing/completing them in the process); there are no functionality changes yet (hopefully)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61051 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-14 22:55:24 +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
Vadim Zeitlin
f915b92e09 fix ownerdrawn button label drawing in ODS_NOACCEL case (#3519)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55725 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-09-19 07:50:44 +00:00
Vadim Zeitlin
433aca2d0d extract button size calculation from button label size to a separate function to allow reusing it elsewhere
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55474 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-09-05 14:10:50 +00:00
Vadim Zeitlin
4af4dec65f compilation fix for PCH-less build; also moved some functions out of line
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54958 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-03 12:24:25 +00:00
Vadim Zeitlin
9016f3ad73 add support for multiline labels in wxToggleButton
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54955 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-03 11:47:01 +00:00
Vadim Zeitlin
533171c287 support multiline labels in wxCheckBox (#9495)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54008 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-07 01:54:44 +00:00
Vadim Zeitlin
627c8d8993 correction after the previous commit which introduced bug 1888014
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51574 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-06 19:57:19 +00:00
Vadim Zeitlin
9617f65bcc fix GetTLWParentIfNotBeingDeleted() to work correctly even if an intermediate non-TLW parent is being deleted, it should still return the TLW parent and not NULL in this case, otherwise we'd crash when a button child of a panel being deleted is current temporary default button
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51570 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-06 13:56:23 +00:00
Vadim Zeitlin
d94de683a6 update button style to include BS_MULTILINE when a multiline label is set
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47815 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-29 13:38:34 +00:00
Vadim Zeitlin
c4e1d0fc47 no changes, just removed unnecessary #ifdef __WIN32__
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47814 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-29 13:16:32 +00:00
Václav Slavík
e0a050e347 more changes to make wx compile without implicit wxString->char* conversion (for STL build)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46553 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-20 07:44:45 +00:00
Vadim Zeitlin
05c5f28144 don't try to update TLW default button in WM_SET/KILLFOCUS handlers if the TLW is being deleted (bug 1660913)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45956 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-05-11 12:58:55 +00:00
Vadim Zeitlin
ebc0b15552 compilation fix after last change
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45351 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-09 12:19:12 +00:00