office-gobmx/vcl/README
Michael Meeks 6ec6319423 more code overview documentation.
Change-Id: I1eb1ac2c88a906ea1a4c11194d79219c684afb76
2013-04-08 14:06:32 +01:00

65 lines
1.7 KiB
Text

Visual Components Library is responsible for the widgets (windowing, buttons, controls, file-pickers etc.) operating system abstraction, including basic rendering (e.g. the output device).
VCL provides a graphical toolkit similar to gtk+, Qt, SWING etc.
source/
+ the main cross-platform chunk of source
inc/
+ cross-platform abstraction headers
vcl/
+ public headers ("public" to the rest of LibreOffice, that is)
generic/
+ shared helper code for *some* of the backends, actually built into vcl.
headless/
+ a backend renderer that draws to bitmaps
android/
+ Android backend (work in progress, does work to some extent)
aqua/
+ OS X backend
ios/
+ iOS backend (work in progres, does not work, needs re-think
and re-write)
win/
+ Windows backend
unx/
+ X11 backend and its sub-platforms
plugadapt/
+ pluggable framework to select correct unx backend
gtk/
+ GTK2 support
gtk3/
+ GTK3.2+ support
kde/
+ KDE3 support
kde4/
+ KDE4 support
generic/
+ raw X11 support
How the platform abstraction works
+ InitVCL calls 'CreateSalInstance'
+ ths is implemented by the compiled-in platform backend
+ it stores various bits of global state in the
'SalData' (inc/saldatabasic.hxx) structure but:
+ the SalInstance vtable is the primary outward facing gateway
API for platform backends
+ It is a factory for:
SalFrames, SalVirtualDevices, SalPrinters,
Timers, the SolarMutexe, Drag&Drop and other
objects, as well as the primary event loop wrapper.
Note: references to "SV" in the code mean StarView, which was a
portable C++ class library for GUIs, with very old roots, that was
developed by StarDivision. Nowadays it is not used by anything except
LibreOffice (and OpenOffice).