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