1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
19 #ifndef __com_sun_star_awt_XSimpleTabController_idl__
20 #define __com_sun_star_awt_XSimpleTabController_idl__
22 #include
<com
/sun
/star
/awt
/XTabListener.idl
>
23 #include
<com
/sun
/star
/uno
/XInterface.idl
>
24 #include
<com
/sun
/star
/lang
/IndexOutOfBoundsException.idl
>
25 #include
<com
/sun
/star
/beans
/NamedValue.idl
>
28 module com
{ module sun
{ module star
{ module awt
{
31 /** specifies the basic operations for a tab controller,
32 but does not require XControl as type of tabs.
34 interface XSimpleTabController
: com
::sun
::star
::uno
::XInterface
36 /** create a new tab and return an unique ID,
37 which can be used further to address this tab by using other methods
41 an unique ID for this new tab.
45 /** remove a tab with the given ID.
48 the ID of the tab, which should be removed.
50 @throws ::com::sun::star::lang::IndexOutOfBoundsException
51 if the specified ID isn't used inside this tab controller.
53 void removeTab
( [in] long ID )
54 raises
( com
::sun
::star
::lang
::IndexOutOfBoundsException
);
56 /** change some properties of the specified tab.
58 @descr Such properties can be:
61 <td><b>Property</b></td>
63 <td><b>Description</b></td>
68 <td>the title of the tab, which is shown at the UI.</td>
73 <td>describe the order of this tab in relation to all other tabs inside this control.</td>
77 @attention Not all properties must be supported by all implementations of this interface.
78 Of course some important ones should be handled by every implementation ...
82 the ID of the tab, which should be changed.
84 @throws ::com::sun::star::lang::IndexOutOfBoundsException
85 if the specified ID isn't used inside this tab controller.
87 void setTabProps
( [in] long ID ,
88 [in] sequence
< com
::sun
::star
::beans
::NamedValue
> Properties
)
89 raises
( com
::sun
::star
::lang
::IndexOutOfBoundsException
);
91 /** retrieve the set of properties for the specified tab.
96 @throws ::com::sun::star::lang::IndexOutOfBoundsException
97 if the specified ID isn't used inside this tab controller.
99 sequence
< com
::sun
::star
::beans
::NamedValue
> getTabProps
( [in] long ID )
100 raises
( com
::sun
::star
::lang
::IndexOutOfBoundsException
);
102 /** activate the specified tab.
104 @descr The new tab will be activated and all listener will get an event describing this.
105 Of course there will be an event too, which notifies listener about the deactivation
106 of the last active tab.
109 the ID of the new active tab.
111 @throws ::com::sun::star::lang::IndexOutOfBoundsException
112 if the specified ID isn't used inside this tab controller.
114 void activateTab
( [in] long ID )
115 raises
( com
::sun
::star
::lang
::IndexOutOfBoundsException
);
117 /** return the unique ID of the current active tab.
120 the ID of the active tab.
122 long getActiveTabID
();
124 /** register listener for inserting/removing tabs and changing their properties.
127 the listener to register.
129 void addTabListener
( [in] XTabListener Listener
);
131 /** unregister listener for inserting/removing tabs and changing their properties.
134 the listener to unregister.
136 void removeTabListener
( [in] XTabListener Listener
);
144 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */