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 2504 - (show annotations) (download) (as text)
Sun May 11 15:37:00 2008 UTC (15 years, 11 months ago) by maya
Original Path: teraterm/trunk/teraterm/addsetting.cpp
File MIME type: text/x-c++src
File size: 37232 byte(s)
Additional settings を、タブコントロールから CPropertySheet に変更した。
vtwin.cpp から addsetting.cpp に処理を移動した。

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

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