This file is indexed.

/usr/include/codeblocks/cbworkspace.h is in codeblocks-dev 13.12-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
/*
 * This file is part of the Code::Blocks IDE and licensed under the GNU Lesser General Public License, version 3
 * http://www.gnu.org/licenses/lgpl-3.0.html
 */

#ifndef CBWORKSPACE_H
#define CBWORKSPACE_H

#include <wx/string.h>
#include <wx/filename.h>

#include "globals.h"

/**
  * @brief A workspace class.
  *
  * Workspaces are just collections of projects. By loading a workspace,
  * all the projects it contains are loaded.\n
  * There is always a workspace open. The default one does not contain any projects.\n
  * Currently, no inter-project dependencies are supported but at some point
  * they will be ;)
  *
  * @note The way WorkspaceLoader works now, requires that you save and delete the
  * loaded workspace *before* creating a new one...
  */
class cbWorkspace
{
    public:
        /** @brief Constructor
          *
          * @param filename The file from which to load the workspace. If this
          *        parameter is empty, the default workspace is loaded.
          */
        cbWorkspace(const wxString& filename = DEFAULT_WORKSPACE);

        /** @brief Destructor */
        virtual ~cbWorkspace();

        /** @brief Save the workspace
          *
          * @param force If false (the default), the workspace will not be written to disk,
          * if it is not marked as modified.
          * @return True if saving succeeded, false if not.
          */
        virtual bool Save(bool force = false);

        /** @brief Save the workspace under a different filename
          *
          * @param filename The name of the file to save.
          * @return True if saving succeeded, false if not.
          * @note If the filename parameter is empty, a file dialog to choose
          * the filename to save will be displayed.
          */
        virtual bool SaveAs(const wxString& filename);

        /** @brief Get the workspace file's name
          *
          * @return The name of the file this workspace was loaded from.
          */
        virtual wxString GetFilename() const
        {
          return m_Filename.GetFullPath();
        }

        /** @brief Get the workspace's title
          *
          * @return The title of the workspace.
          */
        virtual wxString GetTitle() const
        {
          return m_Title;
        }

        /** @brief Set the workspace's title
          *
          * @param title The new title.
          */
        virtual void SetTitle(const wxString& title);

        /** @brief Was this workspace loaded successfully?
          *
          * @return True if the workspace was loaded successfully, false if not.
          * @note Because the only way to load a workspace is through its
          * constructor, and because we don't use exceptions, this is the only
          * way to know if loading succeeded.
          */
        virtual bool IsOK() const { return m_IsOK; }

        /** @brief Is this workspace the Code::Blocks default?
          *
          * @return True if the workspace is the default, false if not.
          */
        virtual bool IsDefault() const { return m_IsDefault; }

        /** @brief Is this workspace modified?
          *
          * @return True if the workspace is modified, false if not.
          * @note A workspace is considered modified when projects
          * are added-to/removed-from it, when the project's order
          * is changed or when the active project is changed.
          */
        virtual bool GetModified() const { return m_Modified; }

        /** @brief Mark the workspace as modified or not
          *
          * @param modified If true, the workspace will be marked as modified. If
          * false, the workspace will be marked as unmodified.
          */
        virtual void SetModified(bool modified);

        /** @brief Set the preferred target for this workspace
          */
        void SetPreferredTarget(const wxString &target);

        /** @brief Get the preferred target for this workspace
          */
        wxString GetPreferredTarget() const;

        void ActiveProjectChanged();

    private:
        bool m_IsOK; // succeeded loading?
        bool m_IsDefault; // is this the Code::Blocks default workspace?
        bool m_Modified; // is it modified?
        wxFileName m_Filename; // filename
        wxString m_Title; // title
        wxString m_PreferredTargetName;

        void Load(); // utility function
        bool SaveLayout();
        bool LoadLayout();
};

#endif // CBWORKSPACE_H