14ScrollBar::ScrollBar(Orientation orientation,
float rangeMin,
float rangeMax)
15 : m_Orientation(orientation), m_RangeMin(rangeMin), m_RangeMax(rangeMax)
18 setSkin(m_DefaultSkin);
21Orientation ScrollBar::getOrientation()
const {
return m_Orientation; }
23float ScrollBar::getRangeMin()
const {
return m_RangeMin; }
25void ScrollBar::setRangeMin(
float min)
27 assert(min < m_RangeMax);
30 if (m_Value < m_RangeMin)
36float ScrollBar::getRangeMax()
const {
return m_RangeMax; }
38void ScrollBar::setRangeMax(
float max)
40 assert(m_RangeMin < max);
43 if (m_Value > m_RangeMax)
49float ScrollBar::getValue()
const {
return m_Value; }
51void ScrollBar::setValue(
float value)
53 float oldValue = m_Value;
56 m_Value = std::max(m_Value, m_RangeMin);
57 m_Value = std::min(m_Value, m_RangeMax);
59 if (getOnPropertyChange() !=
nullptr && m_Value != oldValue)
61 getOnPropertyChange()->onPropertyChange(
new Sml::PropertyChangeEvent<float>(oldValue, m_Value));
65float ScrollBar::getIncrement()
const {
return m_Increment; }
66void ScrollBar::setIncrement(
float increment) { m_Increment = increment; }
68float ScrollBar::getVisibleRange()
const {
return m_VisibleRange; }
69void ScrollBar::setVisibleRange(
float visibleRange) { m_VisibleRange = visibleRange; }
71void ScrollBar::setOnPropertyChange(Sml::PropertyChangeListener<float>* listener)
73 m_PropertyChangeListener = listener;
76Sml::PropertyChangeListener<float>* ScrollBar::getOnPropertyChange() {
return m_PropertyChangeListener; }