office-gobmx/vcl/README
Tor Lillqvist 54d3aa2785 Improve vcl/README
Change-Id: I9031ab98f263bcc32b747c85e1715b80c7059ae9
2013-03-07 10:15:57 +02:00

63 lines
1.6 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).
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).