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 3735 - (show annotations) (download) (as text)
Tue Jan 12 16:41:13 2010 UTC (14 years, 3 months ago) by yutakapon
File MIME type: text/x-c++src
File size: 53333 byte(s)
dditional Settings ダイアログに CursorCtrlSequence を追加した。

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

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