VerticalSlider.cpp 1.0 KB

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