This is a brief overview of the software architecture.

Application

The application object is unique, and usually named app in the source code. It can also be retrieved with Gio.Application.get_default().

It performs the initialization, reads the global settings, loads the extensions, and serves as entry point for opening files in workbenches.

Workbenches

Workbenches are basically a window with standard elements (sidebar, bottom-bar, and notebooks), and usually named wbench or wb in the code.

A workbench can optionally load a folder as project, and display its files tree in the sidebar.

Workbenches hold one or more notebooks.

Notebooks

Notebooks (or tabs groups) are the containers holding the documents. There is usually one per workbench, but more can be added by activating the split views. They are usually named notebook or nb in the code.

Documents

The software currently provides 2 types of documents: a source editor, and a simple image viewer. More can be added with extensions, as subclasses of EdBaseDocument.

Documents are usually loaded/saved from a file, but can also be standalone, when holding transient data.