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