initial commit
Signed-off-by: Peter Siegmund <mars3142@noreply.mars3142.dev>
This commit is contained in:
156
libs/wxWidgets-3.3.1/samples/widgets/activityindicator.cpp
Normal file
156
libs/wxWidgets-3.3.1/samples/widgets/activityindicator.cpp
Normal file
@@ -0,0 +1,156 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Program: wxWidgets Widgets Sample
|
||||
// Name: activityindicator.cpp
|
||||
// Purpose: Part of the widgets sample showing wxActivityIndicator
|
||||
// Author: Vadim Zeitlin
|
||||
// Created: 2015-03-06
|
||||
// Copyright: (c) 2015 wxWindows team
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// ============================================================================
|
||||
// declarations
|
||||
// ============================================================================
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// headers
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// for compilers that support precompilation, includes "wx/wx.h".
|
||||
#include "wx/wxprec.h"
|
||||
|
||||
|
||||
#if wxUSE_ACTIVITYINDICATOR
|
||||
|
||||
// for all others, include the necessary headers
|
||||
#ifndef WX_PRECOMP
|
||||
#include "wx/button.h"
|
||||
#include "wx/sizer.h"
|
||||
#include "wx/statbox.h"
|
||||
#include "wx/stattext.h"
|
||||
#endif
|
||||
|
||||
#include "wx/activityindicator.h"
|
||||
|
||||
#include "widgets.h"
|
||||
|
||||
#include "icons/activityindicator.xpm"
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// constants
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// Control IDs
|
||||
enum
|
||||
{
|
||||
ActivityIndicator_Start = wxID_HIGHEST,
|
||||
ActivityIndicator_Stop,
|
||||
ActivityIndicator_IsRunning
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// ActivityIndicatorWidgetsPage
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class ActivityIndicatorWidgetsPage : public WidgetsPage
|
||||
{
|
||||
public:
|
||||
ActivityIndicatorWidgetsPage(WidgetsBookCtrl *book, wxVector<wxBitmapBundle>& imaglist)
|
||||
: WidgetsPage(book, imaglist, activityindicator_xpm)
|
||||
{
|
||||
m_indicator = nullptr;
|
||||
m_sizerIndicator = nullptr;
|
||||
}
|
||||
|
||||
virtual wxWindow *GetWidget() const override { return m_indicator; }
|
||||
virtual void RecreateWidget() override;
|
||||
|
||||
// lazy creation of the content
|
||||
virtual void CreateContent() override;
|
||||
|
||||
protected:
|
||||
void OnButtonStart(wxCommandEvent&) { m_indicator->Start(); }
|
||||
void OnButtonStop(wxCommandEvent&) { m_indicator->Stop(); }
|
||||
|
||||
void OnUpdateIsRunning(wxUpdateUIEvent& event)
|
||||
{
|
||||
event.SetText(m_indicator && m_indicator->IsRunning()
|
||||
? "Indicator is running"
|
||||
: "Indicator is stopped");
|
||||
}
|
||||
|
||||
// the indicator itself and the sizer it is in
|
||||
wxActivityIndicator *m_indicator;
|
||||
wxStaticBoxSizer *m_sizerIndicator;
|
||||
|
||||
private:
|
||||
wxDECLARE_EVENT_TABLE();
|
||||
DECLARE_WIDGETS_PAGE(ActivityIndicatorWidgetsPage)
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// event tables
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
wxBEGIN_EVENT_TABLE(ActivityIndicatorWidgetsPage, WidgetsPage)
|
||||
EVT_BUTTON(ActivityIndicator_Start,
|
||||
ActivityIndicatorWidgetsPage::OnButtonStart)
|
||||
EVT_BUTTON(ActivityIndicator_Stop,
|
||||
ActivityIndicatorWidgetsPage::OnButtonStop)
|
||||
|
||||
EVT_UPDATE_UI(ActivityIndicator_IsRunning,
|
||||
ActivityIndicatorWidgetsPage::OnUpdateIsRunning)
|
||||
wxEND_EVENT_TABLE()
|
||||
|
||||
// ============================================================================
|
||||
// implementation
|
||||
// ============================================================================
|
||||
|
||||
IMPLEMENT_WIDGETS_PAGE(ActivityIndicatorWidgetsPage,
|
||||
"ActivityIndicator", NATIVE_CTRLS);
|
||||
|
||||
void ActivityIndicatorWidgetsPage::CreateContent()
|
||||
{
|
||||
wxStaticBoxSizer* const sizerOper = new wxStaticBoxSizer(wxVERTICAL, this,
|
||||
"&Operations");
|
||||
wxStaticBox* const sizerOperBox = sizerOper->GetStaticBox();
|
||||
|
||||
sizerOper->Add(new wxButton(sizerOperBox, ActivityIndicator_Start, "&Start"),
|
||||
wxSizerFlags().Expand().Border());
|
||||
sizerOper->Add(new wxButton(sizerOperBox, ActivityIndicator_Stop, "&Stop"),
|
||||
wxSizerFlags().Expand().Border());
|
||||
|
||||
sizerOper->Add(new wxStaticText(sizerOperBox, ActivityIndicator_IsRunning,
|
||||
"Indicator is initializing..."),
|
||||
wxSizerFlags().Expand().Border());
|
||||
|
||||
|
||||
m_sizerIndicator = new wxStaticBoxSizer(wxHORIZONTAL, this,
|
||||
"Activity Indicator");
|
||||
RecreateWidget();
|
||||
|
||||
|
||||
wxSizer* const sizerTop = new wxBoxSizer(wxHORIZONTAL);
|
||||
sizerTop->Add(sizerOper, wxSizerFlags().Expand().DoubleBorder());
|
||||
sizerTop->Add(m_sizerIndicator, wxSizerFlags(1).Expand().DoubleBorder());
|
||||
|
||||
SetSizer(sizerTop);
|
||||
}
|
||||
|
||||
void ActivityIndicatorWidgetsPage::RecreateWidget()
|
||||
{
|
||||
m_sizerIndicator->Clear(true /* delete windows */);
|
||||
|
||||
m_indicator = new wxActivityIndicator(m_sizerIndicator->GetStaticBox(), wxID_ANY,
|
||||
wxDefaultPosition, wxDefaultSize,
|
||||
GetAttrs().m_defaultFlags);
|
||||
|
||||
NotifyWidgetRecreation(m_indicator);
|
||||
|
||||
m_sizerIndicator->AddStretchSpacer();
|
||||
m_sizerIndicator->Add(m_indicator, wxSizerFlags().Centre());
|
||||
m_sizerIndicator->AddStretchSpacer();
|
||||
m_sizerIndicator->Layout();
|
||||
}
|
||||
|
||||
#endif // wxUSE_ACTIVITYINDICATOR
|
||||
Reference in New Issue
Block a user