The Free and Open Productivity Suite
Released: Apache OpenOffice 4.1.15

Graphic System Layer Project

Project Lead: Philipp Lohmann

Co Lead: Herbert Dürr

The Graphic System Layer (GSL) project is an umbrella project to provide graphic output on different devices. Graphic output refers to a range of operations starting from simple line drawing to complex raster operations. Furthermore it contains a set of widgets and different APIs to make use of them. The most prominent examples for devices are of course computer displays and printer.

The Visual Class Library (VCL) is the most prominent module of the project. It contains implementations for fundamental concepts like windows, fonts, bitmaps, widgets (buttons, menus, ...) and so on. The infrastructure VCL provides is heavily used throughout all higher level infrastructure layer and the different application modules. VCL lets look and feel the way it does. VCL provides an external operating system independent API to higher level modules an internal API for implementing those in a system dependent manner. Current implementations provide support for Microsoft Windows and Unix/XWindow based systems. The latter is used for the Mac OS X port as well (A further project uses Java for implementation, however it's not hosted on If you plan to port to a new platform then it's probably worth to have a look at VCL.

GSL and VCL are sometimes used as synonyms which is way too simple. GSL contains a lot more modules than just VCL, a complete list is given below.

Modules in the Graphic System Layer Project




Accessibility tools bridges (e.g. java accessibility bridge)


Accessibility workbench for checking accessibility bridges


Accessibility test programs


Base classes for bitmap manipulation


Implementation of a new graphical output layer designed to replace vcl's OutputDevice


C++ wrappers and helper classes for canvas


System specific interchange (e.g. clipboard, drag and drop)


Implementation of controls that can be used as forms in documents. Form controls are based on VCL.


Support for system specific file dialogs and a generic fallback solution


Printer administration utility. Used on Unix platforms to configure printer queues and capabilities


Printer discovery and PostScript code generation. In conjunction with VCL it provides an application printing solution on Unix based systems. In the 3.2 codeline the psprint code has moved from its own modules into vcl to benefit from tighter integration.


Resource compiler. The basic layout of dialogs and the strings that are subject of translation/localization are stored in resource files. The resource compiler creates an efficient binary representation out of a human readable text format


System integration: bindings to mailers and other external components


System desktop integration: mimetype and file type registration, quickstarter


Toolkit provides a UNO API to VCL and UNO controls


A set of controls that do not directly rely on VCL. Currently implemented are a control for downloading files and an embeddable document preview.


Visual Class Library, implements graphic operations, window management and basic controls

What's going on for 3.2 ?

What's going on for 3.1 ?

What's going on for 3.0 ?

What was going on for 2.x ?

What was going on for 2.0 ?

What was going on for 1.x ?

Want more information ? Want to help ?

There is a simple way to find out more about GSL and it's role in Just ask ! If you have questions then please post them in the dev@gsl mailing list. Please have a look here for contact information.

All trademarks found herein are property of their respective owners.

Apache Software Foundation

Copyright & License | Privacy | Contact Us | Donate | Thanks

Apache, OpenOffice, and the seagull logo are registered trademarks of The Apache Software Foundation. The Apache feather logo is a trademark of The Apache Software Foundation. Other names appearing on the site may be trademarks of their respective owners.