7c7c717389
Under wxGTK, wxGauge was returning fixed values for height and width. This meant that the gauge would not center correctly in a sizer, particularly under GTK+ 3 where the default gauge height is just a few pixels. Following this change, wxGauge renders correctly on GTK+ 3 and matches the reference widget display in the gtk3-widget-factory app. Note, this change will also result in a slimmer widget on GTK+ 2, but the gauge height can be forced using wxGauge::SetMinSize() on the older toolkit. The gauge presentation is totally theme dependent under GTK+ 3. For example, the user can have thicker gauges by setting the following in their ~/.config/gtk-3.0/gtk.css file: progress, trough { min-height: 20px; } Closes https://github.com/wxWidgets/wxWidgets/pull/1353
76 lines
2.1 KiB
C++
76 lines
2.1 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/gtk/gauge.h
|
|
// Purpose:
|
|
// Author: Robert Roebling
|
|
// Copyright: (c) 1998 Robert Roebling
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_GTK_GAUGE_H_
|
|
#define _WX_GTK_GAUGE_H_
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// wxGauge
|
|
//-----------------------------------------------------------------------------
|
|
|
|
class WXDLLIMPEXP_CORE wxGauge: public wxGaugeBase
|
|
{
|
|
public:
|
|
wxGauge() { Init(); }
|
|
|
|
wxGauge( wxWindow *parent,
|
|
wxWindowID id,
|
|
int range,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxGA_HORIZONTAL,
|
|
const wxValidator& validator = wxDefaultValidator,
|
|
const wxString& name = wxGaugeNameStr )
|
|
{
|
|
Init();
|
|
|
|
Create(parent, id, range, pos, size, style, validator, name);
|
|
}
|
|
|
|
bool Create( wxWindow *parent,
|
|
wxWindowID id, int range,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxGA_HORIZONTAL,
|
|
const wxValidator& validator = wxDefaultValidator,
|
|
const wxString& name = wxGaugeNameStr );
|
|
|
|
// implement base class virtual methods
|
|
void SetRange(int range) wxOVERRIDE;
|
|
int GetRange() const wxOVERRIDE;
|
|
|
|
void SetValue(int pos) wxOVERRIDE;
|
|
int GetValue() const wxOVERRIDE;
|
|
|
|
virtual void Pulse() wxOVERRIDE;
|
|
|
|
static wxVisualAttributes
|
|
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
|
|
|
|
virtual wxVisualAttributes GetDefaultAttributes() const wxOVERRIDE;
|
|
|
|
// implementation
|
|
// -------------
|
|
|
|
// the max and current gauge values
|
|
int m_rangeMax,
|
|
m_gaugePos;
|
|
|
|
protected:
|
|
// set the gauge value to the value of m_gaugePos
|
|
void DoSetGauge();
|
|
|
|
private:
|
|
void Init() { m_rangeMax = m_gaugePos = 0; }
|
|
|
|
wxDECLARE_DYNAMIC_CLASS(wxGauge);
|
|
};
|
|
|
|
#endif
|
|
// _WX_GTK_GAUGE_H_
|