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 2588 - (show annotations) (download) (as text)
Sat Sep 20 03:02:36 2008 UTC (15 years, 6 months ago) by maya
Original Path: teraterm/trunk/teraterm/addsetting.cpp
File MIME type: text/x-c++src
File size: 39413 byte(s)
AcceptTitleChangeRequest に表記を統一

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

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