]> git.saurik.com Git - wxWidgets.git/blame - src/osx/anybutton_osx.cpp
Fix for #15224: wxRichTextTable: Setting a cell's text colour affects subsequent...
[wxWidgets.git] / src / osx / anybutton_osx.cpp
CommitLineData
b4354db1
VZ
1/////////////////////////////////////////////////////////////////////////////
2// Name: src/osx/anybutton_osx.cpp
3// Purpose: wxAnyButton
4// Author: Stefan Csomor
5// Created: 1998-01-01 (extracted from button_osx.cpp)
b4354db1
VZ
6// Copyright: (c) Stefan Csomor
7// Licence: wxWindows licence
8/////////////////////////////////////////////////////////////////////////////
9
10#include "wx/wxprec.h"
11
12#include "wx/anybutton.h"
13
14#ifndef WX_PRECOMP
15 #include "wx/panel.h"
16 #include "wx/toplevel.h"
17 #include "wx/dcclient.h"
18 #include "wx/stattext.h"
19#endif
20
21#include "wx/stockitem.h"
22
23#include "wx/osx/private.h"
24
25BEGIN_EVENT_TABLE(wxAnyButton, wxControl)
26 EVT_ENTER_WINDOW(wxAnyButton::OnEnterWindow)
27 EVT_LEAVE_WINDOW(wxAnyButton::OnLeaveWindow)
28END_EVENT_TABLE()
29
30void wxAnyButton::SetLabel(const wxString& label)
31{
32 if ( HasFlag(wxBU_NOTEXT) )
33 {
34 // just store the label internally but don't really use it for the
35 // button
36 m_labelOrig =
37 m_label = label;
38 return;
39 }
40
41 wxAnyButtonBase::SetLabel(label);
42}
43
44wxBitmap wxAnyButton::DoGetBitmap(State which) const
45{
46 return m_bitmaps[which];
47}
48
49void wxAnyButton::DoSetBitmap(const wxBitmap& bitmap, State which)
50{
51 m_bitmaps[which] = bitmap;
52
53 if ( which == State_Normal )
54 GetPeer()->SetBitmap(bitmap);
55 else if ( which == State_Pressed )
56 {
57 wxButtonImpl* bi = dynamic_cast<wxButtonImpl*> (GetPeer());
58 if ( bi )
59 bi->SetPressedBitmap(bitmap);
60 }
61 InvalidateBestSize();
62}
63
64void wxAnyButton::DoSetBitmapPosition(wxDirection dir)
65{
66 GetPeer()->SetBitmapPosition(dir);
67 InvalidateBestSize();
68}
69
70#if wxUSE_MARKUP && wxOSX_USE_COCOA
71
72bool wxAnyButton::DoSetLabelMarkup(const wxString& markup)
73{
74 if ( !wxAnyButtonBase::DoSetLabelMarkup(markup) )
75 return false;
76
77 GetPeer()->SetLabelMarkup(markup);
78
79 return true;
80}
81
82#endif // wxUSE_MARKUP && wxOSX_USE_COCOA
83
84void wxAnyButton::OnEnterWindow( wxMouseEvent& WXUNUSED(event))
85{
86 if ( DoGetBitmap( State_Current ).IsOk() )
87 GetPeer()->SetBitmap( DoGetBitmap( State_Current ) );
88}
89
90void wxAnyButton::OnLeaveWindow( wxMouseEvent& WXUNUSED(event))
91{
92 if ( DoGetBitmap( State_Current ).IsOk() )
93 GetPeer()->SetBitmap( DoGetBitmap( State_Normal ) );
94}