xref: /aoo4110/main/offapi/com/sun/star/frame/XDesktop.idl (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski/**************************************************************
2*b1cdbd2cSJim Jagielski *
3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski *
11*b1cdbd2cSJim Jagielski *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski * under the License.
19*b1cdbd2cSJim Jagielski *
20*b1cdbd2cSJim Jagielski *************************************************************/
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_frame_XDesktop_idl__
24*b1cdbd2cSJim Jagielski#define __com_sun_star_frame_XDesktop_idl__
25*b1cdbd2cSJim Jagielski
26*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_uno_XInterface_idl__
27*b1cdbd2cSJim Jagielski#include <com/sun/star/uno/XInterface.idl>
28*b1cdbd2cSJim Jagielski#endif
29*b1cdbd2cSJim Jagielski
30*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_frame_XTerminateListener_idl__
31*b1cdbd2cSJim Jagielski#include <com/sun/star/frame/XTerminateListener.idl>
32*b1cdbd2cSJim Jagielski#endif
33*b1cdbd2cSJim Jagielski
34*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_container_XEnumerationAccess_idl__
35*b1cdbd2cSJim Jagielski#include <com/sun/star/container/XEnumerationAccess.idl>
36*b1cdbd2cSJim Jagielski#endif
37*b1cdbd2cSJim Jagielski
38*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_lang_XComponent_idl__
39*b1cdbd2cSJim Jagielski#include <com/sun/star/lang/XComponent.idl>
40*b1cdbd2cSJim Jagielski#endif
41*b1cdbd2cSJim Jagielski
42*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_frame_XFrame_idl__
43*b1cdbd2cSJim Jagielski#include <com/sun/star/frame/XFrame.idl>
44*b1cdbd2cSJim Jagielski#endif
45*b1cdbd2cSJim Jagielski
46*b1cdbd2cSJim Jagielski
47*b1cdbd2cSJim Jagielski//=============================================================================
48*b1cdbd2cSJim Jagielski
49*b1cdbd2cSJim Jagielski module com {  module sun {  module star {  module frame {
50*b1cdbd2cSJim Jagielski
51*b1cdbd2cSJim Jagielski//=============================================================================
52*b1cdbd2cSJim Jagielski/** This is the main interface of a desktop service.
53*b1cdbd2cSJim Jagielski
54*b1cdbd2cSJim Jagielski    <p>
55*b1cdbd2cSJim Jagielski    A desktop is an environment for components which can be viewed in
56*b1cdbd2cSJim Jagielski	frames. Frames are like frames in HTML framesets. This does not imply
57*b1cdbd2cSJim Jagielski	that a desktop can handle framesets; the frames may be top frames
58*b1cdbd2cSJim Jagielski	only.
59*b1cdbd2cSJim Jagielski    </p>
60*b1cdbd2cSJim Jagielski
61*b1cdbd2cSJim Jagielski    @see Desktop
62*b1cdbd2cSJim Jagielski */
63*b1cdbd2cSJim Jagielskipublished interface XDesktop: com::sun::star::uno::XInterface
64*b1cdbd2cSJim Jagielski{
65*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
66*b1cdbd2cSJim Jagielski	/** tries to terminate the desktop.
67*b1cdbd2cSJim Jagielski
68*b1cdbd2cSJim Jagielski        <p>
69*b1cdbd2cSJim Jagielski        First, every terminate listener is called by his <member>XTerminateListener::queryTermination()</member> method.
70*b1cdbd2cSJim Jagielski        Throwing of a <type>TerminationVetoException</type> can break the termination process and the listener how has
71*b1cdbd2cSJim Jagielski        done that will be the new "controller" of the desktop lifetime. He should try to terminate it by himself after
72*b1cdbd2cSJim Jagielski        his own processes will be finished.
73*b1cdbd2cSJim Jagielski        If nobody disagree with the termination request, every listener will be called by his
74*b1cdbd2cSJim Jagielski        <member>XTerminateListener::notifyTermination()</member> method.
75*b1cdbd2cSJim Jagielski        </p>
76*b1cdbd2cSJim Jagielski
77*b1cdbd2cSJim Jagielski        @return
78*b1cdbd2cSJim Jagielski            <TRUE/>if all listener agree with this request
79*b1cdbd2cSJim Jagielski            <br>
80*b1cdbd2cSJim Jagielski            <FALSE/>otherwise
81*b1cdbd2cSJim Jagielski
82*b1cdbd2cSJim Jagielski        @see XTerminateListener
83*b1cdbd2cSJim Jagielski        @see TerminationVetoException
84*b1cdbd2cSJim Jagielski	 */
85*b1cdbd2cSJim Jagielski	boolean terminate();
86*b1cdbd2cSJim Jagielski
87*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
88*b1cdbd2cSJim Jagielski	/** registers an event listener to the desktop, which is called
89*b1cdbd2cSJim Jagielski		when the desktop is queried to terminate, and when it really
90*b1cdbd2cSJim Jagielski		terminates.
91*b1cdbd2cSJim Jagielski
92*b1cdbd2cSJim Jagielski        @param Listener
93*b1cdbd2cSJim Jagielski            listener for termination events
94*b1cdbd2cSJim Jagielski
95*b1cdbd2cSJim Jagielski        @see XDesktop::removeTerminateListener()
96*b1cdbd2cSJim Jagielski	 */
97*b1cdbd2cSJim Jagielski    [oneway] void addTerminateListener( [in] XTerminateListener Listener );
98*b1cdbd2cSJim Jagielski
99*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
100*b1cdbd2cSJim Jagielski    /** unregisters an event listener for termination events.
101*b1cdbd2cSJim Jagielski
102*b1cdbd2cSJim Jagielski        @param Listener
103*b1cdbd2cSJim Jagielski            listener which wish to be deregistered
104*b1cdbd2cSJim Jagielski
105*b1cdbd2cSJim Jagielski        @see XDesktop::addTerminateListener()
106*b1cdbd2cSJim Jagielski	 */
107*b1cdbd2cSJim Jagielski    [oneway] void removeTerminateListener( [in] XTerminateListener Listener );
108*b1cdbd2cSJim Jagielski
109*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
110*b1cdbd2cSJim Jagielski    /** provides read access to collection of all currently loaded components
111*b1cdbd2cSJim Jagielski        inside the frame tree
112*b1cdbd2cSJim Jagielski
113*b1cdbd2cSJim Jagielski        <p>
114*b1cdbd2cSJim Jagielski        The component is, by definition, the model of the control which
115*b1cdbd2cSJim Jagielski        is loaded into a frame, or if no model exists, into the control
116*b1cdbd2cSJim Jagielski        itself.
117*b1cdbd2cSJim Jagielski        The service <type>Components</type> which is available from this
118*b1cdbd2cSJim Jagielski        method is a collection of all components of the desktop which are open
119*b1cdbd2cSJim Jagielski        within a frame of the desktop.
120*b1cdbd2cSJim Jagielski        </p>
121*b1cdbd2cSJim Jagielski
122*b1cdbd2cSJim Jagielski        @returns
123*b1cdbd2cSJim Jagielski            the collection of all components
124*b1cdbd2cSJim Jagielski
125*b1cdbd2cSJim Jagielski        @see Components
126*b1cdbd2cSJim Jagielski	 */
127*b1cdbd2cSJim Jagielski	com::sun::star::container::XEnumerationAccess getComponents();
128*b1cdbd2cSJim Jagielski
129*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
130*b1cdbd2cSJim Jagielski    /** provides read access to the component inside the tree which has the UI focus
131*b1cdbd2cSJim Jagielski
132*b1cdbd2cSJim Jagielski        <p>
133*b1cdbd2cSJim Jagielski        Normally, the component is the model part of the
134*b1cdbd2cSJim Jagielski        active component. If no model exists it is the active controller
135*b1cdbd2cSJim Jagielski        (view) itself.
136*b1cdbd2cSJim Jagielski        </p>
137*b1cdbd2cSJim Jagielski
138*b1cdbd2cSJim Jagielski        @returns
139*b1cdbd2cSJim Jagielski            the component within the desktop environment which has the UI focus.
140*b1cdbd2cSJim Jagielski
141*b1cdbd2cSJim Jagielski        @see XDesktop::getCurrentFrame()
142*b1cdbd2cSJim Jagielski	 */
143*b1cdbd2cSJim Jagielski	com::sun::star::lang::XComponent getCurrentComponent();
144*b1cdbd2cSJim Jagielski
145*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
146*b1cdbd2cSJim Jagielski    /** provides read access to the frame wich contains the current component
147*b1cdbd2cSJim Jagielski
148*b1cdbd2cSJim Jagielski        @returns
149*b1cdbd2cSJim Jagielski            the frame of the component which has the
150*b1cdbd2cSJim Jagielski            UI focus within this desktop enviroment
151*b1cdbd2cSJim Jagielski
152*b1cdbd2cSJim Jagielski        @see XDesktop::getCurrentComponent()
153*b1cdbd2cSJim Jagielski	 */
154*b1cdbd2cSJim Jagielski    XFrame getCurrentFrame();
155*b1cdbd2cSJim Jagielski};
156*b1cdbd2cSJim Jagielski
157*b1cdbd2cSJim Jagielski//=============================================================================
158*b1cdbd2cSJim Jagielski
159*b1cdbd2cSJim Jagielski}; }; }; };
160*b1cdbd2cSJim Jagielski
161*b1cdbd2cSJim Jagielski#endif
162