Sadly, the current drawing engine is simulatenously to high and too low level:
seconded. It tries to integrate themeing and drawing engine support. They could be separated into two modules/engines, i.e.:
low-level drawing - engine: * draw_box/rectangle * draw_string * get_extents * init/destroy functions
higher level themeing engine: * draw_text_box * set_window_shape * draw_border * etc.
Problem would be the dupplication of the brush - functions (you'd need a brush for the high and low - level interfaces).
--Andreas
