4 //====================================================================
5 #include <com/sun/star/beans/PropertyValue.hpp>
6 #include <com/sun/star/uno/Sequence.hxx>
8 #include <tools/string.hxx>
15 //====================================================================
17 class SfxMacroStatement
19 USHORT nSlotId
; // ausgef"uhrte Slot-Id oder 0, wenn manuell
20 ::com::sun::star::uno::Sequence
< ::com::sun::star::beans::PropertyValue
> aArgs
; // aktuelle Parameter, falls nSlotId != 0
21 String aStatement
; // Statement in BASIC-Syntax (ggf. mit CR/LF)
22 BOOL bDone
; // auskommentieren wenn kein Done() gerufen
23 void* pDummy
; // f"ur alle F"alle zum kompatibel bleiben
27 void GenerateNameAndArgs_Impl( SfxMacro
*pMacro
,
30 ::com::sun::star::uno::Sequence
< ::com::sun::star::beans::PropertyValue
>& aArgs
);
34 SfxMacroStatement( const SfxMacroStatement
&rOrig
);
36 SfxMacroStatement( const String
&rTarget
,
39 ::com::sun::star::uno::Sequence
< ::com::sun::star::beans::PropertyValue
>& aArgs
);
41 SfxMacroStatement( const SfxShell
&rShell
,
42 const String
&rTarget
,
46 ::com::sun::star::uno::Sequence
< ::com::sun::star::beans::PropertyValue
>& aArgs
);
48 SfxMacroStatement( const String
&rStatment
);
51 USHORT
GetSlotId() const;
52 const ::com::sun::star::uno::Sequence
< ::com::sun::star::beans::PropertyValue
>& GetArgs() const;
54 const String
& GetStatement() const;
57 //--------------------------------------------------------------------
59 inline USHORT
SfxMacroStatement::GetSlotId() const
63 Liefert die Slot-Id die das Statement beim Abspielen wieder ausf"uhren
64 soll oder 0, falls das Statement manuell (<SFX_SLOT_RECORDMANUAL>)
72 //--------------------------------------------------------------------
74 inline const ::com::sun::star::uno::Sequence
< ::com::sun::star::beans::PropertyValue
>& SfxMacroStatement::GetArgs() const
78 Liefert die Parameter mit denen Statement ausgef"uhrt wurde oder 0,
79 falls das Statement manuell (<SFX_SLOT_RECORDMANUAL>) aufgezeichnet
82 Der R"uckgabewert geh"ort dem SfxMacroStatement und ist nur im
83 unmittelbar aufrufenden Stackframe g"ultig.
90 //--------------------------------------------------------------------
92 inline BOOL
SfxMacroStatement::IsDone() const
96 Liefert TRUE, wenn das Statement wirklich ausgef"uhrt wurde,
97 also z.B. nicht vom Benutzer abgebrochen wurde. Wurde es nicht
98 wirklich ausgef"uhrt, dann wird es im BASIC-Source auskommentiert.
105 //--------------------------------------------------------------------
109 Liefert das Statement in BASIC-Syntax. Wurde das Makro manuell erzeugt,
110 wird genau der im Konstruktor angegebene String zur"uckgegeben, sonst
111 der generierte Source-Code.
113 Bei beiden Arten ist es m"oglich, da\s mehrere BASIC-Statements, jeweils
114 mit CR/LF getrennt in dem String enthalten sind, da ein SFx-Statement
115 ggf. in mehrere BASIC-Statements "ubersetzt wird.
117 Statements f"ur die nicht <SfxRequest::Done()> gerufen wurde, werden
118 mit einem vorangestellten 'rem' gekennzeichnet.
121 inline const String
& SfxMacroStatement::GetStatement() const
126 //====================================================================
132 Mit diesem enum wird bestimmt, ob eine <SfxMacro>-Instanz zum
133 absoluten oder relativen Recorden erzeugt wurde, oder um ein
134 existierendendes Makro zu Referenzieren.
138 SFX_MACRO_EXISTING
, /* es handelt sich um ein bereits
139 exitistierendes Makro, welches lediglich
142 SFX_MACRO_RECORDINGABSOLUTE
,/* dieses Makro soll aufgezeichnet werden,
143 wobei die betroffenen Objekte m"oglichst
144 direkt angesprochen werden sollen
145 (Beispiel: "[doc.sdc]") */
147 SFX_MACRO_RECORDINGRELATIVE
/* dieses Makro soll aufgezeichnet werden,
148 wobei die betroffenen Objekte so
149 angesprochen werden sollen, da\s sich das
150 Abspielen auf die dann g"ultige Selektion
151 bezieht (Beispiel: "ActiveDocument()") */
154 //====================================================================
160 "Uber diese Klasse (bzw. genaugenommen ihre Subklassen) wird zum
161 einen die Lokation einer BASIC-Funktion (also in welcher Library,
162 in welchem Modul sowie der Funktions-Name) beschrieben, als auch
163 ein aufzuzeichnendes Makro w"ahrend der Aufzeichnung zwischen-
171 SfxMacro( SfxMacroMode eMode
= SFX_MACRO_RECORDINGRELATIVE
);
174 SfxMacroMode
GetMode() const;
175 void Record( SfxMacroStatement
*pStatement
);
176 void Replace( SfxMacroStatement
*pStatement
);
178 const SfxMacroStatement
*GetLastStatement() const;
180 String
GenerateSource() const;