Develop and Download Open Source Software

Browse Subversion Repository

Contents of /trunk/teraterm/teraterm/addsetting.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 8445 - (show annotations) (download) (as text)
Tue Dec 17 12:15:31 2019 UTC (4 years, 3 months ago) by doda
File MIME type: text/x-c++src
File size: 57802 byte(s)
Merge branch 'unicode_buf'
1 /*
2 * Copyright (C) 2008-2019 TeraTerm Project
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * 3. The name of the author may not be used to endorse or promote products
15 * derived from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29 /*
30 * Additional settings dialog
31 */
32 #include "teraterm_conf.h"
33
34 #include <stdio.h>
35 #include <tchar.h>
36 #include <windows.h>
37 #include <commctrl.h>
38 #include <time.h>
39 #include <tchar.h>
40 #define _CRTDBG_MAP_ALLOC
41 #include <stdlib.h>
42 #include <crtdbg.h>
43
44 #include "teraterm.h"
45 #include "tttypes.h"
46 #include "ttwinman.h" // for ts
47 #include "ttcommon.h"
48 #include "ttftypes.h"
49 #include "dlglib.h"
50 #include "compat_win.h"
51 #include "helpid.h"
52 #include "addsetting.h"
53 #include "debug_pp.h"
54
55 #include "tipwin.h"
56
57 const mouse_cursor_t MouseCursor[] = {
58 {"ARROW", IDC_ARROW},
59 {"IBEAM", IDC_IBEAM},
60 {"CROSS", IDC_CROSS},
61 {"HAND", IDC_HAND},
62 {NULL, NULL},
63 };
64 #define MOUSE_CURSOR_MAX (sizeof(MouseCursor)/sizeof(MouseCursor[0]) - 1)
65
66 void CVisualPropPageDlg::SetupRGBbox(int index)
67 {
68 COLORREF Color = ts.ANSIColor[index];
69 BYTE c;
70
71 c = GetRValue(Color);
72 SetDlgItemNum(IDC_COLOR_RED, c);
73
74 c = GetGValue(Color);
75 SetDlgItemNum(IDC_COLOR_GREEN, c);
76
77 c = GetBValue(Color);
78 SetDlgItemNum(IDC_COLOR_BLUE, c);
79 }
80
81 // CGeneralPropPageDlg �_�C�A���O
82
83 CGeneralPropPageDlg::CGeneralPropPageDlg(HINSTANCE inst, TTCPropertySheet *sheet)
84 : TTCPropertyPage(inst, CGeneralPropPageDlg::IDD, sheet)
85 {
86 wchar_t UIMsg[MAX_UIMSG];
87 get_lang_msgW("DLG_TABSHEET_TITLE_GENERAL", UIMsg, _countof(UIMsg),
88 L"General", ts.UILanguageFile);
89 m_psp.pszTitle = _wcsdup(UIMsg);
90 m_psp.dwFlags |= (PSP_USETITLE | PSP_HASHELP);
91 }
92
93 CGeneralPropPageDlg::~CGeneralPropPageDlg()
94 {
95 free((void *)m_psp.pszTitle);
96 }
97
98 // CGeneralPropPageDlg ���b�Z�[�W �n���h��
99
100 void CGeneralPropPageDlg::OnInitDialog()
101 {
102 TTCPropertyPage::OnInitDialog();
103
104 static const DlgTextInfo TextInfos[] = {
105 { IDC_CLICKABLE_URL, "DLG_TAB_GENERAL_CLICKURL" },
106 { IDC_DISABLE_SENDBREAK, "DLG_TAB_GENERAL_DISABLESENDBREAK" },
107 { IDC_ACCEPT_BROADCAST, "DLG_TAB_GENERAL_ACCEPTBROADCAST" },
108 { IDC_MOUSEWHEEL_SCROLL_LINE, "DLG_TAB_GENERAL_MOUSEWHEEL_SCROLL_LINE" },
109 { IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE, "DLG_TAB_GENERAL_AUTOSCROLL_ONLY_IN_BOTTOM_LINE" },
110 { IDC_CLEAR_ON_RESIZE, "DLG_TAB_GENERAL_CLEAR_ON_RESIZE" },
111 { IDC_CURSOR_CHANGE_IME, "DLG_TAB_GENERAL_CURSOR_CHANGE_IME" },
112 { IDC_LIST_HIDDEN_FONTS, "DLG_TAB_GENERAL_LIST_HIDDEN_FONTS" },
113 { IDC_TITLEFMT_GROUP, "DLG_TAB_GENERAL_TITLEFMT_GROUP" },
114 { IDC_TITLEFMT_DISPHOSTNAME, "DLG_TAB_GENERAL_TITLEFMT_DISPHOSTNAME" },
115 { IDC_TITLEFMT_DISPSESSION, "DLG_TAB_GENERAL_TITLEFMT_DISPSESSION" },
116 { IDC_TITLEFMT_DISPVTTEK, "DLG_TAB_GENERAL_TITLEFMT_DISPVTTEK" },
117 { IDC_TITLEFMT_SWAPHOSTTITLE, "DLG_TAB_GENERAL_TITLEFMT_SWAPHOSTTITLE" },
118 { IDC_TITLEFMT_DISPTCPPORT, "DLG_TAB_GENERAL_TITLEFMT_DISPTCPPORT" },
119 { IDC_TITLEFMT_DISPSERIALSPEED, "DLG_TAB_GENERAL_TITLEFMT_DISPSERIALSPEED" }
120 };
121 SetDlgTexts(m_hWnd, TextInfos, _countof(TextInfos), ts.UILanguageFile);
122
123 // (1)DisableAcceleratorSendBreak
124 SetCheck(IDC_DISABLE_SENDBREAK, ts.DisableAcceleratorSendBreak);
125
126 // (2)EnableClickableUrl
127 SetCheck(IDC_CLICKABLE_URL, ts.EnableClickableUrl);
128
129 // (3)AcceptBroadcast 337: 2007/03/20
130 SetCheck(IDC_ACCEPT_BROADCAST, ts.AcceptBroadcast);
131
132 // (4)IDC_MOUSEWHEEL_SCROLL_LINE
133 SetDlgItemNum(IDC_SCROLL_LINE, ts.MouseWheelScrollLine);
134
135 // (5)IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE
136 SetCheck(IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE, ts.AutoScrollOnlyInBottomLine);
137
138 // (6)IDC_CLEAR_ON_RESIZE
139 SetCheck(IDC_CLEAR_ON_RESIZE, (ts.TermFlag & TF_CLEARONRESIZE) != 0);
140
141 // (7)IDC_CURSOR_CHANGE_IME
142 SetCheck(IDC_CURSOR_CHANGE_IME, (ts.WindowFlag & WF_IMECURSORCHANGE) != 0);
143
144 // (8)IDC_LIST_HIDDEN_FONTS
145 SetCheck(IDC_LIST_HIDDEN_FONTS, ts.ListHiddenFonts);
146
147 // (9) Title Format
148 SetCheck(IDC_TITLEFMT_DISPHOSTNAME, (ts.TitleFormat & 1) != 0);
149 SetCheck(IDC_TITLEFMT_DISPSESSION, (ts.TitleFormat & (1<<1)) != 0);
150 SetCheck(IDC_TITLEFMT_DISPVTTEK, (ts.TitleFormat & (1<<2)) != 0);
151 SetCheck(IDC_TITLEFMT_SWAPHOSTTITLE, (ts.TitleFormat & (1<<3)) != 0);
152 SetCheck(IDC_TITLEFMT_DISPTCPPORT, (ts.TitleFormat & (1<<4)) != 0);
153 SetCheck(IDC_TITLEFMT_DISPSERIALSPEED, (ts.TitleFormat & (1<<5)) != 0);
154
155 // �_�C�A���O���t�H�[�J�X�������� (2004.12.7 yutaka)
156 ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_CLICKABLE_URL));
157 }
158
159 void CGeneralPropPageDlg::OnOK()
160 {
161 TCHAR buf[64];
162 int val;
163
164 // (1)
165 ts.DisableAcceleratorSendBreak = GetCheck(IDC_DISABLE_SENDBREAK);
166
167 // (2)
168 ts.EnableClickableUrl = GetCheck(IDC_CLICKABLE_URL);
169
170 // (3) 337: 2007/03/20
171 ts.AcceptBroadcast = GetCheck(IDC_ACCEPT_BROADCAST);
172
173 // (4)IDC_MOUSEWHEEL_SCROLL_LINE
174 GetDlgItemTextT(IDC_SCROLL_LINE, buf, _countof(buf));
175 val = _tstoi(buf);
176 if (val > 0)
177 ts.MouseWheelScrollLine = val;
178
179 // (5)IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE
180 ts.AutoScrollOnlyInBottomLine = GetCheck(IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE);
181
182 // (6)IDC_CLEAR_ON_RESIZE
183 if (((ts.TermFlag & TF_CLEARONRESIZE) != 0) != GetCheck(IDC_CLEAR_ON_RESIZE)) {
184 ts.TermFlag ^= TF_CLEARONRESIZE;
185 }
186
187 // (7)IDC_CURSOR_CHANGE_IME
188 if (((ts.WindowFlag & WF_IMECURSORCHANGE) != 0) != GetCheck(IDC_CURSOR_CHANGE_IME)) {
189 ts.WindowFlag ^= WF_IMECURSORCHANGE;
190 }
191
192 // (8)IDC_LIST_HIDDEN_FONTS
193 ts.ListHiddenFonts = GetCheck(IDC_LIST_HIDDEN_FONTS);
194
195 // (9) Title Format
196 ts.TitleFormat = GetCheck(IDC_TITLEFMT_DISPHOSTNAME) == BST_CHECKED;
197 ts.TitleFormat |= (GetCheck(IDC_TITLEFMT_DISPSESSION) == BST_CHECKED) << 1;
198 ts.TitleFormat |= (GetCheck(IDC_TITLEFMT_DISPVTTEK) == BST_CHECKED) << 2;
199 ts.TitleFormat |= (GetCheck(IDC_TITLEFMT_SWAPHOSTTITLE) == BST_CHECKED) << 3;
200 ts.TitleFormat |= (GetCheck(IDC_TITLEFMT_DISPTCPPORT) == BST_CHECKED) << 4;
201 ts.TitleFormat |= (GetCheck(IDC_TITLEFMT_DISPSERIALSPEED) == BST_CHECKED) << 5;
202 }
203
204 void CGeneralPropPageDlg::OnHelp()
205 {
206 PostMessage(HVTWin, WM_USER_DLGHELP2, HlpMenuSetupAdditional, 0);
207 }
208
209 // CSequencePropPageDlg �_�C�A���O
210
211 CSequencePropPageDlg::CSequencePropPageDlg(HINSTANCE inst, TTCPropertySheet *sheet)
212 : TTCPropertyPage(inst, CSequencePropPageDlg::IDD, sheet)
213 {
214 wchar_t UIMsg[MAX_UIMSG];
215 get_lang_msgW("DLG_TABSHEET_TITLE_SEQUENCE", UIMsg, _countof(UIMsg),
216 L"Control Sequence", ts.UILanguageFile);
217 m_psp.pszTitle = _wcsdup(UIMsg);
218 m_psp.dwFlags |= (PSP_USETITLE | PSP_HASHELP);
219 }
220
221 CSequencePropPageDlg::~CSequencePropPageDlg()
222 {
223 free((void *)m_psp.pszTitle);
224 }
225
226 // CSequencePropPageDlg ���b�Z�[�W �n���h��
227
228 void CSequencePropPageDlg::OnInitDialog()
229 {
230 TTCPropertyPage::OnInitDialog();
231
232 static const DlgTextInfo TextInfos[] = {
233 { IDC_ACCEPT_MOUSE_EVENT_TRACKING, "DLG_TAB_SEQUENCE_ACCEPT_MOUSE_EVENT_TRACKING" },
234 { IDC_DISABLE_MOUSE_TRACKING_CTRL, "DLG_TAB_SEQUENCE_DISABLE_MOUSE_TRACKING_CTRL" },
235 { IDC_ACCEPT_TITLE_CHANGING_LABEL, "DLG_TAB_SEQUENCE_ACCEPT_TITLE_CHANGING" },
236
237 { IDC_CURSOR_CTRL_SEQ, "DLG_TAB_SEQUENCE_CURSOR_CTRL" },
238 { IDC_WINDOW_CTRL, "DLG_TAB_SEQUENCE_WINDOW_CTRL" },
239 { IDC_WINDOW_REPORT, "DLG_TAB_SEQUENCE_WINDOW_REPORT" },
240 { IDC_TITLE_REPORT_LABEL, "DLG_TAB_SEQUENCE_TITLE_REPORT" },
241
242 { IDC_CLIPBOARD_ACCESS_LABEL, "DLG_TAB_SEQUENCE_CLIPBOARD_ACCESS" },
243
244 { IDC_CLIPBOARD_NOTIFY, "DLG_TAB_SEQUENCE_CLIPBOARD_NOTIFY" },
245 { IDC_ACCEPT_CLEAR_SBUFF, "DLG_TAB_SEQUENCE_ACCEPT_CLEAR_SBUFF" },
246 };
247 SetDlgTexts(m_hWnd, TextInfos, _countof(TextInfos), ts.UILanguageFile);
248
249 wchar_t uimsg[MAX_UIMSG];
250 get_lang_msgW("DLG_TAB_SEQUENCE_ACCEPT_TITLE_CHANGING_OFF", uimsg, _countof(uimsg), L"off", ts.UILanguageFile);
251 SendDlgItemMessageW(IDC_ACCEPT_TITLE_CHANGING, CB_ADDSTRING, 0, (LPARAM)uimsg);
252 get_lang_msgW("DLG_TAB_SEQUENCE_ACCEPT_TITLE_CHANGING_OVERWRITE", uimsg, _countof(uimsg), L"overwrite", ts.UILanguageFile);
253 SendDlgItemMessageW(IDC_ACCEPT_TITLE_CHANGING, CB_ADDSTRING, 0, (LPARAM)uimsg);
254 get_lang_msgW("DLG_TAB_SEQUENCE_ACCEPT_TITLE_CHANGING_AHEAD", uimsg, _countof(uimsg), L"ahead", ts.UILanguageFile);
255 SendDlgItemMessageW(IDC_ACCEPT_TITLE_CHANGING, CB_ADDSTRING, 0, (LPARAM)uimsg);
256 get_lang_msgW("DLG_TAB_SEQUENCE_ACCEPT_TITLE_CHANGING_LAST", uimsg, _countof(uimsg), L"last", ts.UILanguageFile);
257 SendDlgItemMessageW(IDC_ACCEPT_TITLE_CHANGING, CB_ADDSTRING, 0, (LPARAM)uimsg);
258
259 get_lang_msgW("DLG_TAB_SEQUENCE_TITLE_REPORT_IGNORE", uimsg, _countof(uimsg), L"ignore", ts.UILanguageFile);
260 SendDlgItemMessageW(IDC_TITLE_REPORT, CB_ADDSTRING, 0, (LPARAM)uimsg);
261 get_lang_msgW("DLG_TAB_SEQUENCE_TITLE_REPORT_ACCEPT", uimsg, _countof(uimsg), L"accept", ts.UILanguageFile);
262 SendDlgItemMessageW(IDC_TITLE_REPORT, CB_ADDSTRING, 0, (LPARAM)uimsg);
263 get_lang_msgW("DLG_TAB_SEQUENCE_TITLE_REPORT_EMPTY", uimsg, _countof(uimsg), L"empty", ts.UILanguageFile);
264 SendDlgItemMessageW(IDC_TITLE_REPORT, CB_ADDSTRING, 0, (LPARAM)uimsg);
265
266 get_lang_msgW("DLG_TAB_SEQUENCE_CLIPBOARD_ACCESS_OFF", uimsg, _countof(uimsg), L"off", ts.UILanguageFile);
267 SendDlgItemMessageW(IDC_CLIPBOARD_ACCESS, CB_ADDSTRING, 0, (LPARAM)uimsg);
268 get_lang_msgW("DLG_TAB_SEQUENCE_CLIPBOARD_ACCESS_WRITE", uimsg, _countof(uimsg), L"write only", ts.UILanguageFile);
269 SendDlgItemMessageW(IDC_CLIPBOARD_ACCESS, CB_ADDSTRING, 0, (LPARAM)uimsg);
270 get_lang_msgW("DLG_TAB_SEQUENCE_CLIPBOARD_ACCESS_READ", uimsg, _countof(uimsg), L"read only", ts.UILanguageFile);
271 SendDlgItemMessageW(IDC_CLIPBOARD_ACCESS, CB_ADDSTRING, 0, (LPARAM)uimsg);
272 get_lang_msgW("DLG_TAB_SEQUENCE_CLIPBOARD_ACCESS_ON", uimsg, _countof(uimsg), L"read/write", ts.UILanguageFile);
273 SendDlgItemMessageW(IDC_CLIPBOARD_ACCESS, CB_ADDSTRING, 0, (LPARAM)uimsg);
274
275 // (1)IDC_ACCEPT_MOUSE_EVENT_TRACKING
276 SetCheck(IDC_ACCEPT_MOUSE_EVENT_TRACKING, ts.MouseEventTracking);
277 EnableDlgItem(IDC_DISABLE_MOUSE_TRACKING_CTRL, ts.MouseEventTracking ? TRUE : FALSE);
278
279 // (2)IDC_DISABLE_MOUSE_TRACKING_CTRL
280 SetCheck(IDC_DISABLE_MOUSE_TRACKING_CTRL, ts.DisableMouseTrackingByCtrl);
281
282 // (3)IDC_ACCEPT_TITLE_CHANGING
283 SetCurSel(IDC_ACCEPT_TITLE_CHANGING, ts.AcceptTitleChangeRequest);
284
285 // (4)IDC_TITLE_REPORT
286 SetCurSel(IDC_TITLE_REPORT,
287 (ts.WindowFlag & WF_TITLEREPORT) == IdTitleReportIgnore ? 0 :
288 (ts.WindowFlag & WF_TITLEREPORT) == IdTitleReportAccept ? 1
289 /*(ts.WindowFlag & WF_TITLEREPORT) == IdTitleReportEmptye ? */ : 2);
290
291 // (5)IDC_WINDOW_CTRL
292 SetCheck(IDC_WINDOW_CTRL, (ts.WindowFlag & WF_WINDOWCHANGE) != 0);
293
294 // (6)IDC_WINDOW_REPORT
295 SetCheck(IDC_WINDOW_REPORT, (ts.WindowFlag & WF_WINDOWREPORT) != 0);
296
297 // (7)IDC_CURSOR_CTRL_SEQ
298 SetCheck(IDC_CURSOR_CTRL_SEQ, (ts.WindowFlag & WF_CURSORCHANGE) != 0);
299
300 // (8)IDC_CLIPBOARD_ACCESS
301 SetCurSel(IDC_CLIPBOARD_ACCESS,
302 (ts.CtrlFlag & CSF_CBRW) == CSF_CBRW ? 3 :
303 (ts.CtrlFlag & CSF_CBRW) == CSF_CBREAD ? 2 :
304 (ts.CtrlFlag & CSF_CBRW) == CSF_CBWRITE ? 1 :
305 0); // off
306
307 // (9)IDC_CLIPBOARD_NOTIFY
308 SetCheck(IDC_CLIPBOARD_NOTIFY, ts.NotifyClipboardAccess);
309 EnableDlgItem(IDC_CLIPBOARD_NOTIFY, HasBalloonTipSupport() ? TRUE : FALSE);
310
311 // (10)IDC_ACCEPT_CLEAR_SBUFF
312 SetCheck(IDC_ACCEPT_CLEAR_SBUFF, (ts.TermFlag & TF_REMOTECLEARSBUFF) != 0);
313
314 // �_�C�A���O���t�H�[�J�X�������� (2004.12.7 yutaka)
315 ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_ACCEPT_MOUSE_EVENT_TRACKING));
316 }
317
318 BOOL CSequencePropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam)
319 {
320 switch (wParam) {
321 case IDC_ACCEPT_MOUSE_EVENT_TRACKING | (BN_CLICKED << 16):
322 EnableDlgItem(IDC_DISABLE_MOUSE_TRACKING_CTRL,
323 GetCheck(IDC_ACCEPT_MOUSE_EVENT_TRACKING) ? TRUE : FALSE);
324 return TRUE;
325 }
326 return TTCPropertyPage::OnCommand(wParam, lParam);
327 }
328
329 void CSequencePropPageDlg::OnOK()
330 {
331 // (1)IDC_ACCEPT_MOUSE_EVENT_TRACKING
332 ts.MouseEventTracking = GetCheck(IDC_ACCEPT_MOUSE_EVENT_TRACKING);
333
334 // (2)IDC_DISABLE_MOUSE_TRACKING_CTRL
335 ts.DisableMouseTrackingByCtrl = GetCheck(IDC_DISABLE_MOUSE_TRACKING_CTRL);
336
337 // (3)IDC_ACCEPT_TITLE_CHANGING
338 int sel = GetCurSel(IDC_ACCEPT_TITLE_CHANGING);
339 if (0 <= sel && sel <= IdTitleChangeRequestMax) {
340 ts.AcceptTitleChangeRequest = sel;
341 }
342
343 // (4)IDC_TITLE_REPORT
344 switch (GetCurSel(IDC_TITLE_REPORT)) {
345 case 0:
346 ts.WindowFlag &= ~WF_TITLEREPORT;
347 break;
348 case 1:
349 ts.WindowFlag &= ~WF_TITLEREPORT;
350 ts.WindowFlag |= IdTitleReportAccept;
351 break;
352 case 2:
353 ts.WindowFlag |= IdTitleReportEmpty;
354 break;
355 default: // Invalid value.
356 break;
357 }
358
359 // (5)IDC_WINDOW_CTRL
360 if (((ts.WindowFlag & WF_WINDOWCHANGE) != 0) != GetCheck(IDC_WINDOW_CTRL)) {
361 ts.WindowFlag ^= WF_WINDOWCHANGE;
362 }
363
364 // (6)IDC_WINDOW_REPORT
365 if (((ts.WindowFlag & WF_WINDOWREPORT) != 0) != GetCheck(IDC_WINDOW_REPORT)) {
366 ts.WindowFlag ^= WF_WINDOWREPORT;
367 }
368
369 // (7)IDC_CURSOR_CTRL_SEQ
370 if (((ts.WindowFlag & WF_CURSORCHANGE) != 0) != GetCheck(IDC_CURSOR_CTRL_SEQ)) {
371 ts.WindowFlag ^= WF_CURSORCHANGE;
372 }
373
374 // (8)IDC_CLIPBOARD_ACCESS
375 switch (GetCurSel(IDC_CLIPBOARD_ACCESS)) {
376 case 0: // off
377 ts.CtrlFlag &= ~CSF_CBRW;
378 break;
379 case 1: // write only
380 ts.CtrlFlag &= ~CSF_CBRW;
381 ts.CtrlFlag |= CSF_CBWRITE;
382 break;
383 case 2: // read only
384 ts.CtrlFlag &= ~CSF_CBRW;
385 ts.CtrlFlag |= CSF_CBREAD;
386 break;
387 case 3: // read/write
388 ts.CtrlFlag |= CSF_CBRW;
389 break;
390 default: // Invalid value.
391 break;
392 }
393
394 // (9)IDC_CLIPBOARD_ACCESS
395 ts.NotifyClipboardAccess = GetCheck(IDC_CLIPBOARD_NOTIFY);
396
397 // (10)IDC_ACCEPT_CLEAR_SBUFF
398 if (((ts.TermFlag & TF_REMOTECLEARSBUFF) != 0) != GetCheck(IDC_ACCEPT_CLEAR_SBUFF)) {
399 ts.TermFlag ^= TF_REMOTECLEARSBUFF;
400 }
401 }
402
403 void CSequencePropPageDlg::OnHelp()
404 {
405 PostMessage(HVTWin, WM_USER_DLGHELP2, HlpMenuSetupAdditional, 0);
406 }
407
408 // CCopypastePropPageDlg �_�C�A���O
409
410 CCopypastePropPageDlg::CCopypastePropPageDlg(HINSTANCE inst, TTCPropertySheet *sheet)
411 : TTCPropertyPage(inst, CCopypastePropPageDlg::IDD, sheet)
412 {
413 wchar_t UIMsg[MAX_UIMSG];
414 get_lang_msgW("DLG_TABSHEET_TITLE_COPYPASTE", UIMsg, _countof(UIMsg),
415 L"Copy and Paste", ts.UILanguageFile);
416 m_psp.pszTitle = _wcsdup(UIMsg);
417 m_psp.dwFlags |= (PSP_USETITLE | PSP_HASHELP);
418 }
419
420 CCopypastePropPageDlg::~CCopypastePropPageDlg()
421 {
422 free((void *)m_psp.pszTitle);
423 }
424
425 // CCopypastePropPageDlg ���b�Z�[�W �n���h��
426
427 void CCopypastePropPageDlg::OnInitDialog()
428 {
429 TTCPropertyPage::OnInitDialog();
430
431 static const DlgTextInfo TextInfos[] = {
432 { IDC_LINECOPY, "DLG_TAB_COPYPASTE_CONTINUE" },
433 { IDC_DISABLE_PASTE_RBUTTON, "DLG_TAB_COPYPASTE_MOUSEPASTE" },
434 { IDC_CONFIRM_PASTE_RBUTTON, "DLG_TAB_COPYPASTE_CONFIRMPASTE" },
435 { IDC_DISABLE_PASTE_MBUTTON, "DLG_TAB_COPYPASTE_MOUSEPASTEM" },
436 { IDC_SELECT_LBUTTON, "DLG_TAB_COPYPASTE_SELECTLBUTTON" },
437 { IDC_TRIMNLCHAR, "DLG_TAB_COPYPASTE_TRIM_TRAILING_NL" },
438 { IDC_NORMALIZE_LINEBREAK, "DLG_TAB_COPYPASTE_NORMALIZE_LINEBREAK" },
439 { IDC_CONFIRM_CHANGE_PASTE, "DLG_TAB_COPYPASTE_CONFIRM_CHANGE_PASTE" },
440 { IDC_CONFIRM_STRING_FILE_LABEL, "DLG_TAB_COPYPASTE_STRINGFILE" },
441 { IDC_DELIMITER, "DLG_TAB_COPYPASTE_DELIMITER" },
442 { IDC_PASTEDELAY_LABEL, "DLG_TAB_COPYPASTE_PASTEDELAY" },
443 { IDC_PASTEDELAY_LABEL2, "DLG_TAB_COPYPASTE_PASTEDELAY2" },
444 { IDC_SELECT_ON_ACTIVATE, "DLG_TAB_COPYPASTE_SELECT_ON_ACTIVATE" }
445 };
446 SetDlgTexts(m_hWnd, TextInfos, _countof(TextInfos), ts.UILanguageFile);
447
448 // (1)Enable continued-line copy
449 SetCheck(IDC_LINECOPY, ts.EnableContinuedLineCopy);
450
451 // (2)DisablePasteMouseRButton
452 if (ts.PasteFlag & CPF_DISABLE_RBUTTON) {
453 SetCheck(IDC_DISABLE_PASTE_RBUTTON, BST_CHECKED);
454 EnableDlgItem(IDC_CONFIRM_PASTE_RBUTTON, FALSE);
455 } else {
456 SetCheck(IDC_DISABLE_PASTE_RBUTTON, BST_UNCHECKED);
457 EnableDlgItem(IDC_CONFIRM_PASTE_RBUTTON, TRUE);
458 }
459
460 // (3)ConfirmPasteMouseRButton
461 SetCheck(IDC_CONFIRM_PASTE_RBUTTON, (ts.PasteFlag & CPF_CONFIRM_RBUTTON)?BST_CHECKED:BST_UNCHECKED);
462
463 // (4)DisablePasteMouseMButton
464 SetCheck(IDC_DISABLE_PASTE_MBUTTON, (ts.PasteFlag & CPF_DISABLE_MBUTTON)?BST_CHECKED:BST_UNCHECKED);
465
466 // (5)SelectOnlyByLButton
467 SetCheck(IDC_SELECT_LBUTTON, ts.SelectOnlyByLButton);
468
469 // (6)TrimTrailingNLonPaste
470 SetCheck(IDC_TRIMNLCHAR, (ts.PasteFlag & CPF_TRIM_TRAILING_NL)?BST_CHECKED:BST_UNCHECKED);
471
472 // (7)NormalizeLineBreak
473 SetCheck(IDC_NORMALIZE_LINEBREAK, (ts.PasteFlag & CPF_NORMALIZE_LINEBREAK)?BST_CHECKED:BST_UNCHECKED);
474
475 // (8)ConfirmChangePaste
476 SetCheck(IDC_CONFIRM_CHANGE_PASTE, (ts.PasteFlag & CPF_CONFIRM_CHANGEPASTE)?BST_CHECKED:BST_UNCHECKED);
477
478 // �t�@�C���p�X
479 SetDlgItemTextA(IDC_CONFIRM_STRING_FILE, ts.ConfirmChangePasteStringFile);
480 if (ts.PasteFlag & CPF_CONFIRM_CHANGEPASTE) {
481 EnableDlgItem(IDC_CONFIRM_STRING_FILE, TRUE);
482 EnableDlgItem(IDC_CONFIRM_STRING_FILE_PATH, TRUE);
483 } else {
484 EnableDlgItem(IDC_CONFIRM_STRING_FILE, FALSE);
485 EnableDlgItem(IDC_CONFIRM_STRING_FILE_PATH, FALSE);
486 }
487
488 // (9)delimiter characters
489 SetDlgItemTextA(IDC_DELIM_LIST, ts.DelimList);
490
491 // (10)PasteDelayPerLine
492 char buf[64];
493 _snprintf_s(buf, sizeof(buf), "%d", ts.PasteDelayPerLine);
494 SetDlgItemNum(IDC_PASTEDELAY_EDIT, ts.PasteDelayPerLine);
495
496 // (11) SelectOnActivate
497 SetCheck(IDC_SELECT_ON_ACTIVATE, ts.SelOnActive ? BST_CHECKED : BST_UNCHECKED);
498
499 // �_�C�A���O���t�H�[�J�X��������
500 ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_LINECOPY));
501 }
502
503 BOOL CCopypastePropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam)
504 {
505 char uimsg[MAX_UIMSG];
506
507 switch (wParam) {
508 case IDC_DISABLE_PASTE_RBUTTON | (BN_CLICKED << 16):
509 EnableDlgItem(IDC_CONFIRM_PASTE_RBUTTON,
510 GetCheck(IDC_DISABLE_PASTE_RBUTTON) ? FALSE : TRUE);
511 return TRUE;
512
513 case IDC_CONFIRM_CHANGE_PASTE | (BN_CLICKED << 16):
514 if (GetCheck(IDC_CONFIRM_CHANGE_PASTE)) {
515 EnableDlgItem(IDC_CONFIRM_STRING_FILE, TRUE);
516 EnableDlgItem(IDC_CONFIRM_STRING_FILE_PATH, TRUE);
517 } else {
518 EnableDlgItem(IDC_CONFIRM_STRING_FILE, FALSE);
519 EnableDlgItem(IDC_CONFIRM_STRING_FILE_PATH, FALSE);
520 }
521 return TRUE;
522
523 case IDC_CONFIRM_STRING_FILE_PATH | (BN_CLICKED << 16):
524 {
525 OPENFILENAMEA ofn;
526
527 memset(&ofn, 0, sizeof(ofn));
528 ofn.lStructSize = get_OPENFILENAME_SIZEA();
529 ofn.hwndOwner = GetSafeHwnd();
530 get_lang_msg("FILEDLG_SELECT_CONFIRM_STRING_APP_FILTER", ts.UIMsg, sizeof(ts.UIMsg),
531 "txt(*.txt)\\0*.txt\\0all(*.*)\\0*.*\\0\\0", ts.UILanguageFile);
532 ofn.lpstrFilter = ts.UIMsg;
533 ofn.lpstrFile = ts.ConfirmChangePasteStringFile;
534 ofn.nMaxFile = sizeof(ts.ConfirmChangePasteStringFile);
535 get_lang_msg("FILEDLG_SELECT_CONFIRM_STRING_APP_TITLE", uimsg, sizeof(uimsg),
536 "Choose a file including strings for ConfirmChangePaste", ts.UILanguageFile);
537 ofn.lpstrTitle = uimsg;
538 ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
539 if (GetOpenFileNameA(&ofn) != 0) {
540 SetDlgItemTextA(IDC_CONFIRM_STRING_FILE, ts.ConfirmChangePasteStringFile);
541 }
542 }
543 return TRUE;
544 }
545
546 return TTCPropertyPage::OnCommand(wParam, lParam);
547 }
548
549 void CCopypastePropPageDlg::OnOK()
550 {
551 char buf[64];
552 int val;
553
554 // (1)
555 ts.EnableContinuedLineCopy = GetCheck(IDC_LINECOPY);
556
557 // (2)
558 if (GetCheck(IDC_DISABLE_PASTE_RBUTTON)) {
559 ts.PasteFlag |= CPF_DISABLE_RBUTTON;
560 }
561 else {
562 ts.PasteFlag &= ~CPF_DISABLE_RBUTTON;
563 }
564
565 // (3)
566 if (GetCheck(IDC_CONFIRM_PASTE_RBUTTON)) {
567 ts.PasteFlag |= CPF_CONFIRM_RBUTTON;
568 }
569 else {
570 ts.PasteFlag &= ~CPF_CONFIRM_RBUTTON;
571 }
572
573 // (4)
574 if (GetCheck(IDC_DISABLE_PASTE_MBUTTON)) {
575 ts.PasteFlag |= CPF_DISABLE_MBUTTON;
576 }
577 else {
578 ts.PasteFlag &= ~CPF_DISABLE_MBUTTON;
579 }
580
581 // (5)
582 ts.SelectOnlyByLButton = GetCheck(IDC_SELECT_LBUTTON);
583
584 // (6)
585 if (GetCheck(IDC_TRIMNLCHAR)) {
586 ts.PasteFlag |= CPF_TRIM_TRAILING_NL;
587 }
588 else {
589 ts.PasteFlag &= ~CPF_TRIM_TRAILING_NL;
590 }
591
592 // (7)
593 if (GetCheck(IDC_NORMALIZE_LINEBREAK)) {
594 ts.PasteFlag |= CPF_NORMALIZE_LINEBREAK;
595 }
596 else {
597 ts.PasteFlag &= ~CPF_NORMALIZE_LINEBREAK;
598 }
599
600 // (8)IDC_CONFIRM_CHANGE_PASTE
601 if (GetCheck(IDC_CONFIRM_CHANGE_PASTE)) {
602 ts.PasteFlag |= CPF_CONFIRM_CHANGEPASTE;
603 }
604 else {
605 ts.PasteFlag &= ~CPF_CONFIRM_CHANGEPASTE;
606 }
607 GetDlgItemTextA(IDC_CONFIRM_STRING_FILE, ts.ConfirmChangePasteStringFile, sizeof(ts.ConfirmChangePasteStringFile));
608
609 // (9)
610 GetDlgItemTextA(IDC_DELIM_LIST, ts.DelimList, sizeof(ts.DelimList));
611
612 // (10)
613 GetDlgItemTextA(IDC_PASTEDELAY_EDIT, buf, sizeof(buf));
614 val = atoi(buf);
615 ts.PasteDelayPerLine =
616 (val < 0) ? 0 :
617 (val > 5000) ? 5000 : val;
618
619 // (11) SelectOnActivate
620 ts.SelOnActive = (GetCheck(IDC_SELECT_ON_ACTIVATE) == BST_CHECKED);
621 }
622
623 void CCopypastePropPageDlg::OnHelp()
624 {
625 PostMessage(HVTWin, WM_USER_DLGHELP2, HlpMenuSetupAdditional, 0);
626 }
627
628 // CVisualPropPageDlg �_�C�A���O
629
630 CVisualPropPageDlg::CVisualPropPageDlg(HINSTANCE inst, TTCPropertySheet *sheet)
631 : TTCPropertyPage(inst, CVisualPropPageDlg::IDD, sheet)
632 {
633 wchar_t UIMsg[MAX_UIMSG];
634 get_lang_msgW("DLG_TABSHEET_TITLE_VISUAL", UIMsg, _countof(UIMsg),
635 L"Visual", ts.UILanguageFile);
636 m_psp.pszTitle = _wcsdup(UIMsg);
637 m_psp.dwFlags |= (PSP_USETITLE | PSP_HASHELP);
638 TipWin = new CTipWin(inst);
639 }
640
641 CVisualPropPageDlg::~CVisualPropPageDlg()
642 {
643 free((void *)m_psp.pszTitle);
644 TipWin->Destroy();
645 delete TipWin;
646 TipWin = NULL;
647 }
648
649 // CVisualPropPageDlg ���b�Z�[�W �n���h��
650
651 void CVisualPropPageDlg::OnInitDialog()
652 {
653 char buf[MAXPATHLEN];
654
655 TTCPropertyPage::OnInitDialog();
656
657 static const DlgTextInfo TextInfos[] = {
658 { IDC_ALPHABLEND, "DLG_TAB_VISUAL_ALPHA" },
659 { IDC_ALPHA_BLEND_ACTIVE_LABEL, "DLG_TAB_VISUAL_ALPHA_ACTIVE" },
660 { IDC_ALPHA_BLEND_INACTIVE_LABEL, "DLG_TAB_VISUAL_ALPHA_INACTIVE" },
661 { IDC_ETERM_LOOKFEEL, "DLG_TAB_VISUAL_ETERM" },
662 { IDC_MIXED_THEME_FILE, "DLG_TAB_VISUAL_BGMIXED_THEMEFILE" },
663 { IDC_BGIMG_CHECK, "DLG_TAB_VISUAL_BGIMG" },
664 { IDC_BGIMG_BRIGHTNESS, "DLG_TAB_VISUAL_BGIMG_BRIGHTNESS" },
665 { IDC_MOUSE, "DLG_TAB_VISUAL_MOUSE" },
666 { IDC_FONT_QUALITY_LABEL, "DLG_TAB_VISUAL_FONT_QUALITY" },
667 { IDC_ANSICOLOR, "DLG_TAB_VISUAL_ANSICOLOR" },
668 { IDC_RED, "DLG_TAB_VISUAL_RED" },
669 { IDC_GREEN, "DLG_TAB_VISUAL_GREEN" },
670 { IDC_BLUE, "DLG_TAB_VISUAL_BLUE" },
671 { IDC_ENABLE_ATTR_COLOR_BOLD, "DLG_TAB_VISUAL_BOLD" },
672 { IDC_ENABLE_ATTR_COLOR_BLINK, "DLG_TAB_VISUAL_BLINK" },
673 { IDC_ENABLE_ATTR_COLOR_REVERSE, "DLG_TAB_VISUAL_REVERSE" },
674 { IDC_ENABLE_URL_COLOR, "DLG_TAB_VISUAL_URL" },
675 { IDC_ENABLE_ANSI_COLOR, "DLG_TAB_VISUAL_ANSI" },
676 { IDC_URL_UNDERLINE, "DLG_TAB_VISUAL_URLUL" },
677 { IDC_RESTART, "DLG_TAB_VISUAL_RESTART" },
678 };
679 SetDlgTexts(m_hWnd, TextInfos, _countof(TextInfos), ts.UILanguageFile);
680
681 wchar_t uimsg[MAX_UIMSG];
682 get_lang_msgW("DLG_TAB_VISUAL_FONT_QUALITY_DEFAULT",
683 uimsg, _countof(uimsg), L"Default", ts.UILanguageFile);
684 SendDlgItemMessageW(IDC_FONT_QUALITY, CB_ADDSTRING, 0, (LPARAM)uimsg);
685 get_lang_msgW("DLG_TAB_VISUAL_FONT_QUALITY_NONANTIALIASED",
686 uimsg, _countof(uimsg), L"Non-Antialiased", ts.UILanguageFile);
687 SendDlgItemMessageW(IDC_FONT_QUALITY, CB_ADDSTRING, 0, (LPARAM)uimsg);
688 get_lang_msgW("DLG_TAB_VISUAL_FONT_QUALITY_ANTIALIASED",
689 uimsg, _countof(uimsg), L"Antialiased", ts.UILanguageFile);
690 SendDlgItemMessageW(IDC_FONT_QUALITY, CB_ADDSTRING, 0, (LPARAM)uimsg);
691 get_lang_msgW("DLG_TAB_VISUAL_FONT_QUALITY_CLEARTYPE",
692 uimsg, _countof(uimsg), L"ClearType", ts.UILanguageFile);
693 SendDlgItemMessageW(IDC_FONT_QUALITY, CB_ADDSTRING, 0, (LPARAM)uimsg);
694
695 // (1)AlphaBlend
696
697 SetDlgItemNum(IDC_ALPHA_BLEND_ACTIVE, ts.AlphaBlendActive);
698 SendDlgItemMessage(IDC_ALPHA_BLEND_ACTIVE_TRACKBAR, TBM_SETRANGE, TRUE, MAKELPARAM(0, 255));
699 SendDlgItemMessage(IDC_ALPHA_BLEND_ACTIVE_TRACKBAR, TBM_SETPOS, TRUE, ts.AlphaBlendActive);
700
701 SetDlgItemNum(IDC_ALPHA_BLEND_INACTIVE, ts.AlphaBlendInactive);
702 SendDlgItemMessage(IDC_ALPHA_BLEND_INACTIVE_TRACKBAR, TBM_SETRANGE, TRUE, MAKELPARAM(0, 255));
703 SendDlgItemMessage(IDC_ALPHA_BLEND_INACTIVE_TRACKBAR, TBM_SETPOS, TRUE, ts.AlphaBlendInactive);
704
705 BOOL isLayeredWindowSupported = (pSetLayeredWindowAttributes != NULL);
706 EnableDlgItem(IDC_ALPHA_BLEND_ACTIVE, isLayeredWindowSupported);
707 EnableDlgItem(IDC_ALPHA_BLEND_ACTIVE_TRACKBAR, isLayeredWindowSupported);
708 EnableDlgItem(IDC_ALPHA_BLEND_INACTIVE, isLayeredWindowSupported);
709 EnableDlgItem(IDC_ALPHA_BLEND_INACTIVE_TRACKBAR, isLayeredWindowSupported);
710
711 // (2)[BG] BGEnable
712 SetCheck(IDC_ETERM_LOOKFEEL, ts.EtermLookfeel.BGEnable);
713
714 // Eterm look-feel���w�i�����w���B
715 SetDlgItemTextA(IDC_BGIMG_EDIT, ts.BGImageFilePath);
716
717 _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%d", ts.BGImgBrightness);
718 SetDlgItemNum(IDC_EDIT_BGIMG_BRIGHTNESS, ts.BGImgBrightness);
719
720 // BGEnable���W�����A�`�F�b�N�{�b�N�X���t�����B
721 if (strcmp(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE) == 0) {
722 SetCheck(IDC_BGIMG_CHECK, BST_CHECKED);
723 } else {
724 SetCheck(IDC_BGIMG_CHECK, BST_UNCHECKED);
725 }
726 // �e�[�}�t�@�C�����������������������������������B
727 if (ts.EtermLookfeel.BGIgnoreThemeFile) {
728 SetCheck(IDC_MIXED_THEME_FILE, BST_UNCHECKED);
729 } else {
730 SetCheck(IDC_MIXED_THEME_FILE, BST_CHECKED);
731 }
732
733 if (ts.EtermLookfeel.BGEnable) {
734 EnableDlgItem(IDC_BGIMG_CHECK, TRUE);
735 EnableDlgItem(IDC_MIXED_THEME_FILE, TRUE);
736
737 if (strcmp(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE) == 0) {
738 EnableDlgItem(IDC_BGIMG_EDIT, TRUE);
739 EnableDlgItem(IDC_BGIMG_BUTTON, TRUE);
740
741 EnableDlgItem(IDC_BGIMG_BRIGHTNESS, TRUE);
742 EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, TRUE);
743 } else {
744 EnableDlgItem(IDC_BGIMG_EDIT, FALSE);
745 EnableDlgItem(IDC_BGIMG_BUTTON, FALSE);
746
747 EnableDlgItem(IDC_BGIMG_BRIGHTNESS, FALSE);
748 EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, FALSE);
749 }
750
751 } else {
752 EnableDlgItem(IDC_BGIMG_CHECK, FALSE);
753 EnableDlgItem(IDC_BGIMG_EDIT, FALSE);
754 EnableDlgItem(IDC_BGIMG_BUTTON, FALSE);
755
756 EnableDlgItem(IDC_BGIMG_BRIGHTNESS, FALSE);
757 EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, FALSE);
758
759 EnableDlgItem(IDC_MIXED_THEME_FILE, FALSE);
760 }
761
762 // (3)Mouse cursor type
763 int sel = 0;
764 for (int i = 0 ; MouseCursor[i].name ; i++) {
765 const char *name = MouseCursor[i].name;
766 SendDlgItemMessageA(IDC_MOUSE_CURSOR, CB_ADDSTRING, i, (LPARAM)name);
767 if (strcmp(name, ts.MouseCursorName) == 0) {
768 sel = i;
769 }
770 }
771 SetCurSel(IDC_MOUSE_CURSOR, sel);
772
773 // (4)Font quality
774 switch (ts.FontQuality) {
775 case DEFAULT_QUALITY:
776 SetCurSel(IDC_FONT_QUALITY, 0);
777 break;
778 case NONANTIALIASED_QUALITY:
779 SetCurSel(IDC_FONT_QUALITY, 1);
780 break;
781 case ANTIALIASED_QUALITY:
782 SetCurSel(IDC_FONT_QUALITY, 2);
783 break;
784 default: // CLEARTYPE_QUALITY
785 SetCurSel(IDC_FONT_QUALITY, 3);
786 break;
787 }
788
789 // (5)ANSI color
790 for (int i = 0 ; i < 16 ; i++) {
791 _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%d", i);
792 SendDlgItemMessageA(IDC_ANSI_COLOR, LB_INSERTSTRING, i, (LPARAM)buf);
793 }
794 SetupRGBbox(0);
795 SendDlgItemMessage(IDC_ANSI_COLOR, LB_SETCURSEL, 0, 0);
796 ::InvalidateRect(GetDlgItem(IDC_SAMPLE_COLOR), NULL, TRUE);
797
798 // (6)Bold Attr Color
799 SetCheck(IDC_ENABLE_ATTR_COLOR_BOLD, (ts.ColorFlag&CF_BOLDCOLOR) != 0);
800
801 // (7)Blink Attr Color
802 SetCheck(IDC_ENABLE_ATTR_COLOR_BLINK, (ts.ColorFlag&CF_BLINKCOLOR) != 0);
803
804 // (8)Reverse Attr Color
805 SetCheck(IDC_ENABLE_ATTR_COLOR_REVERSE, (ts.ColorFlag&CF_REVERSECOLOR) != 0);
806
807 // (9)URL Color
808 SetCheck(IDC_ENABLE_URL_COLOR, (ts.ColorFlag&CF_URLCOLOR) != 0);
809
810 // (10)Color
811 SetCheck(IDC_ENABLE_ANSI_COLOR, (ts.ColorFlag&CF_ANSICOLOR) != 0);
812
813 // (11)URL Underline
814 SetCheck(IDC_URL_UNDERLINE, (ts.FontFlag&FF_URLUNDERLINE) != 0);
815
816 // �_�C�A���O���t�H�[�J�X��������
817 ::SetFocus(GetDlgItem(IDC_ALPHA_BLEND_ACTIVE));
818
819 // �c�[���`�b�v����
820 TipWin->Create(m_hWnd);
821 }
822
823 void CVisualPropPageDlg::OnHScroll(UINT nSBCode, UINT nPos, HWND pScrollBar)
824 {
825 int pos;
826 if ( pScrollBar == GetDlgItem(IDC_ALPHA_BLEND_ACTIVE_TRACKBAR) ) {
827 switch (nSBCode) {
828 case SB_TOP:
829 case SB_BOTTOM:
830 case SB_LINEDOWN:
831 case SB_LINEUP:
832 case SB_PAGEDOWN:
833 case SB_PAGEUP:
834 case SB_THUMBPOSITION:
835 case SB_THUMBTRACK:
836 pos = SendDlgItemMessage(IDC_ALPHA_BLEND_ACTIVE_TRACKBAR, TBM_GETPOS, NULL, NULL);
837 SetDlgItemNum(IDC_ALPHA_BLEND_ACTIVE, pos);
838 break;
839 case SB_ENDSCROLL:
840 default:
841 return;
842 }
843 }
844 else if ( pScrollBar == GetDlgItem(IDC_ALPHA_BLEND_INACTIVE_TRACKBAR) ) {
845 switch (nSBCode) {
846 case SB_TOP:
847 case SB_BOTTOM:
848 case SB_LINEDOWN:
849 case SB_LINEUP:
850 case SB_PAGEDOWN:
851 case SB_PAGEUP:
852 case SB_THUMBPOSITION:
853 case SB_THUMBTRACK:
854 pos = SendDlgItemMessage(IDC_ALPHA_BLEND_INACTIVE_TRACKBAR, TBM_GETPOS, NULL, NULL);
855 SetDlgItemNum(IDC_ALPHA_BLEND_INACTIVE, pos);
856 break;
857 case SB_ENDSCROLL:
858 default:
859 return;
860 }
861 }
862 }
863
864 BOOL CVisualPropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam)
865 {
866 int sel;
867
868 switch (wParam) {
869 case IDC_ETERM_LOOKFEEL:
870 // �`�F�b�N�������� Enable/Disable ���g�O�������B
871 if (GetCheck(IDC_ETERM_LOOKFEEL)) {
872 EnableDlgItem(IDC_MIXED_THEME_FILE, TRUE);
873 EnableDlgItem(IDC_BGIMG_CHECK, TRUE);
874 if (GetCheck(IDC_BGIMG_CHECK)) {
875 EnableDlgItem(IDC_BGIMG_EDIT, TRUE);
876 EnableDlgItem(IDC_BGIMG_BUTTON, TRUE);
877
878 EnableDlgItem(IDC_BGIMG_BRIGHTNESS, TRUE);
879 EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, TRUE);
880 } else {
881 EnableDlgItem(IDC_BGIMG_EDIT, FALSE);
882 EnableDlgItem(IDC_BGIMG_BUTTON, FALSE);
883
884 EnableDlgItem(IDC_BGIMG_BRIGHTNESS, FALSE);
885 EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, FALSE);
886 }
887 } else {
888 EnableDlgItem(IDC_BGIMG_CHECK, FALSE);
889 EnableDlgItem(IDC_BGIMG_EDIT, FALSE);
890 EnableDlgItem(IDC_BGIMG_BUTTON, FALSE);
891
892 EnableDlgItem(IDC_BGIMG_BRIGHTNESS, FALSE);
893 EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, FALSE);
894
895 // ���������������ABGThemeFile �����������B
896 strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE_DEFAULT, sizeof(ts.EtermLookfeel.BGThemeFile));
897 // �w�i�����������������B
898 SetDlgItemTextT(IDC_BGIMG_EDIT, _T(""));
899 SetDlgItemInt(IDC_EDIT_BGIMG_BRIGHTNESS, BG_THEME_IMAGE_BRIGHTNESS_DEFAULT);
900
901 EnableDlgItem(IDC_MIXED_THEME_FILE, FALSE);
902 }
903 return TRUE;
904
905 case IDC_MIXED_THEME_FILE:
906 if (GetCheck(IDC_MIXED_THEME_FILE)) {
907 // �w�i�������`�F�b�N���O���B
908 SetCheck(IDC_BGIMG_CHECK, BST_UNCHECKED);
909 }
910 return TRUE;
911
912 case IDC_BGIMG_CHECK:
913 if (GetCheck(IDC_BGIMG_CHECK)) {
914 EnableDlgItem(IDC_BGIMG_EDIT, TRUE);
915 EnableDlgItem(IDC_BGIMG_BUTTON, TRUE);
916
917 EnableDlgItem(IDC_BGIMG_BRIGHTNESS, TRUE);
918 EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, TRUE);
919
920 strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE, sizeof(ts.EtermLookfeel.BGThemeFile));
921 // �������`�F�b�N���O���B
922 SetCheck(IDC_MIXED_THEME_FILE, BST_UNCHECKED);
923 } else {
924 EnableDlgItem(IDC_BGIMG_EDIT, FALSE);
925 EnableDlgItem(IDC_BGIMG_BUTTON, FALSE);
926
927 EnableDlgItem(IDC_BGIMG_BRIGHTNESS, FALSE);
928 EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, FALSE);
929
930 // ���������������ABGThemeFile �����������B
931 strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE_DEFAULT, sizeof(ts.EtermLookfeel.BGThemeFile));
932 // �w�i�����������������B
933 SetDlgItemTextT(IDC_BGIMG_EDIT, _T(""));
934 SetDlgItemInt(IDC_EDIT_BGIMG_BRIGHTNESS, BG_THEME_IMAGE_BRIGHTNESS_DEFAULT);
935 }
936 return TRUE;
937
938 case IDC_BGIMG_BUTTON | (BN_CLICKED << 16):
939 // �w�i�������_�C�A���O���w�������B
940 {
941 OPENFILENAMEA ofn;
942 char szFile[MAX_PATH];
943
944 memset(&ofn, 0, sizeof(ofn));
945 memset(szFile, 0, sizeof(szFile));
946 ofn.lStructSize = get_OPENFILENAME_SIZEA();
947 ofn.hwndOwner = GetSafeHwnd();
948 ofn.lpstrFilter = "Image Files(*.jpg;*.jpeg;*.bmp)\0*.jpg;*.jpeg;*.bmp\0All Files(*.*)\0*.*\0";
949 ofn.lpstrFile = szFile;
950 ofn.nMaxFile = _countof(szFile);
951 ofn.lpstrTitle = "select image file";
952 ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
953 if (GetOpenFileNameA(&ofn) != 0) {
954 SetDlgItemTextA(IDC_BGIMG_EDIT, szFile);
955 }
956 }
957 return TRUE;
958
959 case IDC_EDIT_BGIMG_BRIGHTNESS | (EN_CHANGE << 16) :
960 {
961 int b;
962
963 b = GetDlgItemInt(IDC_EDIT_BGIMG_BRIGHTNESS);
964 if (b < 0) {
965 b = 0;
966 SetDlgItemNum(IDC_EDIT_BGIMG_BRIGHTNESS, b);
967 }
968 else if (b > 255) {
969 b = 255;
970 SetDlgItemNum(IDC_EDIT_BGIMG_BRIGHTNESS, b);
971 }
972 }
973 return TRUE;
974
975 case IDC_ANSI_COLOR | (LBN_SELCHANGE << 16):
976 sel = SendDlgItemMessage(IDC_ANSI_COLOR, LB_GETCURSEL, 0, 0);
977 if (sel != -1) {
978 SetupRGBbox(sel);
979 ::InvalidateRect(GetDlgItem(IDC_SAMPLE_COLOR), NULL, TRUE);
980 }
981 return TRUE;
982
983 case IDC_COLOR_RED | (EN_CHANGE << 16) :
984 case IDC_COLOR_GREEN | (EN_CHANGE << 16) :
985 case IDC_COLOR_BLUE | (EN_CHANGE << 16) :
986 {
987 int r, g, b;
988
989 sel = GetCurSel(IDC_ANSI_COLOR);
990 if (sel < 0 && sel > sizeof(ts.ANSIColor)-1) {
991 return TRUE;
992 }
993
994 r = GetDlgItemInt(IDC_COLOR_RED);
995 if (r < 0) {
996 r = 0;
997 SetDlgItemNum(IDC_COLOR_RED, r);
998 }
999 else if (r > 255) {
1000 r = 255;
1001 SetDlgItemNum(IDC_COLOR_RED, r);
1002 }
1003
1004 g = GetDlgItemInt(IDC_COLOR_GREEN);
1005 if (g < 0) {
1006 g = 0;
1007 SetDlgItemNum(IDC_COLOR_GREEN, g);
1008 }
1009 else if (g > 255) {
1010 g = 255;
1011 SetDlgItemNum(IDC_COLOR_GREEN, g);
1012 }
1013
1014 b = GetDlgItemInt(IDC_COLOR_BLUE);
1015 if (b < 0) {
1016 b = 0;
1017 SetDlgItemNum(IDC_COLOR_BLUE, b);
1018 }
1019 else if (b > 255) {
1020 b = 255;
1021 SetDlgItemNum(IDC_COLOR_BLUE, b);
1022 }
1023
1024 // OK ����������������������������������
1025 ts.ANSIColor[sel] = RGB(r, g, b);
1026
1027 ::InvalidateRect(GetDlgItem(IDC_SAMPLE_COLOR), NULL, TRUE);
1028 }
1029 return TRUE;
1030 case IDC_ALPHA_BLEND_ACTIVE | (EN_CHANGE << 16):
1031 {
1032 int pos;
1033 pos = GetDlgItemInt(IDC_ALPHA_BLEND_ACTIVE);
1034 if(pos < 0) {
1035 pos = 0;
1036 SetDlgItemNum(IDC_ALPHA_BLEND_ACTIVE, pos);
1037 }
1038 else if(pos > 255) {
1039 pos = 255;
1040 SetDlgItemNum(IDC_ALPHA_BLEND_ACTIVE, pos);
1041 }
1042 SendDlgItemMessage(IDC_ALPHA_BLEND_ACTIVE_TRACKBAR, TBM_SETPOS, TRUE, pos);
1043
1044 TCHAR tipbuf[32];
1045 TCHAR uimsg[MAX_UIMSG];
1046 RECT rc;
1047 get_lang_msg("TOOLTIP_TITLEBAR_OPACITY", uimsg, sizeof(uimsg), "Opacity %.1f %%", ts.UILanguageFile);
1048 _stprintf_s(tipbuf, _countof(tipbuf), uimsg, (pos / 255.0) * 100);
1049
1050 ::GetWindowRect(GetDlgItem(IDC_ALPHA_BLEND_ACTIVE), &rc);
1051 TipWin->SetText(tipbuf);
1052 TipWin->SetPos(rc.right, rc.bottom);
1053 TipWin->SetHideTimer(1000);
1054 if (! TipWin->IsVisible()) {
1055 TipWin->SetVisible(TRUE);
1056 }
1057 return TRUE;
1058 }
1059 case IDC_ALPHA_BLEND_INACTIVE | (EN_CHANGE << 16):
1060 {
1061 int pos;
1062 pos = GetDlgItemInt(IDC_ALPHA_BLEND_INACTIVE);
1063 if(pos < 0) {
1064 pos = 0;
1065 SetDlgItemNum(IDC_ALPHA_BLEND_INACTIVE, pos);
1066 }
1067 else if(pos > 255) {
1068 pos = 255;
1069 SetDlgItemNum(IDC_ALPHA_BLEND_INACTIVE, pos);
1070 }
1071 SendDlgItemMessage(IDC_ALPHA_BLEND_INACTIVE_TRACKBAR, TBM_SETPOS, TRUE, pos);
1072
1073 TCHAR tipbuf[32], uimsg[MAX_UIMSG];
1074 RECT rc;
1075 get_lang_msg("TOOLTIP_TITLEBAR_OPACITY", uimsg, sizeof(uimsg), "Opacity %.1f %%", ts.UILanguageFile);
1076 _stprintf_s(tipbuf, _countof(tipbuf), uimsg, (pos / 255.0) * 100);
1077
1078 ::GetWindowRect(GetDlgItem(IDC_ALPHA_BLEND_INACTIVE), &rc);
1079 TipWin->SetText(tipbuf);
1080 TipWin->SetPos(rc.right, rc.bottom);
1081 TipWin->SetHideTimer(1000);
1082 if (! TipWin->IsVisible()) {
1083 TipWin->SetVisible(TRUE);
1084 }
1085 return TRUE;
1086 }
1087 }
1088
1089 return TTCPropertyPage::OnCommand(wParam, lParam);
1090 }
1091
1092 HBRUSH CVisualPropPageDlg::OnCtlColor(HDC hDC, HWND hWnd)
1093 {
1094 if ( hWnd == GetDlgItem(IDC_SAMPLE_COLOR) ) {
1095 BYTE r, g, b;
1096 char buf[8];
1097
1098 GetDlgItemTextA(IDC_COLOR_RED, buf, sizeof(buf));
1099 r = atoi(buf);
1100
1101 GetDlgItemTextA(IDC_COLOR_GREEN, buf, sizeof(buf));
1102 g = atoi(buf);
1103
1104 GetDlgItemTextA(IDC_COLOR_BLUE, buf, sizeof(buf));
1105 b = atoi(buf);
1106
1107 SetBkMode(hDC, TRANSPARENT);
1108 SetTextColor(hDC, RGB(r, g, b) );
1109
1110 return (HBRUSH)GetStockObject(NULL_BRUSH);
1111 }
1112 return TTCPropertyPage::OnCtlColor(hDC, hWnd);
1113 }
1114
1115 void CVisualPropPageDlg::OnOK()
1116 {
1117 int sel;
1118 char buf[MAXPATHLEN];
1119 COLORREF TmpColor;
1120 int flag_changed = 0;
1121
1122 // (1)
1123 GetDlgItemTextA(IDC_ALPHA_BLEND_ACTIVE, buf, sizeof(buf));
1124 if (isdigit(buf[0])) {
1125 int i = atoi(buf);
1126 ts.AlphaBlendActive =
1127 (i < 0) ? 0 :
1128 (i > 255) ? 255 : i;
1129 }
1130 GetDlgItemTextA(IDC_ALPHA_BLEND_INACTIVE, buf, sizeof(buf));
1131 if (isdigit(buf[0])) {
1132 int i = atoi(buf);
1133 ts.AlphaBlendInactive =
1134 (i < 0) ? 0 :
1135 (i > 255) ? 255 : i;
1136 }
1137
1138 // (2)
1139 // �O���[�o������ BGEnable �������������������A�v���O������������������
1140 // ���������R�s�[���C�����������������B(2005.4.24 yutaka)
1141 if (ts.EtermLookfeel.BGEnable != GetCheck(IDC_ETERM_LOOKFEEL)) {
1142 flag_changed = 1;
1143 ts.EtermLookfeel.BGEnable = GetCheck(IDC_ETERM_LOOKFEEL);
1144 }
1145 if (ts.EtermLookfeel.BGEnable) {
1146 GetDlgItemTextA(IDC_BGIMG_EDIT, ts.BGImageFilePath, sizeof(ts.BGImageFilePath));
1147 } else {
1148 strncpy_s(ts.BGImageFilePath, sizeof(ts.BGImageFilePath), "%SystemRoot%\\Web\\Wallpaper\\*.bmp", _TRUNCATE);
1149 }
1150
1151 GetDlgItemTextA(IDC_EDIT_BGIMG_BRIGHTNESS, buf, sizeof(buf));
1152 if (isdigit(buf[0])) {
1153 int i = atoi(buf);
1154 ts.BGImgBrightness =
1155 (i < 0) ? 0 :
1156 (i > 255) ? 255 : i;
1157 }
1158
1159 // �e�[�}�t�@�C�������I���������B
1160 if (ts.EtermLookfeel.BGEnable) {
1161 if (GetCheck(IDC_BGIMG_CHECK)) {
1162 strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE, sizeof(ts.EtermLookfeel.BGThemeFile));
1163 } else {
1164 strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE_DEFAULT, sizeof(ts.EtermLookfeel.BGThemeFile));
1165 }
1166 if (GetCheck(IDC_MIXED_THEME_FILE)) {
1167 // �����������������A�f�t�H���g�������������B
1168 ts.EtermLookfeel.BGIgnoreThemeFile = FALSE;
1169 } else {
1170 // �e�[�}�t�@�C�������������B
1171 ts.EtermLookfeel.BGIgnoreThemeFile = TRUE;
1172 }
1173
1174 } else {
1175 // BG���������������f�t�H���g�������������B
1176 strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE_DEFAULT, sizeof(ts.EtermLookfeel.BGThemeFile));
1177 }
1178
1179
1180 // (3)
1181 sel = GetCurSel(IDC_MOUSE_CURSOR);
1182 if (sel >= 0 && sel < MOUSE_CURSOR_MAX) {
1183 strncpy_s(ts.MouseCursorName, sizeof(ts.MouseCursorName), MouseCursor[sel].name, _TRUNCATE);
1184 }
1185
1186 // (4)Font quality
1187 switch (GetCurSel(IDC_FONT_QUALITY)) {
1188 case 0:
1189 ts.FontQuality = DEFAULT_QUALITY;
1190 break;
1191 case 1:
1192 ts.FontQuality = NONANTIALIASED_QUALITY;
1193 break;
1194 case 2:
1195 ts.FontQuality = ANTIALIASED_QUALITY;
1196 break;
1197 case 3:
1198 ts.FontQuality = CLEARTYPE_QUALITY;
1199 break;
1200 default: // Invalid value.
1201 break;
1202 }
1203
1204 // (6) Attr Bold Color
1205 if (((ts.ColorFlag & CF_BOLDCOLOR) != 0) != GetCheck(IDC_ENABLE_ATTR_COLOR_BOLD)) {
1206 ts.ColorFlag ^= CF_BOLDCOLOR;
1207 }
1208
1209 // (7) Attr Blink Color
1210 if (((ts.ColorFlag & CF_BLINKCOLOR) != 0) != GetCheck(IDC_ENABLE_ATTR_COLOR_BLINK)) {
1211 ts.ColorFlag ^= CF_BLINKCOLOR;
1212 }
1213
1214 // (8) Attr Reverse Color
1215 if (ts.ColorFlag & CF_REVERSEVIDEO) { // Reverse Video���[�h(DECSCNM)����������������
1216 if (ts.ColorFlag & CF_REVERSECOLOR) {
1217 if (!GetCheck(IDC_ENABLE_ATTR_COLOR_REVERSE)) {
1218 TmpColor = ts.VTColor[0];
1219 ts.VTColor[0] = ts.VTReverseColor[1];
1220 ts.VTReverseColor[1] = ts.VTColor[1];
1221 ts.VTColor[1] = ts.VTReverseColor[0];
1222 ts.VTReverseColor[0] = TmpColor;
1223 ts.ColorFlag ^= CF_REVERSECOLOR;
1224 }
1225 }
1226 else if (GetCheck(IDC_ENABLE_ATTR_COLOR_REVERSE)) {
1227 TmpColor = ts.VTColor[0];
1228 ts.VTColor[0] = ts.VTReverseColor[0];
1229 ts.VTReverseColor[0] = ts.VTColor[1];
1230 ts.VTColor[1] = ts.VTReverseColor[1];
1231 ts.VTReverseColor[1] = TmpColor;
1232 ts.ColorFlag ^= CF_REVERSECOLOR;
1233 }
1234 }
1235 else if (((ts.ColorFlag & CF_REVERSECOLOR) != 0) != GetCheck(IDC_ENABLE_ATTR_COLOR_REVERSE)) {
1236 ts.ColorFlag ^= CF_REVERSECOLOR;
1237 }
1238
1239 // (9) URL Color
1240 if (((ts.ColorFlag & CF_URLCOLOR) != 0) != GetCheck(IDC_ENABLE_URL_COLOR)) {
1241 ts.ColorFlag ^= CF_URLCOLOR;
1242 }
1243
1244 // (10) Color
1245 if (((ts.ColorFlag & CF_ANSICOLOR) != 0) != GetCheck(IDC_ENABLE_ANSI_COLOR)) {
1246 ts.ColorFlag ^= CF_ANSICOLOR;
1247 }
1248
1249 // (11) URL Underline
1250 if (((ts.FontFlag & FF_URLUNDERLINE) != 0) != GetCheck(IDC_URL_UNDERLINE)) {
1251 ts.FontFlag ^= FF_URLUNDERLINE;
1252 }
1253
1254 if (flag_changed) {
1255 // re-launch
1256 // RestartTeraTerm(GetSafeHwnd(), &ts);
1257 }
1258 }
1259
1260 void CVisualPropPageDlg::OnHelp()
1261 {
1262 PostMessage(HVTWin, WM_USER_DLGHELP2, HlpMenuSetupAdditional, 0);
1263 }
1264
1265 // CLogPropPageDlg �_�C�A���O
1266
1267 CLogPropPageDlg::CLogPropPageDlg(HINSTANCE inst, TTCPropertySheet *sheet)
1268 : TTCPropertyPage(inst, CLogPropPageDlg::IDD, sheet)
1269 {
1270 wchar_t UIMsg[MAX_UIMSG];
1271 get_lang_msgW("DLG_TABSHEET_TITLE_Log", UIMsg, _countof(UIMsg),
1272 L"Log", ts.UILanguageFile);
1273 m_psp.pszTitle = _wcsdup(UIMsg);
1274 m_psp.dwFlags |= (PSP_USETITLE | PSP_HASHELP);
1275 }
1276
1277 CLogPropPageDlg::~CLogPropPageDlg()
1278 {
1279 free((void *)m_psp.pszTitle);
1280 }
1281
1282 // CLogPropPageDlg ���b�Z�[�W �n���h��
1283
1284 #define LOG_ROTATE_SIZETYPE_NUM 3
1285 static const char *LogRotateSizeType[] = {
1286 "Byte", "KB", "MB"
1287 };
1288
1289 static const char *GetLogRotateSizeType(int val)
1290 {
1291 if (val >= LOG_ROTATE_SIZETYPE_NUM)
1292 val = 0;
1293
1294 return LogRotateSizeType[val];
1295 }
1296
1297 void CLogPropPageDlg::OnInitDialog()
1298 {
1299 TTCPropertyPage::OnInitDialog();
1300
1301 static const DlgTextInfo TextInfos[] = {
1302 { IDC_VIEWLOG_LABEL, "DLG_TAB_LOG_EDITOR" },
1303 { IDC_DEFAULTNAME_LABEL, "DLG_TAB_LOG_FILENAME" },
1304 { IDC_DEFAULTPATH_LABEL, "DLG_TAB_LOG_FILEPATH" },
1305 { IDC_AUTOSTART, "DLG_TAB_LOG_AUTOSTART" },
1306 // Log rotate
1307 { IDC_LOG_ROTATE, "DLG_TAB_LOG_ROTATE" },
1308 { IDC_ROTATE_SIZE_TEXT, "DLG_TAB_LOG_ROTATE_SIZE_TEXT" },
1309 { IDC_ROTATE_STEP_TEXT, "DLG_TAB_LOG_ROTATESTEP" },
1310 // Log options
1311 // FIXME: ���b�Z�[�W�J�^���O�����������O�I�v�V���������������p�������A�A�N�Z�����[�^�L�[���d�������������������B
1312 { IDC_LOG_OPTION_GROUP, "DLG_FOPT" },
1313 { IDC_OPT_BINARY, "DLG_FOPT_BINARY" },
1314 { IDC_OPT_APPEND, "DLG_FOPT_APPEND" },
1315 { IDC_OPT_PLAINTEXT, "DLG_FOPT_PLAIN" },
1316 { IDC_OPT_HIDEDLG, "DLG_FOPT_HIDEDIALOG" },
1317 { IDC_OPT_INCBUF, "DLG_FOPT_ALLBUFFINFIRST" },
1318 { IDC_OPT_TIMESTAMP, "DLG_FOPT_TIMESTAMP" },
1319 };
1320 SetDlgTexts(m_hWnd, TextInfos, _countof(TextInfos), ts.UILanguageFile);
1321
1322 TCHAR UIMsg[MAX_UIMSG];
1323 get_lang_msgT("DLG_FOPT_TIMESTAMP_LOCAL", UIMsg, _countof(UIMsg), _T("Local Time"), ts.UILanguageFile);
1324 SendDlgItemMessage(IDC_OPT_TIMESTAMP_TYPE, CB_ADDSTRING, 0, (LPARAM)UIMsg);
1325 get_lang_msgT("DLG_FOPT_TIMESTAMP_UTC", UIMsg, _countof(UIMsg), _T("UTC"), ts.UILanguageFile);
1326 SendDlgItemMessage(IDC_OPT_TIMESTAMP_TYPE, CB_ADDSTRING, 0, (LPARAM)UIMsg);
1327 get_lang_msgT("DLG_FOPT_TIMESTAMP_ELAPSED_LOGGING", UIMsg, _countof(UIMsg), _T("Elapsed Time (Logging)"), ts.UILanguageFile);
1328 SendDlgItemMessage(IDC_OPT_TIMESTAMP_TYPE, CB_ADDSTRING, 0, (LPARAM)UIMsg);
1329 get_lang_msgT("DLG_FOPT_TIMESTAMP_ELAPSED_CONNECTION", UIMsg, _countof(UIMsg), _T("Elapsed Time (Connection)"), ts.UILanguageFile);
1330 SendDlgItemMessage(IDC_OPT_TIMESTAMP_TYPE, CB_ADDSTRING, 0, (LPARAM)UIMsg);
1331
1332
1333 // Viewlog Editor path (2005.1.29 yutaka)
1334 SetDlgItemTextA(IDC_VIEWLOG_EDITOR, ts.ViewlogEditor);
1335
1336 // Log Default File Name (2006.8.28 maya)
1337 SetDlgItemTextA(IDC_DEFAULTNAME_EDITOR, ts.LogDefaultName);
1338
1339 // Log Default File Path (2007.5.30 maya)
1340 SetDlgItemTextA(IDC_DEFAULTPATH_EDITOR, ts.LogDefaultPath);
1341
1342 /* Auto start logging (2007.5.31 maya) */
1343 SetCheck(IDC_AUTOSTART, ts.LogAutoStart);
1344
1345 // Log rotate
1346 SetCheck(IDC_LOG_ROTATE, ts.LogRotate != ROTATE_NONE);
1347
1348 for (int i = 0 ; i < LOG_ROTATE_SIZETYPE_NUM ; i++) {
1349 SendDlgItemMessageA(IDC_ROTATE_SIZE_TYPE, CB_ADDSTRING, 0, (LPARAM)LogRotateSizeType[i]);
1350 }
1351 int TmpLogRotateSize = ts.LogRotateSize;
1352 for (int i = 0 ; i < ts.LogRotateSizeType ; i++)
1353 TmpLogRotateSize /= 1024;
1354 SetDlgItemInt(IDC_ROTATE_SIZE, TmpLogRotateSize, FALSE);
1355 SendDlgItemMessageA(IDC_ROTATE_SIZE_TYPE, CB_SELECTSTRING, -1, (LPARAM)GetLogRotateSizeType(ts.LogRotateSizeType));
1356 SetDlgItemInt(IDC_ROTATE_STEP, ts.LogRotateStep, FALSE);
1357 if (ts.LogRotate == ROTATE_NONE) {
1358 EnableDlgItem(IDC_ROTATE_SIZE_TEXT, FALSE);
1359 EnableDlgItem(IDC_ROTATE_SIZE, FALSE);
1360 EnableDlgItem(IDC_ROTATE_SIZE_TYPE, FALSE);
1361 EnableDlgItem(IDC_ROTATE_STEP_TEXT, FALSE);
1362 EnableDlgItem(IDC_ROTATE_STEP, FALSE);
1363 } else {
1364 EnableDlgItem(IDC_ROTATE_SIZE_TEXT, TRUE);
1365 EnableDlgItem(IDC_ROTATE_SIZE, TRUE);
1366 EnableDlgItem(IDC_ROTATE_SIZE_TYPE, TRUE);
1367 EnableDlgItem(IDC_ROTATE_STEP_TEXT, TRUE);
1368 EnableDlgItem(IDC_ROTATE_STEP, TRUE);
1369 }
1370
1371 // Log options
1372 SetCheck(IDC_OPT_BINARY, ts.LogBinary != 0);
1373 if (ts.LogBinary) {
1374 EnableDlgItem(IDC_OPT_PLAINTEXT, FALSE);
1375 EnableDlgItem(IDC_OPT_TIMESTAMP, FALSE);
1376 } else {
1377 EnableDlgItem(IDC_OPT_PLAINTEXT, TRUE);
1378 EnableDlgItem(IDC_OPT_TIMESTAMP, TRUE);
1379 }
1380 SetCheck(IDC_OPT_APPEND, ts.Append != 0);
1381 SetCheck(IDC_OPT_PLAINTEXT, ts.LogTypePlainText != 0);
1382 SetCheck(IDC_OPT_HIDEDLG, ts.LogHideDialog != 0);
1383 SetCheck(IDC_OPT_INCBUF, ts.LogAllBuffIncludedInFirst != 0);
1384 SetCheck(IDC_OPT_TIMESTAMP, ts.LogTimestamp != 0);
1385
1386 SetCurSel(IDC_OPT_TIMESTAMP_TYPE, ts.LogTimestampType);
1387 if (ts.LogBinary || !ts.LogTimestamp) {
1388 EnableDlgItem(IDC_OPT_TIMESTAMP_TYPE, FALSE);
1389 }
1390 else {
1391 EnableDlgItem(IDC_OPT_TIMESTAMP_TYPE, TRUE);
1392 }
1393 /*
1394 switch (ts.LogTimestampType) {
1395 case CSF_CBRW:
1396 cmb->SetCurSel(3);
1397 break;
1398 case CSF_CBREAD:
1399 cmb->SetCurSel(2);
1400 break;
1401 case CSF_CBWRITE:
1402 cmb->SetCurSel(1);
1403 break;
1404 default: // off
1405 cmb->SetCurSel(0);
1406 break;
1407 }
1408 */
1409
1410 // �_�C�A���O���t�H�[�J�X��������
1411 ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_VIEWLOG_EDITOR));
1412 }
1413
1414 BOOL CLogPropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam)
1415 {
1416 char uimsg[MAX_UIMSG];
1417
1418 switch (wParam) {
1419 case IDC_VIEWLOG_PATH | (BN_CLICKED << 16):
1420 {
1421 OPENFILENAMEA ofn;
1422
1423 ZeroMemory(&ofn, sizeof(ofn));
1424 ofn.lStructSize = get_OPENFILENAME_SIZEA();
1425 ofn.hwndOwner = GetSafeHwnd();
1426 get_lang_msg("FILEDLG_SELECT_LOGVIEW_APP_FILTER", ts.UIMsg, sizeof(ts.UIMsg),
1427 "exe(*.exe)\\0*.exe\\0all(*.*)\\0*.*\\0\\0", ts.UILanguageFile);
1428 ofn.lpstrFilter = ts.UIMsg;
1429 ofn.lpstrFile = ts.ViewlogEditor;
1430 ofn.nMaxFile = sizeof(ts.ViewlogEditor);
1431 get_lang_msg("FILEDLG_SELECT_LOGVIEW_APP_TITLE", uimsg, sizeof(uimsg),
1432 "Choose a executing file with launching logging file", ts.UILanguageFile);
1433 ofn.lpstrTitle = uimsg;
1434 ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
1435 if (GetOpenFileNameA(&ofn) != 0) {
1436 SetDlgItemTextA(IDC_VIEWLOG_EDITOR, ts.ViewlogEditor);
1437 }
1438 }
1439 return TRUE;
1440
1441 case IDC_DEFAULTPATH_PUSH | (BN_CLICKED << 16):
1442 // ���O�f�B���N�g�����I���_�C�A���O
1443 get_lang_msg("FILEDLG_SELECT_LOGDIR_TITLE", ts.UIMsg, sizeof(ts.UIMsg),
1444 "Select log folder", ts.UILanguageFile);
1445 {
1446 char buf[MAX_PATH];
1447 char buf2[MAX_PATH];
1448 GetDlgItemTextA(IDC_DEFAULTPATH_EDITOR, buf, sizeof(buf));
1449 if (doSelectFolder(GetSafeHwnd(), buf2, sizeof(buf2), buf, ts.UIMsg)) {
1450 SetDlgItemTextA(IDC_DEFAULTPATH_EDITOR, buf2);
1451 }
1452 }
1453
1454 return TRUE;
1455
1456 case IDC_LOG_ROTATE | (BN_CLICKED << 16):
1457 {
1458 if (GetCheck(IDC_LOG_ROTATE)) {
1459 EnableDlgItem(IDC_ROTATE_SIZE_TEXT, TRUE);
1460 EnableDlgItem(IDC_ROTATE_SIZE, TRUE);
1461 EnableDlgItem(IDC_ROTATE_SIZE_TYPE, TRUE);
1462 EnableDlgItem(IDC_ROTATE_STEP_TEXT, TRUE);
1463 EnableDlgItem(IDC_ROTATE_STEP, TRUE);
1464 } else {
1465 EnableDlgItem(IDC_ROTATE_SIZE_TEXT, FALSE);
1466 EnableDlgItem(IDC_ROTATE_SIZE, FALSE);
1467 EnableDlgItem(IDC_ROTATE_SIZE_TYPE, FALSE);
1468 EnableDlgItem(IDC_ROTATE_STEP_TEXT, FALSE);
1469 EnableDlgItem(IDC_ROTATE_STEP, FALSE);
1470 }
1471
1472 }
1473 return TRUE;
1474
1475 case IDC_OPT_BINARY | (BN_CLICKED << 16):
1476 {
1477 if (GetCheck(IDC_OPT_BINARY)) {
1478 EnableDlgItem(IDC_OPT_PLAINTEXT, FALSE);
1479 EnableDlgItem(IDC_OPT_TIMESTAMP, FALSE);
1480 EnableDlgItem(IDC_OPT_TIMESTAMP_TYPE, FALSE);
1481 } else {
1482 EnableDlgItem(IDC_OPT_PLAINTEXT, TRUE);
1483 EnableDlgItem(IDC_OPT_TIMESTAMP, TRUE);
1484
1485 if (GetCheck(IDC_OPT_TIMESTAMP)) {
1486 EnableDlgItem(IDC_OPT_TIMESTAMP_TYPE, TRUE);
1487 }
1488 }
1489 }
1490 return TRUE;
1491
1492 case IDC_OPT_TIMESTAMP | (BN_CLICKED << 16):
1493 {
1494 if (GetCheck(IDC_OPT_TIMESTAMP)) {
1495 EnableDlgItem(IDC_OPT_TIMESTAMP_TYPE, TRUE);
1496 } else {
1497 EnableDlgItem(IDC_OPT_TIMESTAMP_TYPE, FALSE);
1498 }
1499 }
1500 return TRUE;
1501 }
1502
1503 return TTCPropertyPage::OnCommand(wParam, lParam);
1504 }
1505
1506 void CLogPropPageDlg::OnOK()
1507 {
1508 char buf[80], buf2[80];
1509 time_t time_local;
1510 struct tm *tm_local;
1511 TCHAR uimsg[MAX_UIMSG];
1512 TCHAR uimsg2[MAX_UIMSG];
1513
1514 // Viewlog Editor path (2005.1.29 yutaka)
1515 GetDlgItemTextA(IDC_VIEWLOG_EDITOR, ts.ViewlogEditor, _countof(ts.ViewlogEditor));
1516
1517 // Log Default File Name (2006.8.28 maya)
1518 GetDlgItemTextA(IDC_DEFAULTNAME_EDITOR, buf, sizeof(buf));
1519 if (isInvalidStrftimeChar(buf)) {
1520 get_lang_msgT("MSG_ERROR", uimsg, _countof(uimsg), _T("ERROR"), ts.UILanguageFile);
1521 get_lang_msgT("MSG_LOGFILE_INVALID_CHAR_ERROR", uimsg2, _countof(uimsg2),
1522 _T("Invalid character is included in log file name."), ts.UILanguageFile);
1523 MessageBox(uimsg2, uimsg, MB_ICONEXCLAMATION);
1524 return;
1525 }
1526
1527 // ��������������
1528 time(&time_local);
1529 tm_local = localtime(&time_local);
1530 // ����������������
1531 if (strlen(buf) != 0 && strftime(buf2, sizeof(buf2), buf, tm_local) == 0) {
1532 get_lang_msgT("MSG_ERROR", uimsg, _countof(uimsg), _T("ERROR"), ts.UILanguageFile);
1533 get_lang_msgT("MSG_LOGFILE_TOOLONG_ERROR", uimsg2, _countof(uimsg2),
1534 _T("The log file name is too long."), ts.UILanguageFile);
1535 MessageBox(uimsg2, uimsg, MB_ICONEXCLAMATION);
1536 return;
1537 }
1538 if (isInvalidFileNameChar(buf2)) {
1539 get_lang_msgT("MSG_ERROR", uimsg, _countof(uimsg), _T("ERROR"), ts.UILanguageFile);
1540 get_lang_msgT("MSG_LOGFILE_INVALID_CHAR_ERROR", uimsg2, _countof(uimsg2),
1541 _T("Invalid character is included in log file name."), ts.UILanguageFile);
1542 MessageBox(uimsg2, uimsg, MB_ICONEXCLAMATION);
1543 return;
1544 }
1545 strncpy_s(ts.LogDefaultName, sizeof(ts.LogDefaultName), buf, _TRUNCATE);
1546
1547 // Log Default File Path (2007.5.30 maya)
1548 GetDlgItemTextA(IDC_DEFAULTPATH_EDITOR, ts.LogDefaultPath, _countof(ts.LogDefaultPath));
1549
1550 /* Auto start logging (2007.5.31 maya) */
1551 ts.LogAutoStart = GetCheck(IDC_AUTOSTART);
1552
1553 /* Log Rotate */
1554 if (GetCheck(IDC_LOG_ROTATE)) { /* on */
1555 ts.LogRotate = ROTATE_SIZE;
1556 GetDlgItemTextA(IDC_ROTATE_SIZE_TYPE, buf, _countof(buf));
1557 ts.LogRotateSizeType = 0;
1558 for (int i = 0 ; i < LOG_ROTATE_SIZETYPE_NUM ; i++) {
1559 if (strcmp(buf, LogRotateSizeType[i]) == 0) {
1560 ts.LogRotateSizeType = i;
1561 break;
1562 }
1563 }
1564 ts.LogRotateSize = GetDlgItemInt(IDC_ROTATE_SIZE);
1565 for (int i = 0 ; i < ts.LogRotateSizeType ; i++)
1566 ts.LogRotateSize *= 1024;
1567
1568 ts.LogRotateStep = GetDlgItemInt(IDC_ROTATE_STEP);
1569
1570 } else { /* off */
1571 ts.LogRotate = ROTATE_NONE;
1572 /* �c���������o�[�����}�I���������c���B*/
1573 }
1574
1575 // Log Options
1576 if (GetCheck(IDC_OPT_BINARY)) {
1577 ts.LogBinary = 1;
1578 }
1579 else {
1580 ts.LogBinary = 0;
1581 }
1582
1583 if (GetCheck(IDC_OPT_APPEND)) {
1584 ts.Append = 1;
1585 }
1586 else {
1587 ts.Append = 0;
1588 }
1589
1590 if (GetCheck(IDC_OPT_PLAINTEXT)) {
1591 ts.LogTypePlainText = 1;
1592 }
1593 else {
1594 ts.LogTypePlainText = 0;
1595 }
1596
1597 if (GetCheck(IDC_OPT_HIDEDLG)) {
1598 ts.LogHideDialog = 1;
1599 }
1600 else {
1601 ts.LogHideDialog = 0;
1602 }
1603
1604 if (GetCheck(IDC_OPT_INCBUF)) {
1605 ts.LogAllBuffIncludedInFirst = 1;
1606 }
1607 else {
1608 ts.LogAllBuffIncludedInFirst = 0;
1609 }
1610
1611 if (GetCheck(IDC_OPT_TIMESTAMP)) {
1612 ts.LogTimestamp = 1;
1613 }
1614 else {
1615 ts.LogTimestamp = 0;
1616 }
1617
1618 ts.LogTimestampType = GetCurSel(IDC_OPT_TIMESTAMP_TYPE);
1619 }
1620
1621 void CLogPropPageDlg::OnHelp()
1622 {
1623 PostMessage(HVTWin, WM_USER_DLGHELP2, HlpMenuSetupAdditional, 0);
1624 }
1625
1626 /////////////////////////////
1627
1628 // CCygwinPropPageDlg �_�C�A���O
1629
1630 CCygwinPropPageDlg::CCygwinPropPageDlg(HINSTANCE inst, TTCPropertySheet *sheet)
1631 : TTCPropertyPage(inst, CCygwinPropPageDlg::IDD, sheet)
1632 {
1633 wchar_t UIMsg[MAX_UIMSG];
1634 get_lang_msgW("DLG_TABSHEET_TITLE_CYGWIN", UIMsg, _countof(UIMsg),
1635 L"Cygwin", ts.UILanguageFile);
1636 m_psp.pszTitle = _wcsdup(UIMsg);
1637 m_psp.dwFlags |= (PSP_USETITLE | PSP_HASHELP);
1638 }
1639
1640 CCygwinPropPageDlg::~CCygwinPropPageDlg()
1641 {
1642 free((void *)m_psp.pszTitle);
1643 }
1644
1645 // CCygwinPropPageDlg ���b�Z�[�W �n���h��
1646
1647 void CCygwinPropPageDlg::OnInitDialog()
1648 {
1649 TTCPropertyPage::OnInitDialog();
1650
1651 static const DlgTextInfo TextInfos[] = {
1652 { IDC_CYGWIN_PATH_LABEL, "DLG_TAB_CYGWIN_PATH" }
1653 };
1654 SetDlgTexts(m_hWnd, TextInfos, _countof(TextInfos), ts.UILanguageFile);
1655
1656 memcpy(&settings, &ts.CygtermSettings, sizeof(cygterm_t));
1657
1658 SetDlgItemTextA(IDC_TERM_EDIT, settings.term);
1659 SetDlgItemTextA(IDC_TERM_TYPE, settings.term_type);
1660 SetDlgItemTextA(IDC_PORT_START, settings.port_start);
1661 SetDlgItemTextA(IDC_PORT_RANGE, settings.port_range);
1662 SetDlgItemTextA(IDC_SHELL, settings.shell);
1663 SetDlgItemTextA(IDC_ENV1, settings.env1);
1664 SetDlgItemTextA(IDC_ENV2, settings.env2);
1665
1666 SetCheck(IDC_LOGIN_SHELL, settings.login_shell);
1667 SetCheck(IDC_HOME_CHDIR, settings.home_chdir);
1668 SetCheck(IDC_AGENT_PROXY, settings.agent_proxy);
1669
1670 // Cygwin install path
1671 SetDlgItemTextA(IDC_CYGWIN_PATH, ts.CygwinDirectory);
1672
1673 // �_�C�A���O���t�H�[�J�X��������
1674 ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_CYGWIN_PATH));
1675 }
1676
1677 BOOL CCygwinPropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam)
1678 {
1679 char buf[MAX_PATH], buf2[MAX_PATH];
1680
1681 switch (wParam) {
1682 case IDC_SELECT_FILE | (BN_CLICKED << 16):
1683 // Cygwin install �f�B���N�g�����I���_�C�A���O
1684 get_lang_msg("DIRDLG_CYGTERM_DIR_TITLE", ts.UIMsg, sizeof(ts.UIMsg),
1685 "Select Cygwin directory", ts.UILanguageFile);
1686 GetDlgItemTextA(IDC_CYGWIN_PATH, buf, sizeof(buf));
1687 if (doSelectFolder(GetSafeHwnd(), buf2, sizeof(buf2), buf, ts.UIMsg)) {
1688 SetDlgItemTextA(IDC_CYGWIN_PATH, buf2);
1689 }
1690 return TRUE;
1691 }
1692
1693 return TTCPropertyPage::OnCommand(wParam, lParam);
1694 }
1695
1696 void CCygwinPropPageDlg::OnOK()
1697 {
1698 // writing to CygTerm config file
1699 GetDlgItemTextA(IDC_TERM_EDIT, settings.term, sizeof(settings.term));
1700 GetDlgItemTextA(IDC_TERM_TYPE, settings.term_type, sizeof(settings.term_type));
1701 GetDlgItemTextA(IDC_PORT_START, settings.port_start, sizeof(settings.port_start));
1702 GetDlgItemTextA(IDC_PORT_RANGE, settings.port_range, sizeof(settings.port_range));
1703 GetDlgItemTextA(IDC_SHELL, settings.shell, sizeof(settings.shell));
1704 GetDlgItemTextA(IDC_ENV1, settings.env1, sizeof(settings.env1));
1705 GetDlgItemTextA(IDC_ENV2, settings.env2, sizeof(settings.env2));
1706
1707 settings.login_shell = GetCheck(IDC_LOGIN_SHELL);
1708 settings.home_chdir = GetCheck(IDC_HOME_CHDIR);
1709 settings.agent_proxy = GetCheck(IDC_AGENT_PROXY);
1710
1711 memcpy(&ts.CygtermSettings, &settings, sizeof(cygterm_t));
1712
1713 // �������������������t���O�������������B
1714 ts.CygtermSettings.update_flag = TRUE;
1715
1716 // Cygwin install path
1717 GetDlgItemTextA(IDC_CYGWIN_PATH, ts.CygwinDirectory, sizeof(ts.CygwinDirectory));
1718 }
1719
1720 void CCygwinPropPageDlg::OnHelp()
1721 {
1722 PostMessage(HVTWin, WM_USER_DLGHELP2, HlpMenuSetupAdditional, 0);
1723 }
1724
1725 // CAddSettingPropSheetDlg
1726 CAddSettingPropSheetDlg::CAddSettingPropSheetDlg(
1727 HINSTANCE hInstance, HWND hParentWnd) :
1728 TTCPropertySheet(hInstance, hParentWnd)
1729 {
1730 int i = 0;
1731 m_Page[i++] = new CGeneralPropPageDlg(hInstance, this);
1732 m_Page[i++] = new CSequencePropPageDlg(hInstance, this);
1733 m_Page[i++] = new CCopypastePropPageDlg(hInstance, this);
1734 m_Page[i++] = new CVisualPropPageDlg(hInstance, this);
1735 m_Page[i++] = new CLogPropPageDlg(hInstance, this);
1736 m_Page[i++] = new CCygwinPropPageDlg(hInstance, this);
1737 if ((GetKeyState(VK_CONTROL) & 0x8000) != 0 ||
1738 (GetKeyState(VK_SHIFT) & 0x8000) != 0 ) {
1739 m_Page[i++] = new CDebugPropPage(hInstance, this);
1740 }
1741 m_PageCount = i;
1742
1743 for (i = 0; i < m_PageCount; i++) {
1744 hPsp[i] = m_Page[i]->CreatePropertySheetPage();
1745 }
1746
1747 m_psh.nPages = m_PageCount;
1748 m_psh.phpage = hPsp;
1749
1750 wchar_t UIMsg[MAX_UIMSG];
1751 get_lang_msgW("DLG_TABSHEET_TITLE", UIMsg, _countof(UIMsg),
1752 L"Tera Term: Additional settings", ts.UILanguageFile);
1753 m_psh.pszCaption = _wcsdup(UIMsg);
1754 }
1755
1756 CAddSettingPropSheetDlg::~CAddSettingPropSheetDlg()
1757 {
1758 free((void*)m_psh.pszCaption);
1759 for (int i = 0; i < m_PageCount; i++) {
1760 delete m_Page[i];
1761 }
1762 }
1763
1764 void CAddSettingPropSheetDlg::OnInitDialog()
1765 {
1766 TTCPropertySheet::OnInitDialog();
1767 CenterWindow(m_hWnd, m_hParentWnd);
1768 }

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