TreeControl.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /*
  2. GWEN
  3. Copyright (c) 2010 Facepunch Studios
  4. See license in Gwen.h
  5. */
  6. #pragma once
  7. #ifndef GWEN_CONTROLS_TREECONTROL_H
  8. #define GWEN_CONTROLS_TREECONTROL_H
  9. #include "Gwen/Controls/Base.h"
  10. #include "Gwen/Controls/TreeNode.h"
  11. namespace Gwen
  12. {
  13. namespace Controls
  14. {
  15. class GWEN_EXPORT TreeControl : public TreeNode
  16. {
  17. public:
  18. GWEN_CONTROL( TreeControl, TreeNode );
  19. virtual void Render( Skin::Base* skin );
  20. virtual void OnChildBoundsChanged( Gwen::Rect oldChildBounds, Base* pChild );
  21. ScrollControl* Scroller() { return m_ScrollControl; }
  22. virtual void Clear();
  23. virtual void Layout( Skin::Base* skin );
  24. virtual void PostLayout( Skin::Base* skin );
  25. virtual void AllowMultiSelect( bool b ){ m_bAllowMultipleSelection = b; }
  26. virtual void OnNodeAdded( TreeNode* pNode );
  27. virtual bool OnKeyUp( bool bDown );
  28. virtual bool OnKeyDown( bool bDown );
  29. virtual bool OnKeyRight( bool bDown );
  30. virtual bool OnKeyLeft( bool bDown );
  31. virtual void iterate(int action,int* curIndex, int* resultIndex);
  32. virtual void ForceUpdateScrollBars();
  33. private:
  34. void OnNodeSelection( Controls::Base* control );
  35. ScrollControl* m_ScrollControl;
  36. bool m_bAllowMultipleSelection;
  37. };
  38. }
  39. }
  40. #endif