Files
libreoffice/vcl
Caolán McNamara ab8f432b33 use approximate_char_width instead of GetTextWidth('X')
Change-Id: I4c25b07c1c5d80b70b801fd61b711a00d5194c04
2013-03-11 07:53:11 +00:00
..
2013-03-08 13:16:49 +00:00
2013-03-10 14:31:18 -04:00
2013-02-28 18:40:06 +01:00
2013-03-08 13:16:49 +00:00
2013-03-08 13:16:49 +00:00
2013-03-02 16:02:39 +00:00
2013-03-02 16:02:39 +00:00
2013-03-07 10:15:57 +02:00

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).

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).