summaryrefslogtreecommitdiffstats
path: root/offapi/com/sun/star/awt/XSimpleTabController.idl
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
commit940b4d1848e8c70ab7642901a68594e8016caffc (patch)
treeeb72f344ee6c3d9b80a7ecc079ea79e9fba8676d /offapi/com/sun/star/awt/XSimpleTabController.idl
parentInitial commit. (diff)
downloadlibreoffice-upstream.tar.xz
libreoffice-upstream.zip
Adding upstream version 1:7.0.4.upstream/1%7.0.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--offapi/com/sun/star/awt/XSimpleTabController.idl145
1 files changed, 145 insertions, 0 deletions
diff --git a/offapi/com/sun/star/awt/XSimpleTabController.idl b/offapi/com/sun/star/awt/XSimpleTabController.idl
new file mode 100644
index 000000000..189e35829
--- /dev/null
+++ b/offapi/com/sun/star/awt/XSimpleTabController.idl
@@ -0,0 +1,145 @@
+/* -*- 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_awt_XSimpleTabController_idl__
+#define __com_sun_star_awt_XSimpleTabController_idl__
+
+#include <com/sun/star/awt/XTabListener.idl>
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/lang/IndexOutOfBoundsException.idl>
+#include <com/sun/star/beans/NamedValue.idl>
+
+
+ module com { module sun { module star { module awt {
+
+
+/** specifies the basic operations for a tab controller,
+ but does not require XControl as type of tabs.
+ */
+interface XSimpleTabController : com::sun::star::uno::XInterface
+{
+ /** create a new tab and return a unique ID,
+ which can be used further to address this tab by using other methods
+ of this interface.
+
+ @return [long
+ a unique ID for this new tab.
+ */
+ long insertTab();
+
+ /** remove a tab with the given ID.
+
+ @param ID
+ the ID of the tab, which should be removed.
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if the specified ID isn't used inside this tab controller.
+ */
+ void removeTab( [in] long ID )
+ raises( com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** change some properties of the specified tab.
+
+ @param Properties
+ Such properties can be:
+ <table>
+ <tr>
+ <td><b>Property</b></td>
+ <td><b>Type</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>Title</td>
+ <td>string</td>
+ <td>the title of the tab, which is shown at the UI.</td>
+ </tr>
+ <tr>
+ <td>Position</td>
+ <td>int</td>
+ <td>describe the order of this tab in relation to all other tabs inside this control.</td>
+ </tr>
+ </table>
+
+ @attention Not all properties must be supported by all implementations of this interface.
+ Of course some important ones should be handled by every implementation ...
+ as e.g. "Title".
+
+ @param ID
+ the ID of the tab, which should be changed.
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if the specified ID isn't used inside this tab controller.
+ */
+ void setTabProps( [in] long ID ,
+ [in] sequence< com::sun::star::beans::NamedValue > Properties )
+ raises( com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** retrieve the set of properties for the specified tab.
+
+ @param ID
+ the ID of the tab.
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if the specified ID isn't used inside this tab controller.
+ */
+ sequence< com::sun::star::beans::NamedValue > getTabProps( [in] long ID )
+ raises( com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** activate the specified tab.
+
+ The new tab will be activated and all listener will get an event describing this.
+ Of course there will be an event too, which notifies listener about the deactivation
+ of the last active tab.
+
+ @param ID
+ the ID of the new active tab.
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if the specified ID isn't used inside this tab controller.
+ */
+ void activateTab( [in] long ID )
+ raises( com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** return the unique ID of the current active tab.
+
+ @return [long]
+ the ID of the active tab.
+ */
+ long getActiveTabID();
+
+ /** register listener for inserting/removing tabs and changing their properties.
+
+ @param Listener
+ the listener to register.
+ */
+ void addTabListener( [in] XTabListener Listener );
+
+ /** unregister listener for inserting/removing tabs and changing their properties.
+
+ @param Listener
+ the listener to unregister.
+ */
+ void removeTabListener( [in] XTabListener Listener );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */