With this out of the way I would like to propose a direction this editor should be going IMO. I would like an all inclusive pluggable tool (even though I was opposed to this idea a month ago or something, people change.. ). The glue of the tool would be a "project" file. It would hold information about resource paths and settings related to how to bootstrap CEGUI and get it going. This way you can easily switch between projects without having to reset the paths. The project file would be a XML to go along CEGUI's philosophy (throw XML at everything!! )
Code: Select all
<Project version="0.8"> <!-- if the editor & CEGUI version is higher than this, editor should be able to upgrade the file -->
.. this should be fairly straightforward
<Imageset path="Inventory.imageset" />
<Layout path="InventoryScreen.layout" />
<Layout path="ItemDescription.layout" />
<AnimationDefinitions path="InventoryAnimations.xml" locked="True" /> <!-- if the file is locked, editor can't touch it, it can only be handedited -->
<!-- I dunno if we want this or not, it allows more linear workflow but doesn't really add anything --> <Bitmap path="Inventory.png" /> <!-- the editor will have no bitmap editing capabilities at all, instead we will just launch application of choice (gimp, ..) -->
<LookNFeel path="MySuperGame.looknfeel" />
How I think it should all look:
There will be a project browser dock widget defaultly located at the left corner of the screen. It will allow you to double click files to view/edit them.
On the right a property editor will be located (also a dock widget). It will change it's content depending on the currently active edited file.
User should be able to edit more files at once, this will be accomplished by tabs at the top.
Because I want CEGUI to only start once to avoid memory bloat, the center widget (CEGUI view) will be singular. It will change it's contents depending on edited file (looknfeel preview, layout editing, ...)
Full blown Undo/Redo is a must.
The current CELE2 will be reused there.
I was thinking flash like timeline with auto keyframes. You seek to the time you want and then you alter something on the screen. Keyframe, Affector, Animation all will get created automatically. You will be able to turn this off and work with manual keyframes.
I will probably port CEImagesetEditor as it is with only minor changes. I want to solve overlapping boxes a bit because it makes it hard to work in the old CEImagesetEditor but I don't know how I will solve that yet.
This will be a tough one. For starters I will probably throw in a XML editor with instant preview but Falagard needs some changes to make this happen. In the future I could slowly start adding WYSIWYG capabilities (adding components, positioning them, etc...)
This will be easy if I am not wrong.
Why do I think this will get done?
All this is very fancy but it requires a lot of work (more than I have devoted to CEGUI so far I think). I want to push this into becoming my semester coding project next year (summer term). That should force me into getting it done. This doesn't mean that I won't need help with this. All help is encouraged and much appreciated!
The layout editor that I want to incorporate is GPL but the only author is CrazyEddie. We will have to discuss how this will be done. I would love it to be all GPLed but on the other hand I feel like I am giving out a lot without getting anything back so I have to think about that a bit more. PySide allows us to make it non-GPL so other licenses are still an option.
Please give some feedback, I want to brainstorm this a bit before I start any work. I won't be able to work on it at all until maybe mid January or February but I want to have some solid concepts laid out by then.
* I need somebody able to create and maintain nice UI layouts in Qt4 Designer. I know I suck at this myself. I usually end up doing something only I can use.
* Artists who can do icons are highly needed as well but I may end up reusing Oxygen or other project. I don't think they will have looknfeel icons and stuff like that though.
* Any coding help is highly needed (python skills and Qt4 experience would be great). The whole project will be very dynamic, living in SVN only in the early stages. I will create hassle free prepackaged versions so you can just unpack and it will work. The project is python only so hacking around will be very easy