File: cl_standard_paths.h

package info (click to toggle)
codelite 17.0.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 136,204 kB
  • sloc: cpp: 491,547; ansic: 280,393; php: 10,259; sh: 8,930; lisp: 7,664; vhdl: 6,518; python: 6,020; lex: 4,920; yacc: 3,123; perl: 2,385; javascript: 1,715; cs: 1,193; xml: 1,110; makefile: 804; cobol: 741; sql: 709; ruby: 620; f90: 566; ada: 534; asm: 464; fortran: 350; objc: 289; tcl: 258; java: 157; erlang: 61; pascal: 51; ml: 49; awk: 44; haskell: 36
file content (143 lines) | stat: -rw-r--r-- 4,340 bytes parent folder | download | duplicates (3)
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