1 #if defined(PLATFORM_PKTPC) || defined(PLATFORM_WM5)
\r
5 #include <commctrl.h>
\r
6 #include <aygshell.h>
\r
9 #include "resource.h"
\r
10 #include "Message.h"
\r
11 #include "PlatformLayer.h"
\r
12 #include "PocketPCPlatform.h"
\r
13 #include "SipControl.h"
\r
14 #include "Property.h"
\r
16 ///////////////////////////////////////////////////////
\r
17 // Menu label definitions
\r
18 ///////////////////////////////////////////////////////
\r
20 static MenuMsgRes aMSMemoMenu[] = {
\r
21 { 0, IDM_NEWFOLDER, 0, MSG_ID_MENUITEM_MAIN_NEWFOLDER },
\r
22 { 1, IDM_CUT, 0, MSG_ID_MENUITEM_MAIN_CUT },
\r
23 { 2, IDM_COPY, 0, MSG_ID_MENUITEM_MAIN_COPY },
\r
24 { 3, IDM_PASTE, 0, MSG_ID_MENUITEM_MAIN_PASTE },
\r
26 { 5, IDM_RENAME, 0, MSG_ID_MENUITEM_MAIN_RENAME },
\r
27 { 6, IDM_DELETEITEM, 0, MSG_ID_MENUITEM_MAIN_DELETE },
\r
29 { 8, IDM_SEARCH, 0, MSG_ID_MENUITEM_MAIN_FIND },
\r
30 { 9, IDM_SEARCH_NEXT, 0, MSG_ID_MENUITEM_MAIN_FIND_NEXT },
\r
31 { 10, IDM_SEARCH_PREV, 0, MSG_ID_MENUITEM_MAIN_FIND_PREV },
\r
33 { 12, IDM_GREP, 0, MSG_ID_MENUITEM_MAIN_QUICKFILTER },
\r
34 // 13 is used by default separator
\r
35 { 14, IDM_ENCRYPT, 0, MSG_ID_MENUITEM_MAIN_ENCRYPT },
\r
36 { 15, IDM_DECRYPT, 0, MSG_ID_MENUITEM_MAIN_DECRYPT },
\r
39 static MenuMsgRes aMSToolMenu[] = {
\r
40 { 0, IDM_EXIT, 0, MSG_ID_MENUITEM_TOOL_EXIT },
\r
42 { 2, IDM_ABOUT, 0, MSG_ID_MENUITEM_TOOL_ABOUT },
\r
43 { 3, IDM_PROPERTY, 0, MSG_ID_MENUITEM_TOOL_PROPERTY},
\r
44 { 4, IDM_VFOLDER_DEF, 0, MSG_ID_MENUITEM_TOOL_VFOLDER_DEF},
\r
45 { 5, IDM_FORGETPASS, 0, MSG_ID_MENUITEM_TOOL_FORGETPASS},
\r
48 static MenuMsgRes aMSBookmarkMenu[] = {
\r
49 { 0, IDM_BOOKMARK_ADD, 0, MSG_ID_MENUITEM_B_ADDBM },
\r
50 { 1, IDM_BOOKMARK_CONFIG, 0, MSG_ID_MENUITEM_B_EDITBM },
\r
55 static MenuMsgRes aMDEditMenu[] = {
\r
56 { 0, IDM_CUT, 0, MSG_ID_MENUITEM_MAIN_CUT },
\r
57 { 1, IDM_COPY, 0, MSG_ID_MENUITEM_MAIN_COPY },
\r
58 { 2, IDM_PASTE, 0, MSG_ID_MENUITEM_MAIN_PASTE },
\r
60 { 4, IDM_SELALL, 0, MSG_ID_MENUITEM_DETAILS_SELALL },
\r
62 { 6, IDM_SEARCH, 0, MSG_ID_MENUITEM_MAIN_FIND },
\r
63 { 7, IDM_SEARCH_NEXT, 0, MSG_ID_MENUITEM_MAIN_FIND_NEXT },
\r
64 { 8, IDM_SEARCH_PREV, 0, MSG_ID_MENUITEM_MAIN_FIND_PREV },
\r
67 static MenuMsgRes aMDToolMenu[] = {
\r
68 { 0, IDM_DETAILS_HSCROLL, MF_CHECKED, MSG_ID_MENUITEM_TOOL_WRAP },
\r
70 { 2, IDM_ABOUT, 0, MSG_ID_MENUITEM_TOOL_ABOUT },
\r
71 { 3, IDM_EXIT, 0, MSG_ID_MENUITEM_TOOL_EXIT },
\r
74 ///////////////////////////////////////////////////////
\r
75 // Toolbar definitions
\r
76 ///////////////////////////////////////////////////////
\r
78 #define NUM_TOOLBAR_BMP 12
\r
80 #define NUM_MS_TOOLTIP 1
\r
81 LPTSTR pMSToolTip[] = {
\r
82 NULL, // MSG_TOOLTIPS_NEWMEMO,
\r
85 #define NUM_MD_TOOLTIP 6
\r
86 LPTSTR pMDToolTip[] = {
\r
87 NULL, // MSG_TOOLTIPS_RETURNLIST,
\r
88 NULL, //MSG_TOOLTIPS_SAVE,
\r
91 NULL, // MSG_TOOLTIPS_INSDATE1,
\r
92 NULL, // MSG_TOOLTIPS_INSDATE2,
\r
95 ///////////////////////////////////////////////////////
\r
97 ///////////////////////////////////////////////////////
\r
99 void PocketPCPlatform::Create(HWND hWnd, HINSTANCE hInst)
\r
101 // menubar for Tree view
\r
103 memset(&mbi, 0, sizeof(SHMENUBARINFO));
\r
104 mbi.cbSize = sizeof(SHMENUBARINFO);
\r
105 mbi.hwndParent = hWnd;
\r
106 mbi.nToolBarId = IDM_MAIN_MENU;
\r
107 mbi.hInstRes =hInst;
\r
108 #if defined(FOR_VGA)
\r
109 mbi.nBmpId = IDB_TOOLBAR_LARGE;
\r
111 mbi.nBmpId = IDB_TOOLBAR;
\r
113 mbi.cBmpImages = NUM_TOOLBAR_BMP;
\r
114 if (!SHCreateMenuBar(&mbi)) {
\r
115 MessageBox(hWnd, TEXT("SHCreateMenuBar failed."), TEXT("DEBUG"), MB_OK);
\r
117 hMSCmdBar = mbi.hwndMB;
\r
120 memset(&tbi, 0, sizeof(&tbi));
\r
121 tbi.cbSize = sizeof(tbi);
\r
122 tbi.dwMask = TBIF_TEXT;
\r
124 tbi.pszText = (LPTSTR)MSG_MENU_NOTE;
\r
125 tbi.cchText = _tcslen(MSG_MENU_NOTE);
\r
126 SendMessage(hMSCmdBar, TB_SETBUTTONINFO, (WPARAM)(INT)IDM_EDIT_MEMO, (LPARAM)&tbi);
\r
128 tbi.pszText = (LPTSTR)MSG_MENU_TOOL;
\r
129 tbi.cchText = _tcslen(MSG_MENU_TOOL);
\r
130 SendMessage(hMSCmdBar, TB_SETBUTTONINFO, (WPARAM)(INT)IDM_MENUITEM3, (LPARAM)&tbi);
\r
132 pMSToolTip[0] = (LPTSTR)MSG_TOOLTIPS_NEWMEMO;
\r
133 SendMessage(hMSCmdBar, TB_SETTOOLTIPS, (WPARAM)NUM_MS_TOOLTIP, (LPARAM)pMSToolTip);
\r
135 //////////////////////////
\r
136 // create menu items
\r
138 // hMenu is not created when default menu item is empty, leave only one separator.
\r
139 OverrideMenuTitle(SHGetSubMenu(hMSCmdBar, IDM_EDIT_MEMO), aMSMemoMenu, sizeof(aMSMemoMenu) / sizeof(MenuMsgRes));
\r
140 OverrideMenuTitle(SHGetSubMenu(hMSCmdBar, IDM_MENUITEM3), aMSToolMenu, sizeof(aMSToolMenu) / sizeof(MenuMsgRes));
\r
141 OverrideMenuTitle(SHGetSubMenu(hMSCmdBar, IDM_MS_BOOKMARK), aMSBookmarkMenu, sizeof(aMSBookmarkMenu) / sizeof(MenuMsgRes));
\r
143 ////////////////////--
\r
145 // menubar for edit view
\r
146 memset(&mbi, 0, sizeof(SHMENUBARINFO));
\r
147 mbi.cbSize = sizeof(SHMENUBARINFO);
\r
148 mbi.hwndParent = hWnd;
\r
149 mbi.nToolBarId = IDM_DETAILS_MENU;
\r
150 mbi.hInstRes =hInst;
\r
151 #if defined(FOR_VGA)
\r
152 mbi.nBmpId = IDB_TOOLBAR_LARGE;
\r
154 mbi.nBmpId = IDB_TOOLBAR;
\r
156 mbi.cBmpImages = NUM_TOOLBAR_BMP;
\r
157 if (!SHCreateMenuBar(&mbi)) {
\r
158 MessageBox(hWnd, TEXT("SHCreateMenuBar failed."), TEXT("DEBUG"), MB_OK);
\r
160 hMDCmdBar = mbi.hwndMB;
\r
162 pMDToolTip[0] = (LPTSTR)MSG_TOOLTIPS_RETURNLIST;
\r
163 pMDToolTip[1] = (LPTSTR)MSG_TOOLTIPS_SAVE;
\r
164 pMDToolTip[4] = (LPTSTR)MSG_TOOLTIPS_INSDATE1;
\r
165 pMDToolTip[5] = (LPTSTR)MSG_TOOLTIPS_INSDATE2;
\r
166 SendMessage(hMDCmdBar, TB_SETTOOLTIPS, (WPARAM)NUM_MD_TOOLTIP, (LPARAM)pMDToolTip);
\r
168 OverrideMenuTitle(SHGetSubMenu(hMDCmdBar, IDM_EDIT_MEMO), aMDEditMenu, sizeof(aMDEditMenu) / sizeof(MenuMsgRes));
\r
169 OverrideMenuTitle(SHGetSubMenu(hMDCmdBar, IDM_DETAILS_TOOL), aMDToolMenu, sizeof(aMDToolMenu) / sizeof(MenuMsgRes));
\r
171 ShowWindow(hMDCmdBar, SW_HIDE);
\r
174 HMENU PocketPCPlatform::GetMDToolMenu() { return SHGetSubMenu(hMDCmdBar, IDM_DETAILS_TOOL); }
\r
175 HMENU PocketPCPlatform::GetMSEditMenu() { return SHGetSubMenu(hMSCmdBar, IDM_EDIT_MEMO); }
\r
176 HMENU PocketPCPlatform::GetMSBookMarkMenu() { return SHGetSubMenu(hMSCmdBar, IDM_MS_BOOKMARK); }
\r
178 void PocketPCPlatform::EnableMenu(UINT uid, BOOL bEnable)
\r
188 case IDM_DELETEITEM:
\r
193 case IDM_NEWFOLDER:
\r
195 hMenu = GetMSEditMenu();
\r
200 hMenu = GetMSEditMenu();
\r
213 EnableMenuItem(hMenu, uid, MF_BYCOMMAND | MF_ENABLED);
\r
215 EnableMenuItem(hMenu, uid, MF_BYCOMMAND | MF_GRAYED);
\r
220 SendMessage(hTB, TB_ENABLEBUTTON, uid, MAKELONG(bEnable, 0));
\r
224 void PocketPCPlatform::CheckMenu(UINT uid, BOOL bCheck)
\r
227 HMENU hMenu = NULL;
\r
230 case IDM_TOGGLEPANE:
\r
235 case IDM_DETAILS_HSCROLL:
\r
237 hMenu = GetMDToolMenu();
\r
244 SendMessage(hTB, TB_CHECKBUTTON, uid, MAKELONG(bCheck, 0));
\r
247 CheckMenuItem(hMenu, uid, MF_BYCOMMAND | (bCheck ? MF_CHECKED : MF_UNCHECKED));
\r
251 void PocketPCPlatform::OpenDetailsView()
\r
253 ShowWindow(hMDCmdBar, SW_SHOW);
\r
254 ShowWindow(hMSCmdBar, SW_HIDE);
\r
257 memset(&tbi, 0, sizeof(&tbi));
\r
258 tbi.cbSize = sizeof(tbi);
\r
259 tbi.dwMask = TBIF_TEXT;
\r
261 tbi.pszText = (LPTSTR)MSG_MENU_TOOL;
\r
262 tbi.cchText = _tcslen(MSG_MENU_TOOL);
\r
263 SendMessage(hMDCmdBar, TB_SETBUTTONINFO, (WPARAM)(INT)IDM_DETAILS_TOOL, (LPARAM)&tbi);
\r
265 tbi.pszText = (LPTSTR)MSG_MENU_EDIT;
\r
266 tbi.cchText = _tcslen(MSG_MENU_EDIT);
\r
267 SendMessage(hMDCmdBar, TB_SETBUTTONINFO, (WPARAM)(INT)IDM_EDIT_MEMO, (LPARAM)&tbi);
\r
271 void PocketPCPlatform::CloseDetailsView()
\r
273 ShowWindow(hMDCmdBar, SW_HIDE);
\r
274 ShowWindow(hMSCmdBar, SW_SHOW);
\r
277 void PocketPCPlatform::EnableSearchNext()
\r
279 SendMessage(hMSCmdBar, TB_SETSTATE, IDM_SEARCH_PREV, MAKELONG(TBSTATE_ENABLED, 0));
\r
280 SendMessage(hMSCmdBar, TB_SETSTATE, IDM_SEARCH_NEXT, MAKELONG(TBSTATE_ENABLED, 0));
\r
281 SendMessage(hMDCmdBar, TB_SETSTATE, IDM_SEARCH_PREV, MAKELONG(TBSTATE_ENABLED, 0));
\r
282 SendMessage(hMDCmdBar, TB_SETSTATE, IDM_SEARCH_NEXT, MAKELONG(TBSTATE_ENABLED, 0));
\r
285 void PocketPCPlatform::AdjustUserRect(RECT *r)
\r
289 GetWindowRect(hMSCmdBar, &rMenuRect);
\r
290 DWORD nHOffset = rMenuRect.bottom - rMenuRect.top;
\r
292 r->bottom -= nHOffset - 1;
\r
297 if (!sc.Init()) return;
\r
298 if (!sc.GetSipStat(&bStat)) return;
\r
301 RECT rSip = sc.GetRect();
\r
302 DWORD nDelta = g_Property.GetSipSizeDelta();
\r
304 r->bottom -= (rSip.bottom - rSip.top + nDelta);
\r
308 ///////////////////////////////////////////////////////
\r
310 ///////////////////////////////////////////////////////
\r
311 static MenuMsgRes aMSPopupMenu[] = {
\r
312 { 0, IDM_CUT, 0, MSG_ID_MENUITEM_MAIN_CUT },
\r
313 { 1, IDM_COPY, 0, MSG_ID_MENUITEM_MAIN_COPY },
\r
314 { 2, IDM_PASTE, 0, MSG_ID_MENUITEM_MAIN_PASTE },
\r
316 { 4, IDM_DELETEITEM, 0, MSG_ID_MENUITEM_MAIN_DELETE },
\r
317 { 5, IDM_RENAME, 0, MSG_ID_MENUITEM_MAIN_RENAME },
\r
319 { 7, IDM_ENCRYPT, 0, MSG_ID_MENUITEM_MAIN_ENCRYPT },
\r
320 { 8, IDM_DECRYPT, 0, MSG_ID_MENUITEM_MAIN_DECRYPT },
\r
324 HMENU PocketPCPlatform::LoadSelectViewPopupMenu()
\r
326 HMENU hMenu = CreatePopupMenu();
\r
327 OverrideMenuTitle(hMenu, aMSPopupMenu, sizeof(aMSPopupMenu) / sizeof(MenuMsgRes));
\r
331 static MenuMsgRes aMDPopupMenu[] = {
\r
332 { 0, IDM_CUT, 0, MSG_ID_MENUITEM_MAIN_CUT },
\r
333 { 1, IDM_COPY, 0, MSG_ID_MENUITEM_MAIN_COPY },
\r
334 { 2, IDM_PASTE, 0, MSG_ID_MENUITEM_MAIN_PASTE },
\r
336 { 4, IDM_INSDATE1, 0, MSG_ID_TOOLTIPS_INSDATE1 },
\r
337 { 5, IDM_INSDATE2, 0, MSG_ID_TOOLTIPS_INSDATE2 },
\r
340 HMENU PocketPCPlatform::LoadDetailsViewPopupMenu()
\r
342 HMENU hMenu = CreatePopupMenu();
\r
343 OverrideMenuTitle(hMenu, aMDPopupMenu, sizeof(aMDPopupMenu) / sizeof(MenuMsgRes));
\r
347 #endif // PLATFORM_PKTPC