Develop and Download Open Source Software

Browse Subversion Repository

Annotation of /trunk/teraterm/teraterm/addsetting.cpp

Parent Directory Parent Directory | Revision Log Revision Log


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

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