Version 3.6.0.2, tag libreoffice-3.6.0.2
[LibreOffice.git] / vcl / README
blobf373bad962c8b2f446884e1fbc258845b077f380
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 Welcome to the Visual Class Libraries (vcl) code
5 source/
6         + the main cross-platform chunk of source
7 inc/
8         + cross-platform abstraction headers / definition
9         vcl/
10                 + external headers
11 generic/
12         + shared helper code for backends,
13           actually built into vcl
14 headless/
15         + a backend renderer that draws to bitmaps
16 aqua/
17         + OS/X backend
18 ios/
19         + skeleton Android backend
20 win/
21         + windows backend
22 unx/
23         + unix specific platform backend code and its' sub-platforms
24         plugadapt/
25                 + pluggable framework to select correct unx backend
26         gtk/
27                 + gtk2 support
28         gtk3/
29                 + gtk3.2+ support
30         kde/
31                 + kde3 support
32         kde4/
33                 + kde4 support
34         generic/
35                 + raw X support
38 How the platform abstraction works
40         + InitVCL calls 'CreateSalInstance'
41                 + ths is implemented by the compiled-in platform backend
42                 + it stores various bits of global state in the
43                   'SalData' (inc/saldatabasic.hxx) structure but:
44         + the SalInstance vtable is the primary outward facing gateway
45           API for platform backends
46                 + It is a factory for:
47                   SalFrames, SalVirtualDevices, SalPrinters,
48                   Timers, the SolarMutexe, Drag&Drop and other
49                   objects, as well as the primary event loop wrapper.