ROVLib2
RISCOSC++applicationdevelopmentlibrary
menuitem.h
1 #pragma once
2 
3 #include "clickable.h"
4 #include "wimp_menu.h"
5 #include "unassignable.h"
6 #include <string>
7 
8 namespace rov2
9 {
10 
11 typedef enum
12 {
13  mhUnhandled,
14  mhHandledClose,
15  mhHandledKeepOpen,
16  mhHandledKeepOpenRecreate
17 } eMenuHandled; // mh
18 
19 class CMenu;
20 class CWindow;
21 
23 class CMenuItem : public CUnassignable
24 {
26  friend class CMenu;
27 
28 public:
30  bool m_bTicked;
31 
33  bool m_bDotted;
34 
40  virtual eMenuHandled Clicked(const bool bAdjust, void* pContext);
41 
45  void AttachSubmenu(CMenu* pmMenu);
46 
50  void AttachSubmenu(CWindow* pwWindow);
51 
52 protected:
54  CMenuItem();
55 
57  ~CMenuItem();
58 
63  virtual tCoordinate PopulateMenu(tMenuItem* pmiItem);
64 
67 
70 
71 private:
72 };
73 
75 class CTextMenuItem : public CMenuItem
76 {
77 public:
81  CTextMenuItem(const std::string& rksText);
82 protected:
83  virtual tCoordinate PopulateMenu(tMenuItem* pmiItem);
84 private:
86  std::string m_sText;
87 };
88 
89 }
CWindow * m_pwWindow
Definition: menuitem.h:69
virtual eMenuHandled Clicked(const bool bAdjust, void *pContext)
Definition: menuitem.cpp:34
bool m_bTicked
Definition: menuitem.h:30
CMenu * m_pmSubmenu
Definition: menuitem.h:66
bool m_bDotted
Definition: menuitem.h:33
void AttachSubmenu(CMenu *pmMenu)
Definition: menuitem.cpp:52
virtual tCoordinate PopulateMenu(tMenuItem *pmiItem)
Definition: menuitem.cpp:22