/* * 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 PERSONALITYMANAGER_H #define PERSONALITYMANAGER_H #include "settings.h" #include "manager.h" #include <wx/dynarray.h> /** @brief Manage different personalities. * * Personalities are different profiles of appearence for Code::Blocks. * For instance, the default personality is the full IDE. You could create * a "Text editor" personality that is light-weight, tailored to "simple" text editing. * In this example "Text editor" personality, the manager windows would be hidden * and no plugins would be loaded, making Code::Blocks perfect for text editing * (with all the powerful features of its embedded editor). * * The user can create as many personalities as needed. The work-in-progress * file associations manager (win32 only) will work with personalities so that * different file types launch Code::Blocks using a different personality... * * To select the desired personality when launching Code::Blocks, the user can * use the command-line switch "--personality". If "--personality=ask" is passed * in the command line, a selection box will be displayed for the user to choose * the desired personality. */ class DLLIMPORT PersonalityManager : public Mgr<PersonalityManager> { static wxString pers; PersonalityManager(); public: friend class Mgr<PersonalityManager>; friend class Manager; // give Manager access to our private members /// Use this once, on program startup to set the working personality void SetPersonality(const wxString& personality, bool createIfNotExist = false); /// Get the working personality string const wxString GetPersonality(); /// Get a list of all the known personalities const wxArrayString GetPersonalitiesList(); }; #endif // PERSONALITYMANAGER_H