Page 1 of 1

beta1-devel -> Head Merge: Your code WILL break...

Posted: Wed Oct 06, 2004 09:02
by CrazyEddie
I am posting this in addition to the story on the front page so that there is no confusion or surprises when people update from CVS after Thursdays code update.

Just in case you have no idea what I'm talking about, I'll go over it one more time. Basically, I have been making quite a few big changes to the system to prepare for the beta 1 release. I knew from the start that these changes would break peoples code, so rather than mess around in cvs-head and have the system unusable for weeks, I did all the work in a seperate cvs branch (beta1-devel). This work is now 99.9% complete.

On Thursday of this week (that will be 7th October), some time around 1200GMT, the code in the beta1-devel branch will be transferred back to cvs-head.

What this means is that the next time you update your cegui_mk module after this has happened, your applications that use CEGui will break. I felt it was important to make the changes that I did to minimise further disruption later. Some of the points to consider when getting your code to work again will be as follows:

CEGUI::colour
Previously this was a typedef to ulong. Now it is an actual class. In most cases, code will continue to work unchanged, although there are a few instances where adjustment will be required.

Taharez Imageset name change.
The name of the Taharez imageset has been changed. You will be required to use the new imageset for the beta 1 code. If you have hard coded strings that reference the imageset [color=AA0000]"TaharezImagery"[/color], these will have to be updated to [color=AA0000]"TaharezLook"[/color].

Taharez widget type name changes
All of the type names for the Taharez widgets have had their names changed. So for example, what was previously known as [color=AA0000]"Taharez Frame Window"[/color] is now known as [color=AA0000]"TaharezLook/FrameWindow"[/color]. There are two options here; you can update your code and layouts to use the new names, or you can load the [color=AA0000]"TaharezLookWidgetAliases"[/color] scheme (from the cegui_mk2\Samples\datafiles\schemes directory), which defines aliases which allows the old names to continue to work.

Event symbol name changes
All of the events have been renamed. So if you have code like [color=AA0000]CEGUI::PushButton::Clicked[/color] as part of your event binding code, it will have to be updated. In most cases this will simply involve adding Event to the front of the name (and removing it from the end in some cases); so the previous example becomes [color=AA0000]CEGUI::PushButton::EventClicked[/color]. There are a few cases where the name has changed in other ways (to make it clearer what the event is).

Event handler signature changed
The event handler signature has changed from:

Code: Select all

void eventHandler(const EventArgs& e);

To:

Code: Select all

bool eventHandler(const EventArgs& e);

This means you will need to update all your handlers to return a boolean value indication whether or not the event was processed by your handler.

There are also various other changes that may or may not affect you, but the above are the major breaking changes.

You have been warned :)

CE.