ROVLib2
RISCOSC++applicationdevelopmentlibrary
tut3.cpp
1 #include "task.h"
2 #include "applicationicon.h"
3 #include "menu.h"
4 #include "wimp_error.h"
5 
6 using namespace rov2;
7 
8 namespace tutorial3
9 {
10 /* We can create a class like this... */
11 static CTask* pTask = new CTask("Third ROVLib2 app!");
12 
14 class MyMenu : public CMenu
15 {
16 public:
17  MyMenu() : CMenu("ROVLib2", 2)
18  {
19  m_miQuit = new CTextMenuItem("Quit");
20  AddItem(m_miQuit);
21  }
22 
23  eMenuHandled Clicked(const unsigned int* kuiaEntries)
24  {
25  switch (kuiaEntries[0])
26  {
27  case 0: // First menu item
28  pTask->Stop();
29  return mhHandledClose;
30  }
31 
32  return mhUnhandled;
33  }
34 
35 private:
36  CMenuItem* m_miQuit;
37 };
38 
40 class MyIcon : public CApplicationIcon
41 {
42 public:
44  MyIcon() : CApplicationIcon("!system")
45  {
46  m_mMyMenu = new MyMenu();
47  }
48 
50  ~MyIcon() {}
51 
52  bool Clicked(const tMouseClickBlock& rkmcbClickBlock)
53  {
54  if (rkmcbClickBlock.bcButtons.menu)
55  {
56  m_mMyMenu->DisplayAsIconbarMenu();
57  }
58  return true;
59  }
60 
61 private:
62  CMenu* m_mMyMenu;
63 };
64 }
65 
66 using namespace tutorial3;
67 
68 int main(int argc, char** argv)
69 {
70  /* Create our application icon */
71  MyIcon* pIcon = new MyIcon();
72 
73  /* Poll until we want to stop*/
74  pTask->Poll();
75 
76  /* Delete everything */
77  delete(pIcon);
78 
79  return 0;
80 }
bool Clicked(const tMouseClickBlock &rkmcbClickBlock)
Definition: tut3.cpp:52
eMenuHandled Clicked(const unsigned int *kuiaEntries)
Definition: tut3.cpp:23
void Poll()
Definition: task.cpp:35
void Stop()
Definition: task.h:23