This NEWS file for ocempgui covers a short overview about the latest
changes.

0.2.9   2008-05-10:
-------------------
  * Removed explicit Numeric dependencies for pygame >= 1.8.0

  widgets package:
  * Added reversed focus switching through SHIFT+TAB in Renderer class.
    Renderer.switch_index() features a new argument 'reverse' now.
  * Fixed a set_focus() bug in Alignment class. It should not be
    focusable by default.

0.2.8   2008-01-10:
-------------------
  * Chat client example now requires Twisted >= 2.5.x
  * Added Graph2D and StatusBar sections in manual.

  access package:
  * ocempgui.access.papi updated to version 0.0.5.

  widgets package:
  * New method 'set_cursor()' in ScrolledList class, which allows to set
    the cursor programmatically.
  * Fixed a bug in Style.copy_style(), which prevented subkeys from
    being copied correctly (thanks to Ryan Dhuse).
  * Fixed a bug in the *Frame.calculate_size() methods, that could lead
    to crashes on setting *Frame.spacing.

0.2.7   2007-03-23:
-------------------
  * Added installation note for Win32 environments and the
   "No module named themes" error.

  access package:
  * ocempgui.access.papi updated to version 0.0.4.

  widgets package:
  * New 'locked' attribute and lock() and unlock() methods in the
    Renderer class, which add locking abilities for updates.
  * New 'linespace' attribute and set_linespace() method in the Label
    class to set the line spacing amount for multiline labels. (Thanks
    to Christophe and Ludovic).
  * Multiline text in Label class now respects ALIGN_NONE alignment by
    centering the text. (Thanks to Christophe and Ludovic).
  * New 'drops' attribute and set_drops() method in the Renderer class
    to improve the event handling speed by allowing to drop mouse
    motion events, when the Renderer updates a portion of the screen.
  * Fixed CTRL+Click selection behaviour in ScrolledList widget class.
  * Dropshadows for windows will only be drawn, if the shadow style entry
    is greater than 0.

0.2.6   2007-02-01:
-------------------
  access package:
  * New 'zoom_func' attribute and set_zoom_func() method in the
    Magnifier class, which allow the usage of own zoom functions for
    magnification.

  widgets package:
  * New Alignment widget class which controls the alignment of its child.
  * New method invalidate() in the ImageMap class, which allows
    optimized updates for portions of the displayed image on the
    ImageMap.
  * New 'align' attribute and set_align() method in the Label class,
    which allows to set the alignment of the displayed text.
  * Fixed Table.set_children() assignment.
  * Fixed alignment check in Constants.constants_is_align().
  * Fixed layer destruction in Renderer class.
  * Fixed key code recognition in the Editable class (thanks to
    Matthias Kievernagel).
  * Fixed event.handled value for Editable, FileList, Graph2D, ImageMap,
    Scale, ScrollBar, ScrolledList, ScrolledWindow and the ToggleButton
    class, which could prevent them to work correctly on Window widgets.

0.2.5   2007-01-22:
-------------------
  widgets package:
  * Inheritors of the Container class now need to implement the
    calculate_size() and dispose_widgets() methods of it.
  * Fixed input handling for some keyboard layouts, which return a NUL
    key code for valid input (such as ABNT 2) in the Editable class.
  * Added SIG_DESTROYED signal handling when a widget is about to be
    destroyed.

0.2.4   2007-01-08:
-------------------
  access package:
  * ocempgui.access.papi updated to version 0.0.3.

  draw package:
  * The FaderSurface will apply the alpha value on every assignment, not
    only on value changes.

  widgets package:
  * New Box widget class, which allows its children to be positioned
    absolutely.
  * New 'opacity' attribute and set_opacity() method in the BaseWidget
    class, which allow to set the alpha transparency for each widget.
  * The create_screen() method of the Renderer accepts additional depth
    as defined by pygame.display.set_mode().
  * Fixed an error in Style.copy_style() which prevented certain styles
    from being copied.
  * Fixed multiple blits of the same area in the update() method of the
    Renderer class.
  * Fixed a parent relation bug in the remove_widget() method of the
    Renderer class, which could lead to wrong updates.
  * Fixed a blitting bug in the layer info display.
  * Fixed update issues in the Container and BaseWidget classes, which
    could cause overlapping widget not to be displayed correctly.

0.2.3   2006-11-20:
-------------------
  access package:
  * ocempgui.access.papi updated to version 0.0.2, which relies upon
    ATK >= 1.12.1.

  widgets packge:
  * Added a new example for embedding the Renderer into an own mainloop
    and the assignment of partial screen areas.
  * New rect and rect style attributes in Renderer class.
  * Improved drawing method of the Renderer (thanks to Martin Fuzzey).
  * The Renderer supports event based polling now, which can be
    chosen using Renderer.start (True). By default the timer based
    polling will be used.
  * Fixed a layer update bug for widgets that do not directly intersect
    with screen portions to update.
  * The remove_widget() method of the Renderer class now accepts
    multiple widget arguments similar to the add_widget() method.
  * Setting the state in the Button, ImageButton and ToggleButton
    classes will not cause redraws anymore, if the state did not change.
  * Fixed the assignment of surfaces to the Renderer and the event
    handling for them.

0.2.2   2006-10-19:
-------------------
  access package:
  * Fixed a notify() bug in the Magnifier class, which could cause
    exceptions if no mouse movements occured in the passed event list.

  draw package:
  * The font cache of the String module distinguishes between applied
    styles when String.create_font(), String.create_file_font() and
    String.create_system_font() are used. (Thanks to Regis Desgroppes)
  * Fixed a bug in String.create_system_font(), which applied styles
    two times and could lead to broken rendering of fonts. (Thanks to
    Regis Desgroppes)

  widgets packge:
  * New TooltipWindow class which uses a certain color and displays
    a simple line text.
  * New SIG_ENTER and SIG_LEAVE signals, which indicate that the mouse
    cursor entered or left a widget.
  * New 'entered' attribute and set_entered() method in BaseWidget
    class, which indicate, that the widget is entered by an input
    device.
  * Added SIG_ENTER and SIG_LEAVE support to the BaseWidget class.
  * Minor speed optimizations in some widget classes.
  * The WidgetStyle dictionary class will be imported using the module
    namespace now.
  * Fixed internal positioning for packed widgets.
  * Removed doubled set_state() method in ToggleButton class.
  * Fixed wrong SIG_FOCUSED emittance, when the focus was not set on the
    widget.
  * Fixed scrolling behaviour in the ScrolledList class.
  * Fixed the update of deselected items in the ScrolledList class.
  * Fixed drawing_engine example.

0.2.1   2006-08-25:
-------------------
  * ATK version check fix.

  access package:
  * New Magnifier class, a magnification tool for pygame screens.

  draw package:
  * New Constants module.
  * New FONT_STYLE_TYPES constants for styles to be passed to the
    String module methods.
  * String.* functions now allow additional style flags to be passed.
  * New method apply_font_styles() in String module to apply different
    rendering styles to a font.

  events package:
  * New Subject and IObserver class for simple Observer pattern needs.
  * New method clear() in EventManager class, which removes all objects
    and signals from all event queues.

  widgets package:
  * New SIG_SCREENCHANGED signal, which indicates changes of the bound
    'screen' attribute of the Renderer.
  * New method create_style() in BaseWidget class, which is a
    replacement for the deprecated get_style() method.
  * New WidgetStyle dictionary class, which can track key-value changes.
  * New ImageLabel class for simple image displays.
  * New style entry 'shadowcolor' for adjusting dropshadow effects.
  * New method clear() in Renderer class, which removes all objects from
    the Renderer layers.
  * Fixed emittance of SIG_TICK events on all layers, if an
    event grabber is set.
  * The Style class now makes use of WidgetStyle dictionaries to track
    style changes.
  * Fixed drawing in the draw_dropshadow() method of the DefaultEngine
    class for larger shadow values.
  * Fixed doubled assignment of the 'screen' attribute in the Renderer
    class on VIDEORESIZE events.
  * Fixed a bug in the remove_index() method of the Renderer class for 
    empty arguments.
  * Fixed the size calculation for larger spacing values in the Table
    class.
  * Fixed a focusing bug in the Window class, which prevented children
    to receive the correct input focus under some circumstances.
  * Fixed depth assignment for widgets attached to the Bin or Container
    class.
  * Fixed 'indexable' assignment for the 'controls' attribute of the
    BaseWidget class.
  * Fixed creation of the Table internals on invocation of its
    constructur.
  * Fixed event.handled assignment on clicks in Entry class.
  * The get_style() method of the BaseWidget class is deprecated.

0.2.0   2006-07-22:
-------------------
  * Minimum pygame requirement changed to version 1.7.1.
  * Installation of additional data now respects the user flags.
  * Filename fixes for case insensitive filesystems.

  access package:
  * Renamed Accessible class to IAccessible to outline that it is an
    interface class.
  * Renamed Indexable class to IIndexable to outline that it is an
    interface class.
  * New _papi (python accessible programming interface) module, which
    bridges to the ATK/AT-SPI accessibility system.
  * New interface update_index() in Indexable for updating object
    indices.
  * Removed AccessibleContext class because it had no use.

  draw package:
  * New FaderSurface class, which can fade in and out surfaces using
    alpha transparency.

  events package:
  * New INotifyable interface class.
  * New method __len__() in the EventManager class, which counts the
    total amount of objects addded in any of its queues.
  * EventManager class does not use __slots__ anymore.
  * Renamed 'eventgrabber' attribute in EventManager class to
    'event_grabber' to synchronize the naming schemes.

  object package:
  * BaseObject class now inherits from ocempgui.events.INotifyable

  widgets package:
  * New style entry 'bordercolor' for flat borders (BORDER_FLAT).
  * New abstract ButtonBase class for the fast creation of button type
    widgets.
  * New abstract Diagram class for diagram and graph widgets.
  * New Graph2D class for drawing function graphs on a 2D coordinate
    plane.
  * New ViewPort class, which can act as proxy for widgets, which need
    to be scrolled.
  * New global StyleInformation dictionary, which contains additional
    information about the Styles.
  * New DEFAULTDATADIR constant which denotes the installation path of
    the theme engines and additional resources.
  * New ORIENTATION_TYPES constants for widgets, which can draw
    themselves in a horizontal or vertival alignment.
  * New signal SIG_UPDATED, which indicates, that the screen was updated
    by the Renderer class.
  * New signal groups SIGNALS_KEYS and SIGNALS_MOUSE.
  * New 'maxsize' attribute and set_maximum_size () method in the
    BaseWidget class.
  * New 'minsize' attribute and set_minimum_size () method in the
    BaseWidget class.
  * New 'locked' attribute and lock() and unlock() methods in the
    BaseWidget class, which add locking abilities for updates.
  * New 'indexable' attribute and set_indexable() method in BaseWidget
    class for setting the Indexable interface implementor to use.
  * New method draw_bg() in BaseWidget class, which draws the plain
    background for the widgets (formerly a part of the draw() method).
  * New method rect_to_client() in BaseWidget class, which returns the
    absolute rectangle position of a widget on the screen and can be
    used as a replacement for the dropped 'eventarea' attribute.
  * New method check_sizes() method in BaseWidget.class, which
    guarantees valid sizes within the limitations of the BaseWidget.
  * New 'date_width' attribute and set_date_width() method in the
    StatusBar class.
  * New 'tip_width' attribute and set_tip_width() method in the
    StatusBar class.
  * New method select_all() in the ScrolledList class.
  * New 'managers' attribute and get_managers() method in the Renderer
    class, which returns a dict containing the event managers of the 
    different layers using the layer depths as keys.
  * New 'active_layer' attribute and set_active_layer() method in the
    Renderer class to set the active input layer
  * New 'show_layer_info' attribute and set_show_layer_info() method in
    the Renderer class to show layer information upon switching the
    active layer.
  * New 'support_resize' attribute and set_support_resize() method in
    the Renderer class to support VIDEORESIZE events.
  * New switch_layer() method in Renderer class to allow switching the
    input layer using CTRL-SPACE.
  * Full z-axis layer support through a new layer system within the
    the Renderer class.
  * Assigning the 'screen' attribute of the Renderer now will keep
    the surface attributes such as alpha transparency or a colorkey
    intact.
  * Events passed to the Renderer will be sent to the currently active
    layer only (except mouse events).
  * The updating mechanisms heavily changed. Updates are applied
    and shown instantly without a time bound loop mechanism. The event
    manangement in the Renderer class however is still bound to a timer.
  * Updating and drawing code was rewritten, which might break user
    defined drawing code.
  * Widgets are positioned relatively to their parents now, so that
    widget.rect returns the relative coordinates.
  * The 'position' attribute and set_position() method of the BaseWidget
    class are deprecated. Use the 'topleft' attribute instead.
  * The 'eventarea' attribute and set_event_area () method of the
    BaseWidget class are deprecated. Use the rect_to_client () method
    instead.
  * The Style class was rewritten in order to make use of theme engines.
  * Generic drawing routines were separated into an own default theme
    engine.
  * draw() methods of the widgets now take care of drawing the widget
    specific parts (formerly the Style class methods did that).
  * The BaseWidget class exposes all its pygame.Rect attributes.
  * Made several hittest and drawing related methods of the Entry class
    private.
  * The ScrolledWindow class now expects a ViewPort widget as child.
    Assigning any widget to its child attribute will encapsulate it in a
    ViewPort automatically, if not already done.
  * Made the get_visible_area() method of the ScrolledWindow class
    private.
  * The default value of the 'spacing' attribute for the ScrolledList
    changed from 2 to 0.
  * Made the get_coords_from_value() and get_value_from_coords() methods
    of the Scale and ScrollBar classes private.
  * Made get_slider_size() and get_button_coords() methods of the
    ScrollBar class private.
  * The StatusBar class uses fixed widths for the date and tips now.
  * The 'rect' attribute of the BaseWidget will return a copy of itself
    now.
  * The update() method of the BaseWidget receives keyword arguments now.
  * The set_dirty() method of the BaseWidget receives an additional
    argument now.
  * The 'caret_visible' attribute of the Editable class is writeable
    now.
  * The text argument in the CheckButton, RadioButton and ToggleButton
    constructors is optional now.
  * The image argument in the ImageButton constructor is optional now.
  * The Button, ImageButton and ToggleButton classes now inherit from
    ButtonBase.
  * The Button, ToggleButton, ImageButton, CheckButton and RadioButton
    classes now will draw a dashed border on focus regardless of a set
    child.
  * The create_screen() method of the Renderer class now allows to set
    additional flags as defined by pygame.display.set_mode().
  * The look of the Scale classes was overhauled.
  * The load() style loading method of the Style class now recognizes
    variables, which start with '_'.
  * Improved navigation support in the ScrolledList class.
  * The ListItemCollection now inherits from UserList.
  * The ListItemCollection constructor now receives optional list
    arguments.
  * Fixed a bug in ListItemCollection.destroy() which prevented it from
    being destroyed correctly.
  * 'shadow' value of the default style changed from 2 to 1.
  * Various former drawing methods of the Style class now draw directly
    on the passed surface.
  * Brushed up default FOLDER icon image.
  * Removed the RenderLayer class.
  * Removed the force_update() method from the Renderer class.
  * 'size' attribute and set_size() method are replaced by the
    'minsize' and 'maxsize' attributes and the set_minimum_size() and
    set_maximum_size() methods in BaseWidget class. The 'size' attribute
    itself will return the actual size of the widget.
  * Removed the get_scrollable_area() method from the ScrolledWindow
    class.