Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

## History

### v1.3.1 (22.01.2005)

- background_wnd_by_key is now inherited correctly (private from background_wnd)
- text_painter now supports negative font heights
- new painter: alphablend_painter which draws another painter transparently (unlike transparent_painter it draws the the whole painter transparent and not only one color totally transparent. the transparency degree can be modified)
- fixed bug in `painter_base::operator= ()`. i forgot to return a value from the function... :-(

### v1.3 (27.12.2004)

- background_wnd is now split to two distinct classes: background_wnd which gives you access to the painters with an index and background_wnd_by_key which is derived from background_wnd but maps a key to an index. So background_wnd_by_key is the original background_wnd ;-). Thanx to John Torjo for his suggestions!
- Added virtual function `clone()` to painter_base so that a virtual copy is possible. `background_wnd::add_painter` is now also a non-template member function which takes a painter by reference and copies it before adding
- New class: painter_holder. Just derive your painters from painter_holder if you want painters which aggregate other painters to change their drawing behaviour.
- Fitting to these changes there are new painters: transparent_painter and stretch_painter which both derive from painter_holder. The former draws another painter but with one color transparent while the latter draws the painter stretched.
- Another new painter is layout_painter. It holds not only one painter but an unlimited number. They are drawn in a table. The dimensions, row and column width etc. can easily be changed. With this painter it is incredibly easy to create an Excel-like application. Of course the main purpose is to have an easy way to alter the layout but you can exhaust this simple task to it's limits: What about nested layout_painters, transparent cells, merged cells, margins, ... (all possible with the current implementation). Neat, huh? ;-)
- Other new painters: gradient_painter and text_painter (fits a text vertically in the drawing rect)
- Much improvements in the existing painters
- Changed the code organisation
- Better namespace organisation: background_wnd and painters in `win32::gui`, the additional classes in `win32::gui::bg_wnd`
- This file is new
- Created a documentation with doxygen
- A lot of bugfixes

### v1.2.2 (6.12.2004)

- Fixed a critical bug in `redraw_painter()`: when a painter doesn't draw on the full area of the drawing rect and transparency isn't 255 (opaque) you would see a colored glow
- Now the drawing-rect is a real clipping rect. Before the painter was able to draw outside his drawing-rect
- Changed the interface of painter_base. The functions have now less parameters - the obsolete ones have gone ;-). Due to this changes I had to update the painters

### v1.2.1 (5.12.2004)

- Some minor changes

### v1.2 (4.12.2004)

- Now you can set the transparency of a painter
- Option for disabling redrawing when something changes (for example a painter is added). Useful to avoid flickering: do all the changes you want to and then re-enable the redrawing.
- The drawing is now a lot more efficient: if a painter is completely overlapped by other painters and they aren't transparent or invisible the painter underneath them won't be painted. Because an implementation of a painter can leave out some areas of the drawing-rect from being painted I added a new virtual function to painter_base: `is_opaque()`. By default this function returns false so painters underneath it will always be painted even if their drawing-rect is overlapped by this painter! To create efficient painters take this function into consideration ;-)
- `add_painter()` and load_painter() now support up to two parameters: `param0` and `param1` typedefs can be provided in derived classes
- Dismissed boost's typetraits for the Key-type

### v1.1 (23.11.2004)

- Number of Painters isn't limited anymore. The painter isn't passed as a template parameter to background_wnd anymore: you can add painters through a member function
- Access to painters is arranged through a key. When adding a painter you specify a unique key
- Exceptions are thrown when you access a painter through an invalid key or when you want to add a painter with a key that exists yet
- The Z-Order of the painters can be rearranged ;-)
- The painters can be hidden and shown
- Fixed some bugs and eliminated unnecessary `redraw()`
- Comments now in English

### v1.0 (20.11.2004)

- Drawing of the background is possible. You pass the painter as a template parameter to the window
- Drawing is flickerfree because of a memory DC

| by Steven Weiss. You can contact me at steven11@gmx.de.