| /************************************************************** |
| * |
| * 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_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 OpenOffice 2.0 |
| */ |
| |
| published 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 |