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 2603 - (show annotations) (download) (as text)
Sat Nov 1 12:31:02 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: 39798 byte(s)
リモートからのタイトルを、標準のタイトルとは別のバッファに入れるようにした。
リモートからのタイトルを、標準のタイトルの前または後に表示できるようにした。
AcceptTitleChangeRequest の設定値を off/on から off/overwrite/before/after に変更した。互換性のため on は overwrite として扱う。

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

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