This is an automated email from the ASF dual-hosted git repository.

mseidel pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/openoffice.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 520e75ba70 Fixed typos, removed whitespace
520e75ba70 is described below

commit 520e75ba70bcd5f3bccaace624e4e4d1dad991a9
Author: mseidel <msei...@apache.org>
AuthorDate: Sat Jan 6 23:56:53 2024 +0100

    Fixed typos, removed whitespace
---
 .../ui/framework/factories/FullScreenPane.cxx      |  359 +--
 main/vcl/source/control/tabctrl.cxx                | 3352 ++++++++++----------
 2 files changed, 1844 insertions(+), 1867 deletions(-)

diff --git a/main/sd/source/ui/framework/factories/FullScreenPane.cxx 
b/main/sd/source/ui/framework/factories/FullScreenPane.cxx
index f3ee32fd3e..af5b6fee1a 100644
--- a/main/sd/source/ui/framework/factories/FullScreenPane.cxx
+++ b/main/sd/source/ui/framework/factories/FullScreenPane.cxx
@@ -1,5 +1,5 @@
 /**************************************************************
- * 
+ *
  * 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
@@ -7,20 +7,18 @@
  * 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.
- * 
+ *
  *************************************************************/
 
-
-
 #include "precompiled_sd.hxx"
 
 #include "FullScreenPane.hxx"
@@ -47,244 +45,227 @@ using ::rtl::OUString;
 namespace sd { namespace framework {
 
 FullScreenPane::FullScreenPane (
-    const Reference<XComponentContext>& rxComponentContext,
-    const Reference<XResourceId>& rxPaneId,
-    const ::Window* pViewShellWindow)
-    : FrameWindowPane(rxPaneId,NULL),
-      mxComponentContext(rxComponentContext),
-      mpWorkWindow(NULL)
+       const Reference<XComponentContext>& rxComponentContext,
+       const Reference<XResourceId>& rxPaneId,
+       const ::Window* pViewShellWindow)
+       :FrameWindowPane(rxPaneId,NULL),
+        mxComponentContext(rxComponentContext),
+        mpWorkWindow(NULL)
 {
-    ::Window* pParent = NULL;
-    mpWorkWindow.reset(new WorkWindow(
-        pParent,
-        0));  // For debugging (non-fullscreen) use WB_BORDER | WB_MOVEABLE | 
WB_SIZEABLE));
-
-    if ( ! rxPaneId.is())
-        throw lang::IllegalArgumentException();
-
-    sal_Int32 nScreenNumber = 1;
-    ExtractArguments(rxPaneId, nScreenNumber);
-    
-    if (mpWorkWindow.get() == NULL)
-        return;
-
-    // Create a new top-leve window that is displayed full screen.
-    mpWorkWindow->ShowFullScreenMode(sal_True, nScreenNumber);
-    // For debugging (non-fullscreen) use 
mpWorkWindow->SetScreenNumber(nScreenNumber);
-    mpWorkWindow->SetMenuBarMode(MENUBAR_MODE_HIDE);
-    mpWorkWindow->SetBorderStyle(WINDOW_BORDER_REMOVEBORDER);
-    mpWorkWindow->SetBackground(Wallpaper());
-    // Don't show the window right now in order to allow the setting of an
-    // accessibility object: accessibility objects are typically
-    // requested by AT-tools when the window is shown.  Chaning it
-    // afterwards may or may not work.
-
-    // Add resize listener at the work window.
-    Link aWindowEventHandler (LINK(this, FullScreenPane, WindowEventHandler));
-    mpWorkWindow->AddEventListener(aWindowEventHandler);
-
-    // Set title and icon of the new window to those of the current window
-    // of the view shell.
-    if (pViewShellWindow != NULL)
-    {
-        const SystemWindow* pSystemWindow = 
pViewShellWindow->GetSystemWindow();
-        mpWorkWindow->SetText(pSystemWindow->GetText());
-        mpWorkWindow->SetIcon(pSystemWindow->GetIcon());
-    }
-
-    // For some reason the VCL canvas can not paint into a WorkWindow.
-    // Therefore a child window is created that covers the WorkWindow
-    // completely.
-    mpWindow = new ::Window(mpWorkWindow.get());
-    mpWindow->SetPosSizePixel(Point(0,0), mpWorkWindow->GetSizePixel());
-    mpWindow->SetBackground(Wallpaper());
-    mxWindow = VCLUnoHelper::GetInterface(mpWindow);
-
-    // Create the canvas.
-    mxCanvas = CreateCanvas();
-
-    mpWindow->GrabFocus();
+       ::Window* pParent = NULL;
+       mpWorkWindow.reset(new WorkWindow(
+               pParent,
+               0)); // For debugging (non-fullscreen) use WB_BORDER | 
WB_MOVEABLE | WB_SIZEABLE));
+
+       if ( ! rxPaneId.is())
+               throw lang::IllegalArgumentException();
+
+       sal_Int32 nScreenNumber = 1;
+       ExtractArguments(rxPaneId, nScreenNumber);
+
+       if (mpWorkWindow.get() == NULL)
+               return;
+
+       // Create a new top-level window that is displayed full screen.
+       mpWorkWindow->ShowFullScreenMode(sal_True, nScreenNumber);
+       // For debugging (non-fullscreen) use 
mpWorkWindow->SetScreenNumber(nScreenNumber);
+       mpWorkWindow->SetMenuBarMode(MENUBAR_MODE_HIDE);
+       mpWorkWindow->SetBorderStyle(WINDOW_BORDER_REMOVEBORDER);
+       mpWorkWindow->SetBackground(Wallpaper());
+       // Don't show the window right now in order to allow the setting of an
+       // accessibility object: accessibility objects are typically
+       // requested by AT-tools when the window is shown. Changing it
+       // afterwards may or may not work.
+
+       // Add resize listener at the work window.
+       Link aWindowEventHandler (LINK(this, FullScreenPane, 
WindowEventHandler));
+       mpWorkWindow->AddEventListener(aWindowEventHandler);
+
+       // Set title and icon of the new window to those of the current window
+       // of the view shell.
+       if (pViewShellWindow != NULL)
+       {
+               const SystemWindow* pSystemWindow = 
pViewShellWindow->GetSystemWindow();
+               mpWorkWindow->SetText(pSystemWindow->GetText());
+               mpWorkWindow->SetIcon(pSystemWindow->GetIcon());
+       }
+
+       // For some reason the VCL canvas can not paint into a WorkWindow.
+       // Therefore a child window is created that covers the WorkWindow
+       // completely.
+       mpWindow = new ::Window(mpWorkWindow.get());
+       mpWindow->SetPosSizePixel(Point(0,0), mpWorkWindow->GetSizePixel());
+       mpWindow->SetBackground(Wallpaper());
+       mxWindow = VCLUnoHelper::GetInterface(mpWindow);
+
+       // Create the canvas.
+       mxCanvas = CreateCanvas();
+
+       mpWindow->GrabFocus();
 }
 
 
-
-
 FullScreenPane::~FullScreenPane (void) throw()
 {
 }
 
 
-
-
 void SAL_CALL FullScreenPane::disposing (void)
 {
-    // We have created the window pointed to by mpWindow, we delete it.
-    if (mpWindow != NULL)
-    {
-        delete mpWindow;
-    }
-
-    if (mpWorkWindow.get() != NULL)
-    {
-        Link aWindowEventHandler (LINK(this, FullScreenPane, 
WindowEventHandler));
-        mpWorkWindow->RemoveEventListener(aWindowEventHandler);
-        mpWorkWindow.reset();
-    }
-    
-    
-    FrameWindowPane::disposing();
-}
+       // We have created the window pointed to by mpWindow, we delete it.
+       if (mpWindow != NULL)
+       {
+               delete mpWindow;
+       }
+
+       if (mpWorkWindow.get() != NULL)
+       {
+               Link aWindowEventHandler (LINK(this, FullScreenPane, 
WindowEventHandler));
+               mpWorkWindow->RemoveEventListener(aWindowEventHandler);
+               mpWorkWindow.reset();
+       }
 
 
+       FrameWindowPane::disposing();
+}
 
 
 //----- XPane -----------------------------------------------------------------
 
 sal_Bool SAL_CALL FullScreenPane::isVisible (void)
-    throw (RuntimeException)
+       throw (RuntimeException)
 {
-    ThrowIfDisposed();
+       ThrowIfDisposed();
 
-    if (mpWindow != NULL)
-        return mpWindow->IsReallyVisible();
-    else
-        return false;
+       if (mpWindow != NULL)
+               return mpWindow->IsReallyVisible();
+       else
+               return false;
 }
 
 
-
-
 void SAL_CALL FullScreenPane::setVisible (const sal_Bool bIsVisible)
-    throw (RuntimeException)
+       throw (RuntimeException)
 {
-    ThrowIfDisposed();
+       ThrowIfDisposed();
 
-    if (mpWindow != NULL)
-        mpWindow->Show(bIsVisible);
-    if( bool(mpWorkWindow))
-        mpWorkWindow->Show(bIsVisible);
+       if (mpWindow != NULL)
+               mpWindow->Show(bIsVisible);
+       if( bool(mpWorkWindow))
+               mpWorkWindow->Show(bIsVisible);
 }
 
 
-
-
 Reference<accessibility::XAccessible> SAL_CALL FullScreenPane::getAccessible 
(void)
-    throw (RuntimeException)
+       throw (RuntimeException)
 {
-    ThrowIfDisposed();
+       ThrowIfDisposed();
 
-    if( bool(mpWorkWindow))
-        return mpWorkWindow->GetAccessible(sal_False);
-    else
-        return NULL;
+       if( bool(mpWorkWindow))
+               return mpWorkWindow->GetAccessible(sal_False);
+       else
+               return NULL;
 }
 
 
-
-
 void SAL_CALL FullScreenPane::setAccessible (
-    const Reference<accessibility::XAccessible>& rxAccessible)
-    throw (RuntimeException)
+       const Reference<accessibility::XAccessible>& rxAccessible)
+       throw (RuntimeException)
 {
-    ThrowIfDisposed();
-    
-    if (mpWindow != NULL)
-    {
-        Reference<lang::XInitialization> xInitializable (rxAccessible, 
UNO_QUERY);
-        if (xInitializable.is())
-        {
-            ::Window* pParentWindow = mpWindow->GetParent();
-            Reference<accessibility::XAccessible> xAccessibleParent;
-            if (pParentWindow != NULL)
-                xAccessibleParent = pParentWindow->GetAccessible();
-            Sequence<Any> aArguments (1);
-            aArguments[0] = Any(xAccessibleParent);
-            xInitializable->initialize(aArguments);
-        }
-        GetWindow()->SetAccessible(rxAccessible);
-    }
+       ThrowIfDisposed();
+
+       if (mpWindow != NULL)
+       {
+               Reference<lang::XInitialization> xInitializable (rxAccessible, 
UNO_QUERY);
+               if (xInitializable.is())
+               {
+                       ::Window* pParentWindow = mpWindow->GetParent();
+                       Reference<accessibility::XAccessible> xAccessibleParent;
+                       if (pParentWindow != NULL)
+                               xAccessibleParent = 
pParentWindow->GetAccessible();
+                       Sequence<Any> aArguments (1);
+                       aArguments[0] = Any(xAccessibleParent);
+                       xInitializable->initialize(aArguments);
+               }
+               GetWindow()->SetAccessible(rxAccessible);
+       }
 }
 
 
-
-
 //-----------------------------------------------------------------------------
 
 IMPL_LINK(FullScreenPane, WindowEventHandler, VclWindowEvent*, pEvent)
 {
        switch (pEvent->GetId())
-    {
-        case VCLEVENT_WINDOW_RESIZE:
-            GetWindow()->SetPosPixel(Point(0,0));
-            GetWindow()->SetSizePixel(Size(
-                mpWorkWindow->GetSizePixel().Width(),
-                mpWorkWindow->GetSizePixel().Height()));
-            break;
-
-        case VCLEVENT_OBJECT_DYING:
-            mpWorkWindow.reset();
-            break;
-    }
-    return 1;
+       {
+               case VCLEVENT_WINDOW_RESIZE:
+                       GetWindow()->SetPosPixel(Point(0,0));
+                       GetWindow()->SetSizePixel(Size(
+                               mpWorkWindow->GetSizePixel().Width(),
+                               mpWorkWindow->GetSizePixel().Height()));
+                       break;
+
+               case VCLEVENT_OBJECT_DYING:
+                       mpWorkWindow.reset();
+                       break;
+       }
+       return 1;
 }
 
 
-
-
 Reference<rendering::XCanvas> FullScreenPane::CreateCanvas (void)
-    throw (RuntimeException)
+       throw (RuntimeException)
 {
-    ::Window* pWindow = VCLUnoHelper::GetWindow(mxWindow);
-    if (pWindow != NULL)
-    {
-        Sequence<Any> aArg (5);
-        
-        // common: first any is VCL pointer to window (for VCL canvas)
-        aArg[0] = makeAny(reinterpret_cast<sal_Int64>(pWindow));
-        aArg[1] = Any();
-        aArg[2] = makeAny(::com::sun::star::awt::Rectangle());
-        aArg[3] = makeAny(sal_False);
-        aArg[4] = makeAny(mxWindow);
-        
-        Reference<lang::XMultiServiceFactory> xFactory (
-            mxComponentContext->getServiceManager(), UNO_QUERY_THROW);
-        return Reference<rendering::XCanvas>(
-            xFactory->createInstanceWithArguments(
-                
OUString::createFromAscii("com.sun.star.rendering.SpriteCanvas.VCL"),
-                aArg),
-            UNO_QUERY);
-    }
-    else
-        throw RuntimeException();
+       ::Window* pWindow = VCLUnoHelper::GetWindow(mxWindow);
+       if (pWindow != NULL)
+       {
+               Sequence<Any> aArg (5);
+
+               // common: first any is VCL pointer to window (for VCL canvas)
+               aArg[0] = makeAny(reinterpret_cast<sal_Int64>(pWindow));
+               aArg[1] = Any();
+               aArg[2] = makeAny(::com::sun::star::awt::Rectangle());
+               aArg[3] = makeAny(sal_False);
+               aArg[4] = makeAny(mxWindow);
+
+               Reference<lang::XMultiServiceFactory> xFactory (
+                       mxComponentContext->getServiceManager(), 
UNO_QUERY_THROW);
+               return Reference<rendering::XCanvas>(
+                       xFactory->createInstanceWithArguments(
+                               
OUString::createFromAscii("com.sun.star.rendering.SpriteCanvas.VCL"),
+                               aArg),
+                       UNO_QUERY);
+       }
+       else
+               throw RuntimeException();
 }
 
 
-
-
 void FullScreenPane::ExtractArguments (
-    const Reference<XResourceId>& rxPaneId,
-    sal_Int32& rnScreenNumberReturnValue)
+       const Reference<XResourceId>& rxPaneId,
+       sal_Int32& rnScreenNumberReturnValue)
 {
-    // Extract arguments from the resource URL.
-    const util::URL aURL = rxPaneId->getFullResourceURL();
-    sal_Int32 nIndex = 0;
-    while (nIndex >= 0)
-    {
-        const OUString aToken = aURL.Arguments.getToken(0, '&', nIndex);
-        if (aToken.getLength() > 0)
-        {
-            // Split at the first '='.
-            const sal_Int32 nAssign = aToken.indexOf('=');
-            const OUString sKey = aToken.copy(0, nAssign);
-            const OUString sValue = aToken.copy(nAssign+1);
-
-            if (sKey.compareToAscii("ScreenNumber") == 0)
-            {
-                rnScreenNumberReturnValue = sValue.toInt32();
-            }
-        }
-    }
+       // Extract arguments from the resource URL.
+       const util::URL aURL = rxPaneId->getFullResourceURL();
+       sal_Int32 nIndex = 0;
+       while (nIndex >= 0)
+       {
+               const OUString aToken = aURL.Arguments.getToken(0, '&', nIndex);
+               if (aToken.getLength() > 0)
+               {
+                       // Split at the first '='.
+                       const sal_Int32 nAssign = aToken.indexOf('=');
+                       const OUString sKey = aToken.copy(0, nAssign);
+                       const OUString sValue = aToken.copy(nAssign+1);
+
+                       if (sKey.compareToAscii("ScreenNumber") == 0)
+                       {
+                               rnScreenNumberReturnValue = sValue.toInt32();
+                       }
+               }
+       }
 }
 
-
 } } // end of namespace sd::framework
+
+/* vim: set noet sw=4 ts=4: */
diff --git a/main/vcl/source/control/tabctrl.cxx 
b/main/vcl/source/control/tabctrl.cxx
index e019e0bea7..24cb0efb8f 100644
--- a/main/vcl/source/control/tabctrl.cxx
+++ b/main/vcl/source/control/tabctrl.cxx
@@ -1,5 +1,5 @@
 /**************************************************************
- * 
+ *
  * 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
@@ -7,20 +7,18 @@
  * 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.
- * 
+ *
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_vcl.hxx"
 
@@ -49,939 +47,939 @@
 
 struct ImplTabItem
 {
-    sal_uInt16              mnId;
-    sal_uInt16              mnTabPageResId;
-    TabPage*            mpTabPage;
-    String              maText;
-    String              maFormatText;
-    String              maHelpText;
-    rtl::OString        maHelpId;
-    Rectangle           maRect;
-    sal_uInt16              mnLine;
-    bool                mbFullVisible;
-    bool                mbEnabled;
-    Image               maTabImage;
-
-    ImplTabItem()
-    : mnId( 0 ), mnTabPageResId( 0 ), mpTabPage( NULL ),
-      mnLine( 0 ), mbFullVisible( sal_False ), mbEnabled( true )
-    {}
+       sal_uInt16                              mnId;
+       sal_uInt16                              mnTabPageResId;
+       TabPage*                        mpTabPage;
+       String                          maText;
+       String                          maFormatText;
+       String                          maHelpText;
+       rtl::OString            maHelpId;
+       Rectangle                       maRect;
+       sal_uInt16                              mnLine;
+       bool                            mbFullVisible;
+       bool                            mbEnabled;
+       Image                           maTabImage;
+
+       ImplTabItem()
+       : mnId( 0 ), mnTabPageResId( 0 ), mpTabPage( NULL ),
+         mnLine( 0 ), mbFullVisible( sal_False ), mbEnabled( true )
+         {}
 };
 
 // -----------------------------------------------------------------------
 
 struct ImplTabCtrlData
 {
-    std::hash_map< int, int >          maLayoutPageIdToLine;
-    std::hash_map< int, int >          maLayoutLineToPageId;
-    std::vector< Rectangle >           maTabRectangles;
-    Point                           maItemsOffset;       // offset of the 
tabitems
-    std::vector< ImplTabItem >      maItemList;
-    ListBox*                        mpListBox;
-    Size                            maMinSize;
+       std::hash_map< int, int >               maLayoutPageIdToLine;
+       std::hash_map< int, int >               maLayoutLineToPageId;
+       std::vector< Rectangle >                maTabRectangles;
+       Point                                                   maItemsOffset; 
// offset of the tabitems
+       std::vector< ImplTabItem >              maItemList;
+       ListBox*                                                mpListBox;
+       Size                                                    maMinSize;
 };
 
 // -----------------------------------------------------------------------
 
-#define TAB_OFFSET          3
-#define TAB_TABOFFSET_X     3
-#define TAB_TABOFFSET_Y     3
-#define TAB_EXTRASPACE_X    6
-#define TAB_BORDER_LEFT     1
-#define TAB_BORDER_TOP      1
-#define TAB_BORDER_RIGHT    2
-#define TAB_BORDER_BOTTOM   2
+#define TAB_OFFSET                     3
+#define TAB_TABOFFSET_X                3
+#define TAB_TABOFFSET_Y                3
+#define TAB_EXTRASPACE_X       6
+#define TAB_BORDER_LEFT                1
+#define TAB_BORDER_TOP         1
+#define TAB_BORDER_RIGHT       2
+#define TAB_BORDER_BOTTOM      2
 
 // Fuer die Ermittlung von den Tab-Positionen
-#define TAB_PAGERECT        0xFFFF
+#define TAB_PAGERECT           0xFFFF
 
 // =======================================================================
 
 void TabControl::ImplInit( Window* pParent, WinBits nStyle )
 {
-    if ( !(nStyle & WB_NOTABSTOP) )
-        nStyle |= WB_TABSTOP;
-    if ( !(nStyle & WB_NOGROUP) )
-        nStyle |= WB_GROUP;
-    if ( !(nStyle & WB_NODIALOGCONTROL) )
-        nStyle |= WB_DIALOGCONTROL;
-
-    Control::ImplInit( pParent, nStyle, NULL );
-
-    mnLastWidth                        = 0;
-    mnLastHeight                       = 0;
-    mnBtnSize                          = 0;
-    mnMaxPageWidth                     = 0;
-    mnActPageId                        = 0;
-    mnCurPageId                        = 0;
-    mbFormat                           = sal_True;
-    mbRestoreHelpId                    = sal_False;
-    mbRestoreUnqId                     = sal_False;
-    mbSmallInvalidate                  = sal_False;
-    mbExtraSpace                       = sal_False;
-    mpTabCtrlData               = new ImplTabCtrlData;
-    mpTabCtrlData->mpListBox    = NULL;
-
-
-    ImplInitSettings( sal_True, sal_True, sal_True );
-
-    if( (nStyle & WB_DROPDOWN) )
-    {
-        mpTabCtrlData->mpListBox = new ListBox( this, WB_DROPDOWN );
-        mpTabCtrlData->mpListBox->SetPosSizePixel( Point( 0, 0 ), Size( 200, 
20 ) );
-        mpTabCtrlData->mpListBox->SetSelectHdl( LINK( this, TabControl, 
ImplListBoxSelectHdl ) );
-        mpTabCtrlData->mpListBox->Show();
-    }
-
-    // if the tabcontrol is drawn (ie filled) by a native widget, make sure 
all contols will have transparent background
-    // otherwise they will paint with a wrong background
-    if( IsNativeControlSupported(CTRL_TAB_PANE, PART_ENTIRE_CONTROL) )
-        EnableChildTransparentMode( sal_True );
-    
-    if ( pParent->IsDialog() )
-        pParent->AddChildEventListener( LINK( this, TabControl, 
ImplWindowEventListener ) );
+       if ( !(nStyle & WB_NOTABSTOP) )
+               nStyle |= WB_TABSTOP;
+       if ( !(nStyle & WB_NOGROUP) )
+               nStyle |= WB_GROUP;
+       if ( !(nStyle & WB_NODIALOGCONTROL) )
+               nStyle |= WB_DIALOGCONTROL;
+
+       Control::ImplInit( pParent, nStyle, NULL );
+
+       mnLastWidth                                     = 0;
+       mnLastHeight                            = 0;
+       mnBtnSize                                       = 0;
+       mnMaxPageWidth                          = 0;
+       mnActPageId                                     = 0;
+       mnCurPageId                                     = 0;
+       mbFormat                                        = sal_True;
+       mbRestoreHelpId                         = sal_False;
+       mbRestoreUnqId                          = sal_False;
+       mbSmallInvalidate                       = sal_False;
+       mbExtraSpace                            = sal_False;
+       mpTabCtrlData                           = new ImplTabCtrlData;
+       mpTabCtrlData->mpListBox        = NULL;
+
+
+       ImplInitSettings( sal_True, sal_True, sal_True );
+
+       if( (nStyle & WB_DROPDOWN) )
+       {
+               mpTabCtrlData->mpListBox = new ListBox( this, WB_DROPDOWN );
+               mpTabCtrlData->mpListBox->SetPosSizePixel( Point( 0, 0 ), Size( 
200, 20 ) );
+               mpTabCtrlData->mpListBox->SetSelectHdl( LINK( this, TabControl, 
ImplListBoxSelectHdl ) );
+               mpTabCtrlData->mpListBox->Show();
+       }
+
+       // if the tabcontrol is drawn (i.e. filled) by a native widget, make 
sure all controls will have transparent background
+       // otherwise they will paint with a wrong background
+       if( IsNativeControlSupported(CTRL_TAB_PANE, PART_ENTIRE_CONTROL) )
+               EnableChildTransparentMode( sal_True );
+
+       if ( pParent->IsDialog() )
+               pParent->AddChildEventListener( LINK( this, TabControl, 
ImplWindowEventListener ) );
 }
 
 // -----------------------------------------------------------------
 
 const Font& TabControl::GetCanonicalFont( const StyleSettings& _rStyle ) const
 {
-    return _rStyle.GetAppFont();
+       return _rStyle.GetAppFont();
 }
 
 // -----------------------------------------------------------------
 const Color& TabControl::GetCanonicalTextColor( const StyleSettings& _rStyle ) 
const
 {
-    return _rStyle.GetButtonTextColor();
+       return _rStyle.GetButtonTextColor();
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::ImplInitSettings( sal_Bool bFont,
-                                   sal_Bool bForeground, sal_Bool bBackground )
-{
-    Control::ImplInitSettings( bFont, bForeground );
-
-    if ( bBackground )
-    {
-        Window* pParent = GetParent();
-        if ( !IsControlBackground() &&
-            (pParent->IsChildTransparentModeEnabled()
-            || IsNativeControlSupported(CTRL_TAB_PANE, PART_ENTIRE_CONTROL)
-            || IsNativeControlSupported(CTRL_TAB_ITEM, PART_ENTIRE_CONTROL) ) )
-
-        {
-            // set transparent mode for NWF tabcontrols to have
-            // the background always cleared properly
-            EnableChildTransparentMode( sal_True );
-            SetParentClipMode( PARENTCLIPMODE_NOCLIP );
-            SetPaintTransparent( sal_True );
-            SetBackground();
-            ImplGetWindowImpl()->mbUseNativeFocus = 
ImplGetSVData()->maNWFData.mbNoFocusRects;
-        }
-        else
-        {
-            EnableChildTransparentMode( sal_False );
-            SetParentClipMode( 0 );
-            SetPaintTransparent( sal_False );
-
-            if ( IsControlBackground() )
-                SetBackground( GetControlBackground() );
-            else
-                SetBackground( pParent->GetBackground() );
-        }
-    }
+                                                                  sal_Bool 
bForeground, sal_Bool bBackground )
+{
+       Control::ImplInitSettings( bFont, bForeground );
+
+       if ( bBackground )
+       {
+               Window* pParent = GetParent();
+               if ( !IsControlBackground() &&
+                        (pParent->IsChildTransparentModeEnabled()
+                        || IsNativeControlSupported(CTRL_TAB_PANE, 
PART_ENTIRE_CONTROL)
+                        || IsNativeControlSupported(CTRL_TAB_ITEM, 
PART_ENTIRE_CONTROL) ) )
+
+               {
+                       // set transparent mode for NWF tabcontrols to have
+                       // the background always cleared properly
+                       EnableChildTransparentMode( sal_True );
+                       SetParentClipMode( PARENTCLIPMODE_NOCLIP );
+                       SetPaintTransparent( sal_True );
+                       SetBackground();
+                       ImplGetWindowImpl()->mbUseNativeFocus = 
ImplGetSVData()->maNWFData.mbNoFocusRects;
+               }
+               else
+               {
+                       EnableChildTransparentMode( sal_False );
+                       SetParentClipMode( 0 );
+                       SetPaintTransparent( sal_False );
+
+                       if ( IsControlBackground() )
+                               SetBackground( GetControlBackground() );
+                       else
+                               SetBackground( pParent->GetBackground() );
+               }
+       }
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::ImplFreeLayoutData()
 {
-    if( HasLayoutData() )
-    {
-        ImplClearLayoutData();
-        mpTabCtrlData->maLayoutPageIdToLine.clear();
-        mpTabCtrlData->maLayoutLineToPageId.clear();
-    }
+       if( HasLayoutData() )
+       {
+               ImplClearLayoutData();
+               mpTabCtrlData->maLayoutPageIdToLine.clear();
+               mpTabCtrlData->maLayoutLineToPageId.clear();
+       }
 }
 
 // -----------------------------------------------------------------------
 
 TabControl::TabControl( Window* pParent, WinBits nStyle ) :
-    Control( WINDOW_TABCONTROL )
+       Control( WINDOW_TABCONTROL )
 {
-    ImplInit( pParent, nStyle );
+       ImplInit( pParent, nStyle );
 }
 
 // -----------------------------------------------------------------------
 
 TabControl::TabControl( Window* pParent, const ResId& rResId ) :
-    Control( WINDOW_TABCONTROL )
+       Control( WINDOW_TABCONTROL )
 {
-    rResId.SetRT( RSC_TABCONTROL );
-    WinBits nStyle = ImplInitRes( rResId );
-    ImplInit( pParent, nStyle );
-    ImplLoadRes( rResId );
+       rResId.SetRT( RSC_TABCONTROL );
+       WinBits nStyle = ImplInitRes( rResId );
+       ImplInit( pParent, nStyle );
+       ImplLoadRes( rResId );
 
-    if ( !(nStyle & WB_HIDE) )
-        Show();
+       if ( !(nStyle & WB_HIDE) )
+               Show();
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::ImplLoadRes( const ResId& rResId )
 {
-    Control::ImplLoadRes( rResId );
+       Control::ImplLoadRes( rResId );
 
-    sal_uLong nObjMask = ReadLongRes();
+       sal_uLong nObjMask = ReadLongRes();
 
-    if ( nObjMask & RSC_TABCONTROL_ITEMLIST )
-    {
-        sal_uLong nEle = ReadLongRes();
-
-        // Item hinzufuegen
-        for( sal_uLong i = 0; i < nEle; i++ )
-        {
-            InsertPage( ResId( (RSHEADER_TYPE *)GetClassRes(), 
*rResId.GetResMgr() ) );
-            IncrementRes( GetObjSizeRes( (RSHEADER_TYPE *)GetClassRes() ) );
-        }
-    }
+       if ( nObjMask & RSC_TABCONTROL_ITEMLIST )
+       {
+               sal_uLong nEle = ReadLongRes();
+
+               // add item
+               for( sal_uLong i = 0; i < nEle; i++ )
+               {
+                       InsertPage( ResId( (RSHEADER_TYPE *)GetClassRes(), 
*rResId.GetResMgr() ) );
+                       IncrementRes( GetObjSizeRes( (RSHEADER_TYPE 
*)GetClassRes() ) );
+               }
+       }
 }
 
 // -----------------------------------------------------------------------
 
 TabControl::~TabControl()
 {
-    if ( GetParent()->IsDialog() )
-        GetParent()->RemoveChildEventListener( LINK( this, TabControl, 
ImplWindowEventListener ) );
+       if ( GetParent()->IsDialog() )
+               GetParent()->RemoveChildEventListener( LINK( this, TabControl, 
ImplWindowEventListener ) );
 
-    ImplFreeLayoutData();
+       ImplFreeLayoutData();
 
-    // TabCtrl-Daten loeschen
-    if ( mpTabCtrlData )
-    {
-        if( mpTabCtrlData->mpListBox )
-            delete mpTabCtrlData->mpListBox;
-        delete mpTabCtrlData;
-    }
+       // TabCtrl-Daten loeschen
+       if ( mpTabCtrlData )
+       {
+               if( mpTabCtrlData->mpListBox )
+                       delete mpTabCtrlData->mpListBox;
+               delete mpTabCtrlData;
+       }
 }
 
 // -----------------------------------------------------------------------
 
 ImplTabItem* TabControl::ImplGetItem( sal_uInt16 nId ) const
 {
-    for( std::vector< ImplTabItem >::iterator it = 
mpTabCtrlData->maItemList.begin();
-         it != mpTabCtrlData->maItemList.end(); ++it )
-    {
-        if( it->mnId == nId )
-            return &(*it);
-    }
+       for( std::vector< ImplTabItem >::iterator it = 
mpTabCtrlData->maItemList.begin();
+               it != mpTabCtrlData->maItemList.end(); ++it )
+       {
+               if( it->mnId == nId )
+                       return &(*it);
+       }
 
-    return NULL;
+       return NULL;
 }
 
 // -----------------------------------------------------------------------
 
 Size TabControl::ImplGetItemSize( ImplTabItem* pItem, long nMaxWidth )
 {
-    pItem->maFormatText = pItem->maText;
-    Size aSize( GetCtrlTextWidth( pItem->maFormatText ), GetTextHeight() );
-    Size aImageSize( 0, 0 );
-    if( !!pItem->maTabImage )
-    {
-        aImageSize = pItem->maTabImage.GetSizePixel();
-        if( pItem->maFormatText.Len() )
-            aImageSize.Width() += GetTextHeight()/4;
-    }
-    aSize.Width() += aImageSize.Width();
-    if( aImageSize.Height() > aSize.Height() )
-        aSize.Height() = aImageSize.Height();
-
-    aSize.Width()  += TAB_TABOFFSET_X*2;
-    aSize.Height() += TAB_TABOFFSET_Y*2;
-
-    Rectangle aCtrlRegion( Point( 0, 0 ), aSize );
-    Rectangle aBoundingRgn, aContentRgn;
-    const ImplControlValue aControlValue;
-    if(GetNativeControlRegion( CTRL_TAB_ITEM, PART_ENTIRE_CONTROL, aCtrlRegion,
-                                           CTRL_STATE_ENABLED, aControlValue, 
rtl::OUString(),
-                                           aBoundingRgn, aContentRgn ) )
-    {
-        return aContentRgn.GetSize();
-    }
-
-    // For systems without synthetic bold support
-    if ( mbExtraSpace )
-        aSize.Width() += TAB_EXTRASPACE_X;
-    // For languages with short names (e.g. Chinese), because the space is
-    // normally only one pixel per char
-    else if ( pItem->maFormatText.Len() < TAB_EXTRASPACE_X )
-        aSize.Width() += TAB_EXTRASPACE_X-pItem->maFormatText.Len();
-
-    // Evt. den Text kuerzen
-    if ( aSize.Width()+4 >= nMaxWidth )
-    {
-        XubString aAppendStr( RTL_CONSTASCII_USTRINGPARAM( "..." ) );
-        pItem->maFormatText += aAppendStr;
-        do
-        {
-            pItem->maFormatText.Erase( 
pItem->maFormatText.Len()-aAppendStr.Len()-1, 1 );
-            aSize.Width() = GetCtrlTextWidth( pItem->maFormatText );
-            aSize.Width() += aImageSize.Width();
-            aSize.Width() += TAB_TABOFFSET_X*2;
-        }
-        while ( (aSize.Width()+4 >= nMaxWidth) && (pItem->maFormatText.Len() > 
aAppendStr.Len()) );
-        if ( aSize.Width()+4 >= nMaxWidth )
-        {
-            pItem->maFormatText.Assign( '.' );
-            aSize.Width() = 1;
-        }
-    }
-
-    if( pItem->maFormatText.Len() == 0 )
-    {
-        if( aSize.Height() < aImageSize.Height()+4 ) //leave space for focus 
rect
-            aSize.Height() = aImageSize.Height()+4;
-    }
-
-    return aSize;
+       pItem->maFormatText = pItem->maText;
+       Size aSize( GetCtrlTextWidth( pItem->maFormatText ), GetTextHeight() );
+       Size aImageSize( 0, 0 );
+       if( !!pItem->maTabImage )
+       {
+               aImageSize = pItem->maTabImage.GetSizePixel();
+               if( pItem->maFormatText.Len() )
+                       aImageSize.Width() += GetTextHeight()/4;
+       }
+       aSize.Width() += aImageSize.Width();
+       if( aImageSize.Height() > aSize.Height() )
+               aSize.Height() = aImageSize.Height();
+
+       aSize.Width()  += TAB_TABOFFSET_X*2;
+       aSize.Height() += TAB_TABOFFSET_Y*2;
+
+       Rectangle aCtrlRegion( Point( 0, 0 ), aSize );
+       Rectangle aBoundingRgn, aContentRgn;
+       const ImplControlValue aControlValue;
+       if(GetNativeControlRegion( CTRL_TAB_ITEM, PART_ENTIRE_CONTROL, 
aCtrlRegion,
+                                                                               
        CTRL_STATE_ENABLED, aControlValue, rtl::OUString(),
+                                                                               
        aBoundingRgn, aContentRgn ) )
+       {
+               return aContentRgn.GetSize();
+       }
+
+       // For systems without synthetic bold support
+       if ( mbExtraSpace )
+               aSize.Width() += TAB_EXTRASPACE_X;
+       // For languages with short names (e.g. Chinese), because the space is
+       // normally only one pixel per char
+       else if ( pItem->maFormatText.Len() < TAB_EXTRASPACE_X )
+               aSize.Width() += TAB_EXTRASPACE_X-pItem->maFormatText.Len();
+
+       // Evtl. den Text kuerzen
+       if ( aSize.Width()+4 >= nMaxWidth )
+       {
+               XubString aAppendStr( RTL_CONSTASCII_USTRINGPARAM( "..." ) );
+               pItem->maFormatText += aAppendStr;
+               do
+               {
+                       pItem->maFormatText.Erase( 
pItem->maFormatText.Len()-aAppendStr.Len()-1, 1 );
+                       aSize.Width() = GetCtrlTextWidth( pItem->maFormatText );
+                       aSize.Width() += aImageSize.Width();
+                       aSize.Width() += TAB_TABOFFSET_X*2;
+               }
+               while ( (aSize.Width()+4 >= nMaxWidth) && 
(pItem->maFormatText.Len() > aAppendStr.Len()) );
+               if ( aSize.Width()+4 >= nMaxWidth )
+               {
+                       pItem->maFormatText.Assign( '.' );
+                       aSize.Width() = 1;
+               }
+       }
+
+       if( pItem->maFormatText.Len() == 0 )
+       {
+               if( aSize.Height() < aImageSize.Height()+4 ) // leave space for 
focus rect
+                       aSize.Height() = aImageSize.Height()+4;
+       }
+
+       return aSize;
 }
 
 // -----------------------------------------------------------------------
 
 Rectangle TabControl::ImplGetTabRect( sal_uInt16 nItemPos, long nWidth, long 
nHeight )
 {
-    Size aWinSize = Control::GetOutputSizePixel();
-    if ( nWidth < 0 )
-        nWidth = aWinSize.Width();
-    if ( nHeight < 0 )
-        nHeight = aWinSize.Height();
-
-    if ( mpTabCtrlData->maItemList.empty() )
-    {
-        long nW = nWidth-TAB_OFFSET*2;
-        long nH = nHeight-TAB_OFFSET*2;
-        return (nW > 0 && nH > 0)
-        ? Rectangle( Point( TAB_OFFSET, TAB_OFFSET ), Size( nW, nH ) )
-        : Rectangle();
-    }
-
-    if ( nItemPos == TAB_PAGERECT )
-    {
-        sal_uInt16 nLastPos;
-        if ( mnCurPageId )
-            nLastPos = GetPagePos( mnCurPageId );
-        else
-            nLastPos = 0;
-
-        Rectangle aRect = ImplGetTabRect( nLastPos, nWidth, nHeight );
-        long nW = nWidth-TAB_OFFSET*2;
-        long nH = nHeight-aRect.Bottom()-TAB_OFFSET*2;
-        aRect = (nW > 0 && nH > 0)
-        ? Rectangle( Point( TAB_OFFSET, aRect.Bottom()+TAB_OFFSET ), Size( nW, 
nH ) )
-        : Rectangle();
-        return aRect;
-    }
-
-    nWidth -= 1;
-
-    if ( (nWidth <= 0) || (nHeight <= 0) )
-        return Rectangle();
-
-    if ( mbFormat || (mnLastWidth != nWidth) || (mnLastHeight != nHeight) )
-    {
-        Font aFont( GetFont() );
-        Font aLightFont = aFont;
-        aFont.SetTransparent( sal_True );
-        aFont.SetWeight( (!ImplGetSVData()->maNWFData.mbNoBoldTabFocus) ? 
WEIGHT_BOLD : WEIGHT_LIGHT );
-        aLightFont.SetTransparent( sal_True );
-        aLightFont.SetWeight( WEIGHT_LIGHT );
-
-        // If Bold and none Bold strings have the same width, we
-        // add in the calcultion extra space, so that the tabs
-        // looks better. The could be the case on systems without
-        // an bold UI font and without synthetic bold support
-        XubString aTestStr( RTL_CONSTASCII_USTRINGPARAM( "Abc." ) );
-        SetFont( aLightFont );
-        long nTextWidth1 = GetTextWidth( aTestStr );
-        SetFont( aFont );
-        long nTextWidth2 = GetTextWidth( aTestStr );
-        mbExtraSpace = (nTextWidth1 == nTextWidth2);
-
-        Size            aSize;
-        const long      nOffsetX = 2 + GetItemsOffset().X();
-        const long      nOffsetY = 2 + GetItemsOffset().Y();
-        long            nX = nOffsetX;
-        long            nY = nOffsetY;
-        long            nMaxWidth = nWidth;
-        sal_uInt16          nPos = 0;
-
-        if ( (mnMaxPageWidth > 0) && (mnMaxPageWidth < nMaxWidth) )
-            nMaxWidth = mnMaxPageWidth;
-        nMaxWidth -= GetItemsOffset().X();
-
-        sal_uInt16          nLines = 0;
-        sal_uInt16          nCurLine = 0;
-        long            nLineWidthAry[100];
-        sal_uInt16          nLinePosAry[101];
-
-        nLineWidthAry[0] = 0;
-        nLinePosAry[0] = 0;
-        for( std::vector<ImplTabItem>::iterator it = 
mpTabCtrlData->maItemList.begin();
-             it != mpTabCtrlData->maItemList.end(); ++it )
-        {
-            aSize = ImplGetItemSize( &(*it), nMaxWidth );
-
-            if ( ((nX+aSize.Width()) > nWidth - 2) && (nWidth > 2+nOffsetX) )
-            {
-                if ( nLines == 99 )
-                    break;
-
-                nX  = nOffsetX;
-                nY += aSize.Height();
-                nLines++;
-                nLineWidthAry[nLines] = 0;
-                nLinePosAry[nLines] = nPos;
-            }
-
-            Rectangle aNewRect( Point( nX, nY ), aSize );
-            if ( mbSmallInvalidate && (it->maRect != aNewRect) )
-                mbSmallInvalidate = sal_False;
-            it->maRect = aNewRect;
-            it->mnLine = nLines;
-            it->mbFullVisible = sal_True;
-
-            nLineWidthAry[nLines] += aSize.Width();
-            nX += aSize.Width();
-
-            if ( it->mnId == mnCurPageId )
-                nCurLine = nLines;
-
-            nPos++;
-        }
-
-        if ( nLines && !mpTabCtrlData->maItemList.empty() )
-        {
-            long    nDX = 0;
-            long    nModDX = 0;
-            long    nIDX = 0;
-            sal_uInt16  i;
-            sal_uInt16  n;
-            long    nLineHeightAry[100];
-            long    nIH = mpTabCtrlData->maItemList[0].maRect.Bottom()-2;
-
-            i = 0;
-            while ( i < nLines+1 )
-            {
-                if ( i <= nCurLine )
-                    nLineHeightAry[i] = nIH*(nLines-(nCurLine-i)) + 
GetItemsOffset().Y();
-                else
-                    nLineHeightAry[i] = nIH*(i-nCurLine-1) + 
GetItemsOffset().Y();
-                i++;
-            }
-
-            i = 0;
-            n = 0;
-            nLinePosAry[nLines+1] = 
(sal_uInt16)mpTabCtrlData->maItemList.size();
-            for( std::vector< ImplTabItem >::iterator it = 
mpTabCtrlData->maItemList.begin();
-                 it != mpTabCtrlData->maItemList.end(); ++it )
-            {
-                if ( i == nLinePosAry[n] )
-                {
-                    if ( n == nLines+1 )
-                        break;
-
-                    nIDX = 0;
-                    if( nLinePosAry[n+1]-i > 0 )
-                    {
-                        nDX = (nWidth-nOffsetX-nLineWidthAry[n]) / 
(nLinePosAry[n+1]-i);
-                        nModDX = (nWidth-nOffsetX-nLineWidthAry[n]) % 
(nLinePosAry[n+1]-i);
-                    }
-                    else
-                    {
-                        // FIXME: this is a bad case of tabctrl way too small
-                        nDX = 0;
-                        nModDX = 0;
-                    }
-                    n++;
-                }
-
-                it->maRect.Left()   += nIDX;
-                it->maRect.Right()  += nIDX+nDX;
-                it->maRect.Top()     = nLineHeightAry[n-1];
-                it->maRect.Bottom()  = nLineHeightAry[n-1]+nIH;
-                nIDX += nDX;
-
-                if ( nModDX )
-                {
-                    nIDX++;
-                    it->maRect.Right()++;
-                    nModDX--;
-                }
-
-                i++;
-            }
-        }
-        else
-        {//only one line
-            if(ImplGetSVData()->maNWFData.mbCenteredTabs)
-            {
-                int nRightSpace=nMaxWidth;//space left on the right by the tabs
-                for( std::vector< ImplTabItem >::iterator it = 
mpTabCtrlData->maItemList.begin();
-                     it != mpTabCtrlData->maItemList.end(); ++it )
-                {
-                    nRightSpace-=it->maRect.Right()-it->maRect.Left();
-                }
-                for( std::vector< ImplTabItem >::iterator it = 
mpTabCtrlData->maItemList.begin();
-                     it != mpTabCtrlData->maItemList.end(); ++it )
-                {
-                    it->maRect.Left()+=(int) (nRightSpace/2);
-                    it->maRect.Right()+=(int) (nRightSpace/2);
-                }
-            }
-        }
-
-        mnLastWidth     = nWidth;
-        mnLastHeight    = nHeight;
-        mbFormat        = sal_False;
-    }
-
-    return size_t(nItemPos) < mpTabCtrlData->maItemList.size() ? 
mpTabCtrlData->maItemList[nItemPos].maRect : Rectangle();
+       Size aWinSize = Control::GetOutputSizePixel();
+       if ( nWidth < 0 )
+               nWidth = aWinSize.Width();
+       if ( nHeight < 0 )
+               nHeight = aWinSize.Height();
+
+       if ( mpTabCtrlData->maItemList.empty() )
+       {
+               long nW = nWidth-TAB_OFFSET*2;
+               long nH = nHeight-TAB_OFFSET*2;
+               return (nW > 0 && nH > 0)
+               ? Rectangle( Point( TAB_OFFSET, TAB_OFFSET ), Size( nW, nH ) )
+               : Rectangle();
+       }
+
+       if ( nItemPos == TAB_PAGERECT )
+       {
+               sal_uInt16 nLastPos;
+               if ( mnCurPageId )
+                       nLastPos = GetPagePos( mnCurPageId );
+               else
+                       nLastPos = 0;
+
+               Rectangle aRect = ImplGetTabRect( nLastPos, nWidth, nHeight );
+               long nW = nWidth-TAB_OFFSET*2;
+               long nH = nHeight-aRect.Bottom()-TAB_OFFSET*2;
+               aRect = (nW > 0 && nH > 0)
+               ? Rectangle( Point( TAB_OFFSET, aRect.Bottom()+TAB_OFFSET ), 
Size( nW, nH ) )
+               : Rectangle();
+               return aRect;
+       }
+
+       nWidth -= 1;
+
+       if ( (nWidth <= 0) || (nHeight <= 0) )
+               return Rectangle();
+
+       if ( mbFormat || (mnLastWidth != nWidth) || (mnLastHeight != nHeight) )
+       {
+               Font aFont( GetFont() );
+               Font aLightFont = aFont;
+               aFont.SetTransparent( sal_True );
+               aFont.SetWeight( (!ImplGetSVData()->maNWFData.mbNoBoldTabFocus) 
? WEIGHT_BOLD : WEIGHT_LIGHT );
+               aLightFont.SetTransparent( sal_True );
+               aLightFont.SetWeight( WEIGHT_LIGHT );
+
+               // If Bold and none Bold strings have the same width, we
+               // add in the calculation extra space, so that the tabs
+               // looks better. This could be the case on systems without
+               // an bold UI font and without synthetic bold support
+               XubString aTestStr( RTL_CONSTASCII_USTRINGPARAM( "Abc." ) );
+               SetFont( aLightFont );
+               long nTextWidth1 = GetTextWidth( aTestStr );
+               SetFont( aFont );
+               long nTextWidth2 = GetTextWidth( aTestStr );
+               mbExtraSpace = (nTextWidth1 == nTextWidth2);
+
+               Size                    aSize;
+               const long              nOffsetX = 2 + GetItemsOffset().X();
+               const long              nOffsetY = 2 + GetItemsOffset().Y();
+               long                    nX = nOffsetX;
+               long                    nY = nOffsetY;
+               long                    nMaxWidth = nWidth;
+               sal_uInt16                      nPos = 0;
+
+               if ( (mnMaxPageWidth > 0) && (mnMaxPageWidth < nMaxWidth) )
+                       nMaxWidth = mnMaxPageWidth;
+               nMaxWidth -= GetItemsOffset().X();
+
+               sal_uInt16                      nLines = 0;
+               sal_uInt16                      nCurLine = 0;
+               long                    nLineWidthAry[100];
+               sal_uInt16                      nLinePosAry[101];
+
+               nLineWidthAry[0] = 0;
+               nLinePosAry[0] = 0;
+               for( std::vector<ImplTabItem>::iterator it = 
mpTabCtrlData->maItemList.begin();
+                        it != mpTabCtrlData->maItemList.end(); ++it )
+               {
+                       aSize = ImplGetItemSize( &(*it), nMaxWidth );
+
+                       if ( ((nX+aSize.Width()) > nWidth - 2) && (nWidth > 
2+nOffsetX) )
+                       {
+                               if ( nLines == 99 )
+                                       break;
+
+                               nX  = nOffsetX;
+                               nY += aSize.Height();
+                               nLines++;
+                               nLineWidthAry[nLines] = 0;
+                               nLinePosAry[nLines] = nPos;
+                       }
+
+                       Rectangle aNewRect( Point( nX, nY ), aSize );
+                       if ( mbSmallInvalidate && (it->maRect != aNewRect) )
+                               mbSmallInvalidate = sal_False;
+                       it->maRect = aNewRect;
+                       it->mnLine = nLines;
+                       it->mbFullVisible = sal_True;
+
+                       nLineWidthAry[nLines] += aSize.Width();
+                       nX += aSize.Width();
+
+                       if ( it->mnId == mnCurPageId )
+                               nCurLine = nLines;
+
+                       nPos++;
+               }
+
+               if ( nLines && !mpTabCtrlData->maItemList.empty() )
+               {
+                       long    nDX = 0;
+                       long    nModDX = 0;
+                       long    nIDX = 0;
+                       sal_uInt16      i;
+                       sal_uInt16      n;
+                       long    nLineHeightAry[100];
+                       long    nIH = 
mpTabCtrlData->maItemList[0].maRect.Bottom()-2;
+
+                       i = 0;
+                       while ( i < nLines+1 )
+                       {
+                               if ( i <= nCurLine )
+                                       nLineHeightAry[i] = 
nIH*(nLines-(nCurLine-i)) + GetItemsOffset().Y();
+                               else
+                                       nLineHeightAry[i] = nIH*(i-nCurLine-1) 
+ GetItemsOffset().Y();
+                               i++;
+                       }
+
+                       i = 0;
+                       n = 0;
+                       nLinePosAry[nLines+1] = 
(sal_uInt16)mpTabCtrlData->maItemList.size();
+                       for( std::vector< ImplTabItem >::iterator it = 
mpTabCtrlData->maItemList.begin();
+                                it != mpTabCtrlData->maItemList.end(); ++it )
+                       {
+                               if ( i == nLinePosAry[n] )
+                               {
+                                       if ( n == nLines+1 )
+                                               break;
+
+                                       nIDX = 0;
+                                       if( nLinePosAry[n+1]-i > 0 )
+                                       {
+                                               nDX = 
(nWidth-nOffsetX-nLineWidthAry[n]) / (nLinePosAry[n+1]-i);
+                                               nModDX = 
(nWidth-nOffsetX-nLineWidthAry[n]) % (nLinePosAry[n+1]-i);
+                                       }
+                                       else
+                                       {
+                                               // FIXME: this is a bad case of 
tabctrl way too small
+                                               nDX = 0;
+                                               nModDX = 0;
+                                       }
+                                       n++;
+                               }
+
+                               it->maRect.Left()   += nIDX;
+                               it->maRect.Right()  += nIDX+nDX;
+                               it->maRect.Top()     = nLineHeightAry[n-1];
+                               it->maRect.Bottom()  = nLineHeightAry[n-1]+nIH;
+                               nIDX += nDX;
+
+                               if ( nModDX )
+                               {
+                                       nIDX++;
+                                       it->maRect.Right()++;
+                                       nModDX--;
+                               }
+
+                               i++;
+                       }
+               }
+               else
+               {// only one line
+                       if(ImplGetSVData()->maNWFData.mbCenteredTabs)
+                       {
+                               int nRightSpace=nMaxWidth;// space left on the 
right by the tabs
+                               for( std::vector< ImplTabItem >::iterator it = 
mpTabCtrlData->maItemList.begin();
+                                       it != mpTabCtrlData->maItemList.end(); 
++it )
+                               {
+                                       
nRightSpace-=it->maRect.Right()-it->maRect.Left();
+                               }
+                               for( std::vector< ImplTabItem >::iterator it = 
mpTabCtrlData->maItemList.begin();
+                                       it != mpTabCtrlData->maItemList.end(); 
++it )
+                               {
+                                       it->maRect.Left()+=(int) 
(nRightSpace/2);
+                                       it->maRect.Right()+=(int) 
(nRightSpace/2);
+                               }
+                       }
+               }
+
+               mnLastWidth             = nWidth;
+               mnLastHeight    = nHeight;
+               mbFormat                = sal_False;
+       }
+
+       return size_t(nItemPos) < mpTabCtrlData->maItemList.size() ? 
mpTabCtrlData->maItemList[nItemPos].maRect : Rectangle();
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::ImplChangeTabPage( sal_uInt16 nId, sal_uInt16 nOldId )
 {
-    ImplFreeLayoutData();
-
-    ImplTabItem*    pOldItem = ImplGetItem( nOldId );
-    ImplTabItem*    pItem = ImplGetItem( nId );
-    TabPage*        pOldPage = (pOldItem) ? pOldItem->mpTabPage : NULL;
-    TabPage*        pPage = (pItem) ? pItem->mpTabPage : NULL;
-    Window*         pCtrlParent = GetParent();
-
-    if ( IsReallyVisible() && IsUpdateMode() )
-    {
-        sal_uInt16 nPos = GetPagePos( nId );
-        Rectangle aRect = ImplGetTabRect( nPos );
-
-        if ( !pOldItem || (pOldItem->mnLine != pItem->mnLine) )
-        {
-            aRect.Left() = 0;
-            aRect.Top() = 0;
-            aRect.Right() = Control::GetOutputSizePixel().Width();
-        }
-        else
-        {
-            aRect.Left()    -= 3;
-            aRect.Top()     -= 2;
-            aRect.Right()   += 3;
-            Invalidate( aRect );
-            nPos = GetPagePos( nOldId );
-            aRect = ImplGetTabRect( nPos );
-            aRect.Left()    -= 3;
-            aRect.Top()     -= 2;
-            aRect.Right()   += 3;
-        }
-        Invalidate( aRect );
-    }
-
-    if ( pOldPage == pPage )
-        return;
-
-    Rectangle aRect = ImplGetTabRect( TAB_PAGERECT );
-
-    if ( pOldPage )
-    {
-        if ( mbRestoreHelpId )
-            pCtrlParent->SetHelpId( rtl::OString() );
-        if ( mbRestoreUnqId )
-            pCtrlParent->SetUniqueId( rtl::OString() );
-        pOldPage->DeactivatePage();
-    }
-
-    if ( pPage )
-    {
-        pPage->SetPosSizePixel( aRect.TopLeft(), aRect.GetSize() );
-
-        // activate page here so the conbtrols can be switched
-        // also set the help id of the parent window to that of the tab page
-        if ( !GetHelpId().getLength() )
-        {
-            mbRestoreHelpId = sal_True;
-            pCtrlParent->SetHelpId( pPage->GetHelpId() );
-        }
-        if ( !pCtrlParent->GetUniqueId().getLength() )
-        {
-            mbRestoreUnqId = sal_True;
-            pCtrlParent->SetUniqueId( pPage->GetUniqueId() );
-        }
-
-        pPage->ActivatePage();
-               pPage->Show();
+       ImplFreeLayoutData();
+
+       ImplTabItem*    pOldItem = ImplGetItem( nOldId );
+       ImplTabItem*    pItem = ImplGetItem( nId );
+       TabPage*                pOldPage = (pOldItem) ? pOldItem->mpTabPage : 
NULL;
+       TabPage*                pPage = (pItem) ? pItem->mpTabPage : NULL;
+       Window*         pCtrlParent = GetParent();
+
+       if ( IsReallyVisible() && IsUpdateMode() )
+       {
+               sal_uInt16 nPos = GetPagePos( nId );
+               Rectangle aRect = ImplGetTabRect( nPos );
+
+               if ( !pOldItem || (pOldItem->mnLine != pItem->mnLine) )
+               {
+                       aRect.Left() = 0;
+                       aRect.Top() = 0;
+                       aRect.Right() = Control::GetOutputSizePixel().Width();
+               }
+               else
+               {
+                       aRect.Left()    -= 3;
+                       aRect.Top()     -= 2;
+                       aRect.Right()   += 3;
+                       Invalidate( aRect );
+                       nPos = GetPagePos( nOldId );
+                       aRect = ImplGetTabRect( nPos );
+                       aRect.Left()    -= 3;
+                       aRect.Top()     -= 2;
+                       aRect.Right()   += 3;
+               }
+               Invalidate( aRect );
+       }
+
+       if ( pOldPage == pPage )
+               return;
+
+       Rectangle aRect = ImplGetTabRect( TAB_PAGERECT );
 
-        if ( pOldPage && pOldPage->HasChildPathFocus() )
-        {
-            sal_uInt16  n = 0;
-            Window* pFirstChild = pPage->ImplGetDlgWindow( n, DLGWINDOW_FIRST 
);
-            if ( pFirstChild )
-                pFirstChild->ImplControlFocus( GETFOCUS_INIT );
-            else
-                GrabFocus();
-        }
+       if ( pOldPage )
+       {
+               if ( mbRestoreHelpId )
+                       pCtrlParent->SetHelpId( rtl::OString() );
+               if ( mbRestoreUnqId )
+                       pCtrlParent->SetUniqueId( rtl::OString() );
+               pOldPage->DeactivatePage();
+       }
 
-        // pPage->Show(); 
-    }
+       if ( pPage )
+       {
+               pPage->SetPosSizePixel( aRect.TopLeft(), aRect.GetSize() );
+
+               // activate page here so the controls can be switched
+               // also set the help id of the parent window to that of the tab 
page
+               if ( !GetHelpId().getLength() )
+               {
+                       mbRestoreHelpId = sal_True;
+                       pCtrlParent->SetHelpId( pPage->GetHelpId() );
+               }
+               if ( !pCtrlParent->GetUniqueId().getLength() )
+               {
+                       mbRestoreUnqId = sal_True;
+                       pCtrlParent->SetUniqueId( pPage->GetUniqueId() );
+               }
+
+               pPage->ActivatePage();
+               pPage->Show();
 
-    if ( pOldPage )
-        pOldPage->Hide();
+               if ( pOldPage && pOldPage->HasChildPathFocus() )
+               {
+                       sal_uInt16      n = 0;
+                       Window* pFirstChild = pPage->ImplGetDlgWindow( n, 
DLGWINDOW_FIRST );
+                       if ( pFirstChild )
+                               pFirstChild->ImplControlFocus( GETFOCUS_INIT );
+                       else
+                               GrabFocus();
+               }
+
+               // pPage->Show();
+       }
 
-    // Invalidate the same region that will be send to NWF
-    // to always allow for bitmap caching
-    // see Window::DrawNativeControl()
-    if( IsNativeControlSupported( CTRL_TAB_PANE, PART_ENTIRE_CONTROL ) )
-    {
-        aRect.Left()   -= TAB_OFFSET;
-        aRect.Top()    -= TAB_OFFSET;
-        aRect.Right()  += TAB_OFFSET;
-        aRect.Bottom() += TAB_OFFSET;
-    }
+       if ( pOldPage )
+               pOldPage->Hide();
 
-    Invalidate( aRect );
+       // Invalidate the same region that will be send to NWF
+       // to always allow for bitmap caching
+       // see Window::DrawNativeControl()
+       if( IsNativeControlSupported( CTRL_TAB_PANE, PART_ENTIRE_CONTROL ) )
+       {
+               aRect.Left()   -= TAB_OFFSET;
+               aRect.Top()    -= TAB_OFFSET;
+               aRect.Right()  += TAB_OFFSET;
+               aRect.Bottom() += TAB_OFFSET;
+       }
+
+       Invalidate( aRect );
 }
 
 // -----------------------------------------------------------------------
 
 sal_Bool TabControl::ImplPosCurTabPage()
 {
-    // Aktuelle TabPage resizen/positionieren
-    ImplTabItem* pItem = ImplGetItem( GetCurPageId() );
-    if ( pItem && pItem->mpTabPage )
-    {
-        Rectangle aRect = ImplGetTabRect( TAB_PAGERECT );
-        pItem->mpTabPage->SetPosSizePixel( aRect.TopLeft(), aRect.GetSize() );
-        return sal_True;
-    }
+       // Aktuelle TabPage resizen/positionieren
+       ImplTabItem* pItem = ImplGetItem( GetCurPageId() );
+       if ( pItem && pItem->mpTabPage )
+       {
+               Rectangle aRect = ImplGetTabRect( TAB_PAGERECT );
+               pItem->mpTabPage->SetPosSizePixel( aRect.TopLeft(), 
aRect.GetSize() );
+               return sal_True;
+       }
 
-    return sal_False;
+       return sal_False;
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::ImplActivateTabPage( sal_Bool bNext )
 {
-    sal_uInt16 nCurPos = GetPagePos( GetCurPageId() );
+       sal_uInt16 nCurPos = GetPagePos( GetCurPageId() );
 
-    if ( bNext )
-        nCurPos = (nCurPos + 1) % GetPageCount();
-    else
-    {
-        if ( !nCurPos )
-            nCurPos = GetPageCount()-1;
-        else
-            nCurPos--;
-    }
+       if ( bNext )
+               nCurPos = (nCurPos + 1) % GetPageCount();
+       else
+       {
+               if ( !nCurPos )
+                       nCurPos = GetPageCount()-1;
+               else
+                       nCurPos--;
+       }
 
-    SelectTabPage( GetPageId( nCurPos ) );
+       SelectTabPage( GetPageId( nCurPos ) );
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::ImplShowFocus()
 {
-    if ( !GetPageCount() || mpTabCtrlData->mpListBox )
-        return;
-
-    // make sure the focussed item rect is computed using a bold font
-    // the font may have changed meanwhile due to mouse over
-
-    Font aOldFont( GetFont() );
-    Font aFont( aOldFont );
-    aFont.SetWeight( (!ImplGetSVData()->maNWFData.mbNoBoldTabFocus) ? 
WEIGHT_BOLD : WEIGHT_LIGHT );
-    SetFont( aFont );
-
-    sal_uInt16                   nCurPos     = GetPagePos( mnCurPageId );
-    Rectangle                aRect       = ImplGetTabRect( nCurPos );
-    const ImplTabItem&       rItem       = mpTabCtrlData->maItemList[ nCurPos 
];
-    Size                     aTabSize    = aRect.GetSize();
-    Size aImageSize( 0, 0 );
-    long                     nTextHeight = GetTextHeight();
-    long                     nTextWidth  = GetCtrlTextWidth( 
rItem.maFormatText );
-    sal_uInt16                   nOff;
-
-    if ( !(GetSettings().GetStyleSettings().GetOptions() & STYLE_OPTION_MONO) )
-        nOff = 1;
-    else
-        nOff = 0;
-
-    if( !! rItem.maTabImage )
-    {
-        aImageSize = rItem.maTabImage.GetSizePixel();
-        if( rItem.maFormatText.Len() )
-            aImageSize.Width() += GetTextHeight()/4;
-    }
-
-    if( rItem.maFormatText.Len() )
-    {
-        // show focus around text
-        aRect.Left()   = 
aRect.Left()+aImageSize.Width()+((aTabSize.Width()-nTextWidth-aImageSize.Width())/2)-nOff-1-1;
-        aRect.Top()    = aRect.Top()+((aTabSize.Height()-nTextHeight)/2)-1-1;
-        aRect.Right()  = aRect.Left()+nTextWidth+2;
-        aRect.Bottom() = aRect.Top()+nTextHeight+2;
-    }
-    else
-    {
-        // show focus around image
-        long nXPos = 
aRect.Left()+((aTabSize.Width()-nTextWidth-aImageSize.Width())/2)-nOff-1;
-        long nYPos = aRect.Top();
-        if( aImageSize.Height() < aRect.GetHeight() )
-            nYPos += (aRect.GetHeight() - aImageSize.Height())/2;
-
-        aRect.Left() = nXPos - 2;
-        aRect.Top() = nYPos - 2;
-        aRect.Right() = aRect.Left() + aImageSize.Width() + 4;
-        aRect.Bottom() = aRect.Top() + aImageSize.Height() + 4;
-    }
-    ShowFocus( aRect );
-
-    SetFont( aOldFont );
+       if ( !GetPageCount() || mpTabCtrlData->mpListBox )
+               return;
+
+       // make sure the focused item rect is computed using a bold font
+       // the font may have changed meanwhile due to mouse over
+
+       Font aOldFont( GetFont() );
+       Font aFont( aOldFont );
+       aFont.SetWeight( (!ImplGetSVData()->maNWFData.mbNoBoldTabFocus) ? 
WEIGHT_BOLD : WEIGHT_LIGHT );
+       SetFont( aFont );
+
+       sal_uInt16                                      nCurPos         = 
GetPagePos( mnCurPageId );
+       Rectangle                               aRect           = 
ImplGetTabRect( nCurPos );
+       const ImplTabItem&              rItem           = 
mpTabCtrlData->maItemList[ nCurPos ];
+       Size                                    aTabSize        = 
aRect.GetSize();
+       Size aImageSize( 0, 0 );
+       long                                    nTextHeight     = 
GetTextHeight();
+       long                                    nTextWidth      = 
GetCtrlTextWidth( rItem.maFormatText );
+       sal_uInt16                                      nOff;
+
+       if ( !(GetSettings().GetStyleSettings().GetOptions() & 
STYLE_OPTION_MONO) )
+               nOff = 1;
+       else
+               nOff = 0;
+
+       if( !! rItem.maTabImage )
+       {
+               aImageSize = rItem.maTabImage.GetSizePixel();
+               if( rItem.maFormatText.Len() )
+                       aImageSize.Width() += GetTextHeight()/4;
+       }
+
+       if( rItem.maFormatText.Len() )
+       {
+               // show focus around text
+               aRect.Left()   = 
aRect.Left()+aImageSize.Width()+((aTabSize.Width()-nTextWidth-aImageSize.Width())/2)-nOff-1-1;
+               aRect.Top()    = 
aRect.Top()+((aTabSize.Height()-nTextHeight)/2)-1-1;
+               aRect.Right()  = aRect.Left()+nTextWidth+2;
+               aRect.Bottom() = aRect.Top()+nTextHeight+2;
+       }
+       else
+       {
+               // show focus around image
+               long nXPos = 
aRect.Left()+((aTabSize.Width()-nTextWidth-aImageSize.Width())/2)-nOff-1;
+               long nYPos = aRect.Top();
+               if( aImageSize.Height() < aRect.GetHeight() )
+                       nYPos += (aRect.GetHeight() - aImageSize.Height())/2;
+
+               aRect.Left() = nXPos - 2;
+               aRect.Top() = nYPos - 2;
+               aRect.Right() = aRect.Left() + aImageSize.Width() + 4;
+               aRect.Bottom() = aRect.Top() + aImageSize.Height() + 4;
+       }
+       ShowFocus( aRect );
+
+       SetFont( aOldFont );
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::ImplDrawItem( ImplTabItem* pItem, const Rectangle& rCurRect, 
bool bLayout, bool bFirstInGroup, bool bLastInGroup, bool bIsCurrentItem )
 {
-    if ( pItem->maRect.IsEmpty() )
-        return;
-
-    if( bLayout )
-    {
-        if( !HasLayoutData() )
-        {
-            mpControlData->mpLayoutData = new vcl::ControlLayoutData();
-            mpTabCtrlData->maLayoutLineToPageId.clear();
-            mpTabCtrlData->maLayoutPageIdToLine.clear();
-            mpTabCtrlData->maTabRectangles.clear();
-        }
-    }
-
-    const StyleSettings&    rStyleSettings  = GetSettings().GetStyleSettings();
-    Rectangle               aRect = pItem->maRect;
-    long                    nLeftBottom = aRect.Bottom();
-    long                    nRightBottom = aRect.Bottom();
-    sal_Bool                    bLeftBorder = sal_True;
-    sal_Bool                    bRightBorder = sal_True;
-    sal_uInt16                  nOff;
-    sal_Bool                    bNativeOK = sal_False;
-
-    sal_uInt16 nOff2 = 0;
-    sal_uInt16 nOff3 = 0;
-
-    if ( !(rStyleSettings.GetOptions() & STYLE_OPTION_MONO) )
-        nOff = 1;
-    else
-        nOff = 0;
-
-    // Wenn wir die aktuelle Page sind, muessen wir etwas mehr zeichnen
-    if ( pItem->mnId == mnCurPageId )
-    {
-        nOff2 = 2;
-        if( ! ImplGetSVData()->maNWFData.mbNoActiveTabTextRaise )
-            nOff3 = 1;
-    }
-    else
-    {
-        Point aLeftTestPos = aRect.BottomLeft();
-        Point aRightTestPos = aRect.BottomRight();
-        if ( aLeftTestPos.Y() == rCurRect.Bottom() )
-        {
-            aLeftTestPos.X() -= 2;
-            if ( rCurRect.IsInside( aLeftTestPos ) )
-                bLeftBorder = sal_False;
-            aRightTestPos.X() += 2;
-            if ( rCurRect.IsInside( aRightTestPos ) )
-                bRightBorder = sal_False;
-        }
-        else
-        {
-            if ( rCurRect.IsInside( aLeftTestPos ) )
-                nLeftBottom -= 2;
-            if ( rCurRect.IsInside( aRightTestPos ) )
-                nRightBottom -= 2;
-        }
-    }
-
-    if( !bLayout && (bNativeOK = IsNativeControlSupported(CTRL_TAB_ITEM, 
PART_ENTIRE_CONTROL)) == sal_True )
-    {
-        Rectangle           aCtrlRegion( pItem->maRect );
-        ControlState           nState = 0;
-
-        if( pItem->mnId == mnCurPageId )
-        {
-            nState |= CTRL_STATE_SELECTED;
-            // only the selected item can be focussed
-            if ( HasFocus() )
-                nState |= CTRL_STATE_FOCUSED;
-        }
-        if ( IsEnabled() )
-            nState |= CTRL_STATE_ENABLED;
-        if( IsMouseOver() && pItem->maRect.IsInside( GetPointerPosPixel() ) )
-        {
-            nState |= CTRL_STATE_ROLLOVER;
-            for( std::vector< ImplTabItem >::iterator it = 
mpTabCtrlData->maItemList.begin();
-                 it != mpTabCtrlData->maItemList.end(); ++it )
-            {
-                if( (&(*it) != pItem) && (it->maRect.IsInside( 
GetPointerPosPixel() ) ) )
-                {
-                    nState &= ~CTRL_STATE_ROLLOVER; // avoid multiple 
highlighted tabs
-                    break;
-                }
-            }
-        }
-
-        TabitemValue tiValue;
-        if(pItem->maRect.Left() < 5)
-            tiValue.mnAlignment |= TABITEM_LEFTALIGNED;
-        if(pItem->maRect.Right() > mnLastWidth - 5)
-            tiValue.mnAlignment |= TABITEM_RIGHTALIGNED;
-        if ( bFirstInGroup )
-            tiValue.mnAlignment |= TABITEM_FIRST_IN_GROUP;
-        if ( bLastInGroup )
-            tiValue.mnAlignment |= TABITEM_LAST_IN_GROUP;
-
-        bNativeOK = DrawNativeControl( CTRL_TAB_ITEM, PART_ENTIRE_CONTROL, 
aCtrlRegion, nState,
-                    tiValue, rtl::OUString() );
-    }
-
-    if( ! bLayout && !bNativeOK )
-    {
-        if ( !(rStyleSettings.GetOptions() & STYLE_OPTION_MONO) )
-        {
-            SetLineColor( rStyleSettings.GetLightColor() );
-            DrawPixel( Point( aRect.Left()+1-nOff2, aRect.Top()+1-nOff2 ) );   
 // diagonally indented top-left pixel
-            if ( bLeftBorder )
-            {
-                DrawLine( Point( aRect.Left()-nOff2, aRect.Top()+2-nOff2 ),
-                          Point( aRect.Left()-nOff2, nLeftBottom-1 ) );
-            }
-            DrawLine( Point( aRect.Left()+2-nOff2, aRect.Top()-nOff2 ),        
 // top line starting 2px from left border
-                      Point( aRect.Right()+nOff2-3, aRect.Top()-nOff2 ) );     
 // ending 3px from right border
-
-            if ( bRightBorder )
-            {
-                SetLineColor( rStyleSettings.GetShadowColor() );
-                DrawLine( Point( aRect.Right()+nOff2-2, aRect.Top()+1-nOff2 ),
-                          Point( aRect.Right()+nOff2-2, nRightBottom-1 ) );
-
-                SetLineColor( rStyleSettings.GetDarkShadowColor() );
-                DrawLine( Point( aRect.Right()+nOff2-1, aRect.Top()+3-nOff2 ),
-                          Point( aRect.Right()+nOff2-1, nRightBottom-1 ) );
-            }
-        }
-        else
-        {
-            SetLineColor( Color( COL_BLACK ) );
-            DrawPixel( Point( aRect.Left()+1-nOff2, aRect.Top()+1-nOff2 ) );
-            DrawPixel( Point( aRect.Right()+nOff2-2, aRect.Top()+1-nOff2 ) );
-            if ( bLeftBorder )
-            {
-                DrawLine( Point( aRect.Left()-nOff2, aRect.Top()+2-nOff2 ),
-                          Point( aRect.Left()-nOff2, nLeftBottom-1 ) );
-            }
-            DrawLine( Point( aRect.Left()+2-nOff2, aRect.Top()-nOff2 ),
-                      Point( aRect.Right()-3, aRect.Top()-nOff2 ) );
-            if ( bRightBorder )
-            {
-            DrawLine( Point( aRect.Right()+nOff2-1, aRect.Top()+2-nOff2 ),
-                      Point( aRect.Right()+nOff2-1, nRightBottom-1 ) );
-            }
-        }
-    }
-
-    if( bLayout )
-    {
-        int nLine = mpControlData->mpLayoutData->m_aLineIndices.size();
-        mpControlData->mpLayoutData->m_aLineIndices.push_back( 
mpControlData->mpLayoutData->m_aDisplayText.Len() );
-        mpTabCtrlData->maLayoutPageIdToLine[ (int)pItem->mnId ] = nLine;
-        mpTabCtrlData->maLayoutLineToPageId[ nLine ] = (int)pItem->mnId;
-        mpTabCtrlData->maTabRectangles.push_back( aRect );
-    }
-
-    // set font accordingly, current item is painted bold
-    // we set the font attributes always before drawing to be re-entrant 
(DrawNativeControl may trigger additional paints)
-    Font aFont( GetFont() );
-    aFont.SetTransparent( sal_True );
-    aFont.SetWeight( ((bIsCurrentItem) && 
(!ImplGetSVData()->maNWFData.mbNoBoldTabFocus)) ? WEIGHT_BOLD : WEIGHT_LIGHT );
-    SetFont( aFont );
-
-    Size aTabSize = aRect.GetSize();
-    Size aImageSize( 0, 0 );
-    long nTextHeight = GetTextHeight();
-    long nTextWidth = GetCtrlTextWidth( pItem->maFormatText );
-    if( !! pItem->maTabImage )
-    {
-        aImageSize = pItem->maTabImage.GetSizePixel();
-        if( pItem->maFormatText.Len() )
-            aImageSize.Width() += GetTextHeight()/4;
-    }
-    long nXPos = 
aRect.Left()+((aTabSize.Width()-nTextWidth-aImageSize.Width())/2)-nOff-nOff3;
-    long nYPos = aRect.Top()+((aTabSize.Height()-nTextHeight)/2)-nOff3;
-    if( pItem->maFormatText.Len() )
-    {
-        sal_uInt16 nStyle = TEXT_DRAW_MNEMONIC;
-        if( ! pItem->mbEnabled )
-            nStyle |= TEXT_DRAW_DISABLE;
-        DrawCtrlText( Point( nXPos + aImageSize.Width(), nYPos ),
-                      pItem->maFormatText,
-                      0, STRING_LEN, nStyle,
-                      bLayout ? 
&mpControlData->mpLayoutData->m_aUnicodeBoundRects : NULL,
-                      bLayout ? &mpControlData->mpLayoutData->m_aDisplayText : 
NULL
-                      );
-    }
-
-    if( !! pItem->maTabImage )
-    {
-        Point aImgTL( nXPos, aRect.Top() );
-        if( aImageSize.Height() < aRect.GetHeight() )
-            aImgTL.Y() += (aRect.GetHeight() - aImageSize.Height())/2;
-        DrawImage( aImgTL, pItem->maTabImage, pItem->mbEnabled ? 0 : 
IMAGE_DRAW_DISABLE );
-    }
+       if ( pItem->maRect.IsEmpty() )
+               return;
+
+       if( bLayout )
+       {
+               if( !HasLayoutData() )
+               {
+                       mpControlData->mpLayoutData = new 
vcl::ControlLayoutData();
+                       mpTabCtrlData->maLayoutLineToPageId.clear();
+                       mpTabCtrlData->maLayoutPageIdToLine.clear();
+                       mpTabCtrlData->maTabRectangles.clear();
+               }
+       }
+
+       const StyleSettings&    rStyleSettings = 
GetSettings().GetStyleSettings();
+       Rectangle                               aRect = pItem->maRect;
+       long                                    nLeftBottom = aRect.Bottom();
+       long                                    nRightBottom = aRect.Bottom();
+       sal_Bool                                        bLeftBorder = sal_True;
+       sal_Bool                                        bRightBorder = sal_True;
+       sal_uInt16                                      nOff;
+       sal_Bool                                        bNativeOK = sal_False;
+
+       sal_uInt16 nOff2 = 0;
+       sal_uInt16 nOff3 = 0;
+
+       if ( !(rStyleSettings.GetOptions() & STYLE_OPTION_MONO) )
+               nOff = 1;
+       else
+               nOff = 0;
+
+       // Wenn wir die aktuelle Page sind, muessen wir etwas mehr zeichnen
+       if ( pItem->mnId == mnCurPageId )
+       {
+               nOff2 = 2;
+               if( ! ImplGetSVData()->maNWFData.mbNoActiveTabTextRaise )
+                       nOff3 = 1;
+       }
+       else
+       {
+               Point aLeftTestPos = aRect.BottomLeft();
+               Point aRightTestPos = aRect.BottomRight();
+               if ( aLeftTestPos.Y() == rCurRect.Bottom() )
+               {
+                       aLeftTestPos.X() -= 2;
+                       if ( rCurRect.IsInside( aLeftTestPos ) )
+                               bLeftBorder = sal_False;
+                       aRightTestPos.X() += 2;
+                       if ( rCurRect.IsInside( aRightTestPos ) )
+                               bRightBorder = sal_False;
+               }
+               else
+               {
+                       if ( rCurRect.IsInside( aLeftTestPos ) )
+                               nLeftBottom -= 2;
+                       if ( rCurRect.IsInside( aRightTestPos ) )
+                               nRightBottom -= 2;
+               }
+       }
+
+       if( !bLayout && (bNativeOK = IsNativeControlSupported(CTRL_TAB_ITEM, 
PART_ENTIRE_CONTROL)) == sal_True )
+       {
+               Rectangle                       aCtrlRegion( pItem->maRect );
+               ControlState            nState = 0;
+
+               if( pItem->mnId == mnCurPageId )
+               {
+                       nState |= CTRL_STATE_SELECTED;
+                       // only the selected item can be focused
+                       if ( HasFocus() )
+                               nState |= CTRL_STATE_FOCUSED;
+               }
+               if ( IsEnabled() )
+                       nState |= CTRL_STATE_ENABLED;
+               if( IsMouseOver() && pItem->maRect.IsInside( 
GetPointerPosPixel() ) )
+               {
+                       nState |= CTRL_STATE_ROLLOVER;
+                       for( std::vector< ImplTabItem >::iterator it = 
mpTabCtrlData->maItemList.begin();
+                                it != mpTabCtrlData->maItemList.end(); ++it )
+                       {
+                               if( (&(*it) != pItem) && (it->maRect.IsInside( 
GetPointerPosPixel() ) ) )
+                               {
+                                       nState &= ~CTRL_STATE_ROLLOVER; // 
avoid multiple highlighted tabs
+                                       break;
+                               }
+                       }
+               }
+
+               TabitemValue tiValue;
+               if(pItem->maRect.Left() < 5)
+                       tiValue.mnAlignment |= TABITEM_LEFTALIGNED;
+               if(pItem->maRect.Right() > mnLastWidth - 5)
+                       tiValue.mnAlignment |= TABITEM_RIGHTALIGNED;
+               if ( bFirstInGroup )
+                       tiValue.mnAlignment |= TABITEM_FIRST_IN_GROUP;
+               if ( bLastInGroup )
+                       tiValue.mnAlignment |= TABITEM_LAST_IN_GROUP;
+
+               bNativeOK = DrawNativeControl( CTRL_TAB_ITEM, 
PART_ENTIRE_CONTROL, aCtrlRegion, nState,
+                                       tiValue, rtl::OUString() );
+       }
+
+       if( ! bLayout && !bNativeOK )
+       {
+               if ( !(rStyleSettings.GetOptions() & STYLE_OPTION_MONO) )
+               {
+                       SetLineColor( rStyleSettings.GetLightColor() );
+                       DrawPixel( Point( aRect.Left()+1-nOff2, 
aRect.Top()+1-nOff2 ) ); // diagonally indented top-left pixel
+                       if ( bLeftBorder )
+                       {
+                               DrawLine( Point( aRect.Left()-nOff2, 
aRect.Top()+2-nOff2 ),
+                                                 Point( aRect.Left()-nOff2, 
nLeftBottom-1 ) );
+                       }
+                       DrawLine( Point( aRect.Left()+2-nOff2, 
aRect.Top()-nOff2 ), // top line starting 2px from left border
+                                         Point( aRect.Right()+nOff2-3, 
aRect.Top()-nOff2 ) ); // ending 3px from right border
+
+                       if ( bRightBorder )
+                       {
+                               SetLineColor( rStyleSettings.GetShadowColor() );
+                               DrawLine( Point( aRect.Right()+nOff2-2, 
aRect.Top()+1-nOff2 ),
+                                                 Point( aRect.Right()+nOff2-2, 
nRightBottom-1 ) );
+
+                               SetLineColor( 
rStyleSettings.GetDarkShadowColor() );
+                               DrawLine( Point( aRect.Right()+nOff2-1, 
aRect.Top()+3-nOff2 ),
+                                                 Point( aRect.Right()+nOff2-1, 
nRightBottom-1 ) );
+                       }
+               }
+               else
+               {
+                       SetLineColor( Color( COL_BLACK ) );
+                       DrawPixel( Point( aRect.Left()+1-nOff2, 
aRect.Top()+1-nOff2 ) );
+                       DrawPixel( Point( aRect.Right()+nOff2-2, 
aRect.Top()+1-nOff2 ) );
+                       if ( bLeftBorder )
+                       {
+                               DrawLine( Point( aRect.Left()-nOff2, 
aRect.Top()+2-nOff2 ),
+                                                 Point( aRect.Left()-nOff2, 
nLeftBottom-1 ) );
+                       }
+                       DrawLine( Point( aRect.Left()+2-nOff2, 
aRect.Top()-nOff2 ),
+                                         Point( aRect.Right()-3, 
aRect.Top()-nOff2 ) );
+                       if ( bRightBorder )
+                       {
+                       DrawLine( Point( aRect.Right()+nOff2-1, 
aRect.Top()+2-nOff2 ),
+                                         Point( aRect.Right()+nOff2-1, 
nRightBottom-1 ) );
+                       }
+               }
+       }
+
+       if( bLayout )
+       {
+               int nLine = mpControlData->mpLayoutData->m_aLineIndices.size();
+               mpControlData->mpLayoutData->m_aLineIndices.push_back( 
mpControlData->mpLayoutData->m_aDisplayText.Len() );
+               mpTabCtrlData->maLayoutPageIdToLine[ (int)pItem->mnId ] = nLine;
+               mpTabCtrlData->maLayoutLineToPageId[ nLine ] = (int)pItem->mnId;
+               mpTabCtrlData->maTabRectangles.push_back( aRect );
+       }
+
+       // set font accordingly, current item is painted bold
+       // we set the font attributes always before drawing to be re-entrant 
(DrawNativeControl may trigger additional paints)
+       Font aFont( GetFont() );
+       aFont.SetTransparent( sal_True );
+       aFont.SetWeight( ((bIsCurrentItem) && 
(!ImplGetSVData()->maNWFData.mbNoBoldTabFocus)) ? WEIGHT_BOLD : WEIGHT_LIGHT );
+       SetFont( aFont );
+
+       Size aTabSize = aRect.GetSize();
+       Size aImageSize( 0, 0 );
+       long nTextHeight = GetTextHeight();
+       long nTextWidth = GetCtrlTextWidth( pItem->maFormatText );
+       if( !! pItem->maTabImage )
+       {
+               aImageSize = pItem->maTabImage.GetSizePixel();
+               if( pItem->maFormatText.Len() )
+                       aImageSize.Width() += GetTextHeight()/4;
+       }
+       long nXPos = 
aRect.Left()+((aTabSize.Width()-nTextWidth-aImageSize.Width())/2)-nOff-nOff3;
+       long nYPos = aRect.Top()+((aTabSize.Height()-nTextHeight)/2)-nOff3;
+       if( pItem->maFormatText.Len() )
+       {
+               sal_uInt16 nStyle = TEXT_DRAW_MNEMONIC;
+               if( ! pItem->mbEnabled )
+                       nStyle |= TEXT_DRAW_DISABLE;
+               DrawCtrlText( Point( nXPos + aImageSize.Width(), nYPos ),
+                                         pItem->maFormatText,
+                                         0, STRING_LEN, nStyle,
+                                         bLayout ? 
&mpControlData->mpLayoutData->m_aUnicodeBoundRects : NULL,
+                                         bLayout ? 
&mpControlData->mpLayoutData->m_aDisplayText : NULL
+                                       );
+       }
+
+       if( !! pItem->maTabImage )
+       {
+               Point aImgTL( nXPos, aRect.Top() );
+               if( aImageSize.Height() < aRect.GetHeight() )
+                       aImgTL.Y() += (aRect.GetHeight() - 
aImageSize.Height())/2;
+               DrawImage( aImgTL, pItem->maTabImage, pItem->mbEnabled ? 0 : 
IMAGE_DRAW_DISABLE );
+       }
 }
 
 // -----------------------------------------------------------------------
 
 long TabControl::ImplHandleKeyEvent( const KeyEvent& rKeyEvent )
 {
-    long nRet = 0;
-    
-    if ( GetPageCount() > 1 )
-    {
-        KeyCode         aKeyCode = rKeyEvent.GetKeyCode();
-        sal_uInt16          nKeyCode = aKeyCode.GetCode();
-
-        if ( aKeyCode.IsMod1() )
-        {
-            if ( aKeyCode.IsShift() || (nKeyCode == KEY_PAGEUP) )
-            {
-                if ( (nKeyCode == KEY_TAB) || (nKeyCode == KEY_PAGEUP) )
-                {
-                    ImplActivateTabPage( sal_False );
-                    nRet = 1;
-                }
-            }
-            else
-            {
-                if ( (nKeyCode == KEY_TAB) || (nKeyCode == KEY_PAGEDOWN) )
-                {
-                    ImplActivateTabPage( sal_True );
-                    nRet = 1;
-                }
-            }
-        }
-    }    
-    
-    return nRet;
+       long nRet = 0;
+
+       if ( GetPageCount() > 1 )
+       {
+               KeyCode                 aKeyCode = rKeyEvent.GetKeyCode();
+               sal_uInt16                      nKeyCode = aKeyCode.GetCode();
+
+               if ( aKeyCode.IsMod1() )
+               {
+                       if ( aKeyCode.IsShift() || (nKeyCode == KEY_PAGEUP) )
+                       {
+                               if ( (nKeyCode == KEY_TAB) || (nKeyCode == 
KEY_PAGEUP) )
+                               {
+                                       ImplActivateTabPage( sal_False );
+                                       nRet = 1;
+                               }
+                       }
+                       else
+                       {
+                               if ( (nKeyCode == KEY_TAB) || (nKeyCode == 
KEY_PAGEDOWN) )
+                               {
+                                       ImplActivateTabPage( sal_True );
+                                       nRet = 1;
+                               }
+                       }
+               }
+       }
+
+       return nRet;
 }
 
 
@@ -989,8 +987,8 @@ long TabControl::ImplHandleKeyEvent( const KeyEvent& 
rKeyEvent )
 
 IMPL_LINK( TabControl, ImplListBoxSelectHdl, ListBox*, EMPTYARG )
 {
-    SelectTabPage( GetPageId( mpTabCtrlData->mpListBox->GetSelectEntryPos() ) 
);
-    return 0;
+       SelectTabPage( GetPageId( mpTabCtrlData->mpListBox->GetSelectEntryPos() 
) );
+       return 0;
 }
 
 // -----------------------------------------------------------------------
@@ -999,13 +997,13 @@ IMPL_LINK( TabControl, ImplWindowEventListener, 
VclSimpleEvent*, pEvent )
 {
        if ( pEvent && pEvent->ISA( VclWindowEvent ) && (pEvent->GetId() == 
VCLEVENT_WINDOW_KEYINPUT) )
        {
-           VclWindowEvent* pWindowEvent = static_cast< VclWindowEvent* 
>(pEvent);
-           // Do not handle events from TabControl or it's children, which is 
done in Notify(), where the events can be consumed.
-           if ( !IsWindowOrChild( pWindowEvent->GetWindow() ) )
-           {
-            KeyEvent* pKeyEvent = static_cast< KeyEvent* 
>(pWindowEvent->GetData());
-               ImplHandleKeyEvent( *pKeyEvent );
-           }
+               VclWindowEvent* pWindowEvent = static_cast< VclWindowEvent* 
>(pEvent);
+               // Do not handle events from TabControl or it's children, which 
is done in Notify(), where the events can be consumed.
+               if ( !IsWindowOrChild( pWindowEvent->GetWindow() ) )
+               {
+                       KeyEvent* pKeyEvent = static_cast< KeyEvent* 
>(pWindowEvent->GetData());
+                       ImplHandleKeyEvent( *pKeyEvent );
+               }
        }
        return 0;
 }
@@ -1015,691 +1013,691 @@ IMPL_LINK( TabControl, ImplWindowEventListener, 
VclSimpleEvent*, pEvent )
 
 void TabControl::MouseButtonDown( const MouseEvent& rMEvt )
 {
-    if( mpTabCtrlData->mpListBox == NULL )
-    {
-        if( rMEvt.IsLeft() )
-        {
-            sal_uInt16 nPageId = GetPageId( rMEvt.GetPosPixel() );
-            ImplTabItem* pItem = ImplGetItem( nPageId );
-            if( pItem && pItem->mbEnabled )
-                SelectTabPage( nPageId );
-        }
-    }
+       if( mpTabCtrlData->mpListBox == NULL )
+       {
+               if( rMEvt.IsLeft() )
+               {
+                       sal_uInt16 nPageId = GetPageId( rMEvt.GetPosPixel() );
+                       ImplTabItem* pItem = ImplGetItem( nPageId );
+                       if( pItem && pItem->mbEnabled )
+                               SelectTabPage( nPageId );
+               }
+       }
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::KeyInput( const KeyEvent& rKEvt )
 {
-    if( mpTabCtrlData->mpListBox )
-        mpTabCtrlData->mpListBox->KeyInput( rKEvt );
-    else if ( GetPageCount() > 1 )
-    {
-        KeyCode aKeyCode = rKEvt.GetKeyCode();
-        sal_uInt16  nKeyCode = aKeyCode.GetCode();
-
-        if ( (nKeyCode == KEY_LEFT) || (nKeyCode == KEY_RIGHT) )
-        {
-            sal_Bool bNext = (nKeyCode == KEY_RIGHT);
-            ImplActivateTabPage( bNext );
-        }
-    }
+       if( mpTabCtrlData->mpListBox )
+               mpTabCtrlData->mpListBox->KeyInput( rKEvt );
+       else if ( GetPageCount() > 1 )
+       {
+               KeyCode aKeyCode = rKEvt.GetKeyCode();
+               sal_uInt16      nKeyCode = aKeyCode.GetCode();
+
+               if ( (nKeyCode == KEY_LEFT) || (nKeyCode == KEY_RIGHT) )
+               {
+                       sal_Bool bNext = (nKeyCode == KEY_RIGHT);
+                       ImplActivateTabPage( bNext );
+               }
+       }
 
-    Control::KeyInput( rKEvt );
+       Control::KeyInput( rKEvt );
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::Paint( const Rectangle& rRect )
 {
-    ImplPaint( rRect, false );
+       ImplPaint( rRect, false );
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::ImplPaint( const Rectangle& rRect, bool bLayout )
 {
-    if( ! bLayout )
-        HideFocus();
-
-    // Hier wird gegebenenfalls auch neu formatiert
-    Rectangle aRect = ImplGetTabRect( TAB_PAGERECT );
-
-    // find current item
-    ImplTabItem* pCurItem = NULL;
-    for( std::vector< ImplTabItem >::iterator it = 
mpTabCtrlData->maItemList.begin();
-         it != mpTabCtrlData->maItemList.end(); ++it )
-    {
-        if ( it->mnId == mnCurPageId )
-        {
-            pCurItem = &(*it);
-            break;
-        }
-    }
-
-    // Draw the TabPage border
-    const StyleSettings&    rStyleSettings  = GetSettings().GetStyleSettings();
-    Rectangle               aCurRect;
-    long                    nTopOff = 1;
-    aRect.Left()   -= TAB_OFFSET;
-    aRect.Top()    -= TAB_OFFSET;
-    aRect.Right()  += TAB_OFFSET;
-    aRect.Bottom() += TAB_OFFSET;
-
-    // if we have an invisible tabpage or no tabpage at all the tabpage rect 
should be
-    // increased to avoid round corners that might be drawn by a theme
-    // in this case we're only interested in the top border of the tabpage 
because the tabitems are used
-    // standalone (eg impress)
-    sal_Bool bNoTabPage = sal_False;
-    TabPage*        pCurPage = (pCurItem) ? pCurItem->mpTabPage : NULL;
-    if( !pCurPage || !pCurPage->IsVisible() )
-    {
-        bNoTabPage = sal_True;
-        aRect.Left()-=10;
-        aRect.Right()+=10;
-    }
-
-    sal_Bool bNativeOK = sal_False;
-    if( ! bLayout && (bNativeOK = IsNativeControlSupported( CTRL_TAB_PANE, 
PART_ENTIRE_CONTROL) ) == sal_True )
-    {
-        const ImplControlValue aControlValue;
-
-        ControlState nState = CTRL_STATE_ENABLED;
-        int part = PART_ENTIRE_CONTROL;
-        if ( !IsEnabled() )
-            nState &= ~CTRL_STATE_ENABLED;
-        if ( HasFocus() )
-            nState |= CTRL_STATE_FOCUSED;
-
-        Region aClipRgn( GetActiveClipRegion() );
-        aClipRgn.Intersect( aRect );
-        if( !rRect.IsEmpty() )
-            aClipRgn.Intersect( rRect );
-
-        if( !aClipRgn.IsEmpty() )
-            bNativeOK = DrawNativeControl( CTRL_TAB_PANE, part, aRect, nState,
-                aControlValue, rtl::OUString() );
-    }
-    else
-    {
-        if ( !(rStyleSettings.GetOptions() & STYLE_OPTION_MONO) )
-            SetLineColor( rStyleSettings.GetLightColor() );
-        else
-            SetLineColor( Color( COL_BLACK ) );
-        if ( pCurItem && !pCurItem->maRect.IsEmpty() )
-        {
-            aCurRect = pCurItem->maRect;
-            if( ! bLayout )
-                DrawLine( aRect.TopLeft(), Point( aCurRect.Left()-2, 
aRect.Top() ) );
-            if ( aCurRect.Right()+1 < aRect.Right() )
-            {
-                if( ! bLayout )
-                    DrawLine( Point( aCurRect.Right(), aRect.Top() ), 
aRect.TopRight() );
-            }
-            else
-                nTopOff = 0;
-        }
-        else
-            if( ! bLayout )
-                DrawLine( aRect.TopLeft(), aRect.TopRight() );
-
-        if( ! bLayout )
-        {
-            DrawLine( aRect.TopLeft(), aRect.BottomLeft() );
-
-            if ( !(rStyleSettings.GetOptions() & STYLE_OPTION_MONO) )
-            {
-                // if we have not tab page the bottom line of the tab page
-                // directly touches the tab items, so choose a color that fits 
seamlessly
-                if( bNoTabPage )
-                    SetLineColor( rStyleSettings.GetDialogColor() );
-                else
-                    SetLineColor( rStyleSettings.GetShadowColor() );
-                DrawLine( Point( 1, aRect.Bottom()-1 ),
-                        Point( aRect.Right()-1, aRect.Bottom()-1 ) );
-                DrawLine( Point( aRect.Right()-1, aRect.Top()+nTopOff ),
-                        Point( aRect.Right()-1, aRect.Bottom()-1 ) );
-                if( bNoTabPage )
-                    SetLineColor( rStyleSettings.GetDialogColor() );
-                else
-                    SetLineColor( rStyleSettings.GetDarkShadowColor() );
-                DrawLine( Point( 0, aRect.Bottom() ),
-                        Point( aRect.Right(), aRect.Bottom() ) );
-                DrawLine( Point( aRect.Right(), aRect.Top()+nTopOff ),
-                        Point( aRect.Right(), aRect.Bottom() ) );
-            }
-            else
-            {
-                DrawLine( aRect.TopRight(), aRect.BottomRight() );
-                DrawLine( aRect.BottomLeft(), aRect.BottomRight() );
-            }
-        }
-    }
-
-    if ( !mpTabCtrlData->maItemList.empty() && mpTabCtrlData->mpListBox == 
NULL )
-    {
-        // Some native toolkits (GTK+) draw tabs right-to-left, with an
-        // overlap between adjacent tabs
-        bool                   bDrawTabsRTL = IsNativeControlSupported( 
CTRL_TAB_ITEM, PART_TABS_DRAW_RTL );
-        ImplTabItem *  pFirstTab = NULL;
-        ImplTabItem *  pLastTab = NULL;
-        size_t idx;
-
-        // Event though there is a tab overlap with GTK+, the first tab is not
-        // overlapped on the left side.  Other tookits ignore this option.
-        if ( bDrawTabsRTL )
-        {
-            pFirstTab = &mpTabCtrlData->maItemList.front();
-            pLastTab = &mpTabCtrlData->maItemList.back();
-            idx = mpTabCtrlData->maItemList.size()-1;
-        }
-        else
-        {
-            pLastTab = &mpTabCtrlData->maItemList.back();
-            pFirstTab = &mpTabCtrlData->maItemList.front();
-            idx = 0;
-        }
-
-        while ( idx < mpTabCtrlData->maItemList.size() )
-        {
-            ImplTabItem* pItem = &mpTabCtrlData->maItemList[idx];
-            if ( pItem != pCurItem )
-            {
-                Region aClipRgn( GetActiveClipRegion() );
-                aClipRgn.Intersect( pItem->maRect );
-                if( !rRect.IsEmpty() )
-                    aClipRgn.Intersect( rRect );
-                if( bLayout || !aClipRgn.IsEmpty() )
-                    ImplDrawItem( pItem, aCurRect, bLayout, 
(pItem==pFirstTab), (pItem==pLastTab), sal_False );
-            }
-
-            if ( bDrawTabsRTL )
-                idx--;
-            else
-                idx++;
-        }
-
-        if ( pCurItem )
-        {
-            Region aClipRgn( GetActiveClipRegion() );
-            aClipRgn.Intersect( pCurItem->maRect );
-            if( !rRect.IsEmpty() )
-                aClipRgn.Intersect( rRect );
-            if( bLayout || !aClipRgn.IsEmpty() )
-                ImplDrawItem( pCurItem, aCurRect, bLayout, 
(pCurItem==pFirstTab), (pCurItem==pLastTab), sal_True );
-        }
-    }
-
-    if ( !bLayout && HasFocus() )
-        ImplShowFocus();
-
-    if( ! bLayout )
-        mbSmallInvalidate = sal_True;
+       if( ! bLayout )
+               HideFocus();
+
+       // Hier wird gegebenenfalls auch neu formatiert
+       Rectangle aRect = ImplGetTabRect( TAB_PAGERECT );
+
+       // find current item
+       ImplTabItem* pCurItem = NULL;
+       for( std::vector< ImplTabItem >::iterator it = 
mpTabCtrlData->maItemList.begin();
+                it != mpTabCtrlData->maItemList.end(); ++it )
+       {
+               if ( it->mnId == mnCurPageId )
+               {
+                       pCurItem = &(*it);
+                       break;
+               }
+       }
+
+       // Draw the TabPage border
+       const StyleSettings&    rStyleSettings = 
GetSettings().GetStyleSettings();
+       Rectangle                               aCurRect;
+       long                                    nTopOff = 1;
+       aRect.Left()   -= TAB_OFFSET;
+       aRect.Top()    -= TAB_OFFSET;
+       aRect.Right()  += TAB_OFFSET;
+       aRect.Bottom() += TAB_OFFSET;
+
+       // if we have an invisible tabpage or no tabpage at all the tabpage 
rect should be
+       // increased to avoid round corners that might be drawn by a theme
+       // in this case we're only interested in the top border of the tabpage 
because the tabitems are used
+       // standalone (e.g. Impress)
+       sal_Bool bNoTabPage = sal_False;
+       TabPage*                pCurPage = (pCurItem) ? pCurItem->mpTabPage : 
NULL;
+       if( !pCurPage || !pCurPage->IsVisible() )
+       {
+               bNoTabPage = sal_True;
+               aRect.Left()-=10;
+               aRect.Right()+=10;
+       }
+
+       sal_Bool bNativeOK = sal_False;
+       if( ! bLayout && (bNativeOK = IsNativeControlSupported( CTRL_TAB_PANE, 
PART_ENTIRE_CONTROL) ) == sal_True )
+       {
+               const ImplControlValue aControlValue;
+
+               ControlState nState = CTRL_STATE_ENABLED;
+               int part = PART_ENTIRE_CONTROL;
+               if ( !IsEnabled() )
+                       nState &= ~CTRL_STATE_ENABLED;
+               if ( HasFocus() )
+                       nState |= CTRL_STATE_FOCUSED;
+
+               Region aClipRgn( GetActiveClipRegion() );
+               aClipRgn.Intersect( aRect );
+               if( !rRect.IsEmpty() )
+                       aClipRgn.Intersect( rRect );
+
+               if( !aClipRgn.IsEmpty() )
+                       bNativeOK = DrawNativeControl( CTRL_TAB_PANE, part, 
aRect, nState,
+                               aControlValue, rtl::OUString() );
+       }
+       else
+       {
+               if ( !(rStyleSettings.GetOptions() & STYLE_OPTION_MONO) )
+                       SetLineColor( rStyleSettings.GetLightColor() );
+               else
+                       SetLineColor( Color( COL_BLACK ) );
+               if ( pCurItem && !pCurItem->maRect.IsEmpty() )
+               {
+                       aCurRect = pCurItem->maRect;
+                       if( ! bLayout )
+                               DrawLine( aRect.TopLeft(), Point( 
aCurRect.Left()-2, aRect.Top() ) );
+                       if ( aCurRect.Right()+1 < aRect.Right() )
+                       {
+                               if( ! bLayout )
+                                       DrawLine( Point( aCurRect.Right(), 
aRect.Top() ), aRect.TopRight() );
+                       }
+                       else
+                               nTopOff = 0;
+               }
+               else
+                       if( ! bLayout )
+                               DrawLine( aRect.TopLeft(), aRect.TopRight() );
+
+               if( ! bLayout )
+               {
+                       DrawLine( aRect.TopLeft(), aRect.BottomLeft() );
+
+                       if ( !(rStyleSettings.GetOptions() & STYLE_OPTION_MONO) 
)
+                       {
+                               // if we have not tab page the bottom line of 
the tab page
+                               // directly touches the tab items, so choose a 
color that fits seamlessly
+                               if( bNoTabPage )
+                                       SetLineColor( 
rStyleSettings.GetDialogColor() );
+                               else
+                                       SetLineColor( 
rStyleSettings.GetShadowColor() );
+                               DrawLine( Point( 1, aRect.Bottom()-1 ),
+                                               Point( aRect.Right()-1, 
aRect.Bottom()-1 ) );
+                               DrawLine( Point( aRect.Right()-1, 
aRect.Top()+nTopOff ),
+                                               Point( aRect.Right()-1, 
aRect.Bottom()-1 ) );
+                               if( bNoTabPage )
+                                       SetLineColor( 
rStyleSettings.GetDialogColor() );
+                               else
+                                       SetLineColor( 
rStyleSettings.GetDarkShadowColor() );
+                               DrawLine( Point( 0, aRect.Bottom() ),
+                                               Point( aRect.Right(), 
aRect.Bottom() ) );
+                               DrawLine( Point( aRect.Right(), 
aRect.Top()+nTopOff ),
+                                               Point( aRect.Right(), 
aRect.Bottom() ) );
+                       }
+                       else
+                       {
+                               DrawLine( aRect.TopRight(), aRect.BottomRight() 
);
+                               DrawLine( aRect.BottomLeft(), 
aRect.BottomRight() );
+                       }
+               }
+       }
+
+       if ( !mpTabCtrlData->maItemList.empty() && mpTabCtrlData->mpListBox == 
NULL )
+       {
+               // Some native toolkits (GTK+) draw tabs right-to-left, with an
+               // overlap between adjacent tabs
+               bool                    bDrawTabsRTL = 
IsNativeControlSupported( CTRL_TAB_ITEM, PART_TABS_DRAW_RTL );
+               ImplTabItem *   pFirstTab = NULL;
+               ImplTabItem *   pLastTab = NULL;
+               size_t idx;
+
+               // Event though there is a tab overlap with GTK+, the first tab 
is not
+               // overlapped on the left side. Other toolkits ignore this 
option.
+               if ( bDrawTabsRTL )
+               {
+                       pFirstTab = &mpTabCtrlData->maItemList.front();
+                       pLastTab = &mpTabCtrlData->maItemList.back();
+                       idx = mpTabCtrlData->maItemList.size()-1;
+               }
+               else
+               {
+                       pLastTab = &mpTabCtrlData->maItemList.back();
+                       pFirstTab = &mpTabCtrlData->maItemList.front();
+                       idx = 0;
+               }
+
+               while ( idx < mpTabCtrlData->maItemList.size() )
+               {
+                       ImplTabItem* pItem = &mpTabCtrlData->maItemList[idx];
+                       if ( pItem != pCurItem )
+                       {
+                               Region aClipRgn( GetActiveClipRegion() );
+                               aClipRgn.Intersect( pItem->maRect );
+                               if( !rRect.IsEmpty() )
+                                       aClipRgn.Intersect( rRect );
+                               if( bLayout || !aClipRgn.IsEmpty() )
+                                       ImplDrawItem( pItem, aCurRect, bLayout, 
(pItem==pFirstTab), (pItem==pLastTab), sal_False );
+                       }
+
+                       if ( bDrawTabsRTL )
+                               idx--;
+                       else
+                               idx++;
+               }
+
+               if ( pCurItem )
+               {
+                       Region aClipRgn( GetActiveClipRegion() );
+                       aClipRgn.Intersect( pCurItem->maRect );
+                       if( !rRect.IsEmpty() )
+                               aClipRgn.Intersect( rRect );
+                       if( bLayout || !aClipRgn.IsEmpty() )
+                               ImplDrawItem( pCurItem, aCurRect, bLayout, 
(pCurItem==pFirstTab), (pCurItem==pLastTab), sal_True );
+               }
+       }
+
+       if ( !bLayout && HasFocus() )
+               ImplShowFocus();
+
+       if( ! bLayout )
+               mbSmallInvalidate = sal_True;
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::Resize()
 {
-    ImplFreeLayoutData();
-
-    if ( !IsReallyShown() )
-        return;
-    
-    if( mpTabCtrlData->mpListBox )
-    {
-        // get the listbox' preferred size
-        Size aTabCtrlSize( GetSizePixel() );
-        long nPrefWidth = mpTabCtrlData->mpListBox->GetOptimalSize( 
WINDOWSIZE_PREFERRED ).Width();
-        if( nPrefWidth > aTabCtrlSize.Width() )
-            nPrefWidth = aTabCtrlSize.Width();
-        Size aNewSize( nPrefWidth, LogicToPixel( Size( 12, 12 ), MapMode( 
MAP_APPFONT ) ).Height() );
-        Point aNewPos( (aTabCtrlSize.Width() - nPrefWidth) / 2, 0 );
-        mpTabCtrlData->mpListBox->SetPosSizePixel( aNewPos, aNewSize );
-    }
-
-    mbFormat = sal_True;
-
-    // Aktuelle TabPage resizen/positionieren
-    sal_Bool bTabPage = ImplPosCurTabPage();
-    // Feststellen, was invalidiert werden muss
-    Size aNewSize = Control::GetOutputSizePixel();
-    long nNewWidth = aNewSize.Width();
-    for( std::vector< ImplTabItem >::iterator it = 
mpTabCtrlData->maItemList.begin();
-         it != mpTabCtrlData->maItemList.end(); ++it )
-    {
-        if ( !it->mbFullVisible ||
-             (it->maRect.Right()-2 >= nNewWidth) )
-        {
-            mbSmallInvalidate = sal_False;
-            break;
-        }
-    }
-
-    if ( mbSmallInvalidate )
-    {
-        Rectangle aRect = ImplGetTabRect( TAB_PAGERECT );
-        aRect.Left()   -= TAB_OFFSET+TAB_BORDER_LEFT;
-        aRect.Top()    -= TAB_OFFSET+TAB_BORDER_TOP;
-        aRect.Right()  += TAB_OFFSET+TAB_BORDER_RIGHT;
-        aRect.Bottom() += TAB_OFFSET+TAB_BORDER_BOTTOM;
-        if ( bTabPage )
-            Invalidate( aRect, INVALIDATE_NOCHILDREN );
-        else
-            Invalidate( aRect );
-
-    }
-    else
-    {
-        if ( bTabPage )
-            Invalidate( INVALIDATE_NOCHILDREN );
-        else
-            Invalidate();
-    }
+       ImplFreeLayoutData();
+
+       if ( !IsReallyShown() )
+               return;
+
+       if( mpTabCtrlData->mpListBox )
+       {
+               // get the listbox' preferred size
+               Size aTabCtrlSize( GetSizePixel() );
+               long nPrefWidth = mpTabCtrlData->mpListBox->GetOptimalSize( 
WINDOWSIZE_PREFERRED ).Width();
+               if( nPrefWidth > aTabCtrlSize.Width() )
+                       nPrefWidth = aTabCtrlSize.Width();
+               Size aNewSize( nPrefWidth, LogicToPixel( Size( 12, 12 ), 
MapMode( MAP_APPFONT ) ).Height() );
+               Point aNewPos( (aTabCtrlSize.Width() - nPrefWidth) / 2, 0 );
+               mpTabCtrlData->mpListBox->SetPosSizePixel( aNewPos, aNewSize );
+       }
+
+       mbFormat = sal_True;
+
+       // Aktuelle TabPage resizen/positionieren
+       sal_Bool bTabPage = ImplPosCurTabPage();
+       // Feststellen, was invalidiert werden muss
+       Size aNewSize = Control::GetOutputSizePixel();
+       long nNewWidth = aNewSize.Width();
+       for( std::vector< ImplTabItem >::iterator it = 
mpTabCtrlData->maItemList.begin();
+                it != mpTabCtrlData->maItemList.end(); ++it )
+       {
+               if ( !it->mbFullVisible ||
+                        (it->maRect.Right()-2 >= nNewWidth) )
+               {
+                       mbSmallInvalidate = sal_False;
+                       break;
+               }
+       }
+
+       if ( mbSmallInvalidate )
+       {
+               Rectangle aRect = ImplGetTabRect( TAB_PAGERECT );
+               aRect.Left()   -= TAB_OFFSET+TAB_BORDER_LEFT;
+               aRect.Top()    -= TAB_OFFSET+TAB_BORDER_TOP;
+               aRect.Right()  += TAB_OFFSET+TAB_BORDER_RIGHT;
+               aRect.Bottom() += TAB_OFFSET+TAB_BORDER_BOTTOM;
+               if ( bTabPage )
+                       Invalidate( aRect, INVALIDATE_NOCHILDREN );
+               else
+                       Invalidate( aRect );
+
+       }
+       else
+       {
+               if ( bTabPage )
+                       Invalidate( INVALIDATE_NOCHILDREN );
+               else
+                       Invalidate();
+       }
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::GetFocus()
 {
-    if( ! mpTabCtrlData->mpListBox )
-    {
-        ImplShowFocus();
-        SetInputContext( InputContext( GetFont() ) );
-    }
-    else
-    {
-        if( mpTabCtrlData->mpListBox->IsReallyVisible() )
-            mpTabCtrlData->mpListBox->GrabFocus();
-    }
-    Control::GetFocus();
+       if( ! mpTabCtrlData->mpListBox )
+       {
+               ImplShowFocus();
+               SetInputContext( InputContext( GetFont() ) );
+       }
+       else
+       {
+               if( mpTabCtrlData->mpListBox->IsReallyVisible() )
+                       mpTabCtrlData->mpListBox->GrabFocus();
+       }
+       Control::GetFocus();
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::LoseFocus()
 {
-    if( ! mpTabCtrlData->mpListBox )
-        HideFocus();
-    Control::LoseFocus();
+       if( ! mpTabCtrlData->mpListBox )
+               HideFocus();
+       Control::LoseFocus();
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::RequestHelp( const HelpEvent& rHEvt )
 {
-    sal_uInt16 nItemId = rHEvt.KeyboardActivated() ? mnCurPageId : GetPageId( 
ScreenToOutputPixel( rHEvt.GetMousePosPixel() ) );
-
-    if ( nItemId )
-    {
-        if ( rHEvt.GetMode() & HELPMODE_BALLOON )
-        {
-            XubString aStr = GetHelpText( nItemId );
-            if ( aStr.Len() )
-            {
-                Rectangle aItemRect = ImplGetTabRect( GetPagePos( nItemId ) );
-                Point aPt = OutputToScreenPixel( aItemRect.TopLeft() );
-                aItemRect.Left()   = aPt.X();
-                aItemRect.Top()    = aPt.Y();
-                aPt = OutputToScreenPixel( aItemRect.BottomRight() );
-                aItemRect.Right()  = aPt.X();
-                aItemRect.Bottom() = aPt.Y();
-                Help::ShowBalloon( this, aItemRect.Center(), aItemRect, aStr );
-                return;
-            }
-        }
-        else if ( rHEvt.GetMode() & HELPMODE_EXTENDED )
-        {
-            rtl::OUString aHelpId( rtl::OStringToOUString( GetHelpId( nItemId 
), RTL_TEXTENCODING_UTF8 ) );
-            if ( aHelpId.getLength() )
-            {
-                // Wenn eine Hilfe existiert, dann ausloesen
-                Help* pHelp = Application::GetHelp();
-                if ( pHelp )
-                    pHelp->Start( aHelpId, this );
-                return;
-            }
-        }
-
-        // Bei Quick- oder Balloon-Help zeigen wir den Text an,
-        // wenn dieser abgeschnitten ist
-        if ( rHEvt.GetMode() & (HELPMODE_QUICK | HELPMODE_BALLOON) )
-        {
-            ImplTabItem* pItem = ImplGetItem( nItemId );
-            const XubString& rStr = pItem->maText;
-            if ( rStr != pItem->maFormatText )
-            {
-                Rectangle aItemRect = ImplGetTabRect( GetPagePos( nItemId ) );
-                Point aPt = OutputToScreenPixel( aItemRect.TopLeft() );
-                aItemRect.Left()   = aPt.X();
-                aItemRect.Top()    = aPt.Y();
-                aPt = OutputToScreenPixel( aItemRect.BottomRight() );
-                aItemRect.Right()  = aPt.X();
-                aItemRect.Bottom() = aPt.Y();
-                if ( rStr.Len() )
-                {
-                    if ( rHEvt.GetMode() & HELPMODE_BALLOON )
-                        Help::ShowBalloon( this, aItemRect.Center(), 
aItemRect, rStr );
-                    else
-                        Help::ShowQuickHelp( this, aItemRect, rStr );
-                    return;
-                }
-            }
-        }
-
-        if ( rHEvt.GetMode() & HELPMODE_QUICK )
-        {
-            ImplTabItem* pItem = ImplGetItem( nItemId );
-            const XubString& rHelpText = pItem->maHelpText;
-            // show tooltip if not text but image is set and helptext is 
available
-            if ( rHelpText.Len() > 0 && pItem->maText.Len() == 0 && 
!!pItem->maTabImage )
-            {
-                Rectangle aItemRect = ImplGetTabRect( GetPagePos( nItemId ) );
-                Point aPt = OutputToScreenPixel( aItemRect.TopLeft() );
-                aItemRect.Left()   = aPt.X();
-                aItemRect.Top()    = aPt.Y();
-                aPt = OutputToScreenPixel( aItemRect.BottomRight() );
-                aItemRect.Right()  = aPt.X();
-                aItemRect.Bottom() = aPt.Y();
-                Help::ShowQuickHelp( this, aItemRect, rHelpText );
-                return;
-            }
-        }
-    }
-
-    Control::RequestHelp( rHEvt );
+       sal_uInt16 nItemId = rHEvt.KeyboardActivated() ? mnCurPageId : 
GetPageId( ScreenToOutputPixel( rHEvt.GetMousePosPixel() ) );
+
+       if ( nItemId )
+       {
+               if ( rHEvt.GetMode() & HELPMODE_BALLOON )
+               {
+                       XubString aStr = GetHelpText( nItemId );
+                       if ( aStr.Len() )
+                       {
+                               Rectangle aItemRect = ImplGetTabRect( 
GetPagePos( nItemId ) );
+                               Point aPt = OutputToScreenPixel( 
aItemRect.TopLeft() );
+                               aItemRect.Left()   = aPt.X();
+                               aItemRect.Top()    = aPt.Y();
+                               aPt = OutputToScreenPixel( 
aItemRect.BottomRight() );
+                               aItemRect.Right()  = aPt.X();
+                               aItemRect.Bottom() = aPt.Y();
+                               Help::ShowBalloon( this, aItemRect.Center(), 
aItemRect, aStr );
+                               return;
+                       }
+               }
+               else if ( rHEvt.GetMode() & HELPMODE_EXTENDED )
+               {
+                       rtl::OUString aHelpId( rtl::OStringToOUString( 
GetHelpId( nItemId ), RTL_TEXTENCODING_UTF8 ) );
+                       if ( aHelpId.getLength() )
+                       {
+                               // Wenn eine Hilfe existiert, dann ausloesen
+                               Help* pHelp = Application::GetHelp();
+                               if ( pHelp )
+                                       pHelp->Start( aHelpId, this );
+                               return;
+                       }
+               }
+
+               // Bei Quick- oder Balloon-Help zeigen wir den Text an,
+               // wenn dieser abgeschnitten ist
+               if ( rHEvt.GetMode() & (HELPMODE_QUICK | HELPMODE_BALLOON) )
+               {
+                       ImplTabItem* pItem = ImplGetItem( nItemId );
+                       const XubString& rStr = pItem->maText;
+                       if ( rStr != pItem->maFormatText )
+                       {
+                               Rectangle aItemRect = ImplGetTabRect( 
GetPagePos( nItemId ) );
+                               Point aPt = OutputToScreenPixel( 
aItemRect.TopLeft() );
+                               aItemRect.Left()   = aPt.X();
+                               aItemRect.Top()    = aPt.Y();
+                               aPt = OutputToScreenPixel( 
aItemRect.BottomRight() );
+                               aItemRect.Right()  = aPt.X();
+                               aItemRect.Bottom() = aPt.Y();
+                               if ( rStr.Len() )
+                               {
+                                       if ( rHEvt.GetMode() & HELPMODE_BALLOON 
)
+                                               Help::ShowBalloon( this, 
aItemRect.Center(), aItemRect, rStr );
+                                       else
+                                               Help::ShowQuickHelp( this, 
aItemRect, rStr );
+                                       return;
+                               }
+                       }
+               }
+
+               if ( rHEvt.GetMode() & HELPMODE_QUICK )
+               {
+                       ImplTabItem* pItem = ImplGetItem( nItemId );
+                       const XubString& rHelpText = pItem->maHelpText;
+                       // show tooltip if not text but image is set and 
helptext is available
+                       if ( rHelpText.Len() > 0 && pItem->maText.Len() == 0 && 
!!pItem->maTabImage )
+                       {
+                               Rectangle aItemRect = ImplGetTabRect( 
GetPagePos( nItemId ) );
+                               Point aPt = OutputToScreenPixel( 
aItemRect.TopLeft() );
+                               aItemRect.Left()   = aPt.X();
+                               aItemRect.Top()    = aPt.Y();
+                               aPt = OutputToScreenPixel( 
aItemRect.BottomRight() );
+                               aItemRect.Right()  = aPt.X();
+                               aItemRect.Bottom() = aPt.Y();
+                               Help::ShowQuickHelp( this, aItemRect, rHelpText 
);
+                               return;
+                       }
+               }
+       }
+
+       Control::RequestHelp( rHEvt );
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::Command( const CommandEvent& rCEvt )
 {
-    if( (mpTabCtrlData->mpListBox == NULL) && (rCEvt.GetCommand() == 
COMMAND_CONTEXTMENU) && (GetPageCount() > 1) )
-    {
-        Point   aMenuPos;
-        sal_Bool    bMenu;
-        if ( rCEvt.IsMouseEvent() )
-        {
-            aMenuPos = rCEvt.GetMousePosPixel();
-            bMenu = GetPageId( aMenuPos ) != 0;
-        }
-        else
-        {
-            aMenuPos = ImplGetTabRect( GetPagePos( mnCurPageId ) ).Center();
-            bMenu = sal_True;
-        }
-
-        if ( bMenu )
-        {
-            PopupMenu aMenu;
-            for( std::vector< ImplTabItem >::iterator it = 
mpTabCtrlData->maItemList.begin();
-                 it != mpTabCtrlData->maItemList.end(); ++it )
-            {
-                aMenu.InsertItem( it->mnId, it->maText, MIB_CHECKABLE | 
MIB_RADIOCHECK );
-                if ( it->mnId == mnCurPageId )
-                    aMenu.CheckItem( it->mnId );
-                aMenu.SetHelpId( it->mnId, it->maHelpId );
-            }
-
-            sal_uInt16 nId = aMenu.Execute( this, aMenuPos );
-            if ( nId && (nId != mnCurPageId) )
-                SelectTabPage( nId );
-            return;
-        }
-    }
-
-    Control::Command( rCEvt );
+       if( (mpTabCtrlData->mpListBox == NULL) && (rCEvt.GetCommand() == 
COMMAND_CONTEXTMENU) && (GetPageCount() > 1) )
+       {
+               Point   aMenuPos;
+               sal_Bool        bMenu;
+               if ( rCEvt.IsMouseEvent() )
+               {
+                       aMenuPos = rCEvt.GetMousePosPixel();
+                       bMenu = GetPageId( aMenuPos ) != 0;
+               }
+               else
+               {
+                       aMenuPos = ImplGetTabRect( GetPagePos( mnCurPageId ) 
).Center();
+                       bMenu = sal_True;
+               }
+
+               if ( bMenu )
+               {
+                       PopupMenu aMenu;
+                       for( std::vector< ImplTabItem >::iterator it = 
mpTabCtrlData->maItemList.begin();
+                               it != mpTabCtrlData->maItemList.end(); ++it )
+                       {
+                               aMenu.InsertItem( it->mnId, it->maText, 
MIB_CHECKABLE | MIB_RADIOCHECK );
+                               if ( it->mnId == mnCurPageId )
+                                       aMenu.CheckItem( it->mnId );
+                               aMenu.SetHelpId( it->mnId, it->maHelpId );
+                       }
+
+                       sal_uInt16 nId = aMenu.Execute( this, aMenuPos );
+                       if ( nId && (nId != mnCurPageId) )
+                               SelectTabPage( nId );
+                       return;
+               }
+       }
+
+       Control::Command( rCEvt );
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::StateChanged( StateChangedType nType )
 {
-    Control::StateChanged( nType );
-
-    if ( nType == STATE_CHANGE_INITSHOW )
-    {
-        ImplPosCurTabPage();
-        if( mpTabCtrlData->mpListBox )
-            Resize();
-    }
-    else if ( nType == STATE_CHANGE_UPDATEMODE )
-    {
-        if ( IsUpdateMode() )
-            Invalidate();
-    }
-    else if ( (nType == STATE_CHANGE_ZOOM)  ||
-              (nType == STATE_CHANGE_CONTROLFONT) )
-    {
-        ImplInitSettings( sal_True, sal_False, sal_False );
-        Invalidate();
-    }
-    else if ( nType == STATE_CHANGE_CONTROLFOREGROUND )
-    {
-        ImplInitSettings( sal_False, sal_True, sal_False );
-        Invalidate();
-    }
-    else if ( nType == STATE_CHANGE_CONTROLBACKGROUND )
-    {
-        ImplInitSettings( sal_False, sal_False, sal_True );
-        Invalidate();
-    }
+       Control::StateChanged( nType );
+
+       if ( nType == STATE_CHANGE_INITSHOW )
+       {
+               ImplPosCurTabPage();
+               if( mpTabCtrlData->mpListBox )
+                       Resize();
+       }
+       else if ( nType == STATE_CHANGE_UPDATEMODE )
+       {
+               if ( IsUpdateMode() )
+                       Invalidate();
+       }
+       else if ( (nType == STATE_CHANGE_ZOOM) ||
+                         (nType == STATE_CHANGE_CONTROLFONT) )
+       {
+               ImplInitSettings( sal_True, sal_False, sal_False );
+               Invalidate();
+       }
+       else if ( nType == STATE_CHANGE_CONTROLFOREGROUND )
+       {
+               ImplInitSettings( sal_False, sal_True, sal_False );
+               Invalidate();
+       }
+       else if ( nType == STATE_CHANGE_CONTROLBACKGROUND )
+       {
+               ImplInitSettings( sal_False, sal_False, sal_True );
+               Invalidate();
+       }
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::DataChanged( const DataChangedEvent& rDCEvt )
 {
-    Control::DataChanged( rDCEvt );
+       Control::DataChanged( rDCEvt );
 
-    if ( (rDCEvt.GetType() == DATACHANGED_FONTS) ||
-         (rDCEvt.GetType() == DATACHANGED_FONTSUBSTITUTION) ||
-         ((rDCEvt.GetType() == DATACHANGED_SETTINGS) &&
-          (rDCEvt.GetFlags() & SETTINGS_STYLE)) )
-    {
-        ImplInitSettings( sal_True, sal_True, sal_True );
-        Invalidate();
-    }
+       if ( (rDCEvt.GetType() == DATACHANGED_FONTS) ||
+                (rDCEvt.GetType() == DATACHANGED_FONTSUBSTITUTION) ||
+                ((rDCEvt.GetType() == DATACHANGED_SETTINGS) &&
+                 (rDCEvt.GetFlags() & SETTINGS_STYLE)) )
+       {
+               ImplInitSettings( sal_True, sal_True, sal_True );
+               Invalidate();
+       }
 }
 
 // -----------------------------------------------------------------------
 
 Rectangle* TabControl::ImplFindPartRect( const Point& rPt )
 {
-    ImplTabItem* pFoundItem = NULL;
-    int nFound = 0;
-    for( std::vector< ImplTabItem >::iterator it = 
mpTabCtrlData->maItemList.begin();
-         it != mpTabCtrlData->maItemList.end(); ++it )
-    {
-        if ( it->maRect.IsInside( rPt ) )
-        {
-            // assure that only one tab is highlighted at a time
-            nFound++;
-            pFoundItem = &(*it);
-        }
-    }
-    // assure that only one tab is highlighted at a time
-    return nFound == 1 ? &pFoundItem->maRect : NULL;
+       ImplTabItem* pFoundItem = NULL;
+       int nFound = 0;
+       for( std::vector< ImplTabItem >::iterator it = 
mpTabCtrlData->maItemList.begin();
+                it != mpTabCtrlData->maItemList.end(); ++it )
+       {
+               if ( it->maRect.IsInside( rPt ) )
+               {
+                       // assure that only one tab is highlighted at a time
+                       nFound++;
+                       pFoundItem = &(*it);
+               }
+       }
+       // assure that only one tab is highlighted at a time
+       return nFound == 1 ? &pFoundItem->maRect : NULL;
 }
 
 long TabControl::PreNotify( NotifyEvent& rNEvt )
 {
-    long nDone = 0;
-    const MouseEvent* pMouseEvt = NULL;
-
-    if( (rNEvt.GetType() == EVENT_MOUSEMOVE) && (pMouseEvt = 
rNEvt.GetMouseEvent()) != NULL )
-    {
-        if( !pMouseEvt->GetButtons() && !pMouseEvt->IsSynthetic() && 
!pMouseEvt->IsModifierChanged() )
-        {
-            // trigger redraw if mouse over state has changed
-            if( IsNativeControlSupported(CTRL_TAB_ITEM, PART_ENTIRE_CONTROL) )
-            {
-                Rectangle* pRect = ImplFindPartRect( GetPointerPosPixel() );
-                Rectangle* pLastRect = ImplFindPartRect( 
GetLastPointerPosPixel() );
-                if( pRect != pLastRect || (pMouseEvt->IsLeaveWindow() || 
pMouseEvt->IsEnterWindow()) )
-                {
-                    Region aClipRgn;
-                    if( pLastRect )
-                    {
-                        // allow for slightly bigger tabitems
-                        // as used by gtk
-                        // TODO: query for the correct sizes
-                        Rectangle aRect(*pLastRect);
-                        aRect.nLeft-=2;
-                        aRect.nRight+=2;
-                        aRect.nTop-=3;
-                        aClipRgn.Union( aRect );
-                    }
-                    if( pRect )
-                    {
-                        // allow for slightly bigger tabitems
-                        // as used by gtk
-                        // TODO: query for the correct sizes
-                        Rectangle aRect(*pRect);
-                        aRect.nLeft-=2;
-                        aRect.nRight+=2;
-                        aRect.nTop-=3;
-                        aClipRgn.Union( aRect );
-                    }
-                    if( !aClipRgn.IsEmpty() )
-                        Invalidate( aClipRgn );
-                }
-            }
-        }
-    }
-
-    return nDone ? nDone : Control::PreNotify(rNEvt);
+       long nDone = 0;
+       const MouseEvent* pMouseEvt = NULL;
+
+       if( (rNEvt.GetType() == EVENT_MOUSEMOVE) && (pMouseEvt = 
rNEvt.GetMouseEvent()) != NULL )
+       {
+               if( !pMouseEvt->GetButtons() && !pMouseEvt->IsSynthetic() && 
!pMouseEvt->IsModifierChanged() )
+               {
+                       // trigger redraw if mouse over state has changed
+                       if( IsNativeControlSupported(CTRL_TAB_ITEM, 
PART_ENTIRE_CONTROL) )
+                       {
+                               Rectangle* pRect = ImplFindPartRect( 
GetPointerPosPixel() );
+                               Rectangle* pLastRect = ImplFindPartRect( 
GetLastPointerPosPixel() );
+                               if( pRect != pLastRect || 
(pMouseEvt->IsLeaveWindow() || pMouseEvt->IsEnterWindow()) )
+                               {
+                                       Region aClipRgn;
+                                       if( pLastRect )
+                                       {
+                                               // allow for slightly bigger 
tabitems
+                                               // as used by gtk
+                                               // TODO: query for the correct 
sizes
+                                               Rectangle aRect(*pLastRect);
+                                               aRect.nLeft-=2;
+                                               aRect.nRight+=2;
+                                               aRect.nTop-=3;
+                                               aClipRgn.Union( aRect );
+                                       }
+                                       if( pRect )
+                                       {
+                                               // allow for slightly bigger 
tabitems
+                                               // as used by gtk
+                                               // TODO: query for the correct 
sizes
+                                               Rectangle aRect(*pRect);
+                                               aRect.nLeft-=2;
+                                               aRect.nRight+=2;
+                                               aRect.nTop-=3;
+                                               aClipRgn.Union( aRect );
+                                       }
+                                       if( !aClipRgn.IsEmpty() )
+                                               Invalidate( aClipRgn );
+                               }
+                       }
+               }
+       }
+
+       return nDone ? nDone : Control::PreNotify(rNEvt);
 }
 
 // -----------------------------------------------------------------------
 
 long TabControl::Notify( NotifyEvent& rNEvt )
 {
-    long nRet = 0;
+       long nRet = 0;
 
-    if ( rNEvt.GetType() == EVENT_KEYINPUT )
-        nRet = ImplHandleKeyEvent( *rNEvt.GetKeyEvent() );
+       if ( rNEvt.GetType() == EVENT_KEYINPUT )
+               nRet = ImplHandleKeyEvent( *rNEvt.GetKeyEvent() );
 
-    return nRet ? nRet : Control::Notify( rNEvt );
+       return nRet ? nRet : Control::Notify( rNEvt );
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::ActivatePage()
 {
-    maActivateHdl.Call( this );
+       maActivateHdl.Call( this );
 }
 
 // -----------------------------------------------------------------------
 
 long TabControl::DeactivatePage()
 {
-    if ( maDeactivateHdl.IsSet() )
-        return maDeactivateHdl.Call( this );
-    else
-        return sal_True;
+       if ( maDeactivateHdl.IsSet() )
+               return maDeactivateHdl.Call( this );
+       else
+               return sal_True;
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::SetTabPageSizePixel( const Size& rSize )
 {
-    ImplFreeLayoutData();
+       ImplFreeLayoutData();
 
-    Size aNewSize( rSize );
-    aNewSize.Width() += TAB_OFFSET*2;
-    Rectangle aRect = ImplGetTabRect( TAB_PAGERECT,
-                                      aNewSize.Width(), aNewSize.Height() );
-    aNewSize.Height() += aRect.Top()+TAB_OFFSET;
-    Window::SetOutputSizePixel( aNewSize );
+       Size aNewSize( rSize );
+       aNewSize.Width() += TAB_OFFSET*2;
+       Rectangle aRect = ImplGetTabRect( TAB_PAGERECT,
+                                                                         
aNewSize.Width(), aNewSize.Height() );
+       aNewSize.Height() += aRect.Top()+TAB_OFFSET;
+       Window::SetOutputSizePixel( aNewSize );
 }
 
 // -----------------------------------------------------------------------
 
 Size TabControl::GetTabPageSizePixel() const
 {
-    Rectangle aRect = ((TabControl*)this)->ImplGetTabRect( TAB_PAGERECT );
-    return aRect.GetSize();
+       Rectangle aRect = ((TabControl*)this)->ImplGetTabRect( TAB_PAGERECT );
+       return aRect.GetSize();
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::InsertPage( const ResId& rResId, sal_uInt16 nPos )
 {
-    GetRes( rResId.SetRT( RSC_TABCONTROLITEM ) );
+       GetRes( rResId.SetRT( RSC_TABCONTROLITEM ) );
 
-    sal_uLong nObjMask = ReadLongRes();
-    sal_uInt16 nItemId  = 1;
+       sal_uLong nObjMask = ReadLongRes();
+       sal_uInt16 nItemId = 1;
 
-    // ID
-    if ( nObjMask & RSC_TABCONTROLITEM_ID )
-        nItemId = sal::static_int_cast<sal_uInt16>(ReadLongRes());
+       // ID
+       if ( nObjMask & RSC_TABCONTROLITEM_ID )
+               nItemId = sal::static_int_cast<sal_uInt16>(ReadLongRes());
 
-    // Text
-    XubString aTmpStr;
-    if( nObjMask & RSC_TABCONTROLITEM_TEXT )
-        aTmpStr = ReadStringRes();
-    InsertPage( nItemId, aTmpStr, nPos );
+       // Text
+       XubString aTmpStr;
+       if( nObjMask & RSC_TABCONTROLITEM_TEXT )
+               aTmpStr = ReadStringRes();
+       InsertPage( nItemId, aTmpStr, nPos );
 
-    // PageResID
-    if ( nObjMask & RSC_TABCONTROLITEM_PAGERESID )
-    {
-        ImplTabItem& rItem = mpTabCtrlData->maItemList[ GetPagePos( nItemId ) 
];
-        rItem.mnTabPageResId = sal::static_int_cast<sal_uInt16>(ReadLongRes());
-    }
+       // PageResID
+       if ( nObjMask & RSC_TABCONTROLITEM_PAGERESID )
+       {
+               ImplTabItem& rItem = mpTabCtrlData->maItemList[ GetPagePos( 
nItemId ) ];
+               rItem.mnTabPageResId = 
sal::static_int_cast<sal_uInt16>(ReadLongRes());
+       }
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::InsertPage( sal_uInt16 nPageId, const XubString& rText,
-                             sal_uInt16 nPos )
-{
-    DBG_ASSERT( nPageId, "TabControl::InsertPage(): PageId == 0" );
-    DBG_ASSERT( GetPagePos( nPageId ) == TAB_PAGE_NOTFOUND,
-                "TabControl::InsertPage(): PageId already exists" );
-
-    // insert new page item
-    ImplTabItem* pItem = NULL;
-    if( nPos == TAB_APPEND || size_t(nPos) >= mpTabCtrlData->maItemList.size() 
)
-    {
-        mpTabCtrlData->maItemList.push_back( ImplTabItem() );
-        pItem = &mpTabCtrlData->maItemList.back();
-        if( mpTabCtrlData->mpListBox )
-            mpTabCtrlData->mpListBox->InsertEntry( rText );
-    }
-    else
-    {
-        std::vector< ImplTabItem >::iterator new_it =
-            mpTabCtrlData->maItemList.insert( 
mpTabCtrlData->maItemList.begin() + nPos, ImplTabItem() );
-        pItem = &(*new_it);
-        if( mpTabCtrlData->mpListBox )
-            mpTabCtrlData->mpListBox->InsertEntry( rText, nPos);
-    }
-    if( mpTabCtrlData->mpListBox )
-    {
-        if( ! mnCurPageId )
-            mpTabCtrlData->mpListBox->SelectEntryPos( 0 );
-        mpTabCtrlData->mpListBox->SetDropDownLineCount( 
mpTabCtrlData->mpListBox->GetEntryCount() );
-    }
-    
-    // set current page id
-    if ( !mnCurPageId )
-        mnCurPageId = nPageId;
-
-    // init new page item
-    pItem->mnId             = nPageId;
-    pItem->mpTabPage        = NULL;
-    pItem->mnTabPageResId   = 0;
-    pItem->maText           = rText;
-    pItem->mbFullVisible    = sal_False;
-
-    mbFormat = sal_True;
-    if ( IsUpdateMode() )
-        Invalidate();
-
-    ImplFreeLayoutData();
-    if( mpTabCtrlData->mpListBox ) // reposition/resize listbox
-        Resize();
+                                                        sal_uInt16 nPos )
+{
+       DBG_ASSERT( nPageId, "TabControl::InsertPage(): PageId == 0" );
+       DBG_ASSERT( GetPagePos( nPageId ) == TAB_PAGE_NOTFOUND,
+                               "TabControl::InsertPage(): PageId already 
exists" );
+
+       // insert new page item
+       ImplTabItem* pItem = NULL;
+       if( nPos == TAB_APPEND || size_t(nPos) >= 
mpTabCtrlData->maItemList.size() )
+       {
+               mpTabCtrlData->maItemList.push_back( ImplTabItem() );
+               pItem = &mpTabCtrlData->maItemList.back();
+               if( mpTabCtrlData->mpListBox )
+                       mpTabCtrlData->mpListBox->InsertEntry( rText );
+       }
+       else
+       {
+               std::vector< ImplTabItem >::iterator new_it =
+                       mpTabCtrlData->maItemList.insert( 
mpTabCtrlData->maItemList.begin() + nPos, ImplTabItem() );
+               pItem = &(*new_it);
+               if( mpTabCtrlData->mpListBox )
+                       mpTabCtrlData->mpListBox->InsertEntry( rText, nPos);
+       }
+       if( mpTabCtrlData->mpListBox )
+       {
+               if( ! mnCurPageId )
+                       mpTabCtrlData->mpListBox->SelectEntryPos( 0 );
+               mpTabCtrlData->mpListBox->SetDropDownLineCount( 
mpTabCtrlData->mpListBox->GetEntryCount() );
+       }
+
+       // set current page id
+       if ( !mnCurPageId )
+               mnCurPageId = nPageId;
+
+       // init new page item
+       pItem->mnId                             = nPageId;
+       pItem->mpTabPage                = NULL;
+       pItem->mnTabPageResId   = 0;
+       pItem->maText                   = rText;
+       pItem->mbFullVisible    = sal_False;
+
+       mbFormat = sal_True;
+       if ( IsUpdateMode() )
+               Invalidate();
+
+       ImplFreeLayoutData();
+       if( mpTabCtrlData->mpListBox ) // reposition/resize listbox
+               Resize();
 
        ImplCallEventListeners( VCLEVENT_TABPAGE_INSERTED, (void*) 
(sal_uLong)nPageId );
 }
@@ -1708,65 +1706,65 @@ void TabControl::InsertPage( sal_uInt16 nPageId, const 
XubString& rText,
 
 void TabControl::RemovePage( sal_uInt16 nPageId )
 {
-    sal_uInt16 nPos = GetPagePos( nPageId );
-
-    // does the item exist ?
-    if ( nPos != TAB_PAGE_NOTFOUND )
-    {
-        //remove page item
-        std::vector< ImplTabItem >::iterator it = 
mpTabCtrlData->maItemList.begin() + nPos;
-        bool bIsCurrentPage = (it->mnId == mnCurPageId);
-        mpTabCtrlData->maItemList.erase( it );
-        if( mpTabCtrlData->mpListBox )
-        {
-            mpTabCtrlData->mpListBox->RemoveEntry( nPos );
-            mpTabCtrlData->mpListBox->SetDropDownLineCount( 
mpTabCtrlData->mpListBox->GetEntryCount() );
-        }
-
-        // If current page is removed, than first page gets the current page
-        if ( bIsCurrentPage  )
-        {
-            mnCurPageId = 0;
-
-            if( ! mpTabCtrlData->maItemList.empty() )
-            {
-                // don't do this by simply setting mnCurPageId to 
pFirstItem->mnId
-                // this leaves a lot of stuff (such trivias as _showing_ the 
new current page) undone
-                // instead, call SetCurPageId
-                // without this, the next (outside) call to SetCurPageId with 
the id of the first page
-                // will result in doing nothing (as we assume that nothing 
changed, then), and the page
-                // will never be shown.
-                // 86875 - 05/11/2001 - frank.schoenh...@germany.sun.com
-
-                SetCurPageId( mpTabCtrlData->maItemList[0].mnId );
-            }
-        }
-
-        mbFormat = sal_True;
-        if ( IsUpdateMode() )
-            Invalidate();
-
-        ImplFreeLayoutData();
+       sal_uInt16 nPos = GetPagePos( nPageId );
+
+       // does the item exist?
+       if ( nPos != TAB_PAGE_NOTFOUND )
+       {
+               //remove page item
+               std::vector< ImplTabItem >::iterator it = 
mpTabCtrlData->maItemList.begin() + nPos;
+               bool bIsCurrentPage = (it->mnId == mnCurPageId);
+               mpTabCtrlData->maItemList.erase( it );
+               if( mpTabCtrlData->mpListBox )
+               {
+                       mpTabCtrlData->mpListBox->RemoveEntry( nPos );
+                       mpTabCtrlData->mpListBox->SetDropDownLineCount( 
mpTabCtrlData->mpListBox->GetEntryCount() );
+               }
+
+               // If current page is removed, than first page gets the current 
page
+               if ( bIsCurrentPage )
+               {
+                       mnCurPageId = 0;
+
+                       if( ! mpTabCtrlData->maItemList.empty() )
+                       {
+                               // don't do this by simply setting mnCurPageId 
to pFirstItem->mnId
+                               // this leaves a lot of stuff (such trivias as 
_showing_ the new current page) undone
+                               // instead, call SetCurPageId
+                               // without this, the next (outside) call to 
SetCurPageId with the id of the first page
+                               // will result in doing nothing (as we assume 
that nothing changed, then), and the page
+                               // will never be shown.
+                               // 86875 - 05/11/2001 - 
frank.schoenh...@germany.sun.com
+
+                               SetCurPageId( mpTabCtrlData->maItemList[0].mnId 
);
+                       }
+               }
+
+               mbFormat = sal_True;
+               if ( IsUpdateMode() )
+                       Invalidate();
+
+               ImplFreeLayoutData();
 
                ImplCallEventListeners( VCLEVENT_TABPAGE_REMOVED, (void*) 
(sal_uLong) nPageId );
-    }
+       }
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::Clear()
 {
-    // clear item list
-    mpTabCtrlData->maItemList.clear();
-    mnCurPageId = 0;
-    if( mpTabCtrlData->mpListBox )
-        mpTabCtrlData->mpListBox->Clear();
+       // clear item list
+       mpTabCtrlData->maItemList.clear();
+       mnCurPageId = 0;
+       if( mpTabCtrlData->mpListBox )
+               mpTabCtrlData->mpListBox->Clear();
 
-    ImplFreeLayoutData();
+       ImplFreeLayoutData();
 
-    mbFormat = sal_True;
-    if ( IsUpdateMode() )
-        Invalidate();
+       mbFormat = sal_True;
+       if ( IsUpdateMode() )
+               Invalidate();
 
        ImplCallEventListeners( VCLEVENT_TABPAGE_REMOVEDALL );
 }
@@ -1775,439 +1773,437 @@ void TabControl::Clear()
 
 void TabControl::EnablePage( sal_uInt16 i_nPageId, bool i_bEnable )
 {
-    ImplTabItem* pItem = ImplGetItem( i_nPageId );
+       ImplTabItem* pItem = ImplGetItem( i_nPageId );
 
-    if ( pItem && pItem->mbEnabled != i_bEnable )
-    {
-        pItem->mbEnabled = i_bEnable;
-        mbFormat = sal_True;
-        if( mpTabCtrlData->mpListBox )
-            mpTabCtrlData->mpListBox->SetEntryFlags( GetPagePos( i_nPageId ),
-                                                     i_bEnable ? 0 : 
(LISTBOX_ENTRY_FLAG_DISABLE_SELECTION | LISTBOX_ENTRY_FLAG_DRAW_DISABLED) );
-        if( pItem->mnId == mnCurPageId )
-        {
-             // SetCurPageId will change to an enabled page
-            SetCurPageId( mnCurPageId );
-        }
-        else if ( IsUpdateMode() )
-            Invalidate();
-    }
+       if ( pItem && pItem->mbEnabled != i_bEnable )
+       {
+               pItem->mbEnabled = i_bEnable;
+               mbFormat = sal_True;
+               if( mpTabCtrlData->mpListBox )
+                       mpTabCtrlData->mpListBox->SetEntryFlags( GetPagePos( 
i_nPageId ),
+                                                                               
                         i_bEnable ? 0 : (LISTBOX_ENTRY_FLAG_DISABLE_SELECTION 
| LISTBOX_ENTRY_FLAG_DRAW_DISABLED) );
+               if( pItem->mnId == mnCurPageId )
+               {
+                       // SetCurPageId will change to an enabled page
+                       SetCurPageId( mnCurPageId );
+               }
+               else if ( IsUpdateMode() )
+                       Invalidate();
+       }
 }
 
 // -----------------------------------------------------------------------
 
 sal_uInt16 TabControl::GetPageCount() const
 {
-    return (sal_uInt16)mpTabCtrlData->maItemList.size();
+       return (sal_uInt16)mpTabCtrlData->maItemList.size();
 }
 
 // -----------------------------------------------------------------------
 
 sal_uInt16 TabControl::GetPageId( sal_uInt16 nPos ) const
 {
-    if( size_t(nPos) < mpTabCtrlData->maItemList.size() )
-        return mpTabCtrlData->maItemList[ nPos ].mnId;
-    return 0;
+       if( size_t(nPos) < mpTabCtrlData->maItemList.size() )
+               return mpTabCtrlData->maItemList[ nPos ].mnId;
+       return 0;
 }
 
 // -----------------------------------------------------------------------
 
 sal_uInt16 TabControl::GetPagePos( sal_uInt16 nPageId ) const
 {
-    for( std::vector< ImplTabItem >::const_iterator it = 
mpTabCtrlData->maItemList.begin();
-         it != mpTabCtrlData->maItemList.end(); ++it )
-    {
-        if ( it->mnId == nPageId )
-            return (sal_uInt16)(it - mpTabCtrlData->maItemList.begin());
-    }
+       for( std::vector< ImplTabItem >::const_iterator it = 
mpTabCtrlData->maItemList.begin();
+                it != mpTabCtrlData->maItemList.end(); ++it )
+       {
+               if ( it->mnId == nPageId )
+                       return (sal_uInt16)(it - 
mpTabCtrlData->maItemList.begin());
+       }
 
-    return TAB_PAGE_NOTFOUND;
+       return TAB_PAGE_NOTFOUND;
 }
 
 // -----------------------------------------------------------------------
 
 sal_uInt16 TabControl::GetPageId( const Point& rPos ) const
 {
-    for( size_t i = 0; i < mpTabCtrlData->maItemList.size(); ++i )
-    {
-        if ( ((TabControl*)this)->ImplGetTabRect( static_cast<sal_uInt16>(i) 
).IsInside( rPos ) )
-            return mpTabCtrlData->maItemList[ i ].mnId;
-    }
+       for( size_t i = 0; i < mpTabCtrlData->maItemList.size(); ++i )
+       {
+               if ( ((TabControl*)this)->ImplGetTabRect( 
static_cast<sal_uInt16>(i) ).IsInside( rPos ) )
+                       return mpTabCtrlData->maItemList[ i ].mnId;
+       }
 
-    return 0;
+       return 0;
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::SetCurPageId( sal_uInt16 nPageId )
 {
-    sal_uInt16 nPos = GetPagePos( nPageId );
-    while( nPos != TAB_PAGE_NOTFOUND &&
-           ! mpTabCtrlData->maItemList[nPos].mbEnabled )
-    {
-        nPos++;
-        if( size_t(nPos) >= mpTabCtrlData->maItemList.size() )
-            nPos = 0;
-        if( mpTabCtrlData->maItemList[nPos].mnId == nPageId )
-            break;
-    }
-
-    if( nPos != TAB_PAGE_NOTFOUND )
-    {
-        nPageId = mpTabCtrlData->maItemList[nPos].mnId;
-        if ( nPageId == mnCurPageId )
-        {
-            if ( mnActPageId )
-                mnActPageId = nPageId;
-            return;
-        }
-
-        if ( mnActPageId )
-            mnActPageId = nPageId;
-        else
-        {
-            mbFormat = sal_True;
-            sal_uInt16 nOldId = mnCurPageId;
-            mnCurPageId = nPageId;
-            ImplChangeTabPage( nPageId, nOldId );
-        }
-    }
+       sal_uInt16 nPos = GetPagePos( nPageId );
+       while( nPos != TAB_PAGE_NOTFOUND &&
+                  ! mpTabCtrlData->maItemList[nPos].mbEnabled )
+       {
+               nPos++;
+               if( size_t(nPos) >= mpTabCtrlData->maItemList.size() )
+                       nPos = 0;
+               if( mpTabCtrlData->maItemList[nPos].mnId == nPageId )
+                       break;
+       }
+
+       if( nPos != TAB_PAGE_NOTFOUND )
+       {
+               nPageId = mpTabCtrlData->maItemList[nPos].mnId;
+               if ( nPageId == mnCurPageId )
+               {
+                       if ( mnActPageId )
+                               mnActPageId = nPageId;
+                       return;
+               }
+
+               if ( mnActPageId )
+                       mnActPageId = nPageId;
+               else
+               {
+                       mbFormat = sal_True;
+                       sal_uInt16 nOldId = mnCurPageId;
+                       mnCurPageId = nPageId;
+                       ImplChangeTabPage( nPageId, nOldId );
+               }
+       }
 }
 
 // -----------------------------------------------------------------------
 
 sal_uInt16 TabControl::GetCurPageId() const
 {
-    if ( mnActPageId )
-        return mnActPageId;
-    else
-        return mnCurPageId;
+       if ( mnActPageId )
+               return mnActPageId;
+       else
+               return mnCurPageId;
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::SelectTabPage( sal_uInt16 nPageId )
 {
-    if ( nPageId && (nPageId != mnCurPageId) )
-    {
-        ImplFreeLayoutData();
+       if ( nPageId && (nPageId != mnCurPageId) )
+       {
+               ImplFreeLayoutData();
 
                ImplCallEventListeners( VCLEVENT_TABPAGE_DEACTIVATE, (void*) 
(sal_uLong) mnCurPageId );
-        if ( DeactivatePage() )
-        {
-            mnActPageId = nPageId;
-            ActivatePage();
-            // Page koennte im Activate-Handler umgeschaltet wurden sein
-            nPageId = mnActPageId;
-            mnActPageId = 0;
-            SetCurPageId( nPageId );
-            if( mpTabCtrlData->mpListBox )
-                mpTabCtrlData->mpListBox->SelectEntryPos( GetPagePos( nPageId 
) );
+               if ( DeactivatePage() )
+               {
+                       mnActPageId = nPageId;
+                       ActivatePage();
+                       // Page könnte im Activate-Handler umgeschaltet wurden 
sein
+                       nPageId = mnActPageId;
+                       mnActPageId = 0;
+                       SetCurPageId( nPageId );
+                       if( mpTabCtrlData->mpListBox )
+                               mpTabCtrlData->mpListBox->SelectEntryPos( 
GetPagePos( nPageId ) );
                        ImplCallEventListeners( VCLEVENT_TABPAGE_ACTIVATE, 
(void*) (sal_uLong) nPageId );
-        }
-    }
+               }
+       }
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::SetTabPage( sal_uInt16 nPageId, TabPage* pTabPage )
 {
-    ImplTabItem* pItem = ImplGetItem( nPageId );
-
-    if ( pItem && (pItem->mpTabPage != pTabPage) )
-    {
-        if ( pTabPage )
-        {
-            DBG_ASSERT( !pTabPage->IsVisible(), "TabControl::SetTabPage() - 
Page is visible" );
-
-            if ( IsDefaultSize() )
-                SetTabPageSizePixel( pTabPage->GetSizePixel() );
+       ImplTabItem* pItem = ImplGetItem( nPageId );
 
-            // Erst hier setzen, damit Resize nicht TabPage umpositioniert
-            pItem->mpTabPage = pTabPage;
-            if ( pItem->mnId == mnCurPageId )
-                ImplChangeTabPage( pItem->mnId, 0 );
-        }
-        else
-            pItem->mpTabPage = NULL;
-    }
+       if ( pItem && (pItem->mpTabPage != pTabPage) )
+       {
+               if ( pTabPage )
+               {
+                       DBG_ASSERT( !pTabPage->IsVisible(), 
"TabControl::SetTabPage() - Page is visible" );
+
+                       if ( IsDefaultSize() )
+                               SetTabPageSizePixel( pTabPage->GetSizePixel() );
+
+                       // Erst hier setzen, damit Resize nicht TabPage 
umpositioniert
+                       pItem->mpTabPage = pTabPage;
+                       if ( pItem->mnId == mnCurPageId )
+                               ImplChangeTabPage( pItem->mnId, 0 );
+               }
+               else
+                       pItem->mpTabPage = NULL;
+       }
 }
 
 // -----------------------------------------------------------------------
 
 TabPage* TabControl::GetTabPage( sal_uInt16 nPageId ) const
 {
-    ImplTabItem* pItem = ImplGetItem( nPageId );
+       ImplTabItem* pItem = ImplGetItem( nPageId );
 
-    if ( pItem )
-        return pItem->mpTabPage;
-    else
-        return NULL;
+       if ( pItem )
+               return pItem->mpTabPage;
+       else
+               return NULL;
 }
 
 // -----------------------------------------------------------------------
 
 sal_uInt16 TabControl::GetTabPageResId( sal_uInt16 nPageId ) const
 {
-    ImplTabItem* pItem = ImplGetItem( nPageId );
+       ImplTabItem* pItem = ImplGetItem( nPageId );
 
-    if ( pItem )
-        return pItem->mnTabPageResId;
-    else
-        return 0;
+       if ( pItem )
+               return pItem->mnTabPageResId;
+       else
+               return 0;
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::SetPageText( sal_uInt16 nPageId, const XubString& rText )
 {
-    ImplTabItem* pItem = ImplGetItem( nPageId );
-
-    if ( pItem && pItem->maText != rText )
-    {
-        pItem->maText = rText;
-        mbFormat = sal_True;
-        if( mpTabCtrlData->mpListBox )
-        {
-            sal_uInt16 nPos = GetPagePos( nPageId );
-            mpTabCtrlData->mpListBox->RemoveEntry( nPos );
-            mpTabCtrlData->mpListBox->InsertEntry( rText, nPos );
-        }
-        if ( IsUpdateMode() )
-            Invalidate();
-        ImplFreeLayoutData();
+       ImplTabItem* pItem = ImplGetItem( nPageId );
+
+       if ( pItem && pItem->maText != rText )
+       {
+               pItem->maText = rText;
+               mbFormat = sal_True;
+               if( mpTabCtrlData->mpListBox )
+               {
+                       sal_uInt16 nPos = GetPagePos( nPageId );
+                       mpTabCtrlData->mpListBox->RemoveEntry( nPos );
+                       mpTabCtrlData->mpListBox->InsertEntry( rText, nPos );
+               }
+               if ( IsUpdateMode() )
+                       Invalidate();
+               ImplFreeLayoutData();
                ImplCallEventListeners( VCLEVENT_TABPAGE_PAGETEXTCHANGED, 
(void*) (sal_uLong) nPageId );
-    }
+       }
 }
 
 // -----------------------------------------------------------------------
 
 XubString TabControl::GetPageText( sal_uInt16 nPageId ) const
 {
-    ImplTabItem* pItem = ImplGetItem( nPageId );
+       ImplTabItem* pItem = ImplGetItem( nPageId );
 
-    if ( pItem )
-        return pItem->maText;
-    else
-        return ImplGetSVEmptyStr();
+       if ( pItem )
+               return pItem->maText;
+       else
+               return ImplGetSVEmptyStr();
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::SetHelpText( sal_uInt16 nPageId, const XubString& rText )
 {
-    ImplTabItem* pItem = ImplGetItem( nPageId );
+       ImplTabItem* pItem = ImplGetItem( nPageId );
 
-    if ( pItem )
-        pItem->maHelpText = rText;
+       if ( pItem )
+               pItem->maHelpText = rText;
 }
 
 // -----------------------------------------------------------------------
 
 const XubString& TabControl::GetHelpText( sal_uInt16 nPageId ) const
 {
-    ImplTabItem* pItem = ImplGetItem( nPageId );
-
-    if ( pItem )
-    {
-        if ( !pItem->maHelpText.Len() && pItem->maHelpId.getLength() )
-        {
-            Help* pHelp = Application::GetHelp();
-            if ( pHelp )
-                pItem->maHelpText = pHelp->GetHelpText( 
rtl::OStringToOUString( pItem->maHelpId, RTL_TEXTENCODING_UTF8 ), this );
-        }
+       ImplTabItem* pItem = ImplGetItem( nPageId );
 
-        return pItem->maHelpText;
-    }
-    else
-        return ImplGetSVEmptyStr();
+       if ( pItem )
+       {
+               if ( !pItem->maHelpText.Len() && pItem->maHelpId.getLength() )
+               {
+                       Help* pHelp = Application::GetHelp();
+                       if ( pHelp )
+                               pItem->maHelpText = pHelp->GetHelpText( 
rtl::OStringToOUString( pItem->maHelpId, RTL_TEXTENCODING_UTF8 ), this );
+               }
+
+               return pItem->maHelpText;
+       }
+       else
+               return ImplGetSVEmptyStr();
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::SetHelpId( sal_uInt16 nPageId, const rtl::OString& rHelpId )
 {
-    ImplTabItem* pItem = ImplGetItem( nPageId );
+       ImplTabItem* pItem = ImplGetItem( nPageId );
 
-    if ( pItem )
-        pItem->maHelpId = rHelpId;
+       if ( pItem )
+               pItem->maHelpId = rHelpId;
 }
 
 // -----------------------------------------------------------------------
 
 rtl::OString TabControl::GetHelpId( sal_uInt16 nPageId ) const
 {
-    rtl::OString aRet;
-    ImplTabItem* pItem = ImplGetItem( nPageId );
+       rtl::OString aRet;
+       ImplTabItem* pItem = ImplGetItem( nPageId );
+
+       if ( pItem )
+               aRet = pItem->maHelpId;
 
-    if ( pItem )
-        aRet = pItem->maHelpId;
-    
-    return aRet;
+       return aRet;
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::SetPageImage( sal_uInt16 i_nPageId, const Image& i_rImage )
 {
-    ImplTabItem* pItem = ImplGetItem( i_nPageId );
+       ImplTabItem* pItem = ImplGetItem( i_nPageId );
 
-    if ( pItem )
-    {
-        pItem->maTabImage = i_rImage;
-        mbFormat = sal_True;
-        if ( IsUpdateMode() )
-            Invalidate();
-    }
+       if ( pItem )
+       {
+               pItem->maTabImage = i_rImage;
+               mbFormat = sal_True;
+               if ( IsUpdateMode() )
+                       Invalidate();
+       }
 }
 
 // -----------------------------------------------------------------------
 
 const Image* TabControl::GetPageImage( sal_uInt16 i_nPageId ) const
 {
-    const ImplTabItem* pItem = ImplGetItem( i_nPageId );
-    return pItem ? &pItem->maTabImage : NULL;
+       const ImplTabItem* pItem = ImplGetItem( i_nPageId );
+       return pItem ? &pItem->maTabImage : NULL;
 }
 
 // -----------------------------------------------------------------------
 
 Rectangle TabControl::GetCharacterBounds( sal_uInt16 nPageId, long nIndex ) 
const
 {
-    Rectangle aRet;
+       Rectangle aRet;
 
-    if( !HasLayoutData() || ! mpTabCtrlData->maLayoutPageIdToLine.size() )
-        FillLayoutData();
+       if( !HasLayoutData() || ! mpTabCtrlData->maLayoutPageIdToLine.size() )
+               FillLayoutData();
 
-    if( HasLayoutData() )
-    {
-        std::hash_map< int, int >::const_iterator it = 
mpTabCtrlData->maLayoutPageIdToLine.find( (int)nPageId );
-        if( it != mpTabCtrlData->maLayoutPageIdToLine.end() )
-        {
-            Pair aPair = mpControlData->mpLayoutData->GetLineStartEnd( 
it->second );
-            if( (aPair.B() - aPair.A()) >= nIndex )
-                aRet = mpControlData->mpLayoutData->GetCharacterBounds( 
aPair.A() + nIndex );
-        }
-    }
+       if( HasLayoutData() )
+       {
+               std::hash_map< int, int >::const_iterator it = 
mpTabCtrlData->maLayoutPageIdToLine.find( (int)nPageId );
+               if( it != mpTabCtrlData->maLayoutPageIdToLine.end() )
+               {
+                       Pair aPair = 
mpControlData->mpLayoutData->GetLineStartEnd( it->second );
+                       if( (aPair.B() - aPair.A()) >= nIndex )
+                               aRet = 
mpControlData->mpLayoutData->GetCharacterBounds( aPair.A() + nIndex );
+               }
+       }
 
-    return aRet;
+       return aRet;
 }
 
 // -----------------------------------------------------------------------
 
 long TabControl::GetIndexForPoint( const Point& rPoint, sal_uInt16& rPageId ) 
const
 {
-    long nRet = -1;
+       long nRet = -1;
 
-    if( !HasLayoutData() || ! mpTabCtrlData->maLayoutPageIdToLine.size() )
-        FillLayoutData();
+       if( !HasLayoutData() || ! mpTabCtrlData->maLayoutPageIdToLine.size() )
+               FillLayoutData();
 
-    if( HasLayoutData() )
-    {
-        int nIndex = mpControlData->mpLayoutData->GetIndexForPoint( rPoint );
-        if( nIndex != -1 )
-        {
-            // what line (->pageid) is this index in ?
-            int nLines = mpControlData->mpLayoutData->GetLineCount();
-            int nLine = -1;
-            while( ++nLine < nLines )
-            {
-                Pair aPair = mpControlData->mpLayoutData->GetLineStartEnd( 
nLine );
-                if( aPair.A() <= nIndex && aPair.B() >= nIndex )
-                {
-                    nRet = nIndex - aPair.A();
-                    rPageId = (sal_uInt16)mpTabCtrlData->maLayoutLineToPageId[ 
nLine ];
-                    break;
-                }
-            }
-        }
-    }
+       if( HasLayoutData() )
+       {
+               int nIndex = mpControlData->mpLayoutData->GetIndexForPoint( 
rPoint );
+               if( nIndex != -1 )
+               {
+                       // what line (->pageid) is this index in ?
+                       int nLines = 
mpControlData->mpLayoutData->GetLineCount();
+                       int nLine = -1;
+                       while( ++nLine < nLines )
+                       {
+                               Pair aPair = 
mpControlData->mpLayoutData->GetLineStartEnd( nLine );
+                               if( aPair.A() <= nIndex && aPair.B() >= nIndex )
+                               {
+                                       nRet = nIndex - aPair.A();
+                                       rPageId = 
(sal_uInt16)mpTabCtrlData->maLayoutLineToPageId[ nLine ];
+                                       break;
+                               }
+                       }
+               }
+       }
 
-    return nRet;
+       return nRet;
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::FillLayoutData() const
 {
-    mpTabCtrlData->maLayoutLineToPageId.clear();
-    mpTabCtrlData->maLayoutPageIdToLine.clear();
-    const_cast<TabControl*>(this)->ImplPaint( Rectangle(), true );
+       mpTabCtrlData->maLayoutLineToPageId.clear();
+       mpTabCtrlData->maLayoutPageIdToLine.clear();
+       const_cast<TabControl*>(this)->ImplPaint( Rectangle(), true );
 }
 
 // -----------------------------------------------------------------------
 
 Rectangle TabControl::GetTabPageBounds( sal_uInt16 nPage ) const
 {
-    Rectangle aRet;
+       Rectangle aRet;
 
-    if( !HasLayoutData() || ! mpTabCtrlData->maLayoutPageIdToLine.size() )
-        FillLayoutData();
+       if( !HasLayoutData() || ! mpTabCtrlData->maLayoutPageIdToLine.size() )
+               FillLayoutData();
 
-    if( HasLayoutData() )
-    {
-        std::hash_map< int, int >::const_iterator it = 
mpTabCtrlData->maLayoutPageIdToLine.find( (int)nPage );
-        if( it != mpTabCtrlData->maLayoutPageIdToLine.end() )
-        {
-            if( it->second >= 0 && it->second < 
static_cast<int>(mpTabCtrlData->maTabRectangles.size()) )
-            {
-                aRet = mpTabCtrlData->maTabRectangles[ it->second ];
-                aRet.Union( const_cast<TabControl*>(this)->ImplGetTabRect( 
TAB_PAGERECT ) );
-            }
-        }
-    }
+       if( HasLayoutData() )
+       {
+               std::hash_map< int, int >::const_iterator it = 
mpTabCtrlData->maLayoutPageIdToLine.find( (int)nPage );
+               if( it != mpTabCtrlData->maLayoutPageIdToLine.end() )
+               {
+                       if( it->second >= 0 && it->second < 
static_cast<int>(mpTabCtrlData->maTabRectangles.size()) )
+                       {
+                               aRet = mpTabCtrlData->maTabRectangles[ 
it->second ];
+                               aRet.Union( 
const_cast<TabControl*>(this)->ImplGetTabRect( TAB_PAGERECT ) );
+                       }
+               }
+       }
 
-    return aRet;
+       return aRet;
 }
 
 // -----------------------------------------------------------------------
 
 Rectangle TabControl::GetTabBounds( sal_uInt16 nPageId ) const
 {
-    Rectangle aRet;
+       Rectangle aRet;
 
-    ImplTabItem* pItem = ImplGetItem( nPageId );
-    if(pItem)
-        aRet = pItem->maRect;
+       ImplTabItem* pItem = ImplGetItem( nPageId );
+       if(pItem)
+               aRet = pItem->maRect;
 
-    return aRet;
+       return aRet;
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::SetItemsOffset( const Point& rOffs )
 {
-    if( mpTabCtrlData )
-        mpTabCtrlData->maItemsOffset = rOffs;
+       if( mpTabCtrlData )
+               mpTabCtrlData->maItemsOffset = rOffs;
 }
 
 Point TabControl::GetItemsOffset() const
 {
-    if( mpTabCtrlData )
-        return mpTabCtrlData->maItemsOffset;
-    else
-        return Point();
+       if( mpTabCtrlData )
+               return mpTabCtrlData->maItemsOffset;
+       else
+               return Point();
 }
 
 // -----------------------------------------------------------------------
 
 Size TabControl::GetOptimalSize(WindowSizeType eType) const
 {
-    switch (eType) {
-    case WINDOWSIZE_MINIMUM:
-        return mpTabCtrlData ? mpTabCtrlData->maMinSize : Size();
-    default:
-        return Control::GetOptimalSize( eType );
-    }
+       switch (eType) {
+       case WINDOWSIZE_MINIMUM:
+               return mpTabCtrlData ? mpTabCtrlData->maMinSize : Size();
+       default:
+               return Control::GetOptimalSize( eType );
+       }
 }
 
 // -----------------------------------------------------------------------
 
 void TabControl::SetMinimumSizePixel( const Size& i_rSize )
 {
-    if( mpTabCtrlData )
-        mpTabCtrlData->maMinSize = i_rSize;
+       if( mpTabCtrlData )
+               mpTabCtrlData->maMinSize = i_rSize;
 }
 
-// -----------------------------------------------------------------------
-
-
+/* vim: set noet sw=4 ts=4: */


Reply via email to