//-------------------------------------------------------------------------------------- void CProgressBarVertical::Draw ( void ) { if ( !m_bVisible ) return; CMouse *pMouse = m_pDialog->GetMouse (); if ( pMouse && m_bPressed && m_rBoundingBox.ContainsPoint ( pMouse->GetPos () ) && !m_timer.Running() ) { if ( pMouse->GetPos ().m_nY > m_rProgress.m_pos.m_nY + m_rProgress.m_size.cx ) { m_timer.Start ( PROGRESSBAR_ARROWCLICK_START ); SetValue ( m_fValue + m_fStep ); } else if ( pMouse->GetPos ().m_nY < m_rProgress.m_pos.m_nY + m_rProgress.m_size.cx ) { m_timer.Start ( PROGRESSBAR_ARROWCLICK_START ); SetValue ( m_fValue - m_fStep ); } } m_pDialog->DrawBox ( m_rBoundingBox, m_sControlColor.d3dColorBoxBack, m_sControlColor.d3dColorOutline, m_bAntAlias ); m_pDialog->DrawBox ( m_rProgress, m_sControlColor.d3dColorBoxSel, m_sControlColor.d3dColorOutline, m_bAntAlias ); }
//-------------------------------------------------------------------------------------- void CProgressBarHorizontal::Draw ( void ) { if ( !m_bVisible ) return; CMouse *pMouse = m_pDialog->GetMouse (); assert ( pMouse && "Invalid mouse pointer" ); if ( pMouse && m_bPressed && m_rBoundingBox.InControlArea ( pMouse->GetPos () ) && !m_timer.Running() ) { if ( pMouse->GetPos ().GetX () > m_rProgress.pos.GetX () + m_rProgress.size.cx ) { m_timer.Start ( PROGRESSBAR_ARROWCLICK_REPEAT ); SetValue ( m_fValue + m_fStep ); } else if ( pMouse->GetPos ().GetX () < m_rProgress.pos.GetX () + m_rProgress.size.cx ) { m_timer.Start ( PROGRESSBAR_ARROWCLICK_REPEAT ); SetValue ( m_fValue - m_fStep ); } } m_pDialog->DrawBox ( m_rBoundingBox, m_sControlColor.d3dColorBoxBack, m_sControlColor.d3dColorOutline, m_bAntAlias ); m_pDialog->DrawBox ( m_rProgress, m_sControlColor.d3dColorBoxSel, m_sControlColor.d3dColorOutline, m_bAntAlias ); }