Sun Jul 31 14:25:36 2005  Tim Janik  <timj@gtk.org>

	* released 0.1.1, binary 0, interface 0.

Sun Jul 31 05:06:54 2005  Tim Janik  <timj@gtk.org>

	* examples/gtkrootwidget.cc (root_widget_realize): adjust the toplevel
	GdkWindow's background color, so background redrawing is blatantly 
	obvious upon resizes.

Sat Jul 23 17:04:06 2005  Tim Janik  <timj@gtk.org>

	* examples/tour.cc: added testimages to exploit ARGB/RGB and RLE/Raw
	pixel stream deserialization code. 

	* examples/tour.xml: display testimages. 

	* rapicorn/image.hh, rapicorn/image.cc: implemented builtin pixstream 
	registry. marked non-MT safe portions with "FIXME". 
	implemented actual image rendering in render(), fixed deserialization
	and cleaned up API.

Fri Jul 22 01:10:41 2005  Tim Janik  <timj@gtk.org>

	* examples/tour.xml: define "image" item, added broken image for
	test purposes.

	* rapicorn/birnetutils.hh: allow refcounting of const objects.

	* rapicorn/image.hh, rapicorn/image.cc: started basic image 
	implementation. so far, the API is in place, as well as a deserializer
	for gdk-pixbuf pixstreams. added 16x16 pixel big "broken image" pixstream.

Tue Jul 19 17:04:42 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/birnetutils.hh, rapicorn/private.hh: define DIR_SEPARATOR,
	DIR_SEPARATOR_S, SEARCHPATH_SEPARATOR and SEARCHPATH_SEPARATOR_S.

	* rapicorn/birnetutils.hh, rapicorn/birnetutils.cc: introduce basename 
	and dirname.

	* examples/tour.cc (construct_gui): try to find tour.xml based on the
	programs pathname.

Wed Jul  6 20:06:05 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/birnetsignal.hh: added struct CollectorUntil0 signal
	collector template. predefine SignalVoid for void(void) signals.

	* rapicorn/buttons.hh, rapicorn/buttons.cc:
	moved event handling to ButtonController.

	* rapicorn/container.cc: made singleton packer creation thread safe.
	dispatch event handling to item->controller() instances.

	* rapicorn/item.hh, rapicorn/item.cc: introduced per-item controller
	objects which take over the responsibility of handling events.

Sun Jul  3 13:27:03 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/paintcontainers.hh, rapicorn/paintcontainers.cc:
	removed button-view code.

	* rapicorn/buttons.hh, rapicorn/buttons.cc: moved button 
	implementation here.

Wed Jun 29 22:21:52 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/painter.cc: 
	Painter::draw_shaded_rect(): managed to move 5 muls and one add out of
	the inner loop, for an overall speed improvement of 5%.

	* rapicorn/primitives.cc:
	Plane::combine(): use generic pixel combiner for unknown endianess.

Wed Jun 29 21:48:50 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/primitives.cc: added optimized variant for combining pixel
	planes in-place with COMBINE_OVER, this gives a 30% speed improvement.

	* tests/pixcombine.cc: new test, used to benchmark pixel combination.

Wed Jun 29 11:43:39 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/painter.cc:
	major speed optimizations to shaded rectangles. combined, the
	following changes result in a more than 60% speed-up.
	Painter::draw_shaded_rect(): convert color components from int
	to float outside of the inner loop. fill destination area span-wise
	not pixels-wise. use a quick-and-dirty uint32-random generator
	rather than lrand48(). this random number generator is good enough
	for dithering but just requires one multiply and one add.

	* rapicorn/primitives.hh: support hand out of entire Plane spans.

	* tests/shaderect.cc: new test, used to benchmark shaded rectangles.

Tue Jun 28 22:32:57 2005  Tim Janik  <timj@gtk.org>

	* implemented on-demand plane rendering so no extra intermediate
	planes are constructed (and combined) for containers which do only
	layout and don't paint anything themselves.

	* rapicorn/primitives.hh, rapicorn/primitives.cc: 
	Plane::combine(): added lucent argument to allow variable alpha.
	Point::dist2(): return square distances.
	Display: new class which can be used to create clipped planes and
	render the combined result.

	* rapicorn/pangolabel.cc:
	* rapicorn/paintcontainers.cc: create planes for rendering from 
	the Display passed in to render(). 

	* rapicorn/container.hh, rapicorn/container.cc: render containers
	to a Display instead of a plane.

	* rapicorn/item.hh: render() now just has a Display as argument.

Wed May 11 18:10:56 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/primitives.cc (pixel_combine): make this an external
	inline function, so it always gets inlined.

Tue May 10 23:13:03 2005  Tim Janik  <timj@gtk.org>

	* configure.in: added --enable-profile=no option.

Sat May  7 15:47:36 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/arrangement*.hh, rapicorn/arrangement.cc:
	add arrangement container interface and implementation. an arrangement
	allowes free form item positioning, based on coordinates.

	* rapicorn/properties.hh: added Point (two doubles) property.

	* rapicorn/birnetutils.cc, rapicorn/birnetutils.hh: 
	added conversion functions between string and a vector of doubles.

	* rapicorn/paintcontainers.cc: fixed button event return values.

	* examples/tour.xml: test arrangement.

Tue Apr 19 14:32:48 2005  Tim Janik  <timj@gtk.org>

	* version 0.1.0-rc1.

Tue Apr 19 14:27:41 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/birnetutils.hh, rapicorn/birnetutils.cc: allow varying bases
	when converting strings to integers.

	* rapicorn/paintcontainers.cc: allow color property specification as
	hex triplet.

Mon Apr 18 23:10:21 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/painter.cc: implement hline and vline drawing.
	implemented draw border, and draw shadow. implemented shaded
	and filled rectangles.

	* rapicorn/mksignals.sh: /bin/sh is more protable than bash.

	* examples/Makefile.am: check xml files with xmllint.

	* examples/tour.cc, examples/tour.xml: minor fixups, added licensing.

Sun Apr 17 19:42:35 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/primitives.hh: fixed pixel stride.

	* rapicorn/pangolabel.hh, rapicorn/pangolabel.cc: implement PangoLabel.

	* examples/tour.cc: setup the root item widget.

Sun Apr 17 19:06:31 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/birnetsignal.hh: introduce ScopeReference to keep an
	instance referenced within block scope. added SignalFinalize
	which does not need the emitter to be ref/unref-ed around emit(),
	but instead asserts its in finalization stage. cleanups.
	* rapicorn/birnetsignaltemplate.hh: use ScopeReference.

	* rapicorn/birnetutils.hh: added is_derived<>().

	* rapicorn/item.hh: made sig_finalize a SignalFinalize, so we don't
	trigger ref_count!=0 assertions during finalization.

	* tests/signal.cc: removed cruft.

	* examples/tour.xml: define dialogs for tour.cc.

	* examples/tour.cc: build tree from tour.xml.

	* examples/gtkrootwidget.hh, examples/gtkrootwidget.cc: embedd the
	Root item in a GtkWidget.

	* examples/Makefile.am: only build tour example if gtk is present.

	* configure.in: test for pango and Gtk+ and provide automake 
	conditionals for them.

Sun Apr 17 13:37:42 2005  Tim Janik  <timj@gtk.org>

	* examples/: new directory to compile example programs.

	* examples/tour.cc: example skeleton.

Sat Apr 16 18:00:21 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/layoutcontainers.hh, rapicorn/layoutcontainers.cc:
	implement Alignemtn, HBox and VBox containers.

	* rapicorn/paintcontainers.hh, rapicorn/paintcontainers.cc:
	implement Ambience, Frame and ButtonView ontainers.

	* rapicorn/painter.hh, rapicorn/painter.cc: interface for drawing
	operations on planes, such as hlines, vlines or shading/filling a
	rectangle. added Dasher implementation internally, a helpr structure 
	for stippled outlines.

Fri Apr 15 18:06:41 2005  Tim Janik  <timj@gtk.org>

	* tests/markup.cc: test markup parser. 

Fri Apr 15 17:38:52 2005  Tim Janik  <timj@gtk.org>

	* tests/Makefile.am: compile tests with -DRAPICORN_PRIVATE to enable
	a few convenience macros.

	* tests/datalist.cc: test datalist implementation.

	* rapicorn/item.cc: removed unused test code.

Fri Apr 15 17:13:02 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/table.hh, rapicorn/table.cc, rapicorn/tableimpl.hh:
	define Table interface, implement TableImpl, a very versatile 
	container type, based on GtkTable of GTK+.

	* rapicorn/container.hh, rapicorn/container.cc, rapicorn/containerimpl.hh:
	define the most basic Container API. define Root widget API. implement
	SingleContainerImpl and MultiContainerImpl, implement RootImpl.

	* rapicorn/item.hh, rapicorn/item.cc, rapicorn/itemimpl.hh:
	define API of the most basic graphically visible instance, an Item.
	provide sample implementation ItemImpl.

	* rapicorn/primitives.hh, rapicorn/primitives.cc: implemented Affine
	transformations as class type. 

	* rapicorn/factory.hh, rapicorn/factory.cc: implement factory logic to
	register item types and create item instances. added gadget parser
	(XML based item tree descriptions) so item definitions can be read in
	and created from XML definitions.

	* rapicorn/birnetmarkup.hh, rapicorn/birnetmarkup.cc: added simple 
	XML markup parser, based on GMarklup from GLib.

	* rapicorn/private.hh: define MakeProperty() internally.

Thu Mar 31 16:18:20 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/utilities.hh, rapicorn/utilities.cc: implement class
	Convertible, a class providing interface<>() methods to retrieve
	different interfaces. 

	* rapicorn/birnetutils.hh: added DataListContainer, a class containing
	a DataList.

	* rapicorn/Makefile.am: actually compile utilities.cc.

Thu Mar 31 15:48:06 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/properties.hh, rapicorn/properties.cc: implement generic
	Property structure and derived types for booleans, ints, doubles and
	strings. these allow to generically query, set and get properties on
	an object.

	* tests/properties.cc: test property constructors for various types.

Wed Mar 30 00:52:05 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/birnetsignalslot.hh: moved signal handler and slot
	definitions here. there're no emitter handlers/slots anymore.
	support extra data argument for function and method handlers.

	* rapicorn/birnetsignaltemplate.hh: removed handlers/slots. moved
	knowledge about emitter obejct into Emission. let class Emission
	care about casting handlers correctly (with or without emitter arg),
	cleaned up signal methods some.

	* rapicorn/birnetsignal.hh: removed HandlerBase, ReferencableBase.
	added with_emitter flag to signal handlers. made SlotBase a regular
	class, rather than a template. 

	* rapicorn/mksignals.sh: fixed line numbers. allow 17 arguments.
	allow specification of maximum argument count. 

	* tests/signal.cc: test data handlers and emitter-less ahndlers.

	* rapicorn/Makefile.am: generate birnetsignalvariants.hh from
	birnetsignalslot.hh (we need 0..17 argument handlers) and
	birnetsignaltemplate.hh (for 0..16 argument signals).

Tue Mar 29 17:00:08 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/birnetsignal.hh, rapicorn/birnetsignal.cc: namespace change
	to namespace Signals. added EmissionBase, extended SignalBase to
	maintain a signal handler list as ring data structure. removed
	accumulators, added Collectors, added Signature template to extract the
	return type of a function type for functions with up to 16 arguments.
	include birnetsignalvariants.hh to define all signal variants. 

	* rapicorn/birnetsignaltemplate.hh: implement signal with emission and
	handlers etc, for exactly 3 signal arguments. 

	* rapicorn/mksignals.sh: generate signal variants for 0..16 signal 
	arguments from birnetsignaltemplate.hh.

	* rapicorn/birnetsignaldefs.hh, rapicorn/birnetsignalinc.hh: removed.

	* rapicorn/private.hh: renamed PRIVATE_CLASS_COPY().
	* rapicorn/birnetutils.hh: renamed BIRNET_PRIVATE_CLASS_COPY().

	* rapicorn/Makefile.am: generate birnetsignalvariants.hh.

	* tests/signal.cc: test signal variants for 0..16 arguments with void
	and other return types. 

Mon Mar 28 10:12:34 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/birnetsignal.hh, rapicorn/birnetsignaldefs.hh:
	moved signals into an extra Signal namespace, renamed Signal::Closure
	to Signal::Handler. 

	* rapicorn/birnetutils.hh: import relevant parts from 
	the Signal namespace.

Mon Mar 28 10:01:06 2005  Tim Janik  <timj@gtk.org>

	* acbirnet.m4: disable -fmessage-length argument to g++, since it 
	doesn't really improve error output with gcc-3.4.

	* rapicorn/birnetsignaldefs.hh: disabled signal generation.
	added test implementation of a 3 argument signal which supports passing
	the emitter object as first argument to signal handlers.

	* rapicorn/birnetutils.hh: virtualize the delete this; operation of 
	ReferenceCountImpl, so derived instances can adapt deletion to their
	allocation scheme. 

	* tests/signal.cc: disabled old signal tests.
	added test for 3 argument signal variant, currently implemented in
	birnetsignaldefs.hh.

Sun Mar 27 19:52:12 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/birnetsignal.hh, rapicorn/birnetsignalinc.hh:
	* rapicorn/birnetsignaldefs.hh:
	rudimentary signal (callback list) implementation for C++.

	* tests/signal.cc: test signals.

Sun Mar 27 05:54:04 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/events.hh, rapicorn/events.cc: 
	provide several event types with constructor for mosue events,
	button events, focus events, key events and scroll events. 
	also, provide ModifierState and KeyValue (by including keycodes.hh)
	enums for key events.

	* rapicorn/keycodes.hh: keyboard key codes, generated from gdkkeysyms.h.

	* rapicorn/appearance.hh, rapicorn/appearance.cc: 
	provide class Style which provides colors according to various states.
	provide class Appearance which is simply a Style factory.

Sun Mar 27 05:21:40 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/primitives.hh, rapicorn/primitives.cc:
	consolidated Rect() constructors. added Plane, an ARGB pixel buffer,
	which uses an endian dependant ARGB format with premultiplied alpha.
	this is the same format cairo uses for its surface buffers in ARGB mode.
	plane implements various combination modes, i.e. the non-inverting
	porterduff modes, blending and value combination.

Sun Mar 27 04:20:15 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/primitives.hh, rapicorn/primitives.cc:
	provide degree/radians conversion. provide asm-based ftoi for doubles.
	provide iround, iceil, ifloor. 
	implement class Point with double coordinates. implement rectangle
	type class Rect based on Point coordinates. implemented ARGB Color
	type. 

	* tests/primitives.cc: test get_hsv/set_hsv Color conversions.

	* rapicorn/utilities.hh, rapicorn/utilities.cc:
	moved gettext logic here. import abs, clamp, min, max. provide mixed
	double/long variants for min and max, to not confuse the compiler
	if integer constants are used.

	* rapicorn/birnetutils.hh: fixed up swap, min, max, abs and clamp by
	using std:: versions if possible.

	* rapicorn/enumdefs.hh, rapicorn/enumdefs.cc: removed utility stuff.

Sun Mar 27 01:37:22 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/enumdefs.hh, rapicorn/enumdefs.cc:
	provide i18n funcitons and defines. define enum types:
	FrameType, LightingType, AlignType, WrapType, EllipsizeType, 
	StateType and ColorType. implement introspection mechanism 
	for enums defined in enumdefs.hh (based on glib-mkenums). import
	Birnet namespace and include private.hh for rapicorn compilation.

	* rapicorn/private.hh: define convenience non-namespaced helper
	macros for rapicorn compilation.

	* rapicorn/birnetutils.hh: added min, max, clamp and abs.

Sat Mar 26 19:52:48 2005  Tim Janik  <timj@gtk.org>

	* tests/walker.cc: test Walker template.

	* rapicorn/rapicorn.hh: added includes.

	* tests/Makefile.am: build and run tests.

	* build po/ and tests/

Sat Mar 26 19:02:56 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/birnetutils.hh, rapicorn/birnetutils.cc:
	provide standard types, assertion macros, compiler attributes,
	string conversion functions, warning/error/diagnostic functions,
	exception hanlding basics. provide special classes:
	(class Deletable): class with virtual destructor.
	(class PointerIterator): make a real iterator from a memory pointer.
	(class ValueIterator): automatically dereference an iterator.
	(class IteratorRange): self contained iterator range, a normal iterator
	that also knows it's container's end(), implements has_next(), done().
	(class ValueIteratorRange): a dereferencing IteratorRange.
	(class Walker): an easy to use iterator_range (begin(), end())
	substitute. creating a walker template only requires specification of
	the actual value type. walkers are created with walker(...).
	(class ReferenceCountImpl): implement a Deletable object with a 31bit
	reference count and floating state. derived types should use 
	BIRNET_DISABLE_CLASS_COPY() to prevent stack allocation of instances.
	(class DataList): implement a list of generic data items in a typesafe
	way. sizeof(DataList) is supposed to be just sizeof(Pointer) to allow
	empty lists with as little as possible overhead.
	(class DataKey): type specific key template to index DataList items.
	binary_lookup*(): implement binary lookups as templates.

Sat Mar 26 18:50:03 2005  Tim Janik  <timj@gtk.org>

	* rapicorn/standard.xml: empty skeleton.

Sat Mar 26 18:46:20 2005  Tim Janik  <timj@gtk.org>

	* configure.in: detect glib, pango and libz. fixed xmllint check.

	* rapicorn/Makefile.am: basic build rules.

Sat Mar 26 18:08:15 2005  Tim Janik  <timj@gtk.org>

	* AUTHORS, NEWS, README: describe affairs.

Sat Mar 26 17:51:28 2005  Tim Janik  <timj@gtk.org>

	* TODO, Makefile.am, autogen.sh, configure.in, po-helper.sh.in :
	add standard project files.

Sat Mar 26 17:22:26 2005  Tim Janik  <timj@gtk.org>

	* acbirnet.m4: usefull autoconf macros.
	
