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 2558 - (show annotations) (download) (as text)
Wed Jul 9 06:06:56 2008 UTC (15 years, 9 months ago) by doda
Original Path: teraterm/trunk/teraterm/addsetting.cpp
File MIME type: text/x-c++src
File size: 39671 byte(s)
リモートからのウィンドウタイトル変更要求を受け入れるかを設定できるようにした。
http://sourceforge.jp/tracker/index.php?func=detail&aid=12951&group_id=1412&atid=5333

設定パラメータ名は暫定であり、要検討。

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.RemoteTitleChanging);
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.RemoteTitleChanging = 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 OSVERSIONINFO osvi;
701
702 ZeroMemory(&ofn, sizeof(ofn));
703 osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
704 GetVersionEx(&osvi);
705 if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT &&
706 osvi.dwMajorVersion >= 5) {
707 ofn.lStructSize = sizeof(OPENFILENAME);
708 }
709 else {
710 ofn.lStructSize = OPENFILENAME_SIZE_VERSION_400;
711 }
712 ofn.hwndOwner = GetSafeHwnd();
713 get_lang_msg("FILEDLG_SELECT_LOGVIEW_APP_FILTER", ts.UIMsg, sizeof(ts.UIMsg),
714 "exe(*.exe)\\0*.exe\\0all(*.*)\\0*.*\\0\\0", ts.UILanguageFile);
715 ofn.lpstrFilter = ts.UIMsg;
716 ofn.lpstrFile = ts.ViewlogEditor;
717 ofn.nMaxFile = sizeof(ts.ViewlogEditor);
718 get_lang_msg("FILEDLG_SELECT_LOGVIEW_APP_TITLE", uimsg, sizeof(uimsg),
719 "Choose a executing file with launching logging file", ts.UILanguageFile);
720 ofn.lpstrTitle = uimsg;
721 ofn.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_FORCESHOWHIDDEN | OFN_HIDEREADONLY;
722 if (GetOpenFileName(&ofn) != 0) {
723 SetDlgItemText(IDC_VIEWLOG_EDITOR, ts.ViewlogEditor);
724 }
725 }
726 return TRUE;
727
728 case IDC_DEFAULTPATH_PUSH | (BN_CLICKED << 16):
729 // ƒ�ƒOƒfƒBƒŒƒNƒgƒŠ‚Ì‘I‘ðƒ_ƒCƒAƒ�ƒO
730 get_lang_msg("FILEDLG_SELECT_LOGDIR_TITLE", ts.UIMsg, sizeof(ts.UIMsg),
731 "Select log folder", ts.UILanguageFile);
732 doSelectFolder(GetSafeHwnd(), ts.LogDefaultPath, sizeof(ts.LogDefaultPath),
733 ts.UIMsg);
734 SetDlgItemText(IDC_DEFAULTPATH_EDITOR, ts.LogDefaultPath);
735
736 return TRUE;
737 }
738
739 return CPropertyPage::OnCommand(wParam, lParam);
740 }
741
742 void CLogPropPageDlg::OnOK()
743 {
744 char buf[80], buf2[80];
745 time_t time_local;
746 struct tm *tm_local;
747 char uimsg[MAX_UIMSG];
748 CButton *btn;
749
750 // Viewlog Editor path (2005.1.29 yutaka)
751 GetDlgItemText(IDC_VIEWLOG_EDITOR, ts.ViewlogEditor, sizeof(ts.ViewlogEditor));
752
753 // Log Default File Name (2006.8.28 maya)
754 GetDlgItemText(IDC_DEFAULTNAME_EDITOR, buf, sizeof(buf));
755 if (isInvalidStrftimeChar(buf)) {
756 get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
757 get_lang_msg("MSG_LOGFILE_INVALID_CHAR_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
758 "Invalid character is included in log file name.", ts.UILanguageFile);
759 MessageBox(ts.UIMsg, uimsg, MB_ICONEXCLAMATION);
760 return;
761 }
762 // Œ»�ÝŽž��‚ðŽæ“¾
763 time(&time_local);
764 tm_local = localtime(&time_local);
765 // Žž��•¶Žš—ñ‚ɕϊ·
766 if (strlen(buf) != 0 && strftime(buf2, sizeof(buf2), buf, tm_local) == 0) {
767 get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
768 get_lang_msg("MSG_LOGFILE_TOOLONG_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
769 "The log file name is too long.", ts.UILanguageFile);
770 MessageBox(ts.UIMsg, uimsg, MB_ICONEXCLAMATION);
771 return;
772 }
773 if (isInvalidFileNameChar(buf2)) {
774 get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
775 get_lang_msg("MSG_LOGFILE_INVALID_CHAR_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
776 "Invalid character is included in log file name.", ts.UILanguageFile);
777 MessageBox(ts.UIMsg, uimsg, MB_ICONEXCLAMATION);
778 return;
779 }
780 strncpy_s(ts.LogDefaultName, sizeof(ts.LogDefaultName), buf, _TRUNCATE);
781
782 // Log Default File Path (2007.5.30 maya)
783 GetDlgItemText(IDC_DEFAULTPATH_EDITOR, ts.LogDefaultPath, sizeof(ts.LogDefaultPath));
784
785 /* Auto start logging (2007.5.31 maya) */
786 btn = (CButton *)GetDlgItem(IDC_AUTOSTART);
787 ts.LogAutoStart = btn->GetCheck();
788 }
789
790
791
792 // CCygwinPropPageDlg ƒ_ƒCƒAƒ�ƒO
793
794 IMPLEMENT_DYNAMIC(CCygwinPropPageDlg, CPropertyPage)
795
796 CCygwinPropPageDlg::CCygwinPropPageDlg()
797 : CPropertyPage(CCygwinPropPageDlg::IDD)
798 {
799 }
800
801 CCygwinPropPageDlg::~CCygwinPropPageDlg()
802 {
803 if (DlgCygwinFont != NULL) {
804 DeleteObject(DlgCygwinFont);
805 }
806 }
807
808 BEGIN_MESSAGE_MAP(CCygwinPropPageDlg, CPropertyPage)
809 END_MESSAGE_MAP()
810
811 // CCygwinPropPageDlg ƒ�ƒbƒZ�[ƒW ƒnƒ“ƒhƒ‰
812
813 BOOL CCygwinPropPageDlg::OnInitDialog()
814 {
815 char *cfgfile = "cygterm.cfg"; // CygTerm configuration file
816 char cfg[MAX_PATH];
817 FILE *fp;
818 char buf[256], *head, *body;
819 char uimsg[MAX_UIMSG];
820 CButton *btn;
821
822 CPropertyPage::OnInitDialog();
823
824 font = (HFONT)SendMessage(WM_GETFONT, 0, 0);
825 GetObject(font, sizeof(LOGFONT), &logfont);
826 if (get_lang_font("DLG_TAHOMA_FONT", GetSafeHwnd(), &logfont, &DlgCygwinFont, ts.UILanguageFile)) {
827 SendDlgItemMessage(IDC_CYGWIN_PATH_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
828 SendDlgItemMessage(IDC_CYGWIN_PATH, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
829 SendDlgItemMessage(IDC_SELECT_FILE, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
830 SendDlgItemMessage(IDC_CYGWIN, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
831 SendDlgItemMessage(IDC_TERM_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
832 SendDlgItemMessage(IDC_TERM_EDIT, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
833 SendDlgItemMessage(IDC_TERMTYPE_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
834 SendDlgItemMessage(IDC_TERM_TYPE, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
835 SendDlgItemMessage(IDC_PORTSTART_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
836 SendDlgItemMessage(IDC_PORT_START, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
837 SendDlgItemMessage(IDC_PORTRANGE_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
838 SendDlgItemMessage(IDC_PORT_RANGE, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
839 SendDlgItemMessage(IDC_SHELL_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
840 SendDlgItemMessage(IDC_SHELL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
841 SendDlgItemMessage(IDC_ENV1_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
842 SendDlgItemMessage(IDC_ENV1, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
843 SendDlgItemMessage(IDC_ENV2_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
844 SendDlgItemMessage(IDC_ENV2, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
845 SendDlgItemMessage(IDC_LOGIN_SHELL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
846 SendDlgItemMessage(IDC_HOME_CHDIR, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
847 }
848 else {
849 DlgCygwinFont = NULL;
850 }
851
852 GetDlgItemText(IDC_CYGWIN_PATH_LABEL, uimsg, sizeof(uimsg));
853 get_lang_msg("DLG_TAB_CYGWIN_PATH", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
854 SetDlgItemText(IDC_CYGWIN_PATH_LABEL, ts.UIMsg);
855
856 // try to read CygTerm config file
857 memset(&settings, 0, sizeof(settings));
858 _snprintf_s(settings.term, sizeof(settings.term), _TRUNCATE, ".\\ttermpro.exe %%s %%d /KR=SJIS /KT=SJIS /nossh");
859 _snprintf_s(settings.term_type, sizeof(settings.term_type), _TRUNCATE, "vt100");
860 _snprintf_s(settings.port_start, sizeof(settings.port_start), _TRUNCATE, "20000");
861 _snprintf_s(settings.port_range, sizeof(settings.port_range), _TRUNCATE, "40");
862 _snprintf_s(settings.shell, sizeof(settings.shell), _TRUNCATE, "/bin/tcsh");
863 _snprintf_s(settings.env1, sizeof(settings.env1), _TRUNCATE, "MAKE_MODE=unix");
864 _snprintf_s(settings.env2, sizeof(settings.env2), _TRUNCATE, "");
865 settings.login_shell = FALSE;
866 settings.home_chdir = FALSE;
867
868 strncpy_s(cfg, sizeof(cfg), ts.HomeDir, _TRUNCATE);
869 AppendSlash(cfg, sizeof(cfg));
870 strncat_s(cfg, sizeof(cfg), cfgfile, _TRUNCATE);
871
872 fp = fopen(cfg, "r");
873 if (fp != NULL) {
874 while (fgets(buf, sizeof(buf), fp) != NULL) {
875 int len = strlen(buf);
876
877 if (buf[len - 1] == '\n')
878 buf[len - 1] = '\0';
879
880 split_buffer(buf, '=', &head, &body);
881 if (head == NULL || body == NULL)
882 continue;
883
884 if (_stricmp(head, "TERM") == 0) {
885 _snprintf_s(settings.term, sizeof(settings.term), _TRUNCATE, "%s", body);
886
887 } else if (_stricmp(head, "TERM_TYPE") == 0) {
888 _snprintf_s(settings.term_type, sizeof(settings.term_type), _TRUNCATE, "%s", body);
889
890 } else if (_stricmp(head, "PORT_START") == 0) {
891 _snprintf_s(settings.port_start, sizeof(settings.port_start), _TRUNCATE, "%s", body);
892
893 } else if (_stricmp(head, "PORT_RANGE") == 0) {
894 _snprintf_s(settings.port_range, sizeof(settings.port_range), _TRUNCATE, "%s", body);
895
896 } else if (_stricmp(head, "SHELL") == 0) {
897 _snprintf_s(settings.shell, sizeof(settings.shell), _TRUNCATE, "%s", body);
898
899 } else if (_stricmp(head, "ENV_1") == 0) {
900 _snprintf_s(settings.env1, sizeof(settings.env1), _TRUNCATE, "%s", body);
901
902 } else if (_stricmp(head, "ENV_2") == 0) {
903 _snprintf_s(settings.env2, sizeof(settings.env2), _TRUNCATE, "%s", body);
904
905 } else if (_stricmp(head, "LOGIN_SHELL") == 0) {
906 if (strchr("YyTt", *body)) {
907 settings.login_shell = TRUE;
908 }
909
910 } else if (_stricmp(head, "HOME_CHDIR") == 0) {
911 if (strchr("YyTt", *body)) {
912 settings.home_chdir = TRUE;
913 }
914
915 } else {
916 // TODO: error check
917
918 }
919 }
920 fclose(fp);
921 }
922 SetDlgItemText(IDC_TERM_EDIT, settings.term);
923 SetDlgItemText(IDC_TERM_TYPE, settings.term_type);
924 SetDlgItemText(IDC_PORT_START, settings.port_start);
925 SetDlgItemText(IDC_PORT_RANGE, settings.port_range);
926 SetDlgItemText(IDC_SHELL, settings.shell);
927 SetDlgItemText(IDC_ENV1, settings.env1);
928 SetDlgItemText(IDC_ENV2, settings.env2);
929 btn = (CButton *)GetDlgItem(IDC_LOGIN_SHELL);
930 btn->SetCheck(settings.login_shell);
931 btn = (CButton *)GetDlgItem(IDC_HOME_CHDIR);
932 btn->SetCheck(settings.home_chdir);
933
934 // Cygwin install path
935 SetDlgItemText(IDC_CYGWIN_PATH, ts.CygwinDirectory);
936
937 // ƒ_ƒCƒAƒ�ƒO‚ɃtƒH�[ƒJƒX‚ð“–‚Ä‚é
938 ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_CYGWIN_PATH));
939
940 return FALSE;
941 }
942
943 BOOL CCygwinPropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam)
944 {
945 switch (wParam) {
946 case IDC_SELECT_FILE | (BN_CLICKED << 16):
947 // Cygwin install ƒfƒBƒŒƒNƒgƒŠ‚Ì‘I‘ðƒ_ƒCƒAƒ�ƒO
948 get_lang_msg("DIRDLG_CYGTERM_DIR_TITLE", ts.UIMsg, sizeof(ts.UIMsg),
949 "Select Cygwin directory", ts.UILanguageFile);
950 doSelectFolder(GetSafeHwnd(), ts.CygwinDirectory, sizeof(ts.CygwinDirectory),
951 ts.UIMsg);
952 // Cygwin install path
953 SetDlgItemText(IDC_CYGWIN_PATH, ts.CygwinDirectory);
954 return TRUE;
955 }
956
957 return CPropertyPage::OnCommand(wParam, lParam);
958 }
959
960 void CCygwinPropPageDlg::OnOK()
961 {
962 char *cfgfile = "cygterm.cfg"; // CygTerm configuration file
963 char *tmpfile = "cygterm.tmp";
964 char cfg[MAX_PATH];
965 char tmp[MAX_PATH];
966 FILE *fp;
967 FILE *tmp_fp;
968 char buf[256], *head, *body;
969 char uimsg[MAX_UIMSG];
970 CButton *btn;
971
972 // writing to CygTerm config file
973 GetDlgItemText(IDC_TERM_EDIT, settings.term, sizeof(settings.term));
974 GetDlgItemText(IDC_TERM_TYPE, settings.term_type, sizeof(settings.term_type));
975 GetDlgItemText(IDC_PORT_START, settings.port_start, sizeof(settings.port_start));
976 GetDlgItemText(IDC_PORT_RANGE, settings.port_range, sizeof(settings.port_range));
977 GetDlgItemText(IDC_SHELL, settings.shell, sizeof(settings.shell));
978 GetDlgItemText(IDC_ENV1, settings.env1, sizeof(settings.env1));
979 GetDlgItemText(IDC_ENV2, settings.env2, sizeof(settings.env2));
980 btn = (CButton *)GetDlgItem(IDC_LOGIN_SHELL);
981 settings.login_shell = btn->GetCheck();
982 btn = (CButton *)GetDlgItem(IDC_HOME_CHDIR);
983 settings.home_chdir = btn->GetCheck();
984
985 strncpy_s(cfg, sizeof(cfg), ts.HomeDir, _TRUNCATE);
986 AppendSlash(cfg, sizeof(cfg));
987 strncat_s(cfg, sizeof(cfg), cfgfile, _TRUNCATE);
988
989 strncpy_s(tmp, sizeof(tmp), ts.HomeDir, _TRUNCATE);
990 AppendSlash(tmp, sizeof(tmp));
991 strncat_s(tmp, sizeof(tmp), tmpfile, _TRUNCATE);
992
993 fp = fopen(cfg, "r");
994 tmp_fp = fopen(tmp, "w");
995 if (tmp_fp == NULL) {
996 get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
997 get_lang_msg("MSG_CYGTERM_CONF_WRITEFILE_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
998 "Can't write CygTerm configuration file (%d).", ts.UILanguageFile);
999 _snprintf_s(buf, sizeof(buf), _TRUNCATE, ts.UIMsg, GetLastError());
1000 MessageBox(buf, uimsg, MB_ICONEXCLAMATION);
1001 } else {
1002 if (fp != NULL) {
1003 while (fgets(buf, sizeof(buf), fp) != NULL) {
1004 int len = strlen(buf);
1005
1006 if (buf[len - 1] == '\n')
1007 buf[len - 1] = '\0';
1008
1009 split_buffer(buf, '=', &head, &body);
1010 if (head == NULL || body == NULL) {
1011 fprintf(tmp_fp, "%s\n", buf);
1012 }
1013 else if (_stricmp(head, "TERM") == 0) {
1014 fprintf(tmp_fp, "TERM = %s\n", settings.term);
1015 settings.term[0] = '\0';
1016 }
1017 else if (_stricmp(head, "TERM_TYPE") == 0) {
1018 fprintf(tmp_fp, "TERM_TYPE = %s\n", settings.term_type);
1019 settings.term_type[0] = '\0';
1020 }
1021 else if (_stricmp(head, "PORT_START") == 0) {
1022 fprintf(tmp_fp, "PORT_START = %s\n", settings.port_start);
1023 settings.port_start[0] = '\0';
1024 }
1025 else if (_stricmp(head, "PORT_RANGE") == 0) {
1026 fprintf(tmp_fp, "PORT_RANGE = %s\n", settings.port_range);
1027 settings.port_range[0] = '\0';
1028 }
1029 else if (_stricmp(head, "SHELL") == 0) {
1030 fprintf(tmp_fp, "SHELL = %s\n", settings.shell);
1031 settings.shell[0] = '\0';
1032 }
1033 else if (_stricmp(head, "ENV_1") == 0) {
1034 fprintf(tmp_fp, "ENV_1 = %s\n", settings.env1);
1035 settings.env1[0] = '\0';
1036 }
1037 else if (_stricmp(head, "ENV_2") == 0) {
1038 fprintf(tmp_fp, "ENV_2 = %s\n", settings.env2);
1039 settings.env2[0] = '\0';
1040 }
1041 else if (_stricmp(head, "LOGIN_SHELL") == 0) {
1042 fprintf(tmp_fp, "LOGIN_SHELL = %s\n", (settings.login_shell == TRUE) ? "yes" : "no");
1043 settings.login_shell = FALSE;
1044 }
1045 else if (_stricmp(head, "HOME_CHDIR") == 0) {
1046 fprintf(tmp_fp, "HOME_CHDIR = %s\n", (settings.home_chdir == TRUE) ? "yes" : "no");
1047 settings.home_chdir = FALSE;
1048 }
1049 else {
1050 fprintf(tmp_fp, "%s = %s\n", head, body);
1051 }
1052 }
1053 fclose(fp);
1054 }
1055 else {
1056 fputs("# CygTerm setting\n", tmp_fp);
1057 fputs("\n", tmp_fp);
1058 }
1059 if (settings.term[0] != '\0') {
1060 fprintf(tmp_fp, "TERM = %s\n", settings.term);
1061 }
1062 if (settings.term_type[0] != '\0') {
1063 fprintf(tmp_fp, "TERM_TYPE = %s\n", settings.term_type);
1064 }
1065 if (settings.port_start[0] != '\0') {
1066 fprintf(tmp_fp, "PORT_START = %s\n", settings.port_start);
1067 }
1068 if (settings.port_range[0] != '\0') {
1069 fprintf(tmp_fp, "PORT_RANGE = %s\n", settings.port_range);
1070 }
1071 if (settings.shell[0] != '\0') {
1072 fprintf(tmp_fp, "SHELL = %s\n", settings.shell);
1073 }
1074 if (settings.env1[0] != '\0') {
1075 fprintf(tmp_fp, "ENV_1 = %s\n", settings.env1);
1076 }
1077 if (settings.env2[0] != '\0') {
1078 fprintf(tmp_fp, "ENV_2 = %s\n", settings.env2);
1079 }
1080 if (settings.login_shell) {
1081 fprintf(tmp_fp, "LOGIN_SHELL = yes\n");
1082 }
1083 if (settings.home_chdir) {
1084 fprintf(tmp_fp, "HOME_CHDIR = yes\n");
1085 }
1086 fclose(tmp_fp);
1087
1088 if (remove(cfg) != 0 && errno != ENOENT) {
1089 get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
1090 get_lang_msg("MSG_CYGTERM_CONF_REMOVEFILE_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
1091 "Can't remove old CygTerm configuration file (%d).", ts.UILanguageFile);
1092 _snprintf_s(buf, sizeof(buf), _TRUNCATE, ts.UIMsg, GetLastError());
1093 MessageBox(buf, uimsg, MB_ICONEXCLAMATION);
1094 }
1095 else if (rename(tmp, cfg) != 0) {
1096 get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
1097 get_lang_msg("MSG_CYGTERM_CONF_RENAMEFILE_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
1098 "Can't rename CygTerm configuration file (%d).", ts.UILanguageFile);
1099 _snprintf_s(buf, sizeof(buf), _TRUNCATE, ts.UIMsg, GetLastError());
1100 MessageBox(buf, uimsg, MB_ICONEXCLAMATION);
1101 }
1102 }
1103
1104 // Cygwin install path
1105 GetDlgItemText(IDC_CYGWIN_PATH, ts.CygwinDirectory, sizeof(ts.CygwinDirectory));
1106 }
1107
1108
1109
1110 // CAddSettingPropSheetDlg
1111
1112 IMPLEMENT_DYNAMIC(CAddSettingPropSheetDlg, CPropertySheet)
1113
1114 CAddSettingPropSheetDlg::CAddSettingPropSheetDlg(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
1115 :CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
1116 {
1117 AddPage(&m_GeneralPage);
1118 AddPage(&m_VisualPage);
1119 AddPage(&m_LogPage);
1120 AddPage(&m_CygwinPage);
1121
1122 m_psh.dwFlags |= PSH_NOAPPLYNOW;
1123 }
1124
1125 CAddSettingPropSheetDlg::CAddSettingPropSheetDlg(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
1126 :CPropertySheet(pszCaption, pParentWnd, iSelectPage)
1127 {
1128 AddPage(&m_GeneralPage);
1129 AddPage(&m_CopypastePage);
1130 AddPage(&m_VisualPage);
1131 AddPage(&m_LogPage);
1132 AddPage(&m_CygwinPage);
1133
1134 m_psh.dwFlags |= PSH_NOAPPLYNOW;
1135 }
1136
1137 CAddSettingPropSheetDlg::~CAddSettingPropSheetDlg()
1138 {
1139 }
1140
1141
1142 BEGIN_MESSAGE_MAP(CAddSettingPropSheetDlg, CPropertySheet)
1143 END_MESSAGE_MAP()
1144
1145
1146 // CAddSettingPropSheetDlg ƒ�ƒbƒZ�[ƒW ƒnƒ“ƒhƒ‰
1147
1148 BOOL CAddSettingPropSheetDlg::OnInitDialog()
1149 {
1150 CPropertySheet::OnInitDialog();
1151
1152 get_lang_msg("DLG_TABSHEET_TITLE", ts.UIMsg, sizeof(ts.UIMsg),
1153 "Tera Term: Additional settings", ts.UILanguageFile);
1154 SetWindowText(ts.UIMsg);
1155
1156 CTabCtrl *tab = GetTabControl();
1157 TCITEM tc;
1158 tc.mask = TCIF_TEXT;
1159
1160 get_lang_msg("DLG_TABSHEET_TITLE_GENERAL", ts.UIMsg, sizeof(ts.UIMsg),
1161 "General", ts.UILanguageFile);
1162 tc.pszText = ts.UIMsg;
1163 tab->SetItem(0, &tc);
1164
1165 get_lang_msg("DLG_TABSHEET_TITLE_COPYPASTE", ts.UIMsg, sizeof(ts.UIMsg),
1166 "Copy and Paste", ts.UILanguageFile);
1167 tc.pszText = ts.UIMsg;
1168 tab->SetItem(1, &tc);
1169
1170 get_lang_msg("DLG_TABSHEET_TITLE_VISUAL", ts.UIMsg, sizeof(ts.UIMsg),
1171 "Visual", ts.UILanguageFile);
1172 tc.pszText = ts.UIMsg;
1173 tab->SetItem(2, &tc);
1174
1175 get_lang_msg("DLG_TABSHEET_TITLE_Log", ts.UIMsg, sizeof(ts.UIMsg),
1176 "Log", ts.UILanguageFile);
1177 tc.pszText = ts.UIMsg;
1178 tab->SetItem(3, &tc);
1179
1180 get_lang_msg("DLG_TABSHEET_TITLE_CYGWIN", ts.UIMsg, sizeof(ts.UIMsg),
1181 "Cygwin", ts.UILanguageFile);
1182 tc.pszText = ts.UIMsg;
1183 tab->SetItem(4, &tc);
1184
1185 return FALSE;
1186 }

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