This repository has been archived on 2023-07-11. You can view files and clone it, but cannot push or open issues or pull requests.
MyGameFramework/lib/gwen/controls/gwen_verticalslider.cpp
Gered c5cdddbeaa initial commit
current versions of all of my basic framework sources, build configurations/scripts, and supporting assets
2013-01-31 12:53:05 -05:00

49 lines
1.1 KiB
C++

/*
GWEN
Copyright (c) 2010 Facepunch Studios
See license in Gwen.h
*/
#include "gwen_slider.h"
#include "gwen_verticalslider.h"
using namespace Gwen;
using namespace Gwen::Controls;
using namespace Gwen::ControlsInternal;
GWEN_CONTROL_CONSTRUCTOR( VerticalSlider )
{
m_SliderBar->SetHorizontal( false );
}
float VerticalSlider::CalculateValue()
{
return 1 - (float)m_SliderBar->Y() / (float)( Height() - m_SliderBar->Height() );
}
void VerticalSlider::UpdateBarFromValue()
{
m_SliderBar->MoveTo( m_SliderBar->X(), ( Height() - m_SliderBar->Height() ) * ( 1 - m_fValue ));
}
void VerticalSlider::OnMouseClickLeft( int x, int y, bool bDown )
{
m_SliderBar->MoveTo( m_SliderBar->X(), CanvasPosToLocal( Gwen::Point( x, y ) ).y - m_SliderBar->Height() * 0.5 );
m_SliderBar->OnMouseClickLeft( x, y, bDown );
OnMoved( m_SliderBar );
}
void VerticalSlider::Layout(Skin::Base* /*skin*/)
{
m_SliderBar->SetSize( Width(), 15 );
}
void VerticalSlider::Render( Skin::Base* skin )
{
skin->DrawSlider( this, false, m_bClampToNotches ? m_iNumNotches : 0, m_SliderBar->Height() );
}