A short overview about Code::Blocks architecture
The following are guidelines about the architecture of Code::Blocks. Anyone writing code or a patch for Code::Blocks, should read this to understand how Code::Blocks works.
C::B keeps projects cbProject in a workspace cbWorkspace. This workspace can have more than one project. This is managed by the ProjectManager. Here a short overview:
The words with italic font are classes in C::B. The cbProject itself manages different targets ProjectBuildTargets and different files ProjectFiles.
C::B has a message window where you can see all kind of messages. This messages are managed by MessageManager.
If you want to put some messages on this windows you should use that manager.
Access to the managers
All managers in C::B can accessed by the Manager class. For example if you want to access to the ProjectManager you should use the Manager::Get() method:
ProjectManager* prjmgr = Manager::Get()->GetProjectManager();