summaryrefslogtreecommitdiff
path: root/offapi/com/sun/star/frame/XLayoutManager.idl
diff options
context:
space:
mode:
Diffstat (limited to 'offapi/com/sun/star/frame/XLayoutManager.idl')
-rw-r--r--offapi/com/sun/star/frame/XLayoutManager.idl510
1 files changed, 510 insertions, 0 deletions
diff --git a/offapi/com/sun/star/frame/XLayoutManager.idl b/offapi/com/sun/star/frame/XLayoutManager.idl
new file mode 100644
index 000000000000..5699fe00687b
--- /dev/null
+++ b/offapi/com/sun/star/frame/XLayoutManager.idl
@@ -0,0 +1,510 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * 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_XLayoutManager_idl__
+#define __com_sun_star_frame_XLayoutManager_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_frame_XFrame_idl__
+#include <com/sun/star/frame/XFrame.idl>
+#endif
+
+#ifndef __com_sun_star_awt_Point_idl__
+#include <com/sun/star/awt/Point.idl>
+#endif
+
+#ifndef __com_sun_star_awt_Size_idl__
+#include <com/sun/star/awt/Size.idl>
+#endif
+
+#ifndef __com_sun_star_awt_XWindow_idl__
+#include <com/sun/star/awt/XWindow.idl>
+#endif
+
+#ifndef __com_sun_star_ui_XUIElement_idl__
+#include <com/sun/star/ui/XUIElement.idl>
+#endif
+
+#ifndef __com_sun_star_ui_DockingArea_idl__
+#include <com/sun/star/ui/DockingArea.idl>
+#endif
+
+#ifndef __com_sun_star_ui_XDockingAreaAcceptor_idl__
+#include <com/sun/star/ui/XDockingAreaAcceptor.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module frame {
+
+//=============================================================================
+
+/** central interface to query for, create, destroy and manipulate user
+ interface elements which are bound to a layout manager.
+
+ <p>
+ Every user interface element which is controlled by a layout manager has
+ a unique identifier called resource URL.
+
+ A resourcce URL must meet the following syntax:
+ "private:resource/$type/$name". It is only allowed to use ascii characters
+ for type and name.
+
+ Currently the following user interface element types are defined:
+ <ul>
+ <li><b>menubar</b>A configurable user interface element representing
+ a menu bar.</li>
+ <li><b>popupmenu</b>A configurable user interface element representing
+ a popup menu.</li>
+ <li><b>toolbar</b>A configurable user interface element a tool
+ bar.</li>
+ <li><b>statusbar</b>A configurable user interfave element representing
+ a status bar.</li>
+ <li><b>floater</b>A basic user interface element representing a
+ floating window.</li>
+ </ul>
+
+ @see com::sun::star::ui::UIElementTypes
+ @see com::sun::star::frame::XFrame
+ </p>
+
+ @since OOo 2.0.0
+*/
+
+interface XLayoutManager : com::sun::star::uno::XInterface
+{
+ /** attaches a <type scope="com::sun::star::frame">XFrame</type> to a layout manager.
+
+ @param Frame
+ specifies the frame that should be attached to the layout manager
+
+ <p>
+ A layout manager needs a <type scope="com::sun::star::frame">XFrame</type> to be
+ able to work. Without a it no user interface elements can be created.
+ </p>
+ */
+ void attachFrame( [in] com::sun::star::frame::XFrame Frame );
+
+ /** resets the layout manager and remove all of its internal user interface
+ elements.
+
+ <p>
+ This call should be handled with care as all user interface elements will
+ be destroyed and the layout manager is reseted to a state after a
+ <member>attachFrame</member> has been made. That means an attached frame
+ which has been set by <member>attachFrame</member> is not released.
+ The layout manager itself calls reset after a component has been attached
+ or reattached to a frame.
+ </p>
+ */
+ void reset();
+
+ /** provides the current docking area size of the layout manager.
+
+ @return
+ The <type scope="com::sun::star::awt">Rectangle</type> contains pixel values. The
+ members of <type scope="com::sun::star::awt">Rectangle</type> are filled as following:
+ <ul>
+ <li>X = docking area on left side (in pixel)</li>
+ <li>Y = docking area on top side (in pixel)</li>
+ <li>Width = docking area on right side (in pixel)</li>
+ <li>Height = docking area on bottom side (in pixel)</li>
+ </ul>
+ */
+ com::sun::star::awt::Rectangle getCurrentDockingArea();
+
+ /** retrieves the current docking area acceptor that controls the border space of the frame's
+ container window.
+
+ @return
+ current docking area acceptor which controls the border space of frame's container window.
+
+ <p>
+ A docking area acceptor retrieved by this method is owned by the layout manager. It is not
+ allowed to dispose this object, it will be destroyed on reference count!
+ </p>
+ */
+ com::sun::star::ui::XDockingAreaAcceptor getDockingAreaAcceptor();
+
+ /** sets a docking area acceptor that controls the border space of the frame's container window.
+
+ @param xDockingAreaAcceptor
+ a docking area acceptor which controls the border space of frame's container window.
+
+ <p>
+ A docking area acceptor decides if the layout manager can use requested border space for
+ docking windows. If the acceptor denies the requested space the layout manager automatically
+ set all docked windows into floating state and will not use this space for docking.<br/>
+ After setting a docking area acceptor the object is owned by the layout manager. It is not
+ allowed to dispose this object, it will be destroyed on reference count!
+ </p>
+ */
+ void setDockingAreaAcceptor( [in] com::sun::star::ui::XDockingAreaAcceptor xDockingAreaAcceptor );
+
+ /** creates a new user interface element.
+
+ @param ResourceURL
+ specifies which user interface element should be created. A resourcce URL must meet the following
+ syntax: "private:resource/$type/$name". It is only allowed to use ascii characters for type and
+ name.
+ */
+ void createElement( [in] string ResourceURL );
+
+ /** destroys a user interface element.
+
+ @param ResourceURL
+ specifies which user interface element should be destroyed. A resourcce URL must meet
+ the following syntax: "private:resource/$type/$name". It is only allowed to use ascii
+ characters for type and name.
+ */
+ void destroyElement( [in] string ResourceURL );
+
+ /** request to make a user interface element visible if it is not in hidden state.
+
+ @param ResourceURL
+ specifies which user interface element should be made visible. A resourcce URL must
+ meet the following syntax: "private:resource/$type/$name". It is only allowed to use
+ ascii characters for type and
+ name.
+
+ @return
+ returns <TRUE/> if the user interface element could be made visible, otherwise
+ <FALSE/> will be returned.
+
+ <p>
+ If a user interface element should forced to the visible state
+ <member>XLayoutManager::showElement</member> should be used. This function can be
+ used for context dependent elements which should respect a the current visibility
+ state.
+ </p>
+ */
+ boolean requestElement( [in] string ResourceURL );
+
+ /** retrieves a user interface element which has been created before.
+
+ @param ResourceURL
+ specifies which user interface element should be retrieved. A resourcce URL must meet the following
+ syntax: "private:resource/$type/$name". It is only allowed to use ascii characters for type and
+ name.
+
+ <p>
+ The layout manager instance is owner of the returned user interface element. That means that the life time of
+ the user interface element is controlled by the layout manager. It can be disposed at every time!
+ </p>
+ */
+ com::sun::star::ui::XUIElement getElement( [in] string ResourceURL );
+
+ /** retrieves all user interface elements which are currently instanciated.
+
+ @return
+ a sequence of user interface elements providing <type scope="com::sun::star::ui">XUIElement</type>
+ interface.
+
+ <p>
+ The layout manager instance is owner of the returned user interface elements. That means that the life time of
+ the user interface elements is controlled by the layout manager. They can be disposed at every time!
+ </p>
+ */
+ sequence< com::sun::star::ui::XUIElement > getElements();
+
+ /** shows a user interface element.
+
+ @param ResourceURL
+ specifies which user interface element should be shown. A resourcce URL must meet the following
+ syntax: "private:resource/$type/$name". It is only allowed to use ascii characters for type and
+ name.
+
+ @return
+ returns <TRUE/> if the user interface element has been shown, otherwise <FALSE/> will be returned.
+ */
+ boolean showElement( [in] string ResourceURL );
+
+ /** hides a user interface element.
+
+ @param ResourceURL
+ specifies which user interface element should be hidden. A resourcce URL must meet the following
+ syntax: "private:resource/$type/$name". It is only allowed to use ascii characters for type and
+ name.
+
+ @return
+ returns <TRUE/> if the user interface element has been hidden, otherwise <FALSE/> will be returned.
+ */
+ boolean hideElement( [in] string ResourceURL );
+
+ /** docks a window based user interface element to a specified docking area.
+
+ @param ResourceURL
+ specifies which user interface element should be docked. A resourcce URL must meet the following
+ syntax: "private:resource/$type/$name". It is only allowed to use ascii characters for type and
+ name.
+
+ @param DockingArea
+ specifies on which docking area the window based user interface element should docked.
+
+ @param Pos
+ specifies the position inside the docking area.
+
+ @return
+ returns <TRUE/> if the user interface element has been docked, otherwise <FALSE/> will be returned.
+
+ @see com::sun::star::ui::DockingArea
+ */
+ boolean dockWindow( [in] string ResourceURL, [in] com::sun::star::ui::DockingArea DockingArea, [in] com::sun::star::awt::Point Pos );
+
+ /** docks all windows which are member of the provided user interface element type.
+
+ @param nElementType
+ specifies which user interface element type should be docked.
+
+ @return
+ returns <TRUE/> if all user interface elements of the requested type could be
+ docked, otherwise <FALSE/> will be returned.
+
+ @see com::sun::star::ui::UIElementType
+ */
+ boolean dockAllWindows( [in] short nElementType );
+
+ /** forces a window based user interface element to float.
+
+ @param ResourceURL
+ specifies which user interface element should be float. A resourcce URL must meet the following
+ syntax: "private:resource/$type/$name". It is only allowed to use ascii characters for type and
+ name.
+
+ @return
+ returns <TRUE/> if the user interface element has been docked, otherwise <FALSE/> will be returned.
+ */
+ boolean floatWindow( [in] string ResourceURL );
+
+ /** locks a window based user interface element if it's in a docked state.
+
+ @param ResourceURL
+ specifies which user interface element should be locked. A resourcce URL must meet the following
+ syntax: "private:resource/$type/$name". It is only allowed to use ascii characters for type and
+ name.
+
+ @return
+ returns <TRUE/> if the user interface element has been locked, otherwise <FALSE/> will be returned.
+ */
+ boolean lockWindow( [in] string ResourceURL );
+
+ /** unlocks a window based user interface element if it's in a docked state.
+
+ @param ResourceURL
+ specifies which user interface element should be unlocked. A resourcce URL must
+ meet the following syntax: "private:resource/$type/$name". It is only allowed
+ to use ascii characters for type and name.
+
+ @return
+ returns <TRUE/> if the user interface element has been unlocked, otherwise
+ <FALSE/> will be returned.
+ */
+ boolean unlockWindow( [in] string ResourceURL );
+
+ /** sets a new size for a window based user interface element.
+
+ @param ResourceURL
+ specifies which user interface element should be resized. A resourcce URL must meet the following
+ syntax: "private:resource/$type/$name". It is only allowed to use ascii characters for type and
+ name.
+
+ @param Size
+ specifies the new size in pixel.
+
+ <p>
+ It is up to the layout manager to decide if the user interface element can be resized. The new size can be retrieved
+ by calling <member>getElementSize</member>.
+ </p>
+ */
+ void setElementSize( [in] string ResourceURL, [in] com::sun::star::awt::Size Size );
+
+ /** sets a new position for a window based user interface element.
+
+ @param ResourceURL
+ specifies which user interface element should be moved. A resourcce URL must meet the following
+ syntax: "private:resource/$type/$name". It is only allowed to use ascii characters for type and
+ name.
+
+ @param Pos
+ specifies the new position in pixel.
+
+ <p>
+ It is up to the layout manager to decide if the user interface element can be moved. The new position can be retrieved
+ by calling <member>getElementPos</member>.
+ </p>
+ */
+ void setElementPos( [in] string ResourceURL, [in] com::sun::star::awt::Point Pos );
+
+ /** sets a new position and size for a window based user interface element.
+
+ @param ResourceURL
+ specifies which user interface element should be moved and resized. A resourcce URL must meet the following
+ syntax: "private:resource/$type/$name". It is only allowed to use ascii characters for type and
+ name.
+
+ @param Pos
+ specifies the new position in pixel.
+
+ @param Size
+ specifies the new position in pixel.
+
+ <p>
+ It is up to the layout manager to decide if the user interface element can be moved and resized. The new position and size can
+ be retrieved by calling <member>getElementPos</member> and <member>getElementSize</member>.
+ </p>
+ */
+ void setElementPosSize( [in] string ResourceURL, [in] com::sun::star::awt::Point Pos, [in] com::sun::star::awt::Size Size );
+
+ /** retrieves the current visibility state of a window based user interface element.
+
+ @param ResourceURL
+ specifies for which user interface element the visibility state should be retrieved. A resource URL must meet
+ the following syntax: "private:resource/$type/$name". It is only allowed to use ascii characters for type and
+ name.
+
+ @return
+ <TRUE/> if the user interface element is visible, otherwise <FALSE/>.
+ */
+ boolean isElementVisible( [in] string ResourceURL );
+
+ /** retrieves the current floating state of a window based user interface element.
+
+ @param ResourceURL
+ specifies for which user interface element the floating state should be retrieved. A resource URL must meet
+ the following syntax: "private:resource/$type/$name". It is only allowed to use ascii characters for type and
+ name.
+
+ @return
+ <TRUE/> if the user interface element is floating, otherwise <FALSE/>.
+ */
+ boolean isElementFloating( [in] string ResourceURL );
+
+ /** retrieves the current docking state of a window based user interface element.
+
+ @param ResourceURL
+ specifies for which user interface element the docking state should be retrieved. A resource URL must meet
+ the following syntax: "private:resource/$type/$name". It is only allowed to use ascii characters for type and
+ name.
+
+ @return
+ <TRUE/> if the user interface element is docked, otherwise <FALSE/>.
+ */
+ boolean isElementDocked( [in] string ResourceURL );
+
+ /** retrieves the current lock state of a window based user interface element.
+
+ @param ResourceURL
+ specifies for which user interface element the lock state should be retrieved. A resource URL must meet
+ the following syntax: "private:resource/$type/$name". It is only allowed to use ascii characters for type and
+ name.
+
+ @return
+ <TRUE/> if the user interface element is locked, otherwise <FALSE/>.
+ */
+ boolean isElementLocked( [in] string ResourceURL );
+
+ /** retrieves the current size of a window based user interface element.
+
+ @param ResourceURL
+ specifies for which user interface element the current size should be retrieved. A resource URL must meet
+ the following syntax: "private:resource/$type/$name". It is only allowed to use ascii characters for type and
+ name.
+
+ @return
+ the size in pixel of the user interface element. A non-window based user interface element provides a zero size.
+ */
+ com::sun::star::awt::Size getElementSize( [in] string ResourceURL );
+
+ /** retrieves the current pixel position of a window based user interface element.
+
+ @param ResourceURL
+ specifies for which user interface element the current position should be retrieved. A resource URL must meet
+ the following syntax: "private:resource/$type/$name". It is only allowed to use ascii characters for type and
+ name.
+
+ @return
+ the size in pixel of the user interface element. A non-window based user interface element provides a zero size.
+ */
+ com::sun::star::awt::Point getElementPos( [in] string ResourceURL );
+
+ /** prohibit all layout updates until unlock is called again.
+
+ <p>
+ This call can be used to speed up the creation process of serveral user interface elements. Otherwise the layout manager
+ would calculate the layout for every creation.
+ </p>
+ */
+ void lock();
+
+ /** permit layout updates again.
+
+ <p>
+ This function should be called to permit layout updates. The layout manager starts to calculate the new layout after
+ this call.
+ </p>
+ */
+ void unlock();
+
+ /** forces a complete new layouting of all user interface elements.
+ */
+ void doLayout();
+
+ /** sets the layout manager to invisible state and hides all user interface elements.
+
+ <p>
+ A layout manager can be set to invisible state to force it to hide all of its
+ user interface elements. If another component wants to use the window for its
+ own user interface elements it can use this function. This function is normally
+ used to implement inplace editing.
+ </p>
+
+ @param Visible
+ provide <FALSE/> to make layout manager invisible otherwise this must be
+ set to <TRUE/>.
+ */
+ void setVisible( [in] boolean Visible );
+
+ /** retrieves the visibility state of a layout manager.
+
+ <p>
+ A layout manager can be set to invisible state to force it to hide all of its
+ user interface elements. If another component wants to use the window for its
+ own user interface elements it can use this function. This function is normally
+ used to implement inplace editing.
+ </p>
+
+ */
+ boolean isVisible();
+
+};
+
+}; }; }; };
+
+#endif