mainfrm.h 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524
  1. #ifndef __MAIN_FRAME_H
  2. #define __MAIN_FRAME_H
  3. #pragma once
  4. #define ALL_FUNCTION_SHOW
  5. #include "resource.h"
  6. #include "guitask.h"
  7. #define WM_GUICONSOLE (WM_APP + 1)
  8. #define WM_SHOW_MSG (WM_APP + 2)
  9. #define WM_SHOW_MAINTAIN_VIEW (WM_APP + 3)
  10. #define WM_CHECK_SYSINIT_FAIL (WM_APP + 4)
  11. #define WM_CHECK_SYSINIT_SUCCESS (WM_APP + 5)
  12. #define WM_SHOW_BEGININIT_VIEW (WM_APP + 6)
  13. #define WM_SHOW_MOBILEDIAL_VIEW (WM_APP + 7)
  14. #define OP_START_ENTITY 1
  15. #define OP_STOP_ENTITY 0
  16. #define OP_PAUSE_ENTITY 2
  17. #define OP_TERMINATE_ENTITY 3
  18. #define OP_CONTINUE_ENTITY 4
  19. #define OP_FIRE_ENTITY_STATE 5
  20. struct callback_entry : public IReleasable
  21. {
  22. virtual ~callback_entry() {}
  23. CSimpleStringA EntityName;
  24. union {
  25. void *pRawData;
  26. int state;
  27. };
  28. int op;
  29. ErrorCodeEnum ErrorResult;
  30. };
  31. #if defined(_MSC_VER)
  32. class CMainFrame;
  33. class CCommandEdit : public ATL::CWindowImpl<CCommandEdit, WTL::CEdit>
  34. {
  35. public:
  36. enum { MAX_HISTORY = 50 };
  37. BEGIN_MSG_MAP_EX(CCommandEdit)
  38. MSG_WM_CHAR(OnChar)
  39. MSG_WM_KEYDOWN(OnKeyDown)
  40. END_MSG_MAP()
  41. CCommandEdit() : m_nHistoryCursor(0), m_nHistorySize(0), m_nHistoryHead(0) {}
  42. void SetOwner(CMainFrame *frm) { m_frm = frm; }
  43. void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
  44. void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  45. private:
  46. int m_nHistoryCursor;
  47. int m_nHistorySize;
  48. int m_nHistoryHead;
  49. WTL::CString m_strHistoryList[MAX_HISTORY];
  50. CMainFrame *m_frm;
  51. };
  52. // 关于对话框
  53. class CAboutDlg : public ATL::CDialogImpl<CAboutDlg>
  54. {
  55. public:
  56. CAboutDlg(GUITask *pTask) : m_pGUITask(pTask){}
  57. enum{ IDD = IDD_ABOUTBOX };
  58. BEGIN_MSG_MAP_EX(CAboutDlg)
  59. MESSAGE_HANDLER_EX(WM_INITDIALOG, OnInitDialog)
  60. COMMAND_ID_HANDLER_EX(IDOK, OnOK)
  61. COMMAND_ID_HANDLER_EX(IDOK2, OnOK2)
  62. COMMAND_ID_HANDLER_EX(IDOK3, OnOK3)
  63. COMMAND_ID_HANDLER_EX(IDOK4, OnOK4)
  64. MESSAGE_HANDLER_EX(WM_CLOSE, OnClose)
  65. END_MSG_MAP()
  66. LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam);
  67. void OnOK(UINT uNotifyCode, int nID, CWindow wndCtl);
  68. void OnOK2(UINT uNotifyCode, int nID, CWindow wndCtl);
  69. void OnOK3(UINT uNotifyCode, int nID, CWindow wndCtl);
  70. void OnOK4(UINT uNotifyCode, int nID, CWindow wndCtl);
  71. LRESULT OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam);
  72. private:
  73. GUITask *m_pGUITask;
  74. };
  75. // 登录对话框
  76. class CLoginDlg : public ATL::CDialogImpl<CLoginDlg>
  77. {
  78. public:
  79. enum{IDD = IDD_USERLOGIN};
  80. BEGIN_MSG_MAP_EX(CLoginDlg)
  81. MESSAGE_HANDLER_EX(WM_INITDIALOG, OnInitDialog)
  82. COMMAND_ID_HANDLER_EX(IDOK, OnOK)
  83. COMMAND_ID_HANDLER_EX(IDCANCEL, OnCancel)
  84. END_MSG_MAP()
  85. LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam);
  86. void OnOK(UINT uNotifyCode, int nID, CWindow wndCtl);
  87. void OnCancel(UINT uNotifyCode, int nID, CWindow wndCtl);
  88. CSimpleStringA m_strUserID;
  89. CSimpleStringA m_strPassword;
  90. };
  91. // 系统信息查看Tab
  92. class CSysInfoView : public ATL::CDialogImpl<CSysInfoView>, ISysVarListener
  93. {
  94. public:
  95. CSysInfoView(GUITask *pTask): m_pGUITask(pTask){}
  96. enum { IDD = IDD_SYSINFODLG };
  97. BEGIN_MSG_MAP_EX(CSysInfoView)
  98. MESSAGE_HANDLER_EX(WM_INITDIALOG, OnInitDialog)
  99. COMMAND_ID_HANDLER_EX(IDC_VIEWOSINFO, OnViewOSInfo)
  100. COMMAND_ID_HANDLER_EX(IDC_VIEWFWINFO, OnViewFWInfo)
  101. COMMAND_ID_HANDLER_EX(IDC_VIEWSYSLOG, OnViewSysLog)
  102. COMMAND_ID_HANDLER_EX(IDC_VIEWENTCONFIG, OnViewEntityConfig)
  103. COMMAND_ID_HANDLER_EX(IDC_VIEWUPGRADELOG, OnViewUpgradeConfig)
  104. COMMAND_ID_HANDLER_EX(IDC_VIEWINSTALLDIR, OnViewInstallDir)
  105. COMMAND_ID_HANDLER_EX(IDC_VIEWSYSVAR, OnViewSysVar)
  106. COMMAND_ID_HANDLER_EX(IDC_MONITORLOG, OnMonitorSysLog)
  107. COMMAND_ID_HANDLER_EX(IDC_VIEWDOWNLOAD, OnViewDownloadFile)
  108. COMMAND_RANGE_HANDLER_EX(IDC_VARBUTTON1, IDC_VARBUTTON4, OnVarButton)
  109. NOTIFY_HANDLER_EX(IDC_VIEWLIST1, LVN_ITEMCHANGED, OnListItemchanged)
  110. END_MSG_MAP()
  111. LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam);
  112. void OnViewOSInfo(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  113. void OnViewFWInfo(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  114. void OnViewSysLog(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  115. void OnViewEntityConfig(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  116. void OnViewUpgradeConfig(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  117. void OnViewInstallDir(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  118. void OnViewSysVar(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  119. void OnMonitorSysLog(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  120. void OnViewDownloadFile(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  121. void OnVarButton(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  122. LRESULT OnListItemchanged(NMHDR* phdr);
  123. private:
  124. void ResetListAndButtons(const char *pszOpName, char *pszColName1, char *pszColName2, char *pszBtnName1, char *pszBtnName2,
  125. char *pszBtnName3, char *pszBtnName4);
  126. void OutputMsg(const char *pMsg);
  127. DWORD64 GetFolderSize(LPCTSTR szPath, DWORD *dwFiles, DWORD *dwFolders);
  128. void OnViewLogSubCmd(int /*nID*/);
  129. void OnViewConfigSubCmd(int /*nID*/);
  130. void OnViewUpgradeLogSubCmd(int /*nID*/);
  131. void OnViewInstallDirSubCmd(int /*nID*/);
  132. void OnViewSysVarSubCmd(int /*nID*/);
  133. void OnMonitorLogSubCmd(int /*nID*/);
  134. virtual void OnSysVarEvent(const char *pszKey, const char *pszValue,const char *pszOldValue,const char *pszEntityName);
  135. GUITask *m_pGUITask;
  136. CListViewCtrl m_listView1;
  137. CSimpleStringA m_strOpName;
  138. CSimpleStringA m_strCurViewDir;
  139. };
  140. class CButtonImpl : public ATL::CWindowImpl<CButtonImpl, CButton>
  141. {
  142. BEGIN_MSG_MAP_EX(CButtonImpl)
  143. END_MSG_MAP()
  144. };
  145. class CListCtrlImpl : public ATL::CWindowImpl<CListCtrlImpl, CListViewCtrl>
  146. {
  147. BEGIN_MSG_MAP_EX(CListCtrlImpl)
  148. END_MSG_MAP()
  149. };
  150. class CStaticImpl : public ATL::CWindowImpl<CStaticImpl, CStatic>
  151. {
  152. BEGIN_MSG_MAP_EX(CStaticImpl)
  153. END_MSG_MAP()
  154. };
  155. DWORD SysInitCheck(LPVOID lpv);
  156. DWORD SysInitBegin(LPVOID lpv);
  157. DWORD SysRestoreBegin(LPVOID lpv);
  158. BOOL getRvcInitDir(char *dirPath);
  159. class CSysInitView : public ATL::CDialogImpl<CSysInitView>, public CWinDataExchange<CSysInitView>
  160. {
  161. public:
  162. CSysInitView(GUITask *pTask): m_pGUITask(pTask), nItemCount(0), m_isPageShow(FALSE){
  163. m_initThread = m_restoreThread = NULL;
  164. }
  165. ~CSysInitView()
  166. {
  167. if (m_initThread)
  168. TerminateThread(m_initThread, 0);
  169. if (m_restoreThread)
  170. TerminateThread(m_restoreThread, 0);
  171. }
  172. enum { IDD = IDD_SYSINITDLG };
  173. BEGIN_MSG_MAP_EX(CSysInitView)
  174. MESSAGE_HANDLER_EX(WM_INITDIALOG, OnInitDialog)
  175. COMMAND_ID_HANDLER_EX(IDC_SYSTEM_INIT, OnBnClickedSystemInit)
  176. COMMAND_ID_HANDLER_EX(IDC_SYSTEM_RESTORE, OnBnClickedSystemRestore)
  177. END_MSG_MAP()
  178. BEGIN_DDX_MAP(CSysInitView)
  179. DDX_CONTROL(IDC_SYSTEM_INIT, m_systemInitBtn);
  180. DDX_CONTROL(IDC_SYSTEM_RESTORE, m_systemRetoreBtn);
  181. DDX_CONTROL(IDC_ACCOUNTCONFIG, m_accountConfigCheck);
  182. DDX_CONTROL(IDC_DEFAULTDIX, m_defaultDixCheck);
  183. DDX_CONTROL(IDC_VOICECONFIG, m_voiceConfigCheck);
  184. DDX_CONTROL(IDC_CLOSEWIFI, m_closeWifiCheck);
  185. DDX_CONTROL(IDC_CLOSEAUTOROTATION, m_closeAutoRotationCheck);
  186. DDX_CONTROL(IDC_MINDPI, m_minDPICheck);
  187. DDX_CONTROL(IDC_SYSTEM_MAININIT, m_systemMainIntiCheck);
  188. DDX_CONTROL(IDC_SYSTEM_MAINRESTORE, m_systemMainRestoreCheck);
  189. DDX_CONTROL(IDC_MSG_LIST, m_msgList);
  190. DDX_CONTROL(IDC_INIT_STATIC, m_initStatic);
  191. DDX_CONTROL(IDC_RESTORE_STATIC, m_restoreStatic);
  192. END_DDX_MAP()
  193. LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam);
  194. private:
  195. void InitRect();
  196. void InitWidget();
  197. void InitDll();
  198. void OutputMsg(const char *pMsg);
  199. void AddMsgToListView(CString item, CString result);
  200. void EasyAddMsgToListView(CString item, BOOL isSuccess);
  201. void CleanListView();
  202. void modifyCheckStatus(DWORD status);
  203. LRESULT OnBnClickedSystemInit(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  204. LRESULT OnBnClickedSystemRestore(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  205. friend DWORD SysInitCheck(LPVOID lpv);
  206. friend DWORD SysInitBegin(LPVOID lpv);
  207. friend DWORD SysRestoreBegin(LPVOID lpv);
  208. BOOL CheckThreadRunning();
  209. public:
  210. void TestHighLevelDbg(BOOL isShow, BOOL isHighLevel);
  211. void CheckSystemInit();
  212. protected:
  213. HINSTANCE m_dllWrc;
  214. private:
  215. GUITask *m_pGUITask;
  216. CButtonImpl m_systemInitBtn, m_systemRetoreBtn;
  217. CButtonImpl m_accountConfigCheck, m_voiceConfigCheck, m_closeWifiCheck, m_closeAutoRotationCheck, m_defaultDixCheck,
  218. m_systemMainIntiCheck, m_minDPICheck, m_systemMainRestoreCheck;
  219. CListCtrlImpl m_msgList;
  220. CStaticImpl m_initStatic, m_restoreStatic;
  221. CRect m_systemInitBtnRect, m_systemRetoreBtnRect, m_initStaticRect, m_restoreStaticRect;
  222. CRect m_accountConfigCheckRect, m_voiceConfigCheckRect, m_closeWifiCheckRect, m_closeAutoRotationCheckRect, m_defaultDixCheckRect,
  223. m_systemMainIntiCheckRect, m_minDPICheckRect, m_systemMainRestoreCheckRect;
  224. CRect m_msgListRect;
  225. int nItemCount;
  226. HANDLE m_initThread, m_restoreThread;
  227. BOOL m_isPageShow;
  228. public:
  229. void SetPageShow(BOOL isShow){m_isPageShow = isShow;}
  230. BOOL getPageShow(){return m_isPageShow;}
  231. };
  232. class CControlView : public ATL::CDialogImpl<CControlView>
  233. {
  234. public:
  235. CControlView(GUITask *pTask): m_pGUITask(pTask){}
  236. enum { IDD = IDD_CONTROLDLG };
  237. BEGIN_MSG_MAP_EX(CControlView)
  238. MESSAGE_HANDLER_EX(WM_INITDIALOG, OnInitDialog)
  239. COMMAND_ID_HANDLER_EX(IDC_RESTARTSHELL, OnRestartShell)
  240. COMMAND_ID_HANDLER_EX(IDC_SHUTDOWNSHELL, OnShutdownShell)
  241. COMMAND_ID_HANDLER_EX(IDC_RESTARTPOWER, OnRestartPower)
  242. COMMAND_ID_HANDLER_EX(IDC_EXITACCESSAUTH, OnExitAccessAuth)
  243. COMMAND_ID_HANDLER_EX(IDC_RESTARTAUTH, OnRestartAuth)
  244. COMMAND_ID_HANDLER_EX(IDC_MATERIALMGR, OnMaterialManager)
  245. COMMAND_ID_HANDLER_EX(IDC_COMMITRESULT, OnCommitResult)
  246. COMMAND_ID_HANDLER_EX(IDC_CANCELCHECK, OnCancelCheck)
  247. COMMAND_ID_HANDLER_EX(IDC_PRINT_CONFIG, OnPrintConfig)
  248. COMMAND_ID_HANDLER_EX(IDC_CAMERA_CONFIG, OnCameraConfig)
  249. COMMAND_HANDLER_EX(IDC_COMBO1,CBN_SELCHANGE , OnSelectChanged)
  250. END_MSG_MAP()
  251. LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam);
  252. void OnRestartShell(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  253. void OnShutdownShell(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  254. void OnRestartPower(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  255. void OnExitAccessAuth(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  256. void OnRestartAuth(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  257. void OnMaterialManager(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  258. void OnCommitResult(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  259. void OnCancelCheck(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  260. void OnSelectChanged(UINT uNotifyCode, int nID, CWindow wndCtl);
  261. void OnPrintConfig(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  262. void OnCameraConfig(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  263. private:
  264. void OutputMsg(const char *pMsg);
  265. void ClearAndHideMaterialEditView();
  266. GUITask *m_pGUITask;
  267. };
  268. class CHighLevelView : public ATL::CDialogImpl<CHighLevelView>
  269. {
  270. public:
  271. CHighLevelView(GUITask *pTask): m_pGUITask(pTask){}
  272. enum { IDD = IDD_HIGHLEVELDLG };
  273. BEGIN_MSG_MAP_EX(CHighLevelView)
  274. MESSAGE_HANDLER_EX(WM_INITDIALOG, OnInitDialog)
  275. COMMAND_ID_HANDLER_EX(IDC_MANUALUPGRADE, OnManualUpgrade)
  276. COMMAND_ID_HANDLER_EX(IDC_SETDEBUGLEVEL, OnSetDebugLevel)
  277. COMMAND_ID_HANDLER_EX(IDC_RESETDBGLEVEL, OnResetDebugLevel)
  278. COMMAND_ID_HANDLER_EX(IDC_ROLLBACKUPGRADE, OnRollbackUpgrade)
  279. COMMAND_ID_HANDLER_EX(IDC_UNREGTERMINAL, OnUnregTerminal)
  280. COMMAND_ID_HANDLER_EX(IDC_MODENROLLINFO, OnModifyEnrollInfo)
  281. COMMAND_ID_HANDLER_EX(IDC_MODENROLLINFO2, OnModifyEnrollInfo2)
  282. COMMAND_ID_HANDLER_EX(IDC_MODENROLLINFO3, OnModifyEnrollInfo2)
  283. COMMAND_ID_HANDLER_EX(IDC_STARTOSSHELL, OnStartOSShell)
  284. END_MSG_MAP()
  285. LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam);
  286. void OnManualUpgrade(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  287. void OnSetDebugLevel(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  288. void OnResetDebugLevel(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  289. void OnRollbackUpgrade(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  290. void OnUnregTerminal(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  291. void OnModifyEnrollInfo(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  292. void OnModifyEnrollInfo2(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  293. void OnStartOSShell(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  294. private:
  295. void OutputMsg(const char *pMsg);
  296. GUITask *m_pGUITask;
  297. };
  298. class CMainFrame : public WTL::CFrameWindowImpl<CMainFrame>,
  299. public WTL::CMessageFilter,
  300. public WTL::CIdleHandler,
  301. public WTL::CUpdateUI<CMainFrame>
  302. {
  303. public:
  304. DECLARE_FRAME_WND_CLASS(NULL, IDR_MAINFRAME)
  305. CMainFrame(GUITask *pConsole) : m_pConsole(pConsole), m_bOperationPending(FALSE), m_iSelectIdx(-1),
  306. m_nLineCount(0), m_wndOutput(this, 1), m_bVScrolling(false), m_sysInfoView(m_pConsole),
  307. m_controlView(m_pConsole), m_highLevelView(m_pConsole), m_sysInitView(m_pConsole), m_cansysInitRm(TRUE)
  308. {
  309. }
  310. virtual ~CMainFrame() {}
  311. virtual BOOL PreTranslateMessage(MSG* pMsg);
  312. virtual BOOL OnIdle();
  313. BEGIN_MSG_MAP_EX(CMainFrame)
  314. MSG_WM_CREATE(OnCreate)
  315. MSG_WM_TIMER(OnTimer)
  316. MSG_WM_SYSCOMMAND(OnSysCommand)
  317. MSG_WM_CTLCOLOREDIT(OnCtlColorEdit)
  318. MSG_WM_CTLCOLORSTATIC(OnCtlColorStatic)
  319. COMMAND_ID_HANDLER_EX(ID_START, OnStart)
  320. COMMAND_ID_HANDLER_EX(ID_STOP, OnStop)
  321. COMMAND_ID_HANDLER_EX(ID_PAUSE, OnPause)
  322. COMMAND_ID_HANDLER_EX(ID_CONTINUE, OnContinue)
  323. COMMAND_ID_HANDLER_EX(ID_KILL, OnKill)
  324. COMMAND_ID_HANDLER_EX(ID_FRESH, OnFresh)
  325. COMMAND_ID_HANDLER_EX(ID_HELP_ABOUT, OnAbout)
  326. COMMAND_ID_HANDLER_EX(ID_FILE_INITIALIZE, OnInitialize)
  327. COMMAND_ID_HANDLER_EX(ID_SETTINGS_DIAL, OnMobileDial)
  328. COMMAND_ID_HANDLER_EX(ID_FILE_DELKEYSET, OnDeleteKeySet)
  329. COMMAND_ID_HANDLER_EX(ID_FILE_MAINTAIN, OnMaintain)
  330. COMMAND_ID_HANDLER_EX(ID_FILE_HIGHLEVEL, OnHighLevel)
  331. COMMAND_ID_HANDLER_EX(ID_FILE_RESTART, OnOSRestart)
  332. COMMAND_ID_HANDLER_EX(ID_FILE_EXIT, OnShellExit)
  333. COMMAND_RANGE_HANDLER_EX(ID_STARTMENU_BEGIN, ID_STARTMENU_END, OnStartMenuRange)
  334. COMMAND_CODE_HANDLER_EX(EN_CHANGE, OnOutputChanged)
  335. //MESSAGE_HANDLER_EX(WM_CLOSE, OnClose)
  336. MESSAGE_HANDLER_EX(WM_GUICONSOLE, OnGuiConsole)
  337. MESSAGE_HANDLER_EX(WM_SHOW_MSG, OnShowMsg)
  338. #ifndef ALL_FUNCTION_SHOW
  339. MESSAGE_HANDLER_EX(WM_SHOW_MAINTAIN_VIEW, OnShowMaintainView)
  340. #endif
  341. MESSAGE_HANDLER_EX(WM_SHOW_BEGININIT_VIEW, OnShowBeginInitView)
  342. MESSAGE_HANDLER_EX(WM_SHOW_MOBILEDIAL_VIEW, OnShowMobileDialView)
  343. NOTIFY_HANDLER_EX(IDC_LIST1, LVN_ITEMCHANGED, OnListLeftItemchanged)
  344. NOTIFY_HANDLER_EX(IDC_LIST2, LVN_ITEMCHANGED, OnListRightItemchanged)
  345. NOTIFY_HANDLER_EX(IDC_LIST1, NM_CLICK, OnListLeftItemclicked)
  346. NOTIFY_HANDLER_EX(IDC_LIST2, NM_CLICK, OnListRightItemclicked)
  347. CHAIN_MSG_MAP(CUpdateUI<CMainFrame>)
  348. CHAIN_MSG_MAP(WTL::CFrameWindowImpl<CMainFrame>)
  349. ALT_MSG_MAP(1)
  350. MSG_WM_VSCROLL(OnVScroll)
  351. END_MSG_MAP()
  352. BEGIN_UPDATE_UI_MAP(CMainFrame)
  353. UPDATE_ELEMENT(ID_START, UPDUI_TOOLBAR)
  354. UPDATE_ELEMENT(ID_STOP, UPDUI_TOOLBAR)
  355. UPDATE_ELEMENT(ID_PAUSE, UPDUI_TOOLBAR)
  356. UPDATE_ELEMENT(ID_CONTINUE, UPDUI_TOOLBAR)
  357. UPDATE_ELEMENT(ID_KILL, UPDUI_TOOLBAR)
  358. END_UPDATE_UI_MAP()
  359. int OnCreate(LPCREATESTRUCT lpCreateStruct);
  360. BOOL OnInitDialog(CWindow wndFocus, LPARAM lInitParam);
  361. void OnSysCommand(UINT nID, CPoint point);
  362. void OnStart(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  363. void OnStop(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  364. void OnPause(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  365. void OnContinue(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  366. void OnKill(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  367. void OnFresh(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  368. void OnAbout(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  369. void OnMaintain(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  370. void OnHighLevel(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  371. void OnInitialize(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  372. void OnMobileDial(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  373. void OnDeleteKeySet(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  374. //void OnReboot(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  375. void OnShellExit(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  376. void OnOSRestart(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/);
  377. //LRESULT OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam);
  378. LRESULT OnShowMsg(UINT uMsg, WPARAM wParam, LPARAM lParam);
  379. LRESULT OnGuiConsole(UINT uMsg, WPARAM wParam, LPARAM lParam);
  380. LRESULT OnShowMaintainView(UINT uMsg, WPARAM wParam, LPARAM lParam);
  381. LRESULT OnShowBeginInitView(UINT uMsg, WPARAM wParam, LPARAM lParam);
  382. LRESULT OnShowMobileDialView(UINT uMsg, WPARAM wParam, LPARAM lParam);
  383. LRESULT OnListLeftItemchanged(NMHDR* phdr);
  384. LRESULT OnListRightItemchanged(NMHDR* phdr);
  385. LRESULT OnListLeftItemclicked(NMHDR* phdr);
  386. LRESULT OnListRightItemclicked(NMHDR* phdr);
  387. void OnTimer(UINT_PTR nIDEvent);
  388. void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar pScrollBar);
  389. HBRUSH OnCtlColorEdit(CDCHandle dc, CEdit edit);
  390. HBRUSH OnCtlColorStatic(CDCHandle dc, CStatic wndStatic);
  391. void OnOutputChanged(UINT uNotifyCode, int nID, CWindow wndCtl);
  392. void OnStartMenuRange(UINT uNotifyCode, int nID, CWindow wndCtl);
  393. // IConsoleUISink
  394. virtual void OnStartEntityFinished(ErrorCodeEnum ErrorResult, const char *entity_name, void *pData);
  395. virtual void OnStopEntityFinished(ErrorCodeEnum ErrorResult, const char *entity_name, void *pData);
  396. virtual void OnPauseEntityFinished(ErrorCodeEnum ErrorResult, const char *entity_name, void *pData);
  397. virtual void OnContinueEntityFinished(ErrorCodeEnum ErrorResult, const char *entity_name, void *pData);
  398. virtual void OnTerminateEntityFinished(ErrorCodeEnum ErrorResult, const char *entity_name, void *pData);
  399. virtual void OnEntityStateChanged(const char *entity_name, int new_state, int pid);
  400. void StartEntity(const char *entity_name, const char *cmdline);
  401. void StopEntity(const char *entity_name);
  402. void PauseEntity(const char *entity_name);
  403. void ContinueEntity(const char *entity_name);
  404. void TerminateEntity(const char *entity_name);
  405. void output_printf(const char *fmt, ...);
  406. void CheckOutputMaxLen();
  407. void OnEditEnter(const char *tmp);
  408. void Usage();
  409. private:
  410. int FindEntitylistItemIndex(int entity_id);
  411. int FindEntitylistItemIndex(const char *entity_name);
  412. void SetEntityState(int entity_id, int state, int pid);
  413. void SetEntityState(const char *entity_name, int state, int pid);
  414. void LoadEntity( int nIndex, EntityEntry &e, int nTotal);
  415. void SetEntityDebugLevel(const char *pszEntity, int nDebugLevel);
  416. CSimpleStringA GetSelectedEntityName();
  417. int GetEntityDebugLevel(const char *pszEntity);
  418. private:
  419. // 原有视图控件
  420. WTL::CListViewCtrl m_left_list;
  421. WTL::CListViewCtrl m_right_list;
  422. WTL::CSplitterWindow m_verticalSplitter;
  423. WTL::CHorSplitterWindow m_splitter;
  424. WTL::CEdit m_output;
  425. CCommandEdit m_cmd;
  426. WTL::CFont m_output_font;
  427. WTL::CStatusBarCtrl m_status;
  428. WTL::CProgressBarCtrl m_progressbar;
  429. WTL::CString m_strOuput;
  430. int m_nLineCount;
  431. BOOL m_bOperationPending;
  432. CSmallDateTime m_OperationBeginTime;
  433. int m_iSelectIdx;
  434. GUITask *m_pConsole;
  435. bool m_bVScrolling;
  436. ATL::CContainedWindow m_wndOutput;
  437. CTabView m_tabView;
  438. CSysInfoView m_sysInfoView;
  439. CControlView m_controlView;
  440. CHighLevelView m_highLevelView;
  441. //System Init Page
  442. CSysInitView m_sysInitView;
  443. BOOL m_cansysInitRm;
  444. };
  445. #endif //_MSC_VER
  446. #endif // __MAIN_FRAME_H