In the past, weld.hxx used to contain the class definitions for weld::Widget and all subclasses. By now, weld::Widget and almost all subclasses have been moved to separate headers, to make it easier to keep the overview and to avoid having to recompile ~all UI code when one class changes. By now, only weld::Button is left in weld.hxx. Rename the header to Button.hxx. Drop weld.hxx includes and instead add Button.hxx includes (or weld::Button forward declarations) where weld::Button is used. (Don't simply replace all weld.hxx includes with Button.hxx ones, since many of them were for the use of other widgets that have since been moved to their own headers.) Add further includes where needed now that the (direct or transitive) includes of weld.hxx were removed. Change-Id: I8ea6201446a418d5e38b46337059dcd517ee29d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205937 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
Miscellaneous Modules
This module contains a grab-bag of unrelated miscellaneous libraries, none of which is an extension.
Application Online Update Checking
When we start LO, first InitUpdateCheckJobThread is created, via
UpdateCheckJob::execute() (from extensions/source/update/check/updatecheckjob.cxx),
as a reaction to a onFirstVisibleTask event. It waits 25 seconds (so that it
does not interfere with the startup itself), and then calls
UpdateCheck::initialize() (from extensions/source/update/check/updatecheck.cxx).
This creates one more thread, UpdateCheckThread, that regularly checks whether
we have reached the time when we should ask for the update. If yes, asks for
that, and shows the download button in the menu (if the new update is
available).
The update server will decide if there is an update available based on the user-agent string created by UpdateInformationProvider::getUserAgent, the data used there is extracted from instdir/program/versionrc and the update server takes the buildid into account, so to experiment with the updates from a dev version getUserAgent needs to return a recognized id.
OLE Automation Bridge
A bridge between "OLE automation" and UNO, so you can use UNO services from JScript, VBScript, etc.
https://www.openoffice.org/udk/common/man/spec/ole_bridge.html
See udkapi/com/sun/star/bridge/oleautomation/ApplicationRegistration.idl
This is initialized in Desktop::Main() in Desktop::OpenClients_Impl()
by creating the service com.sun.star.bridge.OleApplicationRegistration,
which is implemented by OleServer_Impl.
See extensions/source/ole/
ActiveX Control
This allows embedding LO into a Win32 application as an ActiveX control.
See extensions/source/activex/
Spotlight Provider
On macOS, this allows indexing ODF documents with Spotlight.
See extensions/source/macosx/spotlight/
Scanner Support
You can scan from LibreOffice, using platform specific backends like TWAIN/SANE.
See extensions/source/scanner/