---------------------------- Whats new in ParaGUI 1.0.4 ? ---------------------------- - fixed a stupid PG_Window bug (buttons not shown correctly) - made std:: the default workspace -> removed all std:: prefixes - fixed a bug in showing "hidden" child widgets - fixed a clipping bug in PG_ColumnItem - Win32 (VC++) build fixes for physfs - GNU build fixes (test dir), "make distcheck" passes now - PG_Widget::SetSizeByText changes (Thanks H.C. ) - added PG_RadioButton::SetFontColor methods (Thanks H.C. ) - fixed PG_WidgetList::Remove(All) methods (Thanks Ivan Stankovic ) - new DevC++ workspaces (DevC++ >= 4.9.7.0) - fixed a bug in PG_MessageObject::PumpIntoEventQueue(..) MOUSEMOTIONEVENT don't need to be passed to ALL objects - added a method to PG_Application to clear and delete the background (void DeleteBackground()) (Thanks H.C. ) - fixed a potential memory leak in PG_Application resulting from changing non-scaled backgrounds (Thanks H.C. ) - added a method to PG_RichEdit to set the default alignment (void SetAutoVerticalResize(...)) (Thanks H.C. ) - added a method to PG_RichEdit to activate / deactivate auto vertical resize (void SetAlignment(...)) (Thanks H.C. ) - SetIcon(const char* filename), SetIcon(SDL_Surface* icon) for PG_Window's title bar (H.C. ) - another wrapper function for PG_Widget::my_internaldata->quitmodal which allows one to set it to false (H.C. ) - removed unnecessary Redraw() call in PG_RadioButton::SetText(...) (H.C. ) - fixed a bug in the message-pump caused by objects be deleted and still having pending messages for it. (Thanks Michael Bartl) - Added new fonts. Now using the open Bitstream Vera fonts. - convert theme images automatically to screen format (may break things) - added new PG_FileArchive::LoadSurface method with an option to specify the surface colorkey (Thanks Keith) - added PG_Application::FlushEventQueue method - merged patch from Steffen Blume Select[First,Next,Prev]Item for PG_DropDown - fixed several bug in PG_WidgetList Thanks Alexander Opitz - fixed the layoutloader (child widgets are now shown properly) - fixed a bug in the PG_Application::GetWidget template - fixed userdata handling in PG_Widget Thanks Mark Junker ---------------------------- Whats new in ParaGUI 1.0.3 ? ---------------------------- - made PhysFS optional (like expat) - autoconf / automake fixes - fixed a problem in the destructor of PG_TimerObject - added Ruby bindings - added support for DevC++ - fixed wrong linebreaks in PG_RichEdit - added overloaded functions for PG_Application::GetWidget - fixed autoconf macro to build nicely on Midori ---------------------------- Whats new in ParaGUI 1.0.2 ? ---------------------------- - Fixed a bug in DrawLineH, DrawLineV introduced in 1.0.1 - updated PhysFS to version 0.1.5 - removed unneccessary mutex locks while message processing - fixed a crash in PG_ListBox when deleting an item in the event handler - fixed Show()/Hide() on child widgets - added functions returning vectors of strings instead of char** to PG_FileArchive Thanks Andrew Ford - added PG_TimerObject - added a switch to disable dirty widget updates globally (PG_Application::DisableDirtyUpdates(bool)) - GCC 3.1 compilation fixes Thanks Guillaume Cottenceau - added functions to add callback handlers to existing menu items Thanks John Rainey - added missing DECLSPEC to pgwidgetlistex.h Thanks Andrew Ford - added CodeWarrior and MacOS support Thanks Keith Swyer - added wildcard matching for PG_FileArchive::GetFileList - added PG_FileArchive::OpenFileRWops - added PG_RadioButton:SetAlignment - missing DECLSPEC added to pgfont.h - added surface locking for direct pixel access rendering (text, gradient). - added new messagetype to process XML layout tags from the section (MSG_XMLTAG). - fixed a clipping bug in PG_Widget::Hide() with simple backgrounds ---------------------------- Whats new in ParaGUI 1.0.1 ? ---------------------------- - Fixed permissions on zipped theme files - 8bit surface fixes - Enabling/Disabling of symlinks - fixed a potential crash in PG_ListBox (SelectItem(NULL)) - PG_Button: Added Get/SetBlendLevel() functions - SetBackground colorkey fixes - Borland C++ Builder fixes - remerge of expat (optional) - optimized DrawHLine, DrawVLine - fixed a widgetlist scrolling bug - fixed a window-resize bug - cached surfaces are generated in the screen format -------------------------------------- Whats new in ParaGUI 1.0 RC1 (Beta3) ? -------------------------------------- Bug fixes, bug fixes, ... :)) Cleaned up the font interface. Some performance tweaks (see PG_Widget::SetDirtyUpdate()). added PG_DataContainer to hold binary data. added Python support (./configure --enable-python, refer to the docs for a detailed description of the configuration options ) -------------------------------------- Whats new in ParaGUI 1.0 RC0 (Beta2) ? -------------------------------------- The really last thing i had to change was the internal structure of the library. The whole arrangement was also quite a mess. Now the lib is separated into these main parts: draw - all drawing and surface stuff fonts - font handling and rendering core - basic things like message handling, app class, ... themes - the theme loader widgets - all widget classes I also cleaned up the header files. Now there are only headers in the include dir that are needed by client applications. pgdrawobject.h has been removed - use pgdraw.h There are also some compatiblity macros in pgdraw.h that allow usage of some old style functions. e.g.: #define PG_DrawLine PG_Draw::DrawLine -------------------------------- Whats new in ParaGUI 1.0 Beta1 ? -------------------------------- The widget system in the prior versions was quite a mess. Now i decided to clean up the whole system and make it more *defined*. Due to this there are some changes in widget creation. The following rules apply: Now there are 2 basic widget types: PG_Widget: An unthemed widget that can have an internal drawing surface or not. PG_ThemeWidget: A themed widget (loads it's style from the theme definition) that can have an internal drawing surface or not. Widgets with drawing surfaces: ----------------------------- The content is drawn into the surface and blitted to the screen. Construction with internal surface: PG_Widget(PG_Widget* parent, const PG_Rect& rect, true); PG_ThemeWidget(PG_Widget* parent, const PG_Rect& rect, true); The param "true" indicates the creation of the drawing surfaces. Redrawing & Blitting: Redraw(bool doUpdate); This function redraws the widget (by calling eventDraw()). And calls Update(true) if doUpdate = true. Update(bool doBlit); This calls Blit() and updates the screen. Blit(); This function blits the widget surface to the screen and calls eventBlit() that can be used for custom blit behaviour. Widget without drawing surfaces: -------------------------------- The content of the widget is directly blitted to the screen. Construction: PG_Widget(PG_Widget* parent, const PG_Rect& rect); PG_ThemeWidget(PG_Widget* parent, const PG_Rect& rect); Blitting: Update(bool doBlit); This calls Blit() and updates the screen. Blit(); This function blits the widget content directly to the screen by calling eventBlit(). I hope this clarifies the widget behaviour stuff. Please contact me if you have further suggestions and additions. For backward compatibility the *old* widgettypes (PG_GradientWidget, PG_StaticFrame) still can be used but I definitely wouldn't suggest this. Please try to port your application to the new widgetclasses. Porting should be quite easy by replacing PG_GradientWidget, PG_StaticFrame with PG_ThemeWidget. I hope this clarifies the widget behaviour stuff. Please contact me if you have further suggestions and additions. Alexander Pipelka pipelka@teleweb.at