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_XInplaceClient_idl__
28#define __com_sun_star_embed_XInplaceClient_idl__
29
30#ifndef __com_sun_star_uno_XInterface_idl__
31#include <com/sun/star/uno/XInterface.idl>
32#endif
33
34#ifndef __com_sun_star_container_XIndexAccess_idl__
35#include <com/sun/star/container/XIndexAccess.idl>
36#endif
37
38#ifndef __com_sun_star_frame_XDispatchProvider_idl__
39#include <com/sun/star/frame/XDispatchProvider.idl>
40#endif
41
42#ifndef __com_sun_star_frame_XLayoutManager_idl__
43#include <com/sun/star/frame/XLayoutManager.idl>
44#endif
45
46#ifndef __com_sun_star_awt_XWindow_idl__
47#include <com/sun/star/awt/XWindow.idl>
48#endif
49
50#ifndef __com_sun_star_awt_Rectangle_idl__
51#include <com/sun/star/awt/Rectangle.idl>
52#endif
53
54#ifndef __com_sun_star_awt_Size_idl__
55#include <com/sun/star/awt/Size.idl>
56#endif
57
58#ifndef __com_sun_star_awt_KeyEvent_idl__
59#include <com/sun/star/awt/KeyEvent.idl>
60#endif
61
62#ifndef __com_sun_star_embed_WrongStateException_idl__
63#include <com/sun/star/embed/WrongStateException.idl>
64#endif
65
66
67//============================================================================
68
69 module com {  module sun {  module star {  module embed {
70
71//============================================================================
72/** represents common functionality for inplace clients.
73 */
74interface XInplaceClient: com::sun::star::uno::XInterface
75{
76	//------------------------------------------------------------------------
77    /** checks if the container can activate the object inplace.
78
79		@return
80			<TRUE/> the container can activate the object inplace.
81			<FALSE/> otherwise.
82	 */
83	boolean canInplaceActivate();
84
85	//------------------------------------------------------------------------
86    /** notifies container through the client that the object is to be
87		inplace activated.
88
89        @throws com::sun::star::embed::WrongStateException
90			the container is not ready for activation
91	 */
92	void activatingInplace()
93		raises( ::com::sun::star::embed::WrongStateException );
94
95	//------------------------------------------------------------------------
96    /** notifies container through the client that the object is to be
97		UI-activated.
98
99        @throws com::sun::star::embed::WrongStateException
100			the container is not ready for activation
101	 */
102	void activatingUI()
103		raises( ::com::sun::star::embed::WrongStateException );
104
105	//------------------------------------------------------------------------
106    /** notifies container through the client that the object is deactivated.
107
108        @throws com::sun::star::embed::WrongStateException
109			the container is not ready for deactivation
110	 */
111	void deactivatedInplace()
112		raises( ::com::sun::star::embed::WrongStateException );
113
114	//------------------------------------------------------------------------
115    /** notifies container through the client that the object is
116		UI-deactivated.
117
118		<p>
119		After this notification the container can restore it's own UI and take focus.
120		</p>
121
122        @throws com::sun::star::embed::WrongStateException
123			the container is not ready for deactivation
124	 */
125	void deactivatedUI()
126		raises( ::com::sun::star::embed::WrongStateException );
127
128	//------------------------------------------------------------------------
129	/** allows to retrieve the
130		<type scope="com::sun::star::frame">LayoutManager</type> of the
131		container.
132
133		@return
134			reference to object representing the
135			<type scope="com::sun::star::frame">LayoutManager</type> of the
136			container
137
138        @throws com::sun::star::embed::WrongStateException
139		    the object is in unexpected state to make such request
140	 */
141	::com::sun::star::frame::XLayoutManager getLayoutManager()
142		raises( ::com::sun::star::embed::WrongStateException );
143
144	//------------------------------------------------------------------------
145	/** allows to retrieve the container's dispatch provider.
146
147		@return
148			reference to object implementing the
149			<type scope="com::sun::star::frame">XDispatchProvider</type>
150
151        @throws com::sun::star::embed::WrongStateException
152		    the object is in unexpected state to make such request
153	 */
154	::com::sun::star::frame::XDispatchProvider getInplaceDispatchProvider()
155		raises( ::com::sun::star::embed::WrongStateException );
156
157	//------------------------------------------------------------------------
158    /** gets the inplace object position rectangle.
159
160		<p>
161		The rectangle is provided in object's parent window coordinates in
162		pixels. The intersection of position and clip rectangles specifies
163		the visible part of the object. In case the position window has a size
164		that is bigger than object's size, the object should either scale or
165		deactivate.
166		</p>
167
168        @return
169			specifies a new position rectangle
170
171        @throws com::sun::star::embed::WrongStateException
172		    the object is in unexpected state to make such request
173	 */
174	::com::sun::star::awt::Rectangle getPlacement()
175		raises( ::com::sun::star::embed::WrongStateException );
176
177	//------------------------------------------------------------------------
178    /** gets the inplace object clip rectangle.
179
180		<p>
181		The rectangle is provided in object's parent window coordinates in
182		pixels. The intersection of position and clip rectangles specifies
183		the visible part of the object.
184		</p>
185
186		@return
187			specifies a new clip rectangle
188
189        @throws com::sun::star::embed::WrongStateException
190		    the object is in unexpected state to make such request
191	 */
192	::com::sun::star::awt::Rectangle getClipRectangle()
193		raises( ::com::sun::star::embed::WrongStateException );
194
195	//------------------------------------------------------------------------
196	/** provides accelerator table the object whants to use while it is
197		inplace active.
198
199		@param aKeys
200			an accelerator table from object
201
202		@throws com::sun::star::embed::WrongStateException
203			the object is in unexpected state
204	*/
205	void translateAccelerators( [in] sequence< ::com::sun::star::awt::KeyEvent > aKeys )
206		raises( ::com::sun::star::embed::WrongStateException );
207
208	//------------------------------------------------------------------------
209    /** scrolls the object.
210
211		@param aOffset
212			scrolls the object to specified offset in pixels
213
214        @throws com::sun::star::embed::WrongStateException
215		    the object is in unexpected state
216	 */
217	void scrollObject( [in] ::com::sun::star::awt::Size aOffset )
218		raises( ::com::sun::star::embed::WrongStateException );
219
220	//------------------------------------------------------------------------
221    /** notifies the container that the position of the object is changed.
222
223        @param aPosRect
224			specifies a new position rectangle
225
226        @throws com::sun::star::embed::WrongStateException
227		    the object state is not correct
228
229        @throws com::sun::star::uno::Exception
230			in case of other problems
231	 */
232	void changedPlacement( [in] ::com::sun::star::awt::Rectangle aPosRect )
233		raises( ::com::sun::star::embed::WrongStateException,
234		        ::com::sun::star::uno::Exception );
235};
236
237//============================================================================
238
239}; }; }; };
240
241#endif
242
243