Document wxBitmapToggleButton, add update UI event in Base class for all toggle buttons
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50563 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -29,15 +29,15 @@ class WXDLLIMPEXP_FWD_CORE wxToggleBitmapButton;
|
||||
extern WXDLLIMPEXP_CORE const char wxCheckBoxNameStr[];
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxToggleBitmapButton
|
||||
// wxBitmapToggleButton
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
class WXDLLIMPEXP_CORE wxToggleBitmapButton: public wxControl
|
||||
class WXDLLIMPEXP_CORE wxBitmapToggleButton: public wxToggleButtonBase
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
wxToggleBitmapButton() {}
|
||||
wxToggleBitmapButton(wxWindow *parent,
|
||||
wxBitmapToggleButton() {}
|
||||
wxBitmapToggleButton(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxBitmap& label,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
@@ -82,14 +82,14 @@ protected:
|
||||
virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const;
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxToggleBitmapButton)
|
||||
DECLARE_DYNAMIC_CLASS(wxBitmapToggleButton)
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxToggleButton
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
class WXDLLIMPEXP_CORE wxToggleButton: public wxControl
|
||||
class WXDLLIMPEXP_CORE wxToggleButton: public wxToggleButtonBase
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
|
@@ -24,6 +24,53 @@ BEGIN_DECLARE_EVENT_TYPES()
|
||||
DECLARE_EVENT_TYPE(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, 19)
|
||||
END_DECLARE_EVENT_TYPES()
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxToggleButtonBase
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class WXDLLEXPORT wxToggleButtonBase : public wxControl
|
||||
{
|
||||
public:
|
||||
wxToggleButtonBase() { }
|
||||
|
||||
// Get/set the value
|
||||
virtual void SetValue(bool state) = 0;
|
||||
virtual bool GetValue() const = 0;
|
||||
|
||||
void UpdateWindowUI(long flags)
|
||||
{
|
||||
wxControl::UpdateWindowUI(flags);
|
||||
|
||||
if ( !IsShown() )
|
||||
return;
|
||||
|
||||
wxWindow *tlw = wxGetTopLevelParent( this );
|
||||
if (tlw && wxPendingDelete.Member( tlw ))
|
||||
return;
|
||||
|
||||
wxUpdateUIEvent event( GetId() );
|
||||
event.SetEventObject(this);
|
||||
|
||||
if (GetEventHandler()->ProcessEvent(event) )
|
||||
{
|
||||
if ( event.GetSetChecked() )
|
||||
SetValue( event.GetChecked() );
|
||||
}
|
||||
}
|
||||
|
||||
// Buttons on MSW can look bad if they are not native colours, because
|
||||
// then they become owner-drawn and not theme-drawn. Disable it here
|
||||
// in wxToggleButtonBase to make it consistent.
|
||||
virtual bool ShouldInheritColours() const { return false; }
|
||||
|
||||
protected:
|
||||
// choose the default border for this window
|
||||
virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
|
||||
|
||||
DECLARE_NO_COPY_CLASS(wxToggleButtonBase)
|
||||
};
|
||||
|
||||
|
||||
#define EVT_TOGGLEBUTTON(id, fn) \
|
||||
wx__DECLARE_EVT1(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, id, wxCommandEventHandler(fn))
|
||||
|
||||
|
Reference in New Issue
Block a user