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
|
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//
// copyright : (C) 2014 Eran Ifrah
// file name : cl_standard_paths.h
//
// -------------------------------------------------------------------------
// A
// _____ _ _ _ _
// / __ \ | | | | (_) |
// | / \/ ___ __| | ___| | _| |_ ___
// | | / _ \ / _ |/ _ \ | | | __/ _ )
// | \__/\ (_) | (_| | __/ |___| | || __/
// \____/\___/ \__,_|\___\_____/_|\__\___|
//
// F i l e
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
#ifndef CLSTANDARDPATHS_H
#define CLSTANDARDPATHS_H
#include <wx/string.h>
#include "codelite_exports.h"
#include "cl_defs.h"
class WXDLLIMPEXP_CL clStandardPaths
{
private:
clStandardPaths();
virtual ~clStandardPaths();
wxString m_path;
wxString m_dataDir;
public:
static clStandardPaths& Get();
/**
* @brief remove the temp directory and its content
*/
void RemoveTempDir();
/**
* @brief set an alternative data dir
* The default data dir is set to the installation path on Windows or /usr/share/codelite on Linux systems
*/
void SetDataDir(const wxString& dataDir) { this->m_dataDir = dataDir; }
/**
* @brief return the user local data folder. Usually this is ~/.codelite or %APPDATA%\CodeLite
* However, under Linux, this function will return ~/.codelite-dbg to avoid clobbering the release config
* settings
*/
wxString GetUserDataDir() const;
/**
* @brief Sets an alternative local data folder, to be returned by GetUserDataDir()
*/
void SetUserDataDir(const wxString& path);
/**
* @brief return the temp folder for this OS
*/
wxString GetTempDir() const;
/**
* @brief return the path to the plugins folder
*/
wxString GetPluginsDirectory() const;
/**
* @brief Return the location of the applications global, i.e. not user-specific, data files.
* Example return values:
Unix: prefix/share/appinfo
Windows: the directory where the executable file is located
Mac: appinfo.app/Contents/SharedSupport bundle subdirectory
*/
wxString GetDataDir() const;
// Under MSW, OSX and GTK the bin folder is the same directory as the
// main executable (codelite{.exe})
// Typically this function returns:
// MSW: /path/to/codelite.exe
// GTK: /usr/bin
// OSX: /path/to/codelite.app/Contents/MacOS
wxString GetBinFolder() const;
/**
* @brief return the full path for an executable. This function
* usually returns: GetBinFolder() + "/" + toolname + ".exe"
* @note the .exe and "/" are platform dependant
*/
wxString GetBinaryFullPath(const wxString& toolname) const;
/**
* @brief get CodeLite executale path
*/
wxString GetExecutablePath() const;
/**
* @brief return the user lexers directory
*/
wxString GetUserLexersDir() const;
/**
* @brief return the default (installation) lexers directory
*/
wxString GetLexersDir() const;
/**
* @brief return the project templates dircectory
*/
wxString GetProjectTemplatesDir() const;
/**
* @brief return the user templates folder
* @return
*/
wxString GetUserProjectTemplatesDir() const;
/**
* @brief return the documents directory.
* Windows: C:\Users\name\Documents
* Unix: /home/name/Documents
* OSX: /Users/name/Documents
*/
wxString GetDocumentsDir() const;
/**
* @brief return the installation directory.
*/
wxString GetInstallDir() const;
void IgnoreAppSubDir(const wxString& subdirPattern);
};
#endif // CLSTANDARDPATHS_H
|