blob: e0340d838cc766ed4713985e35d1c28bd80def9d [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef __com_sun_star_document_OfficeDocument_idl__
#define __com_sun_star_document_OfficeDocument_idl__
#include <com/sun/star/frame/XModel.idl>
#include <com/sun/star/util/XModifiable.idl>
#include <com/sun/star/frame/XStorable.idl>
#include <com/sun/star/view/XPrintable.idl>
#include <com/sun/star/view/XPrintJobBroadcaster.idl>
#include <com/sun/star/document/XEventBroadcaster.idl>
#include <com/sun/star/document/XEventsSupplier.idl>
#include <com/sun/star/document/XDocumentInfoSupplier.idl>
#include <com/sun/star/document/XViewDataSupplier.idl>
#include <com/sun/star/document/XDocumentEventBroadcaster.idl>
#include <com/sun/star/document/XEmbeddedScripts.idl>
#include <com/sun/star/document/XDocumentPropertiesSupplier.idl>
#include <com/sun/star/document/XUndoManagerSupplier.idl>
//=============================================================================
module com { module sun { module star { module document {
//=============================================================================
/** abstract service which specifies a storable and printable document
<p>
All major document-like components should support this service
instead of simple components which supports a <type scope="com::sun::star::frame">Controller</type>
or pure <type scope="com::sun::star::awt">XWindow</type> only.
</p>
@see com::sun::star::frame::Controller
*/
published service OfficeDocument
{
//-------------------------------------------------------------------------
/** represents a component which is created from an URL and arguments
<p>
It is a representation of a resource in the sense that it was
created/loaded from the resource. The arguments are passed to the loader
to modify its behavior.
</p>
*/
interface com::sun::star::frame::XModel;
//-------------------------------------------------------------------------
/** a storable document should provide information about his modify state
<p>
With this interface it's possible too, to reset the modify state.
That can be neccessary to prevent code against problem during closing
of the document without saving any changes.
</p>
*/
interface com::sun::star::util::XModifiable;
//-------------------------------------------------------------------------
/** offers a simple way to store a component to an URL
<p>
This interface supports functionality
<ul>
<li>to make a copy of current component by saving it to another location</li>
<li>to commit made changes</li>
<li>to convert it by saving it by using suitable filter name.</li>
</ul>
</p>
*/
interface com::sun::star::frame::XStorable;
//-------------------------------------------------------------------------
/** offers a way to print a component
<p>
It's possible to specify wich printer should be used and of course
print the document on it.
</p>
*/
interface com::sun::star::view::XPrintable;
//-------------------------------------------------------------------------
/** is an old and deprecated version of the <type>XDocumentEventBroadcaster</type> interface
@deprecated
*/
[optional] interface XEventBroadcaster;
//-------------------------------------------------------------------------
/** makes it possible to register listeners which are called whenever
a document event occurs
*/
[optional] interface XDocumentEventBroadcaster;
//-------------------------------------------------------------------------
/** access to bound event handlers
*/
[optional] interface XEventsSupplier;
//-------------------------------------------------------------------------
/** document can provide a <type>DocumentInfo</type>
<p>
Instead of the <type>StandaloneDocumentInfo</type> service the <type>DocumentInfo</type>
will be available on an already opened document only.
</p>
@deprecated Use <type>XDocumentPropertiesSupplier</type> instead.
*/
[optional] interface XDocumentInfoSupplier;
//-------------------------------------------------------------------------
/** access to some properties describing all open views to a document
*/
[optional] interface XViewDataSupplier;
//-------------------------------------------------------------------------
/** allows for getting information about a print job
@since OpenOffice 1.1.2
*/
[optional] interface com::sun::star::view::XPrintJobBroadcaster;
/** is supported when the document can contain scripts and dialogs
@since OpenOffice 2.4
*/
[optional] interface XEmbeddedScripts;
//-------------------------------------------------------------------------
/** access to the <type>DocumentProperties</type>.
@since OpenOffice 3.0
*/
[optional] interface XDocumentPropertiesSupplier;
/** provides access to the document's undo manager.
*/
[optional] interface XUndoManagerSupplier;
//-------------------------------------------------------------------------
/** controls the focus behaviour of the form controls in the document
<p>
If this flag is set to <TRUE/>, any view belonging to the document
should focus the first control in the document. With this, you may
control if your document works primarily as a form document.
</p>
*/
[property, optional] boolean AutomaticControlFocus;
//-------------------------------------------------------------------------
/** controls the initial (on-load) behavior of the form controls in the document
<p>If set to <TRUE/>, upon loading the document, the form controls will be in design mode.<br/>
If set to <FALSE/>, they will be alive, i.e. operational.<br/>
With this, you may control if your document works primarily as a form document.
</p>
*/
[property, optional] boolean ApplyFormDesignMode;
//-------------------------------------------------------------------------
/** contains a unique id for the document
<p>Once calculated, the id must not change until the document has been
closed. Upon closing it will not be made persistent. Thus, the document
may get a different id every time it gets loaded.</p>
*/
[property, optional, readonly] string RuntimeUID;
};
//=============================================================================
}; }; }; };
#endif