[Libreoffice-commits] core.git: 2 commits - sc/CppunitTest_sc_addin_functions_test.mk sc/CppunitTest_sc_anchor_test.mk sc/CppunitTest_sc_array_functions_test.mk sc/CppunitTest_sc_bugfix_test.mk sc/CppunitTest_sc_chart2dataprovider.mk sc/CppunitTest_sc_cond_format_merge.mk sc/CppunitTest_sc_copypaste.mk sc/CppunitTest_sc_database_functions_test.mk sc/CppunitTest_sc_dataprovider.mk sc/CppunitTest_sc_datatransformation.mk sc/CppunitTest_sc_datetime_functions_test.mk sc/CppunitTest_sc_filters_test.mk sc/CppunitTest_sc_financial_functions_test.mk sc/CppunitTest_sc_functions_test_old.mk sc/CppunitTest_sc_html_export_test.mk sc/CppunitTest_sc_information_functions_test.mk sc/CppunitTest_sc_logical_functions_test.mk sc/CppunitTest_sc_mathematical_functions_test.mk sc/CppunitTest_sc_opencl_test.mk sc/CppunitTest_sc_parallelism.mk sc/CppunitTest_sc_pivottable_filters_test.mk sc/CppunitTest_sc_spreadsheet_functions_test.mk sc/CppunitTest_sc_statistical_functions_test.mk sc/CppunitTest_sc_subsequent_export_t est.mk sc/CppunitTest_sc_subsequent_filters_test.mk sc/CppunitTest_sc_text_functions_test.mk sc/CppunitTest_sc_ucalc.mk sc/Library_scqahelper.mk svtools/CppunitTest_svtools_graphic.mk sw/CppunitTest_sw_docbookexport.mk sw/CppunitTest_sw_filters_test.mk sw/CppunitTest_sw_fodfexport.mk sw/CppunitTest_sw_globalfilter.mk sw/CppunitTest_sw_htmlexport.mk sw/CppunitTest_sw_htmlimport.mk sw/CppunitTest_sw_layoutwriter.mk sw/CppunitTest_sw_mailmerge.mk sw/CppunitTest_sw_odfexport.mk sw/CppunitTest_sw_odfimport.mk sw/CppunitTest_sw_ooxmlencryption.mk sw/CppunitTest_sw_ooxmlexport8.mk sw/CppunitTest_sw_ooxmlfieldexport.mk sw/CppunitTest_sw_ooxmlimport2.mk sw/CppunitTest_sw_ooxmlimport.mk sw/CppunitTest_sw_ooxmllinks.mk sw/CppunitTest_sw_ooxmlw14export.mk sw/CppunitTest_sw_rtfexport2.mk sw/CppunitTest_sw_rtfexport3.mk sw/CppunitTest_sw_rtfexport.mk sw/CppunitTest_sw_rtfimport.mk sw/CppunitTest_sw_tiledrendering.mk sw/CppunitTest_sw_txtexport.mk sw/CppunitTest_sw_uiwriter.mk sw/CppunitTest_sw_uw riter.mk sw/CppunitTest_sw_ww8export2.mk sw/CppunitTest_sw_ww8export.mk sw/CppunitTest_sw_ww8import.mk sw/inc sw/Library_msword.mk sw/Library_sw.mk sw/Library_swui.mk sw/ooxmlexport_setup.mk sw/source vcl/unx

Caolán McNamara caolanm at redhat.com
Thu May 31 08:13:26 UTC 2018


 sc/CppunitTest_sc_addin_functions_test.mk        |    1 
 sc/CppunitTest_sc_anchor_test.mk                 |    6 +++
 sc/CppunitTest_sc_array_functions_test.mk        |    1 
 sc/CppunitTest_sc_bugfix_test.mk                 |    6 +++
 sc/CppunitTest_sc_chart2dataprovider.mk          |    6 +++
 sc/CppunitTest_sc_cond_format_merge.mk           |    6 +++
 sc/CppunitTest_sc_copypaste.mk                   |    6 +++
 sc/CppunitTest_sc_database_functions_test.mk     |    1 
 sc/CppunitTest_sc_dataprovider.mk                |    6 +++
 sc/CppunitTest_sc_datatransformation.mk          |    6 +++
 sc/CppunitTest_sc_datetime_functions_test.mk     |    1 
 sc/CppunitTest_sc_filters_test.mk                |    6 +++
 sc/CppunitTest_sc_financial_functions_test.mk    |    1 
 sc/CppunitTest_sc_functions_test_old.mk          |    1 
 sc/CppunitTest_sc_html_export_test.mk            |    6 +++
 sc/CppunitTest_sc_information_functions_test.mk  |    1 
 sc/CppunitTest_sc_logical_functions_test.mk      |    1 
 sc/CppunitTest_sc_mathematical_functions_test.mk |    1 
 sc/CppunitTest_sc_opencl_test.mk                 |    6 +++
 sc/CppunitTest_sc_parallelism.mk                 |    6 +++
 sc/CppunitTest_sc_pivottable_filters_test.mk     |    6 +++
 sc/CppunitTest_sc_spreadsheet_functions_test.mk  |    1 
 sc/CppunitTest_sc_statistical_functions_test.mk  |    1 
 sc/CppunitTest_sc_subsequent_export_test.mk      |    6 +++
 sc/CppunitTest_sc_subsequent_filters_test.mk     |    6 +++
 sc/CppunitTest_sc_text_functions_test.mk         |    1 
 sc/CppunitTest_sc_ucalc.mk                       |    6 +++
 sc/Library_scqahelper.mk                         |    6 +++
 svtools/CppunitTest_svtools_graphic.mk           |    6 +++
 sw/CppunitTest_sw_docbookexport.mk               |    6 +++
 sw/CppunitTest_sw_filters_test.mk                |    6 +++
 sw/CppunitTest_sw_fodfexport.mk                  |    6 +++
 sw/CppunitTest_sw_globalfilter.mk                |    6 +++
 sw/CppunitTest_sw_htmlexport.mk                  |    6 +++
 sw/CppunitTest_sw_htmlimport.mk                  |    6 +++
 sw/CppunitTest_sw_layoutwriter.mk                |    6 +++
 sw/CppunitTest_sw_mailmerge.mk                   |    6 +++
 sw/CppunitTest_sw_odfexport.mk                   |    6 +++
 sw/CppunitTest_sw_odfimport.mk                   |    6 +++
 sw/CppunitTest_sw_ooxmlencryption.mk             |    7 +++-
 sw/CppunitTest_sw_ooxmlexport8.mk                |    6 +++
 sw/CppunitTest_sw_ooxmlfieldexport.mk            |    6 +++
 sw/CppunitTest_sw_ooxmlimport.mk                 |    6 +++
 sw/CppunitTest_sw_ooxmlimport2.mk                |    6 +++
 sw/CppunitTest_sw_ooxmllinks.mk                  |    6 +++
 sw/CppunitTest_sw_ooxmlw14export.mk              |    6 +++
 sw/CppunitTest_sw_rtfexport.mk                   |    6 +++
 sw/CppunitTest_sw_rtfexport2.mk                  |    6 +++
 sw/CppunitTest_sw_rtfexport3.mk                  |    6 +++
 sw/CppunitTest_sw_rtfimport.mk                   |    6 +++
 sw/CppunitTest_sw_tiledrendering.mk              |    6 +++
 sw/CppunitTest_sw_txtexport.mk                   |    6 +++
 sw/CppunitTest_sw_uiwriter.mk                    |    6 +++
 sw/CppunitTest_sw_uwriter.mk                     |    6 +++
 sw/CppunitTest_sw_ww8export.mk                   |    6 +++
 sw/CppunitTest_sw_ww8export2.mk                  |    6 +++
 sw/CppunitTest_sw_ww8import.mk                   |    6 +++
 sw/Library_msword.mk                             |    6 +++
 sw/Library_sw.mk                                 |    6 +++
 sw/Library_swui.mk                               |    6 +++
 sw/inc/swmodule.hxx                              |    6 +++
 sw/ooxmlexport_setup.mk                          |    6 +++
 sw/source/ui/vba/vbaapplication.cxx              |   35 +++++++++++++----------
 sw/source/ui/vba/vbaapplication.hxx              |   15 +++++++++
 sw/source/uibase/app/docsh2.cxx                  |    3 +
 sw/source/uibase/app/swmodule.cxx                |   12 +++++++
 vcl/unx/gtk3/gtk3gtkinst.cxx                     |   17 ++++++++++-
 67 files changed, 330 insertions(+), 65 deletions(-)

New commits:
commit c1dc72e9e853a80ce0876df6958c18bb881deb85
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed May 30 21:28:22 2018 +0100

    RTL support for custom widgets
    
    Change-Id: I34038f047c002a1ec1276f8c523db0e1c4d29065
    Reviewed-on: https://gerrit.libreoffice.org/55100
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 54444d801c5c..d13cb73df419 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -1689,6 +1689,8 @@ public:
         {
             GdkRectangle aRect{static_cast<int>(rRect.Left()), static_cast<int>(rRect.Top()),
                                static_cast<int>(rRect.GetWidth()), static_cast<int>(rRect.GetHeight())};
+            if (AllSettings::GetLayoutRTL())
+                aRect.x = gtk_widget_get_allocated_width(pWidget) - aRect.width - 1 - aRect.x;
             gtk_menu_popup_at_rect(m_pMenu, gtk_widget_get_window(pWidget), &aRect, GDK_GRAVITY_NORTH_WEST, GDK_GRAVITY_NORTH_WEST, nullptr);
         }
         else
@@ -3741,7 +3743,7 @@ private:
     {
         m_aStyleUpdatedHdl.Call(*this);
     }
-    static gboolean signalQueryTooltip(GtkWidget*, gint x, gint y,
+    static gboolean signalQueryTooltip(GtkWidget* pGtkWidget, gint x, gint y,
                                          gboolean /*keyboard_mode*/, GtkTooltip *tooltip,
                                          gpointer widget)
     {
@@ -3756,6 +3758,8 @@ private:
         aGdkHelpArea.y = aHelpArea.Top();
         aGdkHelpArea.width = aHelpArea.GetWidth();
         aGdkHelpArea.height = aHelpArea.GetHeight();
+        if (AllSettings::GetLayoutRTL())
+            aGdkHelpArea.x = gtk_widget_get_allocated_width(pGtkWidget) - aGdkHelpArea.width - 1 - aGdkHelpArea.x;
         gtk_tooltip_set_tip_area(tooltip, &aGdkHelpArea);
         return true;
     }
@@ -3816,6 +3820,8 @@ private:
         }
 
         Point aPos(pEvent->x, pEvent->y);
+        if (AllSettings::GetLayoutRTL())
+            aPos.setX(gtk_widget_get_allocated_width(m_pWidget) - 1 - aPos.X());
         sal_uInt32 nModCode = GtkSalFrame::GetMouseModCode(pEvent->state);
         sal_uInt16 nCode = m_nLastMouseButton | (nModCode & (KEY_SHIFT | KEY_MOD1 | KEY_MOD2));
         MouseEvent aMEvt(aPos, nClicks, ImplGetMouseButtonMode(m_nLastMouseButton, nModCode), nCode, nCode);
@@ -3836,6 +3842,8 @@ private:
     bool signal_motion(GdkEventMotion* pEvent)
     {
         Point aPos(pEvent->x, pEvent->y);
+        if (AllSettings::GetLayoutRTL())
+            aPos.setX(gtk_widget_get_allocated_width(m_pWidget) - 1 - aPos.X());
         sal_uInt32 nModCode = GtkSalFrame::GetMouseModCode(pEvent->state);
         sal_uInt16 nCode = m_nLastMouseButton | (nModCode & (KEY_SHIFT | KEY_MOD1 | KEY_MOD2));
         MouseEvent aMEvt(aPos, 0, ImplGetMouseMoveMode(nModCode), nCode, nCode);
@@ -3890,6 +3898,7 @@ public:
     {
         gtk_widget_set_has_tooltip(m_pWidget, true);
         g_object_set_data(G_OBJECT(m_pDrawingArea), "g-lo-GtkInstanceDrawingArea", this);
+        m_xDevice->EnableRTL(get_direction());
     }
 
     AtkObject* GetAtkObject(AtkObject* pDefaultAccessible)
@@ -3903,6 +3912,12 @@ public:
         return m_pAccessible;
     }
 
+    virtual void set_direction(bool bRTL) override
+    {
+        GtkInstanceWidget::set_direction(bRTL);
+        m_xDevice->EnableRTL(bRTL);
+    }
+
     virtual void queue_draw() override
     {
         gtk_widget_queue_draw(GTK_WIDGET(m_pDrawingArea));
commit 0ee6b72bf50337157e603d42e33b4a1e6a2ec715
Author: Tor Lillqvist <tml at collabora.com>
Date:   Thu Mar 22 12:46:56 2018 +0200

    SwModule is a convenient (?) place for passing events to Automation clients
    
    Generate Application.DocumentChange and Application.Quit events.
    
    SfxHintId::DocChanged seems to correspond nicely enough to
    Application.DocumentChange. It is generated a bit eagerly, but as its
    documentation is fairly vague and no specific detailed information is
    passed in parameters anyway, it probably doesn't hurt if a client gets
    it a bit more often with LO than with some other product.
    
    Can now remove the FIXME-marked Quit event things in SwVbaApplication.
    
    Now need oovbaapi in many makefiles for them to compile.
    
    Change-Id: I4d0c5b93b584f198bcc854002eec7aaba7909ecc
    Reviewed-on: https://gerrit.libreoffice.org/55106
    Reviewed-by: Tor Lillqvist <tml at collabora.com>
    Tested-by: Tor Lillqvist <tml at collabora.com>

diff --git a/sc/CppunitTest_sc_addin_functions_test.mk b/sc/CppunitTest_sc_addin_functions_test.mk
index 2b17d33b793d..66489b67d626 100644
--- a/sc/CppunitTest_sc_addin_functions_test.mk
+++ b/sc/CppunitTest_sc_addin_functions_test.mk
@@ -60,6 +60,7 @@ $(eval $(call gb_CppunitTest_set_include,sc_addin_functions_test,\
 $(eval $(call gb_CppunitTest_use_api,sc_addin_functions_test,\
     offapi \
     udkapi \
+    oovbaapi \
 ))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_addin_functions_test))
diff --git a/sc/CppunitTest_sc_anchor_test.mk b/sc/CppunitTest_sc_anchor_test.mk
index d7942c19d8f6..c942128a0bf9 100644
--- a/sc/CppunitTest_sc_anchor_test.mk
+++ b/sc/CppunitTest_sc_anchor_test.mk
@@ -59,7 +59,11 @@ $(eval $(call gb_CppunitTest_set_include,sc_anchor_test,\
 	$$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sc_anchor_test))
+$(eval $(call gb_CppunitTest_use_api,sc_anchor_test,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_anchor_test))
 $(eval $(call gb_CppunitTest_use_vcl,sc_anchor_test))
diff --git a/sc/CppunitTest_sc_array_functions_test.mk b/sc/CppunitTest_sc_array_functions_test.mk
index a00e61325459..8d1f26442c82 100644
--- a/sc/CppunitTest_sc_array_functions_test.mk
+++ b/sc/CppunitTest_sc_array_functions_test.mk
@@ -60,6 +60,7 @@ $(eval $(call gb_CppunitTest_set_include,sc_array_functions_test,\
 $(eval $(call gb_CppunitTest_use_api,sc_array_functions_test,\
     offapi \
     udkapi \
+    oovbaapi \
 ))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_array_functions_test))
diff --git a/sc/CppunitTest_sc_bugfix_test.mk b/sc/CppunitTest_sc_bugfix_test.mk
index 69c4278994c4..d671e4b3e90b 100644
--- a/sc/CppunitTest_sc_bugfix_test.mk
+++ b/sc/CppunitTest_sc_bugfix_test.mk
@@ -61,7 +61,11 @@ $(eval $(call gb_CppunitTest_set_include,sc_bugfix_test,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sc_bugfix_test))
+$(eval $(call gb_CppunitTest_use_api,sc_bugfix_test,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_bugfix_test))
 $(eval $(call gb_CppunitTest_use_vcl,sc_bugfix_test))
diff --git a/sc/CppunitTest_sc_chart2dataprovider.mk b/sc/CppunitTest_sc_chart2dataprovider.mk
index 3747da585444..8a9b7fae8282 100644
--- a/sc/CppunitTest_sc_chart2dataprovider.mk
+++ b/sc/CppunitTest_sc_chart2dataprovider.mk
@@ -62,7 +62,11 @@ $(eval $(call gb_CppunitTest_set_include,sc_chart2dataprovider,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sc_chart2dataprovider))
+$(eval $(call gb_CppunitTest_use_api,sc_chart2dataprovider,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_chart2dataprovider))
 $(eval $(call gb_CppunitTest_use_vcl,sc_chart2dataprovider))
diff --git a/sc/CppunitTest_sc_cond_format_merge.mk b/sc/CppunitTest_sc_cond_format_merge.mk
index 429010e6e40f..c86b204d1c31 100644
--- a/sc/CppunitTest_sc_cond_format_merge.mk
+++ b/sc/CppunitTest_sc_cond_format_merge.mk
@@ -59,7 +59,11 @@ $(eval $(call gb_CppunitTest_set_include,sc_cond_format_merge,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sc_cond_format_merge))
+$(eval $(call gb_CppunitTest_use_api,sc_cond_format_merge,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_cond_format_merge))
 $(eval $(call gb_CppunitTest_use_vcl,sc_cond_format_merge))
diff --git a/sc/CppunitTest_sc_copypaste.mk b/sc/CppunitTest_sc_copypaste.mk
index 18728202e69b..e7759957df86 100644
--- a/sc/CppunitTest_sc_copypaste.mk
+++ b/sc/CppunitTest_sc_copypaste.mk
@@ -61,7 +61,11 @@ $(eval $(call gb_CppunitTest_set_include,sc_copypaste,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sc_copypaste))
+$(eval $(call gb_CppunitTest_use_api,sc_copypaste,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_copypaste))
 $(eval $(call gb_CppunitTest_use_vcl,sc_copypaste))
diff --git a/sc/CppunitTest_sc_database_functions_test.mk b/sc/CppunitTest_sc_database_functions_test.mk
index 401984182064..0b6b04ff0c64 100644
--- a/sc/CppunitTest_sc_database_functions_test.mk
+++ b/sc/CppunitTest_sc_database_functions_test.mk
@@ -60,6 +60,7 @@ $(eval $(call gb_CppunitTest_set_include,sc_database_functions_test,\
 $(eval $(call gb_CppunitTest_use_api,sc_database_functions_test,\
     offapi \
     udkapi \
+    oovbaapi \
 ))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_database_functions_test))
diff --git a/sc/CppunitTest_sc_dataprovider.mk b/sc/CppunitTest_sc_dataprovider.mk
index 90ea8cb4a452..71fa6ea30fed 100644
--- a/sc/CppunitTest_sc_dataprovider.mk
+++ b/sc/CppunitTest_sc_dataprovider.mk
@@ -67,7 +67,11 @@ $(eval $(call gb_CppunitTest_use_custom_headers,sc_dataprovider,\
 	officecfg/registry \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sc_dataprovider))
+$(eval $(call gb_CppunitTest_use_api,sc_dataprovider,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_dataprovider))
 $(eval $(call gb_CppunitTest_use_vcl,sc_dataprovider))
diff --git a/sc/CppunitTest_sc_datatransformation.mk b/sc/CppunitTest_sc_datatransformation.mk
index 3624e56d8109..c1e44a2a3870 100644
--- a/sc/CppunitTest_sc_datatransformation.mk
+++ b/sc/CppunitTest_sc_datatransformation.mk
@@ -67,7 +67,11 @@ $(eval $(call gb_CppunitTest_use_custom_headers,sc_datatransformation,\
 	officecfg/registry \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sc_datatransformation))
+$(eval $(call gb_CppunitTest_use_api,sc_datatransformation,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_datatransformation))
 $(eval $(call gb_CppunitTest_use_vcl,sc_datatransformation))
diff --git a/sc/CppunitTest_sc_datetime_functions_test.mk b/sc/CppunitTest_sc_datetime_functions_test.mk
index 7534e4f50936..cccf938015c5 100644
--- a/sc/CppunitTest_sc_datetime_functions_test.mk
+++ b/sc/CppunitTest_sc_datetime_functions_test.mk
@@ -60,6 +60,7 @@ $(eval $(call gb_CppunitTest_set_include,sc_datetime_functions_test,\
 $(eval $(call gb_CppunitTest_use_api,sc_datetime_functions_test,\
     offapi \
     udkapi \
+    oovbaapi \
 ))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_datetime_functions_test))
diff --git a/sc/CppunitTest_sc_filters_test.mk b/sc/CppunitTest_sc_filters_test.mk
index b2d837798f63..0a2b9a757362 100644
--- a/sc/CppunitTest_sc_filters_test.mk
+++ b/sc/CppunitTest_sc_filters_test.mk
@@ -63,7 +63,11 @@ $(eval $(call gb_CppunitTest_set_include,sc_filters_test,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sc_filters_test))
+$(eval $(call gb_CppunitTest_use_api,sc_filters_test,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_filters_test))
 $(eval $(call gb_CppunitTest_use_vcl,sc_filters_test))
diff --git a/sc/CppunitTest_sc_financial_functions_test.mk b/sc/CppunitTest_sc_financial_functions_test.mk
index 23d8054911ff..ee83a271b5d1 100644
--- a/sc/CppunitTest_sc_financial_functions_test.mk
+++ b/sc/CppunitTest_sc_financial_functions_test.mk
@@ -60,6 +60,7 @@ $(eval $(call gb_CppunitTest_set_include,sc_financial_functions_test,\
 $(eval $(call gb_CppunitTest_use_api,sc_financial_functions_test,\
     offapi \
     udkapi \
+    oovbaapi \
 ))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_financial_functions_test))
diff --git a/sc/CppunitTest_sc_functions_test_old.mk b/sc/CppunitTest_sc_functions_test_old.mk
index 5113bf61c55e..3d0dc40d186b 100644
--- a/sc/CppunitTest_sc_functions_test_old.mk
+++ b/sc/CppunitTest_sc_functions_test_old.mk
@@ -60,6 +60,7 @@ $(eval $(call gb_CppunitTest_set_include,sc_functions_test_old,\
 $(eval $(call gb_CppunitTest_use_api,sc_functions_test_old,\
     offapi \
     udkapi \
+    oovbaapi \
 ))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_functions_test_old))
diff --git a/sc/CppunitTest_sc_html_export_test.mk b/sc/CppunitTest_sc_html_export_test.mk
index 711d39d86771..4111f519a078 100644
--- a/sc/CppunitTest_sc_html_export_test.mk
+++ b/sc/CppunitTest_sc_html_export_test.mk
@@ -57,7 +57,11 @@ $(eval $(call gb_CppunitTest_set_include,sc_html_export_test,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sc_html_export_test))
+$(eval $(call gb_CppunitTest_use_api,sc_html_export_test,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_html_export_test))
 $(eval $(call gb_CppunitTest_use_vcl,sc_html_export_test))
diff --git a/sc/CppunitTest_sc_information_functions_test.mk b/sc/CppunitTest_sc_information_functions_test.mk
index b108339d087a..043e9ea99852 100644
--- a/sc/CppunitTest_sc_information_functions_test.mk
+++ b/sc/CppunitTest_sc_information_functions_test.mk
@@ -60,6 +60,7 @@ $(eval $(call gb_CppunitTest_set_include,sc_information_functions_test,\
 $(eval $(call gb_CppunitTest_use_api,sc_information_functions_test,\
     offapi \
     udkapi \
+    oovbaapi \
 ))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_information_functions_test))
diff --git a/sc/CppunitTest_sc_logical_functions_test.mk b/sc/CppunitTest_sc_logical_functions_test.mk
index 642e1e966eed..50094ac9e3d5 100644
--- a/sc/CppunitTest_sc_logical_functions_test.mk
+++ b/sc/CppunitTest_sc_logical_functions_test.mk
@@ -60,6 +60,7 @@ $(eval $(call gb_CppunitTest_set_include,sc_logical_functions_test,\
 $(eval $(call gb_CppunitTest_use_api,sc_logical_functions_test,\
     offapi \
     udkapi \
+    oovbaapi \
 ))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_logical_functions_test))
diff --git a/sc/CppunitTest_sc_mathematical_functions_test.mk b/sc/CppunitTest_sc_mathematical_functions_test.mk
index f3c14bc930fd..613dd84b1a26 100644
--- a/sc/CppunitTest_sc_mathematical_functions_test.mk
+++ b/sc/CppunitTest_sc_mathematical_functions_test.mk
@@ -60,6 +60,7 @@ $(eval $(call gb_CppunitTest_set_include,sc_mathematical_functions_test,\
 $(eval $(call gb_CppunitTest_use_api,sc_mathematical_functions_test,\
     offapi \
     udkapi \
+    oovbaapi \
 ))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_mathematical_functions_test))
diff --git a/sc/CppunitTest_sc_opencl_test.mk b/sc/CppunitTest_sc_opencl_test.mk
index 93925602e0d8..65b63c136ff5 100644
--- a/sc/CppunitTest_sc_opencl_test.mk
+++ b/sc/CppunitTest_sc_opencl_test.mk
@@ -59,7 +59,11 @@ $(eval $(call gb_CppunitTest_set_include,sc_opencl_test,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sc_opencl_test))
+$(eval $(call gb_CppunitTest_use_api,sc_opencl_test,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_opencl_test))
 $(eval $(call gb_CppunitTest_use_vcl,sc_opencl_test))
diff --git a/sc/CppunitTest_sc_parallelism.mk b/sc/CppunitTest_sc_parallelism.mk
index 247bd9adfeb2..6c574799180c 100644
--- a/sc/CppunitTest_sc_parallelism.mk
+++ b/sc/CppunitTest_sc_parallelism.mk
@@ -59,7 +59,11 @@ $(eval $(call gb_CppunitTest_set_include,sc_parallelism,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sc_parallelism))
+$(eval $(call gb_CppunitTest_use_api,sc_parallelism,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_custom_headers,sc_parallelism,\
         officecfg/registry \
diff --git a/sc/CppunitTest_sc_pivottable_filters_test.mk b/sc/CppunitTest_sc_pivottable_filters_test.mk
index 8cfc91cd88b4..108da0ef5420 100644
--- a/sc/CppunitTest_sc_pivottable_filters_test.mk
+++ b/sc/CppunitTest_sc_pivottable_filters_test.mk
@@ -58,7 +58,11 @@ $(eval $(call gb_CppunitTest_set_include,sc_pivottable_filters_test,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sc_pivottable_filters_test))
+$(eval $(call gb_CppunitTest_use_api,sc_pivottable_filters_test,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_pivottable_filters_test))
 $(eval $(call gb_CppunitTest_use_vcl,sc_pivottable_filters_test))
diff --git a/sc/CppunitTest_sc_spreadsheet_functions_test.mk b/sc/CppunitTest_sc_spreadsheet_functions_test.mk
index 16713bcffc07..46da6a00566e 100644
--- a/sc/CppunitTest_sc_spreadsheet_functions_test.mk
+++ b/sc/CppunitTest_sc_spreadsheet_functions_test.mk
@@ -60,6 +60,7 @@ $(eval $(call gb_CppunitTest_set_include,sc_spreadsheet_functions_test,\
 $(eval $(call gb_CppunitTest_use_api,sc_spreadsheet_functions_test,\
     offapi \
     udkapi \
+    oovbaapi \
 ))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_spreadsheet_functions_test))
diff --git a/sc/CppunitTest_sc_statistical_functions_test.mk b/sc/CppunitTest_sc_statistical_functions_test.mk
index 436ac62885de..78fab057d27c 100644
--- a/sc/CppunitTest_sc_statistical_functions_test.mk
+++ b/sc/CppunitTest_sc_statistical_functions_test.mk
@@ -60,6 +60,7 @@ $(eval $(call gb_CppunitTest_set_include,sc_statistical_functions_test,\
 $(eval $(call gb_CppunitTest_use_api,sc_statistical_functions_test,\
     offapi \
     udkapi \
+    oovbaapi \
 ))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_statistical_functions_test))
diff --git a/sc/CppunitTest_sc_subsequent_export_test.mk b/sc/CppunitTest_sc_subsequent_export_test.mk
index aab29559ff4b..9f826307044d 100644
--- a/sc/CppunitTest_sc_subsequent_export_test.mk
+++ b/sc/CppunitTest_sc_subsequent_export_test.mk
@@ -58,7 +58,11 @@ $(eval $(call gb_CppunitTest_set_include,sc_subsequent_export_test,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sc_subsequent_export_test))
+$(eval $(call gb_CppunitTest_use_api,sc_subsequent_export_test,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_subsequent_export_test))
 $(eval $(call gb_CppunitTest_use_vcl,sc_subsequent_export_test))
diff --git a/sc/CppunitTest_sc_subsequent_filters_test.mk b/sc/CppunitTest_sc_subsequent_filters_test.mk
index d8d0600e11c8..2127e1e81f42 100644
--- a/sc/CppunitTest_sc_subsequent_filters_test.mk
+++ b/sc/CppunitTest_sc_subsequent_filters_test.mk
@@ -62,7 +62,11 @@ $(eval $(call gb_CppunitTest_set_include,sc_subsequent_filters_test,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sc_subsequent_filters_test))
+$(eval $(call gb_CppunitTest_use_api,sc_subsequent_filters_test,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_subsequent_filters_test))
 $(eval $(call gb_CppunitTest_use_vcl,sc_subsequent_filters_test))
diff --git a/sc/CppunitTest_sc_text_functions_test.mk b/sc/CppunitTest_sc_text_functions_test.mk
index 58d183edfb73..fe50b4f8acc7 100644
--- a/sc/CppunitTest_sc_text_functions_test.mk
+++ b/sc/CppunitTest_sc_text_functions_test.mk
@@ -60,6 +60,7 @@ $(eval $(call gb_CppunitTest_set_include,sc_text_functions_test,\
 $(eval $(call gb_CppunitTest_use_api,sc_text_functions_test,\
     offapi \
     udkapi \
+    oovbaapi \
 ))
 
 $(eval $(call gb_CppunitTest_use_ure,sc_text_functions_test))
diff --git a/sc/CppunitTest_sc_ucalc.mk b/sc/CppunitTest_sc_ucalc.mk
index 48fb912c4335..0258d9117814 100644
--- a/sc/CppunitTest_sc_ucalc.mk
+++ b/sc/CppunitTest_sc_ucalc.mk
@@ -82,7 +82,11 @@ $(eval $(call gb_CppunitTest_set_include,sc_ucalc,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sc_ucalc))
+$(eval $(call gb_CppunitTest_use_api,sc_ucalc,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_custom_headers,sc_ucalc,\
 	officecfg/registry \
diff --git a/sc/Library_scqahelper.mk b/sc/Library_scqahelper.mk
index 0e209024b398..f91ec28c224a 100644
--- a/sc/Library_scqahelper.mk
+++ b/sc/Library_scqahelper.mk
@@ -32,7 +32,11 @@ $(eval $(call gb_Library_add_defs,scqahelper,\
 	-DSCQAHELPER_DLLIMPLEMENTATION \
 ))
 
-$(eval $(call gb_Library_use_sdk_api,scqahelper))
+$(eval $(call gb_Library_use_api,scqahelper,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_Library_use_libraries,scqahelper,\
 	comphelper \
diff --git a/svtools/CppunitTest_svtools_graphic.mk b/svtools/CppunitTest_svtools_graphic.mk
index f38e1168e5c1..04e562e16691 100644
--- a/svtools/CppunitTest_svtools_graphic.mk
+++ b/svtools/CppunitTest_svtools_graphic.mk
@@ -14,7 +14,11 @@ $(eval $(call gb_CppunitTest_use_externals,svtools_graphic,\
     libxml2 \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,svtools_graphic))
+$(eval $(call gb_CppunitTest_use_api,svtools_graphic,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,svtools_graphic))
 
diff --git a/sw/CppunitTest_sw_docbookexport.mk b/sw/CppunitTest_sw_docbookexport.mk
index bbb3c9e8f8bd..2e34f8b8767b 100644
--- a/sw/CppunitTest_sw_docbookexport.mk
+++ b/sw/CppunitTest_sw_docbookexport.mk
@@ -43,7 +43,11 @@ $(eval $(call gb_CppunitTest_set_include,sw_docbookexport,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_docbookexport))
+$(eval $(call gb_CppunitTest_use_api,sw_docbookexport,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_docbookexport))
 $(eval $(call gb_CppunitTest_use_vcl,sw_docbookexport))
diff --git a/sw/CppunitTest_sw_filters_test.mk b/sw/CppunitTest_sw_filters_test.mk
index cf0f978a26eb..9415a1adca43 100644
--- a/sw/CppunitTest_sw_filters_test.mk
+++ b/sw/CppunitTest_sw_filters_test.mk
@@ -44,7 +44,11 @@ $(eval $(call gb_CppunitTest_set_include,sw_filters_test,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_filters_test))
+$(eval $(call gb_CppunitTest_use_api,sw_filters_test,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_filters_test))
 $(eval $(call gb_CppunitTest_use_vcl,sw_filters_test))
diff --git a/sw/CppunitTest_sw_fodfexport.mk b/sw/CppunitTest_sw_fodfexport.mk
index 4703b85435f7..d49c8c5795ca 100644
--- a/sw/CppunitTest_sw_fodfexport.mk
+++ b/sw/CppunitTest_sw_fodfexport.mk
@@ -41,7 +41,11 @@ $(eval $(call gb_CppunitTest_set_include,sw_fodfexport,\
 	$$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_fodfexport))
+$(eval $(call gb_CppunitTest_use_api,sw_fodfexport,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_fodfexport))
 $(eval $(call gb_CppunitTest_use_vcl,sw_fodfexport))
diff --git a/sw/CppunitTest_sw_globalfilter.mk b/sw/CppunitTest_sw_globalfilter.mk
index 97ce20201c6d..d07ecf840daa 100644
--- a/sw/CppunitTest_sw_globalfilter.mk
+++ b/sw/CppunitTest_sw_globalfilter.mk
@@ -42,7 +42,11 @@ $(eval $(call gb_CppunitTest_set_include,sw_globalfilter,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_globalfilter))
+$(eval $(call gb_CppunitTest_use_api,sw_globalfilter,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_globalfilter))
 $(eval $(call gb_CppunitTest_use_vcl,sw_globalfilter))
diff --git a/sw/CppunitTest_sw_htmlexport.mk b/sw/CppunitTest_sw_htmlexport.mk
index 4dabbe61606f..2ff28694f452 100644
--- a/sw/CppunitTest_sw_htmlexport.mk
+++ b/sw/CppunitTest_sw_htmlexport.mk
@@ -43,7 +43,11 @@ $(eval $(call gb_CppunitTest_set_include,sw_htmlexport,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_htmlexport))
+$(eval $(call gb_CppunitTest_use_api,sw_htmlexport,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_htmlexport))
 $(eval $(call gb_CppunitTest_use_vcl,sw_htmlexport))
diff --git a/sw/CppunitTest_sw_htmlimport.mk b/sw/CppunitTest_sw_htmlimport.mk
index f1cf2fd24d67..16147462cb6c 100644
--- a/sw/CppunitTest_sw_htmlimport.mk
+++ b/sw/CppunitTest_sw_htmlimport.mk
@@ -46,7 +46,11 @@ $(eval $(call gb_CppunitTest_set_include,sw_htmlimport,\
 	$$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_htmlimport))
+$(eval $(call gb_CppunitTest_use_api,sw_htmlimport,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_htmlimport))
 $(eval $(call gb_CppunitTest_use_vcl,sw_htmlimport))
diff --git a/sw/CppunitTest_sw_layoutwriter.mk b/sw/CppunitTest_sw_layoutwriter.mk
index 675299180e44..e5f5a180920e 100644
--- a/sw/CppunitTest_sw_layoutwriter.mk
+++ b/sw/CppunitTest_sw_layoutwriter.mk
@@ -48,7 +48,11 @@ $(eval $(call gb_CppunitTest_set_include,sw_layoutwriter,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_layoutwriter))
+$(eval $(call gb_CppunitTest_use_api,sw_layoutwriter,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_layoutwriter))
 $(eval $(call gb_CppunitTest_use_vcl,sw_layoutwriter))
diff --git a/sw/CppunitTest_sw_mailmerge.mk b/sw/CppunitTest_sw_mailmerge.mk
index 766be12acbb2..3db2df0cf2fd 100644
--- a/sw/CppunitTest_sw_mailmerge.mk
+++ b/sw/CppunitTest_sw_mailmerge.mk
@@ -31,7 +31,11 @@ $(eval $(call gb_CppunitTest_use_externals,sw_mailmerge, \
     libxml2 \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_mailmerge))
+$(eval $(call gb_CppunitTest_use_api,sw_mailmerge,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_components,sw_mailmerge, \
     basic/util/sb \
diff --git a/sw/CppunitTest_sw_odfexport.mk b/sw/CppunitTest_sw_odfexport.mk
index 75687878d3ab..b3771e3af57d 100644
--- a/sw/CppunitTest_sw_odfexport.mk
+++ b/sw/CppunitTest_sw_odfexport.mk
@@ -42,7 +42,11 @@ $(eval $(call gb_CppunitTest_set_include,sw_odfexport,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_odfexport))
+$(eval $(call gb_CppunitTest_use_api,sw_odfexport,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_odfexport))
 $(eval $(call gb_CppunitTest_use_vcl,sw_odfexport))
diff --git a/sw/CppunitTest_sw_odfimport.mk b/sw/CppunitTest_sw_odfimport.mk
index 2f33310d9cf8..e322445d052f 100644
--- a/sw/CppunitTest_sw_odfimport.mk
+++ b/sw/CppunitTest_sw_odfimport.mk
@@ -43,7 +43,11 @@ $(eval $(call gb_CppunitTest_set_include,sw_odfimport,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_odfimport))
+$(eval $(call gb_CppunitTest_use_api,sw_odfimport,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_odfimport))
 $(eval $(call gb_CppunitTest_use_vcl,sw_odfimport))
diff --git a/sw/CppunitTest_sw_ooxmlencryption.mk b/sw/CppunitTest_sw_ooxmlencryption.mk
index 09b2fb1c0130..5485199be139 100644
--- a/sw/CppunitTest_sw_ooxmlencryption.mk
+++ b/sw/CppunitTest_sw_ooxmlencryption.mk
@@ -31,7 +31,12 @@ $(eval $(call gb_CppunitTest_set_include,sw_ooxmlencryption,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_ooxmlencryption))
+$(eval $(call gb_CppunitTest_use_api,sw_ooxmlencryption,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
+
 $(eval $(call gb_CppunitTest_use_ure,sw_ooxmlencryption))
 $(eval $(call gb_CppunitTest_use_vcl,sw_ooxmlencryption))
 
diff --git a/sw/CppunitTest_sw_ooxmlexport8.mk b/sw/CppunitTest_sw_ooxmlexport8.mk
index c46530afaef0..13e9bd6c1140 100644
--- a/sw/CppunitTest_sw_ooxmlexport8.mk
+++ b/sw/CppunitTest_sw_ooxmlexport8.mk
@@ -55,7 +55,11 @@ $(eval $(call gb_CppunitTest_use_system_darwin_frameworks,sw_ooxmlexport8,\
 
 endif
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_ooxmlexport8))
+$(eval $(call gb_CppunitTest_use_api,sw_ooxmlexport8,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_ooxmlexport8))
 $(eval $(call gb_CppunitTest_use_vcl,sw_ooxmlexport8))
diff --git a/sw/CppunitTest_sw_ooxmlfieldexport.mk b/sw/CppunitTest_sw_ooxmlfieldexport.mk
index 8c753950b161..192e4bc7a5fc 100644
--- a/sw/CppunitTest_sw_ooxmlfieldexport.mk
+++ b/sw/CppunitTest_sw_ooxmlfieldexport.mk
@@ -31,7 +31,11 @@ $(eval $(call gb_CppunitTest_set_include,sw_ooxmlfieldexport,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_ooxmlfieldexport))
+$(eval $(call gb_CppunitTest_use_api,sw_ooxmlfieldexport,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_ooxmlfieldexport))
 $(eval $(call gb_CppunitTest_use_vcl,sw_ooxmlfieldexport))
diff --git a/sw/CppunitTest_sw_ooxmlimport.mk b/sw/CppunitTest_sw_ooxmlimport.mk
index 3f887efa53ed..e969118f99d5 100644
--- a/sw/CppunitTest_sw_ooxmlimport.mk
+++ b/sw/CppunitTest_sw_ooxmlimport.mk
@@ -55,7 +55,11 @@ $(eval $(call gb_CppunitTest_use_system_darwin_frameworks,sw_ooxmlimport,\
 
 endif
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_ooxmlimport))
+$(eval $(call gb_CppunitTest_use_api,sw_ooxmlimport,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_ooxmlimport))
 $(eval $(call gb_CppunitTest_use_vcl,sw_ooxmlimport))
diff --git a/sw/CppunitTest_sw_ooxmlimport2.mk b/sw/CppunitTest_sw_ooxmlimport2.mk
index d170cb822b2e..1d41899668af 100644
--- a/sw/CppunitTest_sw_ooxmlimport2.mk
+++ b/sw/CppunitTest_sw_ooxmlimport2.mk
@@ -55,7 +55,11 @@ $(eval $(call gb_CppunitTest_use_system_darwin_frameworks,sw_ooxmlimport2,\
 
 endif
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_ooxmlimport2))
+$(eval $(call gb_CppunitTest_use_api,sw_ooxmlimport2,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_ooxmlimport2))
 $(eval $(call gb_CppunitTest_use_vcl,sw_ooxmlimport2))
diff --git a/sw/CppunitTest_sw_ooxmllinks.mk b/sw/CppunitTest_sw_ooxmllinks.mk
index 78b81d4a14b4..6e7babb03a5e 100644
--- a/sw/CppunitTest_sw_ooxmllinks.mk
+++ b/sw/CppunitTest_sw_ooxmllinks.mk
@@ -31,7 +31,11 @@ $(eval $(call gb_CppunitTest_set_include,sw_ooxmllinks,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_ooxmllinks))
+$(eval $(call gb_CppunitTest_use_api,sw_ooxmllinks,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_ooxmllinks))
 $(eval $(call gb_CppunitTest_use_vcl,sw_ooxmllinks))
diff --git a/sw/CppunitTest_sw_ooxmlw14export.mk b/sw/CppunitTest_sw_ooxmlw14export.mk
index a12d9fe2270c..d04297aa0ddf 100644
--- a/sw/CppunitTest_sw_ooxmlw14export.mk
+++ b/sw/CppunitTest_sw_ooxmlw14export.mk
@@ -31,7 +31,11 @@ $(eval $(call gb_CppunitTest_set_include,sw_ooxmlw14export,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_ooxmlw14export))
+$(eval $(call gb_CppunitTest_use_api,sw_ooxmlw14export,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_ooxmlw14export))
 $(eval $(call gb_CppunitTest_use_vcl,sw_ooxmlw14export))
diff --git a/sw/CppunitTest_sw_rtfexport.mk b/sw/CppunitTest_sw_rtfexport.mk
index a09d3b4a5985..fc77c7cc67e3 100644
--- a/sw/CppunitTest_sw_rtfexport.mk
+++ b/sw/CppunitTest_sw_rtfexport.mk
@@ -46,7 +46,11 @@ $(eval $(call gb_CppunitTest_add_cxxflags,sw_rtfexport,\
 ))
 endif
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_rtfexport))
+$(eval $(call gb_CppunitTest_use_api,sw_rtfexport,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_rtfexport))
 $(eval $(call gb_CppunitTest_use_vcl,sw_rtfexport))
diff --git a/sw/CppunitTest_sw_rtfexport2.mk b/sw/CppunitTest_sw_rtfexport2.mk
index 3519afec5e7a..98edcaee2fb1 100644
--- a/sw/CppunitTest_sw_rtfexport2.mk
+++ b/sw/CppunitTest_sw_rtfexport2.mk
@@ -48,7 +48,11 @@ $(eval $(call gb_CppunitTest_add_cxxflags,sw_rtfexport2,\
 ))
 endif
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_rtfexport2))
+$(eval $(call gb_CppunitTest_use_api,sw_rtfexport2,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_rtfexport2))
 $(eval $(call gb_CppunitTest_use_vcl,sw_rtfexport2))
diff --git a/sw/CppunitTest_sw_rtfexport3.mk b/sw/CppunitTest_sw_rtfexport3.mk
index d0ebff13c4aa..51b8583fc0d6 100644
--- a/sw/CppunitTest_sw_rtfexport3.mk
+++ b/sw/CppunitTest_sw_rtfexport3.mk
@@ -46,7 +46,11 @@ $(eval $(call gb_CppunitTest_add_cxxflags,sw_rtfexport3,\
 ))
 endif
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_rtfexport3))
+$(eval $(call gb_CppunitTest_use_api,sw_rtfexport3,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_rtfexport3))
 $(eval $(call gb_CppunitTest_use_vcl,sw_rtfexport3))
diff --git a/sw/CppunitTest_sw_rtfimport.mk b/sw/CppunitTest_sw_rtfimport.mk
index 4f227b919fa1..fc68b95d1141 100644
--- a/sw/CppunitTest_sw_rtfimport.mk
+++ b/sw/CppunitTest_sw_rtfimport.mk
@@ -48,7 +48,11 @@ $(eval $(call gb_CppunitTest_add_cxxflags,sw_rtfimport,\
 ))
 endif
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_rtfimport))
+$(eval $(call gb_CppunitTest_use_api,sw_rtfimport,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_rtfimport))
 $(eval $(call gb_CppunitTest_use_vcl,sw_rtfimport))
diff --git a/sw/CppunitTest_sw_tiledrendering.mk b/sw/CppunitTest_sw_tiledrendering.mk
index 3ba3d3eb4e53..9893914197f8 100644
--- a/sw/CppunitTest_sw_tiledrendering.mk
+++ b/sw/CppunitTest_sw_tiledrendering.mk
@@ -46,7 +46,11 @@ $(eval $(call gb_CppunitTest_set_include,sw_tiledrendering,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_tiledrendering))
+$(eval $(call gb_CppunitTest_use_api,sw_tiledrendering,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_tiledrendering))
 $(eval $(call gb_CppunitTest_use_vcl,sw_tiledrendering))
diff --git a/sw/CppunitTest_sw_txtexport.mk b/sw/CppunitTest_sw_txtexport.mk
index 700a174edc5b..285ac611704f 100644
--- a/sw/CppunitTest_sw_txtexport.mk
+++ b/sw/CppunitTest_sw_txtexport.mk
@@ -44,7 +44,11 @@ $(eval $(call gb_CppunitTest_set_include,sw_txtexport,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_txtexport))
+$(eval $(call gb_CppunitTest_use_api,sw_txtexport,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_txtexport))
 $(eval $(call gb_CppunitTest_use_vcl,sw_txtexport))
diff --git a/sw/CppunitTest_sw_uiwriter.mk b/sw/CppunitTest_sw_uiwriter.mk
index 05ce1b5c90d8..bb3271ec9fa3 100644
--- a/sw/CppunitTest_sw_uiwriter.mk
+++ b/sw/CppunitTest_sw_uiwriter.mk
@@ -51,7 +51,11 @@ $(eval $(call gb_CppunitTest_set_include,sw_uiwriter,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_uiwriter))
+$(eval $(call gb_CppunitTest_use_api,sw_uiwriter,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_uiwriter))
 $(eval $(call gb_CppunitTest_use_vcl,sw_uiwriter))
diff --git a/sw/CppunitTest_sw_uwriter.mk b/sw/CppunitTest_sw_uwriter.mk
index 9c305d3dcbb3..910976c4b950 100644
--- a/sw/CppunitTest_sw_uwriter.mk
+++ b/sw/CppunitTest_sw_uwriter.mk
@@ -72,7 +72,11 @@ $(eval $(call gb_CppunitTest_set_include,sw_uwriter,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_uwriter))
+$(eval $(call gb_CppunitTest_use_api,sw_uwriter,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_uwriter))
 $(eval $(call gb_CppunitTest_use_vcl,sw_uwriter))
diff --git a/sw/CppunitTest_sw_ww8export.mk b/sw/CppunitTest_sw_ww8export.mk
index fda20b5c2e28..41210a8b88b3 100644
--- a/sw/CppunitTest_sw_ww8export.mk
+++ b/sw/CppunitTest_sw_ww8export.mk
@@ -43,7 +43,11 @@ $(eval $(call gb_CppunitTest_set_include,sw_ww8export,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_ww8export))
+$(eval $(call gb_CppunitTest_use_api,sw_ww8export,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_ww8export))
 $(eval $(call gb_CppunitTest_use_vcl,sw_ww8export))
diff --git a/sw/CppunitTest_sw_ww8export2.mk b/sw/CppunitTest_sw_ww8export2.mk
index 616347d52904..a701a81180a8 100644
--- a/sw/CppunitTest_sw_ww8export2.mk
+++ b/sw/CppunitTest_sw_ww8export2.mk
@@ -42,7 +42,11 @@ $(eval $(call gb_CppunitTest_set_include,sw_ww8export2,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_ww8export2))
+$(eval $(call gb_CppunitTest_use_api,sw_ww8export2,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_ww8export2))
 $(eval $(call gb_CppunitTest_use_vcl,sw_ww8export2))
diff --git a/sw/CppunitTest_sw_ww8import.mk b/sw/CppunitTest_sw_ww8import.mk
index b7102196a27f..1ccc1a3f20aa 100644
--- a/sw/CppunitTest_sw_ww8import.mk
+++ b/sw/CppunitTest_sw_ww8import.mk
@@ -41,7 +41,11 @@ $(eval $(call gb_CppunitTest_set_include,sw_ww8import,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_ww8import))
+$(eval $(call gb_CppunitTest_use_api,sw_ww8import,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_ww8import))
 $(eval $(call gb_CppunitTest_use_vcl,sw_ww8import))
diff --git a/sw/Library_msword.mk b/sw/Library_msword.mk
index c468fbdc8e43..457c7351a9bc 100644
--- a/sw/Library_msword.mk
+++ b/sw/Library_msword.mk
@@ -33,7 +33,11 @@ $(eval $(call gb_Library_set_include,msword,\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_Library_use_sdk_api,msword))
+$(eval $(call gb_Library_use_api,msword,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_Library_use_libraries,msword,\
     basegfx \
diff --git a/sw/Library_sw.mk b/sw/Library_sw.mk
index 78d62e03809e..446600957649 100644
--- a/sw/Library_sw.mk
+++ b/sw/Library_sw.mk
@@ -39,7 +39,11 @@ $(eval $(call gb_Library_use_custom_headers,sw,\
 	sw/generated \
 ))
 
-$(eval $(call gb_Library_use_sdk_api,sw))
+$(eval $(call gb_Library_use_api,sw,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_Library_add_defs,sw,\
     -DSW_DLLIMPLEMENTATION \
diff --git a/sw/Library_swui.mk b/sw/Library_swui.mk
index 23c737e2a740..bbacb517f697 100644
--- a/sw/Library_swui.mk
+++ b/sw/Library_swui.mk
@@ -38,7 +38,11 @@ $(eval $(call gb_Library_use_custom_headers,swui,\
 	officecfg/registry \
 ))
 
-$(eval $(call gb_Library_use_sdk_api,swui))
+$(eval $(call gb_Library_use_api,swui,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 ifneq ($(SYSTEM_LIBXML),)
 $(eval $(call gb_Library_add_cxxflags,swui,\
diff --git a/sw/inc/swmodule.hxx b/sw/inc/swmodule.hxx
index 4a454faa970f..b9d871a50b08 100644
--- a/sw/inc/swmodule.hxx
+++ b/sw/inc/swmodule.hxx
@@ -31,6 +31,7 @@
 #include "swdllapi.h"
 #include "shellid.hxx"
 #include "fldupde.hxx"
+#include <ooo/vba/XSinkCaller.hpp>
 
 class Color;
 class SfxItemSet;
@@ -119,6 +120,8 @@ class SW_DLLPUBLIC SwModule final : public SfxModule, public SfxListener, public
     void                InsertEnv(SfxRequest&);
     void                InsertLab(SfxRequest&, bool bLabel);
 
+    css::uno::Reference< ooo::vba::XSinkCaller > mxAutomationApplicationEventsCaller;
+
 public:
     // public Data - used for internal Clipboard / Drag & Drop / XSelection
     SwTransferable  *m_pDragDrop, *m_pXSelection;
@@ -243,6 +246,9 @@ public:
 
     css::uno::Reference< css::linguistic2::XLanguageGuessing > const &
             GetLanguageGuesser();
+
+    void RegisterAutomationApplicationEventsCaller(css::uno::Reference< ooo::vba::XSinkCaller > const& xCaller);
+    void CallAutomationApplicationEventSinks(const OUString& Method, const css::uno::Sequence< css::uno::Any >& Arguments);
 };
 
 inline const css::uno::Reference< css::linguistic2::XLinguServiceEventListener >&
diff --git a/sw/ooxmlexport_setup.mk b/sw/ooxmlexport_setup.mk
index 443556f02d30..cf3a15bc61e0 100644
--- a/sw/ooxmlexport_setup.mk
+++ b/sw/ooxmlexport_setup.mk
@@ -106,7 +106,11 @@ $(eval $(call gb_CppunitTest_set_include,sw_ooxmlexport$(1),\
     $$(INCLUDE) \
 ))
 
-$(eval $(call gb_CppunitTest_use_sdk_api,sw_ooxmlexport$(1),))
+$(eval $(call gb_CppunitTest_use_api,sw_ooxmlexport$(1),\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
 
 $(eval $(call gb_CppunitTest_use_ure,sw_ooxmlexport$(1)))
 $(eval $(call gb_CppunitTest_use_vcl,sw_ooxmlexport$(1)))
diff --git a/sw/source/ui/vba/vbaapplication.cxx b/sw/source/ui/vba/vbaapplication.cxx
index f86032a249e7..d76e7730a783 100644
--- a/sw/source/ui/vba/vbaapplication.cxx
+++ b/sw/source/ui/vba/vbaapplication.cxx
@@ -34,6 +34,8 @@
 #include <editeng/acorrcfg.hxx>
 #include "wordvbahelper.hxx"
 #include <docsh.hxx>
+#include <swdll.hxx>
+#include <swmodule.hxx>
 #include "vbalistgalleries.hxx"
 
 using namespace ::ooo;
@@ -60,17 +62,17 @@ SwVbaApplication::SwVbaApplication( uno::Reference<uno::XComponentContext >& xCo
 
 SwVbaApplication::~SwVbaApplication()
 {
-    // FIXME: Sadly this is not the place to do this, this dtor is never called, it seems
-    for (auto& i : mvSinks)
-    {
-        if (i.is())
-            i->Call("Quit", uno::Sequence<uno::Any>());
-    }
 }
 
 sal_uInt32
-SwVbaApplication::AddSink( const css::uno::Reference< XSink >& xSink )
+SwVbaApplication::AddSink( const uno::Reference< XSink >& xSink )
 {
+    {
+        SolarMutexGuard aGuard;
+        SwGlobals::ensure();
+    }
+    // No harm in potentially calling this several times
+    SW_MOD()->RegisterAutomationApplicationEventsCaller( uno::Reference< XSinkCaller >(this) );
     mvSinks.push_back(xSink);
     return mvSinks.size();;
 }
@@ -132,13 +134,6 @@ SwVbaApplication::getSelection()
 uno::Any SAL_CALL
 SwVbaApplication::Documents( const uno::Any& index )
 {
-    // FIXME DUMMY just to test calling this somewhere... the dtor is never called
-    for (auto& i : mvSinks)
-    {
-        if (i.is())
-            i->Call("Quit", uno::Sequence<uno::Any>());
-    }
-
     uno::Reference< XCollection > xCol( new SwVbaDocuments( this, mxContext ) );
     if ( index.hasValue() )
         return xCol->Item( index, uno::Any() );
@@ -269,6 +264,18 @@ SwVbaApplicationOutgoingConnectionPoint::SwVbaApplicationOutgoingConnectionPoint
 {
 }
 
+// XSinkCaller
+
+void SAL_CALL
+SwVbaApplication::CallSinks( const OUString& Method, const uno::Sequence< uno::Any >& Arguments )
+{
+    for (auto& i : mvSinks)
+    {
+        if (i.is())
+            i->Call(Method, Arguments);
+    }
+}
+
 // SwVbaApplicationOutgoingConnectionPoint
 
 // XConnectionPoint
diff --git a/sw/source/ui/vba/vbaapplication.hxx b/sw/source/ui/vba/vbaapplication.hxx
index 8b8b85f86c8c..681c4f9159c6 100644
--- a/sw/source/ui/vba/vbaapplication.hxx
+++ b/sw/source/ui/vba/vbaapplication.hxx
@@ -22,6 +22,7 @@
 #include <vector>
 
 #include <ooo/vba/XSink.hpp>
+#include <ooo/vba/XSinkCaller.hpp>
 #include <ooo/vba/word/XApplication.hpp>
 #include <ooo/vba/word/XDocument.hpp>
 #include <ooo/vba/word/XWindow.hpp>
@@ -33,7 +34,15 @@
 #include <vbahelper/vbaapplicationbase.hxx>
 #include <cppuhelper/implbase.hxx>
 
-typedef cppu::ImplInheritanceHelper< VbaApplicationBase, ooo::vba::word::XApplication > SwVbaApplication_BASE;
+typedef cppu::ImplInheritanceHelper< VbaApplicationBase, ooo::vba::word::XApplication, ooo::vba::XSinkCaller > SwVbaApplication_BASE;
+
+// This class is currently not a singleton. One instance is created per document with (potential?)
+// StarBasic code in it, I think, and a shared one for all Automation clients connected to the
+// ooo::vba::word::Application (Writer.Application) service. (Of course it probably is not common to
+// have several Automation clients at once.)
+
+// Should it be a true singleton? Hard to say. Anyway, it is actually the SwVbaGlobals class that
+// should be a singleton in that case, I think.
 
 class SwVbaApplication : public SwVbaApplication_BASE
 {
@@ -76,6 +85,10 @@ public:
     // XHelperInterface
     virtual OUString getServiceImplName() override;
     virtual css::uno::Sequence<OUString> getServiceNames() override;
+
+    // XSinkCaller
+    virtual void SAL_CALL CallSinks( const OUString& Method, const css::uno::Sequence< css::uno::Any >& Arguments ) override;
+
 protected:
     virtual css::uno::Reference< css::frame::XModel > getCurrentDocument() override;
 };
diff --git a/sw/source/uibase/app/docsh2.cxx b/sw/source/uibase/app/docsh2.cxx
index 7f7df1db893e..91c86d8c74ff 100644
--- a/sw/source/uibase/app/docsh2.cxx
+++ b/sw/source/uibase/app/docsh2.cxx
@@ -254,6 +254,9 @@ void SwDocShell::Notify( SfxBroadcaster&, const SfxHint& rHint )
     if( xVbaEvents.is() )
         lcl_processCompatibleSfxHint( xVbaEvents, rHint );
 
+    if ( rHint.GetId() == SfxHintId::DocChanged )
+        SW_MOD()->CallAutomationApplicationEventSinks( "DocumentChange", css::uno::Sequence< css::uno::Any >() );
+
     sal_uInt16 nAction = 0;
     auto pEventHint = dynamic_cast<const SfxEventHint*>(&rHint);
     if( pEventHint && pEventHint->GetEventId() == SfxEventHintId::LoadFinished )
diff --git a/sw/source/uibase/app/swmodule.cxx b/sw/source/uibase/app/swmodule.cxx
index 9b901012e86c..e82aa7f25eb1 100644
--- a/sw/source/uibase/app/swmodule.cxx
+++ b/sw/source/uibase/app/swmodule.cxx
@@ -221,6 +221,7 @@ uno::Reference< linguistic2::XLanguageGuessing > const & SwModule::GetLanguageGu
 
 SwModule::~SwModule()
 {
+    CallAutomationApplicationEventSinks( "Quit", css::uno::Sequence< css::uno::Any >() );
     delete m_pErrorHandler;
     EndListening( *SfxGetpApp() );
 }
@@ -435,4 +436,15 @@ SfxStyleFamilies* SwModule::CreateStyleFamilies()
     return pStyleFamilies;
 }
 
+void SwModule::RegisterAutomationApplicationEventsCaller(css::uno::Reference< ooo::vba::XSinkCaller > const& xCaller)
+{
+    mxAutomationApplicationEventsCaller = xCaller;
+}
+
+void SwModule::CallAutomationApplicationEventSinks(const OUString& Method, const css::uno::Sequence< css::uno::Any >& Arguments)
+{
+    if (mxAutomationApplicationEventsCaller.is())
+        mxAutomationApplicationEventsCaller->CallSinks(Method, Arguments);
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list