diff options
author | Daniel Vogelheim <dvo@openoffice.org> | 2001-04-17 12:52:27 +0000 |
---|---|---|
committer | Daniel Vogelheim <dvo@openoffice.org> | 2001-04-17 12:52:27 +0000 |
commit | 767103e33b85d2f69589152f16bc300322ecd301 (patch) | |
tree | 8801fbb8f3f85efc2c21e894e66a6a0216112054 /sw/inc/unoevent.hxx | |
parent | 9a472d1c2e40fdd47dcf3845be34a62ebb713b5c (diff) |
changed: unoevent.cxx classes now derive from svtools/unoevent.hxx classes,
instead of supplying their own
Diffstat (limited to 'sw/inc/unoevent.hxx')
-rw-r--r-- | sw/inc/unoevent.hxx | 301 |
1 files changed, 10 insertions, 291 deletions
diff --git a/sw/inc/unoevent.hxx b/sw/inc/unoevent.hxx index bfd21ff41446..6457845c91a4 100644 --- a/sw/inc/unoevent.hxx +++ b/sw/inc/unoevent.hxx @@ -2,9 +2,9 @@ * * $RCSfile: unoevent.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: dvo $ $Date: 2001-03-09 14:45:04 $ + * last change: $Author: dvo $ $Date: 2001-04-17 13:52:25 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -61,27 +61,15 @@ #ifndef _UNOEVENT_HXX #define _UNOEVENT_HXX -#ifndef _COM_SUN_STAR_CONTAINER_XNAMEREPLACE_HPP_ -#include <com/sun/star/container/XNameReplace.hpp> -#endif - -#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ -#include <com/sun/star/lang/XServiceInfo.hpp> -#endif - -#ifndef _COM_SUN_STAR_UNO_XINTERFACE_HPP_ -#include <com/sun/star/uno/XInterface.hpp> -#endif - -#ifndef _CPPUHELPER_IMPLBASE2_HXX_ -#include <cppuhelper/implbase2.hxx> +#ifndef _SVTOOLS_UNOEVENT_HXX_ +#include <svtools/unoevent.hxx> #endif #ifndef _SFXMACITEM_HXX #include <svtools/macitem.hxx> #endif -class SvxMacroTableDtor; + class SvxMacroItem; class SvxMacro; class SwXFrame; @@ -91,262 +79,9 @@ class SwXTextEmbeddedObject; class SwXFrameStyle; class SwFmtINetFmt; -/** - * SwBaseEventDescriptor: Abstract class that implements the basics - * of an XNameReplace that is delivered by the - * XEventsSupplier::getEvents() method. - * - * The functionality this class provides is: - * 1) Which elements are in the XNameReplace? - * 2) Mapping from Api names to item IDs. - * 3) conversion from SvxMacroItem to Any and vice versa. - * - * All details of how to actually get and set SvxMacroItem(s) have to - * be supplied by the base class. - */ -class SwBaseEventDescriptor : public cppu::WeakImplHelper2 -< - ::com::sun::star::container::XNameReplace, - ::com::sun::star::lang::XServiceInfo -> -{ - const ::rtl::OUString sEventType; - const ::rtl::OUString sMacroName; - const ::rtl::OUString sLibrary; - const ::rtl::OUString sStarBasic; - const ::rtl::OUString sJavaScript; - const ::rtl::OUString sScript; - const ::rtl::OUString sNone; - const ::rtl::OUString sEmpty; - - - /// name of own service - const ::rtl::OUString sServiceName; - -protected: - /// an empty macro - const SvxMacro aEmptyMacro; - - /// last element is 0 - const USHORT* aSupportedMacroItemIDs; - -public: - - SwBaseEventDescriptor(const USHORT* aMacroItems); - - virtual ~SwBaseEventDescriptor(); - - - // XNameReplace - /// calls replaceByName(const USHORT, const SvxMacro&) - virtual void SAL_CALL replaceByName( - const ::rtl::OUString& rName, /// API name of event - const ::com::sun::star::uno::Any& rElement ) /// event (PropertyValues) - throw( - ::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::container::NoSuchElementException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException); - - // XNameAccess (via XNameReplace) - /// calls getByName(USHORT) - virtual ::com::sun::star::uno::Any SAL_CALL getByName( - const ::rtl::OUString& rName ) /// API name of event - throw( - ::com::sun::star::container::NoSuchElementException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException); - - // XNameAxcess (via XNameReplace) - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL - getElementNames() - throw(::com::sun::star::uno::RuntimeException); - // XNameAccess (via XNameReplace) - virtual sal_Bool SAL_CALL hasByName( - const ::rtl::OUString& rName ) - throw(::com::sun::star::uno::RuntimeException); - // XElementAccess (via XNameReplace) - virtual ::com::sun::star::uno::Type SAL_CALL getElementType() - throw(::com::sun::star::uno::RuntimeException); - - // XElementAccess (via XNameReplace) - virtual sal_Bool SAL_CALL hasElements() - throw(::com::sun::star::uno::RuntimeException); - - // XServiceInfo - /// must be implemented in subclass - virtual rtl::OUString SAL_CALL getImplementationName(void) - throw( ::com::sun::star::uno::RuntimeException ) = 0; - - // XServiceInfo - virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName) - throw( ::com::sun::star::uno::RuntimeException ); - - // XServiceInfo - virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL - getSupportedServiceNames(void) - throw( ::com::sun::star::uno::RuntimeException ); - -protected: - - /// Must be implemented in subclass. - virtual void replaceByName( - const USHORT nEvent, /// item ID of event - const SvxMacro& rMacro) /// event (will be copied) - throw( - ::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::container::NoSuchElementException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException) = 0; - - /// Must be implemented in subclass. - virtual void getByName( - SvxMacro& rMacro, - const USHORT nEvent ) - throw( - ::com::sun::star::container::NoSuchElementException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException) = 0; - - /// convert an API event name to the event ID as used by SvxMacroItem - USHORT mapNameToEventID(const ::rtl::OUString& rName) const; - - /// convert an event ID to an API event name - ::rtl::OUString mapEventIDToName(USHORT nPoolID) const; - - /// get the event ID for the name; return 0 if not supported - USHORT getMacroID(const ::rtl::OUString& rName) const; - - /// create PropertyValues and Any from macro - void getAnyFromMacro( - ::com::sun::star::uno::Any& aAny, // Any to be filled by Macro values - const SvxMacro& rMacro); - - /// create macro from PropertyValues (in an Any) - void getMacroFromAny( - SvxMacro& aMacro, // reference to be filled by Any - const ::com::sun::star::uno::Any& rAny) - throw ( - ::com::sun::star::lang::IllegalArgumentException); - -}; - - - - -/** - * SwEventDescriptor: Implement the XNameReplace that is delivered by - * the XEventsSupplier::getEvents() method. The SwEventDescriptor has - * to be subclassed to implement the events for a specific - * objects. The subclass has to - * 1) supply the super class constructor with a list of known events (item IDs) - * 2) supply the super class constructor with a reference of it's parent object - * (to prevent destruction) - * 3) implement getItem() and setItem(...) methods. - * - * If no object is available to which the SwEventDescriptor can attach itself, - * the class SwDetachedEventDescriptor should be used. - */ -class SwEventDescriptor : public SwBaseEventDescriptor -{ - /// keep reference to parent to prevent it from being destroyed - ::com::sun::star::uno::Reference< - ::com::sun::star::uno::XInterface > xParentRef; - -public: - - SwEventDescriptor(::com::sun::star::uno::XInterface& rParent, - const USHORT* aMacroItems); - - virtual ~SwEventDescriptor(); - - -protected: - - - virtual void replaceByName( - const USHORT nEvent, /// item ID of event - const SvxMacro& rMacro) /// event (will be copied) - throw( - ::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::container::NoSuchElementException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException); - - virtual void getByName( - SvxMacro& rMacros, /// macro to be filled with values - const USHORT nEvent ) /// item ID of event - throw( - ::com::sun::star::container::NoSuchElementException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException); - - - /// Get the SvxMacroItem from the parent. - /// must be implemented by subclass - virtual const SvxMacroItem& getMacroItem() = 0; - - /// Set the SvxMacroItem at the parent. - /// must be implemented by subclass - virtual void setMacroItem(const SvxMacroItem& rItem) = 0; -}; - - -/** - * SwDetachedEventDescriptor: - */ -class SwDetachedEventDescriptor : public SwBaseEventDescriptor -{ - // the macros; aMacros[i] is the value for aSupportedMacroItemIDs[i] - SvxMacro** aMacros; - - const ::rtl::OUString sImplName; - -public: - - SwDetachedEventDescriptor(const USHORT* aMacroItems); - - virtual ~SwDetachedEventDescriptor(); - - //XServiceInfo - virtual rtl::OUString SAL_CALL getImplementationName(void) - throw( ::com::sun::star::uno::RuntimeException ); - -protected: - - sal_Int16 getIndex(const USHORT nID); - - virtual void replaceByName( - const USHORT nEvent, /// item ID of event - const SvxMacro& rMacro) /// event (will be copied) - throw( - ::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::container::NoSuchElementException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException); - - virtual void getByName( - SvxMacro& rMacro, /// macro to be filled - const USHORT nEvent ) /// item ID of event - throw( - ::com::sun::star::container::NoSuchElementException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException); - - /// do we have an event? - /// return sal_True: we have a macro for the event - /// return sal_False: no macro; getByName() will return an empty macro - /// IllegalArgumentException: the event is not supported - virtual const sal_Bool hasByName( - const USHORT nEvent ) /// item ID of event - throw( - ::com::sun::star::lang::IllegalArgumentException); - -}; - -class SwHyperlinkEventDescriptor : public SwDetachedEventDescriptor +class SwHyperlinkEventDescriptor : public SvDetachedEventDescriptor { const ::rtl::OUString sImplName; @@ -369,31 +104,13 @@ public: }; -class SwMacroTableEventDescriptor : public SwDetachedEventDescriptor -{ -public: - - SwMacroTableEventDescriptor(); - SwMacroTableEventDescriptor(const SvxMacroTableDtor& aFmt); - - virtual ~SwMacroTableEventDescriptor(); - - void copyMacrosFromTable(const SvxMacroTableDtor& aFmt); - void copyMacrosIntoTable(SvxMacroTableDtor& aFmt); -}; - - -// -// classes that implement the connection to specific UNO objects -// - // SwEventDescriptor for // 1) SwXTextFrame // 2) SwXGraphicObject // 3) SwXEmbeddedObject // All these objects are an SwXFrame, so they can use a common implementation -class SwFrameEventDescriptor : public SwEventDescriptor +class SwFrameEventDescriptor : public SvEventDescriptor { ::rtl::OUString sSwFrameEventDescriptor; @@ -412,9 +129,10 @@ public: protected: virtual void setMacroItem(const SvxMacroItem& rItem); virtual const SvxMacroItem& getMacroItem(); + virtual sal_uInt16 getMacroItemWhich() const; }; -class SwFrameStyleEventDescriptor : public SwEventDescriptor +class SwFrameStyleEventDescriptor : public SvEventDescriptor { ::rtl::OUString sSwFrameStyleEventDescriptor; @@ -431,6 +149,7 @@ public: protected: virtual void setMacroItem(const SvxMacroItem& rItem); virtual const SvxMacroItem& getMacroItem(); + virtual sal_uInt16 getMacroItemWhich() const; }; |