Exemple #1
0
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()))));
    }
}
Exemple #2
0
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());
	}
}