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 2572 - (hide annotations) (download) (as text)
Fri Aug 1 17:13:07 2008 UTC (15 years, 8 months ago) by maya
Original Path: teraterm/trunk/teraterm/addsetting.cpp
File MIME type: text/x-c++src
File size: 39403 byte(s)
OPENFILENAME_SIZE を取得する関数を作成した。

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

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