Simplify the status bar sample by removing wxBitmapButton.
The sample code was complicated by having USE_STATIC_BITMAP and using wxStaticBitmap or wxBitmapButton depending on it. Neither important for a wxStatusBar sample so just use wxStaticBitmap always and make the code simpler and more readable. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61990 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -54,15 +54,7 @@
|
|||||||
#include "../sample.xpm"
|
#include "../sample.xpm"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// define this for the platforms which don't support wxBitmapButton (such as
|
|
||||||
// Motif), else a wxBitmapButton will be used
|
|
||||||
#ifdef __WXMOTIF__
|
|
||||||
#define USE_STATIC_BITMAP
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//#define USE_MDI_PARENT_FRAME 1
|
//#define USE_MDI_PARENT_FRAME 1
|
||||||
|
|
||||||
#ifdef USE_MDI_PARENT_FRAME
|
#ifdef USE_MDI_PARENT_FRAME
|
||||||
#include "wx/mdi.h"
|
#include "wx/mdi.h"
|
||||||
#endif // USE_MDI_PARENT_FRAME
|
#endif // USE_MDI_PARENT_FRAME
|
||||||
@@ -73,10 +65,8 @@ static const char *SAMPLE_DIALOGS_TITLE = "wxWidgets statbar sample";
|
|||||||
// resources
|
// resources
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
#ifdef USE_STATIC_BITMAP
|
#include "green.xpm"
|
||||||
#include "green.xpm"
|
#include "red.xpm"
|
||||||
#include "red.xpm"
|
|
||||||
#endif // USE_STATIC_BITMAP
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// private classes
|
// private classes
|
||||||
@@ -110,14 +100,11 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
void OnSize(wxSizeEvent& event);
|
void OnSize(wxSizeEvent& event);
|
||||||
void OnToggleClock(wxCommandEvent& event);
|
void OnToggleClock(wxCommandEvent& event);
|
||||||
void OnButton(wxCommandEvent& event);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// toggle the state of the status bar controls
|
// toggle the state of the status bar controls
|
||||||
void DoToggle();
|
void DoToggle();
|
||||||
|
|
||||||
wxBitmap CreateBitmapForButton(bool on = false);
|
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
Field_Text,
|
Field_Text,
|
||||||
@@ -134,11 +121,7 @@ private:
|
|||||||
#if wxUSE_CHECKBOX
|
#if wxUSE_CHECKBOX
|
||||||
wxCheckBox *m_checkbox;
|
wxCheckBox *m_checkbox;
|
||||||
#endif
|
#endif
|
||||||
#ifdef USE_STATIC_BITMAP
|
|
||||||
wxStaticBitmap *m_statbmp;
|
wxStaticBitmap *m_statbmp;
|
||||||
#else
|
|
||||||
wxBitmapButton *m_statbmp;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
};
|
};
|
||||||
@@ -292,7 +275,6 @@ BEGIN_EVENT_TABLE(MyStatusBar, wxStatusBar)
|
|||||||
#if wxUSE_CHECKBOX
|
#if wxUSE_CHECKBOX
|
||||||
EVT_CHECKBOX(StatusBar_Checkbox, MyStatusBar::OnToggleClock)
|
EVT_CHECKBOX(StatusBar_Checkbox, MyStatusBar::OnToggleClock)
|
||||||
#endif
|
#endif
|
||||||
EVT_BUTTON(wxID_ANY, MyStatusBar::OnButton)
|
|
||||||
#if wxUSE_TIMER
|
#if wxUSE_TIMER
|
||||||
EVT_TIMER(wxID_ANY, MyStatusBar::OnTimer)
|
EVT_TIMER(wxID_ANY, MyStatusBar::OnTimer)
|
||||||
#endif
|
#endif
|
||||||
@@ -914,13 +896,7 @@ MyStatusBar::MyStatusBar(wxWindow *parent, long style)
|
|||||||
m_checkbox->SetValue(true);
|
m_checkbox->SetValue(true);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_STATIC_BITMAP
|
|
||||||
m_statbmp = new wxStaticBitmap(this, wxID_ANY, wxIcon(green_xpm));
|
m_statbmp = new wxStaticBitmap(this, wxID_ANY, wxIcon(green_xpm));
|
||||||
#else
|
|
||||||
m_statbmp = new wxBitmapButton(this, wxID_ANY, CreateBitmapForButton(),
|
|
||||||
wxDefaultPosition, wxDefaultSize,
|
|
||||||
wxBU_EXACTFIT);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if wxUSE_TIMER
|
#if wxUSE_TIMER
|
||||||
m_timer.Start(1000);
|
m_timer.Start(1000);
|
||||||
@@ -946,23 +922,6 @@ MyStatusBar::~MyStatusBar()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#define BMP_BUTTON_SIZE_X 10
|
|
||||||
#define BMP_BUTTON_SIZE_Y 10
|
|
||||||
|
|
||||||
wxBitmap MyStatusBar::CreateBitmapForButton(bool on)
|
|
||||||
{
|
|
||||||
wxBitmap bitmap(BMP_BUTTON_SIZE_X+1, BMP_BUTTON_SIZE_Y+1);
|
|
||||||
wxMemoryDC dc;
|
|
||||||
dc.SelectObject(bitmap);
|
|
||||||
dc.SetBrush(on ? *wxGREEN_BRUSH : *wxRED_BRUSH);
|
|
||||||
dc.SetBackgroundMode(wxBRUSHSTYLE_TRANSPARENT);
|
|
||||||
dc.Clear();
|
|
||||||
dc.DrawEllipse(0, 0, BMP_BUTTON_SIZE_X, BMP_BUTTON_SIZE_Y);
|
|
||||||
dc.SelectObject(wxNullBitmap);
|
|
||||||
|
|
||||||
return bitmap;
|
|
||||||
}
|
|
||||||
|
|
||||||
void MyStatusBar::OnSize(wxSizeEvent& event)
|
void MyStatusBar::OnSize(wxSizeEvent& event)
|
||||||
{
|
{
|
||||||
#if wxUSE_CHECKBOX
|
#if wxUSE_CHECKBOX
|
||||||
@@ -997,15 +956,6 @@ void MyStatusBar::OnSize(wxSizeEvent& event)
|
|||||||
event.Skip();
|
event.Skip();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MyStatusBar::OnButton(wxCommandEvent& WXUNUSED(event))
|
|
||||||
{
|
|
||||||
#if wxUSE_CHECKBOX
|
|
||||||
m_checkbox->SetValue(!m_checkbox->GetValue());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
DoToggle();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MyStatusBar::OnToggleClock(wxCommandEvent& WXUNUSED(event))
|
void MyStatusBar::OnToggleClock(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
DoToggle();
|
DoToggle();
|
||||||
@@ -1020,12 +970,7 @@ void MyStatusBar::DoToggle()
|
|||||||
m_timer.Start(1000);
|
m_timer.Start(1000);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_STATIC_BITMAP
|
|
||||||
m_statbmp->SetIcon(wxIcon(green_xpm));
|
m_statbmp->SetIcon(wxIcon(green_xpm));
|
||||||
#else
|
|
||||||
m_statbmp->SetBitmapLabel(CreateBitmapForButton(false));
|
|
||||||
m_statbmp->Refresh();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
UpdateClock();
|
UpdateClock();
|
||||||
}
|
}
|
||||||
@@ -1035,16 +980,11 @@ void MyStatusBar::DoToggle()
|
|||||||
m_timer.Stop();
|
m_timer.Stop();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_STATIC_BITMAP
|
|
||||||
m_statbmp->SetIcon(wxIcon(red_xpm));
|
m_statbmp->SetIcon(wxIcon(red_xpm));
|
||||||
#else
|
|
||||||
m_statbmp->SetBitmapLabel(CreateBitmapForButton(true));
|
|
||||||
m_statbmp->Refresh();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SetStatusText(wxEmptyString, Field_Clock);
|
SetStatusText(wxEmptyString, Field_Clock);
|
||||||
}
|
}
|
||||||
#endif
|
#endif // wxUSE_CHECKBOX
|
||||||
}
|
}
|
||||||
|
|
||||||
void MyStatusBar::UpdateClock()
|
void MyStatusBar::UpdateClock()
|
||||||
|
Reference in New Issue
Block a user