06c25631e3
Change-Id: I6f9b9cc510778ea561ebbb9ac215db615ea34a8e |
||
---|---|---|
.. | ||
android | ||
aqua/source | ||
coretext | ||
generic | ||
headless | ||
inc | ||
ios | ||
null | ||
qa | ||
quartz | ||
source | ||
test | ||
uiconfig/ui | ||
unx | ||
win/source | ||
workben | ||
AllLangResTarget_vcl.mk | ||
CppunitTest_vcl_filters_test.mk | ||
CustomTarget_afm_hash.mk | ||
CustomTarget_kde4_moc.mk | ||
CustomTarget_kde_moc.mk | ||
CustomTarget_tde_moc.mk | ||
Executable_kdefilepicker.mk | ||
Executable_tdefilepicker.mk | ||
Executable_ui-previewer.mk | ||
Library_desktop_detector.mk | ||
Library_vcl.mk | ||
Library_vclplug_gen.mk | ||
Library_vclplug_gtk.mk | ||
Library_vclplug_gtk3.mk | ||
Library_vclplug_kde.mk | ||
Library_vclplug_kde4.mk | ||
Library_vclplug_svp.mk | ||
Library_vclplug_tde.mk | ||
Makefile | ||
Module_vcl.mk | ||
Package_inc.mk | ||
README | ||
StaticLibrary_headless.mk | ||
StaticLibrary_vclmain.mk | ||
UIConfig_vcl.mk | ||
vcl.android.component | ||
vcl.headless.component | ||
vcl.ios.component | ||
vcl.macosx.component | ||
vcl.unx.component | ||
vcl.windows.component | ||
WinResTarget_vcl.mk | ||
Zip_osxres.mk |
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). VCL provides a graphical toolkit similar to gtk+, Qt, SWING etc. source/ + the main cross-platform chunk of source inc/ + cross-platform abstraction headers vcl/ + public headers ("public" to the rest of LibreOffice, that is) generic/ + shared helper code for *some* of the backends, actually built into vcl. headless/ + a backend renderer that draws to bitmaps android/ + Android backend (work in progress, does work to some extent) aqua/ + OS X backend ios/ + iOS backend (work in progres, does not work, needs re-think and re-write) win/ + Windows backend unx/ + X11 backend 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 X11 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. Note: references to "SV" in the code mean StarView, which was a portable C++ class library for GUIs, with very old roots, that was developed by StarDivision. Nowadays it is not used by anything except LibreOffice (and OpenOffice).