bool CEditValue::EventProcess(const Event &event) { CControl::EventProcess(event); if ( (m_state & STATE_VISIBLE) == 0 ) return true; if ( (m_state & STATE_ENABLE) == 0 ) return true; if ( m_state & STATE_DEAD ) return true; if (m_edit != nullptr) { if ( m_edit->GetFocus() && event.type == EVENT_KEY_DOWN && event.GetData<KeyEventData>()->key == KEY(RETURN) ) { float value = GetValue(); if ( value > m_maxValue ) value = m_maxValue; if ( value < m_minValue ) value = m_minValue; SetValue(value, true); HiliteValue(event); } if ( !m_edit->EventProcess(event) ) return false; if ( event.type == m_edit->GetEventType() ) { m_event->AddEvent(Event(m_eventType)); } } if (m_buttonUp != nullptr) { if ( event.type == m_buttonUp->GetEventType() ) { float value = GetValue()+m_stepValue; if ( value > m_maxValue ) value = m_maxValue; SetValue(value, true); HiliteValue(event); } if ( !m_buttonUp->EventProcess(event) ) return false; } if (m_buttonDown != nullptr) { if ( event.type == m_buttonDown->GetEventType() ) { float value = GetValue()-m_stepValue; if ( value < m_minValue ) value = m_minValue; SetValue(value, true); HiliteValue(event); } if ( !m_buttonDown->EventProcess(event) ) return false; } if (event.type == EVENT_MOUSE_WHEEL && Detect(event.mousePos)) { float value = GetValue() + (m_stepValue * event.GetData<MouseWheelEventData>()->y); if ( value < m_minValue ) value = m_minValue; if ( value > m_maxValue ) value = m_maxValue; SetValue(value, true); HiliteValue(event); } return true; }
bool CEditValue::EventProcess(const Event &event) { float value; CControl::EventProcess(event); if ( (m_state & STATE_VISIBLE) == 0 ) return true; if ( (m_state & STATE_ENABLE) == 0 ) return true; if ( m_edit != 0 ) { if ( m_edit->GetFocus() && event.type == EVENT_KEY_DOWN && event.key.key == KEY(RETURN) ) { value = GetValue(); if ( value > m_maxValue ) value = m_maxValue; if ( value < m_minValue ) value = m_minValue; SetValue(value, true); HiliteValue(event); } if ( !m_edit->EventProcess(event) ) return false; if ( event.type == m_edit->GetEventType() ) { Event newEvent(m_eventType); m_event->AddEvent(newEvent); } } if ( m_buttonUp != 0 ) { if ( event.type == m_buttonUp->GetEventType() ) { value = GetValue()+m_stepValue; if ( value > m_maxValue ) value = m_maxValue; SetValue(value, true); HiliteValue(event); } if ( !m_buttonUp->EventProcess(event) ) return false; } if ( m_buttonDown != 0 ) { if ( event.type == m_buttonDown->GetEventType() ) { value = GetValue()-m_stepValue; if ( value < m_minValue ) value = m_minValue; SetValue(value, true); HiliteValue(event); } if ( !m_buttonDown->EventProcess(event) ) return false; } if (event.type == EVENT_MOUSE_WHEEL && event.mouseWheel.dir == WHEEL_UP && Detect(event.mousePos)) { value = GetValue()+m_stepValue; if ( value > m_maxValue ) value = m_maxValue; SetValue(value, true); HiliteValue(event); } if ( event.type == EVENT_KEY_DOWN && event.mouseWheel.dir == WHEEL_DOWN && Detect(event.mousePos)) { value = GetValue()-m_stepValue; if ( value < m_minValue ) value = m_minValue; SetValue(value, true); HiliteValue(event); } return true; }