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 2525 - (hide annotations) (download) (as text)
Wed May 21 06:29:32 2008 UTC (15 years, 10 months ago) by doda
Original Path: teraterm/trunk/teraterm/addsetting.cpp
File MIME type: text/x-c++src
File size: 39174 byte(s)
Additional SettingsのGeneralタブに、Mouse Event Trackingのチェックボックスを追加。

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

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