office-gobmx/sfx2
Marco Cecchetti 7adfecb0f5 lok: form controls: rendering and mouse event forwarding
What we got
- Most controls rendered on Writer and Impress (on Calc already
implemented by Tomaž Vajngerl)
- Text labels rendered correctly
- Mouse events forwarded to controls
- Control state changed on click for Writer and Calc
- Control invalidation for all apps
- Fixed broken LOK_CALLBACK_MOUSE_POINTER msg
- Correct pointer style when mouse is hovering over a control

Need to be improved
- in impress click method for a control is not executed even if the
mouse event is forwarded correctly
- avoid not needed control invalidations (as the one occurring on
document autosaving)

Change-Id: I4d5012af7f90a2c726b6b6b5b068e2be1ed5568a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146569
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147320
Tested-by: Jenkins
Reviewed-by: Marco Cecchetti <marco.cecchetti@collabora.com>
2023-03-07 19:30:11 +00:00
..
classification
doc
inc no need to allocate TargetsTable separately 2023-03-02 08:56:31 +00:00
qa Fix typo 2022-12-22 15:54:50 +00:00
sdi tdf#153802: make it possible to change the UI with read-only docs 2023-02-26 08:49:57 +00:00
source lok: form controls: rendering and mouse event forwarding 2023-03-07 19:30:11 +00:00
uiconfig/ui tdf#150045 A few more supplemental labels 2023-02-14 12:18:21 +00:00
util tdf#151197: Remove EmojiControl 2022-09-29 14:39:17 +02:00
AllLangMoTarget_sfx2.mk migrate to boost::gettext 2017-07-21 08:20:50 +01:00
CppunitTest_sfx2_classification.mk UnoApiTest: factor out common code 2022-11-09 19:08:32 +01:00
CppunitTest_sfx2_controlleritem.mk
CppunitTest_sfx2_dialogs_test.mk
CppunitTest_sfx2_doc.mk move password handling from SwModelTestBase to UnoApiTest 2022-11-11 20:09:41 +01:00
CppunitTest_sfx2_metadatable.mk
CppunitTest_sfx2_misc.mk UnoApiTest: factor out common code 2022-11-09 19:08:32 +01:00
CppunitTest_sfx2_view.mk move password handling from SwModelTestBase to UnoApiTest 2022-11-11 20:09:41 +01:00
CustomTarget_classification.mk
IwyuFilter_sfx2.yaml AsyncFunc header is dead 2023-01-22 13:25:30 +00:00
JunitTest_sfx2_complex.mk
JunitTest_sfx2_unoapi.mk
Library_sfx.mk tdf#152921 add uitest 2023-02-21 20:20:03 +00:00
Makefile switch to include-based build rather than sourced-based build 2012-02-05 19:34:05 -06:00
Module_sfx2.mk tdf#151197: Remove EmojiControl 2022-09-29 14:39:17 +02:00
Package_classification.mk
PythonTest_sfx2_python.mk
README.md
UIConfig_sfx.mk tdf#151197: Remove EmojiControl 2022-09-29 14:39:17 +02:00
UITest_sfx2_doc.mk

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.