Open-Source-Software-Entwicklung und Downloads

Browse Subversion Repository

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2610 - (hide annotations) (download) (as text)
Wed Nov 5 14:27:54 2008 UTC (15 years, 6 months ago) by doda
Original Path: teraterm/trunk/teraterm/addsetting.cpp
File MIME type: text/x-c++src
File size: 41204 byte(s)
Additional SettingsダイアログのCygwinタブにSSH_AGENT_PROXYを追加。

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

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