ResizableControl.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /*
  2. GWEN
  3. Copyright (c) 2010 Facepunch Studios
  4. See license in Gwen.h
  5. */
  6. #pragma once
  7. #ifndef GWEN_CONTROLS_RESIZABLECONTROL_H
  8. #define GWEN_CONTROLS_RESIZABLECONTROL_H
  9. #include "Gwen/Controls/Base.h"
  10. #include "Gwen/Controls/Label.h"
  11. #include "Gwen/Controls/Button.h"
  12. #include "Gwen/Controls/Dragger.h"
  13. #include "Gwen/Controls/Label.h"
  14. #include "Gwen/Gwen.h"
  15. #include "Gwen/Skin.h"
  16. namespace Gwen
  17. {
  18. namespace Controls
  19. {
  20. class GWEN_EXPORT ResizableControl : public Base
  21. {
  22. public:
  23. GWEN_CONTROL( ResizableControl, Base );
  24. virtual void SetClampMovement( bool shouldClamp ) { m_bClampMovement = shouldClamp; }
  25. virtual bool GetClampMovement() { return m_bClampMovement; }
  26. virtual void SetMinimumSize( const Gwen::Point& minSize ) { m_MinimumSize = minSize; }
  27. virtual Gwen::Point GetMinimumSize() { return m_MinimumSize; }
  28. virtual void DisableResizing();
  29. virtual bool SetBounds( int x, int y, int w, int h );
  30. virtual void OnResized(){};
  31. Event::Caller onResize;
  32. protected:
  33. void OnResizedInternal( Controls::Base* pControl );
  34. Gwen::Point m_MinimumSize;
  35. bool m_bClampMovement;
  36. bool m_bResizable;
  37. };
  38. }
  39. }
  40. #endif