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_frame_Controller_idl__
24#define __com_sun_star_frame_Controller_idl__
25
26#ifndef __com_sun_star_frame_XController_idl__
27#include <com/sun/star/frame/XController.idl>
28#endif
29
30#ifndef __com_sun_star_frame_XDispatchProvider_idl__
31#include <com/sun/star/frame/XDispatchProvider.idl>
32#endif
33
34#ifndef __com_sun_star_awt_XWindow_idl__
35#include <com/sun/star/awt/XWindow.idl>
36#endif
37
38#ifndef __com_sun_star_ui_XContextMenuInterception_idl__
39#include <com/sun/star/ui/XContextMenuInterception.idl>
40#endif
41
42#ifndef __com_sun_star_awt_XUserInputInterception_idl__
43#include <com/sun/star/awt/XUserInputInterception.idl>
44#endif
45
46#ifndef __com_sun_star_view_XSelectionSupplier_idl__
47#include <com/sun/star/view/XSelectionSupplier.idl>
48#endif
49
50#ifndef __com_sun_star_datatransfer_XTransferableSupplier_idl__
51#include <com/sun/star/datatransfer/XTransferableSupplier.idl>
52#endif
53
54//=============================================================================
55
56 module com {  module sun {  module star {  module frame {
57
58//=============================================================================
59/** is an abstract service for a component which offers a deeper integration of
60    desktop components than a <type scope="com::sun::star::awt">XWindow</type>
61    can offer
62
63    <p>
64    Such components can be loaded into a <type>Frame</type> inside a <type>Desktop</type>
65    environment. A controller is a richer component then a pure window, but full featured
66    components need a <type>XModel</type> interface too.
67    <br>
68    (see service <type scope="com::sun::star::document">OfficeDocument</type> for further information)
69    <p>
70
71    @see com::sun::star::document::OfficeDocument
72 */
73published service Controller
74{
75    //-------------------------------------------------------------------------
76    /** with this interface, components viewed in a <type>Frame</type> can serve
77        events (by supplying dispatches)
78     */
79    interface XController;
80
81    //-------------------------------------------------------------------------
82    /** for certain functions which are useful at the UI
83
84        <p>
85        Mostly used by the <type>Frame</type> service, which contains this
86        controller object. There will be an interception mechanism for dispatches
87        available too.
88        </p>
89
90        @see XDispatch
91        @see XDispatchProviderInterception
92     */
93    interface XDispatchProvider;
94
95    //-------------------------------------------------------------------------
96    /** this interface enables the controller to get interceptors registered that
97        change context menue or prevent them from beeing executed
98
99        <p>
100        Don't mix it with <type>XDispatchProviderInterception</type> which
101        intercept calls of <member>XDispatch::dispatch()</member>.
102        </p>
103     */
104    [optional] interface com::sun::star::ui::XContextMenuInterception;
105
106    //-------------------------------------------------------------------------
107    /** makes it possible to intercept keyboard and mouse input.
108     */
109    [optional] interface com::sun::star::awt::XUserInputInterception;
110
111    //-------------------------------------------------------------------------
112    /** makes it possible to access and change the selection in a view
113     */
114    [optional] interface com::sun::star::view::XSelectionSupplier;
115
116    //-------------------------------------------------------------------------
117    /** makes it possible to work with clipboard data
118     */
119    [optional] interface com::sun::star::datatransfer::XTransferableSupplier;
120};
121
122//=============================================================================
123
124}; }; }; };
125
126#endif
127