Thanks, Tuan!


21-10-2007 00:38:44

Tuan submitted a patch with a lot of good stuff for QuickGUI!

- Use of JohnJ's script parser, with the additional functionality of writing. One major api change this creates is that the GUIManager's constructor takes no args, and GUIManager::init(...) must be called prior to use. (This little change is more than worth it, it provides an intro into serialization or Layouts and Widget properties)

- Effects system. Allows users to create various effects. A few effects are implemented by default, such as SizeEffect and PositionEffect. Demo has been modified to use these effects.

- SkinSet Additions. Skins can be loaded from *.skinset file.

- Visual Studio Project modifications for organization.

Thanks again, Tuan!


21-10-2007 08:53:49

The svn version isn't complete. At least a few headers are missing (QuickGUIConfigScript.h, QuickGUIEffect.h and maybe some more).

I am a bit uneasy about this constructor/init stuff. It is usually a very bad idea to have an init function, which does constructor work (after all that is what the constructor is for). Unless you have a good reason for it, which I don't see here (though since I don't have the full code, it is possible that I am overlooking something).

Found this line in the GUIManager's constructor:

new ConfigScriptLoader();

Looks like a leak to me, though again I can't say for sure, because I don't have the ConfigScriptLoader header.

tuan kuranes

21-10-2007 09:13:20


I am a bit uneasy about this constructor/init stuf
For now it's mandatory to create GUIManager before trying to init skins (both was done in constructor), as the new parser needs to be registered prior resources loading, but skin loading must be done after.

Anyway, once quickgui will handle per viewport gui, it will even make more sense, and the actual init could become initViewportSkin() and have its counterpart shutdownViewportSkin()

Looks like a leak to me
it's a singleton. deleted using its singleton ptr get few lines after.

tuan kuranes

21-10-2007 09:19:47


- About Effects, it should become more useful and obvious soon. ToolTip(fadein/fadeout), Button Rollover (fading from one to another), could be animated easily as soon as opacity will be done.


21-10-2007 09:31:00

Makes sense, I guess. Thanks for uploading the files.

tuan kuranes

21-10-2007 14:16:51

Now, with load save using resource folder containing texture that was baked in the skinset. (no more need to copy from exe directory the skin texture and script)

whole thing patch:

just load/save now totally transparent: ... Only.patch

Now, can start the imageset editor.


21-10-2007 19:57:34

I'm about to commit the patch. One thing I noticed was the GUIManager destructor does not call "clearAll" function. I don't see the reason for not calling it, plus the Sheet list is cleared before destroying any remaining sheets.

I've been working on the ScrollBar Slider issue, it needs to have a minimum length, but the list scroll pane needs to keep growing. It's a pain to figure out.

I will go ahead and implement Opacity. I'll update this when its done.