git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29738
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
void UpdateClock();
// event handlers
void UpdateClock();
// event handlers
void OnTimer(wxTimerEvent& WXUNUSED(event)) { UpdateClock(); }
void OnTimer(wxTimerEvent& WXUNUSED(event)) { UpdateClock(); }
void OnSize(wxSizeEvent& event);
void OnToggleClock(wxCommandEvent& event);
void OnButton(wxCommandEvent& event);
void OnSize(wxSizeEvent& event);
void OnToggleClock(wxCommandEvent& event);
void OnButton(wxCommandEvent& event);
#ifdef USE_STATIC_BITMAP
wxStaticBitmap *m_statbmp;
#else
#ifdef USE_STATIC_BITMAP
wxStaticBitmap *m_statbmp;
#else
BEGIN_EVENT_TABLE(MyStatusBar, wxStatusBar)
EVT_SIZE(MyStatusBar::OnSize)
BEGIN_EVENT_TABLE(MyStatusBar, wxStatusBar)
EVT_SIZE(MyStatusBar::OnSize)
EVT_CHECKBOX(StatusBar_Checkbox, MyStatusBar::OnToggleClock)
EVT_CHECKBOX(StatusBar_Checkbox, MyStatusBar::OnToggleClock)
EVT_BUTTON(wxID_ANY, MyStatusBar::OnButton)
EVT_BUTTON(wxID_ANY, MyStatusBar::OnButton)
EVT_TIMER(wxID_ANY, MyStatusBar::OnTimer)
EVT_TIMER(wxID_ANY, MyStatusBar::OnTimer)
END_EVENT_TABLE()
// Create a new application object: this macro will allow wxWidgets to create
END_EVENT_TABLE()
// Create a new application object: this macro will allow wxWidgets to create
#endif
MyStatusBar::MyStatusBar(wxWindow *parent)
#endif
MyStatusBar::MyStatusBar(wxWindow *parent)
- : wxStatusBar(parent, wxID_ANY), m_timer(this), m_checkbox(NULL)
+ : wxStatusBar(parent, wxID_ANY)
+#if wxUSE_TIMER
+ , m_timer(this)
+#endif
+#if wxUSE_CHECKBOX
+ , m_checkbox(NULL)
+#endif
{
static const int widths[Field_Max] = { -1, 150, BITMAP_SIZE_X, 100 };
SetFieldsCount(Field_Max);
SetStatusWidths(Field_Max, widths);
{
static const int widths[Field_Max] = { -1, 150, BITMAP_SIZE_X, 100 };
SetFieldsCount(Field_Max);
SetStatusWidths(Field_Max, widths);
m_checkbox = new wxCheckBox(this, StatusBar_Checkbox, _T("&Toggle clock"));
m_checkbox->SetValue(true);
m_checkbox = new wxCheckBox(this, StatusBar_Checkbox, _T("&Toggle clock"));
m_checkbox->SetValue(true);
#ifdef USE_STATIC_BITMAP
m_statbmp = new wxStaticBitmap(this, wxID_ANY, wxIcon(green_xpm));
#ifdef USE_STATIC_BITMAP
m_statbmp = new wxStaticBitmap(this, wxID_ANY, wxIcon(green_xpm));
SetMinHeight(BITMAP_SIZE_Y);
SetMinHeight(BITMAP_SIZE_Y);
MyStatusBar::~MyStatusBar()
{
MyStatusBar::~MyStatusBar()
{
if ( m_timer.IsRunning() )
{
m_timer.Stop();
}
if ( m_timer.IsRunning() )
{
m_timer.Stop();
}
}
wxBitmap MyStatusBar::CreateBitmapForButton(bool on)
}
wxBitmap MyStatusBar::CreateBitmapForButton(bool on)
void MyStatusBar::OnSize(wxSizeEvent& event)
{
void MyStatusBar::OnSize(wxSizeEvent& event)
{
if ( !m_checkbox )
return;
if ( !m_checkbox )
return;
wxRect rect;
GetFieldRect(Field_Checkbox, rect);
wxRect rect;
GetFieldRect(Field_Checkbox, rect);
m_checkbox->SetSize(rect.x + 2, rect.y + 2, rect.width - 4, rect.height - 4);
m_checkbox->SetSize(rect.x + 2, rect.y + 2, rect.width - 4, rect.height - 4);
GetFieldRect(Field_Bitmap, rect);
wxSize size = m_statbmp->GetSize();
GetFieldRect(Field_Bitmap, rect);
wxSize size = m_statbmp->GetSize();
void MyStatusBar::OnButton(wxCommandEvent& WXUNUSED(event))
{
void MyStatusBar::OnButton(wxCommandEvent& WXUNUSED(event))
{
m_checkbox->SetValue(!m_checkbox->GetValue());
m_checkbox->SetValue(!m_checkbox->GetValue());
void MyStatusBar::DoToggle()
{
void MyStatusBar::DoToggle()
{
if ( m_checkbox->GetValue() )
{
if ( m_checkbox->GetValue() )
{
#ifdef USE_STATIC_BITMAP
m_statbmp->SetIcon(wxIcon(green_xpm));
#ifdef USE_STATIC_BITMAP
m_statbmp->SetIcon(wxIcon(green_xpm));
}
else // don't show clock
{
}
else // don't show clock
{
#ifdef USE_STATIC_BITMAP
m_statbmp->SetIcon(wxIcon(red_xpm));
#ifdef USE_STATIC_BITMAP
m_statbmp->SetIcon(wxIcon(red_xpm));
SetStatusText(wxEmptyString, Field_Clock);
}
SetStatusText(wxEmptyString, Field_Clock);
}
}
void MyStatusBar::UpdateClock()
}
void MyStatusBar::UpdateClock()