News:

As usual while waiting for the next release - don't forget to check the nightly builds in the forum.

Main Menu

How to learn about plugin programming

Started by LonelySTar, December 01, 2005, 05:40:57 PM

Previous topic - Next topic

LonelySTar

Is there any handbook/reference on how to write a plugin?
If I need a specific function, how can I find out how to do it?
Thanks!

mandrav

Be patient!
This bug will be fixed soon...

LonelySTar

Well, that gives an outline for how to write a plugin. Usefull but not enought.
At present, I want to know How a plugin can find out the filenames and directories of all files in the project. How is that done and how did you find out?
Thanks!
Nathan

mandrav

Be patient!
This bug will be fixed soon...

rickg22

LonelySTar: Download the codeblocks sourcecode and study the SDK, specially the headers - of these, pay attention to the ones that end with "manager".

Urxae

(I started this post before the last two were posted. I'll post it as it's somewhat more detailed ;))
Quote from: LonelySTar on December 01, 2005, 05:46:28 PM
Well, that gives an outline for how to write a plugin. Usefull but not enought.
At present, I want to know How a plugin can find out the filenames and directories of all files in the project. How is that done and how did you find out?
Thanks!
Nathan

Manager::Get()->GetProjectManager() returns a ProjectManager*.
ProjectManager::GetProjects() returns a ProjectsArray* (IIRC basically the wx-version of std::vector<cbProject*>, but without iterators)
cbProject::GetFilesCount() returns the number of files in a project.
cbProject::GetFile(int index) returns a ProjectFile*.
From there ProjectFile::file or ProjectFile::relativeFilename should be able to help you.

Now where did I find all this?
Well, I started looking in sdk/projectmanager.h, and went from there. Like Rick said: look at the managers ;). The only time I actually had to perform a search for the next file was when I got to ProjectFile, which is conveniently located in sdk/projectbuildtarget.h :roll:.
The SDK headers are quite helpful, but you can always get doxygen and process sdk.doxy for a HTML version with hyperlinks :).

LonelySTar


takeshimiya


Urxae

Quote from: Takeshi Miya on December 02, 2005, 12:17:06 AM
You might want to try THIS.

Beware though: that's for RC2, there have been a lot of changes since then in SVN. So if you're using the SVN version of C::B I would recommend generating the documentation yourself, though you can probably use the last link in the post Takeshi mentioned to do so.

takeshimiya

#9
Exactly.

Though it would be good if we can have online docs autogenerated from SVN.

Urxae

Quote from: Takeshi Miya on December 02, 2005, 01:18:09 AM
Though it would be good if we can have online docs autogenerated from SVN.

Now there's a good use for cron if I ever saw one 8).