X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2f0312f0c4150de91d2edb43f92217557dc9486b..438959cca892a7651634cc3a7aad4819ac49b23c:/include/wx/msw/private/button.h diff --git a/include/wx/msw/private/button.h b/include/wx/msw/private/button.h index a6f2e68a93..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 @@ -44,18 +44,33 @@ 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 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 #endif // _WX_MSW_PRIVATE_BUTTON_H_