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_
 |