1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27#ifndef __com_sun_star_embed_XStateChangeListener_idl__
28#define __com_sun_star_embed_XStateChangeListener_idl__
29
30#ifndef __com_sun_star_lang_XEventListener_idl__
31#include <com/sun/star/lang/XEventListener.idl>
32#endif
33
34#ifndef __com_sun_star_lang_EventObject_idl__
35#include <com/sun/star/lang/EventObject.idl>
36#endif
37
38#ifndef __com_sun_star_embed_WrongStateException_idl__
39#include <com/sun/star/embed/WrongStateException.idl>
40#endif
41
42//============================================================================
43
44module com {  module sun {  module star {  module embed {
45
46//============================================================================
47
48/** makes it possible to receive events when an embedded object changes it's
49	state.
50 */
51published interface XStateChangeListener: com::sun::star::lang::XEventListener
52{
53	//------------------------------------------------------------------------
54	/** is called just before the object changes state.
55
56		<p>
57		Actually the listener can try to complain about state changing, but
58		it is up to object to decide whether the state change can be
59		prevented. Anyway the possibility to complain must be used very
60		carefully.
61		</p>
62
63		@param aEvent
64			specifies the object that is going to change own state
65
66		@param nOldState
67			specifies the old state of the object
68
69		@param nNewState
70			specifies the new state of the object
71
72		@throws ::com::sun::star::embed::WrongStateException
73			the state change is unexpected by listener
74	 */
75	void changingState( [in] com::sun::star::lang::EventObject aEvent,
76						[in] long nOldState,
77						[in] long nNewState )
78		raises( ::com::sun::star::embed::WrongStateException );
79
80	//------------------------------------------------------------------------
81	/** is called after the object has changed state.
82
83		@param aEvent
84			specifies the object that has changed own state
85
86		@param nOldState
87			specifies the old state of the object
88
89		@param nNewState
90			specifies the new state of the object
91	 */
92	void stateChanged( [in] com::sun::star::lang::EventObject aEvent,
93						[in] long nOldState,
94						[in] long nNewState );
95};
96
97//============================================================================
98
99}; }; }; };
100
101#endif
102
103