Develop and Download Open Source Software

Browse CVS Repository

Contents of /tombo/Tombo/Src/PocketPCPlatform.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.12 - (show annotations) (download) (as text)
Wed Sep 6 17:25:10 2006 UTC (17 years, 7 months ago) by hirami
Branch: MAIN
CVS Tags: Tombo_2_0b2, Tombo_2_0b3, Tombo_2_0b1, Tombo_2_0b4, B228, B229, B226, B227, B231, B230, HEAD
Changes since 1.11: +8 -0 lines
File MIME type: text/x-c++src
* disable open note when starting.
- support menubar label's L9N.
- FIX: Menu checking is not worked.(WM5)

1 #if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)
2
3 #include <windows.h>
4 #include <tchar.h>
5 #include <commctrl.h>
6 #include <aygshell.h>
7
8 #include "Tombo.h"
9 #include "resource.h"
10 #include "Message.h"
11 #include "PlatformLayer.h"
12 #include "PocketPCPlatform.h"
13 #include "SipControl.h"
14 #include "Property.h"
15
16 ///////////////////////////////////////////////////////
17 // Menu label definitions
18 ///////////////////////////////////////////////////////
19
20 static MenuMsgRes aMSMemoMenu[] = {
21 { 0, IDM_NEWFOLDER, 0, MSG_ID_MENUITEM_MAIN_NEWFOLDER },
22 { 1, IDM_CUT, 0, MSG_ID_MENUITEM_MAIN_CUT },
23 { 2, IDM_COPY, 0, MSG_ID_MENUITEM_MAIN_COPY },
24 { 3, IDM_PASTE, 0, MSG_ID_MENUITEM_MAIN_PASTE },
25 { 4, -1, 0, 0 },
26 { 5, IDM_RENAME, 0, MSG_ID_MENUITEM_MAIN_RENAME },
27 { 6, IDM_DELETEITEM, 0, MSG_ID_MENUITEM_MAIN_DELETE },
28 { 7, -1, 0, 0 },
29 { 8, IDM_SEARCH, 0, MSG_ID_MENUITEM_MAIN_FIND },
30 { 9, IDM_SEARCH_NEXT, 0, MSG_ID_MENUITEM_MAIN_FIND_NEXT },
31 { 10, IDM_SEARCH_PREV, 0, MSG_ID_MENUITEM_MAIN_FIND_PREV },
32 { 11, -1, 0, 0 },
33 { 12, IDM_GREP, 0, MSG_ID_MENUITEM_MAIN_QUICKFILTER },
34 // 13 is used by default separator
35 { 14, IDM_ENCRYPT, 0, MSG_ID_MENUITEM_MAIN_ENCRYPT },
36 { 15, IDM_DECRYPT, 0, MSG_ID_MENUITEM_MAIN_DECRYPT },
37 };
38
39 static MenuMsgRes aMSToolMenu[] = {
40 { 0, IDM_EXIT, 0, MSG_ID_MENUITEM_TOOL_EXIT },
41 // 1 is not defined
42 { 2, IDM_ABOUT, 0, MSG_ID_MENUITEM_TOOL_ABOUT },
43 { 3, IDM_PROPERTY, 0, MSG_ID_MENUITEM_TOOL_PROPERTY},
44 { 4, IDM_VFOLDER_DEF, 0, MSG_ID_MENUITEM_TOOL_VFOLDER_DEF},
45 { 5, IDM_FORGETPASS, 0, MSG_ID_MENUITEM_TOOL_FORGETPASS},
46 };
47
48 static MenuMsgRes aMSBookmarkMenu[] = {
49 { 0, IDM_BOOKMARK_ADD, 0, MSG_ID_MENUITEM_B_ADDBM },
50 { 1, IDM_BOOKMARK_CONFIG, 0, MSG_ID_MENUITEM_B_EDITBM },
51 // 2 is not defined
52 };
53
54
55 static MenuMsgRes aMDEditMenu[] = {
56 { 0, IDM_CUT, 0, MSG_ID_MENUITEM_MAIN_CUT },
57 { 1, IDM_COPY, 0, MSG_ID_MENUITEM_MAIN_COPY },
58 { 2, IDM_PASTE, 0, MSG_ID_MENUITEM_MAIN_PASTE },
59 { 3, -1, 0, 0 },
60 { 4, IDM_SELALL, 0, MSG_ID_MENUITEM_DETAILS_SELALL },
61 // 5 is not defined
62 { 6, IDM_SEARCH, 0, MSG_ID_MENUITEM_MAIN_FIND },
63 { 7, IDM_SEARCH_NEXT, 0, MSG_ID_MENUITEM_MAIN_FIND_NEXT },
64 { 8, IDM_SEARCH_PREV, 0, MSG_ID_MENUITEM_MAIN_FIND_PREV },
65 };
66
67 static MenuMsgRes aMDToolMenu[] = {
68 { 0, IDM_DETAILS_HSCROLL, MF_CHECKED, MSG_ID_MENUITEM_TOOL_WRAP },
69 // 1 is not defined
70 { 2, IDM_ABOUT, 0, MSG_ID_MENUITEM_TOOL_ABOUT },
71 { 3, IDM_EXIT, 0, MSG_ID_MENUITEM_TOOL_EXIT },
72 };
73
74 ///////////////////////////////////////////////////////
75 // Toolbar definitions
76 ///////////////////////////////////////////////////////
77
78 #define NUM_TOOLBAR_BMP 12
79
80 #define NUM_MS_TOOLTIP 1
81 LPTSTR pMSToolTip[] = {
82 NULL, // MSG_TOOLTIPS_NEWMEMO,
83 };
84
85 #define NUM_MD_TOOLTIP 6
86 LPTSTR pMDToolTip[] = {
87 NULL, // MSG_TOOLTIPS_RETURNLIST,
88 NULL, //MSG_TOOLTIPS_SAVE,
89 TEXT(""),
90 TEXT(""),
91 NULL, // MSG_TOOLTIPS_INSDATE1,
92 NULL, // MSG_TOOLTIPS_INSDATE2,
93 };
94
95 ///////////////////////////////////////////////////////
96 // methods
97 ///////////////////////////////////////////////////////
98
99 void PocketPCPlatform::Create(HWND hWnd, HINSTANCE hInst)
100 {
101 // menubar for Tree view
102 SHMENUBARINFO mbi;
103 memset(&mbi, 0, sizeof(SHMENUBARINFO));
104 mbi.cbSize = sizeof(SHMENUBARINFO);
105 mbi.hwndParent = hWnd;
106 mbi.nToolBarId = IDM_MAIN_MENU;
107 mbi.hInstRes =hInst;
108 #if defined(FOR_VGA)
109 mbi.nBmpId = IDB_TOOLBAR_LARGE;
110 #else
111 mbi.nBmpId = IDB_TOOLBAR;
112 #endif
113 mbi.cBmpImages = NUM_TOOLBAR_BMP;
114 if (!SHCreateMenuBar(&mbi)) {
115 MessageBox(hWnd, TEXT("SHCreateMenuBar failed."), TEXT("DEBUG"), MB_OK);
116 }
117 hMSCmdBar = mbi.hwndMB;
118
119 TBBUTTONINFO tbi;
120 memset(&tbi, 0, sizeof(&tbi));
121 tbi.cbSize = sizeof(tbi);
122 tbi.dwMask = TBIF_TEXT;
123
124 tbi.pszText = (LPTSTR)MSG_MENU_NOTE;
125 tbi.cchText = _tcslen(MSG_MENU_NOTE);
126 SendMessage(hMSCmdBar, TB_SETBUTTONINFO, (WPARAM)(INT)IDM_EDIT_MEMO, (LPARAM)&tbi);
127
128 tbi.pszText = (LPTSTR)MSG_MENU_TOOL;
129 tbi.cchText = _tcslen(MSG_MENU_TOOL);
130 SendMessage(hMSCmdBar, TB_SETBUTTONINFO, (WPARAM)(INT)IDM_MENUITEM3, (LPARAM)&tbi);
131
132 pMSToolTip[0] = (LPTSTR)MSG_TOOLTIPS_NEWMEMO;
133 SendMessage(hMSCmdBar, TB_SETTOOLTIPS, (WPARAM)NUM_MS_TOOLTIP, (LPARAM)pMSToolTip);
134
135 //////////////////////////
136 // create menu items
137
138 // hMenu is not created when default menu item is empty, leave only one separator.
139 OverrideMenuTitle(SHGetSubMenu(hMSCmdBar, IDM_EDIT_MEMO), aMSMemoMenu, sizeof(aMSMemoMenu) / sizeof(MenuMsgRes));
140 OverrideMenuTitle(SHGetSubMenu(hMSCmdBar, IDM_MENUITEM3), aMSToolMenu, sizeof(aMSToolMenu) / sizeof(MenuMsgRes));
141 OverrideMenuTitle(SHGetSubMenu(hMSCmdBar, IDM_MS_BOOKMARK), aMSBookmarkMenu, sizeof(aMSBookmarkMenu) / sizeof(MenuMsgRes));
142
143 ////////////////////--
144
145 // menubar for edit view
146 memset(&mbi, 0, sizeof(SHMENUBARINFO));
147 mbi.cbSize = sizeof(SHMENUBARINFO);
148 mbi.hwndParent = hWnd;
149 mbi.nToolBarId = IDM_DETAILS_MENU;
150 mbi.hInstRes =hInst;
151 #if defined(FOR_VGA)
152 mbi.nBmpId = IDB_TOOLBAR_LARGE;
153 #else
154 mbi.nBmpId = IDB_TOOLBAR;
155 #endif
156 mbi.cBmpImages = NUM_TOOLBAR_BMP;
157 if (!SHCreateMenuBar(&mbi)) {
158 MessageBox(hWnd, TEXT("SHCreateMenuBar failed."), TEXT("DEBUG"), MB_OK);
159 }
160 hMDCmdBar = mbi.hwndMB;
161
162 pMDToolTip[0] = (LPTSTR)MSG_TOOLTIPS_RETURNLIST;
163 pMDToolTip[1] = (LPTSTR)MSG_TOOLTIPS_SAVE;
164 pMDToolTip[4] = (LPTSTR)MSG_TOOLTIPS_INSDATE1;
165 pMDToolTip[5] = (LPTSTR)MSG_TOOLTIPS_INSDATE2;
166 SendMessage(hMDCmdBar, TB_SETTOOLTIPS, (WPARAM)NUM_MD_TOOLTIP, (LPARAM)pMDToolTip);
167
168 OverrideMenuTitle(SHGetSubMenu(hMDCmdBar, IDM_EDIT_MEMO), aMDEditMenu, sizeof(aMDEditMenu) / sizeof(MenuMsgRes));
169 OverrideMenuTitle(SHGetSubMenu(hMDCmdBar, IDM_DETAILS_TOOL), aMDToolMenu, sizeof(aMDToolMenu) / sizeof(MenuMsgRes));
170
171 ShowWindow(hMDCmdBar, SW_HIDE);
172 }
173
174 HMENU PocketPCPlatform::GetMDToolMenu() { return SHGetSubMenu(hMDCmdBar, IDM_DETAILS_TOOL); }
175 HMENU PocketPCPlatform::GetMSEditMenu() { return SHGetSubMenu(hMSCmdBar, IDM_EDIT_MEMO); }
176 HMENU PocketPCPlatform::GetMSBookMarkMenu() { return SHGetSubMenu(hMSCmdBar, IDM_MS_BOOKMARK); }
177
178 void PocketPCPlatform::EnableMenu(UINT uid, BOOL bEnable)
179 {
180 BOOL bSBS = FALSE;
181 BOOL bMenu = TRUE;
182 HWND hTB;
183
184 HMENU hMenu;
185 switch (uid) {
186 case IDM_DECRYPT:
187 case IDM_ENCRYPT:
188 case IDM_DELETEITEM:
189 case IDM_RENAME:
190 case IDM_CUT:
191 case IDM_COPY:
192 case IDM_PASTE:
193 case IDM_NEWFOLDER:
194 case IDM_GREP:
195 hMenu = GetMSEditMenu();
196 break;
197 case IDM_NEWMEMO:
198 bSBS = TRUE;
199 hTB = hMSCmdBar;
200 hMenu = GetMSEditMenu();
201 break;
202 case IDM_SAVE:
203 bMenu = FALSE;
204 bSBS = TRUE;
205 hTB = hMDCmdBar;
206 break;
207 default:
208 return;
209 }
210
211 if (bMenu) {
212 if (bEnable) {
213 EnableMenuItem(hMenu, uid, MF_BYCOMMAND | MF_ENABLED);
214 } else {
215 EnableMenuItem(hMenu, uid, MF_BYCOMMAND | MF_GRAYED);
216 }
217 }
218
219 if (bSBS) {
220 SendMessage(hTB, TB_ENABLEBUTTON, uid, MAKELONG(bEnable, 0));
221 }
222 }
223
224 void PocketPCPlatform::CheckMenu(UINT uid, BOOL bCheck)
225 {
226 HWND hTB;
227 HMENU hMenu = NULL;
228 BOOL bCBS = FALSE;
229 switch(uid) {
230 case IDM_TOGGLEPANE:
231 bCBS = TRUE;
232 hTB = hMSCmdBar;
233 bCheck = !bCheck;
234 break;
235 case IDM_DETAILS_HSCROLL:
236 bCBS = FALSE;
237 hMenu = GetMDToolMenu();
238 break;
239 default:
240 return;
241 }
242
243 if (bCBS) {
244 SendMessage(hTB, TB_CHECKBUTTON, uid, MAKELONG(bCheck, 0));
245 }
246 if (hMenu) {
247 CheckMenuItem(hMenu, uid, MF_BYCOMMAND | (bCheck ? MF_CHECKED : MF_UNCHECKED));
248 }
249 }
250
251 void PocketPCPlatform::OpenDetailsView()
252 {
253 ShowWindow(hMDCmdBar, SW_SHOW);
254 ShowWindow(hMSCmdBar, SW_HIDE);
255
256 TBBUTTONINFO tbi;
257 memset(&tbi, 0, sizeof(&tbi));
258 tbi.cbSize = sizeof(tbi);
259 tbi.dwMask = TBIF_TEXT;
260
261 tbi.pszText = (LPTSTR)MSG_MENU_TOOL;
262 tbi.cchText = _tcslen(MSG_MENU_TOOL);
263 SendMessage(hMDCmdBar, TB_SETBUTTONINFO, (WPARAM)(INT)IDM_DETAILS_TOOL, (LPARAM)&tbi);
264
265 tbi.pszText = (LPTSTR)MSG_MENU_EDIT;
266 tbi.cchText = _tcslen(MSG_MENU_EDIT);
267 SendMessage(hMDCmdBar, TB_SETBUTTONINFO, (WPARAM)(INT)IDM_EDIT_MEMO, (LPARAM)&tbi);
268
269 }
270
271 void PocketPCPlatform::CloseDetailsView()
272 {
273 ShowWindow(hMDCmdBar, SW_HIDE);
274 ShowWindow(hMSCmdBar, SW_SHOW);
275 }
276
277 void PocketPCPlatform::EnableSearchNext()
278 {
279 SendMessage(hMSCmdBar, TB_SETSTATE, IDM_SEARCH_PREV, MAKELONG(TBSTATE_ENABLED, 0));
280 SendMessage(hMSCmdBar, TB_SETSTATE, IDM_SEARCH_NEXT, MAKELONG(TBSTATE_ENABLED, 0));
281 SendMessage(hMDCmdBar, TB_SETSTATE, IDM_SEARCH_PREV, MAKELONG(TBSTATE_ENABLED, 0));
282 SendMessage(hMDCmdBar, TB_SETSTATE, IDM_SEARCH_NEXT, MAKELONG(TBSTATE_ENABLED, 0));
283 }
284
285 void PocketPCPlatform::AdjustUserRect(RECT *r)
286 {
287 // menubar
288 RECT rMenuRect;
289 GetWindowRect(hMSCmdBar, &rMenuRect);
290 DWORD nHOffset = rMenuRect.bottom - rMenuRect.top;
291
292 r->bottom -= nHOffset - 1;
293
294 // SIP
295 BOOL bStat;
296 SipControl sc;
297 if (!sc.Init()) return;
298 if (!sc.GetSipStat(&bStat)) return;
299
300 if (bStat) {
301 RECT rSip = sc.GetRect();
302 DWORD nDelta = g_Property.GetSipSizeDelta();
303
304 r->bottom -= (rSip.bottom - rSip.top + nDelta);
305 }
306 }
307
308 ///////////////////////////////////////////////////////
309 //
310 ///////////////////////////////////////////////////////
311 static MenuMsgRes aMSPopupMenu[] = {
312 { 0, IDM_CUT, 0, MSG_ID_MENUITEM_MAIN_CUT },
313 { 1, IDM_COPY, 0, MSG_ID_MENUITEM_MAIN_COPY },
314 { 2, IDM_PASTE, 0, MSG_ID_MENUITEM_MAIN_PASTE },
315 { 3, -1, 0, 0},
316 { 4, IDM_DELETEITEM, 0, MSG_ID_MENUITEM_MAIN_DELETE },
317 { 5, IDM_RENAME, 0, MSG_ID_MENUITEM_MAIN_RENAME },
318 { 6, -1, 0, 0},
319 { 7, IDM_ENCRYPT, 0, MSG_ID_MENUITEM_MAIN_ENCRYPT },
320 { 8, IDM_DECRYPT, 0, MSG_ID_MENUITEM_MAIN_DECRYPT },
321
322 };
323
324 HMENU PocketPCPlatform::LoadSelectViewPopupMenu()
325 {
326 HMENU hMenu = CreatePopupMenu();
327 OverrideMenuTitle(hMenu, aMSPopupMenu, sizeof(aMSPopupMenu) / sizeof(MenuMsgRes));
328 return hMenu;
329 }
330
331 static MenuMsgRes aMDPopupMenu[] = {
332 { 0, IDM_CUT, 0, MSG_ID_MENUITEM_MAIN_CUT },
333 { 1, IDM_COPY, 0, MSG_ID_MENUITEM_MAIN_COPY },
334 { 2, IDM_PASTE, 0, MSG_ID_MENUITEM_MAIN_PASTE },
335 { 3, -1, 0, 0},
336 { 4, IDM_INSDATE1, 0, MSG_ID_TOOLTIPS_INSDATE1 },
337 { 5, IDM_INSDATE2, 0, MSG_ID_TOOLTIPS_INSDATE2 },
338 };
339
340 HMENU PocketPCPlatform::LoadDetailsViewPopupMenu()
341 {
342 HMENU hMenu = CreatePopupMenu();
343 OverrideMenuTitle(hMenu, aMDPopupMenu, sizeof(aMDPopupMenu) / sizeof(MenuMsgRes));
344 return hMenu;
345 }
346
347 #endif // PLATFORM_PKTPC

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26