Annotation of truecrypt/main/forms/mainframe.h, revision 1.1.1.1

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_Forms_MainFrame
                     10: #define TC_HEADER_Main_Forms_MainFrame
                     11: 
                     12: #include "Forms.h"
                     13: #include "ChangePasswordDialog.h"
                     14: 
                     15: namespace TrueCrypt
                     16: {
                     17:        struct FavoriteVolume;
                     18: 
                     19:        class MainFrame : public MainFrameBase
                     20:        {
                     21:        public:
                     22:                MainFrame (wxWindow* parent);
                     23:                virtual ~MainFrame ();
                     24: 
                     25:                void OnDeviceChange (const DirectoryPath &mountPoint = DirectoryPath());
                     26: 
                     27:        protected:
                     28:                enum
                     29:                {
                     30:                        ColumnSlot = 0,
                     31:                        ColumnPath,
                     32:                        ColumnSize,
                     33: #ifdef TC_WINDOWS
                     34:                        ColumnEA,
                     35: #else
                     36:                        ColumnMountPoint,
                     37: #endif
                     38:                        ColumnType
                     39:                };
                     40: 
                     41:                void AddToFavorites (const VolumeInfoList &volumes);
                     42:                bool CanExit () const;
                     43:                void ChangePassword (ChangePasswordDialog::Mode::Enum mode = ChangePasswordDialog::Mode::ChangePasswordAndKeyfiles);
                     44:                void CheckFilesystem (bool repair = false);
                     45:                bool CheckVolumePathNotEmpty () const;
                     46:                void DismountVolume (shared_ptr <VolumeInfo> volume = shared_ptr <VolumeInfo> ());
                     47:                const UserPreferences &GetPreferences () const { return Gui->GetPreferences(); }
                     48:                shared_ptr <VolumeInfo> GetSelectedVolume () const;
                     49:                shared_ptr <VolumePath> GetSelectedVolumePath () const { return make_shared <VolumePath> (wstring (VolumePathComboBox->GetValue())); }
                     50:                void InitControls ();
                     51:                void InitEvents ();
                     52:                void InitMessageFilter ();
                     53:                void InitPreferences ();
                     54:                void InitTaskBarIcon ();
                     55:                bool IsFreeSlotSelected () const { return SlotListCtrl->GetSelectedItemCount() == 1 && Gui->GetListCtrlSubItemText (SlotListCtrl, SelectedItemIndex, ColumnPath).empty(); }
                     56:                bool IsMountedSlotSelected () const { return SlotListCtrl->GetSelectedItemCount() == 1 && !Gui->GetListCtrlSubItemText (SlotListCtrl, SelectedItemIndex, ColumnPath).empty(); }
                     57:                void LoadFavoriteVolumes ();
                     58:                void LoadPreferences ();
                     59:                void MountAllDevices ();
                     60:                void MountAllFavorites ();
                     61:                void MountVolume ();
                     62:                void OnAboutMenuItemSelected (wxCommandEvent& event);
                     63:                void OnActivate (wxActivateEvent& event);
                     64:                void OnAddAllMountedToFavoritesMenuItemSelected (wxCommandEvent& event);
                     65:                void OnAddToFavoritesMenuItemSelected (wxCommandEvent& event);
                     66:                void OnBackupVolumeHeadersMenuItemSelected (wxCommandEvent& event);
                     67:                void OnBeginnersTutorialMenuItemSelected (wxCommandEvent& event) { Gui->OpenHomepageLink (this, L"tutorial"); }
                     68:                void OnChangeKeyfilesMenuItemSelected (wxCommandEvent& event) { ChangePassword (ChangePasswordDialog::Mode::ChangeKeyfiles); }
                     69:                void OnChangePasswordMenuItemSelected (wxCommandEvent& event) { ChangePassword (); }
                     70:                void OnChangePkcs5PrfMenuItemSelected (wxCommandEvent& event) { ChangePassword (ChangePasswordDialog::Mode::ChangePkcs5Prf); }
                     71:                void OnCheckFilesystemMenuItemSelected( wxCommandEvent& event ) { CheckFilesystem (); }
                     72:                void OnClearSlotSelectionMenuItemSelected (wxCommandEvent& event);
                     73:                void OnClose (wxCloseEvent& event);
                     74:                void OnContactMenuItemSelected (wxCommandEvent& event) { Gui->OpenHomepageLink (this, L"contact"); }
                     75:                void OnCreateVolumeButtonClick (wxCommandEvent& event);
                     76:                void OnDefaultKeyfilesMenuItemSelected (wxCommandEvent& event);
                     77:                void OnDismountAllButtonClick (wxCommandEvent& event);
                     78:                void OnDismountVolumeMenuItemSelected (wxCommandEvent& event) { DismountVolume(); }
                     79:                void OnDonationsMenuItemSelected (wxCommandEvent& event) { Gui->OpenHomepageLink (this, L"donations"); }
                     80:                void OnDownloadsMenuItemSelected (wxCommandEvent& event) { Gui->OpenHomepageLink (this, L"downloads"); }
                     81:                void OnEncryptionTestMenuItemSelected (wxCommandEvent& event);
                     82:                void OnExitButtonClick (wxCommandEvent& event);
                     83:                void OnFavoriteVolumeMenuItemSelected (wxCommandEvent& event);
                     84:                void OnFaqMenuItemSelected (wxCommandEvent& event) { Gui->OpenHomepageLink (this, L"faq"); }
                     85:                void OnForumsMenuItemSelected (wxCommandEvent& event) { Gui->OpenHomepageLink (this, L"forum"); }
                     86:                void OnHiddenVolumeProtectionTriggered (shared_ptr <VolumeInfo> protectedVolume);
                     87:                void OnHotkey (wxKeyEvent& event);
                     88:                void OnHotkeysMenuItemSelected (wxCommandEvent& event);
                     89:                void OnLegalNoticesMenuItemSelected (wxCommandEvent& event);
                     90:                void OnListChanged ();
                     91:                void OnListItemActivated (wxListEvent& event);
                     92:                void OnListItemDeleted (long itemIndex);
                     93:                void OnListItemDeselected (wxListEvent& event);
                     94:                void OnListItemInserted (long itemIndex);
                     95:                void OnListItemRightClick (wxListEvent& event);
                     96:                void OnListItemSelected (wxListEvent& event);
                     97:                void OnListItemSelectionChanged ();
                     98:                void OnLogoBitmapClick (wxMouseEvent &event) { wxCommandEvent ev; OnAboutMenuItemSelected (ev); }
                     99:                void OnMountAllDevicesButtonClick (wxCommandEvent& event);
                    100:                void OnMountAllFavoritesMenuItemSelected (wxCommandEvent& event);
                    101:                void OnMountVolumeMenuItemSelected (wxCommandEvent& event) { MountVolume(); }
                    102:                void OnNewsMenuItemSelected (wxCommandEvent& event) { Gui->OpenHomepageLink (this, L"news"); }
                    103:                void OnNoHistoryCheckBoxClick (wxCommandEvent& event);
                    104:                void OnOnlineHelpMenuItemSelected (wxCommandEvent& event) { Gui->OpenOnlineHelp (this); }
                    105:                void OnOpenVolumeMenuItemSelected (wxCommandEvent& event) { OpenSelectedVolume(); }
                    106:                void OnOrganizeFavoritesMenuItemSelected (wxCommandEvent& event);
                    107:                void OnPreferencesMenuItemSelected (wxCommandEvent& event);
                    108:                void OnPreferencesUpdated (EventArgs &args);
                    109:                void OnRemoveKeyfilesMenuItemSelected (wxCommandEvent& event) { ChangePassword (ChangePasswordDialog::Mode::RemoveAllKeyfiles); }
                    110:                void OnRepairFilesystemMenuItemSelected( wxCommandEvent& event ) { CheckFilesystem (true); }
                    111:                void OnReportBugMenuItemSelected (wxCommandEvent& event) { Gui->OpenHomepageLink (this, L"bugreport"); }
                    112:                void OnRestoreVolumeHeaderMenuItemSelected (wxCommandEvent& event);
                    113:                void OnSelectDeviceButtonClick (wxCommandEvent& event);
                    114:                void OnSelectFileButtonClick (wxCommandEvent& event);
                    115:                void OnTimer ();
                    116:                void OnTravelerDiskWizardMenuItemSelected (wxCommandEvent& event);
                    117:                void OnVersionHistoryMenuItemSelected (wxCommandEvent& event) { Gui->OpenHomepageLink (this, L"history"); }
                    118:                void OnVolumePropertiesButtonClick (wxCommandEvent& event);
                    119:                void OnVolumeToolsButtonClick (wxCommandEvent& event);
                    120:                void OnVolumeButtonClick (wxCommandEvent& event);
                    121:                void OnVolumeDismounted (EventArgs &args) { UpdateVolumeList(); }
                    122:                void OnVolumeMounted (EventArgs &args) { UpdateVolumeList(); }
                    123:                void OnUserGuideMenuItemSelected (wxCommandEvent& event) { Gui->OpenUserGuide (this); }
                    124:                void OnWebsiteMenuItemSelected (wxCommandEvent& event) { Gui->OpenHomepageLink (this, L"website"); }
                    125:                void OnWipeCacheButtonClick (wxCommandEvent& event);
                    126:                void OrganizeFavorites (const FavoriteVolumeList &favorites, size_t newItemCount = 0);
                    127:                void OpenSelectedVolume () const;
                    128:                void SavePreferences () const;
                    129:                long SlotNumberToItemIndex (uint32 slotNumber) const;
                    130:                void SetVolumePath (const VolumePath &path) { VolumePathComboBox->SetValue (wstring (path)); }
                    131:                void ShowTaskBarIcon (bool show = true);
                    132:                void UpdateControls ();
                    133:                void UpdateVolumeList ();
                    134:                void UpdateWipeCacheButton ();
                    135:                void WipeCache ();
                    136:        
                    137:                struct VolumeActivityMapEntry
                    138:                {
                    139:                        VolumeActivityMapEntry () { }
                    140: 
                    141:                        VolumeActivityMapEntry (const VolumeInfo &volume, wxLongLong lastActivityTime)
                    142:                                : LastActivityTime (lastActivityTime),
                    143:                                SerialInstanceNumber (volume.SerialInstanceNumber),
                    144:                                TotalDataRead (volume.TotalDataRead),
                    145:                                TotalDataWritten (volume.TotalDataWritten)
                    146:                        { }
                    147: 
                    148:                        wxLongLong LastActivityTime;
                    149:                        uint64 SerialInstanceNumber;
                    150:                        uint64 TotalDataRead;
                    151:                        uint64 TotalDataWritten;
                    152:                };
                    153: 
                    154:                map <int, FavoriteVolume> FavoriteVolumesMenuMap;
                    155:                VolumeInfoList MountedVolumes;
                    156:                auto_ptr <wxTaskBarIcon> mTaskBarIcon;
                    157:                auto_ptr <wxTimer> mTimer;
                    158:                long SelectedItemIndex;
                    159:                VolumeSlotNumber SelectedSlotNumber;
                    160:                map <wstring, VolumeActivityMapEntry> VolumeActivityMap;
                    161:        };
                    162: }
                    163: 
                    164: #endif // TC_HEADER_Main_Forms_MainFrame

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.