|
|
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.