MenuItem.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /*
  2. GWEN
  3. Copyright (c) 2010 Facepunch Studios
  4. See license in Gwen.h
  5. */
  6. #pragma once
  7. #ifndef GWEN_CONTROLS_MENUITEM_H
  8. #define GWEN_CONTROLS_MENUITEM_H
  9. #include "Gwen/BaseRender.h"
  10. #include "Gwen/Controls/Base.h"
  11. #include "Gwen/Controls/Button.h"
  12. #include "Gwen/Controls/Menu.h"
  13. #include "Gwen/Controls/Symbol.h"
  14. namespace Gwen
  15. {
  16. namespace Controls
  17. {
  18. class Menu;
  19. class GWEN_EXPORT MenuItem : public Button
  20. {
  21. public:
  22. GWEN_CONTROL( MenuItem, Button );
  23. virtual ~MenuItem();
  24. virtual void Render( Skin::Base* skin );
  25. virtual void Layout( Skin::Base* skin );
  26. virtual void OnPress();
  27. Menu* GetMenu();
  28. bool IsMenuOpen();
  29. void OpenMenu();
  30. void CloseMenu();
  31. void ToggleMenu();
  32. void SetOnStrip( bool b ){ m_bOnStrip = b;}
  33. bool OnStrip(){ return m_bOnStrip; }
  34. virtual void SetCheckable( bool bCheck ) { m_bCheckable = bCheck; }
  35. virtual void SetCheck( bool bCheck );
  36. virtual bool GetChecked() { return m_bChecked; }
  37. Gwen::Event::Caller onMenuItemSelected;
  38. Gwen::Event::Caller onChecked;
  39. Gwen::Event::Caller onUnChecked;
  40. Gwen::Event::Caller onCheckChange;
  41. private:
  42. Menu* m_Menu;
  43. bool m_bOnStrip;
  44. bool m_bCheckable;
  45. bool m_bChecked;
  46. Symbol::Arrow * m_SubmenuArrow;
  47. };
  48. }
  49. }
  50. #endif