0.5.0
Posted: Mon Mar 27, 2006 21:03
Hi all.
There's alot of uncertainty sorrounding the 0.5.0 release for alot of you I think. Including myself to some extent.
So to get some things straight and to try to take the library development more public, I'm starting this thread.
The original release date we "decided" on IRC was April 1st or 2nd. Whether we will make it or not I am not completely sure of and in a way the release still feels a little premature too..
I've been fairly busy lately and have'nt had as much time as I had hoped I would have for CEGUI, so I pretty much have'nt finished any of the things I said I would. Shame on me
Anyway to let you guys know a little more about whats happening I'm posting the preliminary changelog so you can all see what has been going on:
Yes. It's huge!
OK. Now a question for Paul: I have added a <TextProperty> and <FontProperty> tag to Falagard for the TextComponent. It should be obvious what they do... Should I commit this now or after we release? I'm asking as we did say that the ~26th should be code freeze date back then...
Another one for all of you:
Many of you probably know that I've been working on a listbox replacement for a long time. It does'nt look like it will make it to 0.5.0, but I'm about 95% done and I could really use some feedback on it soon.
If I post a patch will anyone test it?
There's alot of uncertainty sorrounding the 0.5.0 release for alot of you I think. Including myself to some extent.
So to get some things straight and to try to take the library development more public, I'm starting this thread.
The original release date we "decided" on IRC was April 1st or 2nd. Whether we will make it or not I am not completely sure of and in a way the release still feels a little premature too..
I've been fairly busy lately and have'nt had as much time as I had hoped I would have for CEGUI, so I pretty much have'nt finished any of the things I said I would. Shame on me
Anyway to let you guys know a little more about whats happening I'm posting the preliminary changelog so you can all see what has been going on:
Code: Select all
Various internal code cleanups:
Removal of unrequired utf8* casts on string literals.
Removed use of NULL macro from the library code.
Code refactorings to Font class. Removes some instances of repeated code, and makes some methods shorter / cleaner.
Split large methods in Scheme into smaller, more managable, chunks.
Removed all the System constructor overloads and replaced with a single method.
Removed string literals for component widget names which were scattered throughout the widget code.
Replaced virtually all member fields holding pointers to component widgets with getter methods (which basically allows those widgets to be replaced without the parent knowing or caring).
Refactoring of XML handler to remove huge if/else if/else construct.
Refectored large if / else if / else constructs in all non-falagard XML handlers to use a member function for each element type (rather than having all code in one huge function).
Added "PushedOff" rendering state for button style widgets.
Added "PushedOff" rendering state for Falagard Thumb base class.
Added: Ability to rename windows.
Added: CEGUISamplesConfig.h file to allow configuration of samples framework independently of the main config (saves recompiling everything just to change some sample setting).
Added: FPS readout to OpenGL base app in the samples framework.
Added: "PropertyLinkDefinition" element for Falagard system.
Added "controlPropery" attribute to SectionSpecififations under falagard to enable renering of section imagery to be controled via a named boolean property.
Added: mouse pass through feature in Window, to ignore mouse events. Nice for making a DefaultWindow transparent to the mouse regarding picking windows behind it.
Added: MSVC++ auto-linking for Ogre base app in samples framework.
Added: grab/restoreTextures in the OpenGL renderer to cache texture image data, and later restore it.
Added: Abstracted Logger interface to support user created custom loggers. (SF patch #1414121 by zap)
Added: DefaultLogger implementation (SF patch #1414121 by zap)
Added: page up/down key functionality to MultiLineEditbox (SF patch #1347376 by Dalfy)
Added: small script to recreate the binding generator for tolua++
Added: customized tolua++ binary. For exception handling support in generated binding code.
Added: missing exception definitions file needed to generate the bindings.
Added: README with instructions on how to generate the bindings.
Added: Documentation for some of the new features in the bundled tolua++ generator.
Added: When subscribing to events from "inside" Lua a self object can be registered as well to be passed along with the EventArgs.
Added: New WindowRenderer system, replacing previous system where the Window sub-class controlled the rendering process.
Added: Major update of the LuaScriptModule to support anonymous functions.
Added: Exception handling has been added for some functions.
Added: Falagard derivatives of DefaultWindow, DragContainer and ItemEntry with minimal StateImagery.
Added: executeEventHandler now accepts functions that are table fields.
Modified: Placed the integrated TinyXML into its own namespace (CEGUITinyXML) to prevent clashes in projects using another copy of TinyXML. (Patch #1294002).
Modified: Changed EventSet to operate without needing events to be pre-added, much like GlabalEventSet always did.
Modified: Removal of mass pre-specification of events for all classes using events.
Modified: Cflags to add include dir for CEGUI in CEGUI.pc.in (allows use of <CEGUI/...> form of include statement).
Modified: The "Lua and tolua++" module has been made a DLL on Windows machines.
Modified: Renamed System::setTooltip to System::setDefaultTooltip (Mantis #1Cool.
Modified: In the lua module, updated Window with casting helpers as member functions. eg. w:toFrameWindow()
Modified: Removed the Static,StaticText and StaticImage from CEGUIBase and implemented them in FalagardBase instead.
Modified: Updated to tolua++ 1.0.7
Modified: Moved LuaFunctor into its own files
Modified: Reimplemented the "late binding" effect from the v04 Lua module.
In v04 the function is always looked up by name. In CVS HEAD the actual Lua function is referenced, but now this will only occur the first time the event is triggered. This means that it's no longer necessary to have a function defined to subscribe it to an event. As long as the function has been created before the event occurs everything will be good Smile
Modified: Moved subscribeScriptedEvent into ScriptModule to allow more customized script subscription functionality.
Modified: Made the layout XML handler use subscribeScriptedEvent for Event tags instead of subscribeEvent with ScriptFunctor
Modified: Removal of "tolua_outside" stuff that was no longer needed.
Modified: Moved the declaration/definition of base window factories into its own files.
Modified: Removal of WidgetSets folder, and it's contents.
Modified: Removed unnecessary getSingleton and getSingletonPtr from manager classes.
Modified: The script module now throws ScriptException.
Modified: Removal of TextItem as falagard now handles that exclusively.
Modified: Moved all rendering member functions out of base classes an into Falagard rendering classes.
Modified: Removal of virtually all rendering and layout related Window properties from CEGUIBase - a few are moved to FalagardBase, the rest must be implemented via XML.
Modified: Removal of TaharezLook and WindowsLook modules from the system.
Modified: Removal of MetricsMode system, and all non-unified interface and properties from Window (and related fixes to other classes).
Modified: Elimination of RenderableElement and derived classes.
Modified: Moved to a C preprocessor macro system for widget module creation.
Modified: Removal of abstract createXXX methods from widget base classes - the looknfeel system now auto-creates these widgets when specified within the XML.
Bug fix: OpenGLRenderer was producing errors and not cleaning up state changes properly (thanx muhkuh25)
Bug fix: OpenGLRenderer was broken when compiled for x86-64.
Bug Fix: ListboxItem::getOwnerWindow should be const
Bug Fix: ListboxItem::getOwnerWindow should not take a Window* argument.
Bug Fix: Scheme::resourcesLoaded was always returning true.
Bug Fix: PropertyHelper::stringToImage was not handling empty string case.
Bug Fix: Editbox::onCharacter was setting the event as handled even if nothing was done.
Bug Fix: Added shift/ctrl/alt support to the OpenGL sample driver (injects LeftXXX)
Bug Fix: The command line renderer selector does no longer ask if there is only one renderer available.
Bug Fix: Fixed window resizing for the OpenGL Sample driver.
Bug Fix: fixed const correctness for "String::utf8_stream_len" SF patch #1367423
Bug Fix: Detect "window->addChildWindow(window);" and do nothing instead of actually trying.
Bug Fix: Added missing performChildWindowLayout to Scrollbar::onScrollConfigChanged to allow making a look'n'feel with a thumb that sizes to indicate document size.
Bug fix: const correctness for Window::getLookNFeel
Bug fix: FrameWindow, isTitlebarEnabled and isCloseButtonEnabled were return the opposite of what they should.
Bug Fix: FrameWindow should do relayout if text changes to allow using a fontdim in the titlebar dimensions.
Bug Fix: Changing the default mouse cursor in the System object will now update the cursor immediately where appropriate. (Ticket #17).
Bug Fix: Fixed case in StaticText where default text area was always used if frame was disabled.
------------------------------
Added text node support to both parser (Xerces and TinyXML)
Added support in handler with no action as default
Updated to the latest version of TinyXML in order to allow CDATA section in XML text node (verbatim text)
Update of GUILayout handler in order to support long value in properties.
Update GUILayout XML Files
Update Falagard sample in order to illustrate the use of long properties with multilineeditbox widget. (note the example text is not really the best we can have)
-------------------------------
Added AutoWindow tag to xml layouts to fetch a window created by the look'n'feel or the base widget itself.
Made the XML writing system aware of falagard when determining property default values.
Made Property::writeXMLToStream virtual to allow properties to take a little more control. The WindowRenderer and LookNFeel properties now only write if the window type is not a falagard mapping.
Switched PropertyHelper to use std::ostringstream as the output is much nicer. Changes property default values to the new format where needed.
Added isAutoWindow member that returns true if the window has "__auto_" in its name. (a flag is set in the constructor).
Added a setting to Window to specify that it should never write XML no matter what if activated. Tooltips get this set by default by System.
Added a property ban list, to provide a system for mapping which properties should be written to XML. in the respective addProperties member functions checks have been added and som properties are banned if we are an auto window. There will be changes to many more widgets when I've had some sleep Wink
So far it's Window, FrameWindow, Scrollbar, Thumb (enough to export Demo8 from inside itself fairly cleanly).
Fixed a few indentation mishaps.
Added WidgetComponent::findPropertyInitialiser to find by property name (used in property default value determination)
Added WidgetLookFeel::findPropertyInitialiser to find by property name (used in property default value determination)
Added WidgetLookFeel::findWidgetComponent to find by component name suffix (used in property default value determination)
Fixed the GUILayout XML handler regarding the new property stuff.
Yes. It's huge!
OK. Now a question for Paul: I have added a <TextProperty> and <FontProperty> tag to Falagard for the TextComponent. It should be obvious what they do... Should I commit this now or after we release? I'm asking as we did say that the ~26th should be code freeze date back then...
Another one for all of you:
Many of you probably know that I've been working on a listbox replacement for a long time. It does'nt look like it will make it to 0.5.0, but I'm about 95% done and I could really use some feedback on it soon.
If I post a patch will anyone test it?