VCL Weld Mechanism
TDF LibreOffice Document Liberation Project Community Blogs Weblate Nextcloud Redmine Ask LibreOffice Donate
Introduction
In early LibreOffice versions, and before that in OpenOffice, user interface was created in the code, and the visual appearance of the application was different from the native applications on every platform. That was problematic because of the complexity of creating and modifying the user interfaces, and also the non-native look and feel.
In order to add native widget support and also simplify user interface creation in LibreOffice, Caolán McNamara introduced a mechanism to load UI files created with Glade interface designer, and use them as if they are UI files for each and every GUI framework that LibreOffice supports: from GTK to Qt, Windows, macOS and even the so-called gen backend that only requires the X11 library on Linux.
Through welding mechanism, VCL uses native widgets to create user interfaces. Before that, VCL created widgets itself, and then used theming to emulate the native desktop appearance. With the introduction of VCL API, now there are not direct usages of VCL dialog APIs. More details can be found in [3]. As described there, "non-dialog utility windows and other elements" might be remaining, but dialogs is already complete since late 2019.
Links
1. LibreOffice and Native Gtk Widgets (PDF slides), LibreOffice conference 2020, Caolán McNamara
2. LibreOffice Native GTK Dialog Status, Caolán McNamara, 2019
3. Some Native GTK Dialogs in LibreOffice, Caolán McNamara, 2018