How libreoffice/core works
LibreOffice is a cross-platform office suite. A typical workflow starts when a user opens or creates a document, the desktop/framework runtime loads it into an application module, and the document is edited and rendered through shared UI and graphics layers before being saved. The README describes the core module responsibilities; the supplied tree also exposes an Android LibreOfficeKit client and extension deployment code. Some links below follow documented responsibilities rather than sampled implementation, so uncertain internal calls are omitted.
Main entry points: framework UI framework · sfx2 Document framework · svx Drawing helpers · desktop Desktop startup
Components 18
Application entry
- Desktop startup
desktop - UI framework
framework
Document applications
- Writer
sw - Calc
sc - Draw and Impress
sd
Shared runtime
- Document framework
sfx2 - Widget toolkit
vcl - Drawing helpers
svx - Drawing renderer
drawinglayer - Canvas backends
canvas - UNO interfaces
bridges/source/jni_uno
Clients and extensions
- Android editor UI
android/app/src/java/org/libreoffice/LibreOfficeMainActivity.java - LibreOfficeKit shell
android/app/src/java/org/libreoffice/LOKitShell.java - Office worker
android/app/src/java/org/libreoffice/LOKitThread.java - Tile provider
android/app/src/java/org/libreoffice/LOKitTileProvider.java - Extension manager
desktop/source/deployment/manager/dp_manager.h
Other components
- Office user
- Android user
Connections 18
- Office user → Desktop startup: starts or opens
- Desktop startup → UI framework: initializes UI
- UI framework → Document framework: dispatches document actions
- Document framework → Writer: loads and manages
- Document framework → Calc: loads and manages
- Document framework → Draw and Impress: loads and manages
- UI framework → Widget toolkit: builds UI with
- Writer → Drawing helpers: uses drawing helpers
- Calc → Drawing helpers: uses drawing helpers
- Draw and Impress → Drawing helpers: uses drawing helpers
- Drawing helpers → Drawing renderer: prepares drawable objects
- Drawing renderer → Canvas backends: renders through
- Android user → Android editor UI: opens and edits
- Android editor UI → LibreOfficeKit shell: sends editor events
- LibreOfficeKit shell → Office worker: dispatches office work
- Office worker → Tile provider: requests document tiles
- Desktop startup → Extension manager: provides extension services
- UI framework → UNO interfaces: uses UNO interfaces