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 2619 - (hide annotations) (download) (as text)
Wed Nov 19 11:43:17 2008 UTC (15 years, 4 months ago) by doda
Original Path: teraterm/trunk/teraterm/addsetting.cpp
File MIME type: text/x-c++src
File size: 41316 byte(s)
区切り文字設定を、全般タブからコピーと貼り付けタブへ移動。 [Ttssh2-devel 1223]

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

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