summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorParis Oplopoios <paris.oplopoios@collabora.com>2023-03-02 02:24:59 +0200
committerMiklos Vajna <vmiklos@collabora.com>2023-03-10 08:48:23 +0000
commitc1d6af3e9a8937cef192e2764ad4afb572743d86 (patch)
tree8ced8b9004a737254c178d243822bc8bfd309b16 /include
parentf5b7967b01e68a16ff2f9bc94afec7d405d03dbd (diff)
sw lok: notify clients about view option changes
Send a string of the view options to the kit when the view changes Change-Id: I89f65ff1d22a83a54dde35e39eb487edda0b58e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148078 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Diffstat (limited to 'include')
-rw-r--r--include/LibreOfficeKit/LibreOfficeKitEnums.h12
-rw-r--r--include/sfx2/lokhelper.hxx3
-rw-r--r--include/vcl/ITiledRenderable.hxx6
3 files changed, 21 insertions, 0 deletions
diff --git a/include/LibreOfficeKit/LibreOfficeKitEnums.h b/include/LibreOfficeKit/LibreOfficeKitEnums.h
index 38b3e5e62a40..6e02c92596f1 100644
--- a/include/LibreOfficeKit/LibreOfficeKitEnums.h
+++ b/include/LibreOfficeKit/LibreOfficeKitEnums.h
@@ -907,6 +907,16 @@ typedef enum
* "file:///tmp/hello-world.pdf"
*/
LOK_CALLBACK_EXPORT_FILE = 59,
+
+ /**
+ * Some attribute of this view has changed, that will cause it
+ * to completely re-render, eg. non-printing characters or
+ * or dark mode was toggled, and then distinct from other views.
+ *
+ * Payload is an opaque string that matches this set of states.
+ * this will be emitted after creating a new view.
+ */
+ LOK_CALLBACK_VIEW_RENDER_STATE = 60
}
LibreOfficeKitCallbackType;
@@ -1055,6 +1065,8 @@ static inline const char* lokCallbackTypeToString(int nType)
return "LOK_CALLBACK_MEDIA_SHAPE";
case LOK_CALLBACK_EXPORT_FILE:
return "LOK_CALLBACK_EXPORT_FILE";
+ case LOK_CALLBACK_VIEW_RENDER_STATE:
+ return "LOK_CALLBACK_VIEW_RENDER_STATE";
}
assert(!"Unknown LibreOfficeKitCallbackType type.");
diff --git a/include/sfx2/lokhelper.hxx b/include/sfx2/lokhelper.hxx
index f7de18112c04..b572ddf076b5 100644
--- a/include/sfx2/lokhelper.hxx
+++ b/include/sfx2/lokhelper.hxx
@@ -140,6 +140,9 @@ public:
/// Notify about the editing context change.
static void notifyContextChange(const css::ui::ContextChangeEventObject& rEvent);
+ /// Emits an LOK_CALLBACK_VIEW_RENDER_STATE
+ static void notifyViewRenderState(SfxViewShell const* pViewShell, vcl::ITiledRenderable* pDoc);
+
// Notify about the given type needing an update.
static void notifyUpdate(SfxViewShell const* pViewShell, int nType);
// Notify about the given type needing a per-viewid update.
diff --git a/include/vcl/ITiledRenderable.hxx b/include/vcl/ITiledRenderable.hxx
index d110e33f7e19..9fa61258fc7a 100644
--- a/include/vcl/ITiledRenderable.hxx
+++ b/include/vcl/ITiledRenderable.hxx
@@ -376,6 +376,12 @@ public:
virtual void getCommandValues(tools::JsonWriter& /*rJsonWriter*/, std::string_view /*rCommand*/)
{
}
+
+ /**
+ * Returns an opaque string reflecting the render state of a component
+ * eg. 'PD' - P for non-printing-characters, D for dark-mode.
+ */
+ virtual OString getViewRenderState() { return rtl::OString(); }
};
} // namespace vcl