Development/VCL

    From The Document Foundation Wiki

    Introduction

    Main article: VCL weld mechanism.

    LibreOffice uses VCL (Visual Class Library) as its internal widget toolkit to create the graphical user interface (GUI) of LibreOffice. This library is responsible for creating the GUI widgets for LibreOffice, providing abstraction from the operating system including the basic rendering.

    VCL is responsible for the widgets (windowing, buttons, controls, file-pickers etc.), operating system abstraction, including basic rendering (e.g. the output device). It should not be confused with Borland’s Visual Component Library, which is entirely unrelated.

    VCL provides a graphical toolkit similar to wxWidgets, and in the software stack it has the place on the top of toolkits like GTK, Qt, meaning that it uses those toolkits.

    VCL is capable of loading user interface definition files in Glade XML format (.ui) at runtime, and use native widgets of specific platform to match the look and feel of other user interfaces. This can be changed simply by setting an environment variable, to select among the platform-specific user interface libraries that are available.

    Examples

    Main article: VCL workbenches.

    These are the examples that can help to become familiar with the way LibreOffice GUI is created using VCL.

    Getting Started Examples

    First example, minvcl, uses some primitive constructs from VCL to create and display a Window on the screen.

    This is a more interesting example, minweld, which uses VCL::weld mechanism to display a user interface designed with Glade.

    More Complex Examples

    These are more complex examples:

    Workbenches

    If you take a look into the vcl/workben, you will see several workbenches that are actually built during the build process. These are some of them:

    Environment Variables