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