|
|
1.1 root 1: /*
2: Copyright (c) 2008 TrueCrypt Foundation. All rights reserved.
3:
4: Governed by the TrueCrypt License 2.4 the full text of which is contained
5: in the file License.txt included in TrueCrypt binary and source code
6: distribution packages.
7: */
8:
9: #include "System.h"
10: #include "Main/Main.h"
11: #include "Main/GraphicUserInterface.h"
12: #include "VolumePropertiesDialog.h"
13:
14: namespace TrueCrypt
15: {
16: VolumePropertiesDialog::VolumePropertiesDialog (wxWindow* parent, const VolumeInfo &volumeInfo)
17: : VolumePropertiesDialogBase (parent)
18: {
19: list <int> colPermilles;
20:
21: PropertiesListCtrl->InsertColumn (0, LangString["PROPERTY"], wxLIST_FORMAT_LEFT, 208);
22: colPermilles.push_back (500);
23: PropertiesListCtrl->InsertColumn (1, LangString["VALUE"], wxLIST_FORMAT_LEFT, 192);
24: colPermilles.push_back (500);
25:
26: Gui->SetListCtrlWidth (PropertiesListCtrl, 70, false);
27: Gui->SetListCtrlHeight (PropertiesListCtrl, 17);
28: Gui->SetListCtrlColumnWidths (PropertiesListCtrl, colPermilles, false);
29:
30: AppendToList ("LOCATION", wstring (volumeInfo.Path));
31: #ifndef TC_WINDOWS
32: AppendToList ("VIRTUAL_DEVICE", wstring (volumeInfo.VirtualDevice));
33: #endif
34: AppendToList ("SIZE", Gui->SizeToString (volumeInfo.Size));
35: AppendToList ("TYPE", Gui->VolumeTypeToString (volumeInfo.Type, volumeInfo.Protection));
36: AppendToList ("READ_ONLY", LangString [volumeInfo.Protection == VolumeProtection::ReadOnly ? "UISTR_YES" : "UISTR_NO"]);
37:
38: wxString protection;
39: if (volumeInfo.Type == VolumeType::Hidden)
40: protection = LangString["N_A_UISTR"];
41: else if (volumeInfo.HiddenVolumeProtectionTriggered)
42: protection = LangString["HID_VOL_DAMAGE_PREVENTED"];
43: else
44: protection = LangString [volumeInfo.Protection == VolumeProtection::HiddenVolumeReadOnly ? "UISTR_YES" : "UISTR_NO"];
45:
46: AppendToList ("HIDDEN_VOL_PROTECTION", protection);
47: AppendToList ("ENCRYPTION_ALGORITHM", volumeInfo.EncryptionAlgorithmName);
48: AppendToList ("KEY_SIZE", StringFormatter (L"{0} {1}", volumeInfo.EncryptionAlgorithmKeySize * 8, LangString ["BITS"]));
49:
50: wstringstream blockSize;
51: blockSize << volumeInfo.EncryptionAlgorithmBlockSize * 8;
52: if (volumeInfo.EncryptionAlgorithmBlockSize != volumeInfo.EncryptionAlgorithmMinBlockSize)
53: blockSize << L"/" << volumeInfo.EncryptionAlgorithmMinBlockSize * 8;
54:
55: AppendToList ("BLOCK_SIZE", blockSize.str() + L" " + LangString ["BITS"]);
56: AppendToList ("MODE_OF_OPERATION", volumeInfo.EncryptionModeName);
57: AppendToList ("PKCS5_PRF", volumeInfo.Pkcs5PrfName);
58: AppendToList ("PKCS5_ITERATIONS", StringConverter::FromNumber (volumeInfo.Pkcs5IterationCount));
59:
60: AppendToList ("VOLUME_CREATE_DATE", Gui->VolumeTimeToString (volumeInfo.VolumeCreationTime));
61: AppendToList ("VOLUME_HEADER_DATE", Gui->VolumeTimeToString (volumeInfo.HeaderCreationTime));
62:
63: AppendToList ("TOTAL_DATA_READ", Gui->SizeToString (volumeInfo.TotalDataRead));
64: AppendToList ("TOTAL_DATA_WRITTEN", Gui->SizeToString (volumeInfo.TotalDataWritten));
65:
66: Layout();
67: Fit();
68: Center();
69:
70: StdButtonsOK->SetDefault();
71: }
72:
73: void VolumePropertiesDialog::AppendToList (const string &name, const wxString &value)
74: {
75: vector <wstring> fields (PropertiesListCtrl->GetColumnCount());
76:
77: fields[0] = LangString[name];
78: fields[1] = value;
79:
80: Gui->AppendToListCtrl (PropertiesListCtrl, fields);
81: }
82: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.