OSDN Git Service

CMainFrame handles notify icons instead of CXkeymacsDll.
[xkeymacs/xkeymacs.git] / xkeymacs / mainfrm.h
1 // MainFrm.h : interface of the CMainFrame class\r
2 //\r
3 /////////////////////////////////////////////////////////////////////////////\r
4 \r
5 #if !defined(AFX_MAINFRM_H__CF58719A_1B31_4BC0_8E55_06E0AE5BED2E__INCLUDED_)\r
6 #define AFX_MAINFRM_H__CF58719A_1B31_4BC0_8E55_06E0AE5BED2E__INCLUDED_\r
7 \r
8 #include "OptionsDlg.h" // Added by ClassView\r
9 #if _MSC_VER > 1000\r
10 #pragma once\r
11 #endif // _MSC_VER > 1000\r
12 \r
13 #include "104Keyboard.h"\r
14 #include "109Keyboard.h"\r
15 #include "Properties.h"\r
16 \r
17 enum KEYBOARD_TYPE { UNKNOWN_KEYBOARD, ENGLISH_KEYBOARD, JAPANESE_KEYBOARD, MAX_KEYBOARD_TYPE };\r
18 \r
19 class CMainFrame : public CFrameWnd\r
20 {\r
21         \r
22 protected: // create from serialization only\r
23 public:\r
24         CMainFrame();\r
25 protected:\r
26         DECLARE_DYNCREATE(CMainFrame)\r
27 \r
28 // Attributes\r
29 public:\r
30 \r
31 // Operations\r
32 public:\r
33 \r
34 // Overrides\r
35         // ClassWizard generated virtual function overrides\r
36         //{{AFX_VIRTUAL(CMainFrame)\r
37         public:\r
38         protected:\r
39         virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);\r
40         //}}AFX_VIRTUAL\r
41 \r
42 // Implementation\r
43 public:\r
44         virtual ~CMainFrame();\r
45 #ifdef _DEBUG\r
46         virtual void AssertValid() const;\r
47         virtual void Dump(CDumpContext& dc) const;\r
48 #endif\r
49 \r
50 // Generated message map functions\r
51 protected:\r
52         //{{AFX_MSG(CMainFrame)\r
53         afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);\r
54         afx_msg void OnAbout();\r
55         afx_msg void OnQuit();\r
56         afx_msg void OnDisable();\r
57         afx_msg void OnProperties();\r
58         afx_msg void OnOptions();\r
59         afx_msg void OnKeyboard();\r
60         afx_msg void OnImport();\r
61         afx_msg void OnExport();\r
62         afx_msg void OnReset();\r
63         afx_msg void OnHelpFinder();\r
64         afx_msg void OnKeyboardAnyUser();\r
65         //}}AFX_MSG\r
66         DECLARE_MESSAGE_MAP()\r
67 private:\r
68         BOOL m_bKeyboardDlgExist[MAX_KEYBOARD_TYPE][MAX_HKEY_TYPE];\r
69         int m_nResultKeyboardDlg[MAX_KEYBOARD_TYPE][MAX_HKEY_TYPE];\r
70         C109Keyboard *m_p109KeyboardDlg[MAX_HKEY_TYPE];\r
71         C104Keyboard *m_p104KeyboardDlg[MAX_HKEY_TYPE];\r
72         void PopUpKeyboardDialog(HKEY_TYPE hkeyType);\r
73         void SetForegroundTheDialog(CDialog *pDialog);\r
74         void CloseDialog(CDialog *pDialog, int *pnResult);\r
75         void SetForegroundSomeDialog();\r
76         void PopUpOptionsDialog();\r
77         void PopUpDialog(CDialog *pDialog, int *pnDialogExist, BOOL *pbDialogExist);\r
78         void PopUpAboutDialog();\r
79         void PopUpPropertiesDialog();\r
80         void ShowRightMenu(ICON_TYPE icon);\r
81         BOOL m_bPropertiesDlgExist;\r
82         BOOL m_bOptionsDlgExist;\r
83         BOOL m_bAboutDlgExist;\r
84         COptionsDlg *m_pOptionsDlg;\r
85         int m_nResultOptionsDlg;\r
86         CAboutDlg *m_pAboutDlg;\r
87         int     m_nResultAboutDlg;\r
88         int m_nResultPropertiesDlg;\r
89         CProperties *m_pPropertiesDlg;\r
90         // notify icons\r
91         BOOL m_bIcon[MAX_ICON_TYPE];\r
92         HICON m_hIcon[MAX_ICON_TYPE][MAX_STATUS];\r
93         DWORD m_dwOldMessage[MAX_ICON_TYPE];\r
94         NOTIFYICONDATA m_stNtfyIcon[MAX_ICON_TYPE];\r
95         NOTIFYICONDATA m_stOldNtfyIcon[MAX_ICON_TYPE];\r
96         void AddShell_NotifyIcon(ICON_TYPE icon);\r
97         void DeleteShell_NotifyIcon(ICON_TYPE icon);\r
98         BOOL DoShell_NotifyIcon(ICON_TYPE icon, DWORD dwMessage);\r
99         void DeleteAllShell_NotifyIcon();\r
100         void AddAllShell_NotifyIcon();\r
101         BOOL m_bPollIconMessage;\r
102         HANDLE m_hThread;\r
103         void StartPollThread();\r
104         void TerminatePollThread();\r
105         static DWORD WINAPI PollIconMessage(LPVOID lpParam);\r
106 public:\r
107         void EnableShell_NotifyIcon(ICON_TYPE icon, BOOL bEnable);\r
108 };\r
109 \r
110 /////////////////////////////////////////////////////////////////////////////\r
111 \r
112 //{{AFX_INSERT_LOCATION}}\r
113 // Microsoft Visual C++ will insert additional declarations immediately before the previous line.\r
114 \r
115 #endif // !defined(AFX_MAINFRM_H__CF58719A_1B31_4BC0_8E55_06E0AE5BED2E__INCLUDED_)\r