summaryrefslogtreecommitdiffstats
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.idl202
1 files changed, 202 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 000000000..17bd7337f
--- /dev/null
+++ b/offapi/com/sun/star/frame/XModel.idl
@@ -0,0 +1,202 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef __com_sun_star_frame_XModel_idl__
+#define __com_sun_star_frame_XModel_idl__
+
+#include <com/sun/star/lang/XComponent.idl>
+#include <com/sun/star/beans/PropertyValue.idl>
+#include <com/sun/star/frame/XController.idl>
+#include <com/sun/star/container/NoSuchElementException.idl>
+#include <com/sun/star/uno/XInterface.idl>
+
+
+
+ module com { module sun { module star { module frame {
+
+/** represents a component which is created from a 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 com::sun::star::document::MediaDescriptor for further details)
+ </p>
+
+ <p>
+ Models can be controlled by controller components, which are usually
+ views of the model.
+ (see Controller 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
+ com::sun::star::view::XSelectionSupplier, 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 resource
+
+ @param Arguments
+ are optional arguments for that resource
+ (see com::sun::star::document::MediaDescriptor)
+
+ @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 access on currently representation of the
+ com::sun::star::document::MediaDescriptor
+ of this model which describes the model and its 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 com::sun::star::lang::XComponent 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()
+ */
+ void connectController( [in] XController Controller );
+
+ /** is called whenever an existing controller should be deregistered at this model.
+
+ <p>
+ The com::sun::star::lang::XComponent 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()
+ */
+ void disconnectController( [in] XController Controller );
+
+ /** suspends some notifications to the controllers which are used
+ for display updates.
+
+ <p>
+ The calls to XModel::lockControllers() and
+ XModel::unlockControllers() 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>
+ */
+ void lockControllers();
+
+ /** resumes the notifications which were suspended by
+ XModel::lockControllers().
+
+ <p>
+ The calls to XModel::lockControllers() and
+ XModel::unlockControllers() 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>
+ */
+ 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
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */