Home | Back
Crazy Eddie's GUI System Mk-2
http://www.cegui.org.uk

Copyright 2004 - 2006 CEGUI Team & Contributing Authors


The following is a high-level view of changes made to the system between releases.

Release 0.5.0 (Final)
=====================
Added: TaharezLook was missing ItemListbox and ListboxItem windows & skin definitions.
Added: Partial CEGUI support for MingW. It is now possible to build CEGUI under mingw with support for OpenGL renderer. This approach is going to be generalized later to the other renderer and wiki page explaining the process will follows.
Added: Missing functions in WindowFactoryManager Lua bindings. Incomplete FalagardWindowMapping binding as well.
Added: Lua binding for OutStream: FileStream (minimal std::ofstream).
Added: XML writing function in Lua bindings.
Added: --enable-debug in configure script instead of using CPPFLAGS=-DDEBUG ./configure ...
Added: premake files for Minesweeper sample and minor fixes to make it run in windows.
Added: the minesweeper demo
Added: missing doxyfile in order to be in make dist
Added: ScrollablePane sample

Removed: Empty Font 'implData' header files we no longer use.
Removed: Falagard skinning manual is now a part of the CEGUI manuals sub-project, so is no longer included here as a pdf.

Modified: Changed Demo7 to use the layout XML file instead of hard-coded window creation.
Modified: Demo7Window.layout now uses the new ItemListbox, with items defined within the layout, as the Listbox as opposed to the old style list with hard-coded items.
Modified: Win32CEGuiRendererSelector:
- It is now possible to navigate to the Combobox via keyboard.
- First available renderer is pre-selected into the dialog.
- With a single renderer available, it is auto-selected and dialog is not shown.
Modified: Changed compile order under autotools so CEGUIBase is made before things that use it - related to forthcoming cross-compile support.
Modified Added some missing bits and a whole load of other stuff to 'make dist' to ease a more unified approach to creating packages for the various platforms.
Modified: Renamed tolua++bin/remake_pkg..bat to remove extra period
Modified: Changed Russian text in FontDemo sample - the old text apparently potentially offensive. Thanks to 'Sanya' for the updated text.
Modified: The RefCounted template now has the CEGUIEXPORT macro as it avoids warnings in client code when using MSVC.
Modified: Promote Expat to be the second prefered parser under linux in order to act the same under linux and Win32. Note that the prefered parser is still Xerces. The parser order is now the following : Xerces, Expat, Libxml, TinyXML.
Modified: WidgetComponent had a nasty misspelling of 'Alignemnt'.
Modified: MSVC no longer uses CEGUIConfig.h and CEGUISamplesConfig.h for anything
Modified: Premake scripts are now much more flexible.

Coding Standards: Removed various occurrences of the NULL macro.

Docs: Added note to docs for Spinner regarding the lame state of floating point support.

Bug Fix: ListHeader settings for sizing, moving, and clicking were not properly set on newly created segments.
Bug Fix: Resolved issue where the algorithm that ensured font textures were filled would actually end up trying to render every glyph within a font.
Bug Fix: ItemListBase::insertItem was not setting the ItemEntry::d_ownerList member correctly.
Bug Fix: Added another 'special case' to Spinner::getValueFromText to support typing an initial decimal point.
Bug Fix: Sometimes compound widgets did not get their components layed out properly when adding the widget to it's parent.
Bug Fix: The way in which properties would set a window to use the DefaultFont was incorrect; it explicitly set it to the name of the current default, as opposed to a 'floating default'.
Bug Fix: FontDim did not work correctly since re-calculation of the layout was not triggered in response to the font being changed.  Added this code to Window::onFontChanged - although more elegant / selective solutions might be considered later on.
Bug Fix: Added code so that all windows using default font get notified of a change in the default via the normal channel (Window::onFontChanged).
Bug Fix: There was an issue regarding auto-repeat of mouse button down events not getting their state reset if the mouse button was released outside of the window getting the auto-repeat events.
Bug Fix: CEGuiSample.cpp did not get all required includes with certain renderer combinations.
Bug Fix: Range emplyed by FreeTypeFont::rasterize was exclusive of the start element; first glyph of every page loaded was missed!
Bug Fix: CEGUI::Window did not properly clean-up a custom tooltip if it created one.
Bug Fix: Calculation of number of glyph pages in Font::setMaxCodepoint was incorrect.
Bug Fix: When the OpenGL renderer was disabled by ./configure, the SILLY codec was still being built.
Bug Fix: When the OpenGL renderer was disabled by ./configure, the requirement for a default ImageCodec was still enforced.
Bug Fix: case of included file in Win32CEGuiRendererSelector.cpp changed ready to support cross-compiling in post 0.5.0 versions.
Bug Fix: Support was broken in the Samples framework for newer versions of Ogre.
Bug Fix: The cegui_reldim and cegui_absdim macros were missing the CEGUI namespace qualifier.
Bug Fix: When a glyph failed to load in FreeTypeFont, although we logged the error we did not work around the issue of the missing glyph image, so a seg fault was generated upon attempted use of those missing images. This addresses the issue by creating dummy images for missing font glyphs which use a zero size. Mantis #0000125.
Bug Fix: RefCounted would call AddRef when the wrapped pointer and its counter were null.
Bug Fix: Event::ScopedConnection would call members of BoundSlot using a potentially null RefCounted pointer.
Bug Fix: In C++ a namespace does not have a semicolon after the closing brace.
Bug Fix: Nasty memory leak in DevIL image codec. thanx to mafm on IRC.
Bug Fix: fixed a small error in the comment of CEGUI_DECLARE_WINDOW_FACTORY
Bug Fix: Tab control did not require to hear about multi-clicks on the TabControl scroll buttons. Patch from zap. Mantis #0000117.
Bug Fix: Issue with utf8 missing conversion in TinyXML and libXML
Bug Fix: Added missing public visibility specifier to ScopedConnection class members.
Bug Fix: premake files were not enabling Xerces correctly in the samples.
Bug Fix: TabControlDemo layout split up. We dont allow multiple root windows in a layout when using a validating XML parser.
Bug Fix: Falagard.xsd was missing new type attribute for PropertyDim.
Bug Fix: PropertyLinkDefinition was not writing XML properly (no base class writing).
Bug Fix: Bugs in Falagard XML writing.
Bug Fix: Spinner would throw an exception when a lone minus sign was entered. Mantis ticket #110.
Bug Fix: Input capture bug that broke Combobx - introduced by patch #82.
Bug Fix: ScrollablePane would cause exceptions on destruction. Mantis ticket #83.
Bug Fix: a bug in the premake improvements where samples would not generate properly.
Bug Fix: A number of CEGUI exceptions were being caught by value instead of reference.
Bug Fix: OpenGL renderer now also disables texture coordinate generation.
Bug Fix: Irrlicht sample driver now quits on the escape key like the rest.
Bug Fix: Updates and fixes to resolve the NPOT texture source data issue (mantis #45) in a relatively consistent way - at least for the 0.5.x releases.


Release 0.5.0-RC2
=================
Added: single colour support to PropertyHelper::stringToColourRect
Added: missing support to Irrlicht renderer for creating a texture with a given size.
Added: Updates to renderers for D3D8.1 and D3D9 to report correct values for 'original' size and actual texture size.  (Related to Mantis ticket #45).
Added: Support for using user defined image codec by name (using dso) or directly throught a pointer to an existing image codec.
Added: Long property export (allows for properties containing multiple lines).
Added: Helper methods to Window to return EventSet::Iterator and PropertySet::Iterator objects.
Added: Reworked TabControl by zap.  Mantis #82.
Added: TabControlDemo sample.  Mantis #82.
Added: Danish language in the FontDemo sample.
Added: Output of summary of configure results (for configure based builds)
Added: Texture extra size information to CEGUI::Texture in order to be able to handle scaled/stretched textures within Imageset.
Added: Texture Scaling support in IrrlichRenderer

Removed: Empty source file CEGUIVector.cpp
Removed: TabPane files.

Modified: Behaviour of Editbox so that EventCharacterKey events are only marked as handled if the key press actually resulted in a change to the Editbox text string. (Related to Mantis #59)
Modified: Replaced all getWindow<something> with get<something>
Modified: Replaced all setWindow<something> with set<something>
Modified: EventSet::EventIterator now known as EventSet::Iterator
Modified: PropertySet::PropertyIterator now known as PropertySet::Iterator
Modified: ImageCodec modules are now DynamicModule
Modified: Falagard PropertyDim now supports a type attribute for UDim properties.  Mantis #82.
Modified: Improved TabControl imagery.  Mantis #82.
Modified: autotools makefiles now symlink the sample binaries (to avoid having to do 'make install').  Mantis #82.
Modified: PropertyHelper now uses snprintf instead of std::ostringstream again.  Mantis #82.
Modified: Removed static Makefile for tolua++cegui generator tool and switched to autotools style build, with enable/disable configure option, for tolua++cegui generator tool
Modified: Moved tolua++ into it's own dir, removed lua_and_tolua++
Modified: Externalised our use of the Lua library
Modified: premake updates
Modified: Updated AUTHORS file.
Modified: Remove exec file attribute on Falagard.xsd
Modified: XMLRefSchema/Font.xsd for font rewrite
Modified: LuaScriptModule public headers no longer need include lua.h included.
Modified: Made a bunch of warnings go away in MSVC in the new font code.
Modified: Deleted the remaining old msvc project files.

Bug Fix: Clean the XMLSerialization code: remove empty autowindow
Bug Fix: Added missing glDisable(GL_FOG); in gl renderer
Bug Fix: Irrlicht and D3D8.1 renderer modules would keep live pointers to Texture objects that failed to fully initialise (file or size errors for example)  Mantis #43.
Bug Fix: Disable texture stages we do not use in Direct3D renderers. (Mantis #95)
Bug Fix: Mouse cursor z value.  Mantis #49
Bug Fix: Imagset XML attribute for image file name is 'Imagefile' and not 'Filename'.
Bug Fix: normal attributes use 'true', only properties sometimes use 'True'.
Bug Fix: Global default resource group was not being used by DefaultResourceProvider.
Bug Fix: XML output from CEGUI::Image class.
Bug Fix: Imageset scaling issue when renderer automatically scales the image #45 (this is currently a partial fix)
Bug Fix: IrrlichtRenderer - Mouse event error.  Mantis #98.
Bug Fix: IrrlichtRenderer - size error in addQuad.  Mantis #99.
Bug Fix: IrrlichtRenderer - Sample driver had linker lib name wrong for renderer module.  Mantis #100.
Bug Fix: TinyXMLParser bug.  Mantis Tracker #57
Bug Fix: a bug in the openglrenderer cleanup related to image codec.
Bug Fix: Install renderer module includes at the same place as in Win32 (linux / mac autotools)
Bug Fix: OpenGL sample driver did not inject middle mouse up (injected it as down).  Mantis #82.
Bug Fix: Corrected some mistakes in the Falagard Lua bindings
Bug Fix: Apparently in some cases OpenGLRenderer needs NOMINMAX in Win32 (Mantis #63)
Bug Fix: FreeTypeFont did not free the font data properly, also fixes a potential infinite loop in FreeTypeFont (Mantis #60)
Bug Fix: FairChar font texture was not power of 2 (Mantis #64)
Bug Fix: SliderThumb incorrectly mapped in some schemes (mantis #88)
Bug Fix: Updated Irrlicht renderer to work with 0.5.0 codebase.
Bug Fix: some missing data
Bug Fix: DirectX 8.1 sample driver
Bug Fix: some missing files in the make dist command (Mantis #89)
Bug Fix: Change the name of an enumeration value in schema Font.xsd.
Bug Fix: Memory leak in Font.
Bug Fix: Lua bindings was missing ImagesetManager::createImagesetFromImageFile + some missing tolua_throws modifiers


Release 0.5.0-RC1
=================
CEGUI MK2 has moved to the MIT license.

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).
- Event system has been rewritten from scratch.
- Font system has been rewritten.

Added "PushedOff" rendering state for button based widgets and MenuItem.
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.
Added: Text node support to both parser (Xerces and TinyXML)
Added: AutoWindow tag to xml layouts to fetch a window created by the look'n'feel or the base widget itself.
Added: Window::isAutoWindow member that returns true if the window has "__auto_" in its name. (a flag is set in the constructor). It's faster than checking the actual string.
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 (not) be written to XML. In the respective addProperties member functions checks have been added and some properties are banned if we are an auto window.
Added: Default resource group support to Xerces for use when loading schema files.
Added: Default resource group support to ScriptingModule, and implemented it's use in the CEGUILua module.
Added: DynamicModule class to wrap access to a dynamically linked / loaded module.
Added: New dynamic libraries for Xerces, Expat TinyXMLParser, and libxml Parsers.
Added: TextProperty and FontProperty elements for Falagard text components.
Added: New ItemListBase based ItemListbox widget. For Window based listbox items.
Added: XML Serialization class for all XML writing.
Added: Recursive versions of Window::getChild and isChild by ID. They are called getChildRecursive and isChildRecursive. Reason for the explicit naming is that it's a pretty expensive operation and should not be used unless necessary.
Added: Lots of missing members in the Lua bindings.
Added: setlocale(LC_NUMERIC, "C"); to the System constructor as we depend on this behaviour.
Added: setVisible member to CEGUI::MouseCursor.
Added: bat files to make it easier for Windows users to regenerate the Lua bindings and tolua++cegui.
Added: ImageCodec support to the OpenGL renderer. This allows users to easily write a custom image loader. TGA, SILLY, DevIL, Corona and FreeImage codecs are supplied.
Added: const version of getDataPtr in RawDataContainer.
Added: premake scripts to generate MSVC solutions.
Added: ClippedContainer for situations where more specialized clipping is required.

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.92
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.
Modified: Updated to TinyXML 2.4.3 in order to allow CDATA section in XML text node (verbatim text)
Modified: GUILayout handler in order to support long value in properties.
Modified: Made the XML writing system aware of falagard when determining property default values.
Modified: Switched PropertyHelper to use std::ostringstream as the output is much nicer. Changed property default values to the new format where needed.
Modified: Better error reporting for dynamic module load failures.
Modified: Switched to using external pcre library. Removed embedded copy of pcre.
Modified: Switched system to use dynamic libs for XML parsers with programatically configurable default.
Modified: FactoryModule to use DynamicModule.
Modified: Resolved issue with unneeded member qualification (Patch #1454773).
Modified: Made String::ptr a public member.
Modified: The bundled tolua++cegui binding generator will now generate a lua_CEGUI.cpp that compiles out-of-the-box on Windows
Modified: Removed the DataContainer template class, and made it into just RawDataContainer, non templated.
Modified: Optimized FalagardMultiLineEditbox to only cache visible lines when rendering.
Modified: Optimized ButtonBase and MenuItem updateInternalState. Mantis #44
Modified: Moved the renderers to their own folder named RendererModules.
Modified: Optimized picking and rendering by caching screen space rectangles.
Modified: Applied zap's rewrite of the Font system. Patch #1508321
Modified: Texture::loadFromMemory now takes a Texture::PixelFormat parameter. RGB and RGBA are currently required. Fixes Patch #1455523 as well. 3rd party renderer modules needs to be updated.

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.
Bug Fix: Image offsets were'nt being properly handled for the corners in FrameComponent.
Bug Fix: MultiColumnList would always use item string when sorting, instead of vitual operators on users custom items.
Bug Fix: System::getWindowContainingMouse would return incorrect Window if called from within Window::EventMouseLeaves handlers.
Bug Fix: Order of static data creation in C++ is unspecified; we can't have globally defined static data that relies on other such static data within the same module.
Bug Fix: Falagard/ProgressBar was broken when vertical or reversed-horizontal.
Bug Fix: Corruption of window registry when rename failed (Patch #1450623).
Bug Fix: Initialisation issue with TabControl trying to access child widgets before they are created. (Patch #1391727).
Buf Fix: CEGUI::Window::setModalState(true) removes the modal state from a modal window. Mantis #42
Bug Fix: MultiColumnList getNextSelection bug. Mantis #47
Bug Fix: System subscriber to renderer event but does not unsubscribe on destruction. Mantis #48
Bug Fix: OpenGL and DirectX9 renderers were not handling error correctly when creating textures.
Bug Fix: Bug in LuaScriptModule where executeScriptFile did not unload the file data buffer correctly in case of an exception (thanks gcarlton).
Bug Fix: A bug in ItemListBase::resetList_impl where calling resetList would crash (thanks Turtle).
Bug Fix: Typo in TabPane::testClassName_impl ("Tabpane" instead of "TabPane").
Bug Fix: Big Endian inconsistency in CEGUI::colour.
Bug Fix: CEGUI::Window was not detaching the tooltip during destruction. Mantis #38
Bug Fix: FrameWindow was consuming all LeftButton up events. Down events were affected as well, and now only consume if the event started drag sizing.
Bug Fix: DragContainer would overwrite any new position applied to the DragContainer during the DragDropItemDropped event. Mantis #53
Bug Fix: The OpenGL sample driver could cause a stack overflow. Patch #1507826


Release 0.4.1
=============
Added: Window renaming functionality.
Added: Logging of error when trying to unload a non-existant scheme.
Added: "Lost device" handlers for OpenGLRenderer (grab/restoreTextures).

Modified: Updates to Xcode project to account for differing build paths and some link issues.
Modified: Updated version numbers, CPU tuning setting, deployment build paths and library build style for MacOS X builds.
Modified: Changed default settings for doxygen documentation - is now more minimal and thefore more readable.
Modified: Simplified required setup to use Ogre CEGUI Renderer with the samples (now just requires access to Ogre modules and a plugins.cfg).

Bug Fix: Endianness issues in OpenGL renderer on Mac. (patch #1309172)
Bug Fix: Typo in Falagard bundle plist (Mac) that prevented loading. (patch #1309172)
Bug Fix: Resolved some behavioural mis-match issues with TabControl; removeChildWindow can now be used as expected to remove content.
Bug Fix: Changing the default mouse cursor in the System object did not result in an immediate change when appropriate.
Bug Fix: Cleanup properly if layout loading fails when loading a sub-layout (imported layout).
Bug Fix: 'Vanilla' skin showed rendering artefacts when scaled.
Bug Fix: Lots of missing API docs.
Bug Fix: 'static const' <-> 'const static' issue in renderers (mainly affected parsing by binding generators).
Bug Fix: Win32 type issue in MSVC++ 8.
Bug Fix: Issue in sample framework with MSVC++ using Unicode character mode.
Bug Fix: FrameWindow does a re-layout of children when text changes to allow using a FontDim to set the titlebar dimensions.
Bug Fix: Issues when writing xml for Window / MCL properties (patch #1353395)
Bug Fix: Fixed various issues related to window type aliasing not working as expected in all cases.
Bug Fix: CEGUI::String stream output operator was not exported under MSVC++.
Bug Fix: Fixed a bug in String class
Bug Fix: 'click' based mouse events would be sent to the wrong window in various circumstances.
Bug Fix: The class name string compared in MultiLineEditbox::testClassName_impl has the wrong casing.  Added additional check using correct casing.
Bug Fix: Menubar in skin schemes was using PopupMenu WidgetLook
Bug Fix: Closing a popup not attached to a MenuItem was still using parent as a MenuItem even after discoving this was not the case.
Bug Fix: WindowsLook imageset had incorrect sizes for Editbox frame edges.
Bug Fix: Font::getRequiredTexture size would get it wrong sometimes.
Bug Fix: Full initialiser lists added for Font constructors (solves some potential issues with uninitialised class data).


Release 0.4.0
=============
Addition of "Falagard" XML skinning system.  Details as follows:
-   RenderCache system for Window - vastly reduces the need to perform total redraws when only one widget changes.
-   Core falagard support classes enabling xml skin data to be loaded and the results used for Window initialisation and rendering.
-   CEGUIFalagardBase module implementing core skinned widget behaviours.
-   LookNFeel (XML skin) loading via scheme files.
-   FalagardMapping scheme element to allow creation of 'new' widget types within a scheme file.
-   Full skinning system .pdf documentation 'mini-book'.
-   XML based version of TaharezLook - as an example and to allow easy migration to the new system.
-   XML based version of WindowsLook - as an example and to allow easy migration to the new system.
-   "Vanilla GUI" - a simple XML based skin.  Special thanks to Shane Parker for permission to use his imagery.

Added: 'Unified' co-ordinate system allowing specification of relative and absolute components simultaneously.
Added: Window alignment options allowing child windows to be positioned offset from centre, right, and bottom points as well as the usual left and top.
Added: Ability to create an imageset directly from an image file.
Added: Added line number to error message for Xerces XML parsing errors.
Added: Initial support for output of XML data for all core system data types (fonts, imagesets, window layouts, xml skins).
Added: Renderer independant version of the original Ogre/CEGUI preview application "Demo4" in Samples.
Added: Renderer independant version of the original Ogre/CEGUI preview application "Demo6" in Samples.
Added: Renderer independant version of the original Ogre/CEGUI preview application "Demo7" in Samples.
Added: Renderer independant version of the original Ogre/CEGUI preview application "Demo8" in Samples.
Added: Support to Window class for a collection of named user-data strings.
Added: Modal window feature.
Added: Missing Lua bindings for some System based Tooltip stuff.
Added: Missing Lua bindings for Menusystem widgets.
Added: Lua module 'toKeyEventArgs' helper
Added: An attempt at protecting the code from min/max preprocessor macros; as defined in MS Windows headers.
Added: Logging of CEGUI version number.
Added: The 'look' modules now have the ability to register all available widget types; saves listing them all in a scheme!
Added: Support to the Lua module for FontFlags to allow direct loading of TTF fonts from script without using .font files.
Added: Base Window class virtual method 'performChildWindowLayout'.  Replacing many widget's own 'layoutChildComponents' methods.
Added: Facility for the system to auto-generate window names -  for use in cases where the user is too idle to think up names for themselves ;)

Modified: Relaxation of many ordering restrictions within validated XML data files.
Modified: Samples framework has had some minor improvments, and can now exit properly!
Modified: Various improvments and additional options for linux configure.
Modified: Lua scripting module renamed to CEGUILua (Win32 systems).
Modified: Switched AC_DISABLE_STATIC & AM_PROG_LIBTOOL around due to a warning.
Modified: Disabled building of static libraries under Linux.
Modified: Window::initialise method now called by WindowManager when it creates a window, rather than having each factory do this itself.
Modified: Major cleanup of the main file for the 'look' modules.
Modified: Changed CEGUIBASE_API to CEGUIEXPORT throughout the code.  This is in preparation for some Linux ABI improvements.
Modified: Various widget classes disregarded the alpha component of set colours; the alpha component of user specified colours is now respected.
Modified: Updated the WindowsLook caret-cursor to greatly improve visibility!
Modified: Made child window index positions stable.
Modified: Fixed hacky z-order change implementations.

Bug Fix: Issue on some distros caused by use of AC_FUNC_MALLOC macro in configure.ac
Bug Fix: Issues with samples framework not compiling when none of the renderer modules are available.
Bug Fix: linux makefiles updated so 'make dist' works properly again.
Bug Fix: Various fixes made to the MSVC++ 7.0 solution and projects.
Bug Fix: Unified the tests for linux platform to always check for definition of: __linux__
Bug Fix: Xerces based XML parser was not throwing exceptions, causing no useful logging to occur.
Bug Fix: Some tool-tip API docs were incorrect.
Bug Fix: Window::onEnabled & Window::onDisabled were not called when a window state changed via inherited state from an ancestor window.
Bug Fix: Font class modified to force auto-hinting use for rendering glyphs.
Bug Fix: Font class modified to properly render glyphs in mono mode (AA off)
Bug Fix: Fixed some uint/ColourRect/String CEGUILua issues.
Bug Fix: TinyXMLParser::parseXMLFile implementation was not reentrant, causing issues with nested loading of XML files (specifically static/bitmapped fonts).
Bug Fix: MultiLineEditbox would throw std::out_of_range sometimes when setting the text via setText().


Release 0.3.0
=============
Total refactoring of XML parsing system.  Details as follows:
-   Removed XMLHandlerHelper files.
-   Added XMLParser/XMLHandler abstract classes.
-   Added XMLAttributes class
-   Added optional embedded version of TinyXML - including efficiency fix (patch #1180435).
-   Added optional TinyXML based implementation of XMLParser.
-   Added optional Xerces-C++ based implementation of XMLParser.
-   Added overloaded System constructors allowing a custom XML parser to be used.

Added: Menu widget set (currently available for WindowsLook module only).
Added: Generic drag/drop support widgets.
Added: Write-only "ColumnHeader" property to MultiColumnList allowing specification of columns within XML layouts.
Added: Read-only "RowCount" property to MultiColumnList to return the number of rows in the list.
Added: Support for IDs to MultiColumnList rows, allowing easier access to rows (since index values can change).
Added: Lua based ScriptModule (including optional embedded lua and toloua++) for Win32 and Linux users.
Added: resourceGroup parameter to executeScriptFile methods.
Added: Scripted event handler support extensions plus typo fixes.  Special thanks to lindquist.
Added: Samples support framework (Win32 and Linux)
Added: 'FirstWindow' sample. (Win32 and Linux)
Added: OpenGLRenderer::setDisplaySize member function to enable display size changes to be notified.
Added: Config file setting to allow specification of logging level.
Added: Option to make the 'rise on click' default behaviour optional.  Based on idea from patch #1124682.
Added: Alt keys as a system key.  Patch #1170194.
Added: Irrlicht renderer for Linux users.
Added: Justified text formatting options (patch #1160562 from ChrisKang)
Added: typedef to define DefaultWindow (allowing use of new name in code rather than old DefaultGUISheet class)
Added: Image::getSourceTextureArea method.
Added: argb_t to represent ARGB colour values instead of ulong.
Added: Implementation of 'dead pool' for deferred deletion of Window objects (allows Window destruction from within own event handlers)
Added: New option to Window to state whether 'captured' inputs are distributed to child windows.  (Fixes various behavioural bugs)

Modified: Changed ResourceProvider system to support 'unloadRawDataContainer' method, to resolve various memory related issues (Patch #1176745)
Modified: Xerces schema loading to try to get the schema file from the same directory as the xml file being loaded when the default path fails.
Modified: Changed logger from using gmtime to localtime.
Modified: Changed CEGUIBASE_API to CEGUIEXPORT throughout the code.  This is in preparation for some Linux ABI improvements.
Modified: Changed FrameWindow titlebar imagery rendering under WindowsLook to look better when titlebar is larger than 'normal'.
Modified: MSVC build to fix alot of compile warnings when including CEGUI from outside the project.
Modified: occurances of 'const static' with 'static const' (via a patch from Clay)
Modified: Logging system so logging begins earlier in system creation.
Modified: EventSet::fireEvent so that global event is fired before the local instance event.  (Request #1144062).
Modified: FontManager now automatically sets the first Font created as the default.
Modified: Updated Irrlicht renderer components to take resourceGroup parameter.

Bug Fix: testClassName const correctness.
Bug Fix: Made System::handleDisplaySizeChange notify imageset manager and fontmanager of change.
Bug Fix: OpenGL types causing issues on MacOS X Tiger (patch #1200625)
Bug Fix: Added /usr/X11R6/include as a include search path for OSX
Bug Fix: Empty lines issue with word-wrapped text formatting (patch #1175118)
Bug Fix: Win32 fix (fabs -> fabsf to avoid double-to-float warning treated as error)
Bug Fix: MultiColumnList::setItem was setting owner on new item without checking new item was valid.
Bug Fix: MultiColumnList::setItem checking 'isAutoDeleted' on new item (which could also be null), instead of old item.
Bug Fix: Vertical scrollbar access properties were broken.
Bug Fix: Anti-alias setting for fonts.
Bug Fix: Issues where Logger was needed before it was created.
Bug Fix: Horizontal scrollbar would sometimes have wrong length.
Bug Fix: Issues with STLport where functions are not correctly in the std (_STL) namespace.
Bug Fix: Debug guard controlling Insane level logging was around the wrong way.


Release 0.2.1
=============
Added: Spinner widget.
Added: ScrollablePane widget.
Added: Tooltip widget.
Added: RPM spec file.

Modified: In the Xcode build, changed framework name to CEGUI instead of CEGUIBase (for Ogre's CEGUI renderer).
Modified: Promoted custom image properties for PushButton from 'look' modules into base class.

Bug Fix: Some delete/delete[] issues for String class fixed, moved all String delete usages into .cpp file.
Bug Fix: Modification to ensure stable index values for tab buttons and tab content.
Bug Fix: Spacing between non-autoscaled bitmapped font glyphs was incorrect.
Bug Fix: FrameWindow title bar and close button were still clipped when clippedByParent was false.
Bug Fix: Text extents calculations were incorrect under certain cicumstances.
Bug Fix: Added a work around for over-optimisation bug in MulticolumnList under VC++.
Bug Fix: WindowsLook titlebar was not using correct set caption colour.
Bug Fix: OpenGL configure options did not function correctly.
Bug Fix: In System constructors the logfile parameter was missing a const specifier.
Bug Fix: Direct3D renderers had missing cull mode state setting.
Bug Fix: SimpleTimer::elapsed was returning incorrect values.
Bug Fix: Removed incorrect usage of Win32 dll import/export construct from enums.
Bug Fix: List box items (ListboxTextItem) suffered from a cumulative alignment issue.
Bug Fix: Fixed a type conversion warning in CEGUIFont for MSVC++.
Bug Fix: Baseline and Linespacing calculations for bitmapped / static fonts was incorrect.
Bug Fix: 'make dist' fixed on linux.


Release 0.2.0
=============
Added: Support for resource provider resource groups to loading & parsing methods.
Added: MouseButtonDown event auto-repeat feature.
Added: System::getSystemKeys method to return current system keys value.
Added: New setting in Window to receive muliple mouse down events instead of double/triple clicks.
Added: Ability to define split direction of triangles used for quads
Added: Font::getFontHeight method to return pixel height of largest glyph.
Added: Error logging for when freetype fails to load a glyph.
Added: Various new methods to TabCrontrol base class.
Added: Callback support when setting properties loaded from XML layout files.
Added: Checking and inspection of default values for Properties system.
Added: Global events system.
Added: Vertical VU-Meter style progress bar to Taharez Look.
Added: Extensions to font system which give support for scaling the text output.
Added: Support for MSVC++ 6.0 native STL implementation.
Added: Font::getPointSize() method to return point size of a dynamic font.
Added: Mechanism for Direct3D renderers to detect display size changes and fire EventDisplaySizeChanged.
Added: Lost device recovery for both Direct3D renderer modules.
Added: SchemeManager::unloadAllSchemes method.
Added: Initial system for time based updates / window automation.
Added: CEGUI::System constructor overload to allow custom ResourceProvider to be specified when also using a ScriptModule.
Added: OpenGL renderer.
Added: uint32 and uint16 datatypes.

Modified: Layout loading code to properly throw CEGUI errors out of xercesc parser.
Modified: Fixed font support under AMD64.
Modified: Changed all const strings in the base library to be of type CEGUI::String instead of UTF-8 buffers.
Modified: Removed public dependency on xerces-c (still required for base library itself though).
Modified: Replaced dependency boost::regex with embedded copy of pcre.
Modified: Replaced dependency boost::timer with SimpleTimer class.
Modified: TabCobtrol widget now uses '__auto_' naming scheme for generated child widgets.
Modified: Global update of website, contact, and copyright information.

Bug Fix: moveToBack was operating upon and adding target window to its own child list instead of its parents.
Bug Fix: Editbox changed to allow text to be altered in onTextChanged/EventTextChanged without causing carat position to become invalid.
Bug Fix: Font updated to use correct values for Linespacing and Baseline.
Bug Fix: Added various missing includes.
Bug Fix: Minor adjustment to layout in TLComboEditbox to fix text clipping issue.
Bug Fix: Text alignment within gui elements.
Bug Fix: Drag-Sizing for segments would be incorrect if they had negative relative 'left' positions.
Bug Fix: Some component widget layouts were getting incorrect sizes.
Bug Fix: Fixed minor imagery alignment issue for Taharez frame window imagery.
Bug Fix: Child windows would sometimes 'jump' slightly upon initial activation of a parent window.
Bug Fix: System::setGUISheet updated to trigger re-calculation of relative co-ordinates when a new window is attached as root.
Bug Fix: removed use of void* in properties system to ensure correct casting behaviour.
Bug Fix: All imagery aligned to whole pixels resolving twinkling and blurring issues.
Bug Fix: Constructor overload and support methods to allow successful use of 'pure' D3D devices.
Bug Fix: Made sure events were added to the EventSet in Window before making any calls that may fire an event.
Bug Fix: Various other minor tweaks & fixes.

OgreGUIRenderer moved from CEGUI codebase into Ogre codebase (with the following initial changes):
Modified: Switched HBU_DYNAMIC_WRITE_ONLY for HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE in Ogre renderer to improve performance under D3D.
Modified: OGRE renderer to work under AMD64.
Modified: Ogre renderer to compile against OGRE 1.0 (Ogre >= 1.0.0 is now required)
Bug Fix: Missing shading type and rasterisation mode settings in Ogre renderer added.


Release 0.1.1
=============
Updated TODO file to reflect features already implemented in this branch.
Bug Fix: Missing shading type and rasterisation mode settings in Ogre renderer
Bug Fix: Removed erroneous use of D3DLOCK_DISCARD flag in D3D8 renderer (texture.cpp)
Bug Fix: Dates in the log were using incorrect value for the month.
Bug Fix: Added missing stdio.h include in CEGUIWindow.cpp.
Bug Fix: Font attribute "AntiAlias" was incorrectly documented as "AntiAliased".
Bug Fix: d_resourceProvider member in Renderer base class was not being initialised
Bug Fix: corrected version information in configure.ac.
Bug Fix: Resolved assert issues related to the Ogre debug memory manager.
Bug Fix: Y Spacing calculation on certain ttf fonts was incorrect.
Bug Fix: Added missing _STLP_DEBUG defines in the MSVC++ 7.0 projects.


Release 0.1.0
=============
Initial release.