Develop and Download Open Source Software

Browse Subversion Repository

Contents of /trunk/teraterm/teraterm/addsetting.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2614 - (show annotations) (download) (as text)
Fri Nov 7 15:48:29 2008 UTC (15 years, 5 months ago) by maya
Original Path: teraterm/trunk/teraterm/addsetting.cpp
File MIME type: text/x-c++src
File size: 41309 byte(s)
no message

1 /*
2 * Additional settings dialog
3 */
4
5 #include <afxwin.h>
6 #include <afxdlgs.h>
7 #include <afxcmn.h>
8 #include <commctrl.h>
9
10 #include "addsetting.h"
11 #include "teraterm.h"
12 #include "tttypes.h"
13 #include "ttwinman.h"
14
15 mouse_cursor_t MouseCursor[] = {
16 {"ARROW", IDC_ARROW},
17 {"IBEAM", IDC_IBEAM},
18 {"CROSS", IDC_CROSS},
19 {"HAND", IDC_HAND},
20 {NULL, NULL},
21 };
22 #define MOUSE_CURSOR_MAX (sizeof(MouseCursor)/sizeof(MouseCursor[0]) - 1)
23
24 // –{‘Ì‚Í vtwin.cpp
25 extern void SetWindowStyle(TTTSet *ts);
26
27 void split_buffer(char *buffer, int delimiter, char **head, char **body)
28 {
29 char *p1, *p2;
30
31 *head = *body = NULL;
32
33 if (!isalnum(*buffer) || (p1 = strchr(buffer, delimiter)) == NULL) {
34 return;
35 }
36
37 *head = buffer;
38
39 p2 = buffer;
40 while (p2 < p1 && !isspace(*p2)) {
41 p2++;
42 }
43
44 *p2 = '\0';
45
46 p1++;
47 while (*p1 && isspace(*p1)) {
48 p1++;
49 }
50
51 *body = p1;
52 }
53
54
55 static void SetupRGBbox(HWND hDlgWnd, int index)
56 {
57 HWND hWnd;
58 BYTE c;
59 char buf[10];
60
61 hWnd = GetDlgItem(hDlgWnd, IDC_COLOR_RED);
62 c = GetRValue(ts.ANSIColor[index]);
63 _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%d", c);
64 SendMessage(hWnd, WM_SETTEXT , 0, (LPARAM)buf);
65
66 hWnd = GetDlgItem(hDlgWnd, IDC_COLOR_GREEN);
67 c = GetGValue(ts.ANSIColor[index]);
68 _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%d", c);
69 SendMessage(hWnd, WM_SETTEXT , 0, (LPARAM)buf);
70
71 hWnd = GetDlgItem(hDlgWnd, IDC_COLOR_BLUE);
72 c = GetBValue(ts.ANSIColor[index]);
73 _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%d", c);
74 SendMessage(hWnd, WM_SETTEXT , 0, (LPARAM)buf);
75 }
76
77
78
79 // CGeneralPropPageDlg ƒ_ƒCƒAƒ�ƒO
80
81 IMPLEMENT_DYNAMIC(CGeneralPropPageDlg, CPropertyPage)
82
83 CGeneralPropPageDlg::CGeneralPropPageDlg()
84 : CPropertyPage(CGeneralPropPageDlg::IDD)
85 {
86 }
87
88 CGeneralPropPageDlg::~CGeneralPropPageDlg()
89 {
90 if (DlgGeneralFont != NULL) {
91 DeleteObject(DlgGeneralFont);
92 }
93 }
94
95 BEGIN_MESSAGE_MAP(CGeneralPropPageDlg, CPropertyPage)
96 END_MESSAGE_MAP()
97
98 // CGeneralPropPageDlg ƒ�ƒbƒZ�[ƒW ƒnƒ“ƒhƒ‰
99
100 BOOL CGeneralPropPageDlg::OnInitDialog()
101 {
102 char uimsg[MAX_UIMSG];
103 char buf[64];
104 CButton *btn;
105 CComboBox *cmb;
106
107 CPropertyPage::OnInitDialog();
108
109 font = (HFONT)SendMessage(WM_GETFONT, 0, 0);
110 GetObject(font, sizeof(LOGFONT), &logfont);
111 if (get_lang_font("DLG_TAHOMA_FONT", GetSafeHwnd(), &logfont, &DlgGeneralFont, ts.UILanguageFile)) {
112 SendDlgItemMessage(IDC_CLICKABLE_URL, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0));
113 SendDlgItemMessage(IDC_DELIMITER, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0));
114 SendDlgItemMessage(IDC_DELIM_LIST, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0));
115 SendDlgItemMessage(IDC_DISABLE_SENDBREAK, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0));
116 SendDlgItemMessage(IDC_ACCEPT_BROADCAST, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0)); // 337: 2007/03/20
117 SendDlgItemMessage(IDC_MOUSEWHEEL_SCROLL_LINE, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0));
118 SendDlgItemMessage(IDC_SCROLL_LINE, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0));
119 SendDlgItemMessage(IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0));
120 SendDlgItemMessage(IDC_ACCEPT_MOUSE_EVENT_TRACKING, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0));
121 SendDlgItemMessage(IDC_ACCEPT_TITLE_CHANGING_LABEL, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0));
122 SendDlgItemMessage(IDC_ACCEPT_TITLE_CHANGING, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0));
123 }
124 else {
125 DlgGeneralFont = NULL;
126 }
127
128 GetDlgItemText(IDC_CLICKABLE_URL, uimsg, sizeof(uimsg));
129 get_lang_msg("DLG_TAB_GENERAL_CLICKURL", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
130 SetDlgItemText(IDC_CLICKABLE_URL, ts.UIMsg);
131 GetDlgItemText(IDC_DELIMITER, uimsg, sizeof(uimsg));
132 get_lang_msg("DLG_TAB_GENERAL_DELIMITER", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
133 SetDlgItemText(IDC_DELIMITER, ts.UIMsg);
134 GetDlgItemText(IDC_DISABLE_SENDBREAK, uimsg, sizeof(uimsg));
135 get_lang_msg("DLG_TAB_GENERAL_DISABLESENDBREAK", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
136 SetDlgItemText(IDC_DISABLE_SENDBREAK, ts.UIMsg);
137 GetDlgItemText(IDC_ACCEPT_BROADCAST, uimsg, sizeof(uimsg));
138 get_lang_msg("DLG_TAB_GENERAL_ACCEPTBROADCAST", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
139 SetDlgItemText(IDC_ACCEPT_BROADCAST, ts.UIMsg);
140 GetDlgItemText(IDC_MOUSEWHEEL_SCROLL_LINE, uimsg, sizeof(uimsg));
141 get_lang_msg("DLG_TAB_GENERAL_MOUSEWHEEL_SCROLL_LINE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
142 SetDlgItemText(IDC_MOUSEWHEEL_SCROLL_LINE, ts.UIMsg);
143 GetDlgItemText(IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE, uimsg, sizeof(uimsg));
144 get_lang_msg("DLG_TAB_GENERAL_AUTOSCROLL_ONLY_IN_BOTTOM_LINE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
145 SetDlgItemText(IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE, ts.UIMsg);
146 GetDlgItemText(IDC_ACCEPT_MOUSE_EVENT_TRACKING, uimsg, sizeof(uimsg));
147 get_lang_msg("DLG_TAB_GENERAL_ACCEPT_MOUSE_EVENT_TRACKING", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
148 SetDlgItemText(IDC_ACCEPT_MOUSE_EVENT_TRACKING, ts.UIMsg);
149 GetDlgItemText(IDC_ACCEPT_TITLE_CHANGING_LABEL, uimsg, sizeof(uimsg));
150 get_lang_msg("DLG_TAB_GENERAL_ACCEPT_TITLE_CHANGING", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
151 SetDlgItemText(IDC_ACCEPT_TITLE_CHANGING_LABEL, ts.UIMsg);
152
153 get_lang_msg("DLG_TAB_GENERAL_ACCEPT_TITLE_CHANGING_OFF", ts.UIMsg, sizeof(ts.UIMsg), "off", ts.UILanguageFile);
154 SendDlgItemMessage(IDC_ACCEPT_TITLE_CHANGING, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg);
155 get_lang_msg("DLG_TAB_GENERAL_ACCEPT_TITLE_CHANGING_OVERWRITE", ts.UIMsg, sizeof(ts.UIMsg), "overwrite", ts.UILanguageFile);
156 SendDlgItemMessage(IDC_ACCEPT_TITLE_CHANGING, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg);
157 get_lang_msg("DLG_TAB_GENERAL_ACCEPT_TITLE_CHANGING_AHEAD", ts.UIMsg, sizeof(ts.UIMsg), "ahead", ts.UILanguageFile);
158 SendDlgItemMessage(IDC_ACCEPT_TITLE_CHANGING, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg);
159 get_lang_msg("DLG_TAB_GENERAL_ACCEPT_TITLE_CHANGING_LAST", ts.UIMsg, sizeof(ts.UIMsg), "last", ts.UILanguageFile);
160 SendDlgItemMessage(IDC_ACCEPT_TITLE_CHANGING, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg);
161
162
163 // (1)DisableAcceleratorSendBreak
164 btn = (CButton *)GetDlgItem(IDC_DISABLE_SENDBREAK);
165 btn->SetCheck(ts.DisableAcceleratorSendBreak);
166
167 // (2)EnableClickableUrl
168 btn = (CButton *)GetDlgItem(IDC_CLICKABLE_URL);
169 btn->SetCheck(ts.EnableClickableUrl);
170
171 // (3)delimiter characters
172 SetDlgItemText(IDC_DELIM_LIST, ts.DelimList);
173
174 // (4)AcceptBroadcast 337: 2007/03/20
175 btn = (CButton *)GetDlgItem(IDC_ACCEPT_BROADCAST);
176 btn->SetCheck(ts.AcceptBroadcast);
177
178 // (5)IDC_MOUSEWHEEL_SCROLL_LINE
179 _snprintf_s(buf, sizeof(buf), "%d", ts.MouseWheelScrollLine);
180 SetDlgItemText(IDC_SCROLL_LINE, buf);
181
182 // (6)IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE
183 btn = (CButton *)GetDlgItem(IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE);
184 btn->SetCheck(ts.AutoScrollOnlyInBottomLine);
185
186 // (7)IDC_ACCEPT_MOUSE_EVENT_TRACKING
187 btn = (CButton *)GetDlgItem(IDC_ACCEPT_MOUSE_EVENT_TRACKING);
188 btn->SetCheck(ts.MouseEventTracking);
189
190 // (8)IDC_ACCEPT_TITLE_CHANGING
191 cmb = (CComboBox *)GetDlgItem(IDC_ACCEPT_TITLE_CHANGING);
192 cmb->SetCurSel(ts.AcceptTitleChangeRequest);
193
194 // ƒ_ƒCƒAƒ�ƒO‚ɃtƒH�[ƒJƒX‚ð“–‚Ä‚é (2004.12.7 yutaka)
195 ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_CLICKABLE_URL));
196
197 return FALSE;
198 }
199
200 BOOL CGeneralPropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam)
201 {
202 return CPropertyPage::OnCommand(wParam, lParam);
203 }
204
205 void CGeneralPropPageDlg::OnOK()
206 {
207 CButton *btn;
208 CComboBox *cmb;
209 char buf[64];
210 int val;
211
212 // (1)
213 btn = (CButton *)GetDlgItem(IDC_DISABLE_SENDBREAK);
214 ts.DisableAcceleratorSendBreak = btn->GetCheck();
215
216 // (2)
217 btn = (CButton *)GetDlgItem(IDC_CLICKABLE_URL);
218 ts.EnableClickableUrl = btn->GetCheck();
219
220 // (3)
221 GetDlgItemText(IDC_DELIM_LIST, ts.DelimList, sizeof(ts.DelimList));
222
223 // (4) 337: 2007/03/20
224 btn = (CButton *)GetDlgItem(IDC_ACCEPT_BROADCAST);
225 ts.AcceptBroadcast = btn->GetCheck();
226
227 // (5)IDC_MOUSEWHEEL_SCROLL_LINE
228 GetDlgItemText(IDC_SCROLL_LINE, buf, sizeof(buf));
229 val = atoi(buf);
230 if (val > 0)
231 ts.MouseWheelScrollLine = val;
232
233 // (6)IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE
234 btn = (CButton *)GetDlgItem(IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE);
235 ts.AutoScrollOnlyInBottomLine = btn->GetCheck();
236
237 // (7)IDC_ACCEPT_MOUSE_EVENT_TRACKING
238 btn = (CButton *)GetDlgItem(IDC_ACCEPT_MOUSE_EVENT_TRACKING);
239 ts.MouseEventTracking = btn->GetCheck();
240
241 // (8)IDC_ACCEPT_TITLE_CHANGING
242 cmb = (CComboBox *)GetDlgItem(IDC_ACCEPT_TITLE_CHANGING);
243 ts.AcceptTitleChangeRequest = cmb->GetCurSel();
244 }
245
246
247
248 // CCopypastePropPageDlg ƒ_ƒCƒAƒ�ƒO
249
250 IMPLEMENT_DYNAMIC(CCopypastePropPageDlg, CPropertyPage)
251
252 CCopypastePropPageDlg::CCopypastePropPageDlg()
253 : CPropertyPage(CCopypastePropPageDlg::IDD)
254 {
255 }
256
257 CCopypastePropPageDlg::~CCopypastePropPageDlg()
258 {
259 if (DlgCopypasteFont != NULL) {
260 DeleteObject(DlgCopypasteFont);
261 }
262 }
263
264 BEGIN_MESSAGE_MAP(CCopypastePropPageDlg, CPropertyPage)
265 END_MESSAGE_MAP()
266
267 // CCopypastePropPageDlg ƒ�ƒbƒZ�[ƒW ƒnƒ“ƒhƒ‰
268
269 BOOL CCopypastePropPageDlg::OnInitDialog()
270 {
271 char uimsg[MAX_UIMSG];
272 CButton *btn, *btn2;
273
274 CPropertyPage::OnInitDialog();
275
276 font = (HFONT)SendMessage(WM_GETFONT, 0, 0);
277 GetObject(font, sizeof(LOGFONT), &logfont);
278 if (get_lang_font("DLG_TAHOMA_FONT", GetSafeHwnd(), &logfont, &DlgCopypasteFont, ts.UILanguageFile)) {
279 SendDlgItemMessage(IDC_LINECOPY, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0));
280 SendDlgItemMessage(IDC_DISABLE_PASTE_RBUTTON, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0));
281 SendDlgItemMessage(IDC_CONFIRM_PASTE_RBUTTON, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0));
282 SendDlgItemMessage(IDC_SELECT_LBUTTON, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0));
283 SendDlgItemMessage(IDC_CONFIRM_CHANGE_PASTE, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0));
284 }
285 else {
286 DlgCopypasteFont = NULL;
287 }
288
289 GetDlgItemText(IDC_LINECOPY, uimsg, sizeof(uimsg));
290 get_lang_msg("DLG_TAB_COPYPASTE_CONTINUE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
291 SetDlgItemText(IDC_LINECOPY, ts.UIMsg);
292 GetDlgItemText(IDC_DISABLE_PASTE_RBUTTON, uimsg, sizeof(uimsg));
293 get_lang_msg("DLG_TAB_COPYPASTE_MOUSEPASTE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
294 SetDlgItemText(IDC_DISABLE_PASTE_RBUTTON, ts.UIMsg);
295 GetDlgItemText(IDC_CONFIRM_PASTE_RBUTTON, uimsg, sizeof(uimsg));
296 get_lang_msg("DLG_TAB_COPYPASTE_CONFIRMPASTE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
297 SetDlgItemText(IDC_CONFIRM_PASTE_RBUTTON, ts.UIMsg);
298 GetDlgItemText(IDC_SELECT_LBUTTON, uimsg, sizeof(uimsg));
299 get_lang_msg("DLG_TAB_COPYPASTE_SELECTLBUTTON", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
300 SetDlgItemText(IDC_SELECT_LBUTTON, ts.UIMsg);
301 GetDlgItemText(IDC_CONFIRM_CHANGE_PASTE, uimsg, sizeof(uimsg));
302 get_lang_msg("DLG_TAB_COPYPASTE_CONFIRM_CHANGE_PASTE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
303 SetDlgItemText(IDC_CONFIRM_CHANGE_PASTE, ts.UIMsg);
304
305 // (1)Enable continued-line copy
306 btn = (CButton *)GetDlgItem(IDC_LINECOPY);
307 btn->SetCheck(ts.EnableContinuedLineCopy);
308
309 // (2)DisablePasteMouseRButton
310 btn = (CButton *)GetDlgItem(IDC_DISABLE_PASTE_RBUTTON);
311 btn2 = (CButton *)GetDlgItem(IDC_CONFIRM_PASTE_RBUTTON);
312 btn->SetCheck(ts.DisablePasteMouseRButton);
313 if (ts.DisablePasteMouseRButton) {
314 btn2->EnableWindow(FALSE);
315 } else {
316 btn2->EnableWindow(TRUE);
317 }
318
319 // (3)ConfirmPasteMouseRButton
320 btn2->SetCheck(ts.ConfirmPasteMouseRButton);
321
322 // (4)SelectOnlyByLButton
323 btn = (CButton *)GetDlgItem(IDC_SELECT_LBUTTON);
324 btn->SetCheck(ts.SelectOnlyByLButton);
325
326 // (5)ConfirmChangePaste
327 btn = (CButton *)GetDlgItem(IDC_CONFIRM_CHANGE_PASTE);
328 btn->SetCheck(ts.ConfirmChangePaste);
329
330 // ƒ_ƒCƒAƒ�ƒO‚ɃtƒH�[ƒJƒX‚ð“–‚Ä‚é
331 ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_LINECOPY));
332
333 return FALSE;
334 }
335
336 BOOL CCopypastePropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam)
337 {
338 CButton *btn, *btn2;
339
340 switch (wParam) {
341 case IDC_DISABLE_PASTE_RBUTTON | (BN_CLICKED << 16):
342 btn = (CButton *)GetDlgItem(IDC_DISABLE_PASTE_RBUTTON);
343 btn2 = (CButton *)GetDlgItem(IDC_CONFIRM_PASTE_RBUTTON);
344 if (btn->GetCheck()) {
345 btn2->EnableWindow(FALSE);
346 } else {
347 btn2->EnableWindow(TRUE);
348 }
349 return TRUE;
350 }
351
352 return CPropertyPage::OnCommand(wParam, lParam);
353 }
354
355 void CCopypastePropPageDlg::OnOK()
356 {
357 CButton *btn;
358
359 // (1)
360 btn = (CButton *)GetDlgItem(IDC_LINECOPY);
361 ts.EnableContinuedLineCopy = btn->GetCheck();
362
363 // (2)
364 btn = (CButton *)GetDlgItem(IDC_DISABLE_PASTE_RBUTTON);
365 ts.DisablePasteMouseRButton = btn->GetCheck();
366
367 // (3)
368 btn = (CButton *)GetDlgItem(IDC_CONFIRM_PASTE_RBUTTON);
369 ts.ConfirmPasteMouseRButton = btn->GetCheck();
370
371 // (4)
372 btn = (CButton *)GetDlgItem(IDC_SELECT_LBUTTON);
373 ts.SelectOnlyByLButton = btn->GetCheck();
374
375 // (5)IDC_CONFIRM_CHANGE_PASTE
376 btn = (CButton *)GetDlgItem(IDC_CONFIRM_CHANGE_PASTE);
377 ts.ConfirmChangePaste = btn->GetCheck();
378 }
379
380
381
382 // CVisualPropPageDlg ƒ_ƒCƒAƒ�ƒO
383
384 IMPLEMENT_DYNAMIC(CVisualPropPageDlg, CPropertyPage)
385
386 CVisualPropPageDlg::CVisualPropPageDlg()
387 : CPropertyPage(CVisualPropPageDlg::IDD)
388 {
389
390 }
391
392 CVisualPropPageDlg::~CVisualPropPageDlg()
393 {
394 if (DlgVisualFont != NULL) {
395 DeleteObject(DlgVisualFont);
396 }
397 }
398
399 BEGIN_MESSAGE_MAP(CVisualPropPageDlg, CPropertyPage)
400 END_MESSAGE_MAP()
401
402 // CVisualPropPageDlg ƒ�ƒbƒZ�[ƒW ƒnƒ“ƒhƒ‰
403
404 BOOL CVisualPropPageDlg::OnInitDialog()
405 {
406 char buf[MAXPATHLEN];
407 char uimsg[MAX_UIMSG];
408 CListBox *listbox;
409 CButton *btn;
410 int i;
411
412 CPropertyPage::OnInitDialog();
413
414 font = (HFONT)SendMessage(WM_GETFONT, 0, 0);
415 GetObject(font, sizeof(LOGFONT), &logfont);
416 if (get_lang_font("DLG_TAHOMA_FONT", GetSafeHwnd(), &logfont, &DlgVisualFont, ts.UILanguageFile)) {
417 SendDlgItemMessage(IDC_ALPHABLEND, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
418 SendDlgItemMessage(IDC_ALPHA_BLEND, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
419 SendDlgItemMessage(IDC_ETERM_LOOKFEEL, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
420 SendDlgItemMessage(IDC_MOUSE, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
421 SendDlgItemMessage(IDC_MOUSE_CURSOR, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
422 SendDlgItemMessage(IDC_ANSICOLOR, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
423 SendDlgItemMessage(IDC_ANSI_COLOR, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
424 SendDlgItemMessage(IDC_RED, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
425 SendDlgItemMessage(IDC_COLOR_RED, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
426 SendDlgItemMessage(IDC_GREEN, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
427 SendDlgItemMessage(IDC_COLOR_GREEN, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
428 SendDlgItemMessage(IDC_BLUE, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
429 SendDlgItemMessage(IDC_COLOR_BLUE, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
430 SendDlgItemMessage(IDC_SAMPLE_COLOR, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
431 }
432 else {
433 DlgVisualFont = NULL;
434 }
435
436 GetDlgItemText(IDC_ALPHABLEND, uimsg, sizeof(uimsg));
437 get_lang_msg("DLG_TAB_VISUAL_ALHPA", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
438 SetDlgItemText(IDC_ALPHABLEND, ts.UIMsg);
439 GetDlgItemText(IDC_ETERM_LOOKFEEL, uimsg, sizeof(uimsg));
440 get_lang_msg("DLG_TAB_VISUAL_ETERM", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
441 SetDlgItemText(IDC_ETERM_LOOKFEEL, ts.UIMsg);
442 GetDlgItemText(IDC_MOUSE, uimsg, sizeof(uimsg));
443 get_lang_msg("DLG_TAB_VISUAL_MOUSE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
444 SetDlgItemText(IDC_MOUSE, ts.UIMsg);
445 GetDlgItemText(IDC_RED, uimsg, sizeof(uimsg));
446 get_lang_msg("DLG_TAB_VISUAL_RED", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
447 SetDlgItemText(IDC_RED, ts.UIMsg);
448 GetDlgItemText(IDC_GREEN, uimsg, sizeof(uimsg));
449 get_lang_msg("DLG_TAB_VISUAL_GREEN", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
450 SetDlgItemText(IDC_GREEN, ts.UIMsg);
451 GetDlgItemText(IDC_BLUE, uimsg, sizeof(uimsg));
452 get_lang_msg("DLG_TAB_VISUAL_BLUE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
453 SetDlgItemText(IDC_BLUE, ts.UIMsg);
454
455 // (1)AlphaBlend
456 _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%d", ts.AlphaBlend);
457 SetDlgItemText(IDC_ALPHA_BLEND, buf);
458
459 // (2)[BG] BGEnable
460 btn = (CButton *)GetDlgItem(IDC_ETERM_LOOKFEEL);
461 btn->SetCheck(ts.EtermLookfeel.BGEnable);
462
463 // (3)Mouse cursor type
464 listbox = (CListBox *)GetDlgItem(IDC_MOUSE_CURSOR);
465 for (i = 0 ; MouseCursor[i].name ; i++) {
466 listbox->InsertString(i, MouseCursor[i].name);
467 }
468 listbox->SelectString(0, ts.MouseCursorName);
469
470 // (4)ANSI color
471 listbox = (CListBox *)GetDlgItem(IDC_ANSI_COLOR);
472 for (i = 0 ; i < 16 ; i++) {
473 _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%d", i);
474 listbox->InsertString(i, buf);
475 }
476 SetupRGBbox(GetSafeHwnd(), 0);
477 #if 0
478 SendMessage(WM_CTLCOLORSTATIC,
479 (WPARAM)label_hdc,
480 (LPARAM)GetDlgItem(IDC_SAMPLE_COLOR));
481 #endif
482
483 // ƒ_ƒCƒAƒ�ƒO‚ɃtƒH�[ƒJƒX‚ð“–‚Ä‚é
484 ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_ALPHA_BLEND));
485
486 return FALSE;
487 }
488
489 BOOL CVisualPropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam)
490 {
491 CListBox *listbox;
492 int sel;
493 char buf[MAXPATHLEN];
494
495 switch (wParam) {
496 case IDC_ANSI_COLOR | (LBN_SELCHANGE << 16):
497 listbox = (CListBox *)GetDlgItem(IDC_ANSI_COLOR);
498 sel = listbox->GetCurSel();
499 if (sel != -1) {
500 SetupRGBbox(GetSafeHwnd(), sel);
501 #if 0
502 SendMessage(WM_CTLCOLORSTATIC,
503 (WPARAM)label_hdc,
504 (LPARAM)GetDlgItem(IDC_SAMPLE_COLOR));
505 #endif
506 }
507 return TRUE;
508
509 case IDC_COLOR_RED | (EN_KILLFOCUS << 16):
510 case IDC_COLOR_GREEN | (EN_KILLFOCUS << 16):
511 case IDC_COLOR_BLUE | (EN_KILLFOCUS << 16):
512 {
513 BYTE r, g, b;
514
515 listbox = (CListBox *)GetDlgItem(IDC_ANSI_COLOR);
516 sel = listbox->GetCurSel();
517 if (sel < 0 && sel > sizeof(ts.ANSIColor)-1) {
518 return TRUE;
519 }
520
521 GetDlgItemText(IDC_COLOR_RED, buf, sizeof(buf));
522 r = atoi(buf);
523
524 GetDlgItemText(IDC_COLOR_GREEN, buf, sizeof(buf));
525 g = atoi(buf);
526
527 GetDlgItemText(IDC_COLOR_BLUE, buf, sizeof(buf));
528 b = atoi(buf);
529
530 ts.ANSIColor[sel] = RGB(r, g, b);
531
532 // 255‚ð’´‚¦‚½RGB’l‚Í•â�³‚³‚ê‚é‚Ì‚Å�A‚»‚ê‚ðEdit‚É•\ަ‚·‚é (2007.2.18 maya)
533 SetupRGBbox(GetSafeHwnd(), sel);
534 #if 0
535 SendMessage(WM_CTLCOLORSTATIC,
536 (WPARAM)label_hdc,
537 (LPARAM)GetDlgItem(IDC_SAMPLE_COLOR));
538 #endif
539 }
540
541 return TRUE;
542 #if 0
543 case WM_CTLCOLORSTATIC:
544 {
545 HDC hDC = (HDC)wp;
546 HWND hWnd = (HWND)lp;
547
548 //if (label_hdc == NULL) {
549 hDC = GetWindowDC(GetDlgItem(hDlgWnd, IDC_SAMPLE_COLOR));
550 // label_hdc = hDC;
551 //}
552
553 if ( hWnd == GetDlgItem(hDlgWnd, IDC_SAMPLE_COLOR) ) {
554 BYTE r, g, b;
555
556 hWnd = GetDlgItem(hDlgWnd, IDC_COLOR_RED);
557 SendMessage(hWnd, WM_GETTEXT , sizeof(buf), (LPARAM)buf);
558 r = atoi(buf);
559
560 hWnd = GetDlgItem(hDlgWnd, IDC_COLOR_GREEN);
561 SendMessage(hWnd, WM_GETTEXT , sizeof(buf), (LPARAM)buf);
562 g = atoi(buf);
563
564 hWnd = GetDlgItem(hDlgWnd, IDC_COLOR_BLUE);
565 SendMessage(hWnd, WM_GETTEXT , sizeof(buf), (LPARAM)buf);
566 b = atoi(buf);
567
568 OutputDebugPrintf("%06x\n", RGB(r, g, b));
569
570 SetBkMode(hDC, TRANSPARENT);
571 SetTextColor(hDC, RGB(r, g, b) );
572 ReleaseDC(hDlgWnd, hDC);
573
574 return (BOOL)(HBRUSH)GetStockObject(NULL_BRUSH);
575 }
576 return FALSE;
577 }
578 break ;
579 #endif
580 }
581
582 return CPropertyPage::OnCommand(wParam, lParam);
583 }
584
585 void CVisualPropPageDlg::OnOK()
586 {
587 CListBox *listbox;
588 CButton *btn;
589 int sel;
590 int beforeAlphaBlend;
591 char buf[MAXPATHLEN];
592
593 // (1)
594 beforeAlphaBlend = ts.AlphaBlend;
595 GetDlgItemText(IDC_ALPHA_BLEND, buf, sizeof(buf));
596 ts.AlphaBlend = atoi(buf);
597 ts.AlphaBlend = max(0, ts.AlphaBlend);
598 ts.AlphaBlend = min(255, ts.AlphaBlend);
599
600 // (2)
601 // ƒOƒ��[ƒoƒ‹•Ï�” BGEnable ‚ð’¼�Ú�‘‚«Š·‚¦‚邯�Aƒvƒ�ƒOƒ‰ƒ€‚ª—Ž‚¿‚邱‚Æ‚ª
602 // ‚ ‚é‚̂ŃRƒs�[‚ð�C�³‚·‚é‚݂̂Ƃ·‚é�B(2005.4.24 yutaka)
603 btn = (CButton *)GetDlgItem(IDC_ETERM_LOOKFEEL);
604 ts.EtermLookfeel.BGEnable = btn->GetCheck();
605
606 // (3)
607 listbox = (CListBox *)GetDlgItem(IDC_MOUSE_CURSOR);
608 sel = listbox->GetCurSel();
609 if (sel >= 0 && sel < MOUSE_CURSOR_MAX) {
610 strncpy_s(ts.MouseCursorName, sizeof(ts.MouseCursorName), MouseCursor[sel].name, _TRUNCATE);
611 }
612
613 // 2006/03/11 by 337 : Alpha’l‚à‘¦Žž•Ï�X
614 // Layered‘‹‚ɂȂÁ‚Ä‚¢‚È‚¢�ê�‡‚ÍŒø‰Ê‚ª–³‚¢
615 if (ts.EtermLookfeel.BGUseAlphaBlendAPI) {
616 // ‹N“®Žž‚É”¼“§–¾ƒŒƒCƒ„‚É‚µ‚Ä‚¢‚È‚¢�ê�‡‚Å‚à�A‘¦�À‚É”¼“§–¾‚Æ‚È‚é‚æ‚¤‚É‚·‚é�B(2006.4.1 yutaka)
617 //MySetLayeredWindowAttributes(HVTWin, 0, (ts.AlphaBlend > 255) ? 255: ts.AlphaBlend, LWA_ALPHA);
618 // ’l‚ª•Ï�X‚³‚ꂽ‚Æ‚«‚Ì‚Ý�Ý’è‚𔽉f‚·‚é�B(2007.10.19 maya)
619 if (ts.AlphaBlend != beforeAlphaBlend) {
620 SetWindowStyle(&ts);
621 }
622 }
623 }
624
625
626
627 // CLogPropPageDlg ƒ_ƒCƒAƒ�ƒO
628
629 IMPLEMENT_DYNAMIC(CLogPropPageDlg, CPropertyPage)
630
631 CLogPropPageDlg::CLogPropPageDlg()
632 : CPropertyPage(CLogPropPageDlg::IDD)
633 {
634
635 }
636
637 CLogPropPageDlg::~CLogPropPageDlg()
638 {
639 if (DlgLogFont != NULL) {
640 DeleteObject(DlgLogFont);
641 }
642 }
643
644 BEGIN_MESSAGE_MAP(CLogPropPageDlg, CPropertyPage)
645 END_MESSAGE_MAP()
646
647 // CLogPropPageDlg ƒ�ƒbƒZ�[ƒW ƒnƒ“ƒhƒ‰
648
649 BOOL CLogPropPageDlg::OnInitDialog()
650 {
651 char uimsg[MAX_UIMSG];
652 CButton *btn;
653
654 CPropertyPage::OnInitDialog();
655
656 font = (HFONT)SendMessage(WM_GETFONT, 0, 0);
657 GetObject(font, sizeof(LOGFONT), &logfont);
658 if (get_lang_font("DLG_TAHOMA_FONT", GetSafeHwnd(), &logfont, &DlgLogFont, ts.UILanguageFile)) {
659 SendDlgItemMessage(IDC_VIEWLOG_LABEL, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
660 SendDlgItemMessage(IDC_VIEWLOG_EDITOR, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
661 SendDlgItemMessage(IDC_VIEWLOG_PATH, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
662 SendDlgItemMessage(IDC_DEFAULTNAME_LABEL, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
663 SendDlgItemMessage(IDC_DEFAULTNAME_EDITOR, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
664 SendDlgItemMessage(IDC_DEFAULTPATH_LABEL, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
665 SendDlgItemMessage(IDC_DEFAULTPATH_EDITOR, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
666 SendDlgItemMessage(IDC_DEFAULTPATH_PUSH, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
667 SendDlgItemMessage(IDC_AUTOSTART, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
668 }
669 else {
670 DlgLogFont = NULL;
671 }
672
673 GetDlgItemText(IDC_VIEWLOG_LABEL, uimsg, sizeof(uimsg));
674 get_lang_msg("DLG_TAB_LOG_EDITOR", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
675 SetDlgItemText(IDC_VIEWLOG_LABEL, ts.UIMsg);
676 GetDlgItemText(IDC_DEFAULTNAME_LABEL, uimsg, sizeof(uimsg));
677 get_lang_msg("DLG_TAB_LOG_FILENAME", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
678 SetDlgItemText(IDC_DEFAULTNAME_LABEL, ts.UIMsg);
679 GetDlgItemText(IDC_DEFAULTPATH_LABEL, uimsg, sizeof(uimsg));
680 get_lang_msg("DLG_TAB_LOG_FILEPATH", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
681 SetDlgItemText(IDC_DEFAULTPATH_LABEL, ts.UIMsg);
682 GetDlgItemText(IDC_AUTOSTART, uimsg, sizeof(uimsg));
683 get_lang_msg("DLG_TAB_LOG_AUTOSTART", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
684 SetDlgItemText(IDC_AUTOSTART, ts.UIMsg);
685
686 // Viewlog Editor path (2005.1.29 yutaka)
687 SetDlgItemText(IDC_VIEWLOG_EDITOR, ts.ViewlogEditor);
688
689 // Log Default File Name (2006.8.28 maya)
690 SetDlgItemText(IDC_DEFAULTNAME_EDITOR, ts.LogDefaultName);
691
692 // Log Default File Path (2007.5.30 maya)
693 SetDlgItemText(IDC_DEFAULTPATH_EDITOR, ts.LogDefaultPath);
694
695 /* Auto start logging (2007.5.31 maya) */
696 btn = (CButton *)GetDlgItem(IDC_AUTOSTART);
697 btn->SetCheck(ts.LogAutoStart);
698
699 // ƒ_ƒCƒAƒ�ƒO‚ɃtƒH�[ƒJƒX‚ð“–‚Ä‚é
700 ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_VIEWLOG_EDITOR));
701
702 return FALSE;
703 }
704
705 BOOL CLogPropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam)
706 {
707 char uimsg[MAX_UIMSG];
708
709 switch (wParam) {
710 case IDC_VIEWLOG_PATH | (BN_CLICKED << 16):
711 {
712 OPENFILENAME ofn;
713
714 ZeroMemory(&ofn, sizeof(ofn));
715 ofn.lStructSize = get_OPENFILENAME_SIZE();
716 ofn.hwndOwner = GetSafeHwnd();
717 get_lang_msg("FILEDLG_SELECT_LOGVIEW_APP_FILTER", ts.UIMsg, sizeof(ts.UIMsg),
718 "exe(*.exe)\\0*.exe\\0all(*.*)\\0*.*\\0\\0", ts.UILanguageFile);
719 ofn.lpstrFilter = ts.UIMsg;
720 ofn.lpstrFile = ts.ViewlogEditor;
721 ofn.nMaxFile = sizeof(ts.ViewlogEditor);
722 get_lang_msg("FILEDLG_SELECT_LOGVIEW_APP_TITLE", uimsg, sizeof(uimsg),
723 "Choose a executing file with launching logging file", ts.UILanguageFile);
724 ofn.lpstrTitle = uimsg;
725 ofn.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_FORCESHOWHIDDEN | OFN_HIDEREADONLY;
726 if (GetOpenFileName(&ofn) != 0) {
727 SetDlgItemText(IDC_VIEWLOG_EDITOR, ts.ViewlogEditor);
728 }
729 }
730 return TRUE;
731
732 case IDC_DEFAULTPATH_PUSH | (BN_CLICKED << 16):
733 // ƒ�ƒOƒfƒBƒŒƒNƒgƒŠ‚Ì‘I‘ðƒ_ƒCƒAƒ�ƒO
734 get_lang_msg("FILEDLG_SELECT_LOGDIR_TITLE", ts.UIMsg, sizeof(ts.UIMsg),
735 "Select log folder", ts.UILanguageFile);
736 doSelectFolder(GetSafeHwnd(), ts.LogDefaultPath, sizeof(ts.LogDefaultPath),
737 ts.UIMsg);
738 SetDlgItemText(IDC_DEFAULTPATH_EDITOR, ts.LogDefaultPath);
739
740 return TRUE;
741 }
742
743 return CPropertyPage::OnCommand(wParam, lParam);
744 }
745
746 void CLogPropPageDlg::OnOK()
747 {
748 char buf[80], buf2[80];
749 time_t time_local;
750 struct tm *tm_local;
751 char uimsg[MAX_UIMSG];
752 CButton *btn;
753
754 // Viewlog Editor path (2005.1.29 yutaka)
755 GetDlgItemText(IDC_VIEWLOG_EDITOR, ts.ViewlogEditor, sizeof(ts.ViewlogEditor));
756
757 // Log Default File Name (2006.8.28 maya)
758 GetDlgItemText(IDC_DEFAULTNAME_EDITOR, buf, sizeof(buf));
759 if (isInvalidStrftimeChar(buf)) {
760 get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
761 get_lang_msg("MSG_LOGFILE_INVALID_CHAR_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
762 "Invalid character is included in log file name.", ts.UILanguageFile);
763 MessageBox(ts.UIMsg, uimsg, MB_ICONEXCLAMATION);
764 return;
765 }
766 // Œ»�ÝŽž��‚ðŽæ“¾
767 time(&time_local);
768 tm_local = localtime(&time_local);
769 // Žž��•¶Žš—ñ‚ɕϊ·
770 if (strlen(buf) != 0 && strftime(buf2, sizeof(buf2), buf, tm_local) == 0) {
771 get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
772 get_lang_msg("MSG_LOGFILE_TOOLONG_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
773 "The log file name is too long.", ts.UILanguageFile);
774 MessageBox(ts.UIMsg, uimsg, MB_ICONEXCLAMATION);
775 return;
776 }
777 if (isInvalidFileNameChar(buf2)) {
778 get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
779 get_lang_msg("MSG_LOGFILE_INVALID_CHAR_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
780 "Invalid character is included in log file name.", ts.UILanguageFile);
781 MessageBox(ts.UIMsg, uimsg, MB_ICONEXCLAMATION);
782 return;
783 }
784 strncpy_s(ts.LogDefaultName, sizeof(ts.LogDefaultName), buf, _TRUNCATE);
785
786 // Log Default File Path (2007.5.30 maya)
787 GetDlgItemText(IDC_DEFAULTPATH_EDITOR, ts.LogDefaultPath, sizeof(ts.LogDefaultPath));
788
789 /* Auto start logging (2007.5.31 maya) */
790 btn = (CButton *)GetDlgItem(IDC_AUTOSTART);
791 ts.LogAutoStart = btn->GetCheck();
792 }
793
794
795
796 // CCygwinPropPageDlg ƒ_ƒCƒAƒ�ƒO
797
798 IMPLEMENT_DYNAMIC(CCygwinPropPageDlg, CPropertyPage)
799
800 CCygwinPropPageDlg::CCygwinPropPageDlg()
801 : CPropertyPage(CCygwinPropPageDlg::IDD)
802 {
803 }
804
805 CCygwinPropPageDlg::~CCygwinPropPageDlg()
806 {
807 if (DlgCygwinFont != NULL) {
808 DeleteObject(DlgCygwinFont);
809 }
810 }
811
812 BEGIN_MESSAGE_MAP(CCygwinPropPageDlg, CPropertyPage)
813 END_MESSAGE_MAP()
814
815 // CCygwinPropPageDlg ƒ�ƒbƒZ�[ƒW ƒnƒ“ƒhƒ‰
816
817 BOOL CCygwinPropPageDlg::OnInitDialog()
818 {
819 char *cfgfile = "cygterm.cfg"; // CygTerm configuration file
820 char cfg[MAX_PATH];
821 FILE *fp;
822 char buf[256], *head, *body;
823 char uimsg[MAX_UIMSG];
824 CButton *btn;
825
826 CPropertyPage::OnInitDialog();
827
828 font = (HFONT)SendMessage(WM_GETFONT, 0, 0);
829 GetObject(font, sizeof(LOGFONT), &logfont);
830 if (get_lang_font("DLG_TAHOMA_FONT", GetSafeHwnd(), &logfont, &DlgCygwinFont, ts.UILanguageFile)) {
831 SendDlgItemMessage(IDC_CYGWIN_PATH_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
832 SendDlgItemMessage(IDC_CYGWIN_PATH, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
833 SendDlgItemMessage(IDC_SELECT_FILE, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
834 SendDlgItemMessage(IDC_CYGWIN, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
835 SendDlgItemMessage(IDC_TERM_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
836 SendDlgItemMessage(IDC_TERM_EDIT, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
837 SendDlgItemMessage(IDC_TERMTYPE_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
838 SendDlgItemMessage(IDC_TERM_TYPE, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
839 SendDlgItemMessage(IDC_PORTSTART_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
840 SendDlgItemMessage(IDC_PORT_START, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
841 SendDlgItemMessage(IDC_PORTRANGE_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
842 SendDlgItemMessage(IDC_PORT_RANGE, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
843 SendDlgItemMessage(IDC_SHELL_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
844 SendDlgItemMessage(IDC_SHELL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
845 SendDlgItemMessage(IDC_ENV1_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
846 SendDlgItemMessage(IDC_ENV1, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
847 SendDlgItemMessage(IDC_ENV2_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
848 SendDlgItemMessage(IDC_ENV2, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
849 SendDlgItemMessage(IDC_LOGIN_SHELL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
850 SendDlgItemMessage(IDC_HOME_CHDIR, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
851 SendDlgItemMessage(IDC_AGENT_PROXY, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
852 }
853 else {
854 DlgCygwinFont = NULL;
855 }
856
857 GetDlgItemText(IDC_CYGWIN_PATH_LABEL, uimsg, sizeof(uimsg));
858 get_lang_msg("DLG_TAB_CYGWIN_PATH", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
859 SetDlgItemText(IDC_CYGWIN_PATH_LABEL, ts.UIMsg);
860
861 // try to read CygTerm config file
862 memset(&settings, 0, sizeof(settings));
863 _snprintf_s(settings.term, sizeof(settings.term), _TRUNCATE, "ttermpro.exe %%s %%d /E /KR=SJIS /KT=SJIS /VTICON=CygTerm /nossh");
864 _snprintf_s(settings.term_type, sizeof(settings.term_type), _TRUNCATE, "vt100");
865 _snprintf_s(settings.port_start, sizeof(settings.port_start), _TRUNCATE, "20000");
866 _snprintf_s(settings.port_range, sizeof(settings.port_range), _TRUNCATE, "40");
867 _snprintf_s(settings.shell, sizeof(settings.shell), _TRUNCATE, "auto");
868 _snprintf_s(settings.env1, sizeof(settings.env1), _TRUNCATE, "MAKE_MODE=unix");
869 _snprintf_s(settings.env2, sizeof(settings.env2), _TRUNCATE, "");
870 settings.login_shell = FALSE;
871 settings.home_chdir = FALSE;
872 settings.agent_proxy = FALSE;
873
874 strncpy_s(cfg, sizeof(cfg), ts.HomeDir, _TRUNCATE);
875 AppendSlash(cfg, sizeof(cfg));
876 strncat_s(cfg, sizeof(cfg), cfgfile, _TRUNCATE);
877
878 fp = fopen(cfg, "r");
879 if (fp != NULL) {
880 while (fgets(buf, sizeof(buf), fp) != NULL) {
881 int len = strlen(buf);
882
883 if (buf[len - 1] == '\n')
884 buf[len - 1] = '\0';
885
886 split_buffer(buf, '=', &head, &body);
887 if (head == NULL || body == NULL)
888 continue;
889
890 if (_stricmp(head, "TERM") == 0) {
891 _snprintf_s(settings.term, sizeof(settings.term), _TRUNCATE, "%s", body);
892
893 } else if (_stricmp(head, "TERM_TYPE") == 0) {
894 _snprintf_s(settings.term_type, sizeof(settings.term_type), _TRUNCATE, "%s", body);
895
896 } else if (_stricmp(head, "PORT_START") == 0) {
897 _snprintf_s(settings.port_start, sizeof(settings.port_start), _TRUNCATE, "%s", body);
898
899 } else if (_stricmp(head, "PORT_RANGE") == 0) {
900 _snprintf_s(settings.port_range, sizeof(settings.port_range), _TRUNCATE, "%s", body);
901
902 } else if (_stricmp(head, "SHELL") == 0) {
903 _snprintf_s(settings.shell, sizeof(settings.shell), _TRUNCATE, "%s", body);
904
905 } else if (_stricmp(head, "ENV_1") == 0) {
906 _snprintf_s(settings.env1, sizeof(settings.env1), _TRUNCATE, "%s", body);
907
908 } else if (_stricmp(head, "ENV_2") == 0) {
909 _snprintf_s(settings.env2, sizeof(settings.env2), _TRUNCATE, "%s", body);
910
911 } else if (_stricmp(head, "LOGIN_SHELL") == 0) {
912 if (strchr("YyTt", *body)) {
913 settings.login_shell = TRUE;
914 }
915
916 } else if (_stricmp(head, "HOME_CHDIR") == 0) {
917 if (strchr("YyTt", *body)) {
918 settings.home_chdir = TRUE;
919 }
920
921 } else if (_stricmp(head, "SSH_AGENT_PROXY") == 0) {
922 if (strchr("YyTt", *body)) {
923 settings.agent_proxy = TRUE;
924 }
925
926 } else {
927 // TODO: error check
928
929 }
930 }
931 fclose(fp);
932 }
933 SetDlgItemText(IDC_TERM_EDIT, settings.term);
934 SetDlgItemText(IDC_TERM_TYPE, settings.term_type);
935 SetDlgItemText(IDC_PORT_START, settings.port_start);
936 SetDlgItemText(IDC_PORT_RANGE, settings.port_range);
937 SetDlgItemText(IDC_SHELL, settings.shell);
938 SetDlgItemText(IDC_ENV1, settings.env1);
939 SetDlgItemText(IDC_ENV2, settings.env2);
940 btn = (CButton *)GetDlgItem(IDC_LOGIN_SHELL);
941 btn->SetCheck(settings.login_shell);
942 btn = (CButton *)GetDlgItem(IDC_HOME_CHDIR);
943 btn->SetCheck(settings.home_chdir);
944 btn = (CButton *)GetDlgItem(IDC_AGENT_PROXY);
945 btn->SetCheck(settings.agent_proxy);
946
947 // Cygwin install path
948 SetDlgItemText(IDC_CYGWIN_PATH, ts.CygwinDirectory);
949
950 // ƒ_ƒCƒAƒ�ƒO‚ɃtƒH�[ƒJƒX‚ð“–‚Ä‚é
951 ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_CYGWIN_PATH));
952
953 return FALSE;
954 }
955
956 BOOL CCygwinPropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam)
957 {
958 switch (wParam) {
959 case IDC_SELECT_FILE | (BN_CLICKED << 16):
960 // Cygwin install ƒfƒBƒŒƒNƒgƒŠ‚Ì‘I‘ðƒ_ƒCƒAƒ�ƒO
961 get_lang_msg("DIRDLG_CYGTERM_DIR_TITLE", ts.UIMsg, sizeof(ts.UIMsg),
962 "Select Cygwin directory", ts.UILanguageFile);
963 doSelectFolder(GetSafeHwnd(), ts.CygwinDirectory, sizeof(ts.CygwinDirectory),
964 ts.UIMsg);
965 // Cygwin install path
966 SetDlgItemText(IDC_CYGWIN_PATH, ts.CygwinDirectory);
967 return TRUE;
968 }
969
970 return CPropertyPage::OnCommand(wParam, lParam);
971 }
972
973 void CCygwinPropPageDlg::OnOK()
974 {
975 char *cfgfile = "cygterm.cfg"; // CygTerm configuration file
976 char *tmpfile = "cygterm.tmp";
977 char cfg[MAX_PATH];
978 char tmp[MAX_PATH];
979 FILE *fp;
980 FILE *tmp_fp;
981 char buf[256], *head, *body;
982 char uimsg[MAX_UIMSG];
983 CButton *btn;
984
985 // writing to CygTerm config file
986 GetDlgItemText(IDC_TERM_EDIT, settings.term, sizeof(settings.term));
987 GetDlgItemText(IDC_TERM_TYPE, settings.term_type, sizeof(settings.term_type));
988 GetDlgItemText(IDC_PORT_START, settings.port_start, sizeof(settings.port_start));
989 GetDlgItemText(IDC_PORT_RANGE, settings.port_range, sizeof(settings.port_range));
990 GetDlgItemText(IDC_SHELL, settings.shell, sizeof(settings.shell));
991 GetDlgItemText(IDC_ENV1, settings.env1, sizeof(settings.env1));
992 GetDlgItemText(IDC_ENV2, settings.env2, sizeof(settings.env2));
993 btn = (CButton *)GetDlgItem(IDC_LOGIN_SHELL);
994 settings.login_shell = btn->GetCheck();
995 btn = (CButton *)GetDlgItem(IDC_HOME_CHDIR);
996 settings.home_chdir = btn->GetCheck();
997 btn = (CButton *)GetDlgItem(IDC_AGENT_PROXY);
998 settings.agent_proxy = btn->GetCheck();
999
1000 strncpy_s(cfg, sizeof(cfg), ts.HomeDir, _TRUNCATE);
1001 AppendSlash(cfg, sizeof(cfg));
1002 strncat_s(cfg, sizeof(cfg), cfgfile, _TRUNCATE);
1003
1004 strncpy_s(tmp, sizeof(tmp), ts.HomeDir, _TRUNCATE);
1005 AppendSlash(tmp, sizeof(tmp));
1006 strncat_s(tmp, sizeof(tmp), tmpfile, _TRUNCATE);
1007
1008 fp = fopen(cfg, "r");
1009 tmp_fp = fopen(tmp, "w");
1010 if (tmp_fp == NULL) {
1011 get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
1012 get_lang_msg("MSG_CYGTERM_CONF_WRITEFILE_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
1013 "Can't write CygTerm configuration file (%d).", ts.UILanguageFile);
1014 _snprintf_s(buf, sizeof(buf), _TRUNCATE, ts.UIMsg, GetLastError());
1015 MessageBox(buf, uimsg, MB_ICONEXCLAMATION);
1016 } else {
1017 if (fp != NULL) {
1018 while (fgets(buf, sizeof(buf), fp) != NULL) {
1019 int len = strlen(buf);
1020
1021 if (buf[len - 1] == '\n')
1022 buf[len - 1] = '\0';
1023
1024 split_buffer(buf, '=', &head, &body);
1025 if (head == NULL || body == NULL) {
1026 fprintf(tmp_fp, "%s\n", buf);
1027 }
1028 else if (_stricmp(head, "TERM") == 0) {
1029 fprintf(tmp_fp, "TERM = %s\n", settings.term);
1030 settings.term[0] = '\0';
1031 }
1032 else if (_stricmp(head, "TERM_TYPE") == 0) {
1033 fprintf(tmp_fp, "TERM_TYPE = %s\n", settings.term_type);
1034 settings.term_type[0] = '\0';
1035 }
1036 else if (_stricmp(head, "PORT_START") == 0) {
1037 fprintf(tmp_fp, "PORT_START = %s\n", settings.port_start);
1038 settings.port_start[0] = '\0';
1039 }
1040 else if (_stricmp(head, "PORT_RANGE") == 0) {
1041 fprintf(tmp_fp, "PORT_RANGE = %s\n", settings.port_range);
1042 settings.port_range[0] = '\0';
1043 }
1044 else if (_stricmp(head, "SHELL") == 0) {
1045 fprintf(tmp_fp, "SHELL = %s\n", settings.shell);
1046 settings.shell[0] = '\0';
1047 }
1048 else if (_stricmp(head, "ENV_1") == 0) {
1049 fprintf(tmp_fp, "ENV_1 = %s\n", settings.env1);
1050 settings.env1[0] = '\0';
1051 }
1052 else if (_stricmp(head, "ENV_2") == 0) {
1053 fprintf(tmp_fp, "ENV_2 = %s\n", settings.env2);
1054 settings.env2[0] = '\0';
1055 }
1056 else if (_stricmp(head, "LOGIN_SHELL") == 0) {
1057 fprintf(tmp_fp, "LOGIN_SHELL = %s\n", (settings.login_shell == TRUE) ? "yes" : "no");
1058 settings.login_shell = FALSE;
1059 }
1060 else if (_stricmp(head, "HOME_CHDIR") == 0) {
1061 fprintf(tmp_fp, "HOME_CHDIR = %s\n", (settings.home_chdir == TRUE) ? "yes" : "no");
1062 settings.home_chdir = FALSE;
1063 }
1064 else if (_stricmp(head, "SSH_AGENT_PROXY") == 0) {
1065 fprintf(tmp_fp, "SSH_AGENT_PROXY = %s\n", (settings.agent_proxy == TRUE) ? "yes" : "no");
1066 settings.agent_proxy = FALSE;
1067 }
1068 else {
1069 fprintf(tmp_fp, "%s = %s\n", head, body);
1070 }
1071 }
1072 fclose(fp);
1073 }
1074 else {
1075 fputs("# CygTerm setting\n", tmp_fp);
1076 fputs("\n", tmp_fp);
1077 }
1078 if (settings.term[0] != '\0') {
1079 fprintf(tmp_fp, "TERM = %s\n", settings.term);
1080 }
1081 if (settings.term_type[0] != '\0') {
1082 fprintf(tmp_fp, "TERM_TYPE = %s\n", settings.term_type);
1083 }
1084 if (settings.port_start[0] != '\0') {
1085 fprintf(tmp_fp, "PORT_START = %s\n", settings.port_start);
1086 }
1087 if (settings.port_range[0] != '\0') {
1088 fprintf(tmp_fp, "PORT_RANGE = %s\n", settings.port_range);
1089 }
1090 if (settings.shell[0] != '\0') {
1091 fprintf(tmp_fp, "SHELL = %s\n", settings.shell);
1092 }
1093 if (settings.env1[0] != '\0') {
1094 fprintf(tmp_fp, "ENV_1 = %s\n", settings.env1);
1095 }
1096 if (settings.env2[0] != '\0') {
1097 fprintf(tmp_fp, "ENV_2 = %s\n", settings.env2);
1098 }
1099 if (settings.login_shell) {
1100 fprintf(tmp_fp, "LOGIN_SHELL = yes\n");
1101 }
1102 if (settings.home_chdir) {
1103 fprintf(tmp_fp, "HOME_CHDIR = yes\n");
1104 }
1105 if (settings.agent_proxy) {
1106 fprintf(tmp_fp, "SSH_AGENT_PROXY = yes\n");
1107 }
1108 fclose(tmp_fp);
1109
1110 if (remove(cfg) != 0 && errno != ENOENT) {
1111 get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
1112 get_lang_msg("MSG_CYGTERM_CONF_REMOVEFILE_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
1113 "Can't remove old CygTerm configuration file (%d).", ts.UILanguageFile);
1114 _snprintf_s(buf, sizeof(buf), _TRUNCATE, ts.UIMsg, GetLastError());
1115 MessageBox(buf, uimsg, MB_ICONEXCLAMATION);
1116 }
1117 else if (rename(tmp, cfg) != 0) {
1118 get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
1119 get_lang_msg("MSG_CYGTERM_CONF_RENAMEFILE_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
1120 "Can't rename CygTerm configuration file (%d).", ts.UILanguageFile);
1121 _snprintf_s(buf, sizeof(buf), _TRUNCATE, ts.UIMsg, GetLastError());
1122 MessageBox(buf, uimsg, MB_ICONEXCLAMATION);
1123 }
1124 }
1125
1126 // Cygwin install path
1127 GetDlgItemText(IDC_CYGWIN_PATH, ts.CygwinDirectory, sizeof(ts.CygwinDirectory));
1128 }
1129
1130
1131
1132 // CAddSettingPropSheetDlg
1133
1134 IMPLEMENT_DYNAMIC(CAddSettingPropSheetDlg, CPropertySheet)
1135
1136 CAddSettingPropSheetDlg::CAddSettingPropSheetDlg(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
1137 :CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
1138 {
1139 AddPage(&m_GeneralPage);
1140 AddPage(&m_VisualPage);
1141 AddPage(&m_LogPage);
1142 AddPage(&m_CygwinPage);
1143
1144 m_psh.dwFlags |= PSH_NOAPPLYNOW;
1145 }
1146
1147 CAddSettingPropSheetDlg::CAddSettingPropSheetDlg(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
1148 :CPropertySheet(pszCaption, pParentWnd, iSelectPage)
1149 {
1150 AddPage(&m_GeneralPage);
1151 AddPage(&m_CopypastePage);
1152 AddPage(&m_VisualPage);
1153 AddPage(&m_LogPage);
1154 AddPage(&m_CygwinPage);
1155
1156 m_psh.dwFlags |= PSH_NOAPPLYNOW;
1157 }
1158
1159 CAddSettingPropSheetDlg::~CAddSettingPropSheetDlg()
1160 {
1161 }
1162
1163
1164 BEGIN_MESSAGE_MAP(CAddSettingPropSheetDlg, CPropertySheet)
1165 END_MESSAGE_MAP()
1166
1167
1168 // CAddSettingPropSheetDlg ƒ�ƒbƒZ�[ƒW ƒnƒ“ƒhƒ‰
1169
1170 BOOL CAddSettingPropSheetDlg::OnInitDialog()
1171 {
1172 CPropertySheet::OnInitDialog();
1173
1174 get_lang_msg("DLG_TABSHEET_TITLE", ts.UIMsg, sizeof(ts.UIMsg),
1175 "Tera Term: Additional settings", ts.UILanguageFile);
1176 SetWindowText(ts.UIMsg);
1177
1178 CTabCtrl *tab = GetTabControl();
1179 TCITEM tc;
1180 tc.mask = TCIF_TEXT;
1181
1182 get_lang_msg("DLG_TABSHEET_TITLE_GENERAL", ts.UIMsg, sizeof(ts.UIMsg),
1183 "General", ts.UILanguageFile);
1184 tc.pszText = ts.UIMsg;
1185 tab->SetItem(0, &tc);
1186
1187 get_lang_msg("DLG_TABSHEET_TITLE_COPYPASTE", ts.UIMsg, sizeof(ts.UIMsg),
1188 "Copy and Paste", ts.UILanguageFile);
1189 tc.pszText = ts.UIMsg;
1190 tab->SetItem(1, &tc);
1191
1192 get_lang_msg("DLG_TABSHEET_TITLE_VISUAL", ts.UIMsg, sizeof(ts.UIMsg),
1193 "Visual", ts.UILanguageFile);
1194 tc.pszText = ts.UIMsg;
1195 tab->SetItem(2, &tc);
1196
1197 get_lang_msg("DLG_TABSHEET_TITLE_Log", ts.UIMsg, sizeof(ts.UIMsg),
1198 "Log", ts.UILanguageFile);
1199 tc.pszText = ts.UIMsg;
1200 tab->SetItem(3, &tc);
1201
1202 get_lang_msg("DLG_TABSHEET_TITLE_CYGWIN", ts.UIMsg, sizeof(ts.UIMsg),
1203 "Cygwin", ts.UILanguageFile);
1204 tc.pszText = ts.UIMsg;
1205 tab->SetItem(4, &tc);
1206
1207 return FALSE;
1208 }

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