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 2603 - (hide annotations) (download) (as text)
Sat Nov 1 12:31:02 2008 UTC (15 years, 5 months ago) by maya
Original Path: teraterm/trunk/teraterm/addsetting.cpp
File MIME type: text/x-c++src
File size: 39798 byte(s)
リモートからのタイトルを、標準のタイトルとは別のバッファに入れるようにした。
リモートからのタイトルを、標準のタイトルの前または後に表示できるようにした。
AcceptTitleChangeRequest の設定値を off/on から off/overwrite/before/after に変更した。互換性のため on は overwrite として扱う。

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

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