49 lines
1.3 KiB
Text
49 lines
1.3 KiB
Text
Visual Components Library is responsible for the widgets (windowing, buttons, controls, 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.
|