text: /*
  	GWEN
  	Copyright (c) 2010 Facepunch Studios
  	See license in Gwen.h
  */
  
  #pragma once
  #ifndef GWEN_CONTROLS_DRAGGER_H
  #define GWEN_CONTROLS_DRAGGER_H
  
  #include "Gwen/Controls/Base.h"
  #include "Gwen/Gwen.h"
  #include "Gwen/Skin.h"
  
  
  namespace Gwen
  {
  	namespace ControlsInternal
  	{
  		class GWEN_EXPORT Dragger : public Controls::Base
  		{
  			public:
  
  				GWEN_CONTROL( Dragger, Controls::Base );
  
  				virtual void OnMouseMoved( int x, int y, int deltaX, int deltaY );
  
  				virtual void OnMouseClickLeft( int x, int y, bool bDown );
  				virtual void Render( Skin::Base* skin );
  
  				virtual void SetTarget( Controls::Base* pBase ) { m_pTarget = pBase; }
  				virtual bool IsDepressed() { return m_bDepressed; }
  
  				virtual void SetDoMove( bool b ) { m_bDoMove = b; }
  
  				virtual void OnMouseDoubleClickLeft( int x, int y );
  
  				Gwen::Event::Caller	onDragged;
  				Gwen::Event::Caller	onDragStart;
  
  				Gwen::Event::Caller	onDoubleClickLeft;
  
  			protected:
  
  				bool				m_bDepressed;
  				Gwen::Point			m_HoldPos;
  				Controls::Base*		m_pTarget;
  				bool				m_bDoMove;
  		};
  	}
  }
  #endif
  