All releases are available at the sourceforge download page

For releases prior to 0.7.0, you will need the UFO core library and also one of the Backends.


Release-Id: 0.8.4

(2005-10-29)
Name: UFO - 0.8.4
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.8.4.tar.gz
Mirrors: sourceforge

This release has been tested with GNU/Linux/x86 using g++-4.0 and with WinXP using MS VC++ 6.

Here are the major changes for this release:

  • Major improvements to the style (see screenshots).
  • Added tab widget (see test/morewidgets.cpp).
  • Made code relocatable (thanks to autopackage.org)
  • Added UFileArchive::isDirectory, UFileArchive::dirName
  • Removed UFileArchive::createFileStream, destroyFileStream
  • Fixed alpha value for colors returned by UColor::brighter,darker
  • Fixed clean-up on destruction of glx driver
  • Changed UWidget::removeImpl(iterator) to UWidget::removeImpl(int index)
  • Made UWidget::testState,setState(s),getState public
  • Fixed bug with unreferencing UVolatileData in UAbstractDisplay
  • Changed UVolatileData to auto-registering at UDisplay.
  • Fixed colored vertex arrays (in UGL_Graphics and UVertexArray).
  • Fixed UBoxLayout::getPreferredSize for implicitely hidden widgets.
  • Fixed clean-up of ugl_driver in dummy video driver.
  • Implemented XUL elements: groupbox, deck, stack and tabbox
  • Allow non-radio buttons in button groups to be deselected.
  • Fixed texture sharing for WGL target.

-- Johannes Schmidt


Release-Id: 0.8.3

(2005-10-11)
Name: UFO - 0.8.3
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.8.3.tar.gz
Mirrors: sourceforge

This release has been tested with GNU/Linux/x86 using g++-4.0 and with WinXP using MS VC++ 6.

Here are the major changes for this release:

  • Fixed UStyleHints::transcribe
  • Some style changes to radio button indicators and sliders.
  • Added UGraphics::{set,get}LineWidth.
  • Replaced internal calls to setOpacity with CSS class ids.
  • Changed GL graphics to have an 0.5f offset for lines rasterization (removed general 3/8 pixel offset).

-- Johannes Schmidt


Release-Id: 0.8.2

(2005-09-30)
Name: UFO - 0.8.2
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.8.2.tar.gz
Mirrors: sourceforge

This release has been tested with GNU/Linux/x86 using g++-4.0, g++-2.95 and with WinXP using MS VC++ 6.

Here are the major changes for this release:

  • Fixed compilation on gcc <= 3.2
  • Mollified MinGw compiler about dllimport linkage
  • Readded check for _MSC_VER in ufo_config.hpp for WIN32 target (might break DevCpp?)
  • Fixed several warnings

-- Johannes Schmidt


Release-Id: 0.8.1

(2005-09-19)
Name: UFO - 0.8.1
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.8.1.tar.gz
Mirrors: sourceforge

This release has been tested with GNU/Linux/x86 using g++-4.0, with GUN/Linux/Amd64 using g++-3.4 and with WinXP using MS VC++ 6.

Here are the major changes for this release:

  • Fixed clip bounds (by fixing URectangle::intersect).
  • Added automatic disconnection from signals if the object of an object slot is destroyed (only if object is derived from UObject).
  • Added label constructor with buddy argument.
  • Added action map to UXul to automatically connect slots to sigActivated signals.
  • Fixed setting size via XUL and CSS commands.
  • Implemented accesskey attribute of XUL elements.
  • Changed UXDisplay to send KeyTyped events only if no Alt or Ctrl modifier is pressed.
  • Added support for keyboard events to UListBox.
  • New default layout manager for any new widget is now UBoxLayout.

-- Johannes Schmidt


Release-Id: 0.8.0

(2005-09-03)
Name: UFO - 0.8.0
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.8.0.tar.gz
Mirrors: sourceforge

This release has been tested with GNU/Linux/x86 using g++-3.3, with GUN/Linux/Amd64 using g++-3.4 and with WinXP using MS VC++ 6.

The most interesting changes can be seen in test/xul.cpp.

Here are the major changes for this release:

  • Added support to load XUL (XML User interface Language by Mozilla) GUI files (see test/xul.cpp).
  • Added support to load CSS themes (see test/css.cpp).
  • Replaced UI classes and look and feel classes with a single style class
  • Added style hints for themable widgets.
  • Removed some deprecated methods.
  • Added models which encapsulate all intrinsic widget data (generally you shouldn't access models directly but via controller methods provided by the widgets).
  • Implemented keyboard control for menus, buttons and combo boxes
  • Added local TinyXML copy.
  • Added UProgressBar, USpinBox, UTextWidget (static text field)
  • Removed left vs. right distinction of keyboard modifiers, renamed some mouse button modifiers (prefixed with Mouse)
  • Events are now propageted to the parent if they haven't been consumed
  • Added flex attribute which is used by UBoxLayout to automatically grow widgets with a specified rate. This also allows spacer widgets.
  • Added new shortcut API
  • Fixed accelerator and mnemonic support for buttons and menus.
  • Changed UFont to be used as static object (created on the stack).
  • Added lazy creation to GL images. Improved refreshing.
  • Added lazy loading support to (GL) texture font renderer.
  • Implemented enabled-property for several widgets.
  • Many important bug fixes (see ChangeLog), thanks to all contributors!

There are still some known issues, especially with sizes of UListBox, but this is really an overdue release.

-- Johannes Schmidt


Release-Id: 0.7.4

(2005-02-18)
Name: UFO - 0.7.4
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.7.4.tar.gz
Mirrors: sourceforge

This release has been tested with GNU/Linux using g++-3.3 and with WinXP using MS VC++ 6.

Here are the major changes for this release:

  • Clipping is now enabled as default!
  • Added translucency support via UWidget::setOpacity() (see ChangeLog)
  • UWidget::isActive now returns false as default.
  • Changed names of UObject memory tracking (see ChangeLog)
  • Sending now all mouse drag events to the widget where the dragging started.
  • Changed mouse modifiers of press and release events.
  • Added UWidget::getInnerBounds, getRootBounds for convenience.
  • Fixed consumption of events.
  • Changed all color attributes to use UColor references instead of pointers. This follows the palette and color group API introduced in 0.7.0
  • Implemented UWidget::sigWidgetHidden,Shown
  • Added FrameStyle and FrameState enums (experimental)
  • Rough implementation of titled borders (see ChangeLog)
  • Moved dynamic OpenGL loading to video driver initialization.
  • Fixed support for AMD64/g++ compilation.
  • Added UDimension::clamp, URectangle::clamp, Dimension::expand, URectangle::expand
  • Added UDesktopPane which is now responsible for frame decoration and frame state
  • Fixed Arial_14.tga font file
  • Many important bug fixes (see ChangeLog), thanks to all contributors!

-- Johannes Schmidt


Release-Id: 0.7.3

(2004-10-06)
Name: UFO - 0.7.3
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.7.3.tar.gz
Mirrors: sourceforge

This release has been tested with GNU/Linux using g++-3.3 and with WinXP using MS VC++ 6.

Here are the major changes for this release:

  • Fixed g++-2.95 support
  • Added block and unit increment attributes to USlider, fixed value clamping
  • Fixed calculation of the position of the knob in UBasicCheckSliderUI
  • Fixed cross-compiling by adding custom AC_LIBTOOL macros in acinclude.m4, implemented SYSTEM_LIBS for win32, adding -no-undefined to LT flags
  • Removed UWidget::setActive
  • Fixed const correctness in ULayeredPane, UWidget
  • Fixed UBorderLayout::layoutContainer (internal frame border bug)
  • Added UFO_VERSION_ATLEAST(X,Y,Z) to check whether the compile-time version is at least X.Y.Z
  • More bug fixes (see ChangeLog)

-- Johannes Schmidt


Release-Id: 0.7.2

(2004-09-25)
Name: UFO - 0.7.2
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.7.2.tar.gz
Mirrors: sourceforge

This release has been tested with GNU/Linux using g++-3.4 and with WinME using MS VC++ 6.

Here are the major changes for this release:

  • Implemented WGL driver for Win32, i.e. you do not need libSDL anymore to run UFO applications under Windows
  • Added ULineEdit, a single line text field
  • Fixed modifiers and multiple frame support in the GLX driver.
  • Fixed modifiers and resizing in the SDL driver
  • Added UWidget::isInValidHierarchy() and addedToHierarchy(), removedFromHierarchy which are called when the widget was added to a valid containment hierarchy, i.e. the widget has now a valid UI object
  • Added needsRepaint(), pushAttributes(), popAttributes() to UXContext for better integration in existing GL contexts (see also src/ux/uxframe.cpp). Removed UXContext::pureRepaint
  • Rewrote the validation part of UWidget.
  • Fixed rpm creation.
  • Added input map to UContext to allow global key bindings.
  • Fixed key stroke construction from strings and added support for "ESCAPE" and function key literals, e.g. "F1"
  • Added UString::toInt(std::string), toUnsignedInt and toDouble
  • Added UXFrame::setResizable, isResizable
  • Rewrote the whole button activation process. Added UButton::activate().
  • Fixed key bindings for menus
  • Fixed rendering of char > 127 of the builtin-in font renderer. Recreated the built-in font data.
  • Changed activation behaviour of menu items (now on mouse release).
  • Added all missing event callbacks to test/glut.cpp
  • Fixed UAbstractDisplay::getMouseState
  • Fixed clean-up in UWidget and UButton
  • More bug fixes (see ChangeLog)

-- Johannes Schmidt


Release-Id: 0.7.1

(2004-09-14)
Name: UFO - 0.7.1
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.7.1.tar.gz
Mirrors: sourceforge

This release has been tested with GNU/Linux using g++-3.4 and with WinME using MS VC++ 6.

Here are the major changes for this release:

  • Changed behaviour of mouse drag events: while the mouse is dragged, the widget where the mouse was pressed gets all mouse drag events (as in almost any other GUI).
  • Implemented sub menus (see test/menus.cpp)
  • Added UTimerEvent, a very basic implementation for time out events
  • Added a timer event as eye candy when activating a button with a key stroke
  • Removed the modifier argument of the UXDisplay::push* methods. Now, libUFO keeps track of modifiers itsself. The next few releases, there will be wrapper methods using the old API.
  • Added mouse focus widget access to UWidget
  • Fixed modifier mapping in the SDL driver
  • Fixed modifier mapping in the GLX driver
  • Added missing KeyRelease events support to the GLX driver

-- Johannes Schmidt


Release-Id: 0.7.0

(2004-09-02)
Name: UFO - 0.7.0
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.7.0.tar.gz
Mirrors: sourceforge

Another big change. I have added the UX module, a built-in backend which chooses its video driver at run-time. Two video drivers are already included (SDL and GLX/X11). On the other hand, you can still use the old backends. See the example files in the test directory how to use the UX modul. There is also an example how to use LibUFO with Glut.

Considering Windows, this means that you currently get a console window when using the standard main function. In one of the next releases, a main wrapper like SDLmain will be added.

I have tweaked the msvc config header, hence you do not have to install the STLPort STL for MS VC++ 6 anymore.

This release has been tested with GNU/Linux using g++-3.3/g++-3.4 and on WinME with MS VC++ 6.

Here are the major changes for this release:

  • Added UX modul, a built-in backend which chooses video drivers at run-time (so far, SDL and GLX/X11 is supported)
  • Added UVideoDevice, UVideoDriver and UVideoPlugin
  • Added test and example files which use the UX modul
  • Added USlider and UI classes
  • Added color groups and palettes for widgets.
  • Changed UColor to be passed as reference than as pointer. Added UColorObject wrapper.
  • Removed STLPort dependency for MS VC++ 6
  • Fire a mouse move event after mouse grabbing to update the mouse position.
  • Added isActive() and setActive to UWidget. This new attribute indicates whether the current widget is the "active" one (that means for example has mouse focus).

-- Johannes Schmidt


Release-Id: 0.6.6

(2004-07-27)
Name: UFO - 0.6.6
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.6.6.tar.gz
Mirrors: sourceforge

This release includes only minor changes. You can use the old 0.6.5 backends.

It has been tested with GNU/Linux using g++-3.3.

Here are the major changes for this release:

  • Added UGL_BuiltinFontRenderer as new fall back font renderer.
  • Fixed tga saving.
  • Removed UNativeFontRenderer.

-- Johannes Schmidt


Release-Id: 0.6.5

(2004-04-27)
Name: UFO - 0.6.5
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.6.5.tar.gz
Mirrors: sourceforge
Name: USDL - 0.6.5
Quickdownload: http://prdownloads.sourceforge.net/libufo/usdl-0.6.5.tar.gz
Mirrors: sourceforge

This is a bug fix release. It has been tested with GNU/Linux using g++-3.3.

Here are the major changes for this release:

  • Fixed serious bug in the X11 implementation of UThemeLookAndFeel::loadSystemDefaults().
  • Fixed UColor::brighter() resp. darker().
  • Fixed using foreground color for controls (buttons,labels) in UGL_Style.

-- Johannes Schmidt


Release-Id: 0.6.4

(2004-04-18)
Name: UFO - 0.6.4
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.6.4.tar.gz
Mirrors: sourceforge
Name: USDL - 0.6.4
Quickdownload: http://prdownloads.sourceforge.net/libufo/usdl-0.6.4.tar.gz
Mirrors: sourceforge

This release has been tested on GNU/Linux with g++-3.3 and on WinME with MS VC++ 6.

Here are the major changes for this release:

  • Deprecated UBorder. Use instead the BorderType enum to set the desired border design (LineBorder, RaisedBevelBorder etc.).
  • Added classes URadioButton, UBasicRadioButtonUI.
  • Removed UHashMap. All hash maps have been replaced with std::map.
  • Removed deprecated UList and UVector, UTexture, and UAdapterSlot.
  • Added UContextGroup to group all contexts which share volatile data.
  • Added UVolatileData interface as sub-class for data which need a refresh after an OpenGL context lost (e.g. fonts, images).
  • Added Accelerator support for buttons (see test/buttons.cpp).
  • Rewrote UKeyStroke.
  • Added UImageFilter (for scaling, channel modifications and flipping).
  • Removed GLU dependency (from UGL_Image and UGL_Driver).
  • Extended UThemeLookAndFeel to support custom icons.
  • Implemented Cut/Copy/Paste keyboard actions in UTextEdit.
  • Added max text length to UTextEdit.
  • Many bug fixes.

Please see the ChangeLog for details.

-- Johannes Schmidt


Release-Id: 0.6.3

(2003-12-24)
Name: UFO - 0.6.3
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.6.3.tar.gz
Mirrors: sourceforge
Name: USDL - 0.6.3
Quickdownload: http://prdownloads.sourceforge.net/libufo/usdl-0.6.3.tar.gz
Mirrors: sourceforge

This release has been tested on GNU/Linux with g++-3.3 and on WinME with MS VC++ 6.

Here are the major changes for this release:

  • Added a UGraphics* parameter as first argument to paint methods.
  • Moved almost all OpenGL depending code to the new modul gl.
  • Added a UGL_Driver to load opengl methods at runtime (for internal use).
  • Added a button group class for radio button style widgets (see buttons.cpp in the test directory of usdl).
  • Added a tga saver.
  • Added UImage interface. Can be created via UContext::createImage.
  • Added UGL_Image which will replace UTexture.
  • Added a UStyle class for look and feels.
  • Deprecated UVector, UList. Use std::vector and std::list instead.
  • Added UGL_TextureFont as new OpenGL implementation for texture fonts. Using GL_NEAREST as texture filter. Changed UTextureFont to use UFO API only. Changed font data to 3 single tga files (instead of the old pnm files).
  • Updated MS VC++ 6 project files.

Please see the ChangeLog for details.

-- Johannes Schmidt


Release-Id: 0.6.2

(2003-09-08)
Name: UFO - 0.6.2
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.6.2.tar.gz
Mirrors: sourceforge
Name: USDL - 0.6.2
Quickdownload: http://prdownloads.sourceforge.net/libufo/usdl-0.6.2.tar.gz
Mirrors: sourceforge

This release has been tested on GNU/Linux with g++-3.3.

There are some problems with g++-3.2 on platforms which don't allow undefined symbols (because of overwriting new/delete operators).

This release is another step to independence of the underlying graphics library.

Here are the major changes for this release:

  • Added a combo box.
  • Added selection to text widgets.
  • Several changes to the text model API (UDocument).
  • Improved font querying and loading via UFontInfo.

Please see the ChangeLog for details.

-- Johannes Schmidt


Release-Id: 0.6.1

(2003-04-17)
Name: UFO - 0.6.1
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.6.1.tar.gz
Mirrors: sourceforge
Name: USDL - 0.6.1
Quickdownload: http://prdownloads.sourceforge.net/libufo/usdl-0.6.1.tar.gz
Mirrors: sourceforge

This release has been tested on GNU/Linux with g++-3.2.

Several platform independent parts have been moved to the UFO core library, to make the backend creation easier.

Here are the major changes for this release:

  • Implemented look and feel plugins.
  • Added clipping support to UWidget via bool hasClipping(), setClipping(bool)
  • Changed the coordinate system for UFO widgets. The origin is now at the top left corner of the widget instead of using a translation by border insets and margin
  • Added UGraphics::initAttributes() to initialize all OpenGL attributes with appropriate values for LibUFO
  • Added UGraphics::initViewport() to initialize the viewport and projection matrix for the ufo context
  • Added UContext::init() which should be called when all attributes and system resources should be allocated
  • Added UContext::refresh() which should be called whenever GL context resources (textures, display lists) should be refreshed.
  • Added dispose() to UContext to release system resources
  • Fixed texture font character drawing for chars with ascii values above 128

Please see the ChangeLog for details.

-- Johannes Schmidt


Release-Id: 0.6.0

(2003-04-02)
Name: UFO - 0.6.0
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.6.0.tar.gz
Mirrors: sourceforge
Name: USDL - 0.6.0
Quickdownload: http://prdownloads.sourceforge.net/libufo/usdl-0.6.0.tar.gz
Mirrors: sourceforge

This release was tested on GNU/Linux with g++-3.2 and under Win32 with MS VC++ 6. The MS VC++ 6 project files have been updated.

The USDL project features several new example files for some basic features.

Here are the major changes for this release:

  • Changed font API: UFont uses abstract font renderers for font metrics and text drawing.
  • Added UClassInfo as meta class for UObject classes
  • Added USharedLib to dynamically load shared object files
  • Added ufo_debug.hpp and several useful debugging methods
  • Added getProperty/putProperty to UToolkit. The toolkit stores several important UFO resource properties now.
  • Added refresh signal to UContext which indicates OpenGL context refreshes
  • Added Plugin functionality.
  • Added UThemeLookAndFeel for theme support. You can use KDE theme files to load your own custom themes
  • Added bool UContext::getSystemInfo(USysteminfo*) to get system specific resources
  • Added UVersionInfo UToolkit::getVersionInfo() to query the version of the linked UFO library
  • Added sigMenuOpen, sigMenuClose and sigMenuItemHighlight to UPopupMenu
  • Fixed dll export and import rules for win 32
  • Replaced UTextWidget, UTextField, UTextPane with UTextEdit, UTextUI with UTextEditUI, UBasicTextFieldUI and UBasicTextPaneUI with UBasicTextEditUI

-- Johannes Schmidt


Release-Id: 0.5.2

(2002-12-28)
Name: UFO - 0.5.2
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.5.2.tar.gz
Mirrors: sourceforge
Name: USDL - 0.5.2
Quickdownload: http://prdownloads.sourceforge.net/libufo/usdl-0.5.2.tar.gz
Mirrors: sourceforge
This release features a platform independent access to the event queue via the UDisplay object and many bug fixes.

-- Johannes Schmidt


Release-Id: 0.5.0

(2002-11-16)
Name: UFO - 0.5.0
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.5.0.tar.gz
Mirrors: sourceforge
Name: USDL - 0.5.0
Quickdownload: http://prdownloads.sourceforge.net/libufo/usdl-0.5.0.tar.gz
Mirrors: sourceforge

It's time for a new release. The last version was released more than a half year ago. This is almost a complete rewrite of the UFO API.

Major changes:

  • Removed garbage collector dependency. We are using now a custom reference counting memory tracking.
  • C++ and include namespaces
  • signals and slots replace listener system.
  • UPoint, UDimension, URectangle and UInsets have been changed to basic, inlined types.
  • Added mouse wheel event.
  • Added focus manager.
  • Added repaint manager and repaint on demand.
  • Changed custom Type naming convention to match the naming convention classes.
  • header files have .hpp as extension.
  • GNU systems: replaced *-config files with pkg-config config files.
  • Separated headers and sources for simpler installations. Improved automake makefiles and removed recursive makefiles.
  • Many bug fixes.

See the Changelog file within the 0.5 release for further details.

Version 0.5.0 is still an alpha release. No Warranty! It has been tested with g++-3.2 and MS VC++ 6

-- Johannes Schmidt


Release-Id: 0.4.5

(2002-07-15)
Name: UFO - 0.4.5
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.4.5.tar.gz
Mirrors: sourceforge
Name: USDL - 0.4.5
Quickdownload: http://prdownloads.sourceforge.net/libufo/usdl-0.4.5.tar.gz
Mirrors: sourceforge

Major changes:

  • Changed name of UList to UListBox.
  • Added UCheckBox.
  • Added UList as list wrapper for collectable objects.
  • Added new static colors to UColor.
  • Removed the menu popup delay.
  • Removed theme dependency.
  • Improved look of text carets.
  • Changed darker/brighter behaviour to accept 'factor' values
  • Changed child/listener vectors to lists to allow removal of objects during an iteration
  • Buttons remember their pressed state when a pressed mouse exits and re-enters the button
  • Many bug fixes

-- Johannes Schmidt


Release-Id: 0.4.3

(2002-05-16)
Name: UFO - 0.4.3
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.4.3.tar.gz
Mirrors: sourceforge
Name: USDL - 0.4.3
Quickdownload: http://prdownloads.sourceforge.net/libufo/usdl-0.4.3.tar.gz
Mirrors: sourceforge

This is an important update because a major bug in pnm loading was fixed.

I have updated the windows (vc6) project files.

Major changes:
  • Fixed pnm loading
  • Added tga loader. Should be much more reliable than the pnm loader (thanks to Kevin Meinert).
  • Added loadFromArchive(const std::string&) to UTexture and UImageIO. Now, you don't have to specify a full qualified name, if you want to load images from the archive.
  • Moved image related stuff to src/image
  • new (In-)Validation API. You can now specify exactly what you want to (in-)validate via UWidget::VALIDATION_LAYOUT, UWidget::VALIDATION_UI, UWidget::VALIDATION_UI_INSTALL, UWidget::VALIDATION_ALL as arguments to UWidget::[in]validate(Validation). Defaults are UWidget::invalidate(UWidget::VALIDATION_LAYOUT) and UWidget::validate(UWidget::VALIDATION_ALL).
  • Some improvements in look and feel refreshing and font caching.
  • Many bug fixes

-- Johannes Schmidt


Release-Id: 0.4.2

(2002-05-04)
Name: UFO - 0.4.2
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.4.2.tar.gz
Mirrors: sourceforge
Name: USDL - 0.4.2
Quickdownload: http://prdownloads.sourceforge.net/libufo/usdl-0.4.2.tar.gz
Mirrors: sourceforge

This isn't really a public release as the UI system currently is within a major change. But last version was released 2 months ago so I decided to make a new (perhaps a bit unstable) release. Most user code shouldn't be affected.

The windows (vc6) project files weren't updated (due to lack of time). On interest, I can release a vc6 version next week.

Major changes:

  • Changed almost all std::string arguments to const std::string references
  • Added debug name string to UObjcet for easier debugging.
  • Added classes and files for UList, UListModel, UBasicListModel, UListCellRenderer, UListUI, UDefaultListUI, UListSelectionEvent, UListSelectionListener
  • Added several static constant colors to UColor: black, darkGray, gray, lightGray, red, green, blue, cyan, magenta, yellow, orange, pink
  • Added removeAll() to UWidget to remove all widgets at once
  • Added uint32_t getTicks() to UToolkit to retrieve the number of millisseconds since the initialization of libUFO
  • Added
    getColor(const std::string&),
    getBorder(const std::string&),
    getFont(const std::string&)
    to UUIManager.
  • Added refresh() to UUIManager, UTheme and ULookAndFeel. Should be executed every time when GL context was destroyed and recreated
  • Added UImageIcon class for easy creation of icons via file names and UFO textures.
  • Added scroll bar widget (not yet fully implemented).
  • Deprecated classes: UTheme, UInternalFrameBorder, UButtonBorder, UMenuBarBorder, UMenuBorder
  • Many bug fixes

-- Johannes Schmidt


Release-Id: 0.4.1

(2002-03-02)
Name: UFO - 0.4.1
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.4.1.tar.gz
Mirrors: sourceforge
Name: USDL - 0.4.1
Quickdownload: http://prdownloads.sourceforge.net/libufo/usdl-0.4.1.tar.gz
Mirrors: sourceforge

Major changes:

  • Added support for key bindings
  • Added classes UKeyStroke, UInputMap
  • Added class UProperties (for simple config file parsing)
  • Added support for mouse button information (thanks to Kai-Peter)
  • Fixed 'multiple internal frames' bug

You can add key bindings via key strokes. You can create a key stroke from a UKeyEvent, using key syms(for key pressed/released events) or using unicode characters(for key typed events). Then, you can add a key binding via my_widget->getInputMap()->add(my_keyStroke, my_actiontListener);

You can get the button information from a mouse event via my_event->getButton();. To determine which button was changed, compare this value to UMouseEvent::BUTTON_ {LEFT|MIDDLE|RIGHT} or UMouseEvent::WHEEL_{UP|DOWN}.

This version is neither binary nor source compatible to 0.4.0.

-- Johannes Schmidt


Release-Id: 0.4.0

(2002-02-02)
Name: UFO - 0.4.0
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.4.0.tar.gz
Mirrors: sourceforge
Name: USDL - 0.4.0
Quickdownload: http://prdownloads.sourceforge.net/libufo/usdl-0.4.0.tar.gz
Mirrors: sourceforge

This version was tested with vc6 and gcc-3.0. For ms vc6, you will need STLport as STL implementation for msvc. Probably, you will need STLport for gcc-2.95, too.

Major changes:

  • ISO C++ compliance
  • Added MS vc6 project files
  • Added UFileArchive class for theme file loading
  • Added UCollectable as new base class for all garbage collected classes
  • Moved virtual key syms to UKey namespace. Changed prefix from VK_ to UK_
  • Moved Modifier constants to UMod namespace

-- Johannes Schmidt


Release-Id: 0.3.4

(2002-01-15)
Name: USDL - 0.3.4
Quickdownload: http://prdownloads.sourceforge.net/libufo/usdl-0.3.4.tar.gz
Mirrors: sourceforge

Bug fixes of the SDL backend.

-- Johannes Schmidt


Release-Id: 0.3.3

(2001-12-23)
Name: UFO - 0.3.3
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.3.3.tar.gz
Mirrors: sourceforge
Name: USDL - 0.3.3
Quickdownload: http://prdownloads.sourceforge.net/libufo/usdl-0.3.3.tar.gz
Mirrors: sourceforge

Major changes:

  • Added many missing UFO_Export Macros
  • Added UDocumentFactory: This class provides some specialized Documents and should be used instead of using document classes directly. See example4 within libUSDL/test directory
  • Added UDocumentEvent and UDocumentListener
  • Added UDocumentChange interface (used by document events; not yet fully implemented)
  • Added UDocumentChange interface. This is used to filter text inserts e.g. for digit only documents.
  • Added UBasicDocument as base class for std::string documents

LibUSDL v0.3.3:

major changes

  • Added makeScreenShot(std::string) to USDL_Frame
  • Updated example4 to new document API

I will be on holiday from 2001-12-26 to 2002-01-06, so don't expect any changes or releases next two weeks.

-- Johannes Schmidt


Release-Id: 0.3.2

(2001-12-07)
Name: UFO - 0.3.2
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.3.2.tar.gz
Mirrors: sourceforge
Name: USDL - 0.3.2
Quickdownload: http://prdownloads.sourceforge.net/libufo/usdl-0.3.2.tar.gz
Mirrors: sourceforge

Major changes:

  • Migrated Event dispatching from backend to UContext
  • You can add now event garbbing or listening widgets to a context
  • Added a margin to widgets. You can specify a margin with my_widget->setMargin(int, int, int, int) or my_widget->setMargin(const UInsets*)
  • Added UFontMetrics::getCharWidth(const wchar_t)
  • Updated the Default Look And Feel
  • some other changes, see Changelog

-- Johannes Schmidt


Release-Id: 0.3.1

(2001-11-25)
Name: UFO - 0.3.1
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.3.1.tar.gz
Mirrors: sourceforge
Name: USDL - 0.3.1
Quickdownload: http://prdownloads.sourceforge.net/libufo/usdl-0.3.1.tar.gz
Mirrors: sourceforge

This is just a bug fix release.

Major changes:

  • fixed UMenu bug. Popup menus do now display
  • fixed some text widget bugs
  • fixed UDefaultDocumentRenderer bug
  • fixed some wrong delete()
  • updated UDefaultTheme
  • fixed SDL to UFO event mapping

-- Johannes Schmidt


Release-Id: 0.3.0

(2001-11-21)
Name: UFO - 0.3.0
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.3.0.tar.gz
Mirrors: sourceforge
Name: USDL - 0.3.0
Quickdownload: http://prdownloads.sourceforge.net/libufo/usdl-0.3.0.tar.gz
Mirrors: sourceforge

Yes, it is done. The new API is finally ready for a release.

Major changes:

  • split libUFO in a core library and an auxiliary library. The core lib depends only on OpenGL, libgc, and the C++ STL. The dependencies of the auxiliary library is implementation dependent.
  • new abstract font layer: fonts are now derived from the interface UFont. Now, you can write your own font renderer (e.g. to implement a TT font renderer). As example and std. implementation, there is a texture font renderer, which can eliminate too big gaps between the character quads (see screen shot page).
  • Loading images: You can load and save images by creating an Object of the class UImageIO. This class is extensible with plugins for other image types. Pnm images are supported natively. (Till now only loading)
  • LibUFO does not know frames or other top level objects. All widgets are within a UContext (which has to be implemented by an aux lib) which handles all OpenGL context specific things.
  • Platform specific things (e.g. delay[==sleep]) is migrated to UToolkit which has to be implemented by an aux lib.
  • many other things I can't remember.

If you want to port your libUFO lt 0.2.5 applications, you'll have to download libUFO-0.3 (of course) and an aux lib, currently there is only libUSDL which uses SDL as backend. Furthermore, you must include usdl.h and rename some classes:

UApp => USDL_App
UFrame => USDL_Frame
UEventHandler => USDL_EventHandler
USDL_Frame must specify an parent frame or NULL (till now there can't be more than own USDL_Frame), therefore change your USDL_Frame c'tor to new USDL_Frame(NULL, "the title for my usdl frame");

At best, look at the example programs within the test directory of libUSDL.

So, I have to do some other things now. I will expand this explanation on Friday (I know, this was quite confusing).

If you have any annotations, questions, complaints, please email me.

-- Johannes Schmidt


Release-Id: 0.2.5

(2001-09-24)
Name: UFO - 0.2.5
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.2.5.tar.gz
Mirrors: sourceforge

Major changes:

  • use autoheader and a config header
  • the default value for building a static ufo library is 'no'
  • UFrame handles video expose events
  • 2 new tutorial files (use of text widgets, use libUFO in an existing SDL frame)
  • the documentation was updated

-- Johannes Schmidt


Release-Id: 0.2.4

(2001-08-29)
Name: UFO - 0.2.4
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.2.4.tar.gz
Mirrors: sourceforge

This time I was really quick :)

Major changes:

  • respect for namespace std ( really, this time it should be true :P)
  • this code can be compiled with gcc-3 ( at least on my system )
  • fixed UMenu bug

-- Johannes Schmidt


Release-Id: 0.2.3

(2001-08-28)
Name: UFO - 0.2.3
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.2.3.tar.gz
Mirrors: sourceforge

Major changes:

  • the UMouseEvent class has now a function getClickCount() so that the user can retrieve how many times the mouse was clicked ( e.g. 2 for a double click )
  • respect for namespace std
  • Alignment support for widgets
  • Alignment support for UFlowLayout
  • New UEventHandler class, which notifies its receivers when a SDL event was fired. The event handler itsself is registered at the UApp instance, to get SDL events.
  • I have made a few examples to learn libUFO
  • many bug fixes

-- Johannes Schmidt


Release-Id: 0.2.2

(2001-08-16)
Name: UFO - 0.2.2
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.2.2.tar.gz
Mirrors: sourceforge

Major changes:

  • new event handling (down - top). A frame that receives a SDL event now determines with getVisibleWidgetAt(int,int) the widget that should process the event. The event is also posted to the parent widgets.
  • use of dynmaic_cast. I removed the C stylish casts. Perhaps, the class name and instanceof things in UObject will be removed, too, because I realized that they are unnecessary.
  • I implemented a layered pane. The root pane widget uses now layered panes to display the sub widgets( content widgets, internal frames, popup menus) in the correct drawing order.
  • I implemented a border layout ( like the java(TM) border layout ). It is used by internal frames.
  • Widgets have now properties. You can acces them by UWidget::put(std::string, UObject*) and UWidget::get(std::string).
  • I wrote wrapper classes for std::string and int (UString, UInteger) to save string and int values in the widget properties.
  • many bug fixes

-- Johannes Schmidt


Release-Id: 0.2.1

(2001-07-26)
Name: UFO - 0.2.1
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.2.1.tar.gz
Mirrors: sourceforge

Major changes:

  • better support for menus.
  • working on internal frames.

-- Johannes Schmidt


Release-Id: 0.1.2

(2001-07-22)
Name: UFO - 0.1.2
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.1.2.tar.gz
Mirrors: sourceforge

-- Johannes Schmidt


Release-Id: 0.1.0

(2001-06-17)
Name: UFO - 0.1.0
Quickdownload: http://prdownloads.sourceforge.net/libufo/ufo-0.1.0.tar.gz
Mirrors: sourceforge

-- Johannes Schmidt


Sourceforge.netValid HTML 4.01!Valid CSS!Johannes Schmidt
Compiled: Fri Apr 7 15:33:35 CEST 2006