void ScrollBar::SetValue(int32_t value) { if (value < GetMinValue()) { value = GetMinValue(); } else if (value > GetMaxValue()) { value = GetMaxValue(); } _value = value; (onValueChanged != 0) ? onValueChanged(this) : OnValueChanged(); if (GetOrientation() == ORIENTATION_HORIZONTAL) { GetMarker()->SetX(static_cast<PosType>(GetMarkerOffsetX() + (Slider::GetWidth() - GetMarker()->GetWidth()) / ((GetMaxValue() - GetMinValue()) / static_cast<float>(GetValue())))); GetMarker()->SetY(GetMarkerOffsetY()); } else { GetMarker()->SetX(GetMarkerOffsetX()); GetMarker()->SetY(static_cast<PosType>(GetMarkerOffsetY() + (Slider::GetHeight() - GetMarker()->GetHeight()) / ((GetMaxValue() - GetMinValue()) / static_cast<float>(GetValue())))); } }
void Slider::SetValue(int value) { if (value < GetMinValue()) { value = GetMinValue(); } else if (value > GetMaxValue()) { value = GetMaxValue(); } _value = value; (onValueChanged != 0) ? onValueChanged(this) : OnValueChangedEvent(); if (GetOrientation() == ORIENTATION_VERTICAL) { GetMarker()->SetX(GetMarkerOffsetX()); GetMarker()->SetY(static_cast<sint>(GetMarkerOffsetY() + GetHeight() / ((GetMaxValue() - GetMinValue()) / static_cast<float>(GetValue())) - GetMarker()->GetHeight() / 2.0f)); } else { GetMarker()->SetX(static_cast<sint>(GetMarkerOffsetX() + GetWidth() / ((GetMaxValue() - GetMinValue()) / static_cast<float>(GetValue())) - GetMarker()->GetWidth() / 2.0f)); GetMarker()->SetY(GetMarkerOffsetY()); } }