Develop and Download Open Source Software

Browse Subversion Repository

Annotation of /branches/ttcomtester/teraterm/teraterm/addsetting.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3667 - (hide annotations) (download) (as text)
Wed Oct 28 11:42:00 2009 UTC (14 years, 5 months ago) by doda
Original Path: trunk/teraterm/teraterm/addsetting.cpp
File MIME type: text/x-c++src
File size: 52040 byte(s)
URLUnderlineの設定をAdditional Settingsダイアログに追加。

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

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