Files
libreoffice/vcl
Noel Grandin 0ac9a10d31 fdo#46808, Deprecate configuration::ConfigurationProvider old-style service
...in favor of existing new-style configuration::theDefaultProvider singleton.

Theoretically, ConfigurationProvider instances can be created with specific
Locale and EnableAsync arguments, but this is hardly used in practice, and thus
effectively all uses of the ConfigurationProvider service use the
theDefaultProvider instance, anyway.

theDefaultProvider is restricted to the XMultiServiceFactory interface, while
ConfigurationProvider also makes available XComponent.  However, dispose must
not be called manually on theDefaultProvider singleton anyway, and calls to
add-/removeEventListener are so few (and in dubious code that should better be
cleaned up) that requiring an explicit queryInterface does not really hurt
there.

This commit originated as a patch by Noel Grandin to "Adapt
configuration::ConfigurationProvider UNO service to new style [by creating] a
merged XConfigurationProvider interface for this service to implement."  It was
then modified by Stephan Bergmann by deprecating ConfigurationProvider instead
of adding XConfigurationProvider and by replacing calls to
ConfigurationProvider::create with calls to theDefaultProvider::get.

Change-Id: I9c16700afe0faff1ef6f20338a66bd7a9af990bd
2012-10-31 15:31:36 +01:00
..
2012-10-31 14:16:54 +00: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).

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.