1 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).
3 VCL provides a graphical toolkit similar to gtk+, Qt, SWING etc.
6 + the main cross-platform chunk of source
9 + cross-platform abstraction headers
11 + public headers ("public" to the rest of LibreOffice, that is)
14 + shared helper code for *some* of the backends, actually built into vcl.
17 + a backend renderer that draws to bitmaps
20 + Android backend (work in progress, does work to some extent)
26 + iOS backend (work in progres, does not work, needs re-think
33 + X11 backend and its sub-platforms
36 + pluggable framework to select correct unx backend
49 How the platform abstraction works
51 + InitVCL calls 'CreateSalInstance'
52 + ths is implemented by the compiled-in platform backend
53 + it stores various bits of global state in the
54 'SalData' (inc/saldatabasic.hxx) structure but:
55 + the SalInstance vtable is the primary outward facing gateway
56 API for platform backends
57 + It is a factory for:
58 SalFrames, SalVirtualDevices, SalPrinters,
59 Timers, the SolarMutexe, Drag&Drop and other
60 objects, as well as the primary event loop wrapper.
62 Note: references to "SV" in the code mean StarView, which was a
63 portable C++ class library for GUIs, with very old roots, that was
64 developed by StarDivision. Nowadays it is not used by anything except
65 LibreOffice (and OpenOffice).