Really add wxGA_PROGRESS support to wxGauge in wxOSX
Finish the work started in 11a5b83e2c by moving
more wxAppProgressIndicator-related parts of wxMSW wxGauge implementation into
the base class and reusing them from the wxOSX version.
Also remove MSW-specific test for wxUSE_TASKBARBUTTON from the widgets sample
which prevented this style from being taken into account at all under Mac.
See #16638.
This commit is contained in:
parent
f5187859cc
commit
ddae98fc35
4 changed files with 24 additions and 19 deletions
|
|
@ -293,10 +293,8 @@ void GaugeWidgetsPage::CreateGauge()
|
|||
if ( m_chkSmooth->GetValue() )
|
||||
flags |= wxGA_SMOOTH;
|
||||
|
||||
#if wxUSE_TASKBARBUTTON
|
||||
if ( m_chkProgress->GetValue() )
|
||||
flags |= wxGA_PROGRESS;
|
||||
#endif
|
||||
|
||||
int val = 0;
|
||||
if ( m_gauge )
|
||||
|
|
|
|||
|
|
@ -155,6 +155,9 @@ bool wxGaugeBase::Create(wxWindow *parent,
|
|||
void wxGaugeBase::SetRange(int range)
|
||||
{
|
||||
m_rangeMax = range;
|
||||
|
||||
if ( m_appProgressIndicator )
|
||||
m_appProgressIndicator->SetRange(m_rangeMax);
|
||||
}
|
||||
|
||||
int wxGaugeBase::GetRange() const
|
||||
|
|
@ -165,6 +168,15 @@ int wxGaugeBase::GetRange() const
|
|||
void wxGaugeBase::SetValue(int pos)
|
||||
{
|
||||
m_gaugePos = pos;
|
||||
|
||||
if ( m_appProgressIndicator )
|
||||
{
|
||||
m_appProgressIndicator->SetValue(pos);
|
||||
if ( pos == 0 )
|
||||
{
|
||||
m_appProgressIndicator->Reset();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int wxGaugeBase::GetValue() const
|
||||
|
|
@ -203,6 +215,9 @@ void wxGaugeBase::Pulse()
|
|||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if ( m_appProgressIndicator )
|
||||
m_appProgressIndicator->Pulse();
|
||||
}
|
||||
|
||||
#endif // wxUSE_GAUGE
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ void wxGauge::SetRange(int r)
|
|||
if ( IsInIndeterminateMode() )
|
||||
SetDeterminateMode();
|
||||
|
||||
m_rangeMax = r;
|
||||
wxGaugeBase::SetRange(r);
|
||||
|
||||
#ifdef PBM_SETRANGE32
|
||||
::SendMessage(GetHwnd(), PBM_SETRANGE32, 0, r);
|
||||
|
|
@ -153,9 +153,6 @@ void wxGauge::SetRange(int r)
|
|||
// fall back to PBM_SETRANGE (limited to 16 bits)
|
||||
::SendMessage(GetHwnd(), PBM_SETRANGE, 0, MAKELPARAM(0, r));
|
||||
#endif // PBM_SETRANGE32/!PBM_SETRANGE32
|
||||
|
||||
if ( m_appProgressIndicator )
|
||||
m_appProgressIndicator->SetRange(m_rangeMax);
|
||||
}
|
||||
|
||||
void wxGauge::SetValue(int pos)
|
||||
|
|
@ -166,18 +163,9 @@ void wxGauge::SetValue(int pos)
|
|||
|
||||
if ( GetValue() != pos )
|
||||
{
|
||||
m_gaugePos = pos;
|
||||
wxGaugeBase::SetValue(pos);
|
||||
|
||||
::SendMessage(GetHwnd(), PBM_SETPOS, pos, 0);
|
||||
|
||||
if ( m_appProgressIndicator )
|
||||
{
|
||||
m_appProgressIndicator->SetValue(pos);
|
||||
if ( pos == 0 )
|
||||
{
|
||||
m_appProgressIndicator->Reset();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -235,15 +223,15 @@ void wxGauge::Pulse()
|
|||
SetIndeterminateMode();
|
||||
|
||||
SendMessage(GetHwnd(), PBM_STEPIT, 0, 0);
|
||||
|
||||
if ( m_appProgressIndicator )
|
||||
m_appProgressIndicator->Pulse();
|
||||
}
|
||||
else
|
||||
{
|
||||
// emulate indeterminate mode
|
||||
wxGaugeBase::Pulse();
|
||||
}
|
||||
|
||||
if ( m_appProgressIndicator )
|
||||
m_appProgressIndicator->Pulse();
|
||||
}
|
||||
|
||||
#endif // wxUSE_GAUGE
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
#include "wx/gauge.h"
|
||||
|
||||
#include "wx/appprogress.h"
|
||||
#include "wx/osx/private.h"
|
||||
|
||||
bool wxGauge::Create( wxWindow *parent,
|
||||
|
|
@ -66,6 +67,9 @@ int wxGauge::GetValue() const
|
|||
void wxGauge::Pulse()
|
||||
{
|
||||
GetPeer()->PulseGauge();
|
||||
|
||||
if ( m_appProgressIndicator )
|
||||
m_appProgressIndicator->Pulse();
|
||||
}
|
||||
|
||||
#endif // wxUSE_GAUGE
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue