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