2 #ifndef __FRAMEWORK_RECORDING_DISPATCHRECORDER_HXX_
3 #define __FRAMEWORK_RECORDING_DISPATCHRECORDER_HXX_
5 /** Attention: stl headers must(!) be included at first. Otherwhise it can make trouble
6 with solaris headers ...
11 #include <threadhelp/threadhelpbase.hxx>
12 #include <macros/xinterface.hxx>
13 #include <macros/xtypeprovider.hxx>
14 #include <macros/xserviceinfo.hxx>
15 #include <macros/debug.hxx>
16 #include <macros/generic.hxx>
18 #include <rtl/ustring.hxx>
19 #include <rtl/ustrbuf.hxx>
20 #include <com/sun/star/lang/XTypeProvider.hpp>
21 #include <com/sun/star/frame/XDispatchRecorder.hpp>
22 #include <com/sun/star/frame/DispatchStatement.hpp>
23 #include <com/sun/star/container/XIndexReplace.hpp>
24 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
25 #include <com/sun/star/util/URL.hpp>
26 #include <com/sun/star/beans/PropertyValue.hpp>
27 #include <com/sun/star/uno/RuntimeException.hdl>
28 #include <com/sun/star/script/XTypeConverter.hpp>
29 #include <cppuhelper/weak.hxx>
33 typedef ::std::vector
< com::sun::star::frame::DispatchStatement
> DispatchStatementList
;
35 class DispatchRecorder
36 : private ThreadHelpBase
37 , public css::lang::XTypeProvider
38 , public css::lang::XServiceInfo
39 , public css::frame::XDispatchRecorder
40 , public css::container::XIndexReplace
41 , public ::cppu::OWeakObject
45 css::uno::Reference
< css::lang::XMultiServiceFactory
> m_xSMGR
;
46 DispatchStatementList m_aStatements
;
47 sal_Int32 m_nRecordingID
;
48 css::uno::Reference
< css::script::XTypeConverter
> m_xConverter
;
52 DispatchRecorder( const css::uno::Reference
< css::lang::XMultiServiceFactory
>& xSMGR
);
55 // XInterface, XTypeProvider, XServiceInfo
56 FWK_DECLARE_XINTERFACE
57 FWK_DECLARE_XTYPEPROVIDER
61 virtual void SAL_CALL
startRecording ( const css::uno::Reference
< css::frame::XFrame
>& xFrame
) throw( css::uno::RuntimeException
);
62 virtual void SAL_CALL
recordDispatch ( const css::util::URL
& aURL
, const css::uno::Sequence
< css::beans::PropertyValue
>& lArguments
) throw( css::uno::RuntimeException
);
63 virtual void SAL_CALL
recordDispatchAsComment( const css::util::URL
& aURL
, const css::uno::Sequence
< css::beans::PropertyValue
>& lArguments
) throw( css::uno::RuntimeException
);
64 virtual void SAL_CALL
endRecording () throw( css::uno::RuntimeException
);
65 virtual ::rtl::OUString SAL_CALL
getRecordedMacro () throw( css::uno::RuntimeException
);
67 virtual com::sun::star::uno::Type SAL_CALL
getElementType() throw (::com::sun::star::uno::RuntimeException
);
69 virtual sal_Bool SAL_CALL
hasElements() throw (::com::sun::star::uno::RuntimeException
);
71 virtual sal_Int32 SAL_CALL
getCount() throw (::com::sun::star::uno::RuntimeException
);
73 virtual com::sun::star::uno::Any SAL_CALL
getByIndex(sal_Int32
) throw (com::sun::star::uno::RuntimeException
, com::sun::star::lang::WrappedTargetException
, com::sun::star::lang::IndexOutOfBoundsException
);
75 virtual void SAL_CALL
replaceByIndex(sal_Int32
, const com::sun::star::uno::Any
&) throw (::com::sun::star::lang::IllegalArgumentException
, ::com::sun::star::lang::IndexOutOfBoundsException
, ::com::sun::star::lang::WrappedTargetException
, ::com::sun::star::uno::RuntimeException
);
79 void SAL_CALL
implts_recordMacro( const ::rtl::OUString
& aURL
,
80 const css::uno::Sequence
< css::beans::PropertyValue
>& lArguments
,
81 sal_Bool bAsComment
, ::rtl::OUStringBuffer
& );
82 void SAL_CALL
AppendToBuffer( css::uno::Any aValue
, ::rtl::OUStringBuffer
& aArgumentBuffer
);
84 }; // class DispatcRecorder
86 } // namespace framework
88 #endif // define __FRAMEWORK...