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 5613 - (hide annotations) (download) (as text)
Sat Jun 21 12:29:59 2014 UTC (9 years, 9 months ago) by yutakapon
Original Path: trunk/teraterm/teraterm/addsetting.cpp
File MIME type: text/x-c++src
File size: 76423 byte(s)
チケット #33912
「TeraTerm:その他の設定」画面の「ログ」タブに、手動ログ採取時に選択できる
下記オプション群を設定できるようにした。
 ・バイナリ
 ・追記
 ・プレーンテキスト
 ・タイムスタンプ
 ・ダイアログを非表示
 ・現在バッファを含む

1 maya 3227 /*
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 yutakapon 4916 #include "ttcommon.h"
15 yutakapon 5171 #include "ttftypes.h"
16 maya 3227
17     mouse_cursor_t MouseCursor[] = {
18     {"ARROW", IDC_ARROW},
19     {"IBEAM", IDC_IBEAM},
20     {"CROSS", IDC_CROSS},
21     {"HAND", IDC_HAND},
22     {NULL, NULL},
23     };
24     #define MOUSE_CURSOR_MAX (sizeof(MouseCursor)/sizeof(MouseCursor[0]) - 1)
25    
26     // –{‘Ì‚Í vtwin.cpp
27     extern void SetWindowStyle(TTTSet *ts);
28    
29     void split_buffer(char *buffer, int delimiter, char **head, char **body)
30     {
31     char *p1, *p2;
32    
33     *head = *body = NULL;
34    
35     if (!isalnum(*buffer) || (p1 = strchr(buffer, delimiter)) == NULL) {
36     return;
37     }
38    
39     *head = buffer;
40    
41     p2 = buffer;
42     while (p2 < p1 && !isspace(*p2)) {
43     p2++;
44     }
45    
46     *p2 = '\0';
47    
48     p1++;
49     while (*p1 && isspace(*p1)) {
50     p1++;
51     }
52    
53     *body = p1;
54     }
55    
56    
57     static void SetupRGBbox(HWND hDlgWnd, int index)
58     {
59     HWND hWnd;
60     BYTE c;
61     char buf[10];
62    
63     hWnd = GetDlgItem(hDlgWnd, IDC_COLOR_RED);
64     c = GetRValue(ts.ANSIColor[index]);
65     _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%d", c);
66     SendMessage(hWnd, WM_SETTEXT , 0, (LPARAM)buf);
67    
68     hWnd = GetDlgItem(hDlgWnd, IDC_COLOR_GREEN);
69     c = GetGValue(ts.ANSIColor[index]);
70     _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%d", c);
71     SendMessage(hWnd, WM_SETTEXT , 0, (LPARAM)buf);
72    
73     hWnd = GetDlgItem(hDlgWnd, IDC_COLOR_BLUE);
74     c = GetBValue(ts.ANSIColor[index]);
75     _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%d", c);
76     SendMessage(hWnd, WM_SETTEXT , 0, (LPARAM)buf);
77     }
78    
79    
80    
81     // CGeneralPropPageDlg ƒ_ƒCƒAƒ�ƒO
82    
83     IMPLEMENT_DYNAMIC(CGeneralPropPageDlg, CPropertyPage)
84    
85     CGeneralPropPageDlg::CGeneralPropPageDlg()
86     : CPropertyPage(CGeneralPropPageDlg::IDD)
87     {
88     }
89    
90     CGeneralPropPageDlg::~CGeneralPropPageDlg()
91     {
92     if (DlgGeneralFont != NULL) {
93     DeleteObject(DlgGeneralFont);
94     }
95     }
96    
97     BEGIN_MESSAGE_MAP(CGeneralPropPageDlg, CPropertyPage)
98     END_MESSAGE_MAP()
99    
100     // CGeneralPropPageDlg ƒ�ƒbƒZ�[ƒW ƒnƒ“ƒhƒ‰
101    
102     BOOL CGeneralPropPageDlg::OnInitDialog()
103     {
104     char uimsg[MAX_UIMSG];
105     char buf[64];
106 maya 3777 CButton *btn;
107 maya 3227
108     CPropertyPage::OnInitDialog();
109    
110     font = (HFONT)SendMessage(WM_GETFONT, 0, 0);
111     GetObject(font, sizeof(LOGFONT), &logfont);
112     if (get_lang_font("DLG_TAHOMA_FONT", GetSafeHwnd(), &logfont, &DlgGeneralFont, ts.UILanguageFile)) {
113     SendDlgItemMessage(IDC_CLICKABLE_URL, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0));
114     SendDlgItemMessage(IDC_DISABLE_SENDBREAK, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0));
115     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     SendDlgItemMessage(IDC_SCROLL_LINE, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0));
118     SendDlgItemMessage(IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0));
119 doda 3727 SendDlgItemMessage(IDC_CLEAR_ON_RESIZE, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0));
120 doda 4043 SendDlgItemMessage(IDC_CURSOR_CHANGE_IME, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0));
121 maya 3227 }
122     else {
123     DlgGeneralFont = NULL;
124     }
125    
126     GetDlgItemText(IDC_CLICKABLE_URL, uimsg, sizeof(uimsg));
127     get_lang_msg("DLG_TAB_GENERAL_CLICKURL", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
128     SetDlgItemText(IDC_CLICKABLE_URL, ts.UIMsg);
129     GetDlgItemText(IDC_DISABLE_SENDBREAK, uimsg, sizeof(uimsg));
130     get_lang_msg("DLG_TAB_GENERAL_DISABLESENDBREAK", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
131     SetDlgItemText(IDC_DISABLE_SENDBREAK, ts.UIMsg);
132     GetDlgItemText(IDC_ACCEPT_BROADCAST, uimsg, sizeof(uimsg));
133     get_lang_msg("DLG_TAB_GENERAL_ACCEPTBROADCAST", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
134     SetDlgItemText(IDC_ACCEPT_BROADCAST, ts.UIMsg);
135     GetDlgItemText(IDC_MOUSEWHEEL_SCROLL_LINE, uimsg, sizeof(uimsg));
136     get_lang_msg("DLG_TAB_GENERAL_MOUSEWHEEL_SCROLL_LINE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
137     SetDlgItemText(IDC_MOUSEWHEEL_SCROLL_LINE, ts.UIMsg);
138     GetDlgItemText(IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE, uimsg, sizeof(uimsg));
139     get_lang_msg("DLG_TAB_GENERAL_AUTOSCROLL_ONLY_IN_BOTTOM_LINE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
140     SetDlgItemText(IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE, ts.UIMsg);
141 doda 3727 GetDlgItemText(IDC_CLEAR_ON_RESIZE, uimsg, sizeof(uimsg));
142     get_lang_msg("DLG_TAB_GENERAL_CLEAR_ON_RESIZE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
143     SetDlgItemText(IDC_CLEAR_ON_RESIZE, ts.UIMsg);
144 doda 4043 GetDlgItemText(IDC_CURSOR_CHANGE_IME, uimsg, sizeof(uimsg));
145     get_lang_msg("DLG_TAB_GENERAL_CURSOR_CHANGE_IME", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
146     SetDlgItemText(IDC_CURSOR_CHANGE_IME, ts.UIMsg);
147 maya 3227
148     // (1)DisableAcceleratorSendBreak
149     btn = (CButton *)GetDlgItem(IDC_DISABLE_SENDBREAK);
150     btn->SetCheck(ts.DisableAcceleratorSendBreak);
151    
152     // (2)EnableClickableUrl
153     btn = (CButton *)GetDlgItem(IDC_CLICKABLE_URL);
154     btn->SetCheck(ts.EnableClickableUrl);
155    
156     // (3)AcceptBroadcast 337: 2007/03/20
157     btn = (CButton *)GetDlgItem(IDC_ACCEPT_BROADCAST);
158     btn->SetCheck(ts.AcceptBroadcast);
159    
160     // (4)IDC_MOUSEWHEEL_SCROLL_LINE
161     _snprintf_s(buf, sizeof(buf), "%d", ts.MouseWheelScrollLine);
162     SetDlgItemText(IDC_SCROLL_LINE, buf);
163    
164     // (5)IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE
165     btn = (CButton *)GetDlgItem(IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE);
166     btn->SetCheck(ts.AutoScrollOnlyInBottomLine);
167    
168 maya 3777 // (6)IDC_CLEAR_ON_RESIZE
169     btn = (CButton *)GetDlgItem(IDC_CLEAR_ON_RESIZE);
170     btn->SetCheck((ts.TermFlag & TF_CLEARONRESIZE) != 0);
171    
172 doda 4043 // (7)IDC_CURSOR_CHANGE_IME
173     btn = (CButton *)GetDlgItem(IDC_CURSOR_CHANGE_IME);
174     btn->SetCheck((ts.WindowFlag & WF_IMECURSORCHANGE) != 0);
175    
176 maya 3777 // ƒ_ƒCƒAƒ�ƒO‚ɃtƒH�[ƒJƒX‚ð“–‚Ä‚é (2004.12.7 yutaka)
177     ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_CLICKABLE_URL));
178    
179     return FALSE;
180     }
181    
182     void CGeneralPropPageDlg::OnOK()
183     {
184     CButton *btn;
185     char buf[64];
186     int val;
187    
188     // (1)
189     btn = (CButton *)GetDlgItem(IDC_DISABLE_SENDBREAK);
190     ts.DisableAcceleratorSendBreak = btn->GetCheck();
191    
192     // (2)
193     btn = (CButton *)GetDlgItem(IDC_CLICKABLE_URL);
194     ts.EnableClickableUrl = btn->GetCheck();
195    
196     // (3) 337: 2007/03/20
197     btn = (CButton *)GetDlgItem(IDC_ACCEPT_BROADCAST);
198     ts.AcceptBroadcast = btn->GetCheck();
199    
200     // (4)IDC_MOUSEWHEEL_SCROLL_LINE
201     GetDlgItemText(IDC_SCROLL_LINE, buf, sizeof(buf));
202     val = atoi(buf);
203     if (val > 0)
204     ts.MouseWheelScrollLine = val;
205    
206     // (5)IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE
207     btn = (CButton *)GetDlgItem(IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE);
208     ts.AutoScrollOnlyInBottomLine = btn->GetCheck();
209    
210     // (6)IDC_CLEAR_ON_RESIZE
211     btn = (CButton *)GetDlgItem(IDC_CLEAR_ON_RESIZE);
212     if (((ts.TermFlag & TF_CLEARONRESIZE) != 0) != btn->GetCheck()) {
213     ts.TermFlag ^= TF_CLEARONRESIZE;
214     }
215 doda 4043
216     // (7)IDC_CURSOR_CHANGE_IME
217     btn = (CButton *)GetDlgItem(IDC_CURSOR_CHANGE_IME);
218     if (((ts.WindowFlag & WF_IMECURSORCHANGE) != 0) != btn->GetCheck()) {
219     ts.WindowFlag ^= WF_IMECURSORCHANGE;
220     }
221 maya 3777 }
222    
223    
224    
225     // CSequencePropPageDlg ƒ_ƒCƒAƒ�ƒO
226    
227     IMPLEMENT_DYNAMIC(CSequencePropPageDlg, CPropertyPage)
228    
229     CSequencePropPageDlg::CSequencePropPageDlg()
230     : CPropertyPage(CSequencePropPageDlg::IDD)
231     {
232     }
233    
234     CSequencePropPageDlg::~CSequencePropPageDlg()
235     {
236     if (DlgSequenceFont != NULL) {
237     DeleteObject(DlgSequenceFont);
238     }
239     }
240    
241     BEGIN_MESSAGE_MAP(CSequencePropPageDlg, CPropertyPage)
242     END_MESSAGE_MAP()
243    
244     // CSequencePropPageDlg ƒ�ƒbƒZ�[ƒW ƒnƒ“ƒhƒ‰
245    
246     BOOL CSequencePropPageDlg::OnInitDialog()
247     {
248     char uimsg[MAX_UIMSG];
249     CButton *btn, *btn2;
250     CComboBox *cmb;
251    
252     CPropertyPage::OnInitDialog();
253    
254     font = (HFONT)SendMessage(WM_GETFONT, 0, 0);
255     GetObject(font, sizeof(LOGFONT), &logfont);
256     if (get_lang_font("DLG_TAHOMA_FONT", GetSafeHwnd(), &logfont, &DlgSequenceFont, ts.UILanguageFile)) {
257     SendDlgItemMessage(IDC_ACCEPT_MOUSE_EVENT_TRACKING, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0));
258     SendDlgItemMessage(IDC_DISABLE_MOUSE_TRACKING_CTRL, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0));
259     SendDlgItemMessage(IDC_ACCEPT_TITLE_CHANGING_LABEL, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0));
260     SendDlgItemMessage(IDC_ACCEPT_TITLE_CHANGING, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0));
261 doda 3782 SendDlgItemMessage(IDC_TITLE_REPORT_LABEL, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0));
262     SendDlgItemMessage(IDC_TITLE_REPORT, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0));
263     SendDlgItemMessage(IDC_WINDOW_CTRL, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0));
264     SendDlgItemMessage(IDC_WINDOW_REPORT, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0));
265 maya 3777 SendDlgItemMessage(IDC_CURSOR_CTRL_SEQ, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0));
266 doda 4702 SendDlgItemMessage(IDC_CLIPBOARD_ACCESS_LABEL, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0));
267     SendDlgItemMessage(IDC_CLIPBOARD_ACCESS, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0));
268 maya 3777 }
269     else {
270     DlgSequenceFont = NULL;
271     }
272    
273     GetDlgItemText(IDC_ACCEPT_MOUSE_EVENT_TRACKING, uimsg, sizeof(uimsg));
274     get_lang_msg("DLG_TAB_SEQENCE_ACCEPT_MOUSE_EVENT_TRACKING", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
275     SetDlgItemText(IDC_ACCEPT_MOUSE_EVENT_TRACKING, ts.UIMsg);
276     GetDlgItemText(IDC_DISABLE_MOUSE_TRACKING_CTRL, uimsg, sizeof(uimsg));
277     get_lang_msg("DLG_TAB_SEQENCE_DISABLE_MOUSE_TRACKING_CTRL", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
278     SetDlgItemText(IDC_DISABLE_MOUSE_TRACKING_CTRL, ts.UIMsg);
279     GetDlgItemText(IDC_ACCEPT_TITLE_CHANGING_LABEL, uimsg, sizeof(uimsg));
280     get_lang_msg("DLG_TAB_SEQENCE_ACCEPT_TITLE_CHANGING", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
281     SetDlgItemText(IDC_ACCEPT_TITLE_CHANGING_LABEL, ts.UIMsg);
282    
283     get_lang_msg("DLG_TAB_SEQENCE_ACCEPT_TITLE_CHANGING_OFF", ts.UIMsg, sizeof(ts.UIMsg), "off", ts.UILanguageFile);
284     SendDlgItemMessage(IDC_ACCEPT_TITLE_CHANGING, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg);
285     get_lang_msg("DLG_TAB_SEQENCE_ACCEPT_TITLE_CHANGING_OVERWRITE", ts.UIMsg, sizeof(ts.UIMsg), "overwrite", ts.UILanguageFile);
286     SendDlgItemMessage(IDC_ACCEPT_TITLE_CHANGING, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg);
287     get_lang_msg("DLG_TAB_SEQENCE_ACCEPT_TITLE_CHANGING_AHEAD", ts.UIMsg, sizeof(ts.UIMsg), "ahead", ts.UILanguageFile);
288     SendDlgItemMessage(IDC_ACCEPT_TITLE_CHANGING, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg);
289     get_lang_msg("DLG_TAB_SEQENCE_ACCEPT_TITLE_CHANGING_LAST", ts.UIMsg, sizeof(ts.UIMsg), "last", ts.UILanguageFile);
290     SendDlgItemMessage(IDC_ACCEPT_TITLE_CHANGING, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg);
291    
292     GetDlgItemText(IDC_CURSOR_CTRL_SEQ, uimsg, sizeof(uimsg));
293     get_lang_msg("DLG_TAB_SEQENCE_CURSOR_CTRL", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
294     SetDlgItemText(IDC_CURSOR_CTRL_SEQ, ts.UIMsg);
295     GetDlgItemText(IDC_WINDOW_CTRL, uimsg, sizeof(uimsg));
296     get_lang_msg("DLG_TAB_SEQENCE_WINDOW_CTRL", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
297     SetDlgItemText(IDC_WINDOW_CTRL, ts.UIMsg);
298     GetDlgItemText(IDC_WINDOW_REPORT, uimsg, sizeof(uimsg));
299     get_lang_msg("DLG_TAB_SEQENCE_WINDOW_REPORT", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
300     SetDlgItemText(IDC_WINDOW_REPORT, ts.UIMsg);
301     GetDlgItemText(IDC_TITLE_REPORT_LABEL, uimsg, sizeof(uimsg));
302     get_lang_msg("DLG_TAB_SEQENCE_TITLE_REPORT", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
303     SetDlgItemText(IDC_TITLE_REPORT_LABEL, ts.UIMsg);
304    
305     get_lang_msg("DLG_TAB_SEQENCE_TITLE_REPORT_IGNORE", ts.UIMsg, sizeof(ts.UIMsg), "ignore", ts.UILanguageFile);
306     SendDlgItemMessage(IDC_TITLE_REPORT, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg);
307     get_lang_msg("DLG_TAB_SEQENCE_TITLE_REPORT_ACCEPT", ts.UIMsg, sizeof(ts.UIMsg), "accept", ts.UILanguageFile);
308     SendDlgItemMessage(IDC_TITLE_REPORT, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg);
309     get_lang_msg("DLG_TAB_SEQENCE_TITLE_REPORT_EMPTY", ts.UIMsg, sizeof(ts.UIMsg), "empty", ts.UILanguageFile);
310     SendDlgItemMessage(IDC_TITLE_REPORT, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg);
311    
312 doda 4702 GetDlgItemText(IDC_CLIPBOARD_ACCESS_LABEL, uimsg, sizeof(uimsg));
313     get_lang_msg("DLG_TAB_SEQENCE_CLIPBOARD_ACCESS", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
314     SetDlgItemText(IDC_CLIPBOARD_ACCESS_LABEL, ts.UIMsg);
315    
316     get_lang_msg("DLG_TAB_SEQENCE_CLIPBOARD_ACCESS_OFF", ts.UIMsg, sizeof(ts.UIMsg), "off", ts.UILanguageFile);
317     SendDlgItemMessage(IDC_CLIPBOARD_ACCESS, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg);
318     get_lang_msg("DLG_TAB_SEQENCE_CLIPBOARD_ACCESS_WRITE", ts.UIMsg, sizeof(ts.UIMsg), "write only", ts.UILanguageFile);
319     SendDlgItemMessage(IDC_CLIPBOARD_ACCESS, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg);
320     get_lang_msg("DLG_TAB_SEQENCE_CLIPBOARD_ACCESS_READ", ts.UIMsg, sizeof(ts.UIMsg), "read only", ts.UILanguageFile);
321     SendDlgItemMessage(IDC_CLIPBOARD_ACCESS, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg);
322     get_lang_msg("DLG_TAB_SEQENCE_CLIPBOARD_ACCESS_ON", ts.UIMsg, sizeof(ts.UIMsg), "read/write", ts.UILanguageFile);
323     SendDlgItemMessage(IDC_CLIPBOARD_ACCESS, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg);
324    
325 maya 3777 // (1)IDC_ACCEPT_MOUSE_EVENT_TRACKING
326 maya 3227 btn = (CButton *)GetDlgItem(IDC_ACCEPT_MOUSE_EVENT_TRACKING);
327     btn2 = (CButton *)GetDlgItem(IDC_DISABLE_MOUSE_TRACKING_CTRL);
328     btn->SetCheck(ts.MouseEventTracking);
329     if (ts.MouseEventTracking) {
330     btn2->EnableWindow(TRUE);
331     } else {
332     btn2->EnableWindow(FALSE);
333     }
334    
335 maya 3777 // (2)IDC_DISABLE_MOUSE_TRACKING_CTRL
336 maya 3227 btn2->SetCheck(ts.DisableMouseTrackingByCtrl);
337    
338 maya 3777 // (3)IDC_ACCEPT_TITLE_CHANGING
339 maya 3227 cmb = (CComboBox *)GetDlgItem(IDC_ACCEPT_TITLE_CHANGING);
340     cmb->SetCurSel(ts.AcceptTitleChangeRequest);
341    
342 maya 3777 // (4)IDC_TITLE_REPORT
343     cmb = (CComboBox *)GetDlgItem(IDC_TITLE_REPORT);
344     switch (ts.WindowFlag & WF_TITLEREPORT) {
345     case IdTitleReportIgnore:
346     cmb->SetCurSel(0);
347     break;
348     case IdTitleReportAccept:
349     cmb->SetCurSel(1);
350     break;
351     default: // IdTitleReportEmpty
352     cmb->SetCurSel(2);
353     break;
354     }
355 doda 3727
356 maya 3777 // (5)IDC_WINDOW_CTRL
357     btn = (CButton *)GetDlgItem(IDC_WINDOW_CTRL);
358     btn->SetCheck((ts.WindowFlag & WF_WINDOWCHANGE) != 0);
359    
360     // (6)IDC_WINDOW_REPORT
361     btn = (CButton *)GetDlgItem(IDC_WINDOW_REPORT);
362     btn->SetCheck((ts.WindowFlag & WF_WINDOWREPORT) != 0);
363    
364     // (7)IDC_CURSOR_CTRL_SEQ
365 yutakapon 3735 btn = (CButton *)GetDlgItem(IDC_CURSOR_CTRL_SEQ);
366     btn->SetCheck((ts.WindowFlag & WF_CURSORCHANGE) != 0);
367    
368 doda 4702 // (8)IDC_CLIPBOARD_ACCESS
369     cmb = (CComboBox *)GetDlgItem(IDC_CLIPBOARD_ACCESS);
370     switch (ts.CtrlFlag & CSF_CBRW) {
371     case CSF_CBRW:
372     cmb->SetCurSel(3);
373     break;
374     case CSF_CBREAD:
375     cmb->SetCurSel(2);
376     break;
377     case CSF_CBWRITE:
378     cmb->SetCurSel(1);
379     break;
380     default: // off
381     cmb->SetCurSel(0);
382     break;
383     }
384    
385 maya 3227 // ƒ_ƒCƒAƒ�ƒO‚ɃtƒH�[ƒJƒX‚ð“–‚Ä‚é (2004.12.7 yutaka)
386     ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_CLICKABLE_URL));
387    
388     return FALSE;
389     }
390    
391 maya 3777 BOOL CSequencePropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam)
392 maya 3227 {
393     CButton *btn, *btn2;
394    
395     switch (wParam) {
396     case IDC_ACCEPT_MOUSE_EVENT_TRACKING | (BN_CLICKED << 16):
397     btn = (CButton *)GetDlgItem(IDC_ACCEPT_MOUSE_EVENT_TRACKING);
398     btn2 = (CButton *)GetDlgItem(IDC_DISABLE_MOUSE_TRACKING_CTRL);
399     if (btn->GetCheck()) {
400     btn2->EnableWindow(TRUE);
401     } else {
402     btn2->EnableWindow(FALSE);
403     }
404     return TRUE;
405     }
406     return CPropertyPage::OnCommand(wParam, lParam);
407     }
408    
409 maya 3777 void CSequencePropPageDlg::OnOK()
410 maya 3227 {
411     CButton *btn;
412     CComboBox *cmb;
413    
414 maya 3777 // (1)IDC_ACCEPT_MOUSE_EVENT_TRACKING
415 maya 3227 btn = (CButton *)GetDlgItem(IDC_ACCEPT_MOUSE_EVENT_TRACKING);
416     ts.MouseEventTracking = btn->GetCheck();
417    
418 maya 3777 // (2)IDC_DISABLE_MOUSE_TRACKING_CTRL
419 maya 3227 btn = (CButton *)GetDlgItem(IDC_DISABLE_MOUSE_TRACKING_CTRL);
420     ts.DisableMouseTrackingByCtrl = btn->GetCheck();
421    
422 maya 3777 // (3)IDC_ACCEPT_TITLE_CHANGING
423 maya 3227 cmb = (CComboBox *)GetDlgItem(IDC_ACCEPT_TITLE_CHANGING);
424     ts.AcceptTitleChangeRequest = cmb->GetCurSel();
425 doda 3727
426 maya 3777 // (4)IDC_TITLE_REPORT
427     cmb = (CComboBox *)GetDlgItem(IDC_TITLE_REPORT);
428     switch (cmb->GetCurSel()) {
429     case 0:
430     ts.WindowFlag &= ~WF_TITLEREPORT;
431     break;
432     case 1:
433     ts.WindowFlag &= ~WF_TITLEREPORT;
434     ts.WindowFlag |= IdTitleReportAccept;
435     break;
436     default: // 2
437     ts.WindowFlag |= IdTitleReportEmpty;
438     break;
439 doda 3727 }
440 yutakapon 3735
441 maya 3777 // (5)IDC_WINDOW_CTRL
442     btn = (CButton *)GetDlgItem(IDC_WINDOW_CTRL);
443     if (((ts.WindowFlag & WF_WINDOWCHANGE) != 0) != btn->GetCheck()) {
444     ts.WindowFlag ^= WF_WINDOWCHANGE;
445     }
446    
447     // (6)IDC_WINDOW_REPORT
448     btn = (CButton *)GetDlgItem(IDC_WINDOW_REPORT);
449     if (((ts.WindowFlag & WF_WINDOWREPORT) != 0) != btn->GetCheck()) {
450     ts.WindowFlag ^= WF_WINDOWREPORT;
451     }
452    
453     // (7)IDC_CURSOR_CTRL_SEQ
454 yutakapon 3735 btn = (CButton *)GetDlgItem(IDC_CURSOR_CTRL_SEQ);
455     if (((ts.WindowFlag & WF_CURSORCHANGE) != 0) != btn->GetCheck()) {
456     ts.WindowFlag ^= WF_CURSORCHANGE;
457     }
458 maya 3777
459 doda 4702 // (8)IDC_TITLE_REPORT
460     cmb = (CComboBox *)GetDlgItem(IDC_CLIPBOARD_ACCESS);
461     switch (cmb->GetCurSel()) {
462     case 0: // off
463     ts.CtrlFlag &= ~CSF_CBRW;
464     break;
465     case 1: // write only
466     ts.CtrlFlag &= ~CSF_CBRW;
467     ts.CtrlFlag |= CSF_CBWRITE;
468     break;
469     case 2: // read only
470     ts.CtrlFlag &= ~CSF_CBRW;
471     ts.CtrlFlag |= CSF_CBREAD;
472     break;
473     default: // read/write
474     ts.CtrlFlag |= CSF_CBRW;
475     break;
476     }
477 maya 3227 }
478    
479    
480    
481     // CCopypastePropPageDlg ƒ_ƒCƒAƒ�ƒO
482    
483     IMPLEMENT_DYNAMIC(CCopypastePropPageDlg, CPropertyPage)
484    
485     CCopypastePropPageDlg::CCopypastePropPageDlg()
486     : CPropertyPage(CCopypastePropPageDlg::IDD)
487     {
488     }
489    
490     CCopypastePropPageDlg::~CCopypastePropPageDlg()
491     {
492     if (DlgCopypasteFont != NULL) {
493     DeleteObject(DlgCopypasteFont);
494     }
495     }
496    
497     BEGIN_MESSAGE_MAP(CCopypastePropPageDlg, CPropertyPage)
498     END_MESSAGE_MAP()
499    
500     // CCopypastePropPageDlg ƒ�ƒbƒZ�[ƒW ƒnƒ“ƒhƒ‰
501    
502     BOOL CCopypastePropPageDlg::OnInitDialog()
503     {
504     char uimsg[MAX_UIMSG];
505     CButton *btn, *btn2;
506 yutakapon 3558 CEdit *edit;
507 maya 3306 char buf[64];
508 maya 3227
509     CPropertyPage::OnInitDialog();
510    
511     font = (HFONT)SendMessage(WM_GETFONT, 0, 0);
512     GetObject(font, sizeof(LOGFONT), &logfont);
513     if (get_lang_font("DLG_TAHOMA_FONT", GetSafeHwnd(), &logfont, &DlgCopypasteFont, ts.UILanguageFile)) {
514     SendDlgItemMessage(IDC_LINECOPY, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0));
515     SendDlgItemMessage(IDC_DISABLE_PASTE_RBUTTON, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0));
516     SendDlgItemMessage(IDC_CONFIRM_PASTE_RBUTTON, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0));
517 doda 3594 SendDlgItemMessage(IDC_DISABLE_PASTE_MBUTTON, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0));
518 maya 3227 SendDlgItemMessage(IDC_SELECT_LBUTTON, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0));
519     SendDlgItemMessage(IDC_CONFIRM_CHANGE_PASTE, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0));
520 maya 4142 SendDlgItemMessage(IDC_CONFIRM_STRING_FILE_LABEL, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0));
521     SendDlgItemMessage(IDC_CONFIRM_STRING_FILE, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0));
522     SendDlgItemMessage(IDC_CONFIRM_STRING_FILE_PATH, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0));
523 maya 3227 SendDlgItemMessage(IDC_DELIMITER, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0));
524     SendDlgItemMessage(IDC_DELIM_LIST, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0));
525 maya 3306 SendDlgItemMessage(IDC_PASTEDELAY_LABEL, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0));
526     SendDlgItemMessage(IDC_PASTEDELAY_EDIT, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0));
527     SendDlgItemMessage(IDC_PASTEDELAY_LABEL2, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0));
528 maya 3227 }
529     else {
530     DlgCopypasteFont = NULL;
531     }
532    
533     GetDlgItemText(IDC_LINECOPY, uimsg, sizeof(uimsg));
534     get_lang_msg("DLG_TAB_COPYPASTE_CONTINUE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
535     SetDlgItemText(IDC_LINECOPY, ts.UIMsg);
536     GetDlgItemText(IDC_DISABLE_PASTE_RBUTTON, uimsg, sizeof(uimsg));
537     get_lang_msg("DLG_TAB_COPYPASTE_MOUSEPASTE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
538     SetDlgItemText(IDC_DISABLE_PASTE_RBUTTON, ts.UIMsg);
539     GetDlgItemText(IDC_CONFIRM_PASTE_RBUTTON, uimsg, sizeof(uimsg));
540     get_lang_msg("DLG_TAB_COPYPASTE_CONFIRMPASTE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
541     SetDlgItemText(IDC_CONFIRM_PASTE_RBUTTON, ts.UIMsg);
542 doda 3594 GetDlgItemText(IDC_DISABLE_PASTE_MBUTTON, uimsg, sizeof(uimsg));
543     get_lang_msg("DLG_TAB_COPYPASTE_MOUSEPASTEM", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
544     SetDlgItemText(IDC_DISABLE_PASTE_MBUTTON, ts.UIMsg);
545 maya 3227 GetDlgItemText(IDC_SELECT_LBUTTON, uimsg, sizeof(uimsg));
546     get_lang_msg("DLG_TAB_COPYPASTE_SELECTLBUTTON", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
547     SetDlgItemText(IDC_SELECT_LBUTTON, ts.UIMsg);
548     GetDlgItemText(IDC_CONFIRM_CHANGE_PASTE, uimsg, sizeof(uimsg));
549     get_lang_msg("DLG_TAB_COPYPASTE_CONFIRM_CHANGE_PASTE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
550     SetDlgItemText(IDC_CONFIRM_CHANGE_PASTE, ts.UIMsg);
551 maya 3562 GetDlgItemText(IDC_CONFIRM_STRING_FILE_LABEL, uimsg, sizeof(uimsg));
552 maya 3565 get_lang_msg("DLG_TAB_CONFIRM_STRING_FILE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
553 maya 3562 SetDlgItemText(IDC_CONFIRM_STRING_FILE_LABEL, ts.UIMsg);
554 maya 3227 GetDlgItemText(IDC_DELIMITER, uimsg, sizeof(uimsg));
555     get_lang_msg("DLG_TAB_COPYPASTE_DELIMITER", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
556     SetDlgItemText(IDC_DELIMITER, ts.UIMsg);
557 maya 3306 GetDlgItemText(IDC_PASTEDELAY_LABEL, uimsg, sizeof(uimsg));
558     get_lang_msg("DLG_TAB_COPYPASTE_PASTEDELAY", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
559     SetDlgItemText(IDC_PASTEDELAY_LABEL, ts.UIMsg);
560     GetDlgItemText(IDC_PASTEDELAY_LABEL2, uimsg, sizeof(uimsg));
561     get_lang_msg("DLG_TAB_COPYPASTE_PASTEDELAY2", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
562     SetDlgItemText(IDC_PASTEDELAY_LABEL2, ts.UIMsg);
563 maya 3227
564     // (1)Enable continued-line copy
565     btn = (CButton *)GetDlgItem(IDC_LINECOPY);
566     btn->SetCheck(ts.EnableContinuedLineCopy);
567    
568     // (2)DisablePasteMouseRButton
569     btn = (CButton *)GetDlgItem(IDC_DISABLE_PASTE_RBUTTON);
570     btn2 = (CButton *)GetDlgItem(IDC_CONFIRM_PASTE_RBUTTON);
571     btn->SetCheck(ts.DisablePasteMouseRButton);
572     if (ts.DisablePasteMouseRButton) {
573     btn2->EnableWindow(FALSE);
574     } else {
575     btn2->EnableWindow(TRUE);
576     }
577    
578     // (3)ConfirmPasteMouseRButton
579     btn2->SetCheck(ts.ConfirmPasteMouseRButton);
580    
581 doda 3594 // (4)DisablePasteMouseMButton
582     btn = (CButton *)GetDlgItem(IDC_DISABLE_PASTE_MBUTTON);
583     btn->SetCheck(ts.DisablePasteMouseMButton);
584    
585     // (5)SelectOnlyByLButton
586 maya 3227 btn = (CButton *)GetDlgItem(IDC_SELECT_LBUTTON);
587     btn->SetCheck(ts.SelectOnlyByLButton);
588    
589 doda 3594 // (6)ConfirmChangePaste
590 maya 3227 btn = (CButton *)GetDlgItem(IDC_CONFIRM_CHANGE_PASTE);
591     btn->SetCheck(ts.ConfirmChangePaste);
592    
593 yutakapon 3558 // ƒtƒ@ƒCƒ‹ƒpƒX
594     SetDlgItemText(IDC_CONFIRM_STRING_FILE, ts.ConfirmChangePasteStringFile);
595     edit = (CEdit *)GetDlgItem(IDC_CONFIRM_STRING_FILE);
596     btn = (CButton *)GetDlgItem(IDC_CONFIRM_STRING_FILE_PATH);
597     if (ts.ConfirmChangePaste) {
598     edit->EnableWindow(TRUE);
599     btn->EnableWindow(TRUE);
600     } else {
601     edit->EnableWindow(FALSE);
602     btn->EnableWindow(FALSE);
603     }
604    
605 doda 3594 // (7)delimiter characters
606 maya 3227 SetDlgItemText(IDC_DELIM_LIST, ts.DelimList);
607    
608 doda 3594 // (8)PasteDelayPerLine
609 maya 3306 _snprintf_s(buf, sizeof(buf), "%d", ts.PasteDelayPerLine);
610     SetDlgItemText(IDC_PASTEDELAY_EDIT, buf);
611 maya 3227
612     // ƒ_ƒCƒAƒ�ƒO‚ɃtƒH�[ƒJƒX‚ð“–‚Ä‚é
613     ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_LINECOPY));
614    
615     return FALSE;
616     }
617    
618     BOOL CCopypastePropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam)
619     {
620     CButton *btn, *btn2;
621 yutakapon 3558 CEdit *edit;
622     char uimsg[MAX_UIMSG];
623 maya 3227
624     switch (wParam) {
625     case IDC_DISABLE_PASTE_RBUTTON | (BN_CLICKED << 16):
626     btn = (CButton *)GetDlgItem(IDC_DISABLE_PASTE_RBUTTON);
627     btn2 = (CButton *)GetDlgItem(IDC_CONFIRM_PASTE_RBUTTON);
628     if (btn->GetCheck()) {
629     btn2->EnableWindow(FALSE);
630     } else {
631     btn2->EnableWindow(TRUE);
632     }
633     return TRUE;
634 yutakapon 3558
635     case IDC_CONFIRM_CHANGE_PASTE | (BN_CLICKED << 16):
636     btn2 = (CButton *)GetDlgItem(IDC_CONFIRM_CHANGE_PASTE);
637     btn = (CButton *)GetDlgItem(IDC_CONFIRM_STRING_FILE_PATH);
638     edit = (CEdit *)GetDlgItem(IDC_CONFIRM_STRING_FILE);
639     if (btn2->GetCheck()) {
640     edit->EnableWindow(TRUE);
641     btn->EnableWindow(TRUE);
642     } else {
643     edit->EnableWindow(FALSE);
644     btn->EnableWindow(FALSE);
645     }
646     return TRUE;
647    
648     case IDC_CONFIRM_STRING_FILE_PATH | (BN_CLICKED << 16):
649     {
650     OPENFILENAME ofn;
651    
652     ZeroMemory(&ofn, sizeof(ofn));
653     ofn.lStructSize = get_OPENFILENAME_SIZE();
654     ofn.hwndOwner = GetSafeHwnd();
655     get_lang_msg("FILEDLG_SELECT_CONFIRM_STRING_APP_FILTER", ts.UIMsg, sizeof(ts.UIMsg),
656     "txt(*.txt)\\0*.txt\\0all(*.*)\\0*.*\\0\\0", ts.UILanguageFile);
657     ofn.lpstrFilter = ts.UIMsg;
658     ofn.lpstrFile = ts.ConfirmChangePasteStringFile;
659     ofn.nMaxFile = sizeof(ts.ConfirmChangePasteStringFile);
660     get_lang_msg("FILEDLG_SELECT_CONFIRM_STRING_APP_TITLE", uimsg, sizeof(uimsg),
661     "Choose a file including strings for ConfirmChangePaste", ts.UILanguageFile);
662     ofn.lpstrTitle = uimsg;
663     ofn.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_FORCESHOWHIDDEN | OFN_HIDEREADONLY;
664     if (GetOpenFileName(&ofn) != 0) {
665     SetDlgItemText(IDC_CONFIRM_STRING_FILE, ts.ConfirmChangePasteStringFile);
666     }
667     }
668     return TRUE;
669 maya 3227 }
670    
671     return CPropertyPage::OnCommand(wParam, lParam);
672     }
673    
674     void CCopypastePropPageDlg::OnOK()
675     {
676     CButton *btn;
677 maya 3306 char buf[64];
678     int val;
679 maya 3227
680     // (1)
681     btn = (CButton *)GetDlgItem(IDC_LINECOPY);
682     ts.EnableContinuedLineCopy = btn->GetCheck();
683    
684     // (2)
685     btn = (CButton *)GetDlgItem(IDC_DISABLE_PASTE_RBUTTON);
686     ts.DisablePasteMouseRButton = btn->GetCheck();
687    
688     // (3)
689     btn = (CButton *)GetDlgItem(IDC_CONFIRM_PASTE_RBUTTON);
690     ts.ConfirmPasteMouseRButton = btn->GetCheck();
691    
692     // (4)
693 doda 3594 btn = (CButton *)GetDlgItem(IDC_DISABLE_PASTE_MBUTTON);
694     ts.DisablePasteMouseMButton = btn->GetCheck();
695    
696     // (5)
697 maya 3227 btn = (CButton *)GetDlgItem(IDC_SELECT_LBUTTON);
698     ts.SelectOnlyByLButton = btn->GetCheck();
699    
700 doda 3594 // (6)IDC_CONFIRM_CHANGE_PASTE
701 maya 3227 btn = (CButton *)GetDlgItem(IDC_CONFIRM_CHANGE_PASTE);
702     ts.ConfirmChangePaste = btn->GetCheck();
703 yutakapon 3558 GetDlgItemText(IDC_CONFIRM_STRING_FILE, ts.ConfirmChangePasteStringFile, sizeof(ts.ConfirmChangePasteStringFile));
704 maya 3227
705 doda 3594 // (7)
706 maya 3227 GetDlgItemText(IDC_DELIM_LIST, ts.DelimList, sizeof(ts.DelimList));
707 maya 3306
708 doda 3594 // (8)
709 maya 3306 GetDlgItemText(IDC_PASTEDELAY_EDIT, buf, sizeof(buf));
710     val = atoi(buf);
711 maya 3315 ts.PasteDelayPerLine = min(max(0, val), 5000);
712 maya 3227 }
713    
714    
715    
716     // CVisualPropPageDlg ƒ_ƒCƒAƒ�ƒO
717    
718     IMPLEMENT_DYNAMIC(CVisualPropPageDlg, CPropertyPage)
719    
720     CVisualPropPageDlg::CVisualPropPageDlg()
721     : CPropertyPage(CVisualPropPageDlg::IDD)
722     {
723    
724     }
725    
726     CVisualPropPageDlg::~CVisualPropPageDlg()
727     {
728     if (DlgVisualFont != NULL) {
729     DeleteObject(DlgVisualFont);
730     }
731     }
732    
733     BEGIN_MESSAGE_MAP(CVisualPropPageDlg, CPropertyPage)
734     END_MESSAGE_MAP()
735    
736     // CVisualPropPageDlg ƒ�ƒbƒZ�[ƒW ƒnƒ“ƒhƒ‰
737    
738     BOOL CVisualPropPageDlg::OnInitDialog()
739     {
740     char buf[MAXPATHLEN];
741     char uimsg[MAX_UIMSG];
742     CListBox *listbox;
743     CButton *btn;
744 maya 4874 CComboBox *cmb;
745 maya 3227 int i;
746    
747     CPropertyPage::OnInitDialog();
748    
749     font = (HFONT)SendMessage(WM_GETFONT, 0, 0);
750     GetObject(font, sizeof(LOGFONT), &logfont);
751     if (get_lang_font("DLG_TAHOMA_FONT", GetSafeHwnd(), &logfont, &DlgVisualFont, ts.UILanguageFile)) {
752     SendDlgItemMessage(IDC_ALPHABLEND, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
753     SendDlgItemMessage(IDC_ALPHA_BLEND, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
754     SendDlgItemMessage(IDC_ETERM_LOOKFEEL, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
755     SendDlgItemMessage(IDC_MOUSE, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
756     SendDlgItemMessage(IDC_MOUSE_CURSOR, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
757 maya 4874 SendDlgItemMessage(IDC_FONT_QUALITY_LABEL, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
758     SendDlgItemMessage(IDC_FONT_QUALITY, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
759 maya 3227 SendDlgItemMessage(IDC_ANSICOLOR, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
760     SendDlgItemMessage(IDC_ANSI_COLOR, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
761     SendDlgItemMessage(IDC_RED, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
762     SendDlgItemMessage(IDC_COLOR_RED, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
763     SendDlgItemMessage(IDC_GREEN, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
764     SendDlgItemMessage(IDC_COLOR_GREEN, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
765     SendDlgItemMessage(IDC_BLUE, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
766     SendDlgItemMessage(IDC_COLOR_BLUE, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
767     SendDlgItemMessage(IDC_SAMPLE_COLOR, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
768     SendDlgItemMessage(IDC_ENABLE_ATTR_COLOR_BOLD, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
769     SendDlgItemMessage(IDC_ENABLE_ATTR_COLOR_BLINK, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
770     SendDlgItemMessage(IDC_ENABLE_ATTR_COLOR_REVERSE, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
771     SendDlgItemMessage(IDC_ENABLE_URL_COLOR, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
772     SendDlgItemMessage(IDC_ENABLE_ANSI_COLOR, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
773 doda 3667 SendDlgItemMessage(IDC_URL_UNDERLINE, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
774 yutakapon 5573 SendDlgItemMessage(IDC_BGIMG_CHECK, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
775 yutakapon 4942 SendDlgItemMessage(IDC_BGIMG_EDIT, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
776     SendDlgItemMessage(IDC_BGIMG_BUTTON, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
777 maya 4944 SendDlgItemMessage(IDC_RESTART, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0));
778 maya 3227 }
779     else {
780     DlgVisualFont = NULL;
781     }
782    
783     GetDlgItemText(IDC_ALPHABLEND, uimsg, sizeof(uimsg));
784     get_lang_msg("DLG_TAB_VISUAL_ALHPA", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
785     SetDlgItemText(IDC_ALPHABLEND, ts.UIMsg);
786     GetDlgItemText(IDC_ETERM_LOOKFEEL, uimsg, sizeof(uimsg));
787     get_lang_msg("DLG_TAB_VISUAL_ETERM", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
788     SetDlgItemText(IDC_ETERM_LOOKFEEL, ts.UIMsg);
789 yutakapon 5573 GetDlgItemText(IDC_BGIMG_CHECK, uimsg, sizeof(uimsg));
790 maya 5129 get_lang_msg("DLG_TAB_VISUAL_BGIMG", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
791 yutakapon 5573 SetDlgItemText(IDC_BGIMG_CHECK, ts.UIMsg);
792 maya 3227 GetDlgItemText(IDC_MOUSE, uimsg, sizeof(uimsg));
793     get_lang_msg("DLG_TAB_VISUAL_MOUSE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
794     SetDlgItemText(IDC_MOUSE, ts.UIMsg);
795 maya 4874 GetDlgItemText(IDC_FONT_QUALITY_LABEL, uimsg, sizeof(uimsg));
796     get_lang_msg("DLG_TAB_VISUAL_FONT_QUALITY", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
797     SetDlgItemText(IDC_FONT_QUALITY_LABEL, ts.UIMsg);
798 maya 5132 GetDlgItemText(IDC_ANSICOLOR, uimsg, sizeof(uimsg));
799     get_lang_msg("DLG_TAB_VISUAL_ANSICOLOR", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
800     SetDlgItemText(IDC_ANSICOLOR, ts.UIMsg);
801 maya 3227 GetDlgItemText(IDC_RED, uimsg, sizeof(uimsg));
802     get_lang_msg("DLG_TAB_VISUAL_RED", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
803     SetDlgItemText(IDC_RED, ts.UIMsg);
804     GetDlgItemText(IDC_GREEN, uimsg, sizeof(uimsg));
805     get_lang_msg("DLG_TAB_VISUAL_GREEN", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
806     SetDlgItemText(IDC_GREEN, ts.UIMsg);
807     GetDlgItemText(IDC_BLUE, uimsg, sizeof(uimsg));
808     get_lang_msg("DLG_TAB_VISUAL_BLUE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
809     SetDlgItemText(IDC_BLUE, ts.UIMsg);
810     GetDlgItemText(IDC_ENABLE_ATTR_COLOR_BOLD, uimsg, sizeof(uimsg));
811     get_lang_msg("DLG_TAB_VISUAL_BOLD", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
812     SetDlgItemText(IDC_ENABLE_ATTR_COLOR_BOLD, ts.UIMsg);
813     GetDlgItemText(IDC_ENABLE_ATTR_COLOR_BLINK, uimsg, sizeof(uimsg));
814     get_lang_msg("DLG_TAB_VISUAL_BLINK", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
815     SetDlgItemText(IDC_ENABLE_ATTR_COLOR_BLINK, ts.UIMsg);
816     GetDlgItemText(IDC_ENABLE_ATTR_COLOR_REVERSE, uimsg, sizeof(uimsg));
817     get_lang_msg("DLG_TAB_VISUAL_REVERSE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
818     SetDlgItemText(IDC_ENABLE_ATTR_COLOR_REVERSE, ts.UIMsg);
819     GetDlgItemText(IDC_ENABLE_URL_COLOR, uimsg, sizeof(uimsg));
820     get_lang_msg("DLG_TAB_VISUAL_URL", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
821     SetDlgItemText(IDC_ENABLE_URL_COLOR, ts.UIMsg);
822     GetDlgItemText(IDC_ENABLE_ANSI_COLOR, uimsg, sizeof(uimsg));
823     get_lang_msg("DLG_TAB_VISUAL_ANSI", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
824     SetDlgItemText(IDC_ENABLE_ANSI_COLOR, ts.UIMsg);
825 doda 3667 GetDlgItemText(IDC_URL_UNDERLINE, uimsg, sizeof(uimsg));
826     get_lang_msg("DLG_TAB_VISUAL_URLUL", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
827     SetDlgItemText(IDC_URL_UNDERLINE, ts.UIMsg);
828 maya 4944 GetDlgItemText(IDC_RESTART, uimsg, sizeof(uimsg));
829     get_lang_msg("DLG_TAB_VISUAL_RESTART", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
830     SetDlgItemText(IDC_RESTART, ts.UIMsg);
831 maya 3227
832 maya 4874 get_lang_msg("DLG_TAB_VISUAL_FONT_QUALITY_DEFAULT", ts.UIMsg, sizeof(ts.UIMsg), "Default", ts.UILanguageFile);
833     SendDlgItemMessage(IDC_FONT_QUALITY, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg);
834     get_lang_msg("DLG_TAB_VISUAL_FONT_QUALITY_NONANTIALIASED", ts.UIMsg, sizeof(ts.UIMsg), "Non-Antialiased", ts.UILanguageFile);
835     SendDlgItemMessage(IDC_FONT_QUALITY, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg);
836     get_lang_msg("DLG_TAB_VISUAL_FONT_QUALITY_ANTIALIASED", ts.UIMsg, sizeof(ts.UIMsg), "Antialiased", ts.UILanguageFile);
837     SendDlgItemMessage(IDC_FONT_QUALITY, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg);
838     get_lang_msg("DLG_TAB_VISUAL_FONT_QUALITY_CLEARTYPE", ts.UIMsg, sizeof(ts.UIMsg), "ClearType", ts.UILanguageFile);
839     SendDlgItemMessage(IDC_FONT_QUALITY, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg);
840    
841 maya 3227 // (1)AlphaBlend
842     _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%d", ts.AlphaBlend);
843     SetDlgItemText(IDC_ALPHA_BLEND, buf);
844    
845     // (2)[BG] BGEnable
846     btn = (CButton *)GetDlgItem(IDC_ETERM_LOOKFEEL);
847     btn->SetCheck(ts.EtermLookfeel.BGEnable);
848    
849 yutakapon 4942 // Eterm look-feel‚Ì”wŒi‰æ‘œŽw’è�B
850     SetDlgItemText(IDC_BGIMG_EDIT, ts.BGImageFilePath);
851     if (ts.EtermLookfeel.BGEnable) {
852 yutakapon 5573 GetDlgItem(IDC_BGIMG_CHECK)->EnableWindow(TRUE);
853    
854     btn = (CButton *)GetDlgItem(IDC_BGIMG_CHECK);
855     if (strcmp(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE) == 0) {
856     btn->SetCheck(BST_CHECKED);
857     GetDlgItem(IDC_BGIMG_EDIT)->EnableWindow(TRUE);
858     GetDlgItem(IDC_BGIMG_BUTTON)->EnableWindow(TRUE);
859     } else {
860     btn->SetCheck(BST_UNCHECKED);
861     GetDlgItem(IDC_BGIMG_EDIT)->EnableWindow(FALSE);
862     GetDlgItem(IDC_BGIMG_BUTTON)->EnableWindow(FALSE);
863     }
864 yutakapon 4942 } else {
865 yutakapon 5573 GetDlgItem(IDC_BGIMG_CHECK)->EnableWindow(FALSE);
866 yutakapon 4942 GetDlgItem(IDC_BGIMG_EDIT)->EnableWindow(FALSE);
867     GetDlgItem(IDC_BGIMG_BUTTON)->EnableWindow(FALSE);
868     }
869    
870 maya 3227 // (3)Mouse cursor type
871     listbox = (CListBox *)GetDlgItem(IDC_MOUSE_CURSOR);
872     for (i = 0 ; MouseCursor[i].name ; i++) {
873     listbox->InsertString(i, MouseCursor[i].name);
874     }
875     listbox->SelectString(0, ts.MouseCursorName);
876    
877 maya 4874 // (4)Font quality
878     cmb = (CComboBox *)GetDlgItem(IDC_FONT_QUALITY);
879     switch (ts.FontQuality) {
880     case DEFAULT_QUALITY:
881     cmb->SetCurSel(0);
882     break;
883     case NONANTIALIASED_QUALITY:
884     cmb->SetCurSel(1);
885     break;
886     case ANTIALIASED_QUALITY:
887     cmb->SetCurSel(2);
888     break;
889     default: // CLEARTYPE_QUALITY
890     cmb->SetCurSel(3);
891     break;
892     }
893    
894     // (5)ANSI color
895 maya 3227 listbox = (CListBox *)GetDlgItem(IDC_ANSI_COLOR);
896     for (i = 0 ; i < 16 ; i++) {
897     _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%d", i);
898     listbox->InsertString(i, buf);
899     }
900     SetupRGBbox(GetSafeHwnd(), 0);
901     #if 0
902     SendMessage(WM_CTLCOLORSTATIC,
903     (WPARAM)label_hdc,
904     (LPARAM)GetDlgItem(IDC_SAMPLE_COLOR));
905     #endif
906    
907 maya 4874 // (6)Bold Attr Color
908 maya 3227 btn = (CButton *)GetDlgItem(IDC_ENABLE_ATTR_COLOR_BOLD);
909     btn->SetCheck((ts.ColorFlag&CF_BOLDCOLOR) != 0);
910    
911 maya 4874 // (7)Blink Attr Color
912 maya 3227 btn = (CButton *)GetDlgItem(IDC_ENABLE_ATTR_COLOR_BLINK);
913     btn->SetCheck((ts.ColorFlag&CF_BLINKCOLOR) != 0);
914    
915 maya 4874 // (8)Reverse Attr Color
916 maya 3227 btn = (CButton *)GetDlgItem(IDC_ENABLE_ATTR_COLOR_REVERSE);
917     btn->SetCheck((ts.ColorFlag&CF_REVERSECOLOR) != 0);
918    
919 maya 4874 // (9)URL Color
920 maya 3227 btn = (CButton *)GetDlgItem(IDC_ENABLE_URL_COLOR);
921     btn->SetCheck((ts.ColorFlag&CF_URLCOLOR) != 0);
922    
923 maya 4874 // (10)Color
924 maya 3227 btn = (CButton *)GetDlgItem(IDC_ENABLE_ANSI_COLOR);
925     btn->SetCheck((ts.ColorFlag&CF_ANSICOLOR) != 0);
926    
927 maya 4874 // (11)URL Underline
928 doda 3667 btn = (CButton *)GetDlgItem(IDC_URL_UNDERLINE);
929     btn->SetCheck((ts.FontFlag&FF_URLUNDERLINE) != 0);
930    
931 maya 3227 // ƒ_ƒCƒAƒ�ƒO‚ɃtƒH�[ƒJƒX‚ð“–‚Ä‚é
932     ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_ALPHA_BLEND));
933    
934     return FALSE;
935     }
936    
937     BOOL CVisualPropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam)
938     {
939     CListBox *listbox;
940     int sel;
941     char buf[MAXPATHLEN];
942 yutakapon 4942 CButton *btn;
943 maya 3227
944     switch (wParam) {
945 yutakapon 4942 case IDC_ETERM_LOOKFEEL:
946     // ƒ`ƒFƒbƒN‚³‚ꂽ‚ç Enable/Disable ‚ðƒgƒOƒ‹‚·‚é�B
947     btn = (CButton *)GetDlgItem(IDC_ETERM_LOOKFEEL);
948     if (btn->GetCheck()) {
949 yutakapon 5573 GetDlgItem(IDC_BGIMG_CHECK)->EnableWindow(TRUE);
950     btn = (CButton *)GetDlgItem(IDC_BGIMG_CHECK);
951     if (btn->GetCheck()) {
952     GetDlgItem(IDC_BGIMG_EDIT)->EnableWindow(TRUE);
953     GetDlgItem(IDC_BGIMG_BUTTON)->EnableWindow(TRUE);
954     } else {
955     GetDlgItem(IDC_BGIMG_EDIT)->EnableWindow(FALSE);
956     GetDlgItem(IDC_BGIMG_BUTTON)->EnableWindow(FALSE);
957     }
958     } else {
959     GetDlgItem(IDC_BGIMG_CHECK)->EnableWindow(FALSE);
960     GetDlgItem(IDC_BGIMG_EDIT)->EnableWindow(FALSE);
961     GetDlgItem(IDC_BGIMG_BUTTON)->EnableWindow(FALSE);
962    
963     // –³Œø‰»‚³‚ꂽ‚ç�ABGThemeFile ‚ðŒ³‚É–ß‚·�B
964     strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE_DEFAULT, sizeof(ts.EtermLookfeel.BGThemeFile));
965     // ”wŒi‰æ‘œ‚à–³Œø‰»‚·‚é�B
966     SetDlgItemText(IDC_BGIMG_EDIT, "");
967     }
968     return TRUE;
969    
970     case IDC_BGIMG_CHECK:
971     btn = (CButton *)GetDlgItem(IDC_BGIMG_CHECK);
972     if (btn->GetCheck()) {
973 yutakapon 4942 GetDlgItem(IDC_BGIMG_EDIT)->EnableWindow(TRUE);
974     GetDlgItem(IDC_BGIMG_BUTTON)->EnableWindow(TRUE);
975 yutakapon 5573
976     strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE, sizeof(ts.EtermLookfeel.BGThemeFile));
977 yutakapon 4942 } else {
978     GetDlgItem(IDC_BGIMG_EDIT)->EnableWindow(FALSE);
979     GetDlgItem(IDC_BGIMG_BUTTON)->EnableWindow(FALSE);
980 yutakapon 5573
981 yutakapon 4942 // –³Œø‰»‚³‚ꂽ‚ç�ABGThemeFile ‚ðŒ³‚É–ß‚·�B
982     strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE_DEFAULT, sizeof(ts.EtermLookfeel.BGThemeFile));
983 yutakapon 4945 // ”wŒi‰æ‘œ‚à–³Œø‰»‚·‚é�B
984     SetDlgItemText(IDC_BGIMG_EDIT, "");
985 yutakapon 4942 }
986     return TRUE;
987    
988     case IDC_BGIMG_BUTTON | (BN_CLICKED << 16):
989     // ”wŒi‰æ‘œ‚ðƒ_ƒCƒAƒ�ƒO‚ÅŽw’è‚·‚é�B
990     {
991     CString filter("Image Files(*.jpg;*.jpeg;*.bmp)|*.jpg;*.jpeg;*.bmp|All Files(*.*)|*.*||");
992     CFileDialog selDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, filter);
993     if (selDlg.DoModal() == IDOK) {
994     // ”wŒi‰æ‘œŽw’肪ˆÓ�}“I‚É�s‚í‚ꂽ‚ç�ABGThemeFile ‚ðŒÅ’艻‚·‚é�B
995     SetDlgItemText(IDC_BGIMG_EDIT, selDlg.GetPathName());
996     }
997     }
998     return TRUE;
999    
1000 maya 3227 case IDC_ANSI_COLOR | (LBN_SELCHANGE << 16):
1001     listbox = (CListBox *)GetDlgItem(IDC_ANSI_COLOR);
1002     sel = listbox->GetCurSel();
1003     if (sel != -1) {
1004     SetupRGBbox(GetSafeHwnd(), sel);
1005     #if 0
1006     SendMessage(WM_CTLCOLORSTATIC,
1007     (WPARAM)label_hdc,
1008     (LPARAM)GetDlgItem(IDC_SAMPLE_COLOR));
1009     #endif
1010     }
1011     return TRUE;
1012    
1013     case IDC_COLOR_RED | (EN_KILLFOCUS << 16):
1014     case IDC_COLOR_GREEN | (EN_KILLFOCUS << 16):
1015     case IDC_COLOR_BLUE | (EN_KILLFOCUS << 16):
1016     {
1017     BYTE r, g, b;
1018    
1019     listbox = (CListBox *)GetDlgItem(IDC_ANSI_COLOR);
1020     sel = listbox->GetCurSel();
1021     if (sel < 0 && sel > sizeof(ts.ANSIColor)-1) {
1022     return TRUE;
1023     }
1024    
1025     GetDlgItemText(IDC_COLOR_RED, buf, sizeof(buf));
1026     r = atoi(buf);
1027    
1028     GetDlgItemText(IDC_COLOR_GREEN, buf, sizeof(buf));
1029     g = atoi(buf);
1030    
1031     GetDlgItemText(IDC_COLOR_BLUE, buf, sizeof(buf));
1032     b = atoi(buf);
1033    
1034     ts.ANSIColor[sel] = RGB(r, g, b);
1035    
1036     // 255‚ð’´‚¦‚½RGB’l‚Í•â�³‚³‚ê‚é‚Ì‚Å�A‚»‚ê‚ðEdit‚É•\ަ‚·‚é (2007.2.18 maya)
1037     SetupRGBbox(GetSafeHwnd(), sel);
1038     #if 0
1039     SendMessage(WM_CTLCOLORSTATIC,
1040     (WPARAM)label_hdc,
1041     (LPARAM)GetDlgItem(IDC_SAMPLE_COLOR));
1042     #endif
1043     }
1044    
1045     return TRUE;
1046     #if 0
1047     case WM_CTLCOLORSTATIC:
1048     {
1049     HDC hDC = (HDC)wp;
1050     HWND hWnd = (HWND)lp;
1051    
1052     //if (label_hdc == NULL) {
1053     hDC = GetWindowDC(GetDlgItem(hDlgWnd, IDC_SAMPLE_COLOR));
1054     // label_hdc = hDC;
1055     //}
1056    
1057     if ( hWnd == GetDlgItem(hDlgWnd, IDC_SAMPLE_COLOR) ) {
1058     BYTE r, g, b;
1059    
1060     hWnd = GetDlgItem(hDlgWnd, IDC_COLOR_RED);
1061     SendMessage(hWnd, WM_GETTEXT , sizeof(buf), (LPARAM)buf);
1062     r = atoi(buf);
1063    
1064     hWnd = GetDlgItem(hDlgWnd, IDC_COLOR_GREEN);
1065     SendMessage(hWnd, WM_GETTEXT , sizeof(buf), (LPARAM)buf);
1066     g = atoi(buf);
1067    
1068     hWnd = GetDlgItem(hDlgWnd, IDC_COLOR_BLUE);
1069     SendMessage(hWnd, WM_GETTEXT , sizeof(buf), (LPARAM)buf);
1070     b = atoi(buf);
1071    
1072     OutputDebugPrintf("%06x\n", RGB(r, g, b));
1073    
1074     SetBkMode(hDC, TRANSPARENT);
1075     SetTextColor(hDC, RGB(r, g, b) );
1076     ReleaseDC(hDlgWnd, hDC);
1077    
1078     return (BOOL)(HBRUSH)GetStockObject(NULL_BRUSH);
1079     }
1080     return FALSE;
1081     }
1082     break ;
1083     #endif
1084     }
1085    
1086     return CPropertyPage::OnCommand(wParam, lParam);
1087     }
1088    
1089     void CVisualPropPageDlg::OnOK()
1090     {
1091     CListBox *listbox;
1092     CButton *btn;
1093 maya 4874 CComboBox *cmb;
1094 maya 3227 int sel;
1095     int beforeAlphaBlend;
1096     char buf[MAXPATHLEN];
1097     COLORREF TmpColor;
1098 yutakapon 4916 int flag_changed = 0;
1099 maya 3227
1100     // (1)
1101     beforeAlphaBlend = ts.AlphaBlend;
1102     GetDlgItemText(IDC_ALPHA_BLEND, buf, sizeof(buf));
1103     if (isdigit(buf[0])) {
1104     ts.AlphaBlend = atoi(buf);
1105     ts.AlphaBlend = max(0, ts.AlphaBlend);
1106     ts.AlphaBlend = min(255, ts.AlphaBlend);
1107     }
1108    
1109     // (2)
1110     // ƒOƒ��[ƒoƒ‹•Ï�” BGEnable ‚ð’¼�Ú�‘‚«Š·‚¦‚邯�Aƒvƒ�ƒOƒ‰ƒ€‚ª—Ž‚¿‚邱‚Æ‚ª
1111     // ‚ ‚é‚̂ŃRƒs�[‚ð�C�³‚·‚é‚݂̂Ƃ·‚é�B(2005.4.24 yutaka)
1112     btn = (CButton *)GetDlgItem(IDC_ETERM_LOOKFEEL);
1113 yutakapon 4916 if (ts.EtermLookfeel.BGEnable != btn->GetCheck()) {
1114     flag_changed = 1;
1115     ts.EtermLookfeel.BGEnable = btn->GetCheck();
1116     }
1117 maya 3227
1118 yutakapon 4942 if (ts.EtermLookfeel.BGEnable) {
1119     GetDlgItemText(IDC_BGIMG_EDIT, ts.BGImageFilePath, sizeof(ts.BGImageFilePath));
1120 yutakapon 4945 } else {
1121     strncpy_s(ts.BGImageFilePath, sizeof(ts.BGImageFilePath), "%SystemRoot%\\Web\\Wallpaper\\*.bmp", _TRUNCATE);
1122 yutakapon 4942 }
1123    
1124 maya 3227 // (3)
1125     listbox = (CListBox *)GetDlgItem(IDC_MOUSE_CURSOR);
1126     sel = listbox->GetCurSel();
1127     if (sel >= 0 && sel < MOUSE_CURSOR_MAX) {
1128     strncpy_s(ts.MouseCursorName, sizeof(ts.MouseCursorName), MouseCursor[sel].name, _TRUNCATE);
1129     }
1130    
1131 maya 4874 // (4)Font quality
1132     cmb = (CComboBox *)GetDlgItem(IDC_FONT_QUALITY);
1133     switch (cmb->GetCurSel()) {
1134     case 0:
1135     ts.FontQuality = DEFAULT_QUALITY;
1136     break;
1137     case 1:
1138     ts.FontQuality = NONANTIALIASED_QUALITY;
1139     break;
1140     case 2:
1141     ts.FontQuality = ANTIALIASED_QUALITY;
1142     break;
1143     default: // 3
1144     ts.FontQuality = CLEARTYPE_QUALITY;
1145     break;
1146     }
1147    
1148     // (6) Attr Bold Color
1149 maya 3227 btn = (CButton *)GetDlgItem(IDC_ENABLE_ATTR_COLOR_BOLD);
1150     if (((ts.ColorFlag & CF_BOLDCOLOR) != 0) != btn->GetCheck()) {
1151     ts.ColorFlag ^= CF_BOLDCOLOR;
1152     }
1153    
1154 maya 4874 // (7) Attr Blink Color
1155 maya 3227 btn = (CButton *)GetDlgItem(IDC_ENABLE_ATTR_COLOR_BLINK);
1156     if (((ts.ColorFlag & CF_BLINKCOLOR) != 0) != btn->GetCheck()) {
1157     ts.ColorFlag ^= CF_BLINKCOLOR;
1158     }
1159    
1160 maya 4874 // (8) Attr Reverse Color
1161 maya 3227 btn = (CButton *)GetDlgItem(IDC_ENABLE_ATTR_COLOR_REVERSE);
1162     if (ts.ColorFlag & CF_REVERSEVIDEO) { // Reverse Videoƒ‚�[ƒh(DECSCNM)Žž‚Í�ˆ—�‚ð•Ï‚¦‚é
1163     if (ts.ColorFlag & CF_REVERSECOLOR) {
1164     if (!btn->GetCheck()) {
1165     TmpColor = ts.VTColor[0];
1166     ts.VTColor[0] = ts.VTReverseColor[1];
1167     ts.VTReverseColor[1] = ts.VTColor[1];
1168     ts.VTColor[1] = ts.VTReverseColor[0];
1169     ts.VTReverseColor[0] = TmpColor;
1170     ts.ColorFlag ^= CF_REVERSECOLOR;
1171     }
1172     }
1173     else if (btn->GetCheck()) {
1174     TmpColor = ts.VTColor[0];
1175     ts.VTColor[0] = ts.VTReverseColor[0];
1176     ts.VTReverseColor[0] = ts.VTColor[1];
1177     ts.VTColor[1] = ts.VTReverseColor[1];
1178     ts.VTReverseColor[1] = TmpColor;
1179     ts.ColorFlag ^= CF_REVERSECOLOR;
1180     }
1181     }
1182     else if (((ts.ColorFlag & CF_REVERSECOLOR) != 0) != btn->GetCheck()) {
1183     ts.ColorFlag ^= CF_REVERSECOLOR;
1184     }
1185    
1186 maya 4874 // (9) URL Color
1187 maya 3227 btn = (CButton *)GetDlgItem(IDC_ENABLE_URL_COLOR);
1188     if (((ts.ColorFlag & CF_URLCOLOR) != 0) != btn->GetCheck()) {
1189     ts.ColorFlag ^= CF_URLCOLOR;
1190     }
1191    
1192 maya 4874 // (10) Color
1193 maya 3227 btn = (CButton *)GetDlgItem(IDC_ENABLE_ANSI_COLOR);
1194     if (((ts.ColorFlag & CF_ANSICOLOR) != 0) != btn->GetCheck()) {
1195     ts.ColorFlag ^= CF_ANSICOLOR;
1196     }
1197    
1198 maya 4874 // (11) URL Underline
1199 doda 3667 btn = (CButton *)GetDlgItem(IDC_URL_UNDERLINE);
1200     if (((ts.FontFlag & FF_URLUNDERLINE) != 0) != btn->GetCheck()) {
1201     ts.FontFlag ^= FF_URLUNDERLINE;
1202     }
1203    
1204 maya 3227 // 2006/03/11 by 337 : Alpha’l‚à‘¦Žž•Ï�X
1205     // Layered‘‹‚ɂȂÁ‚Ä‚¢‚È‚¢�ê�‡‚ÍŒø‰Ê‚ª–³‚¢
1206     if (ts.EtermLookfeel.BGUseAlphaBlendAPI) {
1207     // ‹N“®Žž‚É”¼“§–¾ƒŒƒCƒ„‚É‚µ‚Ä‚¢‚È‚¢�ê�‡‚Å‚à�A‘¦�À‚É”¼“§–¾‚Æ‚È‚é‚æ‚¤‚É‚·‚é�B(2006.4.1 yutaka)
1208     //MySetLayeredWindowAttributes(HVTWin, 0, (ts.AlphaBlend > 255) ? 255: ts.AlphaBlend, LWA_ALPHA);
1209     // ’l‚ª•Ï�X‚³‚ꂽ‚Æ‚«‚Ì‚Ý�Ý’è‚𔽉f‚·‚é�B(2007.10.19 maya)
1210     if (ts.AlphaBlend != beforeAlphaBlend) {
1211     SetWindowStyle(&ts);
1212     }
1213     }
1214 yutakapon 4916
1215     if (flag_changed) {
1216     // re-launch
1217 maya 4944 // RestartTeraTerm(GetSafeHwnd(), &ts);
1218 yutakapon 4916 }
1219 maya 3227 }
1220    
1221    
1222    
1223     // CLogPropPageDlg ƒ_ƒCƒAƒ�ƒO
1224    
1225     IMPLEMENT_DYNAMIC(CLogPropPageDlg, CPropertyPage)
1226    
1227     CLogPropPageDlg::CLogPropPageDlg()
1228     : CPropertyPage(CLogPropPageDlg::IDD)
1229     {
1230    
1231     }
1232    
1233     CLogPropPageDlg::~CLogPropPageDlg()
1234     {
1235     if (DlgLogFont != NULL) {
1236     DeleteObject(DlgLogFont);
1237     }
1238     }
1239    
1240     BEGIN_MESSAGE_MAP(CLogPropPageDlg, CPropertyPage)
1241     END_MESSAGE_MAP()
1242    
1243     // CLogPropPageDlg ƒ�ƒbƒZ�[ƒW ƒnƒ“ƒhƒ‰
1244    
1245 yutakapon 5171 #define LOG_ROTATE_SIZETYPE_NUM 3
1246     static char *LogRotateSizeType[] = {
1247     "Byte", "KB", "MB"
1248     };
1249    
1250     static char *GetLogRotateSizeType(int val)
1251     {
1252     if (val >= LOG_ROTATE_SIZETYPE_NUM)
1253     val = 0;
1254    
1255     return LogRotateSizeType[val];
1256     }
1257    
1258 maya 3227 BOOL CLogPropPageDlg::OnInitDialog()
1259     {
1260     char uimsg[MAX_UIMSG];
1261     CButton *btn;
1262 yutakapon 5171 CComboBox *combo;
1263     int i;
1264 maya 3227
1265     CPropertyPage::OnInitDialog();
1266    
1267     font = (HFONT)SendMessage(WM_GETFONT, 0, 0);
1268     GetObject(font, sizeof(LOGFONT), &logfont);
1269     if (get_lang_font("DLG_TAHOMA_FONT", GetSafeHwnd(), &logfont, &DlgLogFont, ts.UILanguageFile)) {
1270     SendDlgItemMessage(IDC_VIEWLOG_LABEL, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
1271     SendDlgItemMessage(IDC_VIEWLOG_EDITOR, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
1272     SendDlgItemMessage(IDC_VIEWLOG_PATH, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
1273     SendDlgItemMessage(IDC_DEFAULTNAME_LABEL, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
1274     SendDlgItemMessage(IDC_DEFAULTNAME_EDITOR, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
1275     SendDlgItemMessage(IDC_DEFAULTPATH_LABEL, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
1276     SendDlgItemMessage(IDC_DEFAULTPATH_EDITOR, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
1277     SendDlgItemMessage(IDC_DEFAULTPATH_PUSH, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
1278     SendDlgItemMessage(IDC_AUTOSTART, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
1279 yutakapon 5171
1280     // Log rotate
1281     SendDlgItemMessage(IDC_LOG_ROTATE, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
1282     SendDlgItemMessage(IDC_ROTATE_SIZE_TEXT, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
1283     SendDlgItemMessage(IDC_ROTATE_SIZE, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
1284     SendDlgItemMessage(IDC_ROTATE_SIZE_TYPE, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
1285     SendDlgItemMessage(IDC_ROTATE_STEP_TEXT, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
1286     SendDlgItemMessage(IDC_ROTATE_STEP, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
1287 yutakapon 5613
1288     // Log options
1289     SendDlgItemMessage(IDC_LOG_OPTION_GROUP, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
1290     SendDlgItemMessage(IDC_OPT_BINARY, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
1291     SendDlgItemMessage(IDC_OPT_APPEND, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
1292     SendDlgItemMessage(IDC_OPT_PLAINTEXT, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
1293     SendDlgItemMessage(IDC_OPT_TIMESTAMP, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
1294     SendDlgItemMessage(IDC_OPT_HIDEDLG, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
1295     SendDlgItemMessage(IDC_OPT_INCBUF, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0));
1296 maya 3227 }
1297     else {
1298     DlgLogFont = NULL;
1299     }
1300    
1301     GetDlgItemText(IDC_VIEWLOG_LABEL, uimsg, sizeof(uimsg));
1302     get_lang_msg("DLG_TAB_LOG_EDITOR", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
1303     SetDlgItemText(IDC_VIEWLOG_LABEL, ts.UIMsg);
1304     GetDlgItemText(IDC_DEFAULTNAME_LABEL, uimsg, sizeof(uimsg));
1305     get_lang_msg("DLG_TAB_LOG_FILENAME", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
1306     SetDlgItemText(IDC_DEFAULTNAME_LABEL, ts.UIMsg);
1307     GetDlgItemText(IDC_DEFAULTPATH_LABEL, uimsg, sizeof(uimsg));
1308     get_lang_msg("DLG_TAB_LOG_FILEPATH", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
1309     SetDlgItemText(IDC_DEFAULTPATH_LABEL, ts.UIMsg);
1310     GetDlgItemText(IDC_AUTOSTART, uimsg, sizeof(uimsg));
1311     get_lang_msg("DLG_TAB_LOG_AUTOSTART", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
1312     SetDlgItemText(IDC_AUTOSTART, ts.UIMsg);
1313 yutakapon 5172 // Log rotate
1314     GetDlgItemText(IDC_LOG_ROTATE, uimsg, sizeof(uimsg));
1315 yutakapon 5171 get_lang_msg("DLG_TAB_LOG_ROTATE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
1316     SetDlgItemText(IDC_LOG_ROTATE, ts.UIMsg);
1317 yutakapon 5172 GetDlgItemText(IDC_ROTATE_SIZE_TEXT, uimsg, sizeof(uimsg));
1318 yutakapon 5171 get_lang_msg("DLG_TAB_LOG_ROTATE_SIZE_TEXT", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
1319     SetDlgItemText(IDC_ROTATE_SIZE_TEXT, ts.UIMsg);
1320 yutakapon 5172 GetDlgItemText(IDC_ROTATE_STEP_TEXT, uimsg, sizeof(uimsg));
1321 yutakapon 5171 get_lang_msg("IDC_ROTATE_STEP_TEXT", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
1322     SetDlgItemText(IDC_ROTATE_STEP_TEXT, ts.UIMsg);
1323 yutakapon 5613 // Log options
1324     // FIXME: ƒ�ƒbƒZ�[ƒWƒJƒ^ƒ�ƒO‚ÍŠù‘¶‚̃�ƒOƒIƒvƒVƒ‡ƒ“‚Ì‚à‚̂𗬗p‚µ‚½‚ª�AƒAƒNƒZƒ‰ƒŒ�[ƒ^ƒL�[‚ª�d•¡‚·‚é‚©‚à‚µ‚ê‚È‚¢�B
1325     GetDlgItemText(IDC_LOG_OPTION_GROUP, uimsg, sizeof(uimsg));
1326     get_lang_msg("DLG_FOPT", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
1327     SetDlgItemText(IDC_LOG_OPTION_GROUP, ts.UIMsg);
1328     GetDlgItemText(IDC_OPT_BINARY, uimsg, sizeof(uimsg));
1329     get_lang_msg("DLG_FOPT_BINARY", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
1330     SetDlgItemText(IDC_OPT_BINARY, ts.UIMsg);
1331     GetDlgItemText(IDC_OPT_APPEND, uimsg, sizeof(uimsg));
1332     get_lang_msg("DLG_FOPT_APPEND", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
1333     SetDlgItemText(IDC_OPT_APPEND, ts.UIMsg);
1334     GetDlgItemText(IDC_OPT_PLAINTEXT, uimsg, sizeof(uimsg));
1335     get_lang_msg("DLG_FOPT_PLAIN", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
1336     SetDlgItemText(IDC_OPT_PLAINTEXT, ts.UIMsg);
1337     GetDlgItemText(IDC_OPT_TIMESTAMP, uimsg, sizeof(uimsg));
1338     get_lang_msg("DLG_FOPT_TIMESTAMP", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
1339     SetDlgItemText(IDC_OPT_TIMESTAMP, ts.UIMsg);
1340     GetDlgItemText(IDC_OPT_HIDEDLG, uimsg, sizeof(uimsg));
1341     get_lang_msg("DLG_FOPT_HIDEDIALOG", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
1342     SetDlgItemText(IDC_OPT_HIDEDLG, ts.UIMsg);
1343     GetDlgItemText(IDC_OPT_INCBUF, uimsg, sizeof(uimsg));
1344     get_lang_msg("DLG_FOPT_ALLBUFFINFIRST", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
1345     SetDlgItemText(IDC_OPT_INCBUF, ts.UIMsg);
1346 maya 3227
1347 yutakapon 5171
1348 maya 3227 // Viewlog Editor path (2005.1.29 yutaka)
1349     SetDlgItemText(IDC_VIEWLOG_EDITOR, ts.ViewlogEditor);
1350    
1351     // Log Default File Name (2006.8.28 maya)
1352     SetDlgItemText(IDC_DEFAULTNAME_EDITOR, ts.LogDefaultName);
1353    
1354     // Log Default File Path (2007.5.30 maya)
1355     SetDlgItemText(IDC_DEFAULTPATH_EDITOR, ts.LogDefaultPath);
1356    
1357     /* Auto start logging (2007.5.31 maya) */
1358     btn = (CButton *)GetDlgItem(IDC_AUTOSTART);
1359     btn->SetCheck(ts.LogAutoStart);
1360    
1361 yutakapon 5171 // Log rotate
1362     btn = (CButton *)GetDlgItem(IDC_LOG_ROTATE);
1363     btn->SetCheck(ts.LogRotate != ROTATE_NONE);
1364    
1365     combo = (CComboBox *)GetDlgItem(IDC_ROTATE_SIZE_TYPE);
1366     for (i = 0 ; i < LOG_ROTATE_SIZETYPE_NUM ; i++) {
1367     combo->AddString(LogRotateSizeType[i]);
1368     }
1369    
1370     SetDlgItemInt(IDC_ROTATE_SIZE, ts.LogRotateSize, FALSE);
1371     combo->SelectString(-1, GetLogRotateSizeType(ts.LogRotateSizeType));
1372     SetDlgItemInt(IDC_ROTATE_STEP, ts.LogRotateStep, FALSE);
1373     if (ts.LogRotate == ROTATE_NONE) {
1374     GetDlgItem(IDC_ROTATE_SIZE_TEXT)->EnableWindow(FALSE);
1375     GetDlgItem(IDC_ROTATE_SIZE)->EnableWindow(FALSE);
1376     GetDlgItem(IDC_ROTATE_SIZE_TYPE)->EnableWindow(FALSE);
1377     GetDlgItem(IDC_ROTATE_STEP_TEXT)->EnableWindow(FALSE);
1378     GetDlgItem(IDC_ROTATE_STEP)->EnableWindow(FALSE);
1379     } else {
1380     GetDlgItem(IDC_ROTATE_SIZE_TEXT)->EnableWindow(TRUE);
1381     GetDlgItem(IDC_ROTATE_SIZE)->EnableWindow(TRUE);
1382     GetDlgItem(IDC_ROTATE_SIZE_TYPE)->EnableWindow(TRUE);
1383     GetDlgItem(IDC_ROTATE_STEP_TEXT)->EnableWindow(TRUE);
1384     GetDlgItem(IDC_ROTATE_STEP)->EnableWindow(TRUE);
1385     }
1386    
1387 yutakapon 5613 // Log options
1388     btn = (CButton *)GetDlgItem(IDC_OPT_BINARY);
1389     btn->SetCheck(ts.LogBinary != 0);
1390     if (ts.LogBinary) {
1391     GetDlgItem(IDC_OPT_PLAINTEXT)->EnableWindow(FALSE);
1392     GetDlgItem(IDC_OPT_TIMESTAMP)->EnableWindow(FALSE);
1393     } else {
1394     GetDlgItem(IDC_OPT_PLAINTEXT)->EnableWindow(TRUE);
1395     GetDlgItem(IDC_OPT_TIMESTAMP)->EnableWindow(TRUE);
1396     }
1397     btn = (CButton *)GetDlgItem(IDC_OPT_APPEND);
1398     btn->SetCheck(ts.Append != 0);
1399     btn = (CButton *)GetDlgItem(IDC_OPT_PLAINTEXT);
1400     btn->SetCheck(ts.LogTypePlainText != 0);
1401     btn = (CButton *)GetDlgItem(IDC_OPT_TIMESTAMP);
1402     btn->SetCheck(ts.LogTimestamp != 0);
1403     btn = (CButton *)GetDlgItem(IDC_OPT_HIDEDLG);
1404     btn->SetCheck(ts.LogHideDialog != 0);
1405     btn = (CButton *)GetDlgItem(IDC_OPT_INCBUF);
1406     btn->SetCheck(ts.LogAllBuffIncludedInFirst != 0);
1407 yutakapon 5171
1408 yutakapon 5613
1409 maya 3227 // ƒ_ƒCƒAƒ�ƒO‚ɃtƒH�[ƒJƒX‚ð“–‚Ä‚é
1410     ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_VIEWLOG_EDITOR));
1411    
1412     return FALSE;
1413     }
1414    
1415     BOOL CLogPropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam)
1416     {
1417     char uimsg[MAX_UIMSG];
1418    
1419     switch (wParam) {
1420     case IDC_VIEWLOG_PATH | (BN_CLICKED << 16):
1421     {
1422     OPENFILENAME ofn;
1423    
1424     ZeroMemory(&ofn, sizeof(ofn));
1425     ofn.lStructSize = get_OPENFILENAME_SIZE();
1426     ofn.hwndOwner = GetSafeHwnd();
1427     get_lang_msg("FILEDLG_SELECT_LOGVIEW_APP_FILTER", ts.UIMsg, sizeof(ts.UIMsg),
1428     "exe(*.exe)\\0*.exe\\0all(*.*)\\0*.*\\0\\0", ts.UILanguageFile);
1429     ofn.lpstrFilter = ts.UIMsg;
1430     ofn.lpstrFile = ts.ViewlogEditor;
1431     ofn.nMaxFile = sizeof(ts.ViewlogEditor);
1432     get_lang_msg("FILEDLG_SELECT_LOGVIEW_APP_TITLE", uimsg, sizeof(uimsg),
1433     "Choose a executing file with launching logging file", ts.UILanguageFile);
1434     ofn.lpstrTitle = uimsg;
1435     ofn.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_FORCESHOWHIDDEN | OFN_HIDEREADONLY;
1436     if (GetOpenFileName(&ofn) != 0) {
1437     SetDlgItemText(IDC_VIEWLOG_EDITOR, ts.ViewlogEditor);
1438     }
1439     }
1440     return TRUE;
1441    
1442     case IDC_DEFAULTPATH_PUSH | (BN_CLICKED << 16):
1443     // ƒ�ƒOƒfƒBƒŒƒNƒgƒŠ‚Ì‘I‘ðƒ_ƒCƒAƒ�ƒO
1444     get_lang_msg("FILEDLG_SELECT_LOGDIR_TITLE", ts.UIMsg, sizeof(ts.UIMsg),
1445     "Select log folder", ts.UILanguageFile);
1446     doSelectFolder(GetSafeHwnd(), ts.LogDefaultPath, sizeof(ts.LogDefaultPath),
1447     ts.UIMsg);
1448     SetDlgItemText(IDC_DEFAULTPATH_EDITOR, ts.LogDefaultPath);
1449    
1450     return TRUE;
1451 yutakapon 5171
1452     case IDC_LOG_ROTATE | (BN_CLICKED << 16):
1453     {
1454     CButton *btn;
1455     btn = (CButton *)GetDlgItem(IDC_LOG_ROTATE);
1456     if (btn->GetCheck()) {
1457     GetDlgItem(IDC_ROTATE_SIZE_TEXT)->EnableWindow(TRUE);
1458     GetDlgItem(IDC_ROTATE_SIZE)->EnableWindow(TRUE);
1459     GetDlgItem(IDC_ROTATE_SIZE_TYPE)->EnableWindow(TRUE);
1460     GetDlgItem(IDC_ROTATE_STEP_TEXT)->EnableWindow(TRUE);
1461     GetDlgItem(IDC_ROTATE_STEP)->EnableWindow(TRUE);
1462     } else {
1463     GetDlgItem(IDC_ROTATE_SIZE_TEXT)->EnableWindow(FALSE);
1464     GetDlgItem(IDC_ROTATE_SIZE)->EnableWindow(FALSE);
1465     GetDlgItem(IDC_ROTATE_SIZE_TYPE)->EnableWindow(FALSE);
1466     GetDlgItem(IDC_ROTATE_STEP_TEXT)->EnableWindow(FALSE);
1467     GetDlgItem(IDC_ROTATE_STEP)->EnableWindow(FALSE);
1468     }
1469    
1470     }
1471     return TRUE;
1472 yutakapon 5613
1473     case IDC_OPT_BINARY | (BN_CLICKED << 16):
1474     {
1475     CButton *btn;
1476     // ƒoƒCƒiƒŠƒIƒvƒVƒ‡ƒ“‚ª—LŒø‚Ì�ê�‡�AFixLogOption() ‚Å–³Œø‰»‚µ‚Ä‚¢‚é
1477     // ƒIƒvƒVƒ‡ƒ“‚ð�A‚±‚±‚Å‚à–³Œø‚É‚µ‚È‚¯‚ê‚΂Ȃç‚È‚¢�B
1478     btn = (CButton *)GetDlgItem(IDC_OPT_BINARY);
1479     if (btn->GetCheck()) {
1480     ts.LogBinary = 1;
1481    
1482     ts.LogTypePlainText = 0;
1483     ts.LogTimestamp = 0;
1484     GetDlgItem(IDC_OPT_PLAINTEXT)->EnableWindow(FALSE);
1485     GetDlgItem(IDC_OPT_TIMESTAMP)->EnableWindow(FALSE);
1486     } else {
1487     ts.LogBinary = 0;
1488    
1489     GetDlgItem(IDC_OPT_PLAINTEXT)->EnableWindow(TRUE);
1490     GetDlgItem(IDC_OPT_TIMESTAMP)->EnableWindow(TRUE);
1491     }
1492     }
1493     return TRUE;
1494    
1495     case IDC_OPT_APPEND | (BN_CLICKED << 16):
1496     {
1497     CButton *btn;
1498     btn = (CButton *)GetDlgItem(IDC_OPT_APPEND);
1499     if (btn->GetCheck()) {
1500     ts.Append = 1;
1501     } else {
1502     ts.Append = 0;
1503     }
1504     }
1505     return TRUE;
1506    
1507     case IDC_OPT_PLAINTEXT | (BN_CLICKED << 16):
1508     {
1509     CButton *btn;
1510     btn = (CButton *)GetDlgItem(IDC_OPT_PLAINTEXT);
1511     if (btn->GetCheck()) {
1512     ts.LogTypePlainText = 1;
1513     } else {
1514     ts.LogTypePlainText = 0;
1515     }
1516     }
1517     return TRUE;
1518    
1519     case IDC_OPT_TIMESTAMP | (BN_CLICKED << 16):
1520     {
1521     CButton *btn;
1522     btn = (CButton *)GetDlgItem(IDC_OPT_TIMESTAMP);
1523     if (btn->GetCheck()) {
1524     ts.LogTimestamp = 1;
1525     } else {
1526     ts.LogTimestamp = 0;
1527     }
1528     }
1529     return TRUE;
1530    
1531     case IDC_OPT_HIDEDLG | (BN_CLICKED << 16):
1532     {
1533     CButton *btn;
1534     btn = (CButton *)GetDlgItem(IDC_OPT_HIDEDLG);
1535     if (btn->GetCheck()) {
1536     ts.LogHideDialog = 1;
1537     } else {
1538     ts.LogHideDialog = 0;
1539     }
1540     }
1541     return TRUE;
1542    
1543     case IDC_OPT_INCBUF | (BN_CLICKED << 16):
1544     {
1545     CButton *btn;
1546     btn = (CButton *)GetDlgItem(IDC_OPT_INCBUF);
1547     if (btn->GetCheck()) {
1548     ts.LogAllBuffIncludedInFirst = 1;
1549     } else {
1550     ts.LogAllBuffIncludedInFirst = 0;
1551     }
1552     }
1553     return TRUE;
1554 maya 3227 }
1555    
1556     return CPropertyPage::OnCommand(wParam, lParam);
1557     }
1558    
1559     void CLogPropPageDlg::OnOK()
1560     {
1561     char buf[80], buf2[80];
1562     time_t time_local;
1563     struct tm *tm_local;
1564     char uimsg[MAX_UIMSG];
1565     CButton *btn;
1566 yutakapon 5171 CString str;
1567     int i;
1568 maya 3227
1569     // Viewlog Editor path (2005.1.29 yutaka)
1570     GetDlgItemText(IDC_VIEWLOG_EDITOR, ts.ViewlogEditor, sizeof(ts.ViewlogEditor));
1571    
1572     // Log Default File Name (2006.8.28 maya)
1573     GetDlgItemText(IDC_DEFAULTNAME_EDITOR, buf, sizeof(buf));
1574     if (isInvalidStrftimeChar(buf)) {
1575     get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
1576     get_lang_msg("MSG_LOGFILE_INVALID_CHAR_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
1577     "Invalid character is included in log file name.", ts.UILanguageFile);
1578     MessageBox(ts.UIMsg, uimsg, MB_ICONEXCLAMATION);
1579     return;
1580     }
1581     // Œ»�ÝŽž��‚ðŽæ“¾
1582     time(&time_local);
1583     tm_local = localtime(&time_local);
1584     // Žž��•¶Žš—ñ‚ɕϊ·
1585     if (strlen(buf) != 0 && strftime(buf2, sizeof(buf2), buf, tm_local) == 0) {
1586     get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
1587     get_lang_msg("MSG_LOGFILE_TOOLONG_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
1588     "The log file name is too long.", ts.UILanguageFile);
1589     MessageBox(ts.UIMsg, uimsg, MB_ICONEXCLAMATION);
1590     return;
1591     }
1592     if (isInvalidFileNameChar(buf2)) {
1593     get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
1594     get_lang_msg("MSG_LOGFILE_INVALID_CHAR_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
1595     "Invalid character is included in log file name.", ts.UILanguageFile);
1596     MessageBox(ts.UIMsg, uimsg, MB_ICONEXCLAMATION);
1597     return;
1598     }
1599     strncpy_s(ts.LogDefaultName, sizeof(ts.LogDefaultName), buf, _TRUNCATE);
1600    
1601     // Log Default File Path (2007.5.30 maya)
1602     GetDlgItemText(IDC_DEFAULTPATH_EDITOR, ts.LogDefaultPath, sizeof(ts.LogDefaultPath));
1603    
1604     /* Auto start logging (2007.5.31 maya) */
1605     btn = (CButton *)GetDlgItem(IDC_AUTOSTART);
1606     ts.LogAutoStart = btn->GetCheck();
1607 yutakapon 5171
1608     /* Log Rotate */
1609     btn = (CButton *)GetDlgItem(IDC_LOG_ROTATE);
1610     if (btn->GetCheck()) { /* on */
1611     ts.LogRotate = ROTATE_SIZE;
1612    
1613     ((CComboBox*)GetDlgItem(IDC_ROTATE_SIZE_TYPE))->GetWindowText(str);
1614     for (i = 0 ; i < LOG_ROTATE_SIZETYPE_NUM ; i++) {
1615     if (strcmp(str, LogRotateSizeType[i]) == 0)
1616     break;
1617     }
1618     if (i >= LOG_ROTATE_SIZETYPE_NUM)
1619     i = 0;
1620     ts.LogRotateSizeType = i;
1621    
1622     ts.LogRotateSize = GetDlgItemInt(IDC_ROTATE_SIZE);
1623     for (i = 0 ; i < ts.LogRotateSizeType ; i++)
1624     ts.LogRotateSize *= 1024;
1625    
1626     ts.LogRotateStep = GetDlgItemInt(IDC_ROTATE_STEP);
1627    
1628     } else { /* off */
1629     ts.LogRotate = ROTATE_NONE;
1630     /* Žc‚è‚̃�ƒ“ƒo�[‚͈Ó�}“I‚É�Ý’è‚ðŽc‚·�B*/
1631     }
1632    
1633 maya 3227 }
1634    
1635    
1636    
1637     // CCygwinPropPageDlg ƒ_ƒCƒAƒ�ƒO
1638    
1639     IMPLEMENT_DYNAMIC(CCygwinPropPageDlg, CPropertyPage)
1640    
1641     CCygwinPropPageDlg::CCygwinPropPageDlg()
1642     : CPropertyPage(CCygwinPropPageDlg::IDD)
1643     {
1644     }
1645    
1646     CCygwinPropPageDlg::~CCygwinPropPageDlg()
1647     {
1648     if (DlgCygwinFont != NULL) {
1649     DeleteObject(DlgCygwinFont);
1650     }
1651     }
1652    
1653     BEGIN_MESSAGE_MAP(CCygwinPropPageDlg, CPropertyPage)
1654     END_MESSAGE_MAP()
1655    
1656     // CCygwinPropPageDlg ƒ�ƒbƒZ�[ƒW ƒnƒ“ƒhƒ‰
1657 yutakapon 4918 #define CYGTERM_FILE "cygterm.cfg" // CygTerm configuration file
1658 maya 3227
1659     BOOL CCygwinPropPageDlg::OnInitDialog()
1660     {
1661 yutakapon 4918 char *cfgfile = CYGTERM_FILE; // CygTerm configuration file
1662 maya 3227 char cfg[MAX_PATH];
1663     FILE *fp;
1664     char buf[256], *head, *body;
1665     char uimsg[MAX_UIMSG];
1666     CButton *btn;
1667    
1668     CPropertyPage::OnInitDialog();
1669    
1670     font = (HFONT)SendMessage(WM_GETFONT, 0, 0);
1671     GetObject(font, sizeof(LOGFONT), &logfont);
1672     if (get_lang_font("DLG_TAHOMA_FONT", GetSafeHwnd(), &logfont, &DlgCygwinFont, ts.UILanguageFile)) {
1673     SendDlgItemMessage(IDC_CYGWIN_PATH_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
1674     SendDlgItemMessage(IDC_CYGWIN_PATH, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
1675     SendDlgItemMessage(IDC_SELECT_FILE, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
1676     SendDlgItemMessage(IDC_CYGWIN, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
1677     SendDlgItemMessage(IDC_TERM_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
1678     SendDlgItemMessage(IDC_TERM_EDIT, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
1679     SendDlgItemMessage(IDC_TERMTYPE_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
1680     SendDlgItemMessage(IDC_TERM_TYPE, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
1681     SendDlgItemMessage(IDC_PORTSTART_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
1682     SendDlgItemMessage(IDC_PORT_START, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
1683     SendDlgItemMessage(IDC_PORTRANGE_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
1684     SendDlgItemMessage(IDC_PORT_RANGE, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
1685     SendDlgItemMessage(IDC_SHELL_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
1686     SendDlgItemMessage(IDC_SHELL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
1687     SendDlgItemMessage(IDC_ENV1_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
1688     SendDlgItemMessage(IDC_ENV1, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
1689     SendDlgItemMessage(IDC_ENV2_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
1690     SendDlgItemMessage(IDC_ENV2, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
1691     SendDlgItemMessage(IDC_LOGIN_SHELL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
1692     SendDlgItemMessage(IDC_HOME_CHDIR, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
1693     SendDlgItemMessage(IDC_AGENT_PROXY, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0));
1694     }
1695     else {
1696     DlgCygwinFont = NULL;
1697     }
1698    
1699     GetDlgItemText(IDC_CYGWIN_PATH_LABEL, uimsg, sizeof(uimsg));
1700     get_lang_msg("DLG_TAB_CYGWIN_PATH", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
1701     SetDlgItemText(IDC_CYGWIN_PATH_LABEL, ts.UIMsg);
1702    
1703     // try to read CygTerm config file
1704     memset(&settings, 0, sizeof(settings));
1705     _snprintf_s(settings.term, sizeof(settings.term), _TRUNCATE, "ttermpro.exe %%s %%d /E /KR=SJIS /KT=SJIS /VTICON=CygTerm /nossh");
1706     _snprintf_s(settings.term_type, sizeof(settings.term_type), _TRUNCATE, "vt100");
1707     _snprintf_s(settings.port_start, sizeof(settings.port_start), _TRUNCATE, "20000");
1708     _snprintf_s(settings.port_range, sizeof(settings.port_range), _TRUNCATE, "40");
1709     _snprintf_s(settings.shell, sizeof(settings.shell), _TRUNCATE, "auto");
1710     _snprintf_s(settings.env1, sizeof(settings.env1), _TRUNCATE, "MAKE_MODE=unix");
1711     _snprintf_s(settings.env2, sizeof(settings.env2), _TRUNCATE, "");
1712     settings.login_shell = FALSE;
1713     settings.home_chdir = FALSE;
1714     settings.agent_proxy = FALSE;
1715    
1716     strncpy_s(cfg, sizeof(cfg), ts.HomeDir, _TRUNCATE);
1717     AppendSlash(cfg, sizeof(cfg));
1718     strncat_s(cfg, sizeof(cfg), cfgfile, _TRUNCATE);
1719    
1720     fp = fopen(cfg, "r");
1721     if (fp != NULL) {
1722     while (fgets(buf, sizeof(buf), fp) != NULL) {
1723     int len = strlen(buf);
1724    
1725     if (buf[len - 1] == '\n')
1726     buf[len - 1] = '\0';
1727    
1728     split_buffer(buf, '=', &head, &body);
1729     if (head == NULL || body == NULL)
1730     continue;
1731    
1732     if (_stricmp(head, "TERM") == 0) {
1733     _snprintf_s(settings.term, sizeof(settings.term), _TRUNCATE, "%s", body);
1734    
1735     } else if (_stricmp(head, "TERM_TYPE") == 0) {
1736     _snprintf_s(settings.term_type, sizeof(settings.term_type), _TRUNCATE, "%s", body);
1737    
1738     } else if (_stricmp(head, "PORT_START") == 0) {
1739     _snprintf_s(settings.port_start, sizeof(settings.port_start), _TRUNCATE, "%s", body);
1740    
1741     } else if (_stricmp(head, "PORT_RANGE") == 0) {
1742     _snprintf_s(settings.port_range, sizeof(settings.port_range), _TRUNCATE, "%s", body);
1743    
1744     } else if (_stricmp(head, "SHELL") == 0) {
1745     _snprintf_s(settings.shell, sizeof(settings.shell), _TRUNCATE, "%s", body);
1746    
1747     } else if (_stricmp(head, "ENV_1") == 0) {
1748     _snprintf_s(settings.env1, sizeof(settings.env1), _TRUNCATE, "%s", body);
1749    
1750     } else if (_stricmp(head, "ENV_2") == 0) {
1751     _snprintf_s(settings.env2, sizeof(settings.env2), _TRUNCATE, "%s", body);
1752    
1753     } else if (_stricmp(head, "LOGIN_SHELL") == 0) {
1754     if (strchr("YyTt", *body)) {
1755     settings.login_shell = TRUE;
1756     }
1757    
1758     } else if (_stricmp(head, "HOME_CHDIR") == 0) {
1759     if (strchr("YyTt", *body)) {
1760     settings.home_chdir = TRUE;
1761     }
1762    
1763     } else if (_stricmp(head, "SSH_AGENT_PROXY") == 0) {
1764     if (strchr("YyTt", *body)) {
1765     settings.agent_proxy = TRUE;
1766     }
1767    
1768     } else {
1769     // TODO: error check
1770    
1771     }
1772     }
1773     fclose(fp);
1774     }
1775     SetDlgItemText(IDC_TERM_EDIT, settings.term);
1776     SetDlgItemText(IDC_TERM_TYPE, settings.term_type);
1777     SetDlgItemText(IDC_PORT_START, settings.port_start);
1778     SetDlgItemText(IDC_PORT_RANGE, settings.port_range);
1779     SetDlgItemText(IDC_SHELL, settings.shell);
1780     SetDlgItemText(IDC_ENV1, settings.env1);
1781     SetDlgItemText(IDC_ENV2, settings.env2);
1782     btn = (CButton *)GetDlgItem(IDC_LOGIN_SHELL);
1783     btn->SetCheck(settings.login_shell);
1784     btn = (CButton *)GetDlgItem(IDC_HOME_CHDIR);
1785     btn->SetCheck(settings.home_chdir);
1786     btn = (CButton *)GetDlgItem(IDC_AGENT_PROXY);
1787     btn->SetCheck(settings.agent_proxy);
1788    
1789     // Cygwin install path
1790     SetDlgItemText(IDC_CYGWIN_PATH, ts.CygwinDirectory);
1791    
1792     // ƒ_ƒCƒAƒ�ƒO‚ɃtƒH�[ƒJƒX‚ð“–‚Ä‚é
1793     ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_CYGWIN_PATH));
1794    
1795     return FALSE;
1796     }
1797    
1798     BOOL CCygwinPropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam)
1799     {
1800     switch (wParam) {
1801     case IDC_SELECT_FILE | (BN_CLICKED << 16):
1802     // Cygwin install ƒfƒBƒŒƒNƒgƒŠ‚Ì‘I‘ðƒ_ƒCƒAƒ�ƒO
1803     get_lang_msg("DIRDLG_CYGTERM_DIR_TITLE", ts.UIMsg, sizeof(ts.UIMsg),
1804     "Select Cygwin directory", ts.UILanguageFile);
1805     doSelectFolder(GetSafeHwnd(), ts.CygwinDirectory, sizeof(ts.CygwinDirectory),
1806     ts.UIMsg);
1807     // Cygwin install path
1808     SetDlgItemText(IDC_CYGWIN_PATH, ts.CygwinDirectory);
1809     return TRUE;
1810     }
1811    
1812     return CPropertyPage::OnCommand(wParam, lParam);
1813     }
1814    
1815     void CCygwinPropPageDlg::OnOK()
1816     {
1817 yutakapon 4918 char *cfgfile = CYGTERM_FILE; // CygTerm configuration file
1818 maya 3227 char *tmpfile = "cygterm.tmp";
1819     char cfg[MAX_PATH];
1820     char tmp[MAX_PATH];
1821     FILE *fp;
1822     FILE *tmp_fp;
1823     char buf[256], *head, *body;
1824     char uimsg[MAX_UIMSG];
1825     CButton *btn;
1826    
1827     // writing to CygTerm config file
1828     GetDlgItemText(IDC_TERM_EDIT, settings.term, sizeof(settings.term));
1829     GetDlgItemText(IDC_TERM_TYPE, settings.term_type, sizeof(settings.term_type));
1830     GetDlgItemText(IDC_PORT_START, settings.port_start, sizeof(settings.port_start));
1831     GetDlgItemText(IDC_PORT_RANGE, settings.port_range, sizeof(settings.port_range));
1832     GetDlgItemText(IDC_SHELL, settings.shell, sizeof(settings.shell));
1833     GetDlgItemText(IDC_ENV1, settings.env1, sizeof(settings.env1));
1834     GetDlgItemText(IDC_ENV2, settings.env2, sizeof(settings.env2));
1835     btn = (CButton *)GetDlgItem(IDC_LOGIN_SHELL);
1836     settings.login_shell = btn->GetCheck();
1837     btn = (CButton *)GetDlgItem(IDC_HOME_CHDIR);
1838     settings.home_chdir = btn->GetCheck();
1839     btn = (CButton *)GetDlgItem(IDC_AGENT_PROXY);
1840     settings.agent_proxy = btn->GetCheck();
1841    
1842     strncpy_s(cfg, sizeof(cfg), ts.HomeDir, _TRUNCATE);
1843     AppendSlash(cfg, sizeof(cfg));
1844     strncat_s(cfg, sizeof(cfg), cfgfile, _TRUNCATE);
1845    
1846     strncpy_s(tmp, sizeof(tmp), ts.HomeDir, _TRUNCATE);
1847     AppendSlash(tmp, sizeof(tmp));
1848     strncat_s(tmp, sizeof(tmp), tmpfile, _TRUNCATE);
1849    
1850     fp = fopen(cfg, "r");
1851     tmp_fp = fopen(tmp, "w");
1852     if (tmp_fp == NULL) {
1853     get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
1854     get_lang_msg("MSG_CYGTERM_CONF_WRITEFILE_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
1855     "Can't write CygTerm configuration file (%d).", ts.UILanguageFile);
1856     _snprintf_s(buf, sizeof(buf), _TRUNCATE, ts.UIMsg, GetLastError());
1857     MessageBox(buf, uimsg, MB_ICONEXCLAMATION);
1858     } else {
1859     if (fp != NULL) {
1860     while (fgets(buf, sizeof(buf), fp) != NULL) {
1861     int len = strlen(buf);
1862    
1863     if (buf[len - 1] == '\n')
1864     buf[len - 1] = '\0';
1865    
1866     split_buffer(buf, '=', &head, &body);
1867     if (head == NULL || body == NULL) {
1868     fprintf(tmp_fp, "%s\n", buf);
1869     }
1870     else if (_stricmp(head, "TERM") == 0) {
1871     fprintf(tmp_fp, "TERM = %s\n", settings.term);
1872     settings.term[0] = '\0';
1873     }
1874     else if (_stricmp(head, "TERM_TYPE") == 0) {
1875     fprintf(tmp_fp, "TERM_TYPE = %s\n", settings.term_type);
1876     settings.term_type[0] = '\0';
1877     }
1878     else if (_stricmp(head, "PORT_START") == 0) {
1879     fprintf(tmp_fp, "PORT_START = %s\n", settings.port_start);
1880     settings.port_start[0] = '\0';
1881     }
1882     else if (_stricmp(head, "PORT_RANGE") == 0) {
1883     fprintf(tmp_fp, "PORT_RANGE = %s\n", settings.port_range);
1884     settings.port_range[0] = '\0';
1885     }
1886     else if (_stricmp(head, "SHELL") == 0) {
1887     fprintf(tmp_fp, "SHELL = %s\n", settings.shell);
1888     settings.shell[0] = '\0';
1889     }
1890     else if (_stricmp(head, "ENV_1") == 0) {
1891     fprintf(tmp_fp, "ENV_1 = %s\n", settings.env1);
1892     settings.env1[0] = '\0';
1893     }
1894     else if (_stricmp(head, "ENV_2") == 0) {
1895     fprintf(tmp_fp, "ENV_2 = %s\n", settings.env2);
1896     settings.env2[0] = '\0';
1897     }
1898     else if (_stricmp(head, "LOGIN_SHELL") == 0) {
1899     fprintf(tmp_fp, "LOGIN_SHELL = %s\n", (settings.login_shell == TRUE) ? "yes" : "no");
1900     settings.login_shell = FALSE;
1901     }
1902     else if (_stricmp(head, "HOME_CHDIR") == 0) {
1903     fprintf(tmp_fp, "HOME_CHDIR = %s\n", (settings.home_chdir == TRUE) ? "yes" : "no");
1904     settings.home_chdir = FALSE;
1905     }
1906     else if (_stricmp(head, "SSH_AGENT_PROXY") == 0) {
1907     fprintf(tmp_fp, "SSH_AGENT_PROXY = %s\n", (settings.agent_proxy == TRUE) ? "yes" : "no");
1908     settings.agent_proxy = FALSE;
1909     }
1910     else {
1911     fprintf(tmp_fp, "%s = %s\n", head, body);
1912     }
1913     }
1914     fclose(fp);
1915     }
1916     else {
1917     fputs("# CygTerm setting\n", tmp_fp);
1918     fputs("\n", tmp_fp);
1919     }
1920     if (settings.term[0] != '\0') {
1921     fprintf(tmp_fp, "TERM = %s\n", settings.term);
1922     }
1923     if (settings.term_type[0] != '\0') {
1924     fprintf(tmp_fp, "TERM_TYPE = %s\n", settings.term_type);
1925     }
1926     if (settings.port_start[0] != '\0') {
1927     fprintf(tmp_fp, "PORT_START = %s\n", settings.port_start);
1928     }
1929     if (settings.port_range[0] != '\0') {
1930     fprintf(tmp_fp, "PORT_RANGE = %s\n", settings.port_range);
1931     }
1932     if (settings.shell[0] != '\0') {
1933     fprintf(tmp_fp, "SHELL = %s\n", settings.shell);
1934     }
1935     if (settings.env1[0] != '\0') {
1936     fprintf(tmp_fp, "ENV_1 = %s\n", settings.env1);
1937     }
1938     if (settings.env2[0] != '\0') {
1939     fprintf(tmp_fp, "ENV_2 = %s\n", settings.env2);
1940     }
1941     if (settings.login_shell) {
1942     fprintf(tmp_fp, "LOGIN_SHELL = yes\n");
1943     }
1944     if (settings.home_chdir) {
1945     fprintf(tmp_fp, "HOME_CHDIR = yes\n");
1946     }
1947     if (settings.agent_proxy) {
1948     fprintf(tmp_fp, "SSH_AGENT_PROXY = yes\n");
1949     }
1950     fclose(tmp_fp);
1951    
1952     if (remove(cfg) != 0 && errno != ENOENT) {
1953     get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
1954     get_lang_msg("MSG_CYGTERM_CONF_REMOVEFILE_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
1955     "Can't remove old CygTerm configuration file (%d).", ts.UILanguageFile);
1956     _snprintf_s(buf, sizeof(buf), _TRUNCATE, ts.UIMsg, GetLastError());
1957     MessageBox(buf, uimsg, MB_ICONEXCLAMATION);
1958     }
1959     else if (rename(tmp, cfg) != 0) {
1960     get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile);
1961     get_lang_msg("MSG_CYGTERM_CONF_RENAMEFILE_ERROR", ts.UIMsg, sizeof(ts.UIMsg),
1962     "Can't rename CygTerm configuration file (%d).", ts.UILanguageFile);
1963     _snprintf_s(buf, sizeof(buf), _TRUNCATE, ts.UIMsg, GetLastError());
1964     MessageBox(buf, uimsg, MB_ICONEXCLAMATION);
1965 yutakapon 4918 } else {
1966     // cygterm.cfg ƒtƒ@ƒCƒ‹‚ւ̕ۑ¶‚ª�¬Œ÷‚µ‚½‚ç�Aƒ�ƒbƒZ�[ƒWƒ_ƒCƒAƒ�ƒO‚ð•\ަ‚·‚é�B
1967     // ‰ü‚ß‚Ä�ASave setup‚ðŽÀ�s‚·‚é•K—v‚͂Ȃ¢‚±‚Æ‚ð’�ˆÓŠ«‹N‚·‚é�B
1968     // (2012.5.1 yutaka)
1969 maya 5129 get_lang_msg("MSG_TT_NOTICE", uimsg, sizeof(uimsg), "MSG_TT_NOTICE", ts.UILanguageFile);
1970     get_lang_msg("MSG_CYGTERM_CONF_SAVED_NOTICE", ts.UIMsg, sizeof(ts.UIMsg),
1971     "%s has been saved. Do not do save setup.", ts.UILanguageFile);
1972     _snprintf_s(buf, sizeof(buf), _TRUNCATE, ts.UIMsg, CYGTERM_FILE);
1973     MessageBox(buf, uimsg, MB_OK | MB_ICONINFORMATION);
1974 maya 3227 }
1975     }
1976    
1977     // Cygwin install path
1978     GetDlgItemText(IDC_CYGWIN_PATH, ts.CygwinDirectory, sizeof(ts.CygwinDirectory));
1979     }
1980    
1981    
1982    
1983     // CAddSettingPropSheetDlg
1984    
1985     IMPLEMENT_DYNAMIC(CAddSettingPropSheetDlg, CPropertySheet)
1986    
1987     CAddSettingPropSheetDlg::CAddSettingPropSheetDlg(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
1988     :CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
1989     {
1990     AddPage(&m_GeneralPage);
1991 maya 3777 AddPage(&m_SequencePage);
1992     AddPage(&m_CopypastePage);
1993 maya 3227 AddPage(&m_VisualPage);
1994     AddPage(&m_LogPage);
1995     AddPage(&m_CygwinPage);
1996    
1997     m_psh.dwFlags |= PSH_NOAPPLYNOW;
1998     }
1999    
2000     CAddSettingPropSheetDlg::CAddSettingPropSheetDlg(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
2001     :CPropertySheet(pszCaption, pParentWnd, iSelectPage)
2002     {
2003     AddPage(&m_GeneralPage);
2004 maya 3777 AddPage(&m_SequencePage);
2005 maya 3227 AddPage(&m_CopypastePage);
2006     AddPage(&m_VisualPage);
2007     AddPage(&m_LogPage);
2008     AddPage(&m_CygwinPage);
2009    
2010     m_psh.dwFlags |= PSH_NOAPPLYNOW;
2011     }
2012    
2013     CAddSettingPropSheetDlg::~CAddSettingPropSheetDlg()
2014     {
2015     }
2016    
2017    
2018     BEGIN_MESSAGE_MAP(CAddSettingPropSheetDlg, CPropertySheet)
2019     END_MESSAGE_MAP()
2020    
2021    
2022     // CAddSettingPropSheetDlg ƒ�ƒbƒZ�[ƒW ƒnƒ“ƒhƒ‰
2023    
2024     BOOL CAddSettingPropSheetDlg::OnInitDialog()
2025     {
2026     CPropertySheet::OnInitDialog();
2027    
2028     get_lang_msg("DLG_TABSHEET_TITLE", ts.UIMsg, sizeof(ts.UIMsg),
2029     "Tera Term: Additional settings", ts.UILanguageFile);
2030     SetWindowText(ts.UIMsg);
2031    
2032     CTabCtrl *tab = GetTabControl();
2033     TCITEM tc;
2034     tc.mask = TCIF_TEXT;
2035    
2036     get_lang_msg("DLG_TABSHEET_TITLE_GENERAL", ts.UIMsg, sizeof(ts.UIMsg),
2037     "General", ts.UILanguageFile);
2038     tc.pszText = ts.UIMsg;
2039     tab->SetItem(0, &tc);
2040    
2041 maya 3777 get_lang_msg("DLG_TABSHEET_TITLE_SEQUENCE", ts.UIMsg, sizeof(ts.UIMsg),
2042     "Control Sequence", ts.UILanguageFile);
2043     tc.pszText = ts.UIMsg;
2044     tab->SetItem(1, &tc);
2045    
2046 maya 3227 get_lang_msg("DLG_TABSHEET_TITLE_COPYPASTE", ts.UIMsg, sizeof(ts.UIMsg),
2047     "Copy and Paste", ts.UILanguageFile);
2048     tc.pszText = ts.UIMsg;
2049 maya 3777 tab->SetItem(2, &tc);
2050 maya 3227
2051     get_lang_msg("DLG_TABSHEET_TITLE_VISUAL", ts.UIMsg, sizeof(ts.UIMsg),
2052     "Visual", ts.UILanguageFile);
2053     tc.pszText = ts.UIMsg;
2054 maya 3777 tab->SetItem(3, &tc);
2055 maya 3227
2056     get_lang_msg("DLG_TABSHEET_TITLE_Log", ts.UIMsg, sizeof(ts.UIMsg),
2057     "Log", ts.UILanguageFile);
2058     tc.pszText = ts.UIMsg;
2059 maya 3777 tab->SetItem(4, &tc);
2060 maya 3227
2061     get_lang_msg("DLG_TABSHEET_TITLE_CYGWIN", ts.UIMsg, sizeof(ts.UIMsg),
2062     "Cygwin", ts.UILanguageFile);
2063     tc.pszText = ts.UIMsg;
2064 maya 3777 tab->SetItem(5, &tc);
2065 maya 3227
2066     return FALSE;
2067     }

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