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 3735 - (hide annotations) (download) (as text)
Tue Jan 12 16:41:13 2010 UTC (14 years, 3 months ago) by yutakapon
Original Path: trunk/teraterm/teraterm/addsetting.cpp
File MIME type: text/x-c++src
File size: 53333 byte(s)
dditional Settings ダイアログに CursorCtrlSequence を追加した。

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

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