Developer forums (C::B DEVELOPMENT STRICTLY!) > Development

SDK API changes

(1/5) > >>

mandrav:
OK, so I was thinking of what are the major changes that need to be done before RC3 (which will bring a complete feature-freeze until 1.0 is out).
I 'm talking about major changes regarding the SDK. Specifically, the managers and plugins interfaces.
Not much I could think of. Actually, none.

So I started thinking of what will follow after 1.0 is out. And I discovered quite a few major changes that will have to be done then.
For example, I evaluated wxIFM.
wxIFM is a docking library which is sooo much better than wxDockit (the one we 're using now), except it doesn't handle toolbars (at least not yet).
Evaluating wxIFM made me change some things and found out that it was actually better this way.

One thing was the MessageManager. Currently it is a wxNotebook managing its pages. With wxIFM, each page is a different window managed by wxIFM. So, no more wxNotebook for MessageManager. That's a goot thing actually. We could change this now.

Another thing was the toolbars. As said above, wxIFM doesn't handle toolbars yet. So we would either have to use one big toolbar (like in earlier versions) or make our custom toolbars using wxPanels etc. Anyway this will be left for when that time comes. It's in the application, not in the SDK, so it can change any time. *But* what will need to change is the cbPlugin::BuildToolbar(). Instead of manipulating a wxToolbar directly, it could return an array of a special struct describing each tool to be added.
Then, it makes sense to change cbPlugin::BuildMenu() to work in a similar way...

About the cbPlugin::BuildToolbar() and cbPlugin::BuildMenu() changes, they will have to be performed anyway when we implement the ActionManager we 've been discussing of adding.

So, we have two options:
[*] Leave the SDK as it is now and change it when needed, after 1.0 is out.
This will of course completely break the SDK but will allow us to reach RC3 soon.
[*] Make these important changes in the SDK now.
This will allow the SDK to remain consistent before and after 1.0 is out. Of course it will change but changes will be minor and easy to update plugins. If the changes are major (like in option 1) then plugin-devs would have to maintain two versions of their plugins (one for 1.0 and one for post-1.0 releases).
But this option will set us back a while...
[/list]

Which option do you think is better?

Michael:

--- Quote from: mandrav on December 14, 2005, 10:31:55 am ---So, we have two options:
[*] Leave the SDK as it is now and change it when needed, after 1.0 is out.
This will of course completely break the SDK but will allow us to reach RC3 soon.
[*] Make these important changes in the SDK now.
This will allow the SDK to remain consistent before and after 1.0 is out. Of course it will change but changes will be minor and easy to update plugins. If the changes are major (like in option 1) then plugin-devs would have to maintain two versions of their plugins (one for 1.0 and one for post-1.0 releases).
But this option will set us back a while...
[/list]

Which option do you think is better?

--- End quote ---

IMHO, I think that the second option would be better. Another advantage I see, is that it would be easier for new developers (e.g., of plugins) to get in touch with C::B. If not they would have to learn how plugins are deveoloped now and how they will be later (with the new changes). It is better to keep consistency.

Moreover, I can wait a bit for RC3 :). In case of need, I can just compile a SVN version or use an already-compiled-Therion-version.

Best wishes,
Michael

tiwag:
i think it is better to make these changes now because not soo much plugins are existing by 3rd parties till now.

Urxae:

--- Quote from: Michael on December 14, 2005, 10:51:52 am ---IMHO, I think that the second option would be better. Another advantage I see, is that it would be easier for new developers (e.g., of plugins) to get in touch with C::B. If not they would have to learn how plugins are deveoloped now and how they will be later (with the new changes). It is better to keep consistency.

Moreover, I can wait a bit for RC3 :). In case of need, I can just compile a SVN version or use an already-compiled-Therion-version.

--- End quote ---

Took the words right out of my mouth keyboard :).

Make the changes now, so any new plugins made to work with version 1.0 won't need a lot of changes to work with post-1.0 builds. I'm likely to keep using the SVN version, so if any interesting new plugins pop up I'd like them to be compatible with that ;).

mandrav:
I 'm glad you all think option 2 is better. I think so too, I just didn't state it because I didn't want to bias the discussion.
Btw, if you haven't seen the wxIFM demo, do so. It's amazing :)

Navigation

[0] Message Index

[#] Next page

Go to full version