office-gobmx/vcl
Tomaž Vajngerl 649f000084 sal_Bool to bool in jpeg filter
Change-Id: I9a091e9b209c443cb32983e6d35044eec8681d18
2013-04-21 21:55:45 +02:00
..
android Small refactoring of the Android "desktop app" code, no functional change 2013-04-19 18:50:36 +03:00
aqua/source remove unused component_canUnload functions 2013-04-19 16:52:03 +02:00
coretext Turn off subpixel positioning for now 2013-04-12 02:24:45 +03:00
generic Related: rhbz#761009 lp#766153 lp#892904 HandleFontOptions crash 2013-04-18 13:25:16 +01:00
headless mass removal of rtl:: prefixes for O(U)String* 2013-04-07 14:23:11 +02:00
inc fdo#62699 Remove a few more pass-through headers 2013-04-21 05:51:29 +00:00
ios Add pan gesture handling 2013-04-19 00:18:33 +03:00
null mass removal of rtl:: prefixes for O(U)String* 2013-04-07 14:23:11 +02:00
qa fdo#60724 correct spelling 2013-04-15 05:10:29 +02:00
quartz Log a null CGRect as "NULL" 2013-04-11 19:14:38 +03:00
source sal_Bool to bool in jpeg filter 2013-04-21 21:55:45 +02:00
test fdo#60724 correct spelling 2013-04-15 05:39:31 +02:00
uiconfig/ui
unx fdo#63154: Change Min/Max/Abs for std::min/max/abs 2013-04-20 11:09:54 +00:00
win/source fdo#63154: Change Min/Max/Abs for std::min/max/abs 2013-04-20 11:09:54 +00:00
workben mass removal of rtl:: prefixes for O(U)String* 2013-04-07 14:23:11 +02:00
AllLangResTarget_vcl.mk unwind tangled mess around spinner buttons 2013-04-04 11:17:21 +01:00
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 new module i18nlangtag 2013-04-05 19:10:48 +02:00
Library_vcl.mk Split JpegWriter and JpegReader out from jpeg.cxx/hxx 2013-04-21 21:55:44 +02:00
Library_vclplug_gen.mk vcl: conditionally link to jvmaccess 2013-04-11 07:41:30 +00:00
Library_vclplug_gtk.mk move gtkframe to gtksalframe to match class name 2013-04-17 16:25:57 +02:00
Library_vclplug_gtk3.mk vcl: conditionally link to jvmaccess 2013-04-11 07:41:30 +00:00
Library_vclplug_kde.mk vcl: conditionally link to jvmaccess 2013-04-11 07:41:30 +00:00
Library_vclplug_kde4.mk vcl: conditionally link to jvmaccess 2013-04-11 07:41:30 +00:00
Library_vclplug_svp.mk vcl: conditionally link to jvmaccess 2013-04-11 07:41:30 +00:00
Library_vclplug_tde.mk vcl: conditionally link to jvmaccess 2013-04-11 07:41:30 +00:00
Makefile
Module_vcl.mk rename UI to UIConfig 2013-04-11 03:37:30 +00:00
Package_inc.mk fdo#62699 Remove a few more pass-through headers 2013-04-21 05:51:29 +00:00
README more code overview documentation. 2013-04-08 14:06:32 +01:00
StaticLibrary_headless.mk new module i18nlangtag 2013-04-05 19:10:48 +02:00
StaticLibrary_vclmain.mk add missing dep on sal/config.h 2013-03-28 08:59:25 +01:00
UIConfig_vcl.mk rename UI to UIConfig 2013-04-11 03:37:30 +00:00
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).