|
|
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 <wx/stdpaths.h> ! 11: #include "Main.h" ! 12: #include "Application.h" ! 13: #include "CommandLineInterface.h" ! 14: #include "GraphicUserInterface.h" ! 15: #include "TextUserInterface.h" ! 16: ! 17: namespace TrueCrypt ! 18: { ! 19: wxApp* Application::CreateConsoleApp () ! 20: { ! 21: mUserInterface = new TextUserInterface; ! 22: return mUserInterface; ! 23: } ! 24: ! 25: wxApp* Application::CreateGuiApp () ! 26: { ! 27: mUserInterface = new GraphicUserInterface; ! 28: return mUserInterface; ! 29: } ! 30: ! 31: FilePath Application::GetConfigFilePath (const wxString &configFileName, bool createConfigDir) ! 32: { ! 33: wxStandardPaths stdPaths; ! 34: DirectoryPath configDir; ! 35: ! 36: if (!Core->IsInTravelMode()) ! 37: { ! 38: #ifdef TC_MACOSX ! 39: wxFileName configPath (L"~/Library/Application Support/TrueCrypt"); ! 40: configPath.Normalize(); ! 41: configDir = wstring (configPath.GetFullPath()); ! 42: #else ! 43: configDir = wstring (stdPaths.GetUserDataDir()); ! 44: #endif ! 45: } ! 46: else ! 47: configDir = GetExecutableDirectory(); ! 48: ! 49: if (createConfigDir && !configDir.IsDirectory()) ! 50: Directory::Create (configDir); ! 51: ! 52: FilePath filePath = wstring (wxFileName (wstring (configDir), configFileName).GetFullPath()); ! 53: return filePath; ! 54: } ! 55: ! 56: DirectoryPath Application::GetExecutableDirectory () ! 57: { ! 58: return wstring (wxFileName (wxStandardPaths().GetExecutablePath()).GetPath()); ! 59: } ! 60: ! 61: FilePath Application::GetExecutablePath () ! 62: { ! 63: return wstring (wxStandardPaths().GetExecutablePath()); ! 64: } ! 65: ! 66: void Application::Initialize (UserInterfaceType::Enum type) ! 67: { ! 68: switch (type) ! 69: { ! 70: case UserInterfaceType::Text: ! 71: { ! 72: wxAppInitializer wxTheAppInitializer((wxAppInitializerFunction) CreateConsoleApp); ! 73: break; ! 74: } ! 75: case UserInterfaceType::Graphic: ! 76: { ! 77: wxAppInitializer wxTheAppInitializer((wxAppInitializerFunction) CreateGuiApp); ! 78: break; ! 79: } ! 80: ! 81: default: ! 82: throw ParameterIncorrect (SRC_POS); ! 83: } ! 84: } ! 85: ! 86: int Application::ExitCode = 0; ! 87: UserInterface *Application::mUserInterface = nullptr; ! 88: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.