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 2608 - (show annotations) (download) (as text)
Mon Nov 3 05:40:27 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: 40598 byte(s)
AcceptTitleChangeRequest の値を ahead/last に変更

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

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