blob: fcfb12f4ad9fc06581782428a0811917eeb09d47 [file] [log] [blame]
/**************************************************************
*
* 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_awt_XSimpleTabController_idl__
#define __com_sun_star_awt_XSimpleTabController_idl__
#ifndef __com_sun_star_awt_XTabListener_idl__
#include <com/sun/star/awt/XTabListener.idl>
#endif
#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif
#ifndef __com_sun_star_lang_IndexOutOfBoundsException_idl__
#include <com/sun/star/lang/IndexOutOfBoundsException.idl>
#endif
#ifndef __com_sun_star_beans_NamedValue_idl__
#include <com/sun/star/beans/NamedValue.idl>
#endif
//=============================================================================
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.
*/
published interface XSimpleTabController : com::sun::star::uno::XInterface
{
//-------------------------------------------------------------------------
/** create a new tab and return an unique ID,
which can be used further to adress this tab by using other methods
of this interface.
@return [long
an 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 isnt used inside this tab controller.
*/
void removeTab( [in] long ID )
raises( com::sun::star::lang::IndexOutOfBoundsException );
//-------------------------------------------------------------------------
/** change some properties of the specified tab.
@descr 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 isnt 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 isnt 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.
@descr The new tab will be activated and all listener will get an event describing this.
Of course there will be an event too, which notify's 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 isnt 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.
@eturn [long]
the ID of the active tab.
*/
long getActiveTabID();
//-------------------------------------------------------------------------
/** register listener for inserting/removing tab's and changing her properties.
@param Listener
the listener for registration.
*/
void addTabListener( [in] XTabListener Listener );
//-------------------------------------------------------------------------
/** deregister listener for inserting/removing tab's and changing her properties.
@param Listener
the listener for deregistration.
*/
void removeTabListener( [in] XTabListener Listener );
};
//=============================================================================
}; }; }; };
#endif