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
This commit is contained in:
@@ -64,6 +64,12 @@ class WXDLLIMPEXP_CORE wxButtonBase : public wxControl
|
||||
public:
|
||||
wxButtonBase() { }
|
||||
|
||||
// show the authentication needed symbol on the button: this is currently
|
||||
// only implemented on Windows Vista and newer (on which it shows the UAC
|
||||
// shield symbol)
|
||||
void SetAuthNeeded(bool show = true) { DoSetAuthNeeded(show); }
|
||||
bool GetAuthNeeded() const { return DoGetAuthNeeded(); }
|
||||
|
||||
// show the image in the button in addition to the label: this method is
|
||||
// supported on all (major) platforms
|
||||
void SetBitmap(const wxBitmap& bitmap, wxDirection dir = wxLEFT)
|
||||
@@ -170,6 +176,9 @@ protected:
|
||||
// choose the default border for this window
|
||||
virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
|
||||
|
||||
virtual bool DoGetAuthNeeded() const { return false; }
|
||||
virtual void DoSetAuthNeeded(bool WXUNUSED(show)) { }
|
||||
|
||||
virtual wxBitmap DoGetBitmap(State WXUNUSED(which)) const
|
||||
{ return wxBitmap(); }
|
||||
virtual void DoSetBitmap(const wxBitmap& WXUNUSED(bitmap),
|
||||
|
@@ -80,6 +80,8 @@ protected:
|
||||
// usually overridden base class virtuals
|
||||
virtual wxSize DoGetBestSize() const;
|
||||
|
||||
virtual bool DoGetAuthNeeded() const;
|
||||
virtual void DoSetAuthNeeded(bool show);
|
||||
virtual wxBitmap DoGetBitmap(State which) const;
|
||||
virtual void DoSetBitmap(const wxBitmap& bitmap, State which);
|
||||
virtual wxSize DoGetBitmapMargins() const;
|
||||
@@ -88,6 +90,9 @@ protected:
|
||||
|
||||
class wxButtonImageData *m_imageData;
|
||||
|
||||
// true if the UAC symbol is shown
|
||||
bool m_authNeeded;
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxButton)
|
||||
};
|
||||
|
@@ -45,13 +45,19 @@ inline int GetMultilineStyle(const wxString& label)
|
||||
// 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
|
||||
};
|
||||
|
||||
// common implementation of wxButton and wxToggleButton::DoGetBestSize()
|
||||
// (implemented in src/msw/button.cpp)
|
||||
wxSize ComputeBestSize(wxControl *btn);
|
||||
wxSize ComputeBestSize(wxControl *btn, int flags = 0);
|
||||
|
||||
// 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);
|
||||
wxSize GetFittingSize(wxWindow *win, const wxSize& sizeLabel, int flags = 0);
|
||||
|
||||
} // namespace wxMSWButton
|
||||
|
||||
|
Reference in New Issue
Block a user