1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /*
- GWEN
- Copyright (c) 2010 Facepunch Studios
- See license in Gwen.h
- */
- #include "Gwen/Controls/Dragger.h"
- using namespace Gwen;
- using namespace Gwen::ControlsInternal;
- GWEN_CONTROL_CONSTRUCTOR( Dragger )
- {
- m_pTarget = NULL;
- SetMouseInputEnabled( true );
- m_bDepressed = false;
- }
- void Dragger::OnMouseClickLeft( int x, int y, bool bDown )
- {
- if ( !m_pTarget ) return;
- if ( bDown )
- {
- m_bDepressed = true;
- m_HoldPos = m_pTarget->CanvasPosToLocal( Gwen::Point( x, y ) );
- Gwen::MouseFocus = this;
- }
- else
- {
- m_bDepressed = false;
- Gwen::MouseFocus = NULL;
- }
- }
- void Dragger::OnMouseMoved( int x, int y, int /*deltaX*/, int /*deltaY*/ )
- {
- if ( !m_pTarget ) return;
- if ( !m_bDepressed ) return;
- Gwen::Point p = Gwen::Point( x - m_HoldPos.x, y - m_HoldPos.y );
-
- // Translate to parent
- if ( m_pTarget->GetParent() )
- p = m_pTarget->GetParent()->CanvasPosToLocal( p );
-
- //m_pTarget->SetPosition( p.x, p.y );
- m_pTarget->MoveTo( p.x, p.y );
- onDragged.Call( this );
- }
- void Dragger::Render( Skin::Base* /*skin*/ )
- {
- //skin->DrawButton(this,false,false);
- }
|