This post is to inform you about a discussion which the team is having at this moment. It involves the developing (and sharing) of a sort-of "foundation classes" for (upcoming) tools. The main reason is to define a uniform way of building tools. This will help the team in avoiding re-inventing of wheels. Besides that, it will provide users a similar look & feel when they are using more of our tools.
Finally –here comes the cool part-, when this all works out, it will be easier for users to write or even incorporate their own tools into the toolset!
Before continuing, please note that this is future talk; think post 0.5 or beyond...
Weapons of choice
This first thing we need to sort out is which tools we will be using to create our framework (and tools). After that, we can make conclusions and eventually enter a design stage.
The most important point of discussion is about whether we will base our toolset/framework around wxWidgets, or whether we will use CEGUI itself, in combination with SDL and OpenGL. Following are list with advantages of one solution over the other.
#Common Windows functionality such as open & save file dialogs, toolbar, tree control.
#Being able to support multiple doc/view combinations within the same application. For example you can say:
Code: Select all
new wxDocTemplate(docManager, wxT("CEGUI layouts"), wxT("*.layout"), wxT(""), wxT("layout"), wxT("Layout Document"), wxT("Layout View"),
new wxDocTemplate(docManager, wxT("CEGUI imagesets"), wxT("*.imageset"), wxT(""), wxT("imageset"), wxT("Imageset Document"), wxT("Imageset View"),
// And so on...
Now when you open a particular CEGUI file, wxWidgets will automagically provide the correct Doc/View setup. So you could create a MDI application with several types of CEGUI files in edit mode.
#Will give us much insight in the usability of our own code.
#When we are users ourselves, we are also testers ourselves, so we might see errors before the public sees them.
A second question is which language we will use. Currently, the layout editor is written using C++. However, to speed up tool development, another language such as Lua or Python might be more appropriate. CEGUI also ships with a Lua binding, and there is also a Lua binding available for wxWidgets (wxLua). So Lua can be a serious option no matter which framework solution we choose. Here is a same list of advantages for both options.
#Supports highlevel, rapid development.
#Runs inside a VM, so it's easier to port.
#We can reuse many existing editor editor code.
#Probably more C++ knowledge within the team.
As you could have read, we are still in an early phase with this, but we like to share it with you. This topic is readonly, because it functions merely as a "window" into our thoughts. But feel free to put any ideas about tools in our "Suggestion and Feature Requests" forum!