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 8390 - (show annotations) (download) (as text)
Thu Nov 21 14:44:46 2019 UTC (4 years, 4 months ago) by zmatsuo
File MIME type: text/x-c++src
File size: 57972 byte(s)
MinGWでビルドできるよう修正

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

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