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 2619 - (show annotations) (download) (as text)
Wed Nov 19 11:43:17 2008 UTC (15 years, 4 months ago) by doda
Original Path: teraterm/trunk/teraterm/addsetting.cpp
File MIME type: text/x-c++src
File size: 41316 byte(s)
区切り文字設定を、全般タブからコピーと貼り付けタブへ移動。 [Ttssh2-devel 1223]

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

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