|
|
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: #ifndef TC_HEADER_Main_UserInterface
10: #define TC_HEADER_Main_UserInterface
11:
12: #include "System.h"
13: #include "Core/Core.h"
14: #include "Main.h"
15: #include "CommandLineInterface.h"
16: #include "FavoriteVolume.h"
17: #include "LanguageStrings.h"
18: #include "UserPreferences.h"
19: #include "UserInterfaceException.h"
20: #include "UserInterfaceType.h"
21:
22: namespace TrueCrypt
23: {
24: class UserInterface : public wxApp
25: {
26: public:
27: virtual ~UserInterface ();
28:
29: virtual bool AskYesNo (const wxString &message, bool defaultYes = false, bool warning = false) const = 0;
30: virtual void BeginBusyState () const = 0;
31: virtual void ChangePassword (shared_ptr <VolumePath> volumePath = shared_ptr <VolumePath>(), shared_ptr <VolumePassword> password = shared_ptr <VolumePassword>(), shared_ptr <KeyfileList> keyfiles = shared_ptr <KeyfileList>(), shared_ptr <VolumePassword> newPassword = shared_ptr <VolumePassword>(), shared_ptr <KeyfileList> newKeyfiles = shared_ptr <KeyfileList>()) const = 0;
32: virtual void CloseExplorerWindows (shared_ptr <VolumeInfo> mountedVolume) const;
33: virtual void DismountAllVolumes (bool ignoreOpenFiles = false, bool interactive = true) const;
34: virtual void DismountVolume (shared_ptr <VolumeInfo> volume, bool ignoreOpenFiles = false, bool interactive = true) const;
35: virtual void DismountVolumes (VolumeInfoList volumes, bool ignoreOpenFiles = false, bool interactive = true) const;
36: virtual void DoShowError (const wxString &message) const = 0;
37: virtual void DoShowInfo (const wxString &message) const = 0;
38: virtual void DoShowString (const wxString &str) const = 0;
39: virtual void DoShowWarning (const wxString &message) const = 0;
40: virtual void EndBusyState () const = 0;
41: virtual wxString ExceptionToMessage (const exception &ex) const;
42: virtual shared_ptr <GetStringFunctor> GetAdminPasswordRequestHandler () = 0;
43: virtual const UserPreferences &GetPreferences () const { return Preferences; }
44: virtual void Init ();
45: virtual void ListMountedVolumes (const VolumeInfoList &volumes) const;
46: virtual shared_ptr <VolumeInfo> MountVolume (MountOptions &options) const;
47: virtual VolumeInfoList MountAllDeviceHostedVolumes (MountOptions &options) const;
48: virtual VolumeInfoList MountAllFavoriteVolumes (MountOptions &options) const;
49: virtual void OpenExplorerWindow (const DirectoryPath &path);
50: virtual void SetPreferences (const UserPreferences &preferences);
51: virtual void ShowError (const exception &ex) const;
52: virtual void ShowError (char *langStringId) const { DoShowError (LangString[langStringId]); }
53: virtual void ShowError (const wxString &message) const { DoShowError (message); }
54: virtual void ShowInfo (const exception &ex) const { DoShowInfo (ExceptionToMessage (ex)); }
55: virtual void ShowInfo (char *langStringId) const { DoShowInfo (LangString[langStringId]); }
56: virtual void ShowInfo (const wxString &message) const { DoShowInfo (message); }
57: virtual void ShowWarning (const exception &ex) const { DoShowWarning (ExceptionToMessage (ex)); }
58: virtual void ShowWarning (char *langStringId) const { DoShowWarning (LangString[langStringId]); }
59: virtual void ShowString (const wxString &str) const { DoShowString (str); }
60: virtual void ShowWarning (const wxString &message) const { DoShowWarning (message); }
61: virtual wxString SizeToString (uint64 size) const;
62: virtual wxString SpeedToString (uint64 speed) const;
63: virtual void Test () const;
64: virtual bool VolumeHasUnrecommendedExtension (const VolumePath &path) const;
65: virtual void Yield () const = 0;
66: virtual wxDateTime VolumeTimeToDateTime (VolumeTime volumeTime) const { return wxDateTime ((time_t) (volumeTime / 1000ULL / 1000 / 10 - 134774ULL * 24 * 3600)); }
67: virtual wxString VolumeTimeToString (VolumeTime volumeTime) const;
68: virtual wxString VolumeTypeToString (VolumeType::Enum type, VolumeProtection::Enum protection) const;
69:
70: Event PreferencesUpdatedEvent;
71:
72: struct BusyScope
73: {
74: BusyScope (const UserInterface *userInterface) : UI (userInterface) { UI->BeginBusyState (); }
75: ~BusyScope () { UI->EndBusyState (); }
76: const UserInterface *UI;
77: };
78:
79: protected:
80: UserInterface ();
81: virtual bool OnExceptionInMainLoop () { throw; }
82: virtual void OnUnhandledException ();
83: virtual void OnVolumeMounted (EventArgs &args);
84: virtual void OnWarning (EventArgs &args);
85: virtual bool ProcessCommandLine ();
86:
87: virtual wxString ExceptionToString (const Exception &ex) const;
88: virtual wxString ExceptionTypeToString (const std::type_info &ex) const;
89:
90: UserPreferences Preferences;
91: UserInterfaceType::Enum InterfaceType;
92:
93: private:
94: UserInterface (const UserInterface &);
95: UserInterface &operator= (const UserInterface &);
96: };
97: }
98:
99: #endif // TC_HEADER_Main_UserInterface
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.