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

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