void CGUISpinControlEx::SetPosition(float posX, float posY) { m_buttonControl.SetPosition(posX, posY); float spinPosX = posX + m_buttonControl.GetWidth() - GetSpinWidth() * 2 - (m_spinPosX ? m_spinPosX : m_buttonControl.GetLabelInfo().offsetX); float spinPosY = posY + (m_buttonControl.GetHeight() - GetSpinHeight()) * 0.5f; CGUISpinControl::SetPosition(spinPosX, spinPosY); }
void CGUISpinControlEx::Process(unsigned int currentTime, CDirtyRegionList &dirtyregions) { // make sure the button has focus if it should have... m_buttonControl.SetFocus(HasFocus()); m_buttonControl.SetPulseOnSelect(m_pulseOnSelect); m_buttonControl.SetEnabled(m_enabled); if (m_bInvalidated) { float spinPosX = m_buttonControl.GetXPosition() + m_buttonControl.GetWidth() - GetSpinWidth() * 2 - (m_spinPosX ? m_spinPosX : m_buttonControl.GetLabelInfo().offsetX); float spinPosY = m_buttonControl.GetYPosition() + (m_buttonControl.GetHeight() - GetSpinHeight()) * 0.5f; CGUISpinControl::SetPosition(spinPosX, spinPosY); } m_buttonControl.DoProcess(currentTime, dirtyregions); CGUISpinControl::Process(currentTime, dirtyregions); }