Presentation
LibreOffice est une suite bureautique open source.
La suite bureautique LibreOffice
La suite LibreOffice comprend les applications suivantes :
- Traitement de texte : LibreOffice Writer (composant "SW", à l'origine StarWriter)
- Tableur : LibreOffice Calc (composant "SC", à l'origine StarCalc)
- Logiciel de présentation : LibreOffice Impress
- Éditeur de graphiques vectoriels et outil de création de diagrammes : LibreOffice Draw (composant "SD", à l'origine StarDraw)
- Éditeur de formules : LibreOffice Math
- Gestionnaire de bases de données : LibreOffice Base
Un bref historique
- 1985: StarWriter 1.0 (SW) pour DOS
- 1986: StarOffice (par StarDivision)
- 1994: StarOffice 2.0 pour Windows 3.1, with StarWriter (SW), StarCalc (SC), StarDraw (SD) and StarBase (SB)
- 1999: Sun acquiert StarOffice
- 2002: OpenOffice 1.0, en Open source
- 2005: OpenOffice 2.0. OASIS OpenDocument standard. The Open Document Format (ODF) is an XML-based file format for spreadsheets, charts, presentations and word processing documents.
- 2010: Oracle acquiert Sun -> Oracle Open Office 3.3
- 2010: La 'Document Foundation' est créée. LibreOffice bifurque d'OpenOffice.
- 2011: Apache OpenOffice (Oracle fait don d'OpenOffice à la Fondation Apache Software).
Les sous-systèmes de Libreoffice
Applications
Les principales applications de Libreoffice sont Libreoffice writer, Libreoffice calc,
Libreoffice draw, Libreoffice impress, Libreoffice base... : voir concepts / applications pour en savoir plus.
Ces applications se trouvent dans leur propre dossier au sommet du répertoire du code source.
Interface utilisateur, graphiques et bibliothèques graphiques tierces
L'interface utilisateur des applications utilise des composants communs :
- l'interface utilisateur commune (cui: common user interface) : contient des boîtes de dialogue utilisées par plus d'une application.
- le framework UNO : Framework graphique plus récent, responsable de la construction des barres d'outils, des menus, des barres d'état et du chrome autour du document.
- le framework svx : Framework GUI plus ancien, distribue les actions aux coques du document ; gère le chargement et la sauvegarde du document, invoque les filtres d'importation et d'exportation.
- svtools : dialogues communs, dialogues de fichier et d'impression, assistants, filtres vcl, code d'aide.
- la bibliothèque de composants visuels (vcl: visual component library) : fenêtrage, boutons, bibliothèque de la boîte à outils de contrôle
- Voir concepts / Interface utilisateur pour plus d'informations.
Les applications et les composants de l'interface graphique reposent sur des composants communs:
- canvas : Rendu Canvas - Couche de sortie graphique, pour le rendu du contenu des applications. Elle expose les interfaces UNO rendering::XCanvas. Le framework canvas est le successeur de l'interface utilisateur graphique du système et du backend graphique VCL.
- Basegfx : algorithmes et types de données pour les graphiques utilisés dans le canevas.
- drawinglayer : API de dessin. Les objets sont dessinés en utilisant une liste d'affichage / primitives.
- Voir concepts / graphiques pour en savoir plus.
Ces composants graphiques reposent sur des logiciels tiers tels que : harfbuzz, libeot, libpng, libwebp, skia...
Modèle objet des composants
Universal Network Objects (UNO) est la technologie des composants de LibreOffice.
Elle utilise :
- le Runtime C++ Binary UNO (cppu) : Implémentation du noyau UNO C++ et définitions des types
- le cppu helper : Boostraps UNO (implémente createInstance)
- le [registre] UNO(../concepts/registry.html) : Le registre conserve les informations de type UNO du système dans une base de données (modules, services, interfaces...).
Le Universal Content Broker (ucb) fournit une interface UNO pour accéder à différentes sources de données.
Scripting, API libreoffice
Libreoffice implémente
Formats de documents, Filtres
Libreoffice implémente de nombreux formats ou filtres de documents pour charger ou enregistrer des documents dans différents formats :
xml office, microsoft office, writer perfect, etc.
Les couches inférieures
Les couches inférieures comprennent :
Aperçu de Libreoffice Writer
Dépendances des composants de swriter
Pour visualiser les dépendances de swriter :
SWriter est le composant exécutable, qui dépend de sw (logique applicative), swui (interface utilisateur) et winlauncher (lanceur).
Il s'appuie sur les sous-systèmes décrits ci-dessus:
- Interface utilisateur et composants graphiques
- Le moteur d'exécution UNO, l'assistant, le registre.
- L'interpréteur starbasic, vbahelper, les API UNO
- Les filtres / formats de documents
- Les couches inférieures comme SAL, etc.
swriter : le répertoire de code source
Aller dans l'explorateur de répertoires pour voir le contenu du code spécifique à swriter.
/sw - Libreoffice writer
/inc - inclusions
/qa - tests unitaires, données de test
/sdi - description des slots / actions
/source - code source du module
/core - logique métier de base
/filter - filtres permettant de charger ou d'enregistrer des documents dans un format spécifique.
/ui - interface utilisateur
/uibase - code de base attaché à l'interface utilisateur
/uiconfig - descriptions XML de l'interface utilisateur
/util - description des composants