mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2025-11-13 03:48:26 -06:00
Windows: Use tab control for VeraCrypt preferences to reduce clutter and size of dialog
This commit is contained in:
@@ -1648,6 +1648,9 @@
|
||||
<entry lang="en" key="DISABLE_SCREEN_PROTECTION_WARNING">WARNING: Disabling screen protection significantly reduces security. Enable this option ONLY if you have a specific need to capture VeraCrypt's interface. This may expose sensitive data to screenshot tools and screen recording features such as Windows 11 Recall.</entry>
|
||||
<entry lang="en" key="MEMORY_COST">Memory Cost</entry>
|
||||
<entry lang="en" key="IDT_KDF_ALGO">KDF Algorithm</entry>
|
||||
<entry lang="en" key="IDD_PREFERENCES_TAB_GENERAL">General</entry>
|
||||
<entry lang="en" key="IDD_PREFERENCES_TAB_ACTIONS">Actions</entry>
|
||||
<entry lang="en" key="IDD_PREFERENCES_TAB_PASSWORD">Password</entry>
|
||||
</localization>
|
||||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:element name="VeraCrypt">
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
#include "../Setup/SelfExtract.h"
|
||||
#include "../Common/EncryptionThreadPool.h"
|
||||
|
||||
#include <Commctrl.h>
|
||||
#include <Strsafe.h>
|
||||
#include <InitGuid.h>
|
||||
#include <devguid.h>
|
||||
@@ -3427,33 +3428,58 @@ BOOL CALLBACK PasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void PreferencesDlgEnableButtons (HWND hwndDlg)
|
||||
// Use the Actions tab (index 1) as the owner of all these controls.
|
||||
static void PreferencesDlgEnableButtons (HWND *pTabDialogs)
|
||||
{
|
||||
BOOL back = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_BKG_TASK_ENABLE));
|
||||
BOOL idle = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_UNMOUNT_INACTIVE));
|
||||
BOOL installed = !IsNonInstallMode();
|
||||
if (!pTabDialogs)
|
||||
return;
|
||||
|
||||
HWND hActions = pTabDialogs[1];
|
||||
if (!hActions)
|
||||
return;
|
||||
|
||||
BOOL back = IsButtonChecked (GetDlgItem (hActions, IDC_PREF_BKG_TASK_ENABLE));
|
||||
BOOL idle = IsButtonChecked (GetDlgItem (hActions, IDC_PREF_UNMOUNT_INACTIVE));
|
||||
BOOL installed = !IsNonInstallMode();
|
||||
BOOL wtsEnabled = (hWtsLib != NULL) ? TRUE : FALSE;
|
||||
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDC_CLOSE_BKG_TASK_WHEN_NOVOL), back && installed);
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDT_LOGON), installed);
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDC_PREF_LOGON_START), back && installed);
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDC_PREF_LOGON_MOUNT_DEVICES), installed);
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDT_AUTO_UNMOUNT), back);
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDT_AUTO_UNMOUNT_ON), back);
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDT_MINUTES), back);
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDC_PREF_UNMOUNT_LOGOFF), back);
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDC_PREF_UNMOUNT_SESSION_LOCKED), back && wtsEnabled);
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDC_PREF_UNMOUNT_POWERSAVING), back);
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDC_PREF_UNMOUNT_SCREENSAVER), back);
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDC_PREF_UNMOUNT_INACTIVE), back);
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDC_PREF_UNMOUNT_INACTIVE_TIME), back && idle);
|
||||
EnableWindow (GetDlgItem (hwndDlg, IDC_PREF_FORCE_AUTO_UNMOUNT), back);
|
||||
EnableWindow (GetDlgItem (hActions, IDC_CLOSE_BKG_TASK_WHEN_NOVOL), back && installed);
|
||||
EnableWindow (GetDlgItem (hActions, IDT_LOGON), installed);
|
||||
EnableWindow (GetDlgItem (hActions, IDC_PREF_LOGON_START), back && installed);
|
||||
EnableWindow (GetDlgItem (hActions, IDC_PREF_LOGON_MOUNT_DEVICES), installed);
|
||||
EnableWindow (GetDlgItem (hActions, IDT_AUTO_UNMOUNT), back);
|
||||
EnableWindow (GetDlgItem (hActions, IDT_AUTO_UNMOUNT_ON), back);
|
||||
EnableWindow (GetDlgItem (hActions, IDT_MINUTES), back);
|
||||
EnableWindow (GetDlgItem (hActions, IDC_PREF_UNMOUNT_LOGOFF), back);
|
||||
EnableWindow (GetDlgItem (hActions, IDC_PREF_UNMOUNT_SESSION_LOCKED), back && wtsEnabled);
|
||||
EnableWindow (GetDlgItem (hActions, IDC_PREF_UNMOUNT_POWERSAVING), back);
|
||||
EnableWindow (GetDlgItem (hActions, IDC_PREF_UNMOUNT_SCREENSAVER), back);
|
||||
EnableWindow (GetDlgItem (hActions, IDC_PREF_UNMOUNT_INACTIVE), back);
|
||||
EnableWindow (GetDlgItem (hActions, IDC_PREF_UNMOUNT_INACTIVE_TIME), back && idle);
|
||||
EnableWindow (GetDlgItem (hActions, IDC_PREF_FORCE_AUTO_UNMOUNT), back);
|
||||
}
|
||||
|
||||
static INT_PTR CALLBACK PrefsTabProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch (msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
LocalizeDialog (hDlg, NULL);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// Lightweight dialog proc for tab pages.
|
||||
// We parent tab pages to the main dialog so that WM_COMMAND/BN_CLICKED
|
||||
// notifications reach the parent without extra forwarding.
|
||||
BOOL CALLBACK PreferencesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
static BOOL PreferencesDialogActive = FALSE;
|
||||
static HWND ActivePreferencesDialogWindow;
|
||||
static HWND TabDialogs[3];
|
||||
static int CurTab = 0;
|
||||
static HFONT hDlgFont = NULL;
|
||||
|
||||
WORD lw = LOWORD (wParam);
|
||||
|
||||
@@ -3461,6 +3487,12 @@ BOOL CALLBACK PreferencesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
TCITEMW ti;
|
||||
RECT tabRect;
|
||||
HWND hTab = GetDlgItem(hwndDlg, IDC_PREF_TAB);
|
||||
hDlgFont = (HFONT)SendMessage(hwndDlg, WM_GETFONT, 0, 0);
|
||||
SendMessage(hTab, WM_SETFONT, (WPARAM)hDlgFont, TRUE);
|
||||
|
||||
if (PreferencesDialogActive)
|
||||
{
|
||||
ShowWindow (ActivePreferencesDialogWindow, SW_SHOW);
|
||||
@@ -3474,94 +3506,134 @@ BOOL CALLBACK PreferencesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM
|
||||
|
||||
LocalizeDialog (hwndDlg, "IDD_PREFERENCES_DLG");
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_PREF_OPEN_EXPLORER), BM_SETCHECK,
|
||||
bExplore ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
// Add tabs
|
||||
ti.mask = TCIF_TEXT;
|
||||
ti.pszText = GetString("IDD_PREFERENCES_TAB_GENERAL");
|
||||
TabCtrl_InsertItem(hTab, 0, &ti);
|
||||
ti.pszText = GetString("IDD_PREFERENCES_TAB_ACTIONS");
|
||||
TabCtrl_InsertItem(hTab, 1, &ti);
|
||||
ti.pszText = GetString("IDD_PREFERENCES_TAB_PASSWORD");
|
||||
TabCtrl_InsertItem(hTab, 2, &ti);
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED), BM_SETCHECK,
|
||||
bUseDifferentTrayIconIfVolMounted ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
// Create tab dialogs as children of the main dialog
|
||||
TabDialogs[0] = CreateDialog(hInst, MAKEINTRESOURCE(IDD_PREFERENCES_TAB_GENERAL), hwndDlg, PrefsTabProc);
|
||||
TabDialogs[1] = CreateDialog(hInst, MAKEINTRESOURCE(IDD_PREFERENCES_TAB_ACTIONS), hwndDlg, PrefsTabProc);
|
||||
TabDialogs[2] = CreateDialog(hInst, MAKEINTRESOURCE(IDD_PREFERENCES_TAB_PASSWORD), hwndDlg, PrefsTabProc);
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_PRESERVE_TIMESTAMPS), BM_SETCHECK,
|
||||
defaultMountOptions.PreserveTimestamp ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
// Position tab dialogs within the tab's display area
|
||||
GetClientRect(hTab, &tabRect);
|
||||
TabCtrl_AdjustRect(hTab, FALSE, &tabRect); // tabRect is relative to hTab
|
||||
// Translate tabRect from hTab client coords to parent dialog coords
|
||||
POINT pTabRectPoints[2] = { { tabRect.left, tabRect.top }, { tabRect.right, tabRect.bottom } };
|
||||
MapWindowPoints(hTab, hwndDlg, pTabRectPoints, 2);
|
||||
tabRect.left = pTabRectPoints[0].x-2;
|
||||
tabRect.top = pTabRectPoints[0].y;
|
||||
tabRect.right = pTabRectPoints[1].x-2;
|
||||
tabRect.bottom = pTabRectPoints[1].y;
|
||||
for (int i = 0; i < 3; ++i)
|
||||
{
|
||||
SetWindowPos(TabDialogs[i], NULL,
|
||||
tabRect.left, tabRect.top,
|
||||
tabRect.right - tabRect.left, tabRect.bottom - tabRect.top,
|
||||
SWP_NOZORDER);
|
||||
if (hDlgFont) SendMessage(TabDialogs[i], WM_SETFONT, (WPARAM)hDlgFont, TRUE);
|
||||
}
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_SHOW_DISCONNECTED_NETWORK_DRIVES), BM_SETCHECK,
|
||||
bShowDisconnectedNetworkDrives ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
// Show first page (unchanged)
|
||||
ShowWindow(TabDialogs[0], SW_SHOW);
|
||||
CurTab = 0;
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_HIDE_WAITING_DIALOG), BM_SETCHECK,
|
||||
bHideWaitingDialog ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
// Populate controls on all tabs
|
||||
// General Tab
|
||||
SendMessage (GetDlgItem (TabDialogs[0], IDC_PREF_MOUNT_READONLY), BM_SETCHECK,
|
||||
defaultMountOptions.ReadOnly ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage (GetDlgItem (TabDialogs[0], IDC_PREF_MOUNT_REMOVABLE), BM_SETCHECK,
|
||||
defaultMountOptions.Removable ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage (GetDlgItem (TabDialogs[0], IDC_PREF_OPEN_EXPLORER), BM_SETCHECK,
|
||||
bExplore ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage (GetDlgItem (TabDialogs[0], IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED), BM_SETCHECK,
|
||||
bUseDifferentTrayIconIfVolMounted ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage (GetDlgItem (TabDialogs[0], IDC_PRESERVE_TIMESTAMPS), BM_SETCHECK,
|
||||
bPreserveTimestamp ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage (GetDlgItem (TabDialogs[0], IDC_SHOW_DISCONNECTED_NETWORK_DRIVES), BM_SETCHECK,
|
||||
bShowDisconnectedNetworkDrives ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage (GetDlgItem (TabDialogs[0], IDC_HIDE_WAITING_DIALOG), BM_SETCHECK,
|
||||
bHideWaitingDialog ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage (GetDlgItem (TabDialogs[0], IDC_SECURE_DESKTOP_PASSWORD_ENTRY), BM_SETCHECK,
|
||||
bUseSecureDesktop ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage (GetDlgItem (TabDialogs[0], IDC_USE_LEGACY_MAX_PASSWORD_LENGTH), BM_SETCHECK,
|
||||
bUseLegacyMaxPasswordLength ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_SECURE_DESKTOP_PASSWORD_ENTRY), BM_SETCHECK,
|
||||
bUseSecureDesktop ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
// Actions Tab
|
||||
SendMessage (GetDlgItem (TabDialogs[1], IDC_PREF_BKG_TASK_ENABLE), BM_SETCHECK,
|
||||
bEnableBkgTask ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage (GetDlgItem (TabDialogs[1], IDC_CLOSE_BKG_TASK_WHEN_NOVOL), BM_SETCHECK,
|
||||
(bCloseBkgTaskWhenNoVolumes || IsNonInstallMode()) ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage (GetDlgItem (TabDialogs[1], IDC_PREF_LOGON_START), BM_SETCHECK,
|
||||
bStartOnLogon ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage (GetDlgItem (TabDialogs[1], IDC_PREF_LOGON_MOUNT_DEVICES), BM_SETCHECK,
|
||||
bMountDevicesOnLogon ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage (GetDlgItem (TabDialogs[1], IDC_PREF_UNMOUNT_LOGOFF), BM_SETCHECK,
|
||||
bDismountOnLogOff ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage (GetDlgItem (TabDialogs[1], IDC_PREF_UNMOUNT_SESSION_LOCKED), BM_SETCHECK,
|
||||
bDismountOnSessionLocked ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage (GetDlgItem (TabDialogs[1], IDC_PREF_UNMOUNT_POWERSAVING), BM_SETCHECK,
|
||||
bDismountOnPowerSaving ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage (GetDlgItem (TabDialogs[1], IDC_PREF_UNMOUNT_SCREENSAVER), BM_SETCHECK,
|
||||
bDismountOnScreenSaver ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage (GetDlgItem (TabDialogs[1], IDC_PREF_FORCE_AUTO_UNMOUNT), BM_SETCHECK,
|
||||
bForceAutoDismount ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage (GetDlgItem (TabDialogs[1], IDC_PREF_UNMOUNT_INACTIVE), BM_SETCHECK,
|
||||
MaxVolumeIdleTime > 0 ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SetDlgItemInt (TabDialogs[1], IDC_PREF_UNMOUNT_INACTIVE_TIME, abs (MaxVolumeIdleTime), FALSE);
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_USE_LEGACY_MAX_PASSWORD_LENGTH), BM_SETCHECK,
|
||||
bUseLegacyMaxPasswordLength ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
// Password Tab
|
||||
SendMessage (GetDlgItem (TabDialogs[2], IDC_PREF_CACHE_PASSWORDS), BM_SETCHECK,
|
||||
bCacheInDriverDefault ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage (GetDlgItem (TabDialogs[2], IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT), BM_SETCHECK,
|
||||
bCacheDuringMultipleMount ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage (GetDlgItem (TabDialogs[2], IDC_PREF_WIPE_CACHE_ON_EXIT), BM_SETCHECK,
|
||||
bWipeCacheOnExit ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage (GetDlgItem (TabDialogs[2], IDC_PREF_WIPE_CACHE_ON_AUTOUNMOUNT), BM_SETCHECK,
|
||||
bWipeCacheOnAutoDismount ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage (GetDlgItem (TabDialogs[2], IDC_PREF_CACHE_PIM), BM_SETCHECK,
|
||||
bIncludePimInCache ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT), BM_SETCHECK,
|
||||
bCacheDuringMultipleMount ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_PREF_WIPE_CACHE_ON_EXIT), BM_SETCHECK,
|
||||
bWipeCacheOnExit ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_PREF_WIPE_CACHE_ON_AUTOUNMOUNT), BM_SETCHECK,
|
||||
bWipeCacheOnAutoDismount ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_PREF_CACHE_PASSWORDS), BM_SETCHECK,
|
||||
bCacheInDriver ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_PREF_CACHE_PIM), BM_SETCHECK,
|
||||
bIncludePimInCache? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_PREF_MOUNT_READONLY), BM_SETCHECK,
|
||||
defaultMountOptions.ReadOnly ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_PREF_MOUNT_REMOVABLE), BM_SETCHECK,
|
||||
defaultMountOptions.Removable ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_PREF_LOGON_START), BM_SETCHECK,
|
||||
bStartOnLogon ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_PREF_LOGON_MOUNT_DEVICES), BM_SETCHECK,
|
||||
bMountDevicesOnLogon ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_PREF_BKG_TASK_ENABLE), BM_SETCHECK,
|
||||
bEnableBkgTask ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_CLOSE_BKG_TASK_WHEN_NOVOL), BM_SETCHECK,
|
||||
bCloseBkgTaskWhenNoVolumes || IsNonInstallMode() ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_PREF_UNMOUNT_LOGOFF), BM_SETCHECK,
|
||||
bDismountOnLogOff ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_PREF_UNMOUNT_SESSION_LOCKED), BM_SETCHECK,
|
||||
bDismountOnSessionLocked ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_PREF_UNMOUNT_POWERSAVING), BM_SETCHECK,
|
||||
bDismountOnPowerSaving ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_PREF_UNMOUNT_SCREENSAVER), BM_SETCHECK,
|
||||
bDismountOnScreenSaver ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_PREF_FORCE_AUTO_UNMOUNT), BM_SETCHECK,
|
||||
bForceAutoDismount ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
|
||||
SendMessage (GetDlgItem (hwndDlg, IDC_PREF_UNMOUNT_INACTIVE), BM_SETCHECK,
|
||||
MaxVolumeIdleTime > 0 ? BST_CHECKED:BST_UNCHECKED, 0);
|
||||
|
||||
SetDlgItemInt (hwndDlg, IDC_PREF_UNMOUNT_INACTIVE_TIME, abs (MaxVolumeIdleTime), FALSE);
|
||||
|
||||
PreferencesDlgEnableButtons (hwndDlg);
|
||||
PreferencesDlgEnableButtons (TabDialogs);
|
||||
}
|
||||
return 0;
|
||||
return 1;
|
||||
|
||||
case WM_NOTIFY:
|
||||
if (((LPNMHDR)lParam)->idFrom == IDC_PREF_TAB && ((LPNMHDR)lParam)->code == TCN_SELCHANGE)
|
||||
{
|
||||
int newTab = TabCtrl_GetCurSel(GetDlgItem(hwndDlg, IDC_PREF_TAB));
|
||||
if (newTab != CurTab)
|
||||
{
|
||||
ShowWindow(TabDialogs[CurTab], SW_HIDE);
|
||||
ShowWindow(TabDialogs[newTab], SW_SHOW);
|
||||
CurTab = newTab;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_DESTROY:
|
||||
// Only the parent dialog (which owns IDC_PREF_TAB) should destroy children
|
||||
if (GetDlgItem(hwndDlg, IDC_PREF_TAB))
|
||||
{
|
||||
for (int i = 0; i < 3; ++i)
|
||||
if (TabDialogs[i]) { DestroyWindow(TabDialogs[i]); TabDialogs[i] = NULL; }
|
||||
}
|
||||
PreferencesDialogActive = FALSE;
|
||||
DetachProtectionFromCurrentThread();
|
||||
break;
|
||||
|
||||
case WM_COMMAND:
|
||||
|
||||
if (lw == IDC_PREF_BKG_TASK_ENABLE && !IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_BKG_TASK_ENABLE)))
|
||||
if (lw == IDC_PREF_BKG_TASK_ENABLE && !IsButtonChecked (GetDlgItem (TabDialogs[1], IDC_PREF_BKG_TASK_ENABLE)))
|
||||
{
|
||||
if (AskWarnNoYes ("CONFIRM_BACKGROUND_TASK_DISABLED", hwndDlg) == IDNO)
|
||||
SetCheckBox (hwndDlg, IDC_PREF_BKG_TASK_ENABLE, TRUE);
|
||||
CheckDlgButton(TabDialogs[1], IDC_PREF_BKG_TASK_ENABLE, BST_CHECKED);
|
||||
}
|
||||
|
||||
// Forced dismount disabled warning
|
||||
@@ -3572,19 +3644,19 @@ BOOL CALLBACK PreferencesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM
|
||||
|| lw == IDC_PREF_UNMOUNT_SCREENSAVER
|
||||
|| lw == IDC_PREF_FORCE_AUTO_UNMOUNT)
|
||||
{
|
||||
BOOL i = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_UNMOUNT_INACTIVE));
|
||||
BOOL l = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_UNMOUNT_LOGOFF));
|
||||
BOOL sl = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_UNMOUNT_SESSION_LOCKED));
|
||||
BOOL p = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_UNMOUNT_POWERSAVING));
|
||||
BOOL s = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_UNMOUNT_SCREENSAVER));
|
||||
BOOL q = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_FORCE_AUTO_UNMOUNT));
|
||||
BOOL i = IsButtonChecked (GetDlgItem (TabDialogs[1], IDC_PREF_UNMOUNT_INACTIVE));
|
||||
BOOL l = IsButtonChecked (GetDlgItem (TabDialogs[1], IDC_PREF_UNMOUNT_LOGOFF));
|
||||
BOOL sl = IsButtonChecked (GetDlgItem (TabDialogs[1], IDC_PREF_UNMOUNT_SESSION_LOCKED));
|
||||
BOOL p = IsButtonChecked (GetDlgItem (TabDialogs[1], IDC_PREF_UNMOUNT_POWERSAVING));
|
||||
BOOL s = IsButtonChecked (GetDlgItem (TabDialogs[1], IDC_PREF_UNMOUNT_SCREENSAVER));
|
||||
BOOL q = IsButtonChecked (GetDlgItem (TabDialogs[1], IDC_PREF_FORCE_AUTO_UNMOUNT));
|
||||
|
||||
if (!q)
|
||||
{
|
||||
if (lw == IDC_PREF_FORCE_AUTO_UNMOUNT && (i || l || sl || p || s))
|
||||
{
|
||||
if (AskWarnNoYes ("CONFIRM_NO_FORCED_AUTOUNMOUNT", hwndDlg) == IDNO)
|
||||
SetCheckBox (hwndDlg, IDC_PREF_FORCE_AUTO_UNMOUNT, TRUE);
|
||||
SetCheckBox (TabDialogs[1], IDC_PREF_FORCE_AUTO_UNMOUNT, TRUE);
|
||||
}
|
||||
else if ((lw == IDC_PREF_UNMOUNT_INACTIVE && i
|
||||
|| lw == IDC_PREF_UNMOUNT_LOGOFF && l
|
||||
@@ -3609,31 +3681,36 @@ BOOL CALLBACK PreferencesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM
|
||||
{
|
||||
WaitCursor ();
|
||||
|
||||
bExplore = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_OPEN_EXPLORER));
|
||||
bUseDifferentTrayIconIfVolMounted = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED));
|
||||
bPreserveTimestamp = defaultMountOptions.PreserveTimestamp = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PRESERVE_TIMESTAMPS));
|
||||
bShowDisconnectedNetworkDrives = IsButtonChecked (GetDlgItem (hwndDlg, IDC_SHOW_DISCONNECTED_NETWORK_DRIVES));
|
||||
bHideWaitingDialog = IsButtonChecked (GetDlgItem (hwndDlg, IDC_HIDE_WAITING_DIALOG));
|
||||
bUseSecureDesktop = IsButtonChecked (GetDlgItem (hwndDlg, IDC_SECURE_DESKTOP_PASSWORD_ENTRY));
|
||||
bUseLegacyMaxPasswordLength = IsButtonChecked (GetDlgItem (hwndDlg, IDC_USE_LEGACY_MAX_PASSWORD_LENGTH));
|
||||
bCacheDuringMultipleMount = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT));
|
||||
bWipeCacheOnExit = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_WIPE_CACHE_ON_EXIT));
|
||||
bWipeCacheOnAutoDismount = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_WIPE_CACHE_ON_AUTOUNMOUNT));
|
||||
bCacheInDriverDefault = bCacheInDriver = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_CACHE_PASSWORDS));
|
||||
bIncludePimInCache = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_CACHE_PIM));
|
||||
defaultMountOptions.ReadOnly = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_MOUNT_READONLY));
|
||||
defaultMountOptions.Removable = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_MOUNT_REMOVABLE));
|
||||
bEnableBkgTask = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_BKG_TASK_ENABLE));
|
||||
bCloseBkgTaskWhenNoVolumes = IsNonInstallMode() ? bCloseBkgTaskWhenNoVolumes : IsButtonChecked (GetDlgItem (hwndDlg, IDC_CLOSE_BKG_TASK_WHEN_NOVOL));
|
||||
bDismountOnLogOff = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_UNMOUNT_LOGOFF));
|
||||
bDismountOnSessionLocked = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_UNMOUNT_SESSION_LOCKED));
|
||||
bDismountOnPowerSaving = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_UNMOUNT_POWERSAVING));
|
||||
bDismountOnScreenSaver = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_UNMOUNT_SCREENSAVER));
|
||||
bForceAutoDismount = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_FORCE_AUTO_UNMOUNT));
|
||||
MaxVolumeIdleTime = GetDlgItemInt (hwndDlg, IDC_PREF_UNMOUNT_INACTIVE_TIME, NULL, FALSE)
|
||||
* (IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_UNMOUNT_INACTIVE)) ? 1 : -1);
|
||||
bStartOnLogon = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_LOGON_START));
|
||||
bMountDevicesOnLogon = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_LOGON_MOUNT_DEVICES));
|
||||
// General Tab
|
||||
defaultMountOptions.ReadOnly = IsButtonChecked (GetDlgItem (TabDialogs[0], IDC_PREF_MOUNT_READONLY));
|
||||
defaultMountOptions.Removable = IsButtonChecked (GetDlgItem (TabDialogs[0], IDC_PREF_MOUNT_REMOVABLE));
|
||||
bExplore = IsButtonChecked (GetDlgItem (TabDialogs[0], IDC_PREF_OPEN_EXPLORER));
|
||||
bUseDifferentTrayIconIfVolMounted = IsButtonChecked (GetDlgItem (TabDialogs[0], IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED));
|
||||
bPreserveTimestamp = defaultMountOptions.PreserveTimestamp = IsButtonChecked (GetDlgItem (TabDialogs[0], IDC_PRESERVE_TIMESTAMPS));
|
||||
bShowDisconnectedNetworkDrives = IsButtonChecked (GetDlgItem (TabDialogs[0], IDC_SHOW_DISCONNECTED_NETWORK_DRIVES));
|
||||
bHideWaitingDialog = IsButtonChecked (GetDlgItem (TabDialogs[0], IDC_HIDE_WAITING_DIALOG));
|
||||
bUseSecureDesktop = IsButtonChecked (GetDlgItem (TabDialogs[0], IDC_SECURE_DESKTOP_PASSWORD_ENTRY));
|
||||
bUseLegacyMaxPasswordLength = IsButtonChecked (GetDlgItem (TabDialogs[0], IDC_USE_LEGACY_MAX_PASSWORD_LENGTH));
|
||||
|
||||
// Actions Tab
|
||||
bEnableBkgTask = IsButtonChecked (GetDlgItem (TabDialogs[1], IDC_PREF_BKG_TASK_ENABLE));
|
||||
bCloseBkgTaskWhenNoVolumes = IsNonInstallMode() ? bCloseBkgTaskWhenNoVolumes : IsButtonChecked (GetDlgItem (TabDialogs[1], IDC_CLOSE_BKG_TASK_WHEN_NOVOL));
|
||||
bStartOnLogon = IsButtonChecked (GetDlgItem (TabDialogs[1], IDC_PREF_LOGON_START));
|
||||
bMountDevicesOnLogon = IsButtonChecked (GetDlgItem (TabDialogs[1], IDC_PREF_LOGON_MOUNT_DEVICES));
|
||||
bDismountOnLogOff = IsButtonChecked (GetDlgItem (TabDialogs[1], IDC_PREF_UNMOUNT_LOGOFF));
|
||||
bDismountOnSessionLocked = IsButtonChecked (GetDlgItem (TabDialogs[1], IDC_PREF_UNMOUNT_SESSION_LOCKED));
|
||||
bDismountOnPowerSaving = IsButtonChecked (GetDlgItem (TabDialogs[1], IDC_PREF_UNMOUNT_POWERSAVING));
|
||||
bDismountOnScreenSaver = IsButtonChecked (GetDlgItem (TabDialogs[1], IDC_PREF_UNMOUNT_SCREENSAVER));
|
||||
bForceAutoDismount = IsButtonChecked (GetDlgItem (TabDialogs[1], IDC_PREF_FORCE_AUTO_UNMOUNT));
|
||||
MaxVolumeIdleTime = GetDlgItemInt (TabDialogs[1], IDC_PREF_UNMOUNT_INACTIVE_TIME, NULL, FALSE)
|
||||
* (IsButtonChecked (GetDlgItem (TabDialogs[1], IDC_PREF_UNMOUNT_INACTIVE)) ? 1 : -1);
|
||||
|
||||
// Password Tab
|
||||
bCacheInDriverDefault = bCacheInDriver = IsButtonChecked (GetDlgItem (TabDialogs[2], IDC_PREF_CACHE_PASSWORDS));
|
||||
bCacheDuringMultipleMount = IsButtonChecked (GetDlgItem (TabDialogs[2], IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT));
|
||||
bWipeCacheOnExit = IsButtonChecked (GetDlgItem (TabDialogs[2], IDC_PREF_WIPE_CACHE_ON_EXIT));
|
||||
bWipeCacheOnAutoDismount = IsButtonChecked (GetDlgItem (TabDialogs[2], IDC_PREF_WIPE_CACHE_ON_AUTOUNMOUNT));
|
||||
bIncludePimInCache = IsButtonChecked (GetDlgItem (TabDialogs[2], IDC_PREF_CACHE_PIM));
|
||||
|
||||
ManageStartupSeq ();
|
||||
|
||||
@@ -3675,7 +3752,7 @@ BOOL CALLBACK PreferencesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM
|
||||
|
||||
if (HIWORD (wParam) == BN_CLICKED)
|
||||
{
|
||||
PreferencesDlgEnableButtons (hwndDlg);
|
||||
PreferencesDlgEnableButtons (TabDialogs);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -41,69 +41,91 @@ IDR_MOUNT_TLB TYPELIB "Mount.tlb"
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_PREFERENCES_DLG DIALOGEX 0, 0, 336, 347
|
||||
IDD_PREFERENCES_DLG DIALOGEX 0, 0, 340, 252
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "VeraCrypt - Preferences"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
BEGIN
|
||||
CONTROL "",IDC_PREF_TAB,"SysTabControl32",TCS_MULTILINE | WS_CLIPSIBLINGS | WS_TABSTOP,7,7,326,212
|
||||
PUSHBUTTON "More Settings...",IDC_MORE_SETTINGS,7,229,85,14
|
||||
DEFPUSHBUTTON "OK",IDOK,229,229,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,283,229,50,14
|
||||
END
|
||||
|
||||
IDD_PREFERENCES_TAB_GENERAL DIALOGEX 0, 0, 320, 210
|
||||
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "Default Mount Options",IDT_DEFAULT_MOUNT_OPTIONS,7,7,304,40
|
||||
CONTROL "Mount volumes as read-only",IDC_PREF_MOUNT_READONLY,
|
||||
"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,11,11,150,16
|
||||
"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,14,20,140,16
|
||||
CONTROL "Mount volumes as removable media",IDC_PREF_MOUNT_REMOVABLE,
|
||||
"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,162,11,165,16
|
||||
CONTROL "Enabled",IDC_PREF_BKG_TASK_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,44,111,10
|
||||
CONTROL "Exit when there are no mounted volumes",IDC_CLOSE_BKG_TASK_WHEN_NOVOL,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,140,44,188,10
|
||||
CONTROL "Start VeraCrypt Background Task",IDC_PREF_LOGON_START,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,75,126,10
|
||||
CONTROL "Mount all device-hosted VeraCrypt volumes",IDC_PREF_LOGON_MOUNT_DEVICES,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,140,75,188,10
|
||||
CONTROL "User logs off",IDC_PREF_UNMOUNT_LOGOFF,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,81,104,114,11
|
||||
CONTROL "User session locked",IDC_PREF_UNMOUNT_SESSION_LOCKED,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,197,105,130,11
|
||||
CONTROL "Screen saver is launched",IDC_PREF_UNMOUNT_SCREENSAVER,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,81,116,114,10
|
||||
CONTROL "Entering power saving mode",IDC_PREF_UNMOUNT_POWERSAVING,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,197,115,130,11
|
||||
CONTROL "Auto-unmount volume after no data has been read/written to it for",IDC_PREF_UNMOUNT_INACTIVE,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,128,246,11
|
||||
EDITTEXT IDC_PREF_UNMOUNT_INACTIVE_TIME,258,127,27,12,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT
|
||||
CONTROL "Force auto-unmount even if volume contains open files or directories",IDC_PREF_FORCE_AUTO_UNMOUNT,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,141,294,10
|
||||
"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,158,20,150,16
|
||||
|
||||
GROUPBOX "Windows",IDT_WINDOWS_RELATED_SETTING,7,53,304,135
|
||||
CONTROL "Open Explorer window for successfully mounted volume",IDC_PREF_OPEN_EXPLORER,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,171,316,11
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,66,290,11
|
||||
CONTROL "Use a different taskbar icon when there are mounted volumes",IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,184,314,10
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,80,290,10
|
||||
CONTROL "Preserve modification timestamp of file containers",IDC_PRESERVE_TIMESTAMPS,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,196,316,10
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,94,290,10
|
||||
CONTROL "Make disconnected network drives available for mounting",IDC_SHOW_DISCONNECTED_NETWORK_DRIVES,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,208,316,10
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,108,290,10
|
||||
CONTROL "Don't show wait message dialog when performing operations",IDC_HIDE_WAITING_DIALOG,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,220,316,10
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,122,290,10
|
||||
CONTROL "Use Secure Desktop for password entry",IDC_SECURE_DESKTOP_PASSWORD_ENTRY,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,232,316,10
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,136,290,10
|
||||
CONTROL "Use legacy maximum password length (64 characters)",IDC_USE_LEGACY_MAX_PASSWORD_LENGTH,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,244,316,10
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,150,290,10
|
||||
END
|
||||
|
||||
IDD_PREFERENCES_TAB_ACTIONS DIALOGEX 0, 0, 320, 210
|
||||
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "VeraCrypt Background Task",IDT_TASKBAR_ICON,7,7,304,40
|
||||
CONTROL "Enabled",IDC_PREF_BKG_TASK_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,20,111,10
|
||||
CONTROL "Exit when there are no mounted volumes",IDC_CLOSE_BKG_TASK_WHEN_NOVOL,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,133,20,170,10
|
||||
|
||||
GROUPBOX "Actions to perform upon logon to Windows",IDT_LOGON,7,53,304,40
|
||||
CONTROL "Start VeraCrypt Background Task",IDC_PREF_LOGON_START,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,66,126,10
|
||||
CONTROL "Mount all device-hosted VeraCrypt volumes",IDC_PREF_LOGON_MOUNT_DEVICES,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,143,66,160,10
|
||||
|
||||
GROUPBOX "Auto-Unmount",IDT_AUTO_UNMOUNT,7,99,304,90
|
||||
LTEXT "Unmount all when:",IDT_AUTO_UNMOUNT_ON,14,112,71,20
|
||||
CONTROL "User logs off",IDC_PREF_UNMOUNT_LOGOFF,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,85,112,100,11
|
||||
CONTROL "User session locked",IDC_PREF_UNMOUNT_SESSION_LOCKED,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,190,112,115,11
|
||||
CONTROL "Screen saver is launched",IDC_PREF_UNMOUNT_SCREENSAVER,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,85,126,100,10
|
||||
CONTROL "Entering power saving mode",IDC_PREF_UNMOUNT_POWERSAVING,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,190,126,115,11
|
||||
CONTROL "Auto-unmount volume after no data has been read/written to it for",IDC_PREF_UNMOUNT_INACTIVE,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,142,230,11
|
||||
EDITTEXT IDC_PREF_UNMOUNT_INACTIVE_TIME,245,141,27,12,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT
|
||||
LTEXT "minutes",IDT_MINUTES,276,143,39,10
|
||||
CONTROL "Force auto-unmount even if volume contains open files or directories",IDC_PREF_FORCE_AUTO_UNMOUNT,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,158,290,10
|
||||
END
|
||||
|
||||
IDD_PREFERENCES_TAB_PASSWORD DIALOGEX 0, 0, 320, 210
|
||||
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "Password Cache",IDT_PW_CACHE_OPTIONS,7,7,304,80
|
||||
CONTROL "Cache passwords in driver memory",IDC_PREF_CACHE_PASSWORDS,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,271,146,11
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,20,146,11
|
||||
CONTROL "Wipe cached passwords on exit",IDC_PREF_WIPE_CACHE_ON_EXIT,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,162,271,165,11
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,165,20,140,11
|
||||
CONTROL "Temporarily cache password during ""Mount Favorite Volumes"" operations",IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,285,294,11
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,36,294,11
|
||||
CONTROL "Wipe cached passwords on auto-unmount",IDC_PREF_WIPE_CACHE_ON_AUTOUNMOUNT,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,299,296,11
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,52,294,11
|
||||
CONTROL "Include PIM when caching a password",IDC_PREF_CACHE_PIM,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,313,296,10
|
||||
PUSHBUTTON "More Settings...",IDC_MORE_SETTINGS,5,331,85,14
|
||||
DEFPUSHBUTTON "OK",IDOK,225,331,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,281,331,50,14
|
||||
GROUPBOX "Default Mount Options",IDT_DEFAULT_MOUNT_OPTIONS,4,3,328,26
|
||||
GROUPBOX "VeraCrypt Background Task",IDT_TASKBAR_ICON,4,33,328,26
|
||||
GROUPBOX "Actions to perform upon logon to Windows",IDT_LOGON,4,63,328,28
|
||||
GROUPBOX "Auto-Unmount",IDT_AUTO_UNMOUNT,4,94,328,62
|
||||
LTEXT "Unmount all when:",IDT_AUTO_UNMOUNT_ON,9,104,71,20
|
||||
LTEXT "minutes",IDT_MINUTES,289,129,39,10
|
||||
GROUPBOX "Windows",IDT_WINDOWS_RELATED_SETTING,4,160,328,97
|
||||
GROUPBOX "Password Cache",IDT_PW_CACHE_OPTIONS,4,260,328,68
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,68,294,10
|
||||
END
|
||||
|
||||
IDD_VOLUME_PROPERTIES DIALOGEX 60, 30, 284, 224
|
||||
|
||||
@@ -22,6 +22,9 @@
|
||||
#define IDD_FAVORITE_VOLUMES 117
|
||||
#define IDD_DEFAULT_MOUNT_PARAMETERS 118
|
||||
#define IDD_EFI_SYSENC_SETTINGS 119
|
||||
#define IDD_PREFERENCES_TAB_GENERAL 120
|
||||
#define IDD_PREFERENCES_TAB_ACTIONS 121
|
||||
#define IDD_PREFERENCES_TAB_PASSWORD 122
|
||||
#define IDC_PREF_MOUNT_READONLY 1000
|
||||
#define IDC_PREF_MOUNT_REMOVABLE 1001
|
||||
#define IDC_VERIFY 1002
|
||||
@@ -201,6 +204,7 @@
|
||||
#define IDC_ENABLE_EMV_SUPPORT 1179
|
||||
#define IDT_EMV_OPTIONS 1180
|
||||
#define IDC_DISABLE_SCREEN_PROTECTION 1181
|
||||
#define IDC_PREF_TAB 1182
|
||||
#define IDM_HELP 40001
|
||||
#define IDM_ABOUT 40002
|
||||
#define IDM_UNMOUNT_VOLUME 40003
|
||||
@@ -276,9 +280,9 @@
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NO_MFC 1
|
||||
#define _APS_NEXT_RESOURCE_VALUE 120
|
||||
#define _APS_NEXT_RESOURCE_VALUE 123
|
||||
#define _APS_NEXT_COMMAND_VALUE 40070
|
||||
#define _APS_NEXT_CONTROL_VALUE 1182
|
||||
#define _APS_NEXT_CONTROL_VALUE 1183
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user