fdo#74697 Add Bluez 5 support for impress remote.
[LibreOffice.git] / vcl / README
blob6fcf8607233d3db0a26e5c20264e5ed4de2a785e
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.
5 source/
6         + the main cross-platform chunk of source
8 inc/
9         + cross-platform abstraction headers
10         vcl/
11                 + public headers ("public" to the rest of LibreOffice, that is)
13 generic/
14         + shared helper code for *some* of the backends, actually built into vcl.
16 headless/
17         + a backend renderer that draws to bitmaps
19 android/
20         + Android backend (work in progress, does work to some extent)
22 aqua/
23         + OS X backend
25 ios/
26         + iOS backend (work in progres, does not work, needs re-think
27         and re-write)
29 win/
30         + Windows backend
32 unx/
33         + X11 backend and its sub-platforms
35         plugadapt/
36                 + pluggable framework to select correct unx backend
37         gtk/
38                 + GTK2 support
39         gtk3/
40                 + GTK3.2+ support
41         kde/
42                 + KDE3 support
43         kde4/
44                 + KDE4 support
45         generic/
46                 + raw X11 support
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).