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
24#ifndef __com_sun_star_ui_XDockingAreaAcceptor_idl__
25#define __com_sun_star_ui_XDockingAreaAcceptor_idl__
26
27#ifndef __com_sun_star_uno_XInterface_idl__
28#include <com/sun/star/uno/XInterface.idl>
29#endif
30
31#ifndef __com_sun_star_awt_Rectangle_idl__
32#include <com/sun/star/awt/Rectangle.idl>
33#endif
34
35#ifndef __com_sun_star_awt_XWindow_idl__
36#include <com/sun/star/awt/XWindow.idl>
37#endif
38
39//=============================================================================
40
41module com { module sun { module star { module ui {
42
43//=============================================================================
44
45/** this interface enables developer to implement different docking area
46    acceptors which are used by the frame based layout manager.
47
48    <p>
49    A docking area acceptor is responsible to control the docking area of a
50    container window. As OLE for example supports inplace and outplace editing,
51    there are different parts of code responsible for the container window.
52    This interface enables developer to make support implementations for these
53    scenarios.
54
55    @see com::sun::star::frame::XFrame
56    </p>
57
58    @since OpenOffice 2.0
59*/
60
61
62published interface XDockingAreaAcceptor : com::sun::star::uno::XInterface
63{
64    /** provide the container window where the layout manager can request border
65        space for docking windows.
66
67        <p>
68        Additionally the layout manager uses this window to create its own child
69        windows for docking purposes.
70        </p>
71    */
72    com::sun::star::awt::XWindow getContainerWindow();
73
74    /** method to ask an implementation if the provided space for docking windows
75        is available or not.
76
77        <p>
78        The <type scope="com::sun::star::awt">Rectangle</type> parameter is
79        filled by the caller with pixel data. The members of
80        <type scope="com::sun::star::awt">Rectangle</type> must be filled
81        as following:
82        <ul>
83            <li>X      = requested area on left side (in pixel)</li>
84            <li>Y      = requested area on top side (in pixel)</li>
85            <li>Width  = requested area on right side (in pixel)</li>
86            <li>Height = requested area on bottom side (in pixel)</li>
87        </ul>
88        </p>
89    */
90    boolean requestDockingAreaSpace( [in] com::sun::star::awt::Rectangle RequestedSpace );
91
92    /** method to brief an implementation that we need new border space.
93
94        <p>
95        The callee must size its document window so that we have the amount
96        of space we have provided. The <type scope="com::sun::star::awt">Rectangle</type>
97        parameter is filled by the caller with pixel data. The members of
98        <type scope="com::sun::star::awt">Rectangle</type> must be filled as
99        following:
100        <ul>
101            <li>X      = new area on left side (in pixel)</li>
102            <li>Y      = new area on top side (in pixel)</li>
103            <li>Width  = new area on right side (in pixel)</li>
104            <li>Height = new area on bottom side (in pixel)</li>
105        </ul>
106        </p>
107    */
108    void setDockingAreaSpace( [in] com::sun::star::awt::Rectangle BorderSpace );
109};
110
111}; }; }; };
112
113//=============================================================================
114
115#endif
116