Tool API/Foundation
Posted: Sat Jun 23, 2007 12:15
Hi,
as mentioned a while ago in a project update thread, the focus will be put on tools in the future. This posts presents some thoughts which are the result of earlier discussion within the team and users.
Especially since we have some new users on board who seem to be eager to get their hands dirty on some serious tool coding!
The general idea is that we need a sort of API/Framework/Foundation on which all CEGUI tools should rely, so that -in a perfect situation- starting a new tool could be as simple as:
Now besides the discussion whether we need one tool per problem (like it is now) or one 'solution', both situations would benefit from using a base layer.
Such a layer should include the following (note that some are already in place in the current editors):
-Iterating and (un)loading of CEGUI files;
-Saving and (re) loading of user created content;
-Managing resource groups to allow for projects who use different resource directories;
-Changing / Selecting renderer and imageset codec;
-Integration with the 'property finder' utility which was recently created;
-A property change listener system. This way, listeners can be added so that sub-systems can easily get notified about changes in a different part. Think a repaint of a layout when an imageset changes.
The advantage of CEGUI's property system is mainly that it defines a very generic way to change an object's attributes, no matter what it actually is. So don't expect this layer to become very big. See it more as handy collection of stuff to interact with CEGUI.
Any thoughts and suggestions are more then welcome!
as mentioned a while ago in a project update thread, the focus will be put on tools in the future. This posts presents some thoughts which are the result of earlier discussion within the team and users.
Especially since we have some new users on board who seem to be eager to get their hands dirty on some serious tool coding!
The general idea is that we need a sort of API/Framework/Foundation on which all CEGUI tools should rely, so that -in a perfect situation- starting a new tool could be as simple as:
Code: Select all
class CMyTool: public CEGUITool ...
Now besides the discussion whether we need one tool per problem (like it is now) or one 'solution', both situations would benefit from using a base layer.
Such a layer should include the following (note that some are already in place in the current editors):
-Iterating and (un)loading of CEGUI files;
-Saving and (re) loading of user created content;
-Managing resource groups to allow for projects who use different resource directories;
-Changing / Selecting renderer and imageset codec;
-Integration with the 'property finder' utility which was recently created;
-A property change listener system. This way, listeners can be added so that sub-systems can easily get notified about changes in a different part. Think a repaint of a layout when an imageset changes.
The advantage of CEGUI's property system is mainly that it defines a very generic way to change an object's attributes, no matter what it actually is. So don't expect this layer to become very big. See it more as handy collection of stuff to interact with CEGUI.
Any thoughts and suggestions are more then welcome!