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 3727 - (hide annotations) (download) (as text)
Fri Jan 8 09:17:05 2010 UTC (14 years, 3 months ago) by doda
Original Path: trunk/teraterm/teraterm/addsetting.cpp
File MIME type: text/x-c++src
File size: 52683 byte(s)
Additional Settings で ClearOnResize を設定できるようにした。

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

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