リビジョン | 5171 (tree) |
---|---|
日時 | 2013-03-24 19:55:37 |
作者 | (del#24082) |
ログ・ローテートの設定を Additional settings ダイアログから行えるようにした。
@@ -532,7 +532,10 @@ | ||
532 | 532 | } |
533 | 533 | LogVar->ByteCount = 0; |
534 | 534 | |
535 | - LogVar->RotateMode = ROTATE_NONE; | |
535 | + // Log rotate configuration | |
536 | + LogVar->RotateMode = ts.LogRotate; | |
537 | + LogVar->RotateSize = ts.LogRotateSize; | |
538 | + LogVar->RotateStep = ts.LogRotateStep; | |
536 | 539 | |
537 | 540 | if (! OpenFTDlg(LogVar)) { |
538 | 541 | FileTransEnd(OpLog); |
@@ -12,6 +12,7 @@ | ||
12 | 12 | #include "tttypes.h" |
13 | 13 | #include "ttwinman.h" |
14 | 14 | #include "ttcommon.h" |
15 | +#include "ttftypes.h" | |
15 | 16 | |
16 | 17 | mouse_cursor_t MouseCursor[] = { |
17 | 18 | {"ARROW", IDC_ARROW}, |
@@ -1208,10 +1209,25 @@ | ||
1208 | 1209 | |
1209 | 1210 | // CLogPropPageDlg メッセージ ハンドラ |
1210 | 1211 | |
1212 | +#define LOG_ROTATE_SIZETYPE_NUM 3 | |
1213 | +static char *LogRotateSizeType[] = { | |
1214 | + "Byte", "KB", "MB" | |
1215 | +}; | |
1216 | + | |
1217 | +static char *GetLogRotateSizeType(int val) | |
1218 | +{ | |
1219 | + if (val >= LOG_ROTATE_SIZETYPE_NUM) | |
1220 | + val = 0; | |
1221 | + | |
1222 | + return LogRotateSizeType[val]; | |
1223 | +} | |
1224 | + | |
1211 | 1225 | BOOL CLogPropPageDlg::OnInitDialog() |
1212 | 1226 | { |
1213 | 1227 | char uimsg[MAX_UIMSG]; |
1214 | 1228 | CButton *btn; |
1229 | + CComboBox *combo; | |
1230 | + int i; | |
1215 | 1231 | |
1216 | 1232 | CPropertyPage::OnInitDialog(); |
1217 | 1233 |
@@ -1227,6 +1243,14 @@ | ||
1227 | 1243 | SendDlgItemMessage(IDC_DEFAULTPATH_EDITOR, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); |
1228 | 1244 | SendDlgItemMessage(IDC_DEFAULTPATH_PUSH, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); |
1229 | 1245 | SendDlgItemMessage(IDC_AUTOSTART, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); |
1246 | + | |
1247 | + // Log rotate | |
1248 | + SendDlgItemMessage(IDC_LOG_ROTATE, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); | |
1249 | + SendDlgItemMessage(IDC_ROTATE_SIZE_TEXT, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); | |
1250 | + SendDlgItemMessage(IDC_ROTATE_SIZE, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); | |
1251 | + SendDlgItemMessage(IDC_ROTATE_SIZE_TYPE, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); | |
1252 | + SendDlgItemMessage(IDC_ROTATE_STEP_TEXT, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); | |
1253 | + SendDlgItemMessage(IDC_ROTATE_STEP, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); | |
1230 | 1254 | } |
1231 | 1255 | else { |
1232 | 1256 | DlgLogFont = NULL; |
@@ -1244,7 +1268,17 @@ | ||
1244 | 1268 | GetDlgItemText(IDC_AUTOSTART, uimsg, sizeof(uimsg)); |
1245 | 1269 | get_lang_msg("DLG_TAB_LOG_AUTOSTART", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); |
1246 | 1270 | SetDlgItemText(IDC_AUTOSTART, ts.UIMsg); |
1271 | + // TODO: Log rotate | |
1272 | +#if 0 | |
1273 | + get_lang_msg("DLG_TAB_LOG_ROTATE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); | |
1274 | + SetDlgItemText(IDC_LOG_ROTATE, ts.UIMsg); | |
1275 | + get_lang_msg("DLG_TAB_LOG_ROTATE_SIZE_TEXT", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); | |
1276 | + SetDlgItemText(IDC_ROTATE_SIZE_TEXT, ts.UIMsg); | |
1277 | + get_lang_msg("IDC_ROTATE_STEP_TEXT", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); | |
1278 | + SetDlgItemText(IDC_ROTATE_STEP_TEXT, ts.UIMsg); | |
1279 | +#endif | |
1247 | 1280 | |
1281 | + | |
1248 | 1282 | // Viewlog Editor path (2005.1.29 yutaka) |
1249 | 1283 | SetDlgItemText(IDC_VIEWLOG_EDITOR, ts.ViewlogEditor); |
1250 | 1284 |
@@ -1258,6 +1292,33 @@ | ||
1258 | 1292 | btn = (CButton *)GetDlgItem(IDC_AUTOSTART); |
1259 | 1293 | btn->SetCheck(ts.LogAutoStart); |
1260 | 1294 | |
1295 | + // Log rotate | |
1296 | + btn = (CButton *)GetDlgItem(IDC_LOG_ROTATE); | |
1297 | + btn->SetCheck(ts.LogRotate != ROTATE_NONE); | |
1298 | + | |
1299 | + combo = (CComboBox *)GetDlgItem(IDC_ROTATE_SIZE_TYPE); | |
1300 | + for (i = 0 ; i < LOG_ROTATE_SIZETYPE_NUM ; i++) { | |
1301 | + combo->AddString(LogRotateSizeType[i]); | |
1302 | + } | |
1303 | + | |
1304 | + SetDlgItemInt(IDC_ROTATE_SIZE, ts.LogRotateSize, FALSE); | |
1305 | + combo->SelectString(-1, GetLogRotateSizeType(ts.LogRotateSizeType)); | |
1306 | + SetDlgItemInt(IDC_ROTATE_STEP, ts.LogRotateStep, FALSE); | |
1307 | + if (ts.LogRotate == ROTATE_NONE) { | |
1308 | + GetDlgItem(IDC_ROTATE_SIZE_TEXT)->EnableWindow(FALSE); | |
1309 | + GetDlgItem(IDC_ROTATE_SIZE)->EnableWindow(FALSE); | |
1310 | + GetDlgItem(IDC_ROTATE_SIZE_TYPE)->EnableWindow(FALSE); | |
1311 | + GetDlgItem(IDC_ROTATE_STEP_TEXT)->EnableWindow(FALSE); | |
1312 | + GetDlgItem(IDC_ROTATE_STEP)->EnableWindow(FALSE); | |
1313 | + } else { | |
1314 | + GetDlgItem(IDC_ROTATE_SIZE_TEXT)->EnableWindow(TRUE); | |
1315 | + GetDlgItem(IDC_ROTATE_SIZE)->EnableWindow(TRUE); | |
1316 | + GetDlgItem(IDC_ROTATE_SIZE_TYPE)->EnableWindow(TRUE); | |
1317 | + GetDlgItem(IDC_ROTATE_STEP_TEXT)->EnableWindow(TRUE); | |
1318 | + GetDlgItem(IDC_ROTATE_STEP)->EnableWindow(TRUE); | |
1319 | + } | |
1320 | + | |
1321 | + | |
1261 | 1322 | // ダイアログにフォーカスを当てる |
1262 | 1323 | ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_VIEWLOG_EDITOR)); |
1263 | 1324 |
@@ -1300,6 +1361,27 @@ | ||
1300 | 1361 | SetDlgItemText(IDC_DEFAULTPATH_EDITOR, ts.LogDefaultPath); |
1301 | 1362 | |
1302 | 1363 | return TRUE; |
1364 | + | |
1365 | + case IDC_LOG_ROTATE | (BN_CLICKED << 16): | |
1366 | + { | |
1367 | + CButton *btn; | |
1368 | + btn = (CButton *)GetDlgItem(IDC_LOG_ROTATE); | |
1369 | + if (btn->GetCheck()) { | |
1370 | + GetDlgItem(IDC_ROTATE_SIZE_TEXT)->EnableWindow(TRUE); | |
1371 | + GetDlgItem(IDC_ROTATE_SIZE)->EnableWindow(TRUE); | |
1372 | + GetDlgItem(IDC_ROTATE_SIZE_TYPE)->EnableWindow(TRUE); | |
1373 | + GetDlgItem(IDC_ROTATE_STEP_TEXT)->EnableWindow(TRUE); | |
1374 | + GetDlgItem(IDC_ROTATE_STEP)->EnableWindow(TRUE); | |
1375 | + } else { | |
1376 | + GetDlgItem(IDC_ROTATE_SIZE_TEXT)->EnableWindow(FALSE); | |
1377 | + GetDlgItem(IDC_ROTATE_SIZE)->EnableWindow(FALSE); | |
1378 | + GetDlgItem(IDC_ROTATE_SIZE_TYPE)->EnableWindow(FALSE); | |
1379 | + GetDlgItem(IDC_ROTATE_STEP_TEXT)->EnableWindow(FALSE); | |
1380 | + GetDlgItem(IDC_ROTATE_STEP)->EnableWindow(FALSE); | |
1381 | + } | |
1382 | + | |
1383 | + } | |
1384 | + return TRUE; | |
1303 | 1385 | } |
1304 | 1386 | |
1305 | 1387 | return CPropertyPage::OnCommand(wParam, lParam); |
@@ -1312,6 +1394,8 @@ | ||
1312 | 1394 | struct tm *tm_local; |
1313 | 1395 | char uimsg[MAX_UIMSG]; |
1314 | 1396 | CButton *btn; |
1397 | + CString str; | |
1398 | + int i; | |
1315 | 1399 | |
1316 | 1400 | // Viewlog Editor path (2005.1.29 yutaka) |
1317 | 1401 | GetDlgItemText(IDC_VIEWLOG_EDITOR, ts.ViewlogEditor, sizeof(ts.ViewlogEditor)); |
@@ -1351,6 +1435,32 @@ | ||
1351 | 1435 | /* Auto start logging (2007.5.31 maya) */ |
1352 | 1436 | btn = (CButton *)GetDlgItem(IDC_AUTOSTART); |
1353 | 1437 | ts.LogAutoStart = btn->GetCheck(); |
1438 | + | |
1439 | + /* Log Rotate */ | |
1440 | + btn = (CButton *)GetDlgItem(IDC_LOG_ROTATE); | |
1441 | + if (btn->GetCheck()) { /* on */ | |
1442 | + ts.LogRotate = ROTATE_SIZE; | |
1443 | + | |
1444 | + ((CComboBox*)GetDlgItem(IDC_ROTATE_SIZE_TYPE))->GetWindowText(str); | |
1445 | + for (i = 0 ; i < LOG_ROTATE_SIZETYPE_NUM ; i++) { | |
1446 | + if (strcmp(str, LogRotateSizeType[i]) == 0) | |
1447 | + break; | |
1448 | + } | |
1449 | + if (i >= LOG_ROTATE_SIZETYPE_NUM) | |
1450 | + i = 0; | |
1451 | + ts.LogRotateSizeType = i; | |
1452 | + | |
1453 | + ts.LogRotateSize = GetDlgItemInt(IDC_ROTATE_SIZE); | |
1454 | + for (i = 0 ; i < ts.LogRotateSizeType ; i++) | |
1455 | + ts.LogRotateSize *= 1024; | |
1456 | + | |
1457 | + ts.LogRotateStep = GetDlgItemInt(IDC_ROTATE_STEP); | |
1458 | + | |
1459 | + } else { /* off */ | |
1460 | + ts.LogRotate = ROTATE_NONE; | |
1461 | + /* 残りのメンバーは意図的に設定を残す。*/ | |
1462 | + } | |
1463 | + | |
1354 | 1464 | } |
1355 | 1465 | |
1356 | 1466 |
@@ -775,6 +775,13 @@ | ||
775 | 775 | /* Auto start logging (2007.5.31 maya) */ |
776 | 776 | ts->LogAutoStart = GetOnOff(Section, "LogAutoStart", FName, FALSE); |
777 | 777 | |
778 | + /* Log Rotate (2013.3.24 yutaka) */ | |
779 | + ts->LogRotate = GetPrivateProfileInt(Section, "LogRotate", 0, FName); | |
780 | + ts->LogRotateSize = GetPrivateProfileInt(Section, "LogRotateSize", 0, FName); | |
781 | + ts->LogRotateSizeType = GetPrivateProfileInt(Section, "LogRotateSizeType", 0, FName); | |
782 | + ts->LogRotateStep = GetPrivateProfileInt(Section, "LogRotateStep", 0, FName); | |
783 | + | |
784 | + | |
778 | 785 | /* XMODEM option */ |
779 | 786 | GetPrivateProfileString(Section, "XmodemOpt", "", |
780 | 787 | Temp, sizeof(Temp), FName); |
@@ -2106,6 +2113,12 @@ | ||
2106 | 2113 | /* Auto start logging (2007.5.31 maya) */ |
2107 | 2114 | WriteOnOff(Section, "LogAutoStart", FName, ts->LogAutoStart); |
2108 | 2115 | |
2116 | + /* Log Rotate (2013.3.24 yutaka) */ | |
2117 | + WriteInt(Section, "LogRotate", FName, ts->LogRotate); | |
2118 | + WriteInt(Section, "LogRotateSize", FName, ts->LogRotateSize); | |
2119 | + WriteInt(Section, "LogRotateSizeType", FName, ts->LogRotateSizeType); | |
2120 | + WriteInt(Section, "LogRotateStep", FName, ts->LogRotateStep); | |
2121 | + | |
2109 | 2122 | /* XMODEM option */ |
2110 | 2123 | switch (ts->XmodemOpt) { |
2111 | 2124 | case XoptCRC: |
@@ -132,9 +132,11 @@ | ||
132 | 132 | #define IDC_PASTEDELAY_EDIT 2510 |
133 | 133 | #define IDC_SCP_PATH 2510 |
134 | 134 | #define IDC_BGIMG_EDIT 2510 |
135 | +#define IDC_ROTATE_SIZE 2510 | |
135 | 136 | #define IDC_CHECK1 2512 |
136 | 137 | #define IDC_CONFIRM_CHANGE_PASTE 2512 |
137 | 138 | #define IDC_CURSOR_CTRL_SEQ 2512 |
139 | +#define IDC_LOG_ROTATE 2512 | |
138 | 140 | #define IDC_MOUSEWHEEL_SCROLL_LINE 2513 |
139 | 141 | #define IDC_WINDOW_CTRL 2513 |
140 | 142 | #define IDC_TRANSPROGRESS 2514 |
@@ -160,7 +162,12 @@ | ||
160 | 162 | #define IDC_BUTTON1 2528 |
161 | 163 | #define IDC_BGIMG_BUTTON 2528 |
162 | 164 | #define IDC_CLIPBOARD_ACCESS_LABEL 2529 |
165 | +#define IDC_ROTATE_SIZE_TYPE 2529 | |
163 | 166 | #define IDC_CLIPBOARD_ACCESS 2530 |
167 | +#define IDC_ROTATE_STEP 2530 | |
168 | +#define IDC_ROTATE_STEP_TEXT 2531 | |
169 | +#define IDC_ROTATE_SIZE_TEXT 2532 | |
170 | +#define IDC_ROTATE_GROUP 2533 | |
164 | 171 | #define ID_ACC_SENDBREAK 50001 |
165 | 172 | #define ID_ACC_COPY 50002 |
166 | 173 | #define ID_ACC_NEWCONNECTION 50003 |
@@ -254,7 +261,7 @@ | ||
254 | 261 | #define _APS_NO_MFC 1 |
255 | 262 | #define _APS_NEXT_RESOURCE_VALUE 123 |
256 | 263 | #define _APS_NEXT_COMMAND_VALUE 52031 |
257 | -#define _APS_NEXT_CONTROL_VALUE 2529 | |
264 | +#define _APS_NEXT_CONTROL_VALUE 2534 | |
258 | 265 | #define _APS_NEXT_SYMED_VALUE 101 |
259 | 266 | #endif |
260 | 267 | #endif |
@@ -557,6 +557,10 @@ | ||
557 | 557 | WORD FontQuality; |
558 | 558 | char ScpSendDir[MAXPATHLEN]; |
559 | 559 | char BGImageFilePath[MAX_PATH]; |
560 | + enum rotate_mode LogRotate; | |
561 | + DWORD LogRotateSize; | |
562 | + WORD LogRotateSizeType; | |
563 | + WORD LogRotateStep; | |
560 | 564 | }; |
561 | 565 | |
562 | 566 | typedef struct tttset TTTSet, *PTTSet; |
@@ -1012,6 +1016,12 @@ | ||
1012 | 1016 | * Increment the number of this macro value |
1013 | 1017 | * when you change TMap or member of TMap. |
1014 | 1018 | * |
1019 | + * - At version 4.78, ttset_memfilemap was replaced with ttset_memfilemap_20. | |
1020 | + * added tttset.LogRotate | |
1021 | + * added tttset.LogRotateSize | |
1022 | + * added tttset.LogRotateSizeType | |
1023 | + * added tttset.LogRotateStep | |
1024 | + * | |
1015 | 1025 | * - At version 4.74, ttset_memfilemap was replaced with ttset_memfilemap_19. |
1016 | 1026 | * added tttset.FontQuality |
1017 | 1027 | * added tttset.ScpSenDir |
@@ -1127,4 +1137,4 @@ | ||
1127 | 1137 | * added tttset.VTCompatTab. |
1128 | 1138 | */ |
1129 | 1139 | |
1130 | -#define TT_FILEMAPNAME "ttset_memfilemap_19" | |
1140 | +#define TT_FILEMAPNAME "ttset_memfilemap_20" |