57 lines
1.1 KiB
C++
57 lines
1.1 KiB
C++
|
/*
|
||
|
GWEN
|
||
|
Copyright (c) 2010 Facepunch Studios
|
||
|
See license in Gwen.h
|
||
|
*/
|
||
|
|
||
|
|
||
|
#include "gwen_scrollbar.h"
|
||
|
#include "gwen_scrollbarbar.h"
|
||
|
|
||
|
using namespace Gwen;
|
||
|
using namespace Gwen::Controls;
|
||
|
using namespace Gwen::ControlsInternal;
|
||
|
|
||
|
//Actual bar representing height of parent
|
||
|
|
||
|
GWEN_CONTROL_CONSTRUCTOR( ScrollBarBar )
|
||
|
{
|
||
|
RestrictToParent( true );
|
||
|
SetTarget( this );
|
||
|
}
|
||
|
|
||
|
void ScrollBarBar::Render( Skin::Base* skin )
|
||
|
{
|
||
|
skin->DrawScrollBarBar(this, m_bDepressed, IsHovered(), m_bHorizontal );
|
||
|
BaseClass::Render( skin );
|
||
|
}
|
||
|
|
||
|
void ScrollBarBar::OnMouseMoved( int x, int y, int deltaX, int deltaY )
|
||
|
{
|
||
|
BaseClass::OnMouseMoved( x, y, deltaX, deltaY );
|
||
|
|
||
|
if ( !m_bDepressed )
|
||
|
return;
|
||
|
|
||
|
InvalidateParent();
|
||
|
}
|
||
|
|
||
|
void ScrollBarBar::OnMouseClickLeft( int x, int y, bool bDown )
|
||
|
{
|
||
|
BaseClass::OnMouseClickLeft( x, y, bDown );
|
||
|
InvalidateParent();
|
||
|
}
|
||
|
|
||
|
void ScrollBarBar::Layout( Skin::Base* /*skin*/ )
|
||
|
{
|
||
|
if ( !GetParent() )
|
||
|
return;
|
||
|
|
||
|
//Move to our current position to force clamping - is this a hack?
|
||
|
MoveTo( X(), Y() );
|
||
|
}
|
||
|
|
||
|
void ScrollBarBar::MoveTo( int x, int y )
|
||
|
{
|
||
|
BaseClass::MoveTo( x, y );
|
||
|
}
|