// the checkboxes for styles
wxCheckBox *m_chkVert,
- *m_chkSmooth;
+ *m_chkSmooth,
+ *m_chkIndeterminate;
// the gauge itself and the sizer it is in
wxGauge *m_gauge;
m_timer = (wxTimer *)NULL;
m_chkVert =
- m_chkSmooth = (wxCheckBox *)NULL;
+ m_chkSmooth =
+ m_chkIndeterminate = (wxCheckBox *)NULL;
m_gauge = (wxGauge *)NULL;
m_sizerGauge = (wxSizer *)NULL;
m_chkVert = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Vertical"));
m_chkSmooth = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Smooth"));
+ m_chkIndeterminate = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Indeterminate"));
sizerLeft->Add(5, 5, 0, wxGROW | wxALL, 5); // spacer
{
m_chkVert->SetValue(false);
m_chkSmooth->SetValue(false);
+ m_chkIndeterminate->SetValue(false);
}
void GaugeWidgetsPage::CreateGauge()
wxDefaultPosition, wxDefaultSize,
flags);
m_gauge->SetValue(val);
+
+ if ( m_chkIndeterminate->GetValue() ){
+ m_gauge->Pulse();
+ }
if ( flags & wxGA_VERTICAL )
m_sizerGauge->Add(m_gauge, 0, wxGROW | wxALL, 5);
m_range = val;
m_gauge->SetRange(val);
+ m_chkIndeterminate->SetValue(0);
}
void GaugeWidgetsPage::OnButtonSetValue(wxCommandEvent& WXUNUSED(event))
return;
m_gauge->SetValue(val);
+ m_chkIndeterminate->SetValue(0);
}
void GaugeWidgetsPage::OnUpdateUIValueButton(wxUpdateUIEvent& event)
// we are going via the base class in case there is
// some change behind the values by it
wxGaugeBase::SetRange( r ) ;
- if ( m_peer && m_peer->Ok() )
+ if ( m_peer && m_peer->Ok() ){
+ // switch back to determinate mode if not there already
+ if ( m_peer->GetData<Boolean>( kControlNoPart, kControlProgressBarIndeterminateTag ) != false )
+ {
+ m_peer->SetData<Boolean>( kControlNoPart, kControlProgressBarIndeterminateTag, (Boolean)false );
+ }
+
m_peer->SetMaximum( GetRange() ) ;
+ }
}
void wxGauge::SetValue(int pos)
if ( m_peer && m_peer->Ok() )
{
+ // switch back to determinate mode if not there already
+ if ( m_peer->GetData<Boolean>( kControlNoPart, kControlProgressBarIndeterminateTag ) != false )
+ {
+ m_peer->SetData<Boolean>( kControlNoPart, kControlProgressBarIndeterminateTag, (Boolean)false );
+ }
+
m_peer->SetValue( GetValue() ) ;
// turn off animation in the unnecessary situations as this is consuming a lot of CPU otherwise
{
if ( m_peer && m_peer->Ok() )
{
- // need to use the animate() method of NSProgressIndicator Class here
+ if ( m_peer->GetData<Boolean>( kControlNoPart, kControlProgressBarIndeterminateTag ) != true )
+ {
+ m_peer->SetData<Boolean>( kControlNoPart, kControlProgressBarIndeterminateTag, true);
+ }
+
+ if ( m_peer->GetData<Boolean>( kControlEntireControl, kControlProgressBarAnimatingTag ) != true )
+ {
+ m_peer->SetData<Boolean>( kControlEntireControl, kControlProgressBarAnimatingTag, true ) ;
+ }
}
}