Develop and Download Open Source Software

Browse CVS Repository

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

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


Revision 1.7 - (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.6: +4 -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_BE500)
2 #include <windows.h>
3 #include <commctrl.h>
4 #include <CSO.h>
5
6 #include "resource.h"
7 #include "Message.h"
8 #include "PlatformLayer.h"
9 #include "LagendaPlatform.h"
10 #include "SipControl.h"
11
12 #define NUM_IMG_BUTTONS 0
13
14 #define NUM_SV_CMDBAR_BUTTONS 10
15 CSOBAR_BUTTONINFO aSVCSOBarButtons[NUM_SV_CMDBAR_BUTTONS] =
16 {
17 IDM_SV_MENU_1, CSOBAR_BUTTON_SUBMENU_DOWN, CSO_BUTTON_DISP, (-1), NULL, NULL, NULL, CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
18 IDM_SV_MENU_2, CSOBAR_BUTTON_SUBMENU_DOWN, CSO_BUTTON_DISP, IDB_TOOL, NULL, NULL, NULL, CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
19 0, CSOBAR_SEP, CSO_BUTTON_DISP, (-1), NULL, NULL, NULL, 0, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
20 IDM_SV_MENU_3, CSOBAR_BUTTON_SUBMENU_DOWN, CSO_BUTTON_DISP, IDB_BOOKMARK, NULL, NULL, NULL, CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
21 0, CSOBAR_SEP, CSO_BUTTON_DISP, (-1), NULL, NULL, NULL, 0, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
22 IDM_NEWMEMO, CSOBAR_BUTTON_NORM, CSO_BUTTON_DISP, IDB_NEWMEMO, NULL, NULL, NULL, CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
23 0, CSOBAR_SEP, CSO_BUTTON_DISP, (-1), NULL, NULL, NULL, 0, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
24 // IDM_DELETEITEM, CSOBAR_BUTTON_NORM, CSO_BUTTON_DISP, IDB_DELETE, NULL, NULL, NULL, CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
25 // 0, CSOBAR_SEP, CSO_BUTTON_DISP, (-1), NULL, NULL, NULL, 0, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
26 IDM_SEARCH, CSOBAR_BUTTON_NORM, CSO_BUTTON_DISP, IDB_FIND, NULL, NULL, NULL, CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
27 IDM_SEARCH_PREV,CSOBAR_BUTTON_NORM, CSO_BUTTON_DISP, IDB_FINDPREV, NULL, NULL, NULL, CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
28 IDM_SEARCH_NEXT,CSOBAR_BUTTON_NORM, CSO_BUTTON_DISP, IDB_FINDNEXT, NULL, NULL, NULL, CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
29 };
30
31 #define NUM_DV_CMDBAR_BUTTONS 12
32
33 // Set hInstance on Oncreate if put bitmaps.
34 CSOBAR_BUTTONINFO aDVCSOBarButtons[NUM_DV_CMDBAR_BUTTONS] =
35 {
36 IDM_RETURNLIST, CSOBAR_COMMON_BUTTON, CSO_BUTTON_DISP, (-1), NULL, NULL, NULL, CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), CSO_ID_BACK, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
37 0, CSOBAR_SEP, CSO_BUTTON_DISP, (-1), NULL, NULL, NULL, 0, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
38 IDM_DV_MENU_1, CSOBAR_BUTTON_SUBMENU_DOWN, CSO_BUTTON_DISP, (-1), NULL, NULL, NULL, CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
39 0, CSOBAR_SEP, CSO_BUTTON_DISP, (-1), NULL, NULL, NULL, 0, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
40 IDM_SAVE, CSOBAR_BUTTON_NORM, CSO_BUTTON_DISP, IDB_SAVE, NULL, NULL, NULL, CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
41 0, CSOBAR_SEP, CSO_BUTTON_DISP, (-1), NULL, NULL, NULL, 0, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
42 IDM_CUT, CSOBAR_BUTTON_NORM, CSO_BUTTON_DISP, IDB_CUT, NULL, NULL, NULL, CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
43 IDM_COPY, CSOBAR_BUTTON_NORM, CSO_BUTTON_DISP, IDB_COPY, NULL, NULL, NULL, CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
44 IDM_PASTE, CSOBAR_BUTTON_NORM, CSO_BUTTON_DISP, IDB_PASTE, NULL, NULL, NULL, CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
45 0, CSOBAR_SEP, CSO_BUTTON_DISP, (-1), NULL, NULL, NULL, 0, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
46 IDM_INSDATE1, CSOBAR_BUTTON_NORM, CSO_BUTTON_DISP, IDB_INSDATE1, NULL, NULL, NULL, CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
47 IDM_INSDATE2, CSOBAR_BUTTON_NORM, CSO_BUTTON_DISP, IDB_INSDATE2, NULL, NULL, NULL, CSOBAR_CODEPOS_CENTER, 1, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
48
49 // IDM_SEARCH_PREV,CSOBAR_BUTTON_NORM, CSO_BUTTON_DISP, IDB_FINDPREV, NULL, NULL, NULL, CSOBAR_CODEPOS_CENTER, 2, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
50 // IDM_SEARCH_NEXT,CSOBAR_BUTTON_NORM, CSO_BUTTON_DISP, IDB_FINDNEXT, NULL, NULL, NULL, CSOBAR_CODEPOS_CENTER, 2, (-1), (-1), (-1), (-1), 0, CLR_INVALID, CLR_INVALID, CLR_INVALID, FALSE, FALSE,
51 };
52
53 static HWND MakeCSOBar(HINSTANCE hInst, HWND hWnd,
54 DWORD nCtlID)
55 {
56 CSOBAR_BASEINFO cb;
57 cb.x = cb.y = cb.width = cb.height = -1;
58 cb.line = 1;
59 cb.backColor = CSOBAR_DEFAULT_BACKCOLOR;
60 cb.titleColor = CSOBAR_DEFAULT_CODECOLOR;
61 cb.titleText = NULL;
62 cb.titleBmpResId = NULL;
63 cb.titleBmpResIns = NULL;
64
65 HWND h;
66 h = CSOBar_Create(hInst, hWnd, nCtlID, cb);
67 CSOBar_AddAdornments(h, hInst, 1, CSOBAR_ADORNMENT_CLOSE, 0);
68 return h;
69 }
70
71 void LagendaPlatform::Create(HWND hWnd, HINSTANCE hInst)
72 {
73 // Tree view
74 hMSCmdBar = MakeCSOBar(hInst, hWnd, ID_CMDBAR_MAIN);
75 // HMENU hMSMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_MENU_MAIN));
76 // hMSMemoMenu = aSVCSOBarButtons[0].SubMenu = GetSubMenu(hMSMenu, 0);
77 // hMSToolMenu = aSVCSOBarButtons[1].SubMenu = GetSubMenu(hMSMenu, 1);
78 // hMSBookMarkMenu = aSVCSOBarButtons[3].SubMenu = GetSubMenu(hMSMenu, 2);
79
80 hMSMemoMenu = aSVCSOBarButtons[0].SubMenu = LagendaPlatform::LoadMSMemoMenu();
81 hMSToolMenu = aSVCSOBarButtons[1].SubMenu = LagendaPlatform::LoadMSToolMenu();
82 hMSBookMarkMenu = aSVCSOBarButtons[3].SubMenu = LagendaPlatform::LoadMSBookmarkMenu();
83
84 aSVCSOBarButtons[0].FaceText = (LPTSTR)MSG_MEMO;
85
86 for (int i = 0; i < NUM_SV_CMDBAR_BUTTONS; i++) {
87 aSVCSOBarButtons[i].reshInst = hInst;
88 }
89 CSOBar_AddButtons(hMSCmdBar, hInst, NUM_SV_CMDBAR_BUTTONS, &aSVCSOBarButtons[0]);
90
91 // Edit view
92 aDVCSOBarButtons[2].FaceText = (LPTSTR)MSG_EDIT;
93
94 hMDCmdBar = MakeCSOBar(hInst, hWnd, ID_CMDBAR_DETAILS);
95 HMENU hMDMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_MENU_DETAILS));
96 // hMDEditMenu = aDVCSOBarButtons[2].SubMenu = GetSubMenu(hMDMenu, 0);
97 hMDEditMenu = aDVCSOBarButtons[2].SubMenu = LagendaPlatform::LoadMDEditMenu();
98 for (i = 0; i < NUM_DV_CMDBAR_BUTTONS; i++) {
99 aDVCSOBarButtons[i].reshInst = hInst;
100 }
101 CSOBar_AddButtons(hMDCmdBar, hInst, NUM_DV_CMDBAR_BUTTONS, &aDVCSOBarButtons[0]);
102
103 CSOBar_Show(hMSCmdBar, TRUE);
104
105 }
106
107 void LagendaPlatform::EnableMenu(UINT uid, BOOL bEnable)
108 {
109 BOOL bMenu = TRUE; HMENU hMenu;
110 BOOL bSBS = FALSE; HWND hSBSWnd;
111
112 switch (uid) {
113 case IDM_DECRYPT:
114 case IDM_ENCRYPT:
115 case IDM_RENAME:
116 case IDM_NEWMEMO:
117 case IDM_CUT:
118 case IDM_COPY:
119 case IDM_PASTE:
120 case IDM_GREP:
121 hMenu = GetMSEditMenu();
122 break;
123 case IDM_NEWFOLDER:
124 hMenu = GetMSToolMenu();
125 break;
126 case IDM_DELETEITEM:
127 hMenu = GetMSEditMenu();
128 hSBSWnd = hMSCmdBar;
129 bSBS = TRUE;
130 break;
131 case IDM_SAVE:
132 bMenu = FALSE;
133 bSBS = TRUE; hSBSWnd = hMDCmdBar;
134 break;
135 default:
136 return;
137 }
138
139 if (bMenu) {
140 if (bEnable) {
141 EnableMenuItem(hMenu, uid, MF_BYCOMMAND | MF_ENABLED);
142 } else {
143 EnableMenuItem(hMenu, uid, MF_BYCOMMAND | MF_GRAYED);
144 }
145 }
146 if (bSBS) {
147 if (bEnable) {
148 CSOBar_SetButtonState(hSBSWnd, TRUE, uid, 1, CSO_BUTTON_DISP);
149 } else {
150 CSOBar_SetButtonState(hSBSWnd, TRUE, uid, 1, CSO_BUTTON_GRAYED);
151 }
152 }
153 }
154
155 void LagendaPlatform::CheckMenu(UINT uid, BOOL bCheck)
156 {
157 HMENU hMenu;
158 BOOL bCBS = FALSE;
159 switch(uid) {
160 case IDM_TOGGLEPANE:
161 bCBS = TRUE;
162 hMenu = hMSToolMenu;
163 break;
164 // case IDM_DETAILS_HSCROLL:
165 // hMenu = hMDToolMenu;
166 // bCBS = TRUE;
167 // break;
168 default:
169 return;
170 }
171
172 if (bCBS) {
173 CheckMenuItem(hMenu, uid, MF_BYCOMMAND | (bCheck ? MF_CHECKED : MF_UNCHECKED));
174 }
175 }
176
177 void LagendaPlatform::OpenDetailsView()
178 {
179 CSOBar_Show(hMSCmdBar, SW_HIDE);
180 CSOBar_Show(hMDCmdBar, SW_SHOW);
181 }
182
183 void LagendaPlatform::CloseDetailsView()
184 {
185 CSOBar_Show(hMDCmdBar, SW_HIDE);
186 CSOBar_Show(hMSCmdBar, SW_SHOW);
187 }
188
189 void LagendaPlatform::AdjustUserRect(RECT *r)
190 {
191 DWORD nHOffset = CSOBar_Height(hMSCmdBar);
192 r->top += nHOffset;
193 r->bottom -= nHOffset;
194
195 // SIP
196 BOOL bStat;
197 SipControl sc;
198 if (!sc.Init()) return;
199 if (!sc.GetSipStat(&bStat)) return;
200
201 if (bStat) {
202 RECT rSip = sc.GetRect();
203 r->bottom -= (rSip.bottom - rSip.top);
204 }
205 }
206
207 ////////////////////////////////////
208 // load menu
209 ////////////////////////////////////
210
211 static MenuMsgRes aMSMemoMenu[] = {
212 { 0, IDM_CUT, 0, MSG_ID_MENUITEM_MAIN_CUT },
213 { 1, IDM_COPY, 0, MSG_ID_MENUITEM_MAIN_COPY },
214 { 2, IDM_PASTE, 0, MSG_ID_MENUITEM_MAIN_PASTE },
215 { 3, -1, 0, 0 },
216 { 4, IDM_NEWMEMO, 0, MSG_ID_TOOLTIPS_NEWMEMO },
217 { 5, IDM_DELETEITEM, 0, MSG_ID_MENUITEM_MAIN_DELETE },
218 { 6, IDM_RENAME, 0, MSG_ID_MENUITEM_MAIN_RENAME },
219 { 7, -1, 0, 0 },
220 { 8, IDM_ENCRYPT, 0, MSG_ID_MENUITEM_MAIN_ENCRYPT },
221 { 9, IDM_DECRYPT, 0, MSG_ID_MENUITEM_MAIN_DECRYPT },
222 { 10, -1, 0, 0 },
223 { 11, IDM_EXTAPP1, 0, MSG_ID_DLG_EXTAPP_LBL_APP1 },
224 { 12, IDM_EXTAPP2, 0, MSG_ID_DLG_EXTAPP_LBL_APP2 },
225 };
226
227 HMENU LagendaPlatform::LoadMSMemoMenu()
228 {
229 HMENU hMenu = CreatePopupMenu();
230 OverrideMenuTitle(hMenu, aMSMemoMenu, sizeof(aMSMemoMenu)/sizeof(MenuMsgRes));
231 return hMenu;
232 }
233
234 static MenuMsgRes aMSToolMenu[] = {
235 { 0, IDM_NEWFOLDER, 0, MSG_ID_MENUITEM_MAIN_NEWFOLDER },
236 { 1, -1, 0, 0 },
237 { 2, IDM_TOGGLEPANE, 0, MSG_ID_MENUITEM_BE_T_TWOPANE },
238 { 3, -1, 0, 0 },
239 { 4, IDM_PROPERTY, 0, MSG_ID_MENUITEM_TOOL_PROPERTY },
240 { 5, IDM_VFOLDER_DEF, 0, MSG_ID_MENUITEM_TOOL_VFOLDER_DEF },
241 { 6, IDM_FORGETPASS, 0, MSG_ID_MENUITEM_TOOL_FORGETPASS },
242 { 7, IDM_ABOUT, 0, MSG_ID_MENUITEM_TOOL_ABOUT },
243 { 8, -1, 0, 0 },
244 { 9, IDM_SEARCH, 0, MSG_ID_MENUITEM_MAIN_FIND },
245 { 10, IDM_SEARCH_NEXT, 0, MSG_ID_MENUITEM_MAIN_FIND_NEXT },
246 { 11, IDM_SEARCH_PREV, 0, MSG_ID_MENUITEM_MAIN_FIND_PREV },
247 { 12, -1, 0, 0 },
248 { 13, IDM_GREP, 0, MSG_ID_MENUITEM_MAIN_QUICKFILTER },
249 };
250
251 HMENU LagendaPlatform::LoadMSToolMenu()
252 {
253 HMENU hMenu = CreatePopupMenu();
254 OverrideMenuTitle(hMenu, aMSToolMenu, sizeof(aMSToolMenu)/sizeof(MenuMsgRes));
255 return hMenu;
256 }
257
258 static MenuMsgRes aMSBookmarkMenu[] = {
259 { 0, IDM_BOOKMARK_ADD, 0, MSG_ID_MENUITEM_W32_B_ADDBM },
260 { 1, IDM_BOOKMARK_CONFIG, 0, MSG_ID_MENUITEM_W32_B_EDITBM },
261 { 2, -1, 0, 0 },
262 };
263
264 HMENU LagendaPlatform::LoadMSBookmarkMenu()
265 {
266 HMENU hMenu = CreatePopupMenu();
267 OverrideMenuTitle(hMenu, aMSBookmarkMenu, sizeof(aMSBookmarkMenu)/sizeof(MenuMsgRes));
268 return hMenu;
269 }
270
271 static MenuMsgRes aMDEditMenu[] = {
272 { 0, IDM_CUT, 0, MSG_ID_MENUITEM_MAIN_CUT },
273 { 1, IDM_COPY, 0, MSG_ID_MENUITEM_MAIN_COPY },
274 { 2, IDM_PASTE, 0, MSG_ID_MENUITEM_MAIN_PASTE },
275 { 3, -1, 0, 0 },
276 { 4, IDM_SELALL, 0, MSG_ID_MENUITEM_DETAILS_SELALL },
277 { 5, -1, 0, 0 },
278 { 6, IDM_SEARCH, 0, MSG_ID_MENUITEM_MAIN_FIND },
279 { 7, IDM_SEARCH_NEXT, 0, MSG_ID_MENUITEM_MAIN_FIND_NEXT },
280 { 8, IDM_SEARCH_PREV, 0, MSG_ID_MENUITEM_MAIN_FIND_PREV },
281 { 9, -1, 0, 0 },
282 { 10, IDM_DETAILS_HSCROLL, MF_CHECKED, MSG_ID_MENUITEM_TOOL_WRAP },
283 { 11, -1, 0, 0 },
284 { 12, IDM_INSDATE1, 0, MSG_ID_TOOLTIPS_INSDATE1 },
285 { 13, IDM_INSDATE2, 0, MSG_ID_TOOLTIPS_INSDATE2 },
286 };
287
288 HMENU LagendaPlatform::LoadMDEditMenu()
289 {
290 HMENU hMenu = CreatePopupMenu();
291 OverrideMenuTitle(hMenu, aMDEditMenu, sizeof(aMDEditMenu)/sizeof(MenuMsgRes));
292 return hMenu;
293 }
294
295
296 #endif // PLATFORM_BE500

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