No longer return fixed values from wxGauge::GetBestSize() in wxGTK
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
This commit is contained in:
@@ -65,8 +65,6 @@ protected:
|
|||||||
// set the gauge value to the value of m_gaugePos
|
// set the gauge value to the value of m_gaugePos
|
||||||
void DoSetGauge();
|
void DoSetGauge();
|
||||||
|
|
||||||
virtual wxSize DoGetBestSize() const wxOVERRIDE;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void Init() { m_rangeMax = m_gaugePos = 0; }
|
void Init() { m_rangeMax = m_gaugePos = 0; }
|
||||||
|
|
||||||
|
@@ -70,16 +70,6 @@ void wxGauge::DoSetGauge()
|
|||||||
m_rangeMax ? ((double)m_gaugePos)/m_rangeMax : 0.0);
|
m_rangeMax ? ((double)m_gaugePos)/m_rangeMax : 0.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
wxSize wxGauge::DoGetBestSize() const
|
|
||||||
{
|
|
||||||
wxSize best;
|
|
||||||
if (HasFlag(wxGA_VERTICAL))
|
|
||||||
best = wxSize(28, 100);
|
|
||||||
else
|
|
||||||
best = wxSize(100, 28);
|
|
||||||
return best;
|
|
||||||
}
|
|
||||||
|
|
||||||
void wxGauge::SetRange( int range )
|
void wxGauge::SetRange( int range )
|
||||||
{
|
{
|
||||||
m_rangeMax = range;
|
m_rangeMax = range;
|
||||||
|
Reference in New Issue
Block a user