1///////////////////////////////////////////////////////////////////////////// 2// Name: src/osx/cocoa/tglbtn.mm 3// Purpose: Definition of the wxToggleButton class, which implements a 4// toggle button under wxMac. 5// Author: Stefan Csomor 6// Modified by: 7// Created: 08.02.01 8// Copyright: (c) Stefan Csomor 9// Licence: wxWindows licence 10///////////////////////////////////////////////////////////////////////////// 11 12// ============================================================================ 13// declatations 14// ============================================================================ 15 16// ---------------------------------------------------------------------------- 17// headers 18// ---------------------------------------------------------------------------- 19 20#include "wx/wxprec.h" 21 22#if wxUSE_TOGGLEBTN 23 24#include "wx/tglbtn.h" 25#include "wx/osx/private.h" 26 27// from button.mm 28 29extern "C" void SetBezelStyleFromBorderFlags(NSButton *v, 30 long style, 31 wxWindowID winid = wxID_ANY, 32 const wxString& label = wxString(), 33 const wxBitmap& bitmap = wxBitmap()); 34 35wxWidgetImplType* wxWidgetImpl::CreateToggleButton( wxWindowMac* wxpeer, 36 wxWindowMac* WXUNUSED(parent), 37 wxWindowID winid, 38 const wxString& label, 39 const wxPoint& pos, 40 const wxSize& size, 41 long style, 42 long WXUNUSED(extraStyle)) 43{ 44 NSRect r = wxOSXGetFrameForControl( wxpeer, pos , size ) ; 45 wxNSButton* v = [[wxNSButton alloc] initWithFrame:r]; 46 47 SetBezelStyleFromBorderFlags(v, style, winid, label); 48 49 [v setButtonType:NSOnOffButton]; 50 wxWidgetCocoaImpl* c = new wxButtonCocoaImpl( wxpeer, v ); 51 return c; 52} 53 54wxWidgetImplType* wxWidgetImpl::CreateBitmapToggleButton( wxWindowMac* wxpeer, 55 wxWindowMac* WXUNUSED(parent), 56 wxWindowID winid, 57 const wxBitmap& label, 58 const wxPoint& pos, 59 const wxSize& size, 60 long style, 61 long WXUNUSED(extraStyle)) 62{ 63 NSRect r = wxOSXGetFrameForControl( wxpeer, pos , size ) ; 64 wxNSButton* v = [[wxNSButton alloc] initWithFrame:r]; 65 66 SetBezelStyleFromBorderFlags(v, style, winid, wxString(), label); 67 68 if (label.IsOk()) 69 [v setImage:label.GetNSImage() ]; 70 71 [v setButtonType:NSOnOffButton]; 72 wxWidgetCocoaImpl* c = new wxButtonCocoaImpl( wxpeer, v ); 73 return c; 74} 75 76#endif // wxUSE_TOGGLEBTN 77 78