You may not know what the drawinglayer is and what it would bring to borders in Writer. This is a new framework for drawing stuffs on the screen in OpenOffice.org. It offers a nice and easy API to render complex shapes. When implementing the new engraved / embossed / inset / outset border types in OpenOffice.org, I have seen the big difference between the rendering in Writer or Calc and the rendering for impress tables. To give you an idea of what happens, here are several motivations to change the way to render borders in Calc and Writer:
- There are 3 different codes to currently render borders: one for Writer floating objects, one for Writer tables and calc and the last one for impress tables. Every time I change the core border structure, I need to tweak those three places... having only one rendering code for all of them would ease the maintenance of the borders drawing.
- The current code is drawing rectangles... which provides strange result for the new 3D border types. For Impress tables I have changed the drawinglayer implementation to clip the polygons properly. In order to significantly improve the rendering result in Calc and Writer I need to use this drawinglayer.
I have just completed a first implementation for the Writer objects and tables: some screenshots will help you to understand the whole story...
Embossed table before the hack
Embossed table with the drawinlayer
Outset table with the drawinglayer
The changes will soon be committed to ooo-build git repository... but the patch won't be applied by default as it's still work in progress.