ROVLib2
RISCOSC++applicationdevelopmentlibrary
task.h
1 #pragma once
2 #include "unassignable.h"
3 #include <string>
4 #include <list>
5 #include "wimp.h"
6 #include "window.h"
7 
8 namespace rov2
9 {
10 
11 class CMenu;
12 
13 class CTask : public CUnassignable
14 {
15 public:
16  CTask(const std::string& rksTaskName);
17  virtual ~CTask(void);
18 
20  void Poll();
21 
23  inline void Stop() { m_bExecuting = false; }
24 
30  virtual bool PollEvent(eWimpEvent weEventCode, tWimpBlock& rwbWimpBlock);
31 
33  virtual bool PreQuit() { return true; }
34 
38  inline const tTaskHandle TaskHandle() { return m_thMyTask; }
39 
43  void RegisterWindow(const CWindow* kpwWindow);
44 
48  void DeregisterWindow(const CWindow* kpwWindow);
49 
54  const CWindow* FindWindow(const tWindowHandle kwhWindow);
55 
59  void AcknowledgeMessage(tUserMessageBlock& rumbMessageBlock);
60 
65  void AcknowledgeMessage(const eWimpMessageAction kwmaUserAction, tUserMessageBlock& rumbMessageBlock);
66 
70  static inline CTask* CurrentTask() { return sm_pctCurrent; }
71 
76  void OpenMenu(CMenu* kpmMenu, tLocation& rlLocation);
77 private:
79  tTaskHandle m_thMyTask;
80 
82  bool m_bExecuting;
83 
85  std::list<const CWindow*> m_lkpwWindows;
86 
88  static CTask* sm_pctCurrent;
89 
91  CMenu* m_kpmCurrentMenu;
92 
94  tLocation m_lCurrentMenuLocation;
95 };
96 
97 }
98 
void AcknowledgeMessage(tUserMessageBlock &rumbMessageBlock)
Definition: task.cpp:125
virtual bool PreQuit()
Definition: task.h:33
const CWindow * FindWindow(const tWindowHandle kwhWindow)
Definition: task.cpp:152
void Poll()
Definition: task.cpp:35
void DeregisterWindow(const CWindow *kpwWindow)
Definition: task.cpp:146
virtual bool PollEvent(eWimpEvent weEventCode, tWimpBlock &rwbWimpBlock)
Definition: task.cpp:50
void OpenMenu(CMenu *kpmMenu, tLocation &rlLocation)
Definition: task.cpp:166
void Stop()
Definition: task.h:23
static CTask * CurrentTask()
Definition: task.h:70
void RegisterWindow(const CWindow *kpwWindow)
Definition: task.cpp:140
const tTaskHandle TaskHandle()
Definition: task.h:38