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 2611 - (show annotations) (download) (as text)
Thu Nov 6 11:40:52 2008 UTC (15 years, 5 months ago) by doda
Original Path: teraterm/trunk/teraterm/addsetting.cpp
File MIME type: text/x-c++src
File size: 41215 byte(s)
cygterm.cfgが無かった時に使われる設定を、cygtermの現在のデフォルトの設定にあわせた。

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 /E /KR=SJIS /KT=SJIS /VTICON=CygTerm /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, "auto");
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 settings.agent_proxy = FALSE;
872
873 strncpy_s(cfg, sizeof(cfg), ts.HomeDir, _TRUNCATE);
874 AppendSlash(cfg, sizeof(cfg));
875 strncat_s(cfg, sizeof(cfg), cfgfile, _TRUNCATE);
876
877 fp = fopen(cfg, "r");
878 if (fp != NULL) {
879 while (fgets(buf, sizeof(buf), fp) != NULL) {
880 int len = strlen(buf);
881
882 if (buf[len - 1] == '\n')
883 buf[len - 1] = '\0';
884
885 split_buffer(buf, '=', &head, &body);
886 if (head == NULL || body == NULL)
887 continue;
888
889 if (_stricmp(head, "TERM") == 0) {
890 _snprintf_s(settings.term, sizeof(settings.term), _TRUNCATE, "%s", body);
891
892 } else if (_stricmp(head, "TERM_TYPE") == 0) {
893 _snprintf_s(settings.term_type, sizeof(settings.term_type), _TRUNCATE, "%s", body);
894
895 } else if (_stricmp(head, "PORT_START") == 0) {
896 _snprintf_s(settings.port_start, sizeof(settings.port_start), _TRUNCATE, "%s", body);
897
898 } else if (_stricmp(head, "PORT_RANGE") == 0) {
899 _snprintf_s(settings.port_range, sizeof(settings.port_range), _TRUNCATE, "%s", body);
900
901 } else if (_stricmp(head, "SHELL") == 0) {
902 _snprintf_s(settings.shell, sizeof(settings.shell), _TRUNCATE, "%s", body);
903
904 } else if (_stricmp(head, "ENV_1") == 0) {
905 _snprintf_s(settings.env1, sizeof(settings.env1), _TRUNCATE, "%s", body);
906
907 } else if (_stricmp(head, "ENV_2") == 0) {
908 _snprintf_s(settings.env2, sizeof(settings.env2), _TRUNCATE, "%s", body);
909
910 } else if (_stricmp(head, "LOGIN_SHELL") == 0) {
911 if (strchr("YyTt", *body)) {
912 settings.login_shell = TRUE;
913 }
914
915 } else if (_stricmp(head, "HOME_CHDIR") == 0) {
916 if (strchr("YyTt", *body)) {
917 settings.home_chdir = TRUE;
918 }
919
920 } else if (_stricmp(head, "SSH_AGENT_PROXY") == 0) {
921 if (strchr("YyTt", *body)) {
922 settings.agent_proxy = TRUE;
923 }
924
925 } else {
926 // TODO: error check
927
928 }
929 }
930 fclose(fp);
931 }
932 SetDlgItemText(IDC_TERM_EDIT, settings.term);
933 SetDlgItemText(IDC_TERM_TYPE, settings.term_type);
934 SetDlgItemText(IDC_PORT_START, settings.port_start);
935 SetDlgItemText(IDC_PORT_RANGE, settings.port_range);
936 SetDlgItemText(IDC_SHELL, settings.shell);
937 SetDlgItemText(IDC_ENV1, settings.env1);
938 SetDlgItemText(IDC_ENV2, settings.env2);
939 btn = (CButton *)GetDlgItem(IDC_LOGIN_SHELL);
940 btn->SetCheck(settings.login_shell);
941 btn = (CButton *)GetDlgItem(IDC_HOME_CHDIR);
942 btn->SetCheck(settings.home_chdir);
943 btn = (CButton *)GetDlgItem(IDC_AGENT_PROXY);
944 btn->SetCheck(settings.agent_proxy);
945
946 // Cygwin install path
947 SetDlgItemText(IDC_CYGWIN_PATH, ts.CygwinDirectory);
948
949 // ƒ_ƒCƒAƒ�ƒO‚ɃtƒH�[ƒJƒX‚ð“–‚Ä‚é
950 ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_CYGWIN_PATH));
951
952 return FALSE;
953 }
954
955 BOOL CCygwinPropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam)
956 {
957 switch (wParam) {
958 case IDC_SELECT_FILE | (BN_CLICKED << 16):
959 // Cygwin install ƒfƒBƒŒƒNƒgƒŠ‚Ì‘I‘ðƒ_ƒCƒAƒ�ƒO
960 get_lang_msg("DIRDLG_CYGTERM_DIR_TITLE", ts.UIMsg, sizeof(ts.UIMsg),
961 "Select Cygwin directory", ts.UILanguageFile);
962 doSelectFolder(GetSafeHwnd(), ts.CygwinDirectory, sizeof(ts.CygwinDirectory),
963 ts.UIMsg);
964 // Cygwin install path
965 SetDlgItemText(IDC_CYGWIN_PATH, ts.CygwinDirectory);
966 return TRUE;
967 }
968
969 return CPropertyPage::OnCommand(wParam, lParam);
970 }
971
972 void CCygwinPropPageDlg::OnOK()
973 {
974 char *cfgfile = "cygterm.cfg"; // CygTerm configuration file
975 char *tmpfile = "cygterm.tmp";
976 char cfg[MAX_PATH];
977 char tmp[MAX_PATH];
978 FILE *fp;
979 FILE *tmp_fp;
980 char buf[256], *head, *body;
981 char uimsg[MAX_UIMSG];
982 CButton *btn;
983
984 // writing to CygTerm config file
985 GetDlgItemText(IDC_TERM_EDIT, settings.term, sizeof(settings.term));
986 GetDlgItemText(IDC_TERM_TYPE, settings.term_type, sizeof(settings.term_type));
987 GetDlgItemText(IDC_PORT_START, settings.port_start, sizeof(settings.port_start));
988 GetDlgItemText(IDC_PORT_RANGE, settings.port_range, sizeof(settings.port_range));
989 GetDlgItemText(IDC_SHELL, settings.shell, sizeof(settings.shell));
990 GetDlgItemText(IDC_ENV1, settings.env1, sizeof(settings.env1));
991 GetDlgItemText(IDC_ENV2, settings.env2, sizeof(settings.env2));
992 btn = (CButton *)GetDlgItem(IDC_LOGIN_SHELL);
993 settings.login_shell = btn->GetCheck();
994 btn = (CButton *)GetDlgItem(IDC_HOME_CHDIR);
995 settings.home_chdir = btn->GetCheck();
996 btn = (CButton *)GetDlgItem(IDC_AGENT_PROXY);
997 settings.agent_proxy = btn->GetCheck();
998
999 strncpy_s(cfg, sizeof(cfg), ts.HomeDir, _TRUNCATE);
1000 AppendSlash(cfg, sizeof(cfg));
1001 strncat_s(cfg, sizeof(cfg), cfgfile, _TRUNCATE);
1002
1003 strncpy_s(tmp, sizeof(tmp), ts.HomeDir, _TRUNCATE);
1004 AppendSlash(tmp, sizeof(tmp));
1005 strncat_s(tmp, sizeof(tmp), tmpfile, _TRUNCATE);
1006
1007 fp = fopen(cfg, "r");
1008 tmp_fp = fopen(tmp, "w");
1009 if (tmp_fp == NULL) {
1010 get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
1011 get_lang_msg("MSG_CYGTERM_CONF_WRITEFILE_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
1012 "Can't write CygTerm configuration file (%d).", ts.UILanguageFile);
1013 _snprintf_s(buf, sizeof(buf), _TRUNCATE, ts.UIMsg, GetLastError());
1014 MessageBox(buf, uimsg, MB_ICONEXCLAMATION);
1015 } else {
1016 if (fp != NULL) {
1017 while (fgets(buf, sizeof(buf), fp) != NULL) {
1018 int len = strlen(buf);
1019
1020 if (buf[len - 1] == '\n')
1021 buf[len - 1] = '\0';
1022
1023 split_buffer(buf, '=', &head, &body);
1024 if (head == NULL || body == NULL) {
1025 fprintf(tmp_fp, "%s\n", buf);
1026 }
1027 else if (_stricmp(head, "TERM") == 0) {
1028 fprintf(tmp_fp, "TERM = %s\n", settings.term);
1029 settings.term[0] = '\0';
1030 }
1031 else if (_stricmp(head, "TERM_TYPE") == 0) {
1032 fprintf(tmp_fp, "TERM_TYPE = %s\n", settings.term_type);
1033 settings.term_type[0] = '\0';
1034 }
1035 else if (_stricmp(head, "PORT_START") == 0) {
1036 fprintf(tmp_fp, "PORT_START = %s\n", settings.port_start);
1037 settings.port_start[0] = '\0';
1038 }
1039 else if (_stricmp(head, "PORT_RANGE") == 0) {
1040 fprintf(tmp_fp, "PORT_RANGE = %s\n", settings.port_range);
1041 settings.port_range[0] = '\0';
1042 }
1043 else if (_stricmp(head, "SHELL") == 0) {
1044 fprintf(tmp_fp, "SHELL = %s\n", settings.shell);
1045 settings.shell[0] = '\0';
1046 }
1047 else if (_stricmp(head, "ENV_1") == 0) {
1048 fprintf(tmp_fp, "ENV_1 = %s\n", settings.env1);
1049 settings.env1[0] = '\0';
1050 }
1051 else if (_stricmp(head, "ENV_2") == 0) {
1052 fprintf(tmp_fp, "ENV_2 = %s\n", settings.env2);
1053 settings.env2[0] = '\0';
1054 }
1055 else if (_stricmp(head, "LOGIN_SHELL") == 0) {
1056 fprintf(tmp_fp, "LOGIN_SHELL = %s\n", (settings.login_shell == TRUE) ? "yes" : "no");
1057 settings.login_shell = FALSE;
1058 }
1059 else if (_stricmp(head, "HOME_CHDIR") == 0) {
1060 fprintf(tmp_fp, "HOME_CHDIR = %s\n", (settings.home_chdir == TRUE) ? "yes" : "no");
1061 settings.home_chdir = FALSE;
1062 }
1063 else if (_stricmp(head, "SSH_AGENT_PROXY") == 0) {
1064 fprintf(tmp_fp, "SSH_AGENT_PROXY = %s\n", (settings.agent_proxy == TRUE) ? "yes" : "no");
1065 settings.agent_proxy = FALSE;
1066 }
1067 else {
1068 fprintf(tmp_fp, "%s = %s\n", head, body);
1069 }
1070 }
1071 fclose(fp);
1072 }
1073 else {
1074 fputs("# CygTerm setting\n", tmp_fp);
1075 fputs("\n", tmp_fp);
1076 }
1077 if (settings.term[0] != '\0') {
1078 fprintf(tmp_fp, "TERM = %s\n", settings.term);
1079 }
1080 if (settings.term_type[0] != '\0') {
1081 fprintf(tmp_fp, "TERM_TYPE = %s\n", settings.term_type);
1082 }
1083 if (settings.port_start[0] != '\0') {
1084 fprintf(tmp_fp, "PORT_START = %s\n", settings.port_start);
1085 }
1086 if (settings.port_range[0] != '\0') {
1087 fprintf(tmp_fp, "PORT_RANGE = %s\n", settings.port_range);
1088 }
1089 if (settings.shell[0] != '\0') {
1090 fprintf(tmp_fp, "SHELL = %s\n", settings.shell);
1091 }
1092 if (settings.env1[0] != '\0') {
1093 fprintf(tmp_fp, "ENV_1 = %s\n", settings.env1);
1094 }
1095 if (settings.env2[0] != '\0') {
1096 fprintf(tmp_fp, "ENV_2 = %s\n", settings.env2);
1097 }
1098 if (settings.login_shell) {
1099 fprintf(tmp_fp, "LOGIN_SHELL = yes\n");
1100 }
1101 if (settings.home_chdir) {
1102 fprintf(tmp_fp, "HOME_CHDIR = yes\n");
1103 }
1104 if (settings.agent_proxy) {
1105 fprintf(tmp_fp, "SSH_AGENT_PROXY = yes\n");
1106 }
1107 fclose(tmp_fp);
1108
1109 if (remove(cfg) != 0 && errno != ENOENT) {
1110 get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
1111 get_lang_msg("MSG_CYGTERM_CONF_REMOVEFILE_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
1112 "Can't remove old CygTerm configuration file (%d).", ts.UILanguageFile);
1113 _snprintf_s(buf, sizeof(buf), _TRUNCATE, ts.UIMsg, GetLastError());
1114 MessageBox(buf, uimsg, MB_ICONEXCLAMATION);
1115 }
1116 else if (rename(tmp, cfg) != 0) {
1117 get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
1118 get_lang_msg("MSG_CYGTERM_CONF_RENAMEFILE_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
1119 "Can't rename CygTerm configuration file (%d).", ts.UILanguageFile);
1120 _snprintf_s(buf, sizeof(buf), _TRUNCATE, ts.UIMsg, GetLastError());
1121 MessageBox(buf, uimsg, MB_ICONEXCLAMATION);
1122 }
1123 }
1124
1125 // Cygwin install path
1126 GetDlgItemText(IDC_CYGWIN_PATH, ts.CygwinDirectory, sizeof(ts.CygwinDirectory));
1127 }
1128
1129
1130
1131 // CAddSettingPropSheetDlg
1132
1133 IMPLEMENT_DYNAMIC(CAddSettingPropSheetDlg, CPropertySheet)
1134
1135 CAddSettingPropSheetDlg::CAddSettingPropSheetDlg(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
1136 :CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
1137 {
1138 AddPage(&m_GeneralPage);
1139 AddPage(&m_VisualPage);
1140 AddPage(&m_LogPage);
1141 AddPage(&m_CygwinPage);
1142
1143 m_psh.dwFlags |= PSH_NOAPPLYNOW;
1144 }
1145
1146 CAddSettingPropSheetDlg::CAddSettingPropSheetDlg(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
1147 :CPropertySheet(pszCaption, pParentWnd, iSelectPage)
1148 {
1149 AddPage(&m_GeneralPage);
1150 AddPage(&m_CopypastePage);
1151 AddPage(&m_VisualPage);
1152 AddPage(&m_LogPage);
1153 AddPage(&m_CygwinPage);
1154
1155 m_psh.dwFlags |= PSH_NOAPPLYNOW;
1156 }
1157
1158 CAddSettingPropSheetDlg::~CAddSettingPropSheetDlg()
1159 {
1160 }
1161
1162
1163 BEGIN_MESSAGE_MAP(CAddSettingPropSheetDlg, CPropertySheet)
1164 END_MESSAGE_MAP()
1165
1166
1167 // CAddSettingPropSheetDlg ƒ�ƒbƒZ�[ƒW ƒnƒ“ƒhƒ‰
1168
1169 BOOL CAddSettingPropSheetDlg::OnInitDialog()
1170 {
1171 CPropertySheet::OnInitDialog();
1172
1173 get_lang_msg("DLG_TABSHEET_TITLE", ts.UIMsg, sizeof(ts.UIMsg),
1174 "Tera Term: Additional settings", ts.UILanguageFile);
1175 SetWindowText(ts.UIMsg);
1176
1177 CTabCtrl *tab = GetTabControl();
1178 TCITEM tc;
1179 tc.mask = TCIF_TEXT;
1180
1181 get_lang_msg("DLG_TABSHEET_TITLE_GENERAL", ts.UIMsg, sizeof(ts.UIMsg),
1182 "General", ts.UILanguageFile);
1183 tc.pszText = ts.UIMsg;
1184 tab->SetItem(0, &tc);
1185
1186 get_lang_msg("DLG_TABSHEET_TITLE_COPYPASTE", ts.UIMsg, sizeof(ts.UIMsg),
1187 "Copy and Paste", ts.UILanguageFile);
1188 tc.pszText = ts.UIMsg;
1189 tab->SetItem(1, &tc);
1190
1191 get_lang_msg("DLG_TABSHEET_TITLE_VISUAL", ts.UIMsg, sizeof(ts.UIMsg),
1192 "Visual", ts.UILanguageFile);
1193 tc.pszText = ts.UIMsg;
1194 tab->SetItem(2, &tc);
1195
1196 get_lang_msg("DLG_TABSHEET_TITLE_Log", ts.UIMsg, sizeof(ts.UIMsg),
1197 "Log", ts.UILanguageFile);
1198 tc.pszText = ts.UIMsg;
1199 tab->SetItem(3, &tc);
1200
1201 get_lang_msg("DLG_TABSHEET_TITLE_CYGWIN", ts.UIMsg, sizeof(ts.UIMsg),
1202 "Cygwin", ts.UILanguageFile);
1203 tc.pszText = ts.UIMsg;
1204 tab->SetItem(4, &tc);
1205
1206 return FALSE;
1207 }

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