text: /*
  	GWEN
  	Copyright (c) 2010 Facepunch Studios
  	See license in Gwen.h
  */
  
  #pragma once
  #ifndef GWEN_CONTROLS_SCROLLCONTROL_H
  #define GWEN_CONTROLS_SCROLLCONTROL_H
  
  #include "Gwen/Controls/Base.h"
  #include "Gwen/Controls/Button.h"
  #include "Gwen/Gwen.h"
  #include "Gwen/Skin.h"
  #include "Gwen/Controls/ScrollBar.h"
  #include "Gwen/Controls/VerticalScrollBar.h"
  #include "Gwen/Controls/HorizontalScrollBar.h"
  
  
  namespace Gwen 
  {
  	namespace Controls
  	{
  		class GWEN_EXPORT ScrollControl : public Base
  		{
  			public:
  
  				GWEN_CONTROL( ScrollControl, Base );
  
  				virtual void Layout( Skin::Base* skin );
  				virtual void Render( Skin::Base* skin );
  
  				virtual void SetScroll( bool h, bool v );
  				virtual void SetAutoHideBars(bool should) { m_bAutoHideBars = should; }
  				virtual bool CanScrollH() { return m_bCanScrollH; }
  				virtual bool CanScrollV() { return m_bCanScrollV; }
  				virtual void OnChildBoundsChanged( Gwen::Rect oldChildBounds, Base* pChild );
  				virtual void UpdateScrollBars();
  
  				virtual void SetVScrollRequired(bool req);
  				virtual void SetHScrollRequired(bool req);
  
  				virtual void SetInnerSize( int w, int h );
  
  				virtual void VBarMoved(Controls::Base * control);
  				virtual void HBarMoved(Controls::Base * control);
  
  				virtual bool OnMouseWheeled( int iDelta );
  
  				virtual void ScrollToBottom();
  				virtual void ScrollToTop();
  				virtual void ScrollToLeft();
  				virtual void ScrollToRight();
  
  				virtual void Clear();
  
  			protected:
  
  				virtual bool ContentsAreDocked();
  
  				bool m_bCanScrollH;
  				bool m_bCanScrollV;
  
  				bool m_bAutoHideBars;
  
  				Controls::BaseScrollBar* m_VerticalScrollBar;
  				Controls::BaseScrollBar* m_HorizontalScrollBar;
  		};
  	}
  }
  #endif
  