VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Main/Forms/Forms.h
blob: 9e8a02b0ee65ebd2827b8319aa494f37e6edeba4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
<
/*
 Derived from source code of TrueCrypt 7.1a, which is
 Copyright (c) 2008-2012 TrueCrypt Developers Association and which is governed
 by the TrueCrypt License 3.0.

 Modifications and additions to the original source code (contained in this file)
 and all other portions of this file are Copyright (c) 2013-2017 IDRIX
 and are governed by the Apache License 2.0 the full text of which is
 contained in the file License.txt included in VeraCrypt binary and source
 code distribution packages.
*/

#ifndef TC_HEADER_Main_Forms_MainFrame
#define TC_HEADER_Main_Forms_MainFrame

#ifdef HAVE_INDICATORS
#define GSocket GlibGSocket
#include <libayatana-appindicator/app-indicator.h>
#undef GSocket
#endif

#include "Forms.h"
#include "ChangePasswordDialog.h"
#ifdef TC_MACOSX
#include <wx/display.h>
#endif

namespace VeraCrypt
{
	struct FavoriteVolume;

	DECLARE_LOCAL_EVENT_TYPE(wxEVT_COMMAND_UPDATE_VOLUME_LIST, -1);
	DECLARE_LOCAL_EVENT_TYPE(wxEVT_COMMAND_PREF_UPDATED, -1);
	DECLARE_LOCAL_EVENT_TYPE(wxEVT_COMMAND_OPEN_VOLUME_REQUEST, -1);

	class MainFrame : public MainFrameBase
	{
	public:
		MainFrame (wxWindow* parent);
		virtual ~MainFrame ();

		void OnDeviceChange (const DirectoryPath &mountPoint = DirectoryPath());
#ifdef TC_UNIX
		static FilePath GetShowRequestFifoPath () { return Application::GetConfigFilePath (L".show-request-queue", true); }
#endif

		void MountAllFavorites ();

#ifdef HAVE_INDICATORS
		AppIndicator *indicator;
		GtkWidget *indicator_item_showhide;
		GtkWidget *indicator_item_mountfavorites;
		GtkWidget *indicator_item_dismountall;
		GtkWidget *indicator_item_prefs;
		GtkWidget *indicator_item_exit;
		void SetBusy (bool busy);

#endif
	protected:
		enum
		{
			ColumnSlot = 0,
			ColumnPath,
			ColumnSize,
#ifdef TC_WINDOWS
			ColumnEA,
#else
			ColumnMountPoint,
#endif
			ColumnType
		};

		void AddToFavorites (const VolumeInfoList &volumes);
		bool CanExit () const;
		void ChangePassword (ChangePasswordDialog::Mode::Enum mode = ChangePasswordDialog::Mode::ChangePasswordAndKeyfiles);
		void CheckFilesystem (bool repair = false);
		bool CheckVolumePathNotEmpty () const;
		void DismountVolume (shared_ptr <VolumeInfo> volume = shared_ptr <VolumeInfo> ());
		const UserPreferences &GetPreferences () const { return Gui->GetPreferences(); }
		shared_ptr <VolumeInfo> GetSelectedVolume () const;
		shared_ptr <VolumePath> GetSelectedVolumePath () const { return make_shared <VolumePath> (wstring (VolumePathComboBox->GetValue())); }
		void InitControls ();
		void InitEvents ();
		void InitMessageFilter ();
		void InitPreferences ();
		void InitTaskBarIcon ();
		bool IsFreeSlotSelected () const { return SlotListCtrl->GetSelectedItemCount() == 1 && Gui->GetListCtrlSubItemText (SlotListCtrl, SelectedItemIndex, ColumnPath).empty(); }
		bool IsMountedSlotSelected () const { return SlotListCtrl->GetSelectedItemCount() == 1 && !Gui->GetListCtrlSubItemText (SlotListCtrl, SelectedItemIndex, ColumnPath).empty(); }
		void LoadFavoriteVolumes ();
		void LoadPreferences ();
		void MountAllDevices ();
		void MountVolume ();
		void OnAboutMenuItemSelected (wxCommandEvent& event);
		void OnQuit(wxCommandEvent& event) { Close(true); }
		void OnActivate (wxActivateEvent& event);
		void OnAddAllMountedToFavoritesMenuItemSelected (wxCommandEvent& event);
		void OnAddToFavoritesMenuItemSelected (wxCommandEvent& event);
		void OnBackupVolumeHeadersMenuItemSelected (wxCommandEvent& event);
		void OnBeginnersTutorialMenuItemSelected (wxCommandEvent& event) { Gui->OpenHomepageLink (this, L"tutorial"); }
		void OnBenchmarkMenuItemSelected (wxCommandEvent& event);
		void OnChangeKeyfilesMenuItemSelected (wxCommandEvent& event) { ChangePassword (ChangePasswordDialog::Mode::ChangeKeyfiles); }
		void OnChangePasswordMenuItemSelected (wxCommandEvent& event) { ChangePassword (); }
		void OnChangePkcs5PrfMenuItemSelected (wxCommandEvent& event) { ChangePassword (ChangePasswordDialog::Mode::ChangePkcs5Prf); }
		void OnCheckFilesystemMenuItemSelected( wxCommandEvent& event ) { CheckFilesystem (); }
		void OnClearSlotSelectionMenuItemSelected (wxCommandEvent& event);
		void OnClose (wxCloseEvent& event);
		void OnCloseAllSecurityTokenSessionsMenuItemSelected (wxCommandEvent& event);
		void OnDonateMenuItemSelected (wxCommandEvent& event) { Gui->OpenHomepageLink (this, L"donate"); }
		void OnContactMenuItemSelected (wxCommandEvent& event) { Gui->OpenHomepageLink (this, L"contact"); }
		void OnCreateKeyfileMenuItemSelected (wxCommandEvent& event)
		{
#ifdef TC_MACOSX
			if (Gui->IsInBackgroundMode())
				Gui->SetBackgroundMode (false);
#endif
			Gui->CreateKeyfile();
		}
		void OnCreateVolumeButtonClick (wxCommandEvent& event);
		void OnDefaultKeyfilesMenuItemSelected (wxCommandEvent& event);
		void OnDefaultMountParametersMenuItemSelected( wxCommandEvent& event );
		void OnDismountAllButtonClick (wxCommandEvent& event);
		void OnDismountVolumeMenuItemSelected (wxCommandEvent& event) { DismountVolume(); }
		void OnDownloadsMenuItemSelected (wxCommandEvent& event) { Gui->OpenHomepageLink (this, L"downloads"); }
		void OnEncryptionTestMenuItemSelected (wxCommandEvent& event);
		void OnExitButtonClick (wxCommandEvent& event);
		void OnFavoriteVolumeMenuItemSelected (wxCommandEvent& event);
		void OnFaqMenuItemSelected (wxCommandEvent& event) { Gui->OpenHomepageLink (this, L"faq"); }
		void OnHiddenVolumeProtectionTriggered (shared_ptr <VolumeInfo> protectedVolume);
		void OnHotkey (wxKeyEvent& event);
		void OnHotkeysMenuItemSelected (wxCommandEvent& event);
		void OnLegalNoticesMenuItemSelected (wxCommandEvent& event);
		void OnListChanged ();
		void OnListItemActivated (wxListEvent& event);
		void OnListItemDeleted (long itemIndex);
		void OnListItemDeselected (wxListEvent& event);
		void OnListItemInserted (long itemIndex);
		void OnListItemRightClick (wxListEvent& event);
		void OnListItemSelected
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Jun  5 2014)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////

#ifndef __FORMS_H__
#define __FORMS_H__

#include <wx/artprov.h>
#include <wx/xrc/xmlres.h>
#include <wx/intl.h>
class WizardPage;

#include "WizardPage.h"
#include <wx/string.h>
#include <wx/bitmap.h>
#include <wx/image.h>
#include <wx/icon.h>
#include <wx/menu.h>
#include <wx/gdicmn.h>
#include <wx/font.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/listctrl.h>
#include <wx/sizer.h>
#include <wx/statbox.h>
#include <wx/button.h>
#include <wx/statbmp.h>
#include <wx/combobox.h>
#include <wx/checkbox.h>
#include <wx/gbsizer.h>
#include <wx/panel.h>
#include <wx/frame.h>
#include <wx/stattext.h>
#include <wx/hyperlink.h>
#include <wx/statline.h>
#include <wx/textctrl.h>
#include <wx/dialog.h>
#include <wx/choice.h>
#include <wx/spinctrl.h>
#include <wx/notebook.h>
#include <wx/gauge.h>

///////////////////////////////////////////////////////////////////////////

namespace VeraCrypt
{
	///////////////////////////////////////////////////////////////////////////////
	/// Class MainFrameBase
	///////////////////////////////////////////////////////////////////////////////
	class MainFrameBase : public wxFrame 
	{
		private:
		
		protected:
			wxMenuBar* MainMenuBar;
			wxMenu* VolumesMenu;
			wxMenuItem* MountVolumeMenuItem;
			wxMenuItem* DismountVolumeMenuItem;
			wxMenuItem* DismountAllMenuItem;
			wxMenuItem* VolumePropertiesMenuItem;
			wxMenu* FavoritesMenu;
			wxMenuItem* AddToFavoritesMenuItem;
			wxMenuItem* AddAllMountedToFavoritesMenuItem;
			wxMenu* ToolsMenu;
			wxMenuItem* BackupVolumeHeadersMenuItem;
			wxMenuItem* RestoreVolumeHeaderMenuItem;
			wxMenuItem* WipeCachedPasswordsMenuItem;
			wxMenu* SettingsMenu;
			wxMenuItem* HotkeysMenuItem;
			wxMenuItem* PreferencesMenuItem;
			wxMenu* HelpMenu;
			wxPanel* MainPanel;
			wxListCtrl* SlotListCtrl;
			wxStaticBoxSizer* LowStaticBoxSizer;
			wxBoxSizer* HigherButtonSizer;
			wxButton* CreateVolumeButton;
			wxButton* VolumePropertiesButton;
			wxButton* WipeCacheButton;
			wxStaticBoxSizer* VolumeStaticBoxSizer;
			wxGridBagSizer* VolumeGridBagSizer;
			wxStaticBitmap* LogoBitmap;
			wxComboBox* VolumePathComboBox;
			wxButton* SelectFileButton;
			wxCheckBox* NoHistoryCheckBox;
			wxButton* VolumeToolsButton;
			wxButton* SelectDeviceButton;
			wxButton* VolumeButton;
			wxButton* MountAllDevicesButton;
			wxButton* DismountAllButton;
			wxButton* ExitButton;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnActivate( wxActivateEvent& event ) { event.Skip(); }
			virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
			virtual void OnCreateVolumeButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnMountVolumeMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnMountAllDevicesButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnDismountVolumeMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnDismountAllButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnChangePasswordMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnChangePkcs5PrfMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnChangeKeyfilesMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnRemoveKeyfilesMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnVolumePropertiesButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnAddToFavoritesMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnAddAllMountedToFavoritesMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnOrganizeFavoritesMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnMountAllFavoritesMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnBenchmarkMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnEncryptionTestMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnBackupVolumeHeadersMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnRestoreVolumeHeaderMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnCreateKeyfileMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnManageSecurityTokenKeyfilesMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnCloseAllSecurityTokenSessionsMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnWipeCacheButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnHotkeysMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnDefaultKeyfilesMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnSecurityTokenPreferencesMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnPreferencesMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnUserGuideMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnOnlineHelpMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnBeginnersTutorialMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnFaqMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnWebsiteMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnDownloadsMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnNewsMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnVersionHistoryMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnDonateMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnContactMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnLegalNoticesMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnAboutMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnListItemActivated( wxListEvent& event ) { event.Skip(); }
			virtual void OnListItemDeselected( wxListEvent& event ) { event.Skip(); }
			virtual void OnListItemRightClick( wxListEvent& event ) { event.Skip(); }
			virtual void OnListItemSelected( wxListEvent& event ) { event.Skip(); }
			virtual void OnLogoBitmapClick( wxMouseEvent& event ) { event.Skip(); }
			virtual void OnSelectFileButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnNoHistoryCheckBoxClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnVolumeToolsButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnSelectDeviceButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnVolumeButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnExitButtonClick( wxCommandEvent& event ) { event.Skip(); }
			
		
		public:
			
			MainFrameBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("VeraCrypt"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxCAPTION|wxCLOSE_BOX|wxMINIMIZE_BOX|wxSYSTEM_MENU|wxTAB_TRAVERSAL );
			
			~MainFrameBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class WizardFrameBase
	///////////////////////////////////////////////////////////////////////////////
	class WizardFrameBase : public wxFrame 
	{
		private:
		
		protected:
			wxBoxSizer* MainSizer;
			wxPanel* MainPanel;
			wxStaticBitmap* WizardBitmap;
			wxStaticText* PageTitleStaticText;
			wxBoxSizer* PageSizer;
			wxButton* HelpButton;
			wxButton* PreviousButton;
			wxButton* NextButton;
			wxButton* CancelButton;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnActivate( wxActivateEvent& event ) { event.Skip(); }
			virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
			virtual void OnMouseMotion( wxMouseEvent& event ) { event.Skip(); }
			virtual void OnHelpButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnPreviousButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnNextButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnCancelButtonClick( wxCommandEvent& event ) { event.Skip(); }
			
		
		public:
			
			WizardFrameBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxCAPTION|wxCLOSE_BOX|wxMINIMIZE_BOX|wxSYSTEM_MENU|wxTAB_TRAVERSAL );
			
			~WizardFrameBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class AboutDialogBase
	///////////////////////////////////////////////////////////////////////////////
	class AboutDialogBase : public wxDialog 
	{
		private:
		
		protected:
			wxPanel* m_panel14;
			wxStaticBitmap* LogoBitmap;
			wxStaticText* VersionStaticText;
			wxStaticText* CopyrightStaticText;
			wxHyperlinkCtrl* WebsiteHyperlink;
			wxStaticLine* m_staticline3;
			wxTextCtrl* CreditsTextCtrl;
			wxStaticLine* m_staticline4;
			wxStaticLine* m_staticline5;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnWebsiteHyperlinkClick( wxHyperlinkEvent& event ) { event.Skip(); }
			
		
		public:
			
			AboutDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE ); 
			~AboutDialogBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class BenchmarkDialogBase
	///////////////////////////////////////////////////////////////////////////////
	class BenchmarkDialogBase : public wxDialog 
	{
		private:
		
		protected:
			wxChoice* BufferSizeChoice;
			wxListCtrl* BenchmarkListCtrl;
			wxBoxSizer* RightSizer;
			wxButton* BenchmarkButton;
			wxStaticText* BenchmarkNoteStaticText;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnBenchmarkButtonClick( wxCommandEvent& event ) { event.Skip(); }
			
		
		public:
			
			BenchmarkDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("VeraCrypt - Encryption Algorithm Benchmark"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE ); 
			~BenchmarkDialogBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class ChangePasswordDialogBase
	///////////////////////////////////////////////////////////////////////////////
	class ChangePasswordDialogBase : public wxDialog 
	{
		private:
		
		protected:
			wxStaticBoxSizer* CurrentSizer;
			wxBoxSizer* CurrentPasswordPanelSizer;
			wxStaticBoxSizer* NewSizer;
			wxBoxSizer* NewPasswordPanelSizer;
			wxButton* OKButton;
			wxButton* CancelButton;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); }
			
		
		public:
			
			ChangePasswordDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE ); 
			~ChangePasswordDialogBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class DeviceSelectionDialogBase
	///////////////////////////////////////////////////////////////////////////////
	class DeviceSelectionDialogBase : public wxDialog 
	{
		private:
		
		protected:
			wxListCtrl* DeviceListCtrl;
			wxStdDialogButtonSizer* StdButtons;
			wxButton* StdButtonsOK;
			wxButton* StdButtonsCancel;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnListItemActivated( wxListEvent& event ) { event.Skip(); }
			virtual void OnListItemDeselected( wxListEvent& event ) { event.Skip(); }
			virtual void OnListItemSelected( wxListEvent& event ) { event.Skip(); }
			
		
		public:
			
			DeviceSelectionDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Select a Partition or Device"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE ); 
			~DeviceSelectionDialogBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class EncryptionTestDialogBase
	///////////////////////////////////////////////////////////////////////////////
	class EncryptionTestDialogBase : public wxDialog 
	{
		private:
		
		protected:
			wxChoice* EncryptionAlgorithmChoice;
			wxCheckBox* XtsModeCheckBox;
			wxTextCtrl* KeyTextCtrl;
			wxStaticText* KeySizeStaticText;
			wxTextCtrl* SecondaryKeyTextCtrl;
			wxTextCtrl* DataUnitNumberTextCtrl;
			wxTextCtrl* BlockNumberTextCtrl;
			wxTextCtrl* PlainTextTextCtrl;
			wxTextCtrl* CipherTextTextCtrl;
			wxButton* EncryptButton;
			wxButton* DecryptButton;
			wxButton* AutoTestAllButton;
			wxButton* ResetButton;
			wxButton* CloseButton;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnEncryptionAlgorithmSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnXtsModeCheckBoxClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnEncryptButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnDecryptButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnAutoTestAllButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnResetButtonClick( wxCommandEvent& event ) { event.Skip(); }
			
		
		public:
			
			EncryptionTestDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("VeraCrypt - Test Vectors"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE ); 
			~EncryptionTestDialogBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class FavoriteVolumesDialogBase
	///////////////////////////////////////////////////////////////////////////////
	class FavoriteVolumesDialogBase : public wxDialog 
	{
		private:
		
		protected:
			wxListCtrl* FavoritesListCtrl;
			wxButton* MoveUpButton;
			wxButton* MoveDownButton;
			wxButton* RemoveButton;
			wxButton* RemoveAllButton;
			wxButton* OKButton;
			wxButton* CancelButton;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnListItemDeselected( wxListEvent& event ) { event.Skip(); }
			virtual void OnListItemSelected( wxListEvent& event ) { event.Skip(); }
			virtual void OnMoveUpButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnMoveDownButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnRemoveButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnRemoveAllButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); }
			
		
		public:
			
			FavoriteVolumesDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Favorite Volumes"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE ); 
			~FavoriteVolumesDialogBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class KeyfilesDialogBase
	///////////////////////////////////////////////////////////////////////////////
	class KeyfilesDialogBase : public wxDialog 
	{
		private:
		
		protected:
			wxBoxSizer* UpperSizer;
			wxBoxSizer* PanelSizer;
			wxButton* OKButton;
			wxButton* CancelButton;
			wxStaticText* WarningStaticText;
			wxBoxSizer* KeyfilesNoteSizer;
			wxStaticText* KeyfilesNoteStaticText;
			wxHyperlinkCtrl* KeyfilesHyperlink;
			wxButton* CreateKeyfileButtton;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnKeyfilesHyperlinkClick( wxHyperlinkEvent& event ) { event.Skip(); }
			virtual void OnCreateKeyfileButttonClick( wxCommandEvent& event ) { event.Skip(); }
			
		
		public:
			
			KeyfilesDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Select Keyfiles"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE ); 
			~KeyfilesDialogBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class KeyfileGeneratorDialogBase
	///////////////////////////////////////////////////////////////////////////////
	class KeyfileGeneratorDialogBase : public wxDialog 
	{
		private:
		
		protected:
			wxBoxSizer* MainSizer;
			wxChoice* HashChoice;
			wxStaticText* RandomPoolStaticText;
			wxCheckBox* ShowRandomPoolCheckBox;
			wxStaticText* MouseStaticText;
			wxStaticText* m_staticText60;
			wxSpinCtrl* NumberOfKeyfiles;
			wxPanel* m_panel18;
			wxStaticText* m_staticText63;
			wxSpinCtrl* KeyfilesSize;
			wxCheckBox* RandomSizeCheckBox;
			wxStaticText* m_staticText65;
			wxTextCtrl* KeyfilesBaseName;
			wxPanel* m_panel19;
			wxButton* GenerateButton;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnMouseMotion( wxMouseEvent& event ) { event.Skip(); }
			virtual void OnHashSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnShowRandomPoolCheckBoxClicked( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnRandomSizeCheckBoxClicked( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnGenerateButtonClick( wxCommandEvent& event ) { event.Skip(); }
			
		
		public:
			
			KeyfileGeneratorDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE ); 
			~KeyfileGeneratorDialogBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class LegalNoticesDialogBase
	///////////////////////////////////////////////////////////////////////////////
	class LegalNoticesDialogBase : public wxDialog 
	{
		private:
		
		protected:
			wxTextCtrl* LegalNoticesTextCtrl;
		
		public:
			
			LegalNoticesDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("VeraCrypt - Legal Notices"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE ); 
			~LegalNoticesDialogBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class MountOptionsDialogBase
	///////////////////////////////////////////////////////////////////////////////
	class MountOptionsDialogBase : public wxDialog 
	{
		private:
		
		protected:
			wxBoxSizer* PasswordSizer;
			wxButton* OKButton;
			wxButton* CancelButton;
			wxButton* OptionsButton;
			wxPanel* OptionsPanel;
			wxStaticBoxSizer* OptionsSizer;
			wxCheckBox* ReadOnlyCheckBox;
			wxCheckBox* RemovableCheckBox;
			wxCheckBox* PartitionInSystemEncryptionScopeCheckBox;
			wxStaticBoxSizer* ProtectionSizer;
			wxCheckBox* ProtectionCheckBox;
			wxBoxSizer* ProtectionPasswordSizer;
			wxHyperlinkCtrl* ProtectionHyperlinkCtrl;
			wxBoxSizer* FilesystemSizer;
			wxPanel* m_panel8;
			wxCheckBox* NoFilesystemCheckBox;
			wxGridBagSizer* FilesystemOptionsSizer;
			wxBoxSizer* FilesystemSpacer;
			wxStaticText* MountPointTextCtrlStaticText;
			wxTextCtrl* MountPointTextCtrl;
			wxButton* MountPointButton;
			wxStaticText* FilesystemOptionsStaticText;
			wxTextCtrl* FilesystemOptionsTextCtrl;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }
			virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnOptionsButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnReadOnlyCheckBoxClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnProtectionCheckBoxClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnProtectionHyperlinkClick( wxHyperlinkEvent& event ) { event.Skip(); }
			virtual void OnNoFilesystemCheckBoxClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnMountPointButtonClick( wxCommandEvent& event ) { event.Skip(); }
			
		
		public:
			
			MountOptionsDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Enter VeraCrypt Volume Password"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE ); 
			~MountOptionsDialogBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class NewSecurityTokenKeyfileDialogBase
	///////////////////////////////////////////////////////////////////////////////
	class NewSecurityTokenKeyfileDialogBase : public wxDialog 
	{
		private:
		
		protected:
			wxChoice* SecurityTokenChoice;
			wxTextCtrl* KeyfileNameTextCtrl;
			wxStdDialogButtonSizer* StdButtons;
			wxButton* StdButtonsOK;
			wxButton* StdButtonsCancel;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnKeyfileNameChanged( wxCommandEvent& event ) { event.Skip(); }
			
		
		public:
			
			NewSecurityTokenKeyfileDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("New Security Token Keyfile Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE ); 
			~NewSecurityTokenKeyfileDialogBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class PreferencesDialogBase
	///////////////////////////////////////////////////////////////////////////////
	class PreferencesDialogBase : public wxDialog 
	{
		private:
		
		protected:
			wxNotebook* PreferencesNotebook;
			wxPanel* SecurityPage;
			wxStaticBoxSizer* AutoDismountSizer;
			wxCheckBox* DismountOnLogOffCheckBox;
			wxCheckBox* DismountOnScreenSaverCheckBox;
			wxCheckBox* DismountOnPowerSavingCheckBox;
			wxCheckBox* DismountOnInactivityCheckBox;
			wxSpinCtrl* DismountOnInactivitySpinCtrl;
			wxCheckBox* ForceAutoDismountCheckBox;
			wxStaticBoxSizer* FilesystemSecuritySizer;
			wxCheckBox* PreserveTimestampsCheckBox;
			wxCheckBox* WipeCacheOnCloseCheckBox;
			wxCheckBox* WipeCacheOnAutoDismountCheckBox;
			wxPanel* DefaultMountOptionsPage;
			wxCheckBox* MountReadOnlyCheckBox;
			wxCheckBox* MountRemovableCheckBox;
			wxCheckBox* CachePasswordsCheckBox;
			wxStaticBoxSizer* FilesystemSizer;
			wxTextCtrl* FilesystemOptionsTextCtrl;
			wxPanel* BackgroundTaskPanel;
			wxCheckBox* BackgroundTaskEnabledCheckBox;
			wxCheckBox* CloseBackgroundTaskOnNoVolumesCheckBox;
			wxCheckBox* BackgroundTaskMenuMountItemsEnabledCheckBox;
			wxCheckBox* BackgroundTaskMenuOpenItemsEnabledCheckBox;
			wxCheckBox* BackgroundTaskMenuDismountItemsEnabledCheckBox;
			wxPanel* SystemIntegrationPage;
			wxStaticBoxSizer* LogOnSizer;
			wxCheckBox* StartOnLogonCheckBox;
			wxCheckBox* MountFavoritesOnLogonCheckBox;
			wxCheckBox* MountDevicesOnLogonCheckBox;
			wxStaticBoxSizer* ExplorerSizer;
			wxCheckBox* OpenExplorerWindowAfterMountCheckBox;
			wxCheckBox* CloseExplorerWindowsOnDismountCheckBox;
			wxStaticBoxSizer* KernelServicesSizer;
			wxCheckBox* NoKernelCryptoCheckBox;
			wxPanel* PerformanceOptionsPage;
			wxStaticText* AesHwCpuSupportedStaticText;
			wxCheckBox* NoHardwareCryptoCheckBox;
			wxBoxSizer* DefaultKeyfilesSizer;
			wxCheckBox* UseKeyfilesCheckBox;
			wxTextCtrl* Pkcs11ModulePathTextCtrl;
			wxButton* SelectPkcs11ModuleButton;
			wxCheckBox* CloseSecurityTokenSessionsAfterMountCheckBox;
			wxListCtrl* HotkeyListCtrl;
			wxTextCtrl* HotkeyTextCtrl;
			wxButton* AssignHotkeyButton;
			wxCheckBox* HotkeyControlCheckBox;
			wxCheckBox* HotkeyShiftCheckBox;
			wxCheckBox* HotkeyAltCheckBox;
			wxCheckBox* HotkeyWinCheckBox;
			wxButton* RemoveHotkeyButton;
			wxCheckBox* BeepAfterHotkeyMountDismountCheckBox;
			wxCheckBox* DisplayMessageAfterHotkeyDismountCheckBox;
			wxStdDialogButtonSizer* StdButtons;
			wxButton* StdButtonsOK;
			wxButton* StdButtonsCancel;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
			virtual void OnDismountOnScreenSaverCheckBoxClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnDismountOnPowerSavingCheckBoxClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnForceAutoDismountCheckBoxClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnPreserveTimestampsCheckBoxClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnBackgroundTaskEnabledCheckBoxClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnNoKernelCryptoCheckBoxClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnNoHardwareCryptoCheckBoxClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnSelectPkcs11ModuleButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnHotkeyListItemDeselected( wxListEvent& event ) { event.Skip(); }
			virtual void OnHotkeyListItemSelected( wxListEvent& event ) { event.Skip(); }
			virtual void OnAssignHotkeyButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnRemoveHotkeyButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnCancelButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); }
			
		
		public:
			wxPanel* DefaultKeyfilesPage;
			wxPanel* SecurityTokensPage;
			wxPanel* HotkeysPage;
			
			PreferencesDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Preferences"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE ); 
			~PreferencesDialogBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class RandomPoolEnrichmentDialogBase
	///////////////////////////////////////////////////////////////////////////////
	class RandomPoolEnrichmentDialogBase : public wxDialog 
	{
		private:
		
		protected:
			wxBoxSizer* MainSizer;
			wxChoice* HashChoice;
			wxStaticText* RandomPoolStaticText;
			wxCheckBox* ShowRandomPoolCheckBox;
			wxStaticText* MouseStaticText;
			wxButton* ContinueButton;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnMouseMotion( wxMouseEvent& event ) { event.Skip(); }
			virtual void OnHashSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnShowRandomPoolCheckBoxClicked( wxCommandEvent& event ) { event.Skip(); }
			
		
		public:
			
			RandomPoolEnrichmentDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("VeraCrypt - Random Pool Enrichment"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE ); 
			~RandomPoolEnrichmentDialogBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class SecurityTokenKeyfilesDialogBase
	///////////////////////////////////////////////////////////////////////////////
	class SecurityTokenKeyfilesDialogBase : public wxDialog 
	{
		private:
		
		protected:
			wxListCtrl* SecurityTokenKeyfileListCtrl;
			wxButton* ExportButton;
			wxButton* DeleteButton;
			wxButton* ImportButton;
			wxButton* OKButton;
			wxButton* CancelButton;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnListItemActivated( wxListEvent& event ) { event.Skip(); }
			virtual void OnListItemDeselected( wxListEvent& event ) { event.Skip(); }
			virtual void OnListItemSelected( wxListEvent& event ) { event.Skip(); }
			virtual void OnExportButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnDeleteButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnImportButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); }
			
		
		public:
			
			SecurityTokenKeyfilesDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Security Token Keyfiles"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE ); 
			~SecurityTokenKeyfilesDialogBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class VolumePropertiesDialogBase
	///////////////////////////////////////////////////////////////////////////////
	class VolumePropertiesDialogBase : public wxDialog 
	{
		private:
		
		protected:
			wxListCtrl* PropertiesListCtrl;
			wxStdDialogButtonSizer* StdButtons;
			wxButton* StdButtonsOK;
		
		public:
			
			VolumePropertiesDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Volume Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE ); 
			~VolumePropertiesDialogBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class EncryptionOptionsWizardPageBase
	///////////////////////////////////////////////////////////////////////////////
	class EncryptionOptionsWizardPageBase : public WizardPage
	{
		private:
		
		protected:
			wxChoice* EncryptionAlgorithmChoice;
			wxButton* TestButton;
			wxStaticText* EncryptionAlgorithmStaticText;
			wxHyperlinkCtrl* EncryptionAlgorithmHyperlink;
			wxButton* BenchmarkButton;
			wxChoice* HashChoice;
			wxHyperlinkCtrl* HashHyperlink;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnEncryptionAlgorithmSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnTestButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnEncryptionAlgorithmHyperlinkClick( wxHyperlinkEvent& event ) { event.Skip(); }
			virtual void OnBenchmarkButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnHashHyperlinkClick( wxHyperlinkEvent& event ) { event.Skip(); }
			
		
		public:
			
			EncryptionOptionsWizardPageBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); 
			~EncryptionOptionsWizardPageBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class InfoWizardPageBase
	///////////////////////////////////////////////////////////////////////////////
	class InfoWizardPageBase : public WizardPage
	{
		private:
		
		protected:
			wxBoxSizer* InfoPageSizer;
			wxStaticText* InfoStaticText;
		
		public:
			
			InfoWizardPageBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); 
			~InfoWizardPageBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class KeyfilesPanelBase
	///////////////////////////////////////////////////////////////////////////////
	class KeyfilesPanelBase : public wxPanel 
	{
		private:
		
		protected:
			wxListCtrl* KeyfilesListCtrl;
			wxButton* AddFilesButton;
			wxButton* AddDirectoryButton;
			wxButton* AddSecurityTokenSignatureButton;
			wxButton* RemoveButton;
			wxButton* RemoveAllButton;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnListItemDeselected( wxListEvent& event ) { event.Skip(); }
			virtual void OnListItemSelected( wxListEvent& event ) { event.Skip(); }
			virtual void OnListSizeChanged( wxSizeEvent& event ) { event.Skip(); }
			virtual void OnAddFilesButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnAddDirectoryButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnAddSecurityTokenSignatureButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnRemoveButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnRemoveAllButtonClick( wxCommandEvent& event ) { event.Skip(); }
			
		
		public:
			
			KeyfilesPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); 
			~KeyfilesPanelBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class ProgressWizardPageBase
	///////////////////////////////////////////////////////////////////////////////
	class ProgressWizardPageBase : public WizardPage
	{
		private:
		
		protected:
			wxBoxSizer* ProgressSizer;
			wxGauge* ProgressGauge;
			wxButton* AbortButton;
			wxStaticText* InfoStaticText;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnAbortButtonClick( wxCommandEvent& event ) { event.Skip(); }
			
		
		public:
			
			ProgressWizardPageBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); 
			~ProgressWizardPageBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class SelectDirectoryWizardPageBase
	///////////////////////////////////////////////////////////////////////////////
	class SelectDirectoryWizardPageBase : public WizardPage
	{
		private:
		
		protected:
			wxTextCtrl* DirectoryTextCtrl;
			wxButton* BrowseButton;
			wxStaticText* InfoStaticText;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnDirectoryTextChanged( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnBrowseButtonClick( wxCommandEvent& event ) { event.Skip(); }
			
		
		public:
			
			SelectDirectoryWizardPageBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); 
			~SelectDirectoryWizardPageBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class SingleChoiceWizardPageBase
	///////////////////////////////////////////////////////////////////////////////
	class SingleChoiceWizardPageBase : public WizardPage
	{
		private:
		
		protected:
			wxBoxSizer* OuterChoicesSizer;
			wxBoxSizer* ChoicesSizer;
			wxStaticText* InfoStaticText;
		
		public:
			
			SingleChoiceWizardPageBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); 
			~SingleChoiceWizardPageBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class VolumeCreationProgressWizardPageBase
	///////////////////////////////////////////////////////////////////////////////
	class VolumeCreationProgressWizardPageBase : public WizardPage
	{
		private:
		
		protected:
			wxBoxSizer* KeySamplesUpperSizer;
			wxBoxSizer* KeySamplesUpperInnerSizer;
			wxStaticText* RandomPoolSampleStaticText;
			wxCheckBox* DisplayKeysCheckBox;
			wxStaticText* HeaderKeySampleStaticText;
			wxStaticText* MasterKeySampleStaticText;
			wxGauge* ProgressGauge;
			wxButton* AbortButton;
			wxStaticText* m_staticText31;
			wxPanel* m_panel12;
			wxStaticText* SizeDoneStaticText;
			wxStaticText* m_staticText311;
			wxPanel* m_panel121;
			wxStaticText* SpeedStaticText;
			wxStaticText* m_staticText312;
			wxPanel* m_panel122;
			wxStaticText* TimeLeftStaticText;
			wxStaticText* InfoStaticText;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnDisplayKeysCheckBoxClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnAbortButtonClick( wxCommandEvent& event ) { event.Skip(); }
			
		
		public:
			
			VolumeCreationProgressWizardPageBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); 
			~VolumeCreationProgressWizardPageBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class VolumeLocationWizardPageBase
	///////////////////////////////////////////////////////////////////////////////
	class VolumeLocationWizardPageBase : public WizardPage
	{
		private:
		
		protected:
			wxComboBox* VolumePathComboBox;
			wxButton* SelectFileButton;
			wxButton* SelectDeviceButton;
			wxCheckBox* NoHistoryCheckBox;
			wxStaticText* InfoStaticText;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnVolumePathTextChanged( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnSelectFileButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnSelectDeviceButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnNoHistoryCheckBoxClick( wxCommandEvent& event ) { event.Skip(); }
			
		
		public:
			
			VolumeLocationWizardPageBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); 
			~VolumeLocationWizardPageBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class VolumeFormatOptionsWizardPageBase
	///////////////////////////////////////////////////////////////////////////////
	class VolumeFormatOptionsWizardPageBase : public WizardPage
	{
		private:
		
		protected:
			wxStaticText* m_staticText43;
			wxChoice* FilesystemTypeChoice;
			wxCheckBox* QuickFormatCheckBox;
			wxStaticText* InfoStaticText;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnFilesystemTypeSelected( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnQuickFormatCheckBoxClick( wxCommandEvent& event ) { event.Skip(); }
			
		
		public:
			
			VolumeFormatOptionsWizardPageBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); 
			~VolumeFormatOptionsWizardPageBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class VolumePasswordPanelBase
	///////////////////////////////////////////////////////////////////////////////
	class VolumePasswordPanelBase : public wxPanel 
	{
		private:
		
		protected:
			wxGridBagSizer* GridBagSizer;
			wxStaticText* PasswordStaticText;
			wxTextCtrl* PasswordTextCtrl;
			wxStaticText* ConfirmPasswordStaticText;
			wxTextCtrl* ConfirmPasswordTextCtrl;
			wxCheckBox* CacheCheckBox;
			wxCheckBox* DisplayPasswordCheckBox;
			wxCheckBox* UseKeyfilesCheckBox;
			wxButton* KeyfilesButton;
			wxBoxSizer* Pkcs5PrfSizer;
			wxStaticText* Pkcs5PrfStaticText;
			wxChoice* Pkcs5PrfChoice;
			wxCheckBox* TrueCryptModeCheckBox;
			wxStaticText* HeaderWipeCountText;
			wxChoice* HeaderWipeCount;
			wxBoxSizer* PasswordPlaceholderSizer;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnTextChanged( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnDisplayPasswordCheckBoxClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnUseKeyfilesCheckBoxClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnKeyfilesButtonClick( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnKeyfilesButtonRightDown( wxMouseEvent& event ) { event.Skip(); }
			virtual void OnKeyfilesButtonRightClick( wxMouseEvent& event ) { event.Skip(); }
			
		
		public:
			
			VolumePasswordPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); 
			~VolumePasswordPanelBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class VolumePasswordWizardPageBase
	///////////////////////////////////////////////////////////////////////////////
	class VolumePasswordWizardPageBase : public WizardPage
	{
		private:
		
		protected:
			wxBoxSizer* PasswordPanelSizer;
			wxStaticText* InfoStaticText;
		
		public:
			
			VolumePasswordWizardPageBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); 
			~VolumePasswordWizardPageBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class VolumeSizeWizardPageBase
	///////////////////////////////////////////////////////////////////////////////
	class VolumeSizeWizardPageBase : public WizardPage
	{
		private:
		
		protected:
			wxTextCtrl* VolumeSizeTextCtrl;
			wxChoice* VolumeSizePrefixChoice;
			wxStaticText* FreeSpaceStaticText;
			wxStaticText* InfoStaticText;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnVolumeSizeTextChanged( wxCommandEvent& event ) { event.Skip(); }
			virtual void OnVolumeSizePrefixSelected( wxCommandEvent& event ) { event.Skip(); }
			
		
		public:
			
			VolumeSizeWizardPageBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); 
			~VolumeSizeWizardPageBase();
		
	};
	
	///////////////////////////////////////////////////////////////////////////////
	/// Class WaitDialogBase
	///////////////////////////////////////////////////////////////////////////////
	class WaitDialogBase : public wxDialog 
	{
		private:
		
		protected:
			wxStaticText* WaitStaticText;
			wxGauge* WaitProgessBar;
			
			// Virtual event handlers, overide them in your derived class
			virtual void OnWaitDialogClose( wxCloseEvent& event ) { event.Skip(); }
			virtual void OnWaitDialogInit( wxInitDialogEvent& event ) { event.Skip(); }
			
		
		public:
			
			WaitDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("VeraCrypt"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxCAPTION ); 
			~WaitDialogBase();
		
	};
	
} // namespace VeraCrypt

#endif //__FORMS_H__