49 lines
1.3 KiB
Text
49 lines
1.3 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).
|
|
|
|
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.
|