Added wxToggleBitmapButton
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50481 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
9d5507f7a2
commit
f8b13b5868
@ -15,7 +15,51 @@
|
||||
|
||||
WXDLLEXPORT_DATA(extern const char) wxCheckBoxNameStr[];
|
||||
|
||||
// Checkbox item (single checkbox)
|
||||
|
||||
class WXDLLEXPORT wxToggleBitmapButton : public wxControl
|
||||
{
|
||||
public:
|
||||
wxToggleBitmapButton() {}
|
||||
wxToggleBitmapButton(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxBitmap& label,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = 0,
|
||||
const wxValidator& validator = wxDefaultValidator,
|
||||
const wxString& name = wxCheckBoxNameStr)
|
||||
{
|
||||
Create(parent, id, label, pos, size, style, validator, name);
|
||||
}
|
||||
|
||||
bool Create(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxBitmap& label,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = 0,
|
||||
const wxValidator& validator = wxDefaultValidator,
|
||||
const wxString& name = wxCheckBoxNameStr);
|
||||
|
||||
virtual void SetValue(bool value);
|
||||
virtual bool GetValue() const ;
|
||||
|
||||
virtual wxInt32 MacControlHit( WXEVENTHANDLERREF handler , WXEVENTREF event ) ;
|
||||
|
||||
virtual void Command(wxCommandEvent& event);
|
||||
|
||||
private:
|
||||
wxBitmap m_bitmap;
|
||||
|
||||
protected:
|
||||
virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
|
||||
virtual wxSize DoGetBestSize() const;
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxToggleBitmapButton)
|
||||
};
|
||||
|
||||
|
||||
class WXDLLEXPORT wxToggleButton : public wxControl
|
||||
{
|
||||
public:
|
||||
|
@ -36,12 +36,10 @@ DEFINE_EVENT_TYPE(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED)
|
||||
// ============================================================================
|
||||
// implementation
|
||||
// ============================================================================
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxToggleButton
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// Single check box item
|
||||
bool wxToggleButton::Create(wxWindow *parent, wxWindowID id,
|
||||
const wxString& label,
|
||||
const wxPoint& pos,
|
||||
@ -105,5 +103,72 @@ wxInt32 wxToggleButton::MacControlHit(WXEVENTHANDLERREF WXUNUSED(handler) , WXEV
|
||||
return noErr ;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxToggleBitmapButton
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxToggleBitmapButton, wxControl)
|
||||
|
||||
bool wxToggleBitmapButton::Create(wxWindow *parent, wxWindowID id,
|
||||
const wxBitmap& label,
|
||||
const wxPoint& pos,
|
||||
const wxSize& size, long style,
|
||||
const wxValidator& validator,
|
||||
const wxString& name)
|
||||
{
|
||||
m_macIsUserPane = FALSE ;
|
||||
|
||||
m_bitmap = label;
|
||||
|
||||
if ( !wxControl::Create(parent, id, pos, size, style, validator, name) )
|
||||
return false;
|
||||
|
||||
Rect bounds = wxMacGetBoundsForControl( this , pos , size ) ;
|
||||
|
||||
m_peer = new wxMacControl(this) ;
|
||||
|
||||
ControlButtonContentInfo info;
|
||||
wxMacCreateBitmapButton( &info, m_bitmap );
|
||||
verify_noerr ( CreateBevelButtonControl( MAC_WXHWND(parent->MacGetTopLevelWindowRef()) , &bounds , CFSTR("") ,
|
||||
kControlBevelButtonNormalBevel , kControlBehaviorOffsetContents | kControlBehaviorToggles , &info , 0 , 0 , 0 , m_peer->GetControlRefAddr() ) );
|
||||
|
||||
MacPostControlCreate(pos,size) ;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
wxSize wxToggleBitmapButton::DoGetBestSize() const
|
||||
{
|
||||
if (!m_bitmap.IsOk())
|
||||
return wxSize(20,20);
|
||||
|
||||
return wxSize ( m_bitmap.GetWidth()+6, m_bitmap.GetHeight()+6 ) ;
|
||||
}
|
||||
|
||||
void wxToggleBitmapButton::SetValue(bool val)
|
||||
{
|
||||
m_peer->SetValue( val ) ;
|
||||
}
|
||||
|
||||
bool wxToggleBitmapButton::GetValue() const
|
||||
{
|
||||
return m_peer->GetValue() ;
|
||||
}
|
||||
|
||||
void wxToggleBitmapButton::Command(wxCommandEvent & event)
|
||||
{
|
||||
SetValue((event.GetInt() != 0));
|
||||
ProcessCommand(event);
|
||||
}
|
||||
|
||||
wxInt32 wxToggleBitmapButton::MacControlHit(WXEVENTHANDLERREF WXUNUSED(handler) , WXEVENTREF WXUNUSED(event) )
|
||||
{
|
||||
wxCommandEvent event(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, m_windowId);
|
||||
event.SetInt(GetValue());
|
||||
event.SetEventObject(this);
|
||||
ProcessCommand(event);
|
||||
return noErr ;
|
||||
}
|
||||
|
||||
#endif // wxUSE_TOGGLEBTN
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user