diff --git a/chart2/source/controller/sidebar/ChartLinePanel.cxx b/chart2/source/controller/sidebar/ChartLinePanel.cxx index d9da9a2985ef..bc905c9d9900 100644 --- a/chart2/source/controller/sidebar/ChartLinePanel.cxx +++ b/chart2/source/controller/sidebar/ChartLinePanel.cxx @@ -25,6 +25,7 @@ #include #include +#include #include #include @@ -35,7 +36,7 @@ namespace { SvxLineStyleToolBoxControl* getLineStyleToolBoxControl(const ToolbarUnoDispatcher& rToolBoxColor) { css::uno::Reference xController = rToolBoxColor.GetControllerForCommand(".uno:XLineStyle"); - SvxLineStyleToolBoxControl* pToolBoxLineStyleControl = dynamic_cast(xController.get()); + SvxLineStyleToolBoxControl* pToolBoxLineStyleControl = comphelper::getFromUnoTunnel(xController); return pToolBoxLineStyleControl; } diff --git a/include/svx/linectrl.hxx b/include/svx/linectrl.hxx index e2cd9e6c8852..983242b776d2 100644 --- a/include/svx/linectrl.hxx +++ b/include/svx/linectrl.hxx @@ -19,6 +19,8 @@ #ifndef INCLUDED_SVX_LINECTRL_HXX #define INCLUDED_SVX_LINECTRL_HXX +#include +#include #include #include #include @@ -35,7 +37,8 @@ typedef std::function LineStyleSele typedef std::function LineStyleIsNoneFunction; // SvxLineStyleController: -class SVXCORE_DLLPUBLIC SvxLineStyleToolBoxControl final : public svt::PopupWindowController +class SVXCORE_DLLPUBLIC SvxLineStyleToolBoxControl final : + public cppu::ImplInheritanceHelper { private: std::unique_ptr m_xBtnUpdater; @@ -53,6 +56,9 @@ public: virtual OUString SAL_CALL getImplementationName() override; virtual css::uno::Sequence SAL_CALL getSupportedServiceNames() override; + sal_Int64 SAL_CALL getSomething(css::uno::Sequence const & aIdentifier) override; + static css::uno::Sequence const & getUnoTunnelId(); + virtual void SAL_CALL execute(sal_Int16 nKeyModifier) override; virtual void SAL_CALL statusChanged(const css::frame::FeatureStateEvent& rEvent) override; diff --git a/svx/source/sidebar/line/LinePropertyPanelBase.cxx b/svx/source/sidebar/line/LinePropertyPanelBase.cxx index 454e16a335f8..d04b16103e6b 100644 --- a/svx/source/sidebar/line/LinePropertyPanelBase.cxx +++ b/svx/source/sidebar/line/LinePropertyPanelBase.cxx @@ -18,6 +18,7 @@ */ #include +#include #include #include #include @@ -57,7 +58,7 @@ namespace SvxLineStyleToolBoxControl* getLineStyleToolBoxControl(const ToolbarUnoDispatcher& rToolBoxColor) { css::uno::Reference xController = rToolBoxColor.GetControllerForCommand(".uno:XLineStyle"); - SvxLineStyleToolBoxControl* pToolBoxLineStyleControl = dynamic_cast(xController.get()); + SvxLineStyleToolBoxControl* pToolBoxLineStyleControl = comphelper::getFromUnoTunnel(xController); return pToolBoxLineStyleControl; } } diff --git a/svx/source/tbxctrls/linectrl.cxx b/svx/source/tbxctrls/linectrl.cxx index 81f064fc78f4..b75fee2d88b0 100644 --- a/svx/source/tbxctrls/linectrl.cxx +++ b/svx/source/tbxctrls/linectrl.cxx @@ -48,6 +48,7 @@ #include #include +#include using namespace ::com::sun::star::uno; using namespace ::com::sun::star::beans; @@ -60,7 +61,7 @@ using namespace ::com::sun::star; #define MAX_LINES 12 SvxLineStyleToolBoxControl::SvxLineStyleToolBoxControl( const css::uno::Reference& rContext ) - : svt::PopupWindowController( rContext, nullptr, OUString() ) + : ImplInheritanceHelper( rContext, nullptr, OUString() ) { addStatusListener(".uno:LineDash"); } @@ -217,6 +218,16 @@ css::uno::Sequence SvxLineStyleToolBoxControl::getSupportedServiceName return { "com.sun.star.frame.ToolbarController" }; } +sal_Int64 SvxLineStyleToolBoxControl::getSomething(css::uno::Sequence const & aIdentifier) +{ + return comphelper::getSomethingImpl(aIdentifier, this); +} + +css::uno::Sequence const & SvxLineStyleToolBoxControl::getUnoTunnelId() { + static comphelper::UnoIdInit const id; + return id.getSeq(); +} + extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * com_sun_star_comp_svx_LineStyleToolBoxControl_get_implementation( css::uno::XComponentContext* rContext,