summaryrefslogtreecommitdiff
path: root/offapi/com/sun/star/frame/XModel.idl
diff options
context:
space:
mode:
Diffstat (limited to 'offapi/com/sun/star/frame/XModel.idl')
-rw-r--r--offapi/com/sun/star/frame/XModel.idl239
1 files changed, 239 insertions, 0 deletions
diff --git a/offapi/com/sun/star/frame/XModel.idl b/offapi/com/sun/star/frame/XModel.idl
new file mode 100644
index 000000000000..8d1448c00a7e
--- /dev/null
+++ b/offapi/com/sun/star/frame/XModel.idl
@@ -0,0 +1,239 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: XModel.idl,v $
+ * $Revision: 1.11 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_frame_XModel_idl__
+#define __com_sun_star_frame_XModel_idl__
+
+#ifndef __com_sun_star_lang_XComponent_idl__
+#include <com/sun/star/lang/XComponent.idl>
+#endif
+
+#ifndef __com_sun_star_beans_PropertyValue_idl__
+#include <com/sun/star/beans/PropertyValue.idl>
+#endif
+
+#ifndef __com_sun_star_frame_XController_idl__
+#include <com/sun/star/frame/XController.idl>
+#endif
+
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+
+//=============================================================================
+
+ module com { module sun { module star { module frame {
+
+//=============================================================================
+/** 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. An example for such an argument is "AsTemplate",
+ which loads the resource as a template for a new document.
+ (see <type scope="com::sun::star::document">MediaDescriptor</type> for further details)
+ </p>
+
+ <p>
+ Models can be controlled by controller components, which are usually
+ views of the model.
+ (see <type>Controller</type> for further details)
+ </p>
+
+ <p>
+ If there is at least one controller, there is by definition a
+ current controller. And if that controller supports the interface
+ <type scope="com::sun::star::view">XSelectionSupplier</type>, it has a current selection too.
+ </p>
+
+ @see com::sun::star::document::MediaDescriptor
+ @see Controller
+ @see com::sun::star::view::XSelectionSupplier
+ */
+published interface XModel: com::sun::star::lang::XComponent
+{
+ //-------------------------------------------------------------------------
+ /** informs a model about its resource description.
+
+ @param URL
+ specifies the ressource
+
+ @param Arguments
+ are optional arguments for that ressource
+ (see <type scope="com::sun::star::document">MediaDescriptor</type>)
+
+ @return
+ <TRUE/> for success
+ <br>
+ <FALSE/> otherwise
+ */
+ boolean attachResource(
+ [in] string URL,
+ [in] sequence<com::sun::star::beans::PropertyValue> Arguments);
+
+ //-------------------------------------------------------------------------
+ /** provides information about the location of this model
+
+ @returns
+ the URL of the resource which is represented by this model.
+
+ @see XStorable::getLocation()
+ */
+ string getURL();
+
+ //-------------------------------------------------------------------------
+ /** provides read acces on currently representation of the
+ <type scope="com::sun::star::document">MediaDescriptor</type>
+ of this model which describes the model and his state
+
+ @returns
+ the arguments with which the model was originally created or
+ stored the last time.
+ */
+ sequence< com::sun::star::beans::PropertyValue > getArgs();
+
+ //-------------------------------------------------------------------------
+ /** is called whenever a new controller is created for this model.
+
+ <p>
+ The <type scope="com::sun::star::lang">XComponent</type> interface
+ of the controller must be used to recognize when it is deleted.
+ </p>
+
+ @param Controller
+ a new controller for this model
+
+ @see XModel::disconnectController()
+ */
+ [oneway] void connectController( [in] XController Controller );
+
+ //-------------------------------------------------------------------------
+ /** is called whenever an existing controller should be deregistered at this model.
+
+ <p>
+ The <type scope="com::sun::star::lang">XComponent</type> interface
+ of the controller must be used to recognize when it is deleted.
+ </p>
+
+ @param Controller
+ the existing controller which should be deregistered
+
+ @see XModel::connectController()
+ */
+ [oneway] void disconnectController( [in] XController Controller );
+
+ //-------------------------------------------------------------------------
+ /** suspends some notifications to the controllers which are used
+ for display updates.
+
+ <p>
+ The calls to <member>XModel::lockControllers()</member> and
+ <member>XModel::unlockControllers()</member> may be
+ nested and even overlapping, but they must be in pairs. While
+ there is at least one lock remaining, some notifications
+ for display updates are not broadcasted.
+ </p>
+ */
+ [oneway] void lockControllers();
+
+ //-------------------------------------------------------------------------
+ /** resumes the notifications which were suspended by
+ <member>XModel::lockControllers()</member>.
+
+ <p>
+ The calls to <member>XModel::lockControllers()</member> and
+ <member>XModel::unlockControllers()</member> may be
+ nested and even overlapping, but they must be in pairs. While
+ there is at least one lock remaining, some notifications for
+ display updates are not broadcasted.
+ </p>
+ */
+ [oneway] void unlockControllers();
+
+ //-------------------------------------------------------------------------
+ /** determines if there is at least one lock remaining.
+
+ <p>
+ While there is at least one lock remaining, some notifications
+ for display updates are not broadcasted to the controllers.
+ </p>
+
+ @return
+ <TRUE/> if any lock exist
+ <br>
+ <FALSE/> otherwise
+ */
+ boolean hasControllersLocked();
+
+ //-------------------------------------------------------------------------
+ /** provides access to the controller which currently controls this model
+
+ @returns
+ If the controller which is active is a controller of this model,
+ it will be returned. If not, the controller which was the last
+ active of this model is returned. If no controller of this model
+ ever was active, the controller first registered is returned. If no
+ controller is registered for this model, <NULL/> is returned.
+ */
+ XController getCurrentController();
+
+ //-------------------------------------------------------------------------
+ /** sets a registered controller as the current controller.
+
+ @param Controller
+ reference to an already existing connected controller, which should be
+ the new active one
+
+ @throws com::sun::star::container::NoSuchElementException
+ if <var>xController</var> isn't an already connected controller on this model
+ */
+ void setCurrentController( [in] XController Controller )
+ raises( com::sun::star::container::NoSuchElementException );
+
+ //-------------------------------------------------------------------------
+ /** provides read access on current selection on controller
+
+ @returns
+ the current selection in the current controller.
+ If there is no current controller, it returns <NULL/>.
+ */
+ com::sun::star::uno::XInterface getCurrentSelection();
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif