1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 /* 3 * This file is part of the LibreOffice project. 4 * 5 * This Source Code Form is subject to the terms of the Mozilla Public 6 * License, v. 2.0. If a copy of the MPL was not distributed with this 7 * file, You can obtain one at http://mozilla.org/MPL/2.0/. 8 */ 9 10 #ifndef INCLUDED_SVX_EXTEDIT_HXX 11 #define INCLUDED_SVX_EXTEDIT_HXX 12 13 #include <svx/svxdllapi.h> 14 #include <svl/lstner.hxx> 15 #include <rtl/ustring.hxx> 16 #include <memory> 17 18 class Graphic; 19 class GraphicObject; 20 class FileChangedChecker; 21 22 class SAL_WARN_UNUSED SVX_DLLPUBLIC ExternalToolEdit 23 { 24 protected: 25 OUString m_aFileName; 26 27 ::std::unique_ptr<FileChangedChecker> m_pChecker; 28 29 public: 30 31 ExternalToolEdit(); 32 virtual ~ExternalToolEdit(); 33 34 virtual void Update( Graphic& aGraphic ) = 0; 35 void Edit(GraphicObject const*const pGraphic); 36 37 void StartListeningEvent(); 38 39 static void HandleCloseEvent( ExternalToolEdit* pData ); 40 }; 41 42 class FmFormView; 43 class SdrObject; 44 45 class SAL_WARN_UNUSED SVX_DLLPUBLIC SdrExternalToolEdit final 46 : public ExternalToolEdit 47 ,public SfxListener 48 { 49 private: 50 FmFormView* m_pView; 51 SdrObject* m_pObj; 52 53 SAL_DLLPRIVATE virtual void Update(Graphic&) override; 54 SAL_DLLPRIVATE virtual void Notify(SfxBroadcaster&, const SfxHint&) override; 55 56 public: 57 SdrExternalToolEdit( 58 FmFormView* pView, 59 SdrObject* pObj); 60 }; 61 62 #endif 63