Develop and Download Open Source Software

Browse Subversion Repository

Annotation of /branches/ttcomtester/teraterm/teraterm/addsetting.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2508 - (hide annotations) (download) (as text)
Tue May 13 14:52:26 2008 UTC (15 years, 11 months ago) by maya
Original Path: teraterm/trunk/teraterm/addsetting.cpp
File MIME type: text/x-c++src
File size: 38637 byte(s)
デフォルトのログファイル名が入力されていなかった場合に、不正なエラーを出す問題を修正した。

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

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