a7fe78eda8
Tick marks were not available for wxSlider under GTK+ 2 or GTK+ 3 implementations of wxWidgets. However, tick marks have been available for the GtkScale widget since GTK+ 2 version 2.16. This change adds similar functionality in relation to tick marks as was already available in wxMSW builds. Closes https://github.com/wxWidgets/wxWidgets/pull/1355
98 lines
3.1 KiB
C++
98 lines
3.1 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/gtk/slider.h
|
|
// Purpose:
|
|
// Author: Robert Roebling
|
|
// Copyright: (c) 1998 Robert Roebling
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_GTK_SLIDER_H_
|
|
#define _WX_GTK_SLIDER_H_
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// wxSlider
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class WXDLLIMPEXP_CORE wxSlider : public wxSliderBase
|
|
{
|
|
public:
|
|
wxSlider();
|
|
wxSlider(wxWindow *parent,
|
|
wxWindowID id,
|
|
int value, int minValue, int maxValue,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxSL_HORIZONTAL,
|
|
const wxValidator& validator = wxDefaultValidator,
|
|
const wxString& name = wxSliderNameStr)
|
|
{
|
|
Create( parent, id, value, minValue, maxValue,
|
|
pos, size, style, validator, name );
|
|
}
|
|
~wxSlider();
|
|
|
|
bool Create(wxWindow *parent,
|
|
wxWindowID id,
|
|
int value, int minValue, int maxValue,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxSL_HORIZONTAL,
|
|
const wxValidator& validator = wxDefaultValidator,
|
|
const wxString& name = wxSliderNameStr);
|
|
|
|
// implement the base class pure virtuals
|
|
virtual int GetValue() const wxOVERRIDE;
|
|
virtual void SetValue(int value) wxOVERRIDE;
|
|
|
|
virtual void SetRange(int minValue, int maxValue) wxOVERRIDE;
|
|
virtual int GetMin() const wxOVERRIDE;
|
|
virtual int GetMax() const wxOVERRIDE;
|
|
|
|
virtual void SetLineSize(int lineSize) wxOVERRIDE;
|
|
virtual void SetPageSize(int pageSize) wxOVERRIDE;
|
|
virtual int GetLineSize() const wxOVERRIDE;
|
|
virtual int GetPageSize() const wxOVERRIDE;
|
|
|
|
virtual void SetThumbLength(int lenPixels) wxOVERRIDE;
|
|
virtual int GetThumbLength() const wxOVERRIDE;
|
|
|
|
virtual void ClearTicks() wxOVERRIDE;
|
|
virtual void SetTick(int tickPos) wxOVERRIDE;
|
|
int GetTickFreq() const wxOVERRIDE;
|
|
|
|
static wxVisualAttributes
|
|
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
|
|
|
|
// implementation
|
|
void GTKDisableEvents();
|
|
void GTKEnableEvents();
|
|
bool GTKEventsDisabled() const;
|
|
|
|
double m_pos;
|
|
int m_scrollEventType;
|
|
bool m_needThumbRelease;
|
|
GtkWidget *m_scale;
|
|
|
|
protected:
|
|
GtkWidget *m_minLabel,*m_maxLabel;
|
|
bool m_blockScrollEvent;
|
|
|
|
// Note the following member is not used in GTK+2 < 2.16.
|
|
int m_tickFreq;
|
|
|
|
virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const wxOVERRIDE;
|
|
|
|
// set the slider value unconditionally
|
|
void GTKSetValue(int value);
|
|
|
|
// Platform-specific implementation of SetTickFreq
|
|
virtual void DoSetTickFreq(int freq) wxOVERRIDE;
|
|
|
|
private:
|
|
void Init();
|
|
|
|
wxDECLARE_DYNAMIC_CLASS(wxSlider);
|
|
};
|
|
|
|
#endif // _WX_GTK_SLIDER_H_
|