blob: f373bad962c8b2f446884e1fbc258845b077f380 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
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).
Welcome to the Visual Class Libraries (vcl) code
source/
+ the main cross-platform chunk of source
inc/
+ cross-platform abstraction headers / definition
vcl/
+ external headers
generic/
+ shared helper code for backends,
actually built into vcl
headless/
+ a backend renderer that draws to bitmaps
aqua/
+ OS/X backend
ios/
+ skeleton Android backend
win/
+ windows backend
unx/
+ unix specific platform backend code 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 X 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.
|