1 /*
2 	GWEN
3 	Copyright (c) 2010 Facepunch Studios
4 	See license in Gwen.h
5 */
6 
7 #include "Gwen/Controls/Slider.h"
8 #include "Gwen/Controls/HorizontalSlider.h"
9 
10 using namespace Gwen;
11 using namespace Gwen::Controls;
12 using namespace Gwen::ControlsInternal;
13 
GWEN_CONTROL_CONSTRUCTOR(HorizontalSlider)14 GWEN_CONTROL_CONSTRUCTOR(HorizontalSlider)
15 {
16 }
17 
CalculateValue()18 float HorizontalSlider::CalculateValue()
19 {
20 	return (float)m_SliderBar->X() / (float)(Width() - m_SliderBar->Width());
21 }
22 
UpdateBarFromValue()23 void HorizontalSlider::UpdateBarFromValue()
24 {
25 	m_SliderBar->MoveTo((Width() - m_SliderBar->Width()) * (m_fValue), m_SliderBar->Y());
26 }
27 
OnMouseClickLeft(int x,int y,bool bDown)28 void HorizontalSlider::OnMouseClickLeft(int x, int y, bool bDown)
29 {
30 	m_SliderBar->MoveTo(CanvasPosToLocal(Gwen::Point(x, y)).x - m_SliderBar->Width() * 0.5, m_SliderBar->Y());
31 	m_SliderBar->OnMouseClickLeft(x, y, bDown);
32 	OnMoved(m_SliderBar);
33 }
34 
Layout(Skin::Base *)35 void HorizontalSlider::Layout(Skin::Base* /*skin*/)
36 {
37 	m_SliderBar->SetSize(10, Height());
38 }
39 
Render(Skin::Base * skin)40 void HorizontalSlider::Render(Skin::Base* skin)
41 {
42 	skin->DrawSlider(this, true, m_bClampToNotches ? m_iNumNotches : 0, m_SliderBar->Width());
43 }