// Start.Real Wolf.06.11.14. void CUITrackBar::Update() { if (m_bState && !pInput->iGetAsyncBtnState(0) ) OnMouse(0.f, 0.f, WINDOW_LBUTTON_UP); if (m_bState) UpdatePosRelativeToMouse(); CUIWindow::Update(); }
bool CUITrackBar::OnMouseAction(float x, float y, EUIMessages mouse_action) { CUIWindow::OnMouseAction(x, y, mouse_action); switch (mouse_action) { case WINDOW_MOUSE_MOVE: { if(m_bCursorOverWindow && m_b_mouse_capturer) { if (pInput->iGetAsyncBtnState(0)) UpdatePosRelativeToMouse(); } }break; case WINDOW_LBUTTON_DOWN: { m_b_mouse_capturer = m_bCursorOverWindow; if(m_b_mouse_capturer) UpdatePosRelativeToMouse(); }break; case WINDOW_LBUTTON_UP: { m_b_mouse_capturer = false; } break; case WINDOW_MOUSE_WHEEL_UP: { if(m_b_is_float) { m_f_val -= GetInvert()?-m_f_step:m_f_step; clamp(m_f_val, m_f_min, m_f_max); } else { m_i_val -= GetInvert()?-m_i_step:m_i_step; clamp(m_i_val, m_i_min, m_i_max); } GetMessageTarget()->SendMessage(this, BUTTON_CLICKED, NULL); UpdatePos (); OnChangedOptValue (); } break; case WINDOW_MOUSE_WHEEL_DOWN: { if(m_b_is_float) { m_f_val += GetInvert()?-m_f_step:m_f_step; clamp(m_f_val, m_f_min, m_f_max); } else { m_i_val += GetInvert()?-m_i_step:m_i_step; clamp(m_i_val, m_i_min, m_i_max); } GetMessageTarget()->SendMessage(this, BUTTON_CLICKED, NULL); UpdatePos(); OnChangedOptValue (); } break; }; return true; }