Flake (KDE)

From Wikipedia, the free encyclopedia

Flake is a new programming library that will be used in the upcoming KOffice 2 series. Flake will provide the basic concept of a "shape". To the end user a shape will appear as some piece of content like an image or a text. A shape can be in any form (square, circle, etc) and contain any kind of media since the Shape is responsible for drawing itself. All components of KOffice are being overhauled to use Flake as much as possible.[1]

[edit] Functionality

The functionality of Flake is divided up between Shapes which display content, and Tools which manipulate content or the user interface. Different Shapes can be created to support different kinds of content, for example the text-shape in KWord would support .txt and .odt formats while the Kchart shape would just support chart related document standard like .odc. Shapes will also be packaged with a set of tools to manipulate that kind of content and UI elements that expose the functionality to the user. This provides an application with all the features it needs and also allows for easy embedding of Shapes in other applications. Shapes can load other shapes when needed, for example when images are in text documents the image shape will be loaded to handle the images.

Flake is the successor to the old design of embedding based on widgets in the KOffice 1 series. The widget embedding had three notable shortcomings, that widgets were always square, couldn't be rotated and were measured in pixels. All of which are corrected by Flake. Embedded document data can now be zoomed, rotated and skewed, be of any form and are measured in units like millimeters. Flake also improves on the original design in several areas, like its extensibility. For example in Google's Summer of Code 2007 Marijn Kruisselbrink created a MusicXML based music notation Shape and Tools[2] Shapes can be made aware of other Shapes positions, moving an image through text will result in the text dynamically wrapping around the images[3]. Shapes can even be grouped together and made to behave like a single Shape. Flake also supports printing to PDF and has full support for anti-aliased painting for smoother text.[4]

[edit] References

Languages