| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | 
							- ///////////////////////////////////////////////////////////////////////////////
 
- // Name:        wx/msw/private/button.h
 
- // Purpose:     helper functions used with native BUTTON control
 
- // Author:      Vadim Zeitlin
 
- // Created:     2008-06-07
 
- // Copyright:   (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
 
- // Licence:     wxWindows licence
 
- ///////////////////////////////////////////////////////////////////////////////
 
- #ifndef _WX_MSW_PRIVATE_BUTTON_H_
 
- #define _WX_MSW_PRIVATE_BUTTON_H_
 
- // define some standard button constants which may be missing in the headers
 
- #ifndef BS_PUSHLIKE
 
-     #define BS_PUSHLIKE 0x00001000L
 
- #endif
 
- #ifndef BST_UNCHECKED
 
-     #define BST_UNCHECKED 0x0000
 
- #endif
 
- #ifndef BST_CHECKED
 
-     #define BST_CHECKED 0x0001
 
- #endif
 
- #ifndef BST_INDETERMINATE
 
-     #define BST_INDETERMINATE 0x0002
 
- #endif
 
- namespace wxMSWButton
 
- {
 
- // returns BS_MULTILINE if the label contains new lines or 0 otherwise
 
- inline int GetMultilineStyle(const wxString& label)
 
- {
 
-     return label.find(wxT('\n')) == wxString::npos ? 0 : BS_MULTILINE;
 
- }
 
- // update the style of the specified HWND to include or exclude BS_MULTILINE
 
- // depending on whether the label contains the new lines
 
- void UpdateMultilineStyle(HWND hwnd, const wxString& label);
 
- // flags for ComputeBestSize() and GetFittingSize()
 
- enum
 
- {
 
-     Size_AuthNeeded = 1,
 
-     Size_ExactFit   = 2
 
- };
 
- // 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
 
- // 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_
 
 
  |