Analyse and explore libreoffice

Libreoffice Architecture - An introduction

Presentation

LibreOffice is an open source Office Suite.

The LibreOffice suite

The LibreOffice suite contains the following applications:

A Short history

Libreoffice subsystems overview

Applications

Libreoffice main applications are Libreoffice writer, Libreoffice calc, Libreoffice draw, Libreoffice impress, Libreoffice base... : see concepts / applications for more.

These applications are in their own folder at the top of the source code directory.

GUI, Graphics and third party graphic libraries

Applications user interface use common GUI components:

Applications and GUI components rely on graphic components

These graphics components rely on third party software like: harfbuzz, libeot, libpng, libwebp, skia...

Component object model

Universal Network Objects (UNO) is the component technology for LibreOffice.

It uses:

The Universal Content Broker (ucb) provides an UNO interface to access different data sources and functions.

Scripting, libreoffice API

Libreoffice implements

Document formats, Filters

Libreoffice implements many document formats or filters to load or save documents in various formats: xml office filter, microsoft office filter, writer perfect, etc.

Lower layers

Lower layers include:

Libreoffice Writer overview

swriter component dependencies

To view swriter dependencies:

SWriter is the top executable application. It depends on sw (application logic), swui (user interface) and winlauncher (windows launcher).

It relies on the subsystems described above

swriter source code directory

Go to the Directory explorer to view the content of the swriter dedicated code.

/sw            - Libreoffice writer
  /inc         - includes
  /qa          - unit tests, test data
  /sdi         - description of slots / actions
  /source      - source code for module
    /core      - core business logic
    /filter    - filters to load / save documents in a specific format
    /ui        - user interface
    /uibase    - base code attached to the user interface
  /uiconfig    - XML User Interface descriptions
  /util        - Components description

Generated by PFA software prototype