Files
odfstudio/sfx2
Michael Weghorn e8030cf3a6 a11y, sfx2 tests: Don't rely on UnoControl implementing XAccessible
The UndoManager Java UNO test is currently making use of the
XAccessibleAction interface in order to press a button programatically.

In order to retrieve the accessible, it was querying the
UnoControl (via its UNO interfaces) for the XAccessible
interface, then getting the associated XAccessibleContext.

This relies on the implementation detail that UnoControl
implements the XAccessible interface, which will no longer
be the case after upcoming commit

    Change-Id: I8cc3902a8de725eda3d810920f1da2d390c06f73
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Thu Sep 3 15:55:32 2026 +0200

        a11y: Get UnoControl accessible without implementing XAccessible

Therefore, stop relying on this implementation detail.

Ideally, accessibility implementation details shouldn't be used
at all. But for now, in a first step and in order to not have to rework
more logic now, switch to retrieving the XAccessible for/from the window
peer instead, using the mechanism introduced in

    commit d1a25112bb
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Wed Jun 18 17:49:48 2025 +0200

        java a11y tests: Don't rely on XWindow being XAccessible

Change-Id: I4817bd7efa8a6ed57a514b3e4fecf3d6545fbc13
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210487
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-09-05 10:43:34 +02:00
..
…
…
…
…

Legacy Framework

SFX is the "old" framework, used for historical reasons.

An attempt of documentation of this module is located in [git:sfx2/doc].

It contains base classes for document model, view and controller, used by "old" applications like sw, sc, sd (while "new" applications are based on the "new" UNO based framework in "framework").

The SFX framework is based on dispatching slots identified by integers (SlotIDs) to SfxShells, and there is a dedicated IDL compiler (svidl) involved that generates C++ slot headers from SDI files in modules' sdi/ subdirectory.

Documentation about SFX dispatch, SDI etc.: https://wiki.openoffice.org/wiki/Framework/Article/Implementation_of_the_Dispatch_API_In_SFX2

Document load/save code is maintained in [git:sfx2/source/doc/docfile.cxx] SfxMedium class, which handles all the twisty load and save corner cases.

[git:sfx2/source/appl/sfxhelp.cxx] Start procedure for the online help viewer top level window; handling of help URL creation and dispatch.

There are also some UNO services here that could really be implemented anywhere, e.g. the DocumentProperties or DocumentMetadataAccess.

Notable files: sfx2/source/dialog/backingwindow.cxx Startcenter buttons and the corresponding event handler.