]> git.saurik.com Git - wxWidgets.git/blob - src/osx/cocoa/bmpbuttn.mm
using common notification mechanism for selection changes (key or mouse), see #10406
[wxWidgets.git] / src / osx / cocoa / bmpbuttn.mm
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: src/osx/carbon/bmpbuttn.cpp
3 // Purpose: wxBitmapButton
4 // Author: Stefan Csomor
5 // Modified by:
6 // Created: 1998-01-01
7 // RCS-ID: $Id: bmpbuttn.cpp 54820 2008-07-29 20:04:11Z SC $
8 // Copyright: (c) Stefan Csomor
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #include "wx/wxprec.h"
13
14 #if wxUSE_BMPBUTTON
15
16 #include "wx/bmpbuttn.h"
17 #include "wx/image.h"
18
19 #ifndef WX_PRECOMP
20 #include "wx/dcmemory.h"
21 #endif
22
23 #include "wx/osx/private.h"
24
25 wxWidgetImplType* wxWidgetImpl::CreateBitmapButton( wxWindowMac* wxpeer,
26 wxWindowMac* WXUNUSED(parent),
27 wxWindowID WXUNUSED(id),
28 const wxBitmap& bitmap,
29 const wxPoint& pos,
30 const wxSize& size,
31 long style,
32 long WXUNUSED(extraStyle))
33 {
34 NSRect r = wxOSXGetFrameForControl( wxpeer, pos , size ) ;
35 wxNSButton* v = [[wxNSButton alloc] initWithFrame:r];
36
37 // trying to get as close as possible to flags
38 if ( style & wxBORDER_NONE )
39 {
40 [v setBezelStyle:NSShadowlessSquareBezelStyle];
41 [v setBordered:NO];
42 }
43 else
44 {
45 // see trac #11128 for a thorough discussion
46 if ( (style & wxBORDER_MASK) == wxBORDER_RAISED )
47 [v setBezelStyle:NSRegularSquareBezelStyle];
48 else if ( (style & wxBORDER_MASK) == wxBORDER_SUNKEN )
49 [v setBezelStyle:NSSmallSquareBezelStyle];
50 else
51 [v setBezelStyle:NSShadowlessSquareBezelStyle];
52 }
53
54 if (bitmap.Ok())
55 [v setImage:bitmap.GetNSImage() ];
56
57 [v setButtonType:NSMomentaryPushInButton];
58 wxWidgetCocoaImpl* c = new wxWidgetCocoaImpl( wxpeer, v );
59 return c;
60 }
61
62 #endif