d639e4ffce
Closes #17733.
128 lines
4.4 KiB
C++
128 lines
4.4 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/qt/spinctrl.h
|
|
// Author: Peter Most, Mariano Reingart
|
|
// Copyright: (c) 2010 wxWidgets dev team
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_QT_SPINCTRL_H_
|
|
#define _WX_QT_SPINCTRL_H_
|
|
|
|
#include <QtWidgets/QSpinBox>
|
|
#include <QtWidgets/QDoubleSpinBox>
|
|
|
|
// Take advantage of the Qt compile time polymorphy and use a template to avoid
|
|
// copy&paste code for the usage of QSpinBox/QDoubleSpinBox.
|
|
|
|
template < typename T, typename Widget >
|
|
class WXDLLIMPEXP_CORE wxSpinCtrlQt : public wxSpinCtrlBase
|
|
{
|
|
public:
|
|
wxSpinCtrlQt();
|
|
wxSpinCtrlQt( wxWindow *parent, wxWindowID id, const wxString& value,
|
|
const wxPoint& pos, const wxSize& size, long style,
|
|
T min, T max, T initial, T inc,
|
|
const wxString& name );
|
|
|
|
bool Create( wxWindow *parent, wxWindowID id, const wxString& value,
|
|
const wxPoint& pos, const wxSize& size, long style,
|
|
T min, T max, T initial, T inc,
|
|
const wxString& name );
|
|
|
|
virtual void SetValue(const wxString&) {}
|
|
|
|
virtual void SetSnapToTicks(bool snap_to_ticks);
|
|
virtual bool GetSnapToTicks() const;
|
|
|
|
virtual void SetSelection(long from, long to);
|
|
|
|
virtual void SetValue(T val);
|
|
void SetRange(T minVal, T maxVal);
|
|
void SetIncrement(T inc);
|
|
|
|
T GetValue() const;
|
|
T GetMin() const;
|
|
T GetMax() const;
|
|
T GetIncrement() const;
|
|
|
|
virtual Widget *GetHandle() const;
|
|
|
|
protected:
|
|
Widget *m_qtSpinBox;
|
|
|
|
};
|
|
|
|
class WXDLLIMPEXP_CORE wxSpinCtrl : public wxSpinCtrlQt< int, QSpinBox >
|
|
{
|
|
public:
|
|
wxSpinCtrl();
|
|
wxSpinCtrl(wxWindow *parent,
|
|
wxWindowID id = wxID_ANY,
|
|
const wxString& value = wxEmptyString,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxSP_ARROW_KEYS | wxALIGN_RIGHT,
|
|
int min = 0, int max = 100, int initial = 0,
|
|
const wxString& name = wxT("wxSpinCtrl"));
|
|
|
|
bool Create(wxWindow *parent,
|
|
wxWindowID id = wxID_ANY,
|
|
const wxString& value = wxEmptyString,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxSP_ARROW_KEYS | wxALIGN_RIGHT,
|
|
int min = 0, int max = 100, int initial = 0,
|
|
const wxString& name = wxT("wxSpinCtrl"));
|
|
virtual int GetBase() const wxOVERRIDE { return m_base; }
|
|
virtual bool SetBase(int base) wxOVERRIDE;
|
|
virtual void SetValue(const wxString & val);
|
|
virtual void SetValue(int val) { wxSpinCtrlQt<int,QSpinBox>::SetValue(val); }
|
|
|
|
private:
|
|
// Common part of all ctors.
|
|
void Init()
|
|
{
|
|
m_base = 10;
|
|
}
|
|
int m_base;
|
|
wxDECLARE_DYNAMIC_CLASS(wxSpinCtrl);
|
|
};
|
|
|
|
class WXDLLIMPEXP_CORE wxSpinCtrlDouble : public wxSpinCtrlQt< double, QDoubleSpinBox >
|
|
{
|
|
public:
|
|
wxSpinCtrlDouble();
|
|
wxSpinCtrlDouble(wxWindow *parent,
|
|
wxWindowID id = wxID_ANY,
|
|
const wxString& value = wxEmptyString,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxSP_ARROW_KEYS | wxALIGN_RIGHT,
|
|
double min = 0, double max = 100, double initial = 0,
|
|
double inc = 1,
|
|
const wxString& name = wxT("wxSpinCtrlDouble"));
|
|
|
|
bool Create(wxWindow *parent,
|
|
wxWindowID id = wxID_ANY,
|
|
const wxString& value = wxEmptyString,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxSP_ARROW_KEYS | wxALIGN_RIGHT,
|
|
double min = 0, double max = 100, double initial = 0,
|
|
double inc = 1,
|
|
const wxString& name = wxT("wxSpinCtrlDouble"));
|
|
|
|
void SetDigits(unsigned digits);
|
|
unsigned GetDigits() const;
|
|
|
|
virtual int GetBase() const wxOVERRIDE { return 10; }
|
|
virtual bool SetBase(int WXUNUSED(base)) wxOVERRIDE { return false; }
|
|
virtual void SetValue(const wxString & val);
|
|
virtual void SetValue(double val) { wxSpinCtrlQt<double,QDoubleSpinBox>::SetValue(val); }
|
|
|
|
private:
|
|
wxDECLARE_DYNAMIC_CLASS( wxSpinCtrlDouble );
|
|
};
|
|
|
|
#endif // _WX_QT_SPINCTRL_H_
|