X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f2d7fdf7b0a57a7e0bf033530148343751b5346b..438959cca892a7651634cc3a7aad4819ac49b23c:/include/wx/msw/private/button.h diff --git a/include/wx/msw/private/button.h b/include/wx/msw/private/button.h index 03be993bc0..2f344f2d53 100644 --- a/include/wx/msw/private/button.h +++ b/include/wx/msw/private/button.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: msw/private/button.h +// Name: wx/msw/private/button.h // Purpose: helper functions used with native BUTTON control // Author: Vadim Zeitlin // Created: 2008-06-07 @@ -28,10 +28,6 @@ #define BST_INDETERMINATE 0x0002 #endif -#ifndef DT_HIDEPREFIX - #define DT_HIDEPREFIX 0x00100000 -#endif - namespace wxMSWButton { @@ -48,16 +44,32 @@ void UpdateMultilineStyle(HWND hwnd, const wxString& label); // flags for ComputeBestSize() and GetFittingSize() enum { - Size_AuthNeeded = 1 + Size_AuthNeeded = 1, + Size_ExactFit = 2 }; -// common implementation of wxButton and wxToggleButton::DoGetBestSize() -// (implemented in src/msw/button.cpp) -wxSize ComputeBestSize(wxControl *btn, int flags = 0); +// NB: All the functions below are implemented in src/msw/button.cpp -// compute the button size (as if wxBU_EXACTFIT were specified, i.e. without +// Compute the button size (as if wxBU_EXACTFIT were specified, i.e. without // adjusting it to be of default size if it's smaller) for the given label size -wxSize GetFittingSize(wxWindow *win, const wxSize& sizeLabel, int flags = 0); +WXDLLIMPEXP_CORE wxSize +GetFittingSize(wxWindow *win, const wxSize& sizeLabel, int flags = 0); + +// Compute the button size (as if wxBU_EXACTFIT were specified) by computing +// its label size and then calling GetFittingSize(). +wxSize ComputeBestFittingSize(wxControl *btn, int flags = 0); + +// Increase the size passed as parameter to be at least the standard button +// size if the control doesn't have wxBU_EXACTFIT style and also cache it as +// the best size and return its value -- this is used in DoGetBestSize() +// implementation. +wxSize IncreaseToStdSizeAndCache(wxControl *btn, const wxSize& size); + +// helper of wxToggleButton::DoGetBestSize() +inline wxSize ComputeBestSize(wxControl *btn, int flags = 0) +{ + return IncreaseToStdSizeAndCache(btn, ComputeBestFittingSize(btn, flags)); +} } // namespace wxMSWButton