74376c7628
since 02c4386a09
(in 2023)
move presenter console from sdext/ to sd/
Change-Id: Ia88cdf437aa5546b251fa0eb95cde8a6b6c64391
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168347
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
56 lines
2.2 KiB
Markdown
56 lines
2.2 KiB
Markdown
# LibreOffice Impress / Draw Application
|
|
|
|
The core directory for the impress/draw applications.
|
|
|
|
Think of impress as a hack on top of draw.
|
|
|
|
`sd` module contains impress/draw specific code, non-shared UI and part
|
|
of `ppt` and `pptx` filter, few other filters too.
|
|
|
|
the slideshow UI lives here as well, the slideshow engine is in
|
|
`slideshow` module though (including the 3D transitions engine
|
|
`slideshow/source/engine/opengl`).
|
|
|
|
the most used filters are ODF's `odp`, binary ppt and OOXML's
|
|
`pptx`. their locations are listed below:
|
|
|
|
* `odp` import and export filters are in `xmloff` module (mostly `xmloff/source/draw`)
|
|
|
|
* `ppt` import is in `sd/source/filter/ppt` (big shared chunks are also in `svx`)
|
|
* `ppt` export is in `sd/source/filter/eppt` (big shared chunks are also in `svx`)
|
|
|
|
* `pptx` import is in `oox/source/ppt` (and uses a lot of
|
|
`oox/source/drawingml` and `oox/source/*`)
|
|
* `pptx` export is in `sd/source/filter/eppt` (mostly in `pptx-*` source
|
|
files) and shared part is in `oox/source/export`
|
|
|
|
## PPTX Export / Import Filters
|
|
|
|
PPTX export filter is split into 2 parts. Impress related part is in
|
|
`sd/source/filter/eppt/pptx-*` and the other part is in
|
|
`oox/source/export/` because it contains mostly code related to
|
|
`DrawingML`, which is shared with writer and calc ooxml export.
|
|
|
|
The export filter was written in 2009 IIRC and was not much extended
|
|
feature-wise lately.
|
|
|
|
## Presenter Console
|
|
The main screen uses a hardware-accelerated
|
|
canvas (e.g. cairo canvas), while the entire secondary screen
|
|
uses a VCL-canvas that is created in
|
|
`sd::framework::FullScreenPane::CreateCanvas()`.
|
|
|
|
The secondary screen contains 3 `Pane`s which each have
|
|
2 `XWindows` for the border area & the actual content,
|
|
and each content Pane is backed by a `sd::presenter::PresenterCanvas`
|
|
that wraps the `FullScreenPane`'s canvas and does clipping.
|
|
|
|
## Future Works
|
|
Add custom shapes export (see below). enhance text
|
|
output, we don't write text style for indentation levels now, need to
|
|
export `a:lvl1pPr`, `a:lvl2pPr`, ... elements.
|
|
|
|
`PPTX` import was written by Sun/Oracle and then extended in LibreOffice
|
|
a lot during bug fixing. It is located in `oox/source/ppt` and
|
|
`oox/source/drawingml`. The areas with most bugs (at least until today)
|
|
were shape placeholders and text style inheritance.
|