Added wxToggleBitmapButton
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50481 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -15,7 +15,51 @@
|
|||||||
|
|
||||||
WXDLLEXPORT_DATA(extern const char) wxCheckBoxNameStr[];
|
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
|
class WXDLLEXPORT wxToggleButton : public wxControl
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@@ -36,12 +36,10 @@ DEFINE_EVENT_TYPE(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED)
|
|||||||
// ============================================================================
|
// ============================================================================
|
||||||
// implementation
|
// implementation
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxToggleButton
|
// wxToggleButton
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
// Single check box item
|
|
||||||
bool wxToggleButton::Create(wxWindow *parent, wxWindowID id,
|
bool wxToggleButton::Create(wxWindow *parent, wxWindowID id,
|
||||||
const wxString& label,
|
const wxString& label,
|
||||||
const wxPoint& pos,
|
const wxPoint& pos,
|
||||||
@@ -105,5 +103,72 @@ wxInt32 wxToggleButton::MacControlHit(WXEVENTHANDLERREF WXUNUSED(handler) , WXEV
|
|||||||
return noErr ;
|
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
|
#endif // wxUSE_TOGGLEBTN
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user