Author Topic: SDK Reference Manual  (Read 10725 times)

takeshimiya

  • Guest
SDK Reference Manual
« on: June 01, 2005, 09:20:26 pm »
UPDATE here: http://forums.codeblocks.org/index.php/topic,1358.0.html

Hi!

I was reading that a SDK documentation is needed, and I can't help writting one as I don't know how the plugin system works.

But I noticed that the commentaries in the code of Code::Blocks are more or less doxygen friendly. So I've made (at least as a proof of concept) a reference manual of the SDK using DoxyS (a doxygen spin-off).

It needs a lot of improvement, but I think that is on the good way.
The more things that it needs, are examples and hand-written text (more like a book rather than a reference). I'm worried that I can't help with that (rickg22? :D )
It also have some bugs, but as DoxyS is in active development isn't such a problem.

See build_docs/README.txt inside "codeblocks-1.0-finalbeta_sdk-build_docs.zip"

Hope you like it.


HTML manual:
http://www.kaze-fansub.com.ar/basura/takeshimiya/cb/codeblocks-1.0-finalbeta_sdk-html.tar.bz2

CHM manual:
http://www.kaze-fansub.com.ar/basura/takeshimiya/cb/codeblocks-1.0-finalbeta_sdk-htmlhelp.zip

How I built that:
http://www.kaze-fansub.com.ar/basura/takeshimiya/cb/codeblocks-1.0-finalbeta_sdk-build_docs.zip
« Last Edit: November 12, 2005, 05:26:28 pm by Takeshi Miya »

takeshimiya

  • Guest
SDK Reference Manual
« Reply #1 on: June 02, 2005, 06:17:30 pm »
Please reply, else I feel useless here. :(

Offline tiwag

  • Developer
  • Lives here!
  • *****
  • Posts: 1196
  • sailing away ...
    • tiwag.cb
SDK Reference Manual
« Reply #2 on: June 02, 2005, 06:41:24 pm »
well done, thanks !

Offline rickg22

  • Lives here!
  • ****
  • Posts: 2283
SDK Reference Manual
« Reply #3 on: June 02, 2005, 07:22:49 pm »
Thanks! However I bet many windows users (i.e. moi)  would also like those CHM's in ZIP format. (You're a linux user, right? ;-) )

takeshimiya

  • Guest
SDK Reference Manual
« Reply #4 on: June 02, 2005, 08:05:55 pm »
haha, no, I'm a windows user, but I thought the opossite,
as it's more easy to open a tar.bz2 in windows than opening a zip or rar in linux.
ie. Winrar or 7-zip decompress tar.bz2 files easily.

Anyways the other reason is space, compare yourself the size of the html version in the bzipped ver. vs. a zipped ver.
-HTML manual zip'ed: 6.60 MB (Winrar doesn't let me choose "solid archive" for zip)
-HTML manual bzip2'ed: 1.02 MB
-HTML manual 7zip'ed: 839 KB (but isn't very standard yet)

Also I thought that the .tar.bz2 was THE standard in all opensource projects.

Ok, enough talking, here it's the CHM manual in ZIP format:
http://www.kaze-fansub.com.ar/basura/takeshimiya/cb/codeblocks-1.0-finalbeta_sdk-htmlhelp.zip


Anyways, if do you like it, please see the section "Current bugs" in README.txt
(Yiannis or rickg22 read it please and tell me what do you think about that).

Offline rickg22

  • Lives here!
  • ****
  • Posts: 2283
SDK Reference Manual
« Reply #5 on: June 02, 2005, 08:22:22 pm »
Wow, it's FANTASTIC! :D This file should be included in the SDK releases!

Offline mandrav

  • Project Leader
  • Administrator
  • Lives here!
  • *****
  • Posts: 4315
    • Code::Blocks IDE
SDK Reference Manual
« Reply #6 on: June 02, 2005, 10:04:29 pm »
Very nice work, takeshimiya :D

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

takeshimiya

  • Guest
SDK Reference Manual
« Reply #7 on: June 03, 2005, 12:14:09 am »
I'm glad all of you liked it :)


Now, for the improving part:

I've found these bugs:

Current bugs of DoxyS
-----------------------------------------

- Doesn't support text formatting on brief descriptions (not very important).

- The function parameter documentation ///< works well on .h but not on .cpp files.


Current bugs of the C::B comments
-----------------------------------------
- For example on cbplugin.h, at the
virtual void BuildModuleMenu() function, the behaviour of DoxyS is always to take
the brief description from the first line (ie. you don't need @brief or \brief),
but if you are used to, it's better to put the cmd @brief then.

- Also always remember to put /// instead of // to document the code, for
example not like on "compiler.h" at the struct RegExStruct.

- Also try to remember when documenting variables in structs or classes:
int m_iMemberVarShortDoc; ///< Short single line documentation
instead of
int m_iMemberVarShortDoc; // Short single line documentation

- Documenting what is not documented =)


-----------------------------------------
I would like to fix the "C::B comment bugs" but I don't have CVS access (I never used CVS).
Anyways some are easy to fix (most of them are a replace from // to ///),
So Yiannis or rickg22, who do you recommend to fix them?

Offline mandrav

  • Project Leader
  • Administrator
  • Lives here!
  • *****
  • Posts: 4315
    • Code::Blocks IDE
SDK Reference Manual
« Reply #8 on: June 03, 2005, 08:31:05 am »
I will do this. I 'm gradually adding documentation to as-yet-undocumented base SDK classes anyway.

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

takeshimiya

  • Guest
SDK Reference Manual
« Reply #9 on: June 03, 2005, 01:03:55 pm »
Great :), then the only thing left are the examples and hand-written text.

rickg22 or anyone that knows well how the SDK works, when you find the time, try to make some examples (either in cpp/h very commented or in a plain txt), and some explanation of basic things (like a quick start).

Well, I think that's all to have a helpful sdk manual. =)

Offline heromyth

  • Multiple posting newcomer
  • *
  • Posts: 98
    • http://
SDK Reference Manual
« Reply #10 on: July 03, 2005, 02:46:40 am »
Learning!
Thanks!

Offline rickg22

  • Lives here!
  • ****
  • Posts: 2283
SDK Reference Manual
« Reply #11 on: July 03, 2005, 03:18:39 am »
OK let's see....
There's the Manager classes. EditorManager, ProjectManager, MessageManager, PluginsManager

These managers overall form the "core" of Codeblocks, everything's around them. Editormanager handles the openfiles tree and the files closing, saving, loading, etc. Look for cbEditor and Editorbase, too.


Projectmanager deals with the project tree, the projects, workspace, etc. (Look for cbProject, cbWorkspace)

MessageManager is the message pane with lots of tabs.

PluginsManager handles the plugins loading. (see cbPlugin)