OSDN Git Service

Update PEM file.
[ffftp/ffftp.git] / option.c
index 8d795d7..8f74fe0 100644 (file)
--- a/option.c
+++ b/option.c
@@ -88,6 +88,8 @@ static INT_PTR CALLBACK ToolSettingProc(HWND hDlg, UINT message, WPARAM wParam,
 static INT_PTR CALLBACK SoundSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
 static INT_PTR CALLBACK MiscSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
 static INT_PTR CALLBACK SortSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
+// ソフトウェア自動更新\r
+static INT_PTR CALLBACK UpdatesSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
 // hostman.cで使用\r
 //static int GetDecimalText(HWND hDlg, int Ctrl);\r
 //static void SetDecimalText(HWND hDlg, int Ctrl, int Num);\r
@@ -136,7 +138,7 @@ extern int FwallPort;
 extern int FwallType;\r
 extern int FwallDefault;\r
 extern int FwallSecurity;\r
-extern int FwallResolv;\r
+extern int FwallResolve;\r
 extern int FwallLower;\r
 extern int FwallDelimiter;\r
 extern int PasvDefault;\r
@@ -178,6 +180,22 @@ extern int DispTimeSeconds;
 extern int DispPermissionsNumber;\r
 // ディレクトリ自動作成\r
 extern int MakeAllDir;\r
+// UPnP対応\r
+extern int UPnPEnabled;\r
+// 全設定暗号化対応\r
+extern int EncryptAllSettings;\r
+// ローカル側自動更新\r
+extern int AutoRefreshFileList;\r
+// 古い処理内容を消去\r
+extern int RemoveOldLog;\r
+// ソフトウェア自動更新\r
+extern int AutoCheckForUpdates;\r
+extern int AutoApplyUpdates;\r
+extern int AutoCheckForUptatesInterval;\r
+// ファイル一覧バグ修正\r
+extern int AbortOnListError;\r
+// ミラーリング設定追加\r
+extern int MirrorNoTransferContents; \r
 \r
 \r
 /*----- オプションのプロパティシート ------------------------------------------\r
@@ -193,7 +211,7 @@ void SetOption(int Start)
 {\r
        // UTF-8対応\r
 //     PROPSHEETPAGE psp[12];\r
-       PROPSHEETPAGE psp[14];\r
+       PROPSHEETPAGE psp[15];\r
        PROPSHEETHEADER psh;\r
 \r
        // 変数が未初期化のバグ修正\r
@@ -414,13 +432,23 @@ void SetOption(int Start)
        psp[13].dwSize = sizeof(PROPSHEETPAGE);\r
        psp[13].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
        psp[13].hInstance = GetFtpInst();\r
-       psp[13].pszTemplate = MAKEINTRESOURCE(opt_misc_dlg);\r
+       psp[13].pszTemplate = MAKEINTRESOURCE(opt_updates_dlg);\r
        psp[13].pszIcon = NULL;\r
-       psp[13].pfnDlgProc = MiscSettingProc;\r
-       psp[13].pszTitle = MSGJPN197;\r
+       psp[13].pfnDlgProc = UpdatesSettingProc;\r
+       psp[13].pszTitle = MSGJPN360;\r
        psp[13].lParam = 0;\r
        psp[13].pfnCallback = NULL;\r
 \r
+       psp[14].dwSize = sizeof(PROPSHEETPAGE);\r
+       psp[14].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
+       psp[14].hInstance = GetFtpInst();\r
+       psp[14].pszTemplate = MAKEINTRESOURCE(opt_misc_dlg);\r
+       psp[14].pszIcon = NULL;\r
+       psp[14].pfnDlgProc = MiscSettingProc;\r
+       psp[14].pszTitle = MSGJPN197;\r
+       psp[14].lParam = 0;\r
+       psp[14].pfnCallback = NULL;\r
+\r
        psh.dwSize = sizeof(PROPSHEETHEADER);\r
        psh.dwFlags = PSH_HASHELP | PSH_NOAPPLYNOW | PSH_PROPSHEETPAGE;\r
        psh.hwndParent = GetMainHwnd();\r
@@ -521,6 +549,8 @@ static INT_PTR CALLBACK Trmode1SettingProc(HWND hDlg, UINT message, WPARAM wPara
                        SendDlgItemMessage(hDlg, TRMODE_SEMICOLON, BM_SETCHECK, VaxSemicolon, 0);\r
                        // ディレクトリ自動作成\r
                        SendDlgItemMessage(hDlg, TRMODE_MAKEDIR, BM_SETCHECK, MakeAllDir, 0);\r
+                       // ファイル一覧バグ修正\r
+                       SendDlgItemMessage(hDlg, TRMODE_LISTERROR, BM_SETCHECK, AbortOnListError, 0);\r
 \r
                        SendMessage(hDlg, WM_COMMAND, MAKEWPARAM(TRMODE_EXT_LIST, 0), 0);\r
 \r
@@ -539,6 +569,8 @@ static INT_PTR CALLBACK Trmode1SettingProc(HWND hDlg, UINT message, WPARAM wPara
                                        VaxSemicolon = SendDlgItemMessage(hDlg, TRMODE_SEMICOLON, BM_GETCHECK, 0, 0);\r
                                        // ディレクトリ自動作成\r
                                        MakeAllDir = SendDlgItemMessage(hDlg, TRMODE_MAKEDIR, BM_GETCHECK, 0, 0);\r
+                                       // ファイル一覧バグ修正\r
+                                       AbortOnListError = SendDlgItemMessage(hDlg, TRMODE_LISTERROR, BM_GETCHECK, 0, 0);\r
                                        break;\r
 \r
                                case PSN_RESET :\r
@@ -807,8 +839,7 @@ static INT_PTR CALLBACK Trmode4SettingProc(HWND hDlg, UINT message, WPARAM wPara
                                        break;\r
 \r
                                case PSN_HELP :\r
-                                       // TODO:\r
-//                                     hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000044);\r
+                                       hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000067);\r
                                        break;\r
                        }\r
                        break;\r
@@ -981,7 +1012,8 @@ static INT_PTR CALLBACK MirrorSettingProc(HWND hDlg, UINT message, WPARAM wParam
                        SetMultiTextToList(hDlg, MIRROR_NODEL_LIST, MirrorNoDel);\r
                        SendDlgItemMessage(hDlg, MIRROR_LOW, BM_SETCHECK, MirrorFnameCnv, 0);\r
                        SendDlgItemMessage(hDlg, MIRROR_UPDEL_NOTIFY, BM_SETCHECK, MirUpDelNotify, 0);\r
-                       SendDlgItemMessage(hDlg, MIRROR_DOWNDEL_NOTIFY, BM_SETCHECK, MirDownDelNotify, 0);\r
+                       // ミラーリング設定追加\r
+                       SendDlgItemMessage(hDlg, MIRROR_NO_TRANSFER, BM_SETCHECK, MirrorNoTransferContents, 0);\r
                    return(TRUE);\r
 \r
                case WM_NOTIFY:\r
@@ -994,6 +1026,8 @@ static INT_PTR CALLBACK MirrorSettingProc(HWND hDlg, UINT message, WPARAM wParam
                                        MirrorFnameCnv = SendDlgItemMessage(hDlg, MIRROR_LOW, BM_GETCHECK, 0, 0);\r
                                        MirUpDelNotify = SendDlgItemMessage(hDlg, MIRROR_UPDEL_NOTIFY, BM_GETCHECK, 0, 0);\r
                                        MirDownDelNotify = SendDlgItemMessage(hDlg, MIRROR_DOWNDEL_NOTIFY, BM_GETCHECK, 0, 0);\r
+                                       // ミラーリング設定追加\r
+                                       MirrorNoTransferContents = SendDlgItemMessage(hDlg, MIRROR_NO_TRANSFER, BM_GETCHECK, 0, 0);\r
                                        break;\r
 \r
                                case PSN_RESET :\r
@@ -1188,6 +1222,7 @@ static INT_PTR CALLBACK Disp1SettingProc(HWND hDlg, UINT message, WPARAM wParam,
 \r
 \r
 // ファイルの属性を数字で表示\r
+// ローカル側自動更新\r
 static INT_PTR CALLBACK Disp2SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
 {\r
        NMHDR *pnmhdr;\r
@@ -1197,6 +1232,8 @@ static INT_PTR CALLBACK Disp2SettingProc(HWND hDlg, UINT message, WPARAM wParam,
        {\r
                case WM_INITDIALOG :\r
                        SendDlgItemMessage(hDlg, DISP2_PERMIT_NUM, BM_SETCHECK, DispPermissionsNumber, 0);\r
+                       SendDlgItemMessage(hDlg, DISP2_AUTO_REFRESH, BM_SETCHECK, AutoRefreshFileList, 0);\r
+                       SendDlgItemMessage(hDlg, DISP2_REMOVE_OLD_LOG, BM_SETCHECK, RemoveOldLog, 0);\r
                    return(TRUE);\r
 \r
                case WM_NOTIFY:\r
@@ -1205,14 +1242,15 @@ static INT_PTR CALLBACK Disp2SettingProc(HWND hDlg, UINT message, WPARAM wParam,
                        {\r
                                case PSN_APPLY :\r
                                        DispPermissionsNumber = SendDlgItemMessage(hDlg, DISP2_PERMIT_NUM, BM_GETCHECK, 0, 0);\r
+                                       AutoRefreshFileList = SendDlgItemMessage(hDlg, DISP2_AUTO_REFRESH, BM_GETCHECK, 0, 0);\r
+                                       RemoveOldLog = SendDlgItemMessage(hDlg, DISP2_REMOVE_OLD_LOG, BM_GETCHECK, 0, 0);\r
                                        break;\r
 \r
                                case PSN_RESET :\r
                                        break;\r
 \r
                                case PSN_HELP :\r
-                                       // TODO:\r
-//                                     hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000047);\r
+                                       hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000068);\r
                                        break;\r
                        }\r
                        break;\r
@@ -1291,6 +1329,8 @@ static INT_PTR CALLBACK ConnectSettingProc(HWND hDlg, UINT message, WPARAM wPara
                        SendDlgItemMessage(hDlg, CONNECT_HIST_PASS, BM_SETCHECK, PassToHist, 0);\r
                        SendDlgItemMessage(hDlg, CONNECT_SENDQUIT, BM_SETCHECK, SendQuit, 0);\r
                        SendDlgItemMessage(hDlg, CONNECT_NORAS, BM_SETCHECK, NoRasControl, 0);\r
+                       // UPnP対応\r
+                       SendDlgItemMessage(hDlg, CONNECT_UPNP, BM_SETCHECK, UPnPEnabled, 0);\r
                    return(TRUE);\r
 \r
                case WM_NOTIFY:\r
@@ -1308,6 +1348,9 @@ static INT_PTR CALLBACK ConnectSettingProc(HWND hDlg, UINT message, WPARAM wPara
                                        PassToHist = SendDlgItemMessage(hDlg, CONNECT_HIST_PASS, BM_GETCHECK, 0, 0);\r
                                        SendQuit = SendDlgItemMessage(hDlg, CONNECT_SENDQUIT, BM_GETCHECK, 0, 0);\r
                                        NoRasControl = SendDlgItemMessage(hDlg, CONNECT_NORAS, BM_GETCHECK, 0, 0);\r
+                                       // UPnP対応\r
+                                       if(IsUPnPLoaded() == YES)\r
+                                               UPnPEnabled = SendDlgItemMessage(hDlg, CONNECT_UPNP, BM_GETCHECK, 0, 0);\r
                                        break;\r
 \r
                                case PSN_RESET :\r
@@ -1406,7 +1449,7 @@ static INT_PTR CALLBACK FireSettingProc(HWND hDlg, UINT message, WPARAM wParam,
 \r
                        SendDlgItemMessage(hDlg, FIRE_USEIT, BM_SETCHECK, FwallDefault, 0);\r
                        SendDlgItemMessage(hDlg, FIRE_PASV, BM_SETCHECK, PasvDefault, 0);\r
-                       SendDlgItemMessage(hDlg, FIRE_RESOLV, BM_SETCHECK, FwallResolv, 0);\r
+                       SendDlgItemMessage(hDlg, FIRE_RESOLV, BM_SETCHECK, FwallResolve, 0);\r
                        SendDlgItemMessage(hDlg, FIRE_LOWER, BM_SETCHECK, FwallLower, 0);\r
 \r
                        SendDlgItemMessage(hDlg, FIRE_SECURITY, CB_ADDSTRING, 0, (LPARAM)MSGJPN212);\r
@@ -1433,7 +1476,7 @@ static INT_PTR CALLBACK FireSettingProc(HWND hDlg, UINT message, WPARAM wParam,
                                        FwallDelimiter = Tmp[0];\r
                                        FwallDefault = SendDlgItemMessage(hDlg, FIRE_USEIT, BM_GETCHECK, 0, 0);\r
                                        PasvDefault = SendDlgItemMessage(hDlg, FIRE_PASV, BM_GETCHECK, 0, 0);\r
-                                       FwallResolv = SendDlgItemMessage(hDlg, FIRE_RESOLV, BM_GETCHECK, 0, 0);\r
+                                       FwallResolve = SendDlgItemMessage(hDlg, FIRE_RESOLV, BM_GETCHECK, 0, 0);\r
                                        FwallLower = SendDlgItemMessage(hDlg, FIRE_LOWER, BM_GETCHECK, 0, 0);\r
                                        FwallSecurity = SendDlgItemMessage(hDlg, FIRE_SECURITY, CB_GETCURSEL, 0, 0);\r
                                        break;\r
@@ -1678,6 +1721,8 @@ static INT_PTR CALLBACK MiscSettingProc(HWND hDlg, UINT message, WPARAM wParam,
                        // ポータブル版判定\r
                        if(AskForceIni() == YES)\r
                                EnableWindow(GetDlgItem(hDlg, MISC_REGTYPE), FALSE);\r
+                       // 全設定暗号化対応\r
+                       SendDlgItemMessage(hDlg, MISC_ENCRYPT_SETTINGS, BM_SETCHECK, EncryptAllSettings, 0);\r
 \r
                        SendDlgItemMessage(hDlg, MISC_CACHE_SAVE, BM_SETCHECK, CacheSave, 0);\r
                        SendDlgItemMessage(hDlg, MISC_BUFNUM, EM_LIMITTEXT, (WPARAM)2, 0);\r
@@ -1711,6 +1756,8 @@ static INT_PTR CALLBACK MiscSettingProc(HWND hDlg, UINT message, WPARAM wParam,
 //                                     RegType = SendDlgItemMessage(hDlg, MISC_REGTYPE, BM_GETCHECK, 0, 0);\r
                                        if(AskForceIni() == NO)\r
                                                RegType = SendDlgItemMessage(hDlg, MISC_REGTYPE, BM_GETCHECK, 0, 0);\r
+                                       // 全設定暗号化対応\r
+                                       EncryptAllSettings = SendDlgItemMessage(hDlg, MISC_ENCRYPT_SETTINGS, BM_GETCHECK, 0, 0);\r
 \r
                                        CacheSave = SendDlgItemMessage(hDlg, MISC_CACHE_SAVE, BM_GETCHECK, 0, 0);\r
                                        CacheEntry = GetDecimalText(hDlg, MISC_BUFNUM);\r
@@ -1912,6 +1959,76 @@ static INT_PTR CALLBACK SortSettingProc(HWND hDlg, UINT message, WPARAM wParam,
 }\r
 \r
 \r
+// ソフトウェア自動更新\r
+static INT_PTR CALLBACK UpdatesSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
+{\r
+       NMHDR *pnmhdr;\r
+\r
+       switch (message)\r
+       {\r
+               case WM_INITDIALOG :\r
+                       SendDlgItemMessage(hDlg, UPDATES_AUTO_CHECK, BM_SETCHECK, AutoCheckForUpdates, 0);\r
+                       SendDlgItemMessage(hDlg, UPDATES_AUTO_APPLY, BM_SETCHECK, AutoApplyUpdates, 0);\r
+                       SendDlgItemMessage(hDlg, UPDATES_INTERVAL, EM_LIMITTEXT, (WPARAM)3, 0);\r
+                       SetDecimalText(hDlg, UPDATES_INTERVAL, AutoCheckForUptatesInterval);\r
+                       SendDlgItemMessage(hDlg, UPDATES_INTERVAL_SPN, UDM_SETRANGE, 0, (LPARAM)MAKELONG(999, 0));\r
+                       if(AutoCheckForUpdates == YES)\r
+                       {\r
+                               EnableWindow(GetDlgItem(hDlg, UPDATES_AUTO_APPLY), TRUE);\r
+                               EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL), TRUE);\r
+                               EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL_SPN), TRUE);\r
+                       }\r
+                       else\r
+                       {\r
+                               EnableWindow(GetDlgItem(hDlg, UPDATES_AUTO_APPLY), FALSE);\r
+                               EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL), FALSE);\r
+                               EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL_SPN), FALSE);\r
+                       }\r
+                   return(TRUE);\r
+\r
+               case WM_NOTIFY:\r
+                       pnmhdr = (NMHDR FAR *)lParam;\r
+                       switch(pnmhdr->code)\r
+                       {\r
+                               case PSN_APPLY :\r
+                                       AutoCheckForUpdates = SendDlgItemMessage(hDlg, UPDATES_AUTO_CHECK, BM_GETCHECK, 0, 0);\r
+                                       AutoApplyUpdates = SendDlgItemMessage(hDlg, UPDATES_AUTO_APPLY, BM_GETCHECK, 0, 0);\r
+                                       AutoCheckForUptatesInterval = GetDecimalText(hDlg, UPDATES_INTERVAL);\r
+                                       CheckRange2(&AutoCheckForUptatesInterval, 999, 0);\r
+                                       break;\r
+\r
+                               case PSN_RESET :\r
+                                       break;\r
+\r
+                               case PSN_HELP :\r
+                                       hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000069);\r
+                                       break;\r
+                       }\r
+                       break;\r
+\r
+               case WM_COMMAND :\r
+                       switch(GET_WM_COMMAND_ID(wParam, lParam))\r
+                       {\r
+                               case UPDATES_AUTO_CHECK :\r
+                                       if(SendDlgItemMessage(hDlg, UPDATES_AUTO_CHECK, BM_GETCHECK, 0, 0) == 1)\r
+                                       {\r
+                                               EnableWindow(GetDlgItem(hDlg, UPDATES_AUTO_APPLY), TRUE);\r
+                                               EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL), TRUE);\r
+                                               EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL_SPN), TRUE);\r
+                                       }\r
+                                       else\r
+                                       {\r
+                                               EnableWindow(GetDlgItem(hDlg, UPDATES_AUTO_APPLY), FALSE);\r
+                                               EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL), FALSE);\r
+                                               EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL_SPN), FALSE);\r
+                                       }\r
+                                       break;\r
+                       }\r
+                       return(TRUE);\r
+       }\r
+    return(FALSE);\r
+}\r
+\r
 /*----- ダイアログのコントロールから10進数を取得 ----------------------------\r
 *\r
 *      Parameter\r