Crazy Eddies GUI System  0.7.9
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
Change Log

The following is a high-level view of changes made to Crazy Eddie's GUI System for each release.

Release 0.7.9

  • Documentation: Update references to sf.net repos to bitbucket.org

Release 0.7.8

  • Bug Fix: Non-client windows using rendering surface were clipped to client area.
  • Bug Fix: Child content was not always updated when FrameWindow rollup toggled.
  • Bug Fix: VertScrollbar ScrollablePane properties accessing values for horizontal bar.
  • Bug Fix: Tab buttons sized to raw text width, not RenderedString width.

Release 0.7.7

  • Modified: Detect python header in a /slightly/ less horrible way.
  • Modified: Refactor Window::onParentSized to not abuse Window::setArea_impl.
  • Modified: refactor some Window implementation: mostly breaking up setArea_impl, and then reducing some code repetition elsewhere.
  • Modified: Add support for lua 5.2. This includes detection of newer package as well as fixes to the Lua module and the embedded tolua++ lib (patch from 'worldcitizen' on the forums). See: http://www.cegui.org.uk/mantis/view.php?id=776
  • Added: PropertyDefinitions to set colours on TaharezLook/ImageButton.

Release 0.7.6

  • Modified: Move to system default compiler and system default OS X SDK in order that ppl are not forced into having specific versions of the dev tools installed (and by 'people', I mean me :-p)
  • Added: Functions that allow people to do useful things in WindowRenderer implementations (and other places).
  • Added: InventoryDemo.
  • Added: Null animation name support
  • Added: isAnimationPresent
  • Added: Eol extension + it's settings so Windows developers don't pollute the repo with CR LF
  • Added: RadioButton to Vanilla, via patches from Ident.
  • Added: Checkbox to Vanilla skin, via patches from Ident.
  • Added: Window::getZIndex, Window::isInFront and Window::isBehind functions to enable client code to discover z-ordering of windows.
  • Documentation: Update docs to reference the mercurial repositories rather than subversion.
  • Documentation: Fix typo in ImageDim example. Thanks to Ident.

Release 0.7.5

  • Added: Initial version of the officially supported Python extension modules:
    • PyCEGUI - Support for the core CEGUI library.
    • PyCEGUIOpenGLRenderer - Support for the OpenGL based renderer.
    • PyCEGUIOgreRenderer - Support for the Ogre based renderer.
    • PyCEGUINullRenderer - Support for the Null renderer.
  • Modified: Grimmigbeisser's patch improving the menu system - automatically opening/closing popups after certain time, closing all nested popups when their parent is closed and PopupOffset (closes http://www.cegui.org.uk/mantis/view.php?id=408)
  • Documentation: Kulik is a team member now!

Release 0.7.4 This version was issued as an 'emergency release' to fix the following:

Release 0.7.3

  • Modified: Fire Combobox::EventListSelectionAccepted /after/ activating the editbox part of the control, which should allow handlers to pop-up and activate other windows.
  • Modified: Changed default setting in lua module target in Xcode so the release build is not built with the 'safe' mode enabled.
  • Modified: Apply Kulik's animation system patch that allows skipping of the next frame when things are lagging after an anim (re)start.
  • Modified: Applied Kulik's layout container patch to address some nested container issues. NB: Part of this change makes Window::update function virtual.

Release 0.7.2

  • Modified: Change comments in config.lua to clarify how CEGUI_EXTRA_PATHS should be used, and to give a more accurate example.
  • Modified: Always output exception messages to stderr.
  • Modified: Update embedded GLEW lib to the latest version (1.5.4), including modification to work around GL typedef differences in the OS X 10.4 SDK.
  • Modified: Cleanup Irrlicht event pusher + don't force initially centred mouse position.
  • Modified: Replace DriveIcons with a version we can be sure about the copyright status of. Prior version appears to use non free imagery for some icons.
  • Modified: Replace try / catch / throw with macros CEGUI_TRY / CEGUI_CATCH / CEGUI_THROW. This was done to attempt to fill this request: http://www.cegui.org.uk/mantis/view.php?id=242. Note that there is no added setting for this, and no 'built in' mechanism that calls a user function. The use of the macros does however allow users to pre-define the macros to do something different. This said, tests show that the likelyhood of anybody actually being able to easily pull of a modification that allows exceptions not to be used - for example, by using the mechanism suggested in the first post of the topic linked in the mantis ticket - is pretty much non-existant. At least having this provision allows them to prove it to themselves, because, as with the OP in that topic, they don't seem to believe you when you tell them ;)
  • Modified: Update some window / looknfeel config to enable mouse event propagation for some compound widgets to restore common behaviours. For: http://www.cegui.org.uk/mantis/view.php?id=318
  • Modified: When frame window roll-up state is toggled, invalidate recursively so that child content visuals are forced to redraw.
  • Modified: Update to use Automake 1.10
  • Modified: Switch Xcode back to using a static set up for Irrlicht SDK (since they no longer appear to use a framework for mac)
  • Modified: Changes to allow better control over rendering processes when using the Ogre renderer.
  • Modified: Disable version suffix on MinGW / autotools build by default (because loading modules still does not work due to libtool using a '.' delimiter on *nix and '-' on MinGW).
  • Modified: Clean up the scroll bar cpp/h files, applying code standards and formatting.
  • Modified: Cleanup the CEGUIDefaultResourceProvider.cpp file and to start logging the full filename in errors as opposed to just the local resource name part.
  • Modified: Make interface for banning Window properties from XML output public (and extend it a little, too)
  • Modified: Update Demo7 to use a mapped window type that automatically gets the wobbly effect set for each instance.
  • Modified: Update Demo7 to use the RenderEffectManager instead of creating the effects directly (though that is still supported, if someome wants to do that).
  • Modified: In the samples, don't grab the mouse and keyboard in debug builds when using Ogre under X.
  • Modified: Make Listbox::getItemAtPoint function public. IMPORTANT: The Point object passed has changed from being a window local position to being a screen position!! See: http://www.cegui.org.uk/mantis/view.php?id=319
  • Added: saveWindowLayout functions to WindowManager to enable saving directly to a named file.
  • Added: explicit copy constructors for some of the basic data types; to aid in binding other languages :) Thanks to Kulik.
  • Added: Kulik's integrated animation system. TODO: add XML writing code.
  • Added: LayoutContainer classes to automate layout of child windows. Contributed by Kulik (Martin Preisler). Fills this: http://www.cegui.org.uk/mantis/view.php?id=214.
  • Added: Window::getChildWindowContentArea (and associated virtual _impl functions) to allow separation of areas used for clipping and those used for positioning and sizing child content. This is actually required to be able to reliably set up clipping for certain special cases - such as ScrollablePane - which would fail previously under some scenarios.
  • Added: Support for useful help strings for properties defined in Falagard XML.
  • Added: bootstrapSystem / destroySystem functions for the D3D based renderer modules + move samples over to using that func.
  • Added: Functionality to enable client code to easily invalidate all cached rendering data, so that on the next redraw everything is regenerated.
  • Added: MouseCursor::invalidate function to allow client code to invalidate cached mouse cursor geometry.
  • Added: Setting to ListboxTextItem that allows text tag parsing to be disabled.
  • Added: bootstrapSystem / destroySystem helpers on OpenGL renderer. Preparation work to simplify / unify system creation for all official renderers (and make coming tutorial update easier to write!) NB: same update to D3D renderer modules will follow some time soon.
  • Added: RapidXML based XML parser module contributed by Jay Sprenkle. See: http://www.cegui.org.uk/mantis/view.php?id=358 and http://www.cegui.org.uk/phpBB2/viewtopic.php?f=5&t=4822.
  • Added: D3D11 Renderer code contributed by e3d_alive. This requires the updated 0.7.x-r2 dependency packs to build. Note that while the /build/ is tested and seems ok, currently the code itself is completely untested (will try to add a samples base app to test this over the weekend or next week).
  • Added: Function to IrrlichtGeometryBuffer to retrieve the irr::video::SMaterial associated with the GeometryBuffer. See: http://www.cegui.org.uk/mantis/view.php?id=363
  • Added: Ability to specify initial mouse cursor position.
  • Added: Function to allow explicit setting of the size at which to render the mouse cursor image. See: http://www.cegui.org.uk/mantis/view.php?id=356
  • Added: OgreTray skin - a recreation of the OgreSDKTrays UI as used in the Ogre samples.
  • Added: Function to OgreRenderer that allows client code to change the Ogre::RenderTarget associated with the default rendering root. Thanks to kornerr for suggesting and testing ;)
  • Added: MinizipResourceProvider code as contributed by Jamarr (See: http://www.cegui.org.uk/mantis/view.php?id=345) Also adding C++-ified versions of 'unzip' parts of Minizip project needed by the above.
  • Added: Added new 'utf8string' type to tolua++cegui so we can support utf8 string data in lua scripts. For: http://www.cegui.org.uk/mantis/view.php?id=302
  • Added: Setting to control whether unhandled mouse input should be propagated back to the parent Window. This is the code side of the fix for: http://www.cegui.org.uk/mantis/view.php?id=318. Looknfeel updates (which will make the fix 'work') to follow shortly.
  • Added: CEGUI::OgreRenderer::initialiseRenderStateSettings() function added in order to allow user to re-initialise the render states that CEGUI uses (and without any fear of the dreaded Ogre::RenderSystem::_beginFrame double-call).
  • Added: The following support to Section specifications in Falagard:
    • controlValue attribute: specifies an optional 'test' value that the controlProperty's fetched value will be compared against when determining whether to render the section (if they match it is draw, otherwise it's not). If this is empty the property is treaed as boolean (as before).
    • controlWidget attribute: specifies an optional widget identifier that will be used as the source of the property named by controlProperty. This can be a child widget suffix or the special 'parent' value. If this is empty, the window being drawn is used as the source (as before).
  • Added: Ability for PropertyLinkDefinition to create links back to the parent window via a special widget value of parent
  • Added: 'end lock' mode to Scrollbar. With this mode enabled the Scrollbar will automatically maintain it's position at the end of the scrollbar's travel (useful to implement auto-scrolling of content). See: http://www.cegui.org.uk/mantis/view.php?id=315
  • Added: Scrollbar::setConfig function allowing updating of multiple parts of the Scrollbar configuration at once (which allows the user to avoid triggering multiple unneccessary updates). See: http://www.cegui.org.uk/mantis/view.php?id=316
  • Added: New PropertyLinkTarget support to PropertyLinkDefinition. This new support allows a one to many mapping for property links, allowing a single property on a containing window to update multiple child properties simultaneously. See: http://www.cegui.org.uk/phpBB2/viewtopic.php?f=5&t=4666
  • Added: MSVC++ / premake setting to allow some of the debug build STL iterator checks to be disabled, thus giving performance improvements to debug builds. Generally these checks would only be useful for people debugging CEGUI itself, though they're still on by default - at least for now. See: http://www.cegui.org.uk/phpBB2/viewtopic.php?f=10&t=4630
  • Added: CEGUINullRenderer - useful for hdealess testing of CEGUI. Written by Eugene Marcotte (thanks!)
  • Added: New window update mode setting that allows some control over the calling of the Window::update function. This defaults to WUM_VISIBLE for most window types, which is a large optimisation. Many thanks to Jabberwocky. See: http://www.cegui.org.uk/phpBB2/viewtopic.php?f=3&t=4500
  • Added: Window::moveInFront and Window::moveBehind functions to allow fine grained control over the z-ordering of sibling windows. See: http://www.cegui.org.uk/mantis/view.php?id=300
  • Added: Provision to premake system to support addition of custom header and library search paths to any CEGUI project. See: http://www.cegui.org.uk/phpBB2/viewtopic.php?f=10&t=4616
  • Added: Add option in premake files to allow static builds of CEGUI to link against the DLL based dependencies and C/C++ runtime. This helps some integration issues with other libs. See: http://www.cegui.org.uk/phpBB2/viewtopic.php?f=10&t=4618 (my posts)
  • Added: Facility in WindowRenderer interface to allow subclasses to indicate whether registered properties should be added to the 'ban' list for the target window.
  • Added: New LineSpacing attribute for FreeType style fonts allowing override of line spacing in underlying font files. From patch by 'codeka'. See: http://www.cegui.org.uk/phpBB2/viewtopic.php?f=3&t=4605 and http://www.cegui.org.uk/mantis/view.php?id=326
  • Added: Support for 'RenderEffect' attribute / setting on Falagard mapped types - allows automatic setup of render effects specified in schemes.
  • Added: New RenderEffectManager singleton to act as a means to register RenderEffects with the system in a central place. This will eventually be used with the scheme system to allow effects to be specified there.
  • Added: Lua support for function Listbox::getItemAtPoint (actual binding needs regenerating, will come later after other possible updates to packages).
  • Added: Notification message to OpenGL renderer ID string when glBlendFuncSeparate support is missing.
  • Added: Add options to premake build that allow control over which build configurations will be available in the solution / project files.
  • Deleted: Removed RightWindow enumerated value from CEGUI::Key::Scan enumeration. Sorry if this breaks your stuff, but we needed this!
  • Deleted: Remove unneeded 'keepme' files left over from the CVS days.
  • Deleted: Remove the premake batch files for the unsupported 2002 version compiler.
  • Documentation: Remove reference to premake 3.1 and link to our custom premake instead.
  • Documentation: Add documentation file that has licensing info for the media files.
  • Documentation: Fix issue where we referenced non-existent class. See: http://www.cegui.org.uk/mantis/view.php?id=331 NB: Will upload fixed version to docs/current later on today.
  • Documentation: Fix issues where references were made to incorrect or non-existant classes. See: http://www.cegui.org.uk/mantis/view.php?id=330 NB: Will upload fixed version to docs/current later on today.
  • Documentation: Update event name documentation with information about the specific EventArgs subclass that gets passed to subscibed event handlers. See: http://www.cegui.org.uk/mantis/view.php?id=321
  • Documentation: Misc. minor fixes and updates to some of the docs.

Release 0.7.1

  • Bug Fix: Ensure –includedir configure option is respected.
  • Bug Fix: Issue of Window's local GeometryBuffer translation not being reset when Window gets given a surface after initial creation.
  • Bug Fix: Issue of Window's RenderingWindow rotation pivot point not getting updated as window's area size changes.
  • Bug Fix: Issue of rendering window surfaces not getting correctly transferred under all circumstances.
  • Bug Fix: Double-deletion of non-system created ImageCodec when linking statically. See: http://www.cegui.org.uk/phpBB2/viewtopic.php?f=10&t=4414
  • Bug Fix: Do not log non-errors as errors when using minibidi. See: http://www.cegui.org.uk/phpBB2/viewtopic.php?f=10&t=4356
  • Bug Fix: MultiColumnList bug where row inserted into sorted list was not passing on input row_id value.
  • Bug Fix: Static builds linked (incorrectly) against runtime DLLs. This is now fixed.
  • Bug Fix: Change the size calculations for the editbox portion in the WidgetLook definitions for the Combobox. See: http://www.cegui.org.uk/phpBB2/viewtopic.php?f=9&t=4382
  • Bug Fix: update package config files to specify the correct library names when a build suffix is used.
  • Bug Fix: OpenGL based texture targets would fail after calls to grabTextures / restoreTextures. NB: Still to test fix on Apple and WGL.
  • Bug Fix: in OpenGL Texture, only allow a single grabTexture to occur.
  • Bug Fix: UnifiedMaxSize property had incorrect default value string. See: http://www.cegui.org.uk/mantis/view.php?id=313
  • Bug Fix: For Unified metrics, in the divide by zero case, set the compoent part to zero (not correct, but maybe argued better than doing nothing). See: http://www.cegui.org.uk/phpBB2/viewtopic.php?f=3&t=4403
  • Bug Fix: Set size on dialogs in the ScrollablePane demo in order that the drag-sizing code works right :-p
  • Bug Fix: ScrollablePane issues:
    • Broken hit-testing of content initially outside the view pane (this was broken in 0.7.0 when inner-rect fix was made).
    • Broken relative co-ords of added content (incorrectly used size of content pane as base rather than ScrollablePane inner-rect).
    • Broken positioning of (0, 0) point of content pane (prevented content from being offset correctly).
  • Bug Fix: Ensure base co-ords used for window to screen conversions are pixel aligned. This fixes issues caused by per-window geometry buffer translations (and associated clippers) not being pixel aligned and causing blurred imagery.
  • Bug Fix: Remove redundant offset translation from OpenGL renderer module (was not doing anything because it should have been before the 'get', but this offset is not needed anyway).
  • Bug Fix: issue in MultiLineEditbox where caret position gets messed up when backspace deleting the last character.
  • Bug Fix: Ensure looknfeel based content (auto window content) is layed out prior to notifying other content about size changes, this is required because the inner-rect area may rely on the size or position of this auto window content.
  • Bug Fix: Issue where CEGUI::Window check for size change did not consider the fact that although the outer rect has not changed, the inner rect still may have - for example as a result of imagery auto-scaling.
  • Bug Fix: Textures in cached geometry may become invalid after a display / host window resize, so we must ensure all cached geometry is regenerated by invalidating all windows.
  • Bug Fix: Window rect area / window position would not always be updated when using alignments other than top/left.
  • Bug Fix: Updates required to work with Irrlicht 1.6 final release. See: http://www.cegui.org.uk/phpBB2/viewtopic.php?f=10&t=4393.
  • Bug Fix: XMLParser::initialise was not being called when linking statically.
  • Bug Fix: Issue where a root GUISheet with mouse pass through enabled would still consume a mouse button down event if the window was not already active. See: http://www.cegui.org.uk/mantis/view.php?id=309
  • Bug Fix: D3D9 renderer was not setting View matrix back to identity prior to rendering, thus allowing potential funkiness to ensue ;)
  • Bug Fix: Minor tweak so premake scripts work correctly when using premake 3.7.
  • Bug Fix: Issue where window positions with purely absolute positioning would not trigger update of the the GeometryBuffer translation vector under various circumstances. See: http://www.cegui.org.uk/phpBB2/viewtopic.php?f=10&t=4365.
  • Bug Fix: In MCL insertion point when adding content to a sorted list did not correctly take into account the sort direction. See: http://www.cegui.org.uk/phpBB2/viewtopic.php?f=3&t=4360
  • Bug Fix: Resolve issue where a non-splitting RenderedStringComponent could cause a hang in the RenderedStringWordWrapper class. See: http://www.cegui.org.uk/mantis/view.php?id=306
  • Bug Fix: The Editbox classes would incorrectly parse the input text and potentially cause exceptions based upon user input (See: See: http://www.cegui.org.uk/mantis/view.php?id=308). This fix is a multi-part enhancement in order to correctly and cleanly enable effective disabling of parsing, consisting of the following:
    • Add static DefaultRenderedStringParser to Window for use when normal parsing is disabled.
    • Add member functions, property and event based around enabling and disabling text parsing.
    • Update editbox classes to disable parsing by default.
  • Bug Fix: Resolve issue with FrameWindow content layout for cases where FrameWindow is initially hidden. See: http://www.cegui.org.uk/phpBB2/viewtopic.php?f=10&t=4357
  • Bug Fix: Resolve (hopefully, anyway) issues relating to our not checking for support for NPOT textures in the OpenGL renderer (NB: WGLPBuffer versio still to be tested). See: http://www.cegui.org.uk/mantis/view.php?id=307
  • Bug Fix: Irrlicht renderer issues where driver capabilities were not checked correctly before using possibly unsupported facilities. See: http://www.cegui.org.uk/mantis/view.php?id=305
  • Bug Fix: Issue of MultiLineEditbox not being initialised correctly (no initial terminating
    being set). See: http://www.cegui.org.uk/mantis/view.php?id=304
  • Bug Fix: Do not optimise debug build on the Mac.
  • Bug Fix: Fix incorrect SVN URLs in documentation.
  • Bug Fix: Crash in Ogre based texture target, where we may inadvertently restore a deleted viewport to the render system.
  • Modified: Introduce OpenGLTextureTarget common base class for all the various texture targets supported.
  • Modified: Allow use of alternative names for named areas in the Listbox WidgetLook (looknfeel). This allows unified names for Listbox and ItemListbox in order that the same WidgetLook definition may be used for both. See: http://www.cegui.org.uk/mantis/view.php?id=314
  • Modified: Correct license information in the TreeDemo files.
  • Modified: Update license info from LGPL to MIT (change applied with original author's permission).
  • Modified: Updated the Groupbox license to MIT. This has been approved by Levia, the author.
  • Modified: Changes to FontDemo:
    • Auto load all fonts in resource group "fonts"
    • Each language now has a 'preferred font' name specified.
    • Language only shows in list if preferred font is loaded.
  • Modified: Allow Window subclasses to override the code that sets the various window region rect areas (inner, outer, clippers and hit-test).
  • Modified: Update CEGUI premake system for use with static dependency libraries in static builds. IMPORTANT NOTE: All MSVC++ users - you MUST now use the new 0.7.x-r1 dependency packages and not the previous 0.7.x packs.
  • Modified: Optimise FrameWidow drag-sizing code so that Window::setArea_impl is not called twice when a sizing operaion involves two edges.
  • Modified: Some optimisations in Falagard StaticText renderer to reduce unneccessary text formatting calls (which have the potential to be very expensive).
  • Deleted: Remove Commonwealth, Iconified and Sword fonts due to possible licensing issues.

Release 0.7.0

  • Complete rendering subsystem / renderer module rewrite:
    • Window system now caching at the geometry level, eliminating vast amounts of redraw calculations.
    • Support for caching imagery to texture, eliminating large amounts of redraw work.
    • Support for targeting Window sub-heirarchies to separate rendering surfaces (still many user-friendliness work and other fixes to do here).
    • Support for a RenderEffect system allowing custom geometric and shader based effects for Window objects.
    • Support for three axis rotation of texture backed Windows and other GeometryBuffer content.
    • Additional notes:
      • Removes: Support for D3D 8.1 based renderer.
      • Removes: Support for compiling against Irrlicht versions below 1.4.
      • DirectFB support currently broken.
  • Added new string rendering enhancements, current version provides:
    • Extensible RenderedStringParser system.
    • Base support for parsing formatting tags in strings:
      • Support for [font] tag to enable multiple fonts per text string.
      • Support for [colour] tag to enable multiple colours per text string.
      • Support for [image] tag to enable embedding of images in strings.
      • Support for [window] tag to enable aligning child window/widget content in-line with other string rendering.
  • Added: Added 'sticky' mode to DragContainer. See: http://www.cegui.org.uk/mantis/view.php?id=129
  • Added: Common optional Falagard based NamedArea of 'inner_rect' that is looked up and used for the inner/client area of a window (unless other specific named areas are used by a specialised WindowRenderer). Final addition for: http://www.cegui.org.uk/mantis/view.php?id=260.
  • Added: Option for the caret used with Editbox and MultiLineEditbox to blink with an adjustable timeout / blink period. Implemented for: http://www.cegui.org.uk/mantis/view.php?id=227
  • Added: possibility for time based update of a WindowRenderer (allows WR based animation / automation).
  • Added: option to disable building the CEGUI::DefaultLogger object. NB: In this case a suitable alternative must be provided and instantiated prior to creating the main CEGUI::System object. See: http://www.cegui.org.uk/mantis/view.php?id=243
  • Added: Option to disable the use of the freetype2 external library. See: http://www.cegui.org.uk/mantis/view.php?id=240
  • Added: Option to configure CEGUI so that it does not require the PCRE dependency (disabling this will cause attempts to set the validation string - such as what the spinner does in it's constructor - to throw InvalidRequestException). See: http://www.cegui.org.uk/mantis/view.php?id=241
  • Added: Option to autotools build to enable some configuration of the version suffix that's now appended on those builds.
  • Added: Option to autotools build to specify a general suffix that's added to the name of binary output for autotools builds. This enables the installation of multiple versions based upon different configuration and build options (similar to what we have with MSVC++ and the _d suffix for debug builds). See: http://www.cegui.org.uk/mantis/view.php?id=274
  • Added: Facility for resource system to load all resources matching a given pattern from a specified resource group (on a per resource type basis). For: http://www.cegui.org.uk/mantis/view.php?id=190
  • Added: Add property to XercesParser to access the default schema resource group (allows setting of this without needing to explicitly link to XercesParser module lib).
  • Added: Event notification via WindowManager for Window object creation and destruction.
  • Added: Added bi-directional text support contributed by Assaf Raman. See: http://www.cegui.org.uk/mantis/view.php?id=268. NB: Not supported by MultiLineEditbox (yet).
  • Added: Implementation of an ImageCodec that goes via the Ogre image loading facilities. NB: This is provided as an 'integrated' class as opposed to a loadable module since it's a more consistent approach for an engine specific entity such as this.
  • Added: Implementation of an ImageCodec that goes via the Irrlicht image loading facilities. NB: This is provided as an 'integrated' class as opposed to a loadable module since it's a more consistent approach for an engine specific entity such as this.
  • Added: Support for adding WindowRendererFactory objects via a template function to allow CEGUI to create and manage the factory instances (rather than having to have them pre-created).
  • Added: Dialog based implementation of a renderer selector for the Mac.
  • Added: MSVC++ 2008 batch files for project generation, cause the premake support seems to work.
  • Added: Event notifications for main resource actions (create, destroy, replace).
  • Added: Doxygen based supporting documentation and tutorials.
  • Added: Doxygen based version of Falagard skinning documentation (which will now become the only maintained version of that material).
  • Added: Template based system for WindowFactory creation:
    • Removes the need to manually create supporting structure when adding new Window types.
    • Dispenses with the need to use the macro nastiness previously employed.
    • No longer need to have statically created factories laying around.
  • Added: Apply patch: http://www.cegui.org.uk/mantis/view.php?id=275 that adds some extra support for TreeItem to the lua module.
  • Removed: deprecated Window::doRiseOnClick function.
  • Removed: Formatting related functions from Font.
  • Removed: Duplicate text formatting enumerations - now using a single version (the HorizontalTextFormatting and VerticalTextFormatting enums in the CEGUIFalEnums.h file)
  • Removed: Apple specific version of resource setup in samples (no longer required due to other improvements).
  • Modified: Changed key handling in editbox classes to allow user subscribed events to 'consume' keys and prevent the usual processing from occuring.
  • Modified: CEGUI::Exception to derive from std::exception (for: http://www.cegui.org.uk/phpBB2/viewtopic.php?f=5&t=4267 and others from waaay back).
  • Modified: Made CEGUI::LuaScriptModule constructor / destructor private - access is now via LuaScriptModule::create and LuaScriptModule::destroy static functions.
  • Modified: Made CEGUI::System constructor / destructor private - access is now via System::create and System::destroy static functions. Additionally, first parameter changed from being a Renderer pointer to a Renderer reference (reinforces that it may not be 0).
  • Modified: Switched to a single unified constructor for LuaScriptModule.
  • Modified: Change names of renderer modules and libs produced under premake/MSVC++ to match those produced by other methods (i.e. CEGUIOpenGLRenderer instead of OpenGLGUIRenderer)
  • Modified: Change access protection on CEGUI::Tree::getItemAtPoint from protected to public. See: http://www.cegui.org.uk/phpBB2/viewtopic.php?p=15576#15576
  • Modified: Switch from libtool ABI versioning to release versioning. This is related to this: http://www.cegui.org.uk/mantis/view.php?id=197 in reagrd to our continual breaking changes, but also solves issues of plugin/loadable module version conflicts, and effectively allows side-by-side installations of multiple versions of the binary.
  • Modified: Prevent copy and assignment for Singleton based objects (the compiler error helps people spot common usgae mistakes). See: http://www.cegui.org.uk/mantis/view.php?id=203
  • Modified: Changed the system default 'single-click' timeout from 0.2 to 0 (infinite). See: http://www.cegui.org.uk/mantis/view.php?id=209
  • Modified: Changed default state of inherited tooltip text from false to true. See: http://www.cegui.org.uk/mantis/view.php?id=204
  • Modified: Replaced the old config file support with something more comprehensive and useful. See: http://www.cegui.org.uk/mantis/view.php?id=189
  • Modified: Disable optimisation in the ReleaseWithSymbols config. See: http://www.cegui.org.uk/mantis/view.php?id=293
  • Modified: Made ListboxItem::setText virtual.
  • Modified: FreeTypeFont to output more detailed error info when creating a font face fails.
  • Modified: XMLParser now becomes a PropertySet.
  • Modified: Relax requirement that the target of a window alias exists before creating the alias.
  • Modified: Relax requirement to have imageset / font names specified in schemes along with the names of files.
  • Modified: Simplify and (largely) unify resource group initialisation for sample base apps.
  • Modified: Added build and system information to the logged version string.
  • Modified: Window::isHit (and some other related funcs) has an added boolean to allow disabled windows to be correctly hit-tested when needed.
  • Modified: Changed the way that a 'Window Renderer Set' loadable module is composed. Moving away from using a macro based approach to a class based approach. This makes creation of these modules much easier and cleaner; it's also more transparent, since everyone understands classes, whereas probably nobody knew what was going on behind those macros!
  • Modified: Update the Falagard window renderer set to use the new class based specification system.
  • Modified: Completely replaced old Xcode project with a new one.
  • Modified: Rewrote Mac bundle loading to look in 'PlugIns' locations instead of 'Resources' locations.
  • Modified: Change Sample base application so that on that Mac it successfully fetches the path of the datafiles directory within the app bundles Resources (now we don't have to rely on working directory being unmodified).
  • Modified: Core resource loading (Scheme, Font, Imageset) to support differing actions based upon loading a resource with a name that already exists in the system.
  • Modified: Regular expression library use abstracted via CEGUI::RegexMatcher (available internally only at the moment!)
  • Modified: PCRE usage now via a PCRE based implementation of CEGUI::RegexMatcher.
  • Modified: Internal Window class changes to (try to) overcome confusing usage of all those d_screen* rect members and a bunch of getters with unclear names:
    • getUnclippedPixelRect is renamed to getUnclippedOuterRect
    • getUnclippedInnerRect is unchanged.
    • getPixelRect is renamed to getOuterRectClipper and is intended only for the use of rendering calculations.
    • getInnerRect is renamed to getInnerRectClipper and is (again) intended only for the use of rendering calculations.
    • Added a getUnclippedRect function that can return either inner or outer area dependant upon the value passed.
    • Added a getClipRect function that can return either inner or outer area dependant upon the values passed.
    • Added a new area specifically for hit testing and such, fetched with getHitTestRect. NB: This was added since the other area rects are not reliable for hit testing due to the fact things may or may not being clipped when rendered to a texture target.
  • Modified: Input injection and Event changes:
  • Modified: Complete restructuring of the source tree (for cleanup and improved consistency reasons, amongst other things).
  • Modified: FontDemo changes:
    • Added Vietnamese example text.
    • Added Japanese and Korean text + fonts
    • Select a default valid font when selecting a different language
    • Changed font in language list, because one was invisible (missing glyphs)
  • Modified: Warn user during samples premake, when both DX9 and DX10 are defined for static builds.

Release 0.6.2

Release 0.6.1

  • Modified: Changed Xcode build for the renderer frameworks so that headers retain their original subdirectory location; this aids in keeping client code portable.
  • Modified: Refactored tab removal code to eliminate repetition.
  • Modified: On linux, use installed system versions of tolua++ and TinyXML libraries if available (can be disabled to force continued use of internal versions). See: http://www.cegui.org.uk/mantis/view.php?id=198
  • Major update of Mac Xcode project. This attempts to achieve the following:
    • Update all existing targets in relation to added and removed source files.
    • Resolved some minor issues with custom scripts when rebuilding up to date targets.
    • Added targets for Demo6, Demo7, Demo8, DragDropDemo, InstancedWindows, TextDemo and TreeDemo (completing the set).
    • Added target for ceguitolua++ framework (needed for lua support and for lua samples to run).
    • Use of precompiled dependencies package from within local tree (upload to follow shortly, pending resolution of final remaining issues).
    • Dependency frameworks will now be embedded within whichever component uses them (as opposed to needing separate installation).
    • Sample apps now correctly work with embedded CEGUI frameworks and so should run anywhere without additional installation.
    • Modify samples app packaging to symlink the frameworks and datafiles, as opposed to actually copying - this vastly reduces the footprint of the development directory (at a small cost of flexibility).
    • symlink the output sample apps into the ./Samples/bin directory (using subdirs for each config)
    • Added required define in CEGUIConfig.h for Lua support
    • Updated default ImageCodec in CEGUIConfig.h to be SILLY
    • Big cleanup of the various targets so that common settings (virtually all settings, actually) can be set once at the project level rather than needing to be set separately on each target.
  • Bug Fix: Deleting/removing a menu item from a menu when the item had an active popup would result in a dangling pointer to the deleted/removed item.
  • Bug Fix: line endings and set missing svn:eol-style on all Tree related code files.
  • Bug Fix: Injection of mouse movements and mouse positions which did not actually reflect a change of mouse cursor position were still firing events and triggering side effects. See: http://www.cegui.org.uk/mantis/view.php?id=202
  • Bug Fix: ItemListbox::removeItem() was not checking if removed item was the one referenced in d_lastSelected, so was leaving a dangling pointer. See: http://www.cegui.org.uk/mantis/view.php?id=206
  • Bug Fix: The docs for the list widgets stated that the insert member would insert anitem after a given item, whereas the widget actually inserted the item before the given item. See: http://www.cegui.org.uk/mantis/view.php?id=205
  • Bug Fix: Exception message in postD3DReset member of the D3D renderers was incorrectly stating the exception as coming from from preD3DReset. See: http://www.cegui.org.uk/mantis/view.php?id=207
  • Bug Fix: double deletion issue in Corona based ImageCodec.
  • Bug Fix: MacRendererSelector had uninitialised member variable, causing incorrect behaviour.
  • Bug Fix: CEGUISamplesConfig.h is for Mac only now - removed conditionals that would bring in these options for Win32 (which uses premake).
  • Bug Fix: Fixed comment blocks to eliminate a constant stream of warnings (gcc) when building anything CEGUI related.
  • Bug Fix: Need to bring in CEGUIConfig.h when building CEGUILua.cpp in case we're on a Mac.
  • Bug Fix: Bug in CEGUIDevILImageCodec in which ILinfo structure is not inititalised to 0s prior to usage, causing random crashes.
  • Bug Fix: inclusion of config.h MUST be protected by a conditional that checks HAVE_CONFIG_H.
  • Bug Fix: Between the 0.5.0 and 0.6.0 releases the System::setDefaultXMLParserName function was bastardised to perform a function other than its intended purpose. This fix restores the intended behaviour of setDefaultXMLParserName and adds functions for setting the XML parser after System instantiation correctly. See: http://www.cegui.org.uk/mantis/view.php?id=186
  • Bug Fix: Issue of missing OpenGL render state initialisation when multitexture support is available. See: http://www.cegui.org.uk/mantis/view.php?id=201. NB: This also adds use of GLEW library (external (autotools) or embedded (all platforms)).
  • Bug Fix: uncomment part of cegui.lua configuration script that allows use of option to have Ogre in samples.
  • Bug Fix: pragmas for link libs in Ogre base app were incorrectly dependant on _WIN32 macro instead of _MSC_VER macro.
  • Bug Fix: Added extra pragma lines to bring in required OIS lib for the Ogre base app.
  • Bug Fix: Ogre base app now uses numKeyboards (was numKeyBoards) from OIS; this is what the OIS from the Ogre deps expects.
  • Bug Fix: Fixed documentation for MouseButton enumeration. Thanks to 'alphasnd'.
  • Bug Fix: UpdateEventArgs::d_timeSinceLastFrame was not being initialised in constructor.
  • Bug Fix: Use linux SimpleTimer::currentTime for Apple Macs also. Thanks go to alphasnd, see: http://www.cegui.org.uk/phpBB2/viewtopic.php?t=3247
  • Bug Fix: Resolve compilation issue on older gcc versions (gcc 3.x) where casting using functional notation is not good. See: http://www.cegui.org.uk/phpBB2/viewtopic.php?t=2317
  • Bug Fix: TabControl was subscribing to EventTextChanged on added content windows, but not releasing the connection when the content window was removed - causing UnknownObject exceptions and possible crashes when attempting to change the text on a window after it had been added to and then removed from a TabControl. See: http://www.cegui.org.uk/mantis/view.php?id=192
  • Bug Fix: When linking on autotools based systems, ensure we explicitly link with the 'just built' versions of CEGUI libraries; this ensures that we are not inadvertently picking up old installed versions of the same libs.
  • Bug Fix: Updated Ogre base application to correctly respond to window resize events and inform the CEGUI renderer of the change. Part of fixes for: http://www.cegui.org.uk/mantis/view.php?id=187
  • Bug Fix: Fixed samples under D3D 8.1 and 9 so that they correctly notify CEGUI when the window size changes. Part of fixes for: http://www.cegui.org.uk/mantis/view.php?id=187.
  • Bug Fix: Under gcc/autotools the various libraries and modules were not linking against CEGUIBase (except on MinGW32). See: http://www.cegui.org.uk/mantis/view.php?id=196
  • Bug Fix: Update Irrlicht sample base application to notify the renderer of the display size - in order that it may react properly to any changes. (Part of fixes for: http://www.cegui.org.uk/mantis/view.php?id=187).
  • Bug Fix: When injecting mouse position change information using the System::injectMousePosition member, the resulting MouseEventArgs structure passed to event handlers always had the positional change delta information set to 0. See: http://www.cegui.org.uk/mantis/view.php?id=194
  • Bug Fix: FrameWindow types had no realistic default minimum size specified, meaning the user could resize these windows to such an extent that they totally disappeared and we no longer usable. See: http://www.cegui.org.uk/mantis/view.php?id=193
  • Bug Fix: Issue with detection and usage of glut library under Msys/MinGW. See: http://www.cegui.org.uk/mantis/view.php?id=184
  • Bug Fix: Can't get correct error string on Win32 platform when dynamic module load failed. See: http://www.cegui.org.uk/mantis/view.php?id=178
  • Bug Fix: Missing winmm library dependency for MinGW32 autotool based builds. See: http://www.cegui.org.uk/mantis/view.php?id=183
  • Bug Fix: Hiding the active window would leave the hidden window active and receiving inputs; it was also possible to activate a hidden window which is not logical. See: http://www.cegui.org.uk/mantis/view.php?id=188
  • Bug Fix: Time pulse injection under DirectX sample base app was either missing (DX 8.1) or broken (DX 9). (See: http://www.cegui.org.uk/mantis/view.php?id=177).
  • Bug Fix: TreeDemo - Missing header on some systems, update antiquated time.h to ctime.
  • Bug Fix: Typos in the configure summary (Irrlict -> Irrlicht)
  • Bug Fix: tolua++cegui generator missing Lua_CFLAGS in autotools build.

Release 0.6.0

  • Added: New text demo (rewrite of Demo4)
  • Added: First attempt at mingw32 / cross-compile support.
  • Added: Extend support of CEGUI_SAMPLE_DATAPATH environment variable to Windows platforms too.
  • Added: Missing Samples/datafiles/Makefile.am file
  • Added: Levia's GroupBox to the Lua module.
  • Added: Warning log level to the Lua module.
  • Added: Levia's GroupBox to the code and looknfeel. Thanks :)
  • Added: Exception type, line and file info - See http://www.cegui.org.uk/phpBB2/viewtopic.php?t=2799
  • Added: CEGUIDeadException Macro to required.h for this purpose.
  • Added: Static Build Support
  • Added: Imagesets Added
  • Added: Tree Widget Added
  • Added: ScriptWindowHelper Added
  • Added: Tree Demo Added
  • Added: Instanced Windows Demo Added
  • Added: Tree & TreeItem Packages Added
  • Added: ScriptWindowHelper Package Added
  • Added: (MacOS) Got most of the samples to build and run, except FalagardDemo1 and Minesweeper.
  • Added: support for Expat XML parser on the Mac.
  • Removed: XMLRefSchema/Makefile.am - this is now no longer needed.
  • Modified: Applied ticket #173
  • Modified: Renamed Demo4 to TextDemo (in progress).
  • Modified: linux (and mingw32) will try with and without the 'lib' prefix when loading dynamic modules.
  • Modified: Applied this patch: http://www.cegui.org.uk/mantis/view.php?id=168
  • Modified: datafiles are now installed on linux (e.g. /usr/local/share/CEGUI/)
  • Modified: Minor change to update a contact address (main purpose of this is actually to test the svn change notification system).
  • Modified: RTTI and Loggers - See http://www.cegui.org.uk/phpBB2/viewtopic.php?t=2816
  • Modified: Updated samples with new exception code
  • Modified: Applied large patches. For details see this thread: http://www.cegui.org.uk/phpBB2/viewtopic.php?t=2766
  • Modified: setDefaultXMLParserName now unloads the default dynamic module and loads a new one provided you are not statically linking.
  • Modified: tolua++cegui changes in exception handlers.
  • Modified: Large Premake updates
  • Coding Standards: CEGUI does not use the NULL macro in code.
  • Coding Standards: the prefix used for data members on the CEGUI project is d_ and not m_
  • Bug Fix: Corona based image codec would not build.
  • Bug Fix: Resolve a thousand and one "deprecated conversion from string constant to 'char*'" warnings that spew forth from gcc 4.2.x.
  • Bug Fix: Lua 5.1 removes table.setn - update code to use alternate method of ensuring table is indeed empty.
  • Bug Fix: The CEGUIDeadException macro was causing the exceptions to be caught by value; this fixes it so they are caught by reference.
  • Bug Fix: Exception base class destructor should be public.
  • Bug Fix: Minor TextDemo fix - gcc does not like temporary objects passed as arguments for non-const function parameters.
  • Bug Fix: Autotool build fix for TextDemo.
  • Bug Fix: Small compile fix for VS
  • Bug Fix: Groupbox fix (disabled 'ristOnClick')
  • Bug Fix: Window::isTopOfZOrder had an incorrectly constructed loop control. (http://www.cegui.org.uk/mantis/view.php?id=172)
  • Bug Fix: PixelAligned macro was incorrect when working with negative values. (http://www.cegui.org.uk/mantis/view.php?id=167)
  • Bug Fix: Listbox and MulticolumnList were not re-sorting the list in resonse to calling handleUpdatedItemData which resulted in an incorrectly ordered list if items had changed in a manner that invalidated the current order (in the simplest case, just by changing an items text). (http://www.cegui.org.uk/mantis/view.php?id=162)
  • Bug Fix: The 'selected item' as returned by Combobox would revert to 0 after interaction with the user that did not end with a positive list selection - this is incorrect; any previous selection should be preserved if the user backs out of making a new selection in the list. NB: A side effect of this fix is a change in the order that some events are fired. Previously the droplist show/hide event came first (before any selection events), now the show/hide events come after any selection events. (http://www.cegui.org.uk/mantis/view.php?id=164).
  • Bug Fix: Slider thumb was not showing up when used within a TabControl. Actual bug was related to thumb getting initialised with bad data caused by unchecked divide by zero in the Falagard window renderer. (http://www.cegui.org.uk/mantis/view.php?id=145)
  • Bug Fix: Invalidating only cached clipped areas for a window was not having the desired effect on child content. Fix addresses http://www.cegui.org.uk/mantis/view.php?id=165
  • Bug Fix: Any window responding to a left mouse button down event would always report the event as 'unhandled' even though it may have taken action based on the event (thus, handling it). Event is now marked as 'handled' if, but only if, the window has to take action such as activating the window or making a change in the z-order. (http://www.cegui.org.uk/mantis/view.php?id=136)
  • Bug Fix: MultiLineEditbox::onCharacter should only say it handled the event if it really did. (http://www.cegui.org.uk/mantis/view.php?id=155)
  • Bug Fix: Widgets with a push-button-esque behaviour were not behaving correctly as regards to being obscured by a window with mouse pass through enabled.(http://www.cegui.org.uk/mantis/view.php?id=154 and http://www.cegui.org.uk/phpBB2/viewtopic.php?t=2971)
  • Bug Fix: We were incorrectly using the clock() function as a timer. (http://www.cegui.org.uk/mantis/view.php?id=153)
  • Bug Fix: Certain assign, append, and insert operations in CEGUI::String would illegally operate beyond the length of the object being assigned, appended or inserted. (http://www.cegui.org.uk/mantis/view.php?id=152)
  • Bug Fix: Bug where MultiColumnListProperties::MultiColumnListProperties::set was using String::substr incorrectly and accessing chars beyond the end of the string. This fix is actually a total rewrite that makes the function a lot more robust, and removes a couple of other issues too. (http://www.cegui.org.uk/mantis/view.php?id=171)
  • Bug Fix: Correctly check for dl and pthread libs. (http://www.cegui.org.uk/mantis/view.php?id=143)
  • Bug Fix: Lua was not correctly detected on (K)Ubuntu type systems (http://www.cegui.org.uk/mantis/view.php?id=138)
  • Bug Fix: Support lua 5.1 in CEGUILua.cpp (not sure of generator status with 5.1) (http://www.cegui.org.uk/mantis/view.php?id=161)
  • Bug Fix: CEGUIXercesParser was not compiling with 2.8 version of xerces-c++. (http://www.cegui.org.uk/mantis/view.php?id=163).
  • Bug Fix: TaharezLook.looknfeel did not conform to the required schema (http://www.cegui.org.uk/mantis/view.php?id=163)
  • Bug Fix: Ogre and Irrlicht sample base apps still had CEGUI_SAMPLE_DATAPATH defines
  • Bug Fix: Demo8 restored to working state.
  • Bug Fix: Fixed bug in CreateWindow which would never allow empty name while having a prefix.
  • Bug Fix: Fixed/revamped TabControlDemo, because it didn't work anymore because of underlying code changes.
  • Bug Fix: Added re-sorting to a listbox after user
  • Bug Fix: There was an incorrect compiler flag when bringing in the DevIL libs (autotools build).
  • Bug Fix: 'make dist' should now include everything required (on linux at least)
  • Bug Fix: Updated irrlicht support to 1.4 (and beyond?)
  • Bug Fix: Updated TreeDemo to build and run on linux
  • Bug Fix: Change TabPane into TabContentPane. Thanks to Liberator for pointing this inconsistency out.
  • Bug Fix: Autotools build was missing the CEGUIGroupBox files.
  • Bug Fix: Resorting of lists and trees happened High to Low. This should be the reverse i think.
  • Bug Fix: Resolved ticket 160: Missing #pragma warning(pop) in elements/CEGUISpinner.h
  • Bug Fix: Resolved ticket 158: MultiColumnList Font NOT in ListHeaderSegment!
  • Bug Fix: Applied Liberator's tree fix patch.
  • Bug Fix: Applied ldb's OIS patch.
  • Bug Fix: Applied ldb's patch.
  • Bug Fix: Tree Node Button Fixes
  • Bug Fix: Static Call Fix in setDefaultXMLParserName
  • Bug Fix: Changed 'friend TreeItem;' into 'friend class TreeItem;' for non-MS compilers. http://www.cegui.org.uk/phpBB2/viewtopic.php?t=2598
  • Bug Fix: warnings of unused local variables in lua_CEGUI.cpp fixed.
  • Bug Fix: Fixed Memory Leak in Lua Scripting Module when it throws and helper object has already been created.
  • Bug Fix: Irrlicht Support Fixed
  • Bug Fix: (MacOS) Updated PCRE build to include UTF8 support so Minesweeper will run. (PCRE project is separate from this.)
  • Bug Fix: (MacOS) Added some shell redirects so that the resource copy for the sample apps doesn't spit out false alarm errors about not being able to copy SVN files.
  • Bug Fix: (MacOS) Fixed a ID string that prevented the FalagardWRBase bundle from loading properly.
  • Bug Fix: Adjusted the pathing for GL sample application so it can find Mac resources.
  • Bug Fix: Updated OpenGLBaseApplication to look for Mac resources in the right place.
  • Bug Fix: Fixes to build options for Mac sample apps.
  • Bug Fix: Changes to v0-5 branch merged in.

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

  • 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.