ScrollControl.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /*
  2. GWEN
  3. Copyright (c) 2010 Facepunch Studios
  4. See license in Gwen.h
  5. */
  6. #pragma once
  7. #ifndef GWEN_CONTROLS_SCROLLCONTROL_H
  8. #define GWEN_CONTROLS_SCROLLCONTROL_H
  9. #include "Gwen/Controls/Base.h"
  10. #include "Gwen/Controls/Button.h"
  11. #include "Gwen/Gwen.h"
  12. #include "Gwen/Skin.h"
  13. #include "Gwen/Controls/ScrollBar.h"
  14. #include "Gwen/Controls/VerticalScrollBar.h"
  15. #include "Gwen/Controls/HorizontalScrollBar.h"
  16. namespace Gwen
  17. {
  18. namespace Controls
  19. {
  20. class GWEN_EXPORT ScrollControl : public Base
  21. {
  22. public:
  23. GWEN_CONTROL( ScrollControl, Base );
  24. virtual void Layout( Skin::Base* skin );
  25. virtual void Render( Skin::Base* skin );
  26. virtual void SetScroll( bool h, bool v );
  27. virtual void SetAutoHideBars(bool should) { m_bAutoHideBars = should; }
  28. virtual bool CanScrollH() { return m_bCanScrollH; }
  29. virtual bool CanScrollV() { return m_bCanScrollV; }
  30. virtual void OnChildBoundsChanged( Gwen::Rect oldChildBounds, Base* pChild );
  31. virtual void UpdateScrollBars();
  32. virtual void SetVScrollRequired(bool req);
  33. virtual void SetHScrollRequired(bool req);
  34. virtual void SetInnerSize( int w, int h );
  35. virtual void VBarMoved(Controls::Base * control);
  36. virtual void HBarMoved(Controls::Base * control);
  37. virtual bool OnMouseWheeled( int iDelta );
  38. virtual void ScrollToBottom();
  39. virtual void ScrollToTop();
  40. virtual void ScrollToLeft();
  41. virtual void ScrollToRight();
  42. virtual void Clear();
  43. protected:
  44. bool m_bCanScrollH;
  45. bool m_bCanScrollV;
  46. bool m_bAutoHideBars;
  47. public:
  48. Controls::BaseScrollBar* m_VerticalScrollBar;
  49. Controls::BaseScrollBar* m_HorizontalScrollBar;
  50. };
  51. }
  52. }
  53. #endif