1/************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23#ifndef __com_sun_star_script_XEventAttacherManager_idl__ 24#define __com_sun_star_script_XEventAttacherManager_idl__ 25 26#ifndef __com_sun_star_uno_XInterface_idl__ 27#include <com/sun/star/uno/XInterface.idl> 28#endif 29 30#ifndef __com_sun_star_script_ScriptEventDescriptor_idl__ 31#include <com/sun/star/script/ScriptEventDescriptor.idl> 32#endif 33 34#ifndef __com_sun_star_lang_IllegalArgumentException_idl__ 35#include <com/sun/star/lang/IllegalArgumentException.idl> 36#endif 37 38#ifndef __com_sun_star_lang_ServiceNotRegisteredException_idl__ 39#include <com/sun/star/lang/ServiceNotRegisteredException.idl> 40#endif 41 42#ifndef __com_sun_star_script_XScriptListener_idl__ 43#include <com/sun/star/script/XScriptListener.idl> 44#endif 45 46 47//============================================================================= 48 49 module com { module sun { module star { module script { 50 51//============================================================================= 52/** registers listeners for specified events. 53 */ 54published interface XEventAttacherManager: com::sun::star::uno::XInterface 55{ 56 //------------------------------------------------------------------------- 57 /** registers one event for an object identified by its index. 58 59 <p>If any object is attached under this index, then this 60 event is attached automatically.</p> 61 <p>Exceptions of type 62 <type scope="com::sun::star::beans">IntrospectionException</type> and 63 <type scope="com::sun::star::script">CannotCreateAdapterException</type> 64 that can be thrown by methods of <type>XEventAttacher</type> are caught 65 and ignored.</p> 66 */ 67 void registerScriptEvent( [in] long nIndex, 68 [in] com::sun::star::script::ScriptEventDescriptor aScriptEvent ) 69 raises( com::sun::star::lang::IllegalArgumentException ); 70 71 //------------------------------------------------------------------------- 72 /** registers several events for an object identified by its index. 73 74 <p>The result is the same as if the method <member>registerScriptEvent 75 </member> was called once for each <type>ScriptEventDescriptor</type> 76 in the sequence.</p> 77 78 <p>If any object is attached under this index, then this 79 event is attached automatically (see <member>attach</member>)</p> 80 81 <p>Exceptions of type 82 <type scope="com::sun::star::beans">IntrospectionException</type> and 83 <type scope="com::sun::star::script">CannotCreateAdapterException</type> 84 that can be thrown by methods of <type>XEventAttacher</type> are caught 85 and ignored.</p> 86 87 @see registerScriptEvent 88 @see attach 89 */ 90 void registerScriptEvents( [in] long nIndex, 91 [in] sequence<com::sun::star::script::ScriptEventDescriptor> aScriptEvents ) 92 raises( com::sun::star::lang::IllegalArgumentException ); 93 94 //------------------------------------------------------------------------- 95 /** revokes the registration of an event. 96 97 <p>The parameters <var>ListenerType</var> and 98 <var>EventMethod</var> are equivalent to the first two 99 members of the <type>ScriptEventDescriptor</type> 100 used to register events. If this event at this index has 101 been attached to any object, it is detached automatically 102 (see <member>attach</member>).</p> 103 104 <p>Exceptions of type 105 <type scope="com::sun::star::beans">IntrospectionException</type> and 106 <type scope="com::sun::star::script">CannotCreateAdapterException</type> 107 that can be thrown by methods of <type>XEventAttacher</type> are caught 108 and ignored.</p> 109 110 @see attach 111 */ 112 void revokeScriptEvent( [in] long nIndex, 113 [in] string aListenerType, 114 [in] string aEventMethod, 115 [in] string aRemoveListenerParam ) 116 raises( com::sun::star::lang::IllegalArgumentException ); 117 118 //------------------------------------------------------------------------- 119 /** revokes all events which are registered for the given index. 120 121 <p>If the events at this index have been attached to any 122 object, they are detached automatically. 123 (see <member>attach</member>).</p> 124 125 @see attach 126 */ 127 void revokeScriptEvents( [in] long nIndex ) 128 raises( com::sun::star::lang::IllegalArgumentException ); 129 130 //------------------------------------------------------------------------- 131 /** creates an empty entry at the given position. 132 133 <p>The index <var>n</var> of all entries with <code>n &gt;= 134 nIndex</code> will be increased by one.</p> 135 */ 136 void insertEntry( [in] long nIndex ) 137 raises( com::sun::star::lang::IllegalArgumentException ); 138 139 //------------------------------------------------------------------------- 140 /** removes the entry at the given position. 141 142 <p>If any events are registered at this index, they will 143 be revoked, too. So if the events at this index have been 144 attached to any object they are detached automatically. 145 (see <member>attach</member>).</p> 146 147 @see attach 148 */ 149 void removeEntry( [in] long nIndex ) 150 raises( com::sun::star::lang::IllegalArgumentException ); 151 152 //------------------------------------------------------------------------- 153 /** @eturns 154 all events registered for the given object index. 155 156 @param Index 157 an index previously inserted with the method insertEntry. 158 159 @throws IllegalArgumentException 160 if Index is not valid. 161 */ 162 sequence<com::sun::star::script::ScriptEventDescriptor> getScriptEvents( [in] long Index ) 163 raises( com::sun::star::lang::IllegalArgumentException ); 164 165 //------------------------------------------------------------------------- 166 /** attaches all the <type>ScriptEvent</type>s which are registered 167 for the given index to the given object. 168 169 <p>Exceptions of type 170 <type scope="com::sun::star::beans">IntrospectionException</type> and 171 <type scope="com::sun::star::script">CannotCreateAdapterException</type> 172 that can be thrown by methods of <type>XEventAttacher</type> are caught 173 and ignored.</p> 174 */ 175 void attach( [in] long nIndex, 176 [in] com::sun::star::uno::XInterface xObject, 177 [in] any aHelper ) 178 raises( com::sun::star::lang::IllegalArgumentException, 179 com::sun::star::lang::ServiceNotRegisteredException ); 180 181 //------------------------------------------------------------------------- 182 /** detaches all the <type>ScriptEvent</type>s from the given object 183 which are registered at this object for the given index. 184 185 <p>Exceptions of type 186 <type scope="com::sun::star::beans">IntrospectionException</type> and 187 <type scope="com::sun::star::script">CannotCreateAdapterException</type> 188 that can be thrown by methods of <type>XEventAttacher</type> are caught 189 and ignored.</p> 190 */ 191 void detach( [in] long nIndex, 192 [in] com::sun::star::uno::XInterface xObject ) 193 raises( com::sun::star::lang::IllegalArgumentException ); 194 195 //------------------------------------------------------------------------- 196 /** adds an <type>XScriptListener</type> that will be notified when an 197 event takes place. For that a 198 <type>ScriptEventDescriptor</type> is registered at and 199 attached to an object by an <type>XEventAttacherManager</type>. 200 201 <p>It is suggested to allow multiple registration of the same listener, 202 thus for each time a listener is added, it has to be removed. 203 204 @see removeScriptListener 205 */ 206 void addScriptListener( [in] com::sun::star::script::XScriptListener xListener ) 207 raises( com::sun::star::lang::IllegalArgumentException ); 208 209 //------------------------------------------------------------------------- 210 /** removes a <type>XScriptListener</type> from the listener list. 211 212 <p>Nothing happens if the listener is not registered. 213 214 <p>It is suggested to allow multiple registration of the same listener, 215 thus for each time a listener is added, it has to be removed. 216 217 @see addScriptListener 218 */ 219 void removeScriptListener( [in] com::sun::star::script::XScriptListener Listener ) 220 raises( com::sun::star::lang::IllegalArgumentException ); 221 222}; 223 224//============================================================================= 225 226}; }; }; }; 227 228#endif 229