LCOV - code coverage report
Current view: top level - libreoffice/sw/source/ui/table - tabledlg.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 0 985 0.0 %
Date: 2012-12-27 Functions: 0 64 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : 
      20             : #include <hintids.hxx>
      21             : #include <comphelper/string.hxx>
      22             : #include <vcl/msgbox.hxx>
      23             : #include <svl/stritem.hxx>
      24             : #include <svl/intitem.hxx>
      25             : #include <editeng/keepitem.hxx>
      26             : #include <editeng/brkitem.hxx>
      27             : #include <editeng/ulspitem.hxx>
      28             : #include <editeng/frmdiritem.hxx>
      29             : #include <svl/ctloptions.hxx>
      30             : #include <swmodule.hxx>
      31             : #include <fmtornt.hxx>
      32             : #include <fmtpdsc.hxx>
      33             : #include <fmtlsplt.hxx>
      34             : 
      35             : #include <svtools/htmlcfg.hxx>
      36             : #include <fmtrowsplt.hxx>
      37             : #include <svx/htmlmode.hxx>
      38             : 
      39             : #include "access.hrc"
      40             : 
      41             : #include <docsh.hxx>
      42             : #include <wrtsh.hxx>
      43             : #include <view.hxx>
      44             : #include <viewopt.hxx>
      45             : #include <uitool.hxx>
      46             : #include <frmatr.hxx>
      47             : #include <tabledlg.hxx>
      48             : #include <tablepg.hxx>
      49             : #include <tablemgr.hxx>
      50             : #include <pagedesc.hxx>
      51             : #include <uiitems.hxx>
      52             : #include <poolfmt.hxx>
      53             : #include <SwStyleNameMapper.hxx>
      54             : 
      55             : #include <cmdid.h>
      56             : #include <tabledlg.hrc>
      57             : #include <table.hrc>
      58             : #include <svx/svxids.hrc>
      59             : #include <svx/dialogs.hrc>
      60             : #include <svx/flagsdef.hxx>
      61             : #include <svx/svxdlg.hxx>
      62             : 
      63             : using namespace ::com::sun::star;
      64             : 
      65             : 
      66           0 : SwFormatTablePage::SwFormatTablePage( Window* pParent, const SfxItemSet& rSet ) :
      67             :     SfxTabPage(pParent, SW_RES( TP_FORMAT_TABLE ), rSet ),
      68             :     aOptionsFL(this,    SW_RES( FL_OPTIONS )),
      69             :     aNameFT(this,       SW_RES( FT_NAME )),
      70             :     aNameED(this,       SW_RES( ED_NAME )),
      71             :     aWidthFT(this,      SW_RES( FT_WIDTH )),
      72             :     aWidthMF(this,      SW_RES( ED_WIDTH )),
      73             :     aRelWidthCB(this,   SW_RES( CB_REL_WIDTH )),
      74             : 
      75             :     aPosFL(this,       SW_RES( FL_POS )),
      76             :     aFullBtn(this,      SW_RES( RB_FULL )),
      77             :     aLeftBtn(this,      SW_RES( RB_LEFT )),
      78             :     aFromLeftBtn(this,  SW_RES( RB_FROM_LEFT )),
      79             :     aRightBtn(this,     SW_RES( RB_RIGHT )),
      80             :     aCenterBtn(this,    SW_RES( RB_CENTER )),
      81             :     aFreeBtn(this,      SW_RES( RB_FREE )),
      82             : 
      83             :     aDistFL(this,       SW_RES( FL_DIST )),
      84             :     aLeftFT(this,       SW_RES( FT_LEFT_DIST )),
      85             :     aLeftMF(this,       SW_RES( ED_LEFT_DIST )),
      86             :     aRightFT(this,      SW_RES( FT_RIGHT_DIST )),
      87             :     aRightMF(this,      SW_RES( ED_RIGHT_DIST )),
      88             :     aTopFT (this,       SW_RES( FT_TOP_DIST )),
      89             :     aTopMF(this,        SW_RES( ED_TOP_DIST )),
      90             :     aBottomFT(this,     SW_RES( FT_BOTTOM_DIST )),
      91             :     aBottomMF(this,     SW_RES( ED_BOTTOM_DIST )),
      92             : 
      93             :     aPropertiesFL(this,     SW_RES( FL_PROPERTIES    )),
      94             :     aTextDirectionFT(this,  SW_RES( FT_TEXTORIENTATION )),
      95             :     aTextDirectionLB(this,  SW_RES( LB_TEXTORIENTATION )),
      96             : 
      97             :     pTblData(0),
      98             :     nSaveWidth(0),
      99             :     nMinTableWidth(MINLAY),
     100             :     bModified(sal_False),
     101             :     bFull(0),
     102           0 :     bHtmlMode(sal_False)
     103             : {
     104           0 :     FreeResource();
     105           0 :     SetExchangeSupport();
     106             : 
     107             :     const SfxPoolItem* pItem;
     108           0 :     if(SFX_ITEM_SET == rSet.GetItemState(SID_HTML_MODE, sal_False, &pItem))
     109           0 :         bHtmlMode = 0 != (((const SfxUInt16Item*)pItem)->GetValue() & HTMLMODE_ON);
     110             : 
     111           0 :     sal_Bool bCTL = SW_MOD()->GetCTLOptions().IsCTLFontEnabled();
     112           0 :     if( !bHtmlMode && bCTL )
     113             :     {
     114           0 :         aPropertiesFL.Show();
     115           0 :         aTextDirectionFT.Show();
     116           0 :         aTextDirectionLB.Show();
     117             :     }
     118             : 
     119           0 :     Init();
     120           0 : }
     121             : 
     122             : 
     123           0 : void  SwFormatTablePage::Init()
     124             : {
     125           0 :     aLeftMF.MetricField::SetMin(-999999);
     126           0 :     aRightMF.MetricField::SetMin(-999999);
     127             : 
     128             :     // handler
     129           0 :     Link aLk = LINK( this, SwFormatTablePage, AutoClickHdl );
     130           0 :     aFullBtn.SetClickHdl( aLk );
     131           0 :     aFreeBtn.SetClickHdl( aLk );
     132           0 :     aLeftBtn.SetClickHdl( aLk );
     133           0 :     aFromLeftBtn.SetClickHdl( aLk );
     134           0 :     aRightBtn.SetClickHdl( aLk );
     135           0 :     aCenterBtn.SetClickHdl( aLk );
     136             : 
     137           0 :     aLk = LINK( this, SwFormatTablePage, UpDownLoseFocusHdl );
     138           0 :     aTopMF.SetUpHdl( aLk );
     139           0 :     aBottomMF.SetUpHdl( aLk );
     140           0 :     aRightMF.SetUpHdl( aLk );
     141           0 :     aLeftMF.SetUpHdl( aLk );
     142           0 :     aWidthMF.SetUpHdl( aLk );
     143             : 
     144           0 :     aTopMF.SetDownHdl( aLk );
     145           0 :     aBottomMF.SetDownHdl( aLk );
     146           0 :     aRightMF.SetDownHdl( aLk );
     147           0 :     aLeftMF.SetDownHdl( aLk );
     148           0 :     aWidthMF.SetDownHdl( aLk );
     149             : 
     150           0 :     aTopMF.SetLoseFocusHdl( aLk );
     151           0 :     aBottomMF.SetLoseFocusHdl( aLk );
     152           0 :     aRightMF.SetLoseFocusHdl( aLk );
     153           0 :     aLeftMF.SetLoseFocusHdl( aLk );
     154           0 :     aWidthMF.SetLoseFocusHdl( aLk );
     155             : 
     156           0 :     aRelWidthCB.SetClickHdl(LINK( this, SwFormatTablePage, RelWidthClickHdl ));
     157           0 : }
     158             : 
     159             : /*------------------------------------------------------------------------*/
     160             : 
     161           0 : IMPL_LINK( SwFormatTablePage, RelWidthClickHdl, CheckBox *, pBtn )
     162             : {
     163             :     OSL_ENSURE(pTblData, "table data not available?");
     164           0 :     sal_Bool bIsChecked = pBtn->IsChecked();
     165           0 :     sal_Int64 nLeft  = aLeftMF.DenormalizePercent(aLeftMF.GetValue(FUNIT_TWIP ));
     166           0 :     sal_Int64 nRight = aRightMF.DenormalizePercent(aRightMF.GetValue(FUNIT_TWIP ));
     167           0 :     aWidthMF.ShowPercent(bIsChecked);
     168           0 :     aLeftMF.ShowPercent(bIsChecked);
     169           0 :     aRightMF.ShowPercent(bIsChecked);
     170             : 
     171           0 :     if (bIsChecked)
     172             :     {
     173           0 :         aWidthMF.SetRefValue(pTblData->GetSpace());
     174           0 :         aLeftMF.SetRefValue(pTblData->GetSpace());
     175           0 :         aRightMF.SetRefValue(pTblData->GetSpace());
     176           0 :         aLeftMF.MetricField::SetMin(0); // wird vom Percentfield ueberschrieben
     177           0 :         aRightMF.MetricField::SetMin(0);//                 -""-
     178           0 :         aLeftMF.MetricField::SetMax(99); //
     179           0 :         aRightMF.MetricField::SetMax(99);//
     180           0 :         aLeftMF.SetPrcntValue(aLeftMF.NormalizePercent(nLeft ), FUNIT_TWIP );
     181           0 :         aRightMF.SetPrcntValue(aRightMF.NormalizePercent(nRight ), FUNIT_TWIP );
     182             :     }
     183             :     else
     184           0 :         ModifyHdl(&aLeftMF);    // Werte wieder korrigieren
     185             : 
     186           0 :     if(aFreeBtn.IsChecked())
     187             :     {
     188           0 :         sal_Bool bEnable = !pBtn->IsChecked();
     189           0 :         aRightMF.Enable(bEnable);
     190           0 :         aRightFT.Enable(bEnable);
     191             :     }
     192           0 :     bModified = sal_True;
     193             : 
     194           0 :     return 0;
     195             : }
     196             : 
     197             : 
     198           0 : IMPL_LINK( SwFormatTablePage, AutoClickHdl, CheckBox *, pBox )
     199             : {
     200           0 :     sal_Bool bRestore = sal_True,
     201           0 :          bLeftEnable = sal_False,
     202           0 :          bRightEnable= sal_False,
     203           0 :          bWidthEnable= sal_False,
     204           0 :          bOthers = sal_True;
     205           0 :     if( (RadioButton *) pBox == &aFullBtn )
     206             :     {
     207           0 :         aLeftMF.SetPrcntValue(0);
     208           0 :         aRightMF.SetPrcntValue(0);
     209           0 :         nSaveWidth = static_cast< SwTwips >(aWidthMF.DenormalizePercent(aWidthMF.GetValue(FUNIT_TWIP )));
     210           0 :         aWidthMF.SetPrcntValue(aWidthMF.NormalizePercent(pTblData->GetSpace() ), FUNIT_TWIP );
     211           0 :         bFull = sal_True;
     212           0 :         bRestore = sal_False;
     213             :     }
     214           0 :     else if( (RadioButton *) pBox == &aLeftBtn )
     215             :     {
     216           0 :         bRightEnable = bWidthEnable = sal_True;
     217           0 :         aLeftMF.SetPrcntValue(0);
     218             :     }
     219           0 :     else if( (RadioButton *) pBox == &aFromLeftBtn )
     220             :     {
     221           0 :         bLeftEnable = bWidthEnable = sal_True;
     222           0 :         aRightMF.SetPrcntValue(0);
     223             :     }
     224           0 :     else if( (RadioButton *) pBox == &aRightBtn )
     225             :     {
     226           0 :         bLeftEnable = bWidthEnable = sal_True;
     227           0 :         aRightMF.SetPrcntValue(0);
     228             :     }
     229           0 :     else if( ( RadioButton * ) pBox == &aCenterBtn )
     230             :     {
     231           0 :         bLeftEnable = bWidthEnable = sal_True;
     232             :     }
     233           0 :     else if( ( RadioButton * ) pBox == &aFreeBtn )
     234             :     {
     235           0 :         RightModify();
     236           0 :         bLeftEnable = sal_True;
     237           0 :         bWidthEnable = sal_True;
     238           0 :         bOthers = sal_False;
     239             :     }
     240           0 :     aLeftMF.Enable(bLeftEnable);
     241           0 :     aLeftFT.Enable(bLeftEnable);
     242           0 :     aWidthMF.Enable(bWidthEnable);
     243           0 :     aWidthFT.Enable(bWidthEnable);
     244           0 :     if ( bOthers )
     245             :     {
     246           0 :         aRightMF.Enable(bRightEnable);
     247           0 :         aRightFT.Enable(bRightEnable);
     248           0 :         aRelWidthCB.Enable(bWidthEnable);
     249             :     }
     250             : 
     251           0 :     if(bFull && bRestore)
     252             :     {
     253             :         // nachdem auf autom. geschaltet wurde, wurde die Breite gemerkt,
     254             :         // um sie beim Zurueckschalten restaurieren zu koennen
     255           0 :         bFull = sal_False;
     256           0 :         aWidthMF.SetPrcntValue(aWidthMF.NormalizePercent(nSaveWidth ), FUNIT_TWIP );
     257             :     }
     258           0 :     ModifyHdl(&aWidthMF);
     259           0 :     bModified = sal_True;
     260           0 :     return 0;
     261             : }
     262             : 
     263             : /*----------------------------------------------------------------------*/
     264           0 : void SwFormatTablePage::RightModify()
     265             : {
     266           0 :     if(aFreeBtn.IsChecked())
     267             :     {
     268           0 :         sal_Bool bEnable = aRightMF.GetValue() == 0;
     269           0 :         aRelWidthCB.Enable(bEnable);
     270           0 :         if ( !bEnable )
     271             :         {
     272           0 :             aRelWidthCB.Check(sal_False);
     273           0 :             RelWidthClickHdl(&aRelWidthCB);
     274             :         }
     275           0 :         bEnable = aRelWidthCB.IsChecked();
     276           0 :         aRightMF.Enable(!bEnable);
     277           0 :         aRightFT.Enable(!bEnable);
     278             :     }
     279           0 : }
     280             : 
     281             : 
     282           0 : IMPL_LINK_INLINE_START( SwFormatTablePage, UpDownLoseFocusHdl, MetricField *, pEdit )
     283             : {
     284           0 :     if( &aRightMF == pEdit)
     285           0 :         RightModify();
     286           0 :     ModifyHdl( pEdit );
     287           0 :     return 0;
     288             : }
     289           0 : IMPL_LINK_INLINE_END( SwFormatTablePage, UpDownLoseFocusHdl, MetricField *, pEdit )
     290             : 
     291           0 : void  SwFormatTablePage::ModifyHdl( Edit* pEdit )
     292             : {
     293             : 
     294           0 :     SwTwips nCurWidth  = static_cast< SwTwips >(aWidthMF.DenormalizePercent(aWidthMF.GetValue( FUNIT_TWIP )));
     295           0 :     SwTwips nPrevWidth = nCurWidth;
     296           0 :     SwTwips nRight = static_cast< SwTwips >(aRightMF.DenormalizePercent(aRightMF.GetValue( FUNIT_TWIP )));
     297           0 :     SwTwips nLeft  = static_cast< SwTwips >(aLeftMF.DenormalizePercent(aLeftMF.GetValue( FUNIT_TWIP )));
     298             :     SwTwips nDiff;
     299             : 
     300           0 :     if( pEdit == &aWidthMF )
     301             :     {
     302           0 :         if( nCurWidth < MINLAY )
     303           0 :             nCurWidth = MINLAY;
     304           0 :         nDiff = nRight + nLeft + nCurWidth - pTblData->GetSpace() ;
     305             :         //rechtsbuendig nur linken Rand veraendern
     306           0 :         if(aRightBtn.IsChecked())
     307           0 :             nLeft -= nDiff;
     308             :         //linksbuendig nur rechten Rand veraendern
     309           0 :         else if(aLeftBtn.IsChecked())
     310           0 :             nRight -= nDiff;
     311             :         //linker Rand und Breite erlaubt - erst rechts - dann links
     312           0 :         else if(aFromLeftBtn.IsChecked())
     313             :         {
     314           0 :             if( nRight >= nDiff )
     315           0 :                 nRight -= nDiff;
     316             :             else
     317             :             {
     318           0 :                 nDiff -= nRight;
     319           0 :                 nRight = 0;
     320           0 :                 if(nLeft >= nDiff)
     321           0 :                     nLeft -= nDiff;
     322             :                 else
     323             :                 {
     324           0 :                     nRight += nLeft - nDiff;
     325           0 :                     nLeft = 0;
     326           0 :                     nCurWidth = pTblData->GetSpace();
     327             :                 }
     328             : 
     329             :             }
     330             :         }
     331             :         //zentriert beide Seiten gleichmaessig veraendern
     332           0 :         else if(aCenterBtn.IsChecked())
     333             :         {
     334           0 :             if((nLeft != nRight))
     335             :             {
     336           0 :                 nDiff += nLeft + nRight;
     337           0 :                 nLeft = nDiff/2;
     338           0 :                 nRight = nDiff/2;
     339             :             }
     340             :             else
     341             :             {
     342           0 :                     nLeft -= nDiff/2;
     343           0 :                     nRight -= nDiff/2;
     344             :             }
     345             :         }
     346             :         //freie Ausrichtung: beide Raender verkleinern
     347           0 :         else if(aFreeBtn.IsChecked())
     348             :         {
     349           0 :             nLeft -= nDiff/2;
     350           0 :             nRight -= nDiff/2;
     351             :         }
     352             :     }
     353           0 :     if( pEdit == &aRightMF  )
     354             :     {
     355             : 
     356           0 :         if( nRight + nLeft > pTblData->GetSpace() - MINLAY )
     357           0 :             nRight = pTblData->GetSpace() -nLeft - MINLAY;
     358             : 
     359           0 :         nCurWidth = pTblData->GetSpace() - nLeft - nRight;
     360             :     }
     361           0 :     if( pEdit == &aLeftMF )
     362             :     {
     363           0 :         if(!aFromLeftBtn.IsChecked())
     364             :         {
     365           0 :             sal_Bool bCenter = aCenterBtn.IsChecked();
     366           0 :             if( bCenter )
     367           0 :                 nRight = nLeft;
     368           0 :             if(nRight + nLeft > pTblData->GetSpace() - MINLAY )
     369             :             {
     370           0 :                 nLeft  = bCenter ?  (pTblData->GetSpace() - MINLAY) /2 :
     371           0 :                                     (pTblData->GetSpace() - MINLAY) - nRight;
     372           0 :                 nRight = bCenter ?  (pTblData->GetSpace() - MINLAY) /2 : nRight;
     373             :             }
     374           0 :             nCurWidth = pTblData->GetSpace() - nLeft - nRight;
     375             :         }
     376             :         else
     377             :         {
     378             :             //hier wird bei Aenderung an der linken Seite zuerst der
     379             :             //rechte Rand veraendert, dann die Breite
     380           0 :             nDiff = nRight + nLeft + nCurWidth - pTblData->GetSpace() ;
     381             : 
     382           0 :             nRight -= nDiff;
     383           0 :             nCurWidth = pTblData->GetSpace() - nLeft - nRight;
     384             :         }
     385             :     }
     386           0 :     if (nCurWidth != nPrevWidth )
     387           0 :         aWidthMF.SetPrcntValue( aWidthMF.NormalizePercent( nCurWidth ), FUNIT_TWIP );
     388           0 :     aRightMF.SetPrcntValue( aRightMF.NormalizePercent( nRight ), FUNIT_TWIP );
     389           0 :     aLeftMF.SetPrcntValue( aLeftMF.NormalizePercent( nLeft ), FUNIT_TWIP );
     390           0 :     bModified = sal_True;
     391           0 : }
     392             : 
     393             : 
     394           0 : SfxTabPage*  SwFormatTablePage::Create( Window* pParent,
     395             :                                    const SfxItemSet& rAttrSet)
     396             : {
     397           0 :     return new SwFormatTablePage( pParent, rAttrSet );
     398             : }
     399             : 
     400             : 
     401           0 : sal_Bool  SwFormatTablePage::FillItemSet( SfxItemSet& rCoreSet )
     402             : {
     403             :     // Testen, ob eins der Control noch den Focus hat
     404           0 :     if(aWidthMF.HasFocus())
     405           0 :         ModifyHdl(&aWidthMF);
     406           0 :     else if(aLeftMF.HasFocus())
     407           0 :         ModifyHdl(&aLeftMF);
     408           0 :     else if(aRightMF.HasFocus())
     409           0 :         ModifyHdl(&aRightMF);
     410           0 :     else if(aTopMF.HasFocus())
     411           0 :         ModifyHdl(&aTopMF);
     412           0 :     else if(aBottomMF.HasFocus())
     413           0 :         ModifyHdl(&aBottomMF);
     414             : 
     415           0 :     if(bModified)
     416             :     {
     417           0 :         if( aBottomMF.GetText() != aBottomMF.GetSavedValue() ||
     418           0 :                                     aTopMF.GetText() != aTopMF.GetSavedValue() )
     419             :         {
     420           0 :             SvxULSpaceItem aULSpace(RES_UL_SPACE);
     421             :             aULSpace.SetUpper( (sal_uInt16) aTopMF.Denormalize(
     422           0 :                                         aTopMF.GetValue( FUNIT_TWIP )));
     423             :             aULSpace.SetLower( (sal_uInt16) aBottomMF.Denormalize(
     424           0 :                                         aBottomMF.GetValue( FUNIT_TWIP )));
     425           0 :             rCoreSet.Put(aULSpace);
     426             :         }
     427             : 
     428             :     }
     429           0 :     if(aNameED.GetText() != aNameED.GetSavedValue())
     430             :     {
     431           0 :         rCoreSet.Put(SfxStringItem( FN_PARAM_TABLE_NAME, aNameED.GetText()));
     432           0 :         bModified = sal_True;
     433             :     }
     434             : 
     435             :     sal_uInt16 nPos;
     436           0 :     if( aTextDirectionLB.IsVisible() &&
     437           0 :         ( nPos = aTextDirectionLB.GetSelectEntryPos() ) !=
     438           0 :                                             aTextDirectionLB.GetSavedValue() )
     439             :     {
     440           0 :         sal_uInt32 nDirection = (sal_uInt32)(sal_uIntPtr)aTextDirectionLB.GetEntryData( nPos );
     441           0 :         rCoreSet.Put( SvxFrameDirectionItem( (SvxFrameDirection)nDirection, RES_FRAMEDIR));
     442           0 :         bModified = sal_True;
     443             :     }
     444             : 
     445           0 :     return bModified;
     446             : }
     447             : 
     448             : 
     449           0 : void  SwFormatTablePage::Reset( const SfxItemSet& )
     450             : {
     451           0 :     const SfxItemSet& rSet = GetItemSet();
     452             :     const SfxPoolItem*  pItem;
     453             : 
     454           0 :     if(bHtmlMode)
     455             :     {
     456           0 :         aNameED .Disable();
     457           0 :         aTopFT  .Hide();
     458           0 :         aTopMF  .Hide();
     459           0 :         aBottomFT.Hide();
     460           0 :         aBottomMF.Hide();
     461           0 :         aFreeBtn.Enable(sal_False);
     462             :     }
     463           0 :     FieldUnit aMetric = ::GetDfltMetric(bHtmlMode);
     464           0 :     SetMetric( aWidthMF, aMetric );
     465           0 :     SetMetric( aRightMF, aMetric );
     466           0 :     SetMetric( aLeftMF, aMetric );
     467           0 :     SetMetric( aTopMF, aMetric );
     468           0 :     SetMetric( aBottomMF, aMetric );
     469             : 
     470             :     //Name
     471           0 :     if(SFX_ITEM_SET == rSet.GetItemState( FN_PARAM_TABLE_NAME, sal_False, &pItem ))
     472             :     {
     473           0 :         aNameED.SetText(((const SfxStringItem*)pItem)->GetValue());
     474           0 :         aNameED.SaveValue();
     475             :     }
     476             : 
     477           0 :     if(SFX_ITEM_SET == rSet.GetItemState( FN_TABLE_REP, sal_False, &pItem ))
     478             :     {
     479           0 :         pTblData = (SwTableRep*)((const SwPtrItem*) pItem)->GetValue();
     480           0 :         nMinTableWidth = pTblData->GetColCount() * MINLAY;
     481             : 
     482           0 :         if(pTblData->GetWidthPercent())
     483             :         {
     484           0 :             aRelWidthCB.Check(sal_True);
     485           0 :             RelWidthClickHdl(&aRelWidthCB);
     486           0 :             aWidthMF.SetPrcntValue(pTblData->GetWidthPercent(), FUNIT_CUSTOM);
     487             : 
     488           0 :             aWidthMF.SaveValue();
     489           0 :             nSaveWidth = static_cast< SwTwips >(aWidthMF.GetValue(FUNIT_CUSTOM));
     490             :         }
     491             :         else
     492             :         {
     493             :             aWidthMF.SetPrcntValue(aWidthMF.NormalizePercent(
     494           0 :                     pTblData->GetWidth()), FUNIT_TWIP);
     495           0 :             aWidthMF.SaveValue();
     496           0 :             nSaveWidth = pTblData->GetWidth();
     497           0 :             nMinTableWidth = Min( nSaveWidth, nMinTableWidth );
     498             :         }
     499             : 
     500           0 :         aWidthMF.SetRefValue(pTblData->GetSpace());
     501           0 :         aWidthMF.SetLast(aWidthMF.NormalizePercent( pTblData->GetSpace() ));
     502           0 :         aLeftMF.SetLast(aLeftMF.NormalizePercent( pTblData->GetSpace() ));
     503           0 :         aRightMF.SetLast(aRightMF.NormalizePercent( pTblData->GetSpace() ));
     504             : 
     505             :         aLeftMF.SetPrcntValue(aLeftMF.NormalizePercent(
     506           0 :                     pTblData->GetLeftSpace()), FUNIT_TWIP);
     507             :         aRightMF.SetPrcntValue(aRightMF.NormalizePercent(
     508           0 :                     pTblData->GetRightSpace()), FUNIT_TWIP);
     509           0 :         aLeftMF.SaveValue();
     510           0 :         aRightMF.SaveValue();
     511             : 
     512           0 :         nOldAlign = pTblData->GetAlign();
     513             : 
     514           0 :         sal_Bool bSetRight = sal_False, bRightEnable = sal_False,
     515           0 :              bSetLeft  = sal_False, bLeftEnable  = sal_False;
     516           0 :         switch( nOldAlign )
     517             :         {
     518             :             case text::HoriOrientation::NONE:
     519           0 :                 aFreeBtn.Check();
     520           0 :                 if(aRelWidthCB.IsChecked())
     521           0 :                     bSetRight = sal_True;
     522           0 :             break;
     523             :             case text::HoriOrientation::FULL:
     524             :             {
     525           0 :                 bSetRight = bSetLeft = sal_True;
     526           0 :                 aFullBtn.Check();
     527           0 :                 aWidthMF.Enable(sal_False);
     528           0 :                 aRelWidthCB.Enable(sal_False);
     529           0 :                 aWidthFT.Enable(sal_False);
     530             :             }
     531           0 :             break;
     532             :             case text::HoriOrientation::LEFT:
     533             :             {
     534           0 :                 bSetLeft = sal_True;
     535           0 :                 aLeftBtn.Check();
     536             :             }
     537           0 :             break;
     538             :             case text::HoriOrientation::LEFT_AND_WIDTH :
     539             :             {
     540           0 :                 bSetRight = sal_True;
     541           0 :                 aFromLeftBtn.Check();
     542             :             }
     543           0 :             break;
     544             :             case text::HoriOrientation::RIGHT:
     545             :             {
     546           0 :                 bSetRight = sal_True;
     547           0 :                 aRightBtn.Check();
     548             :             }
     549           0 :             break;
     550             :             case text::HoriOrientation::CENTER:
     551             :             {
     552           0 :                 bSetRight = sal_True;
     553           0 :                 aCenterBtn.Check();
     554             :             }
     555           0 :             break;
     556             :         }
     557           0 :         if ( bSetRight )
     558             :         {
     559           0 :             aRightMF.Enable(bRightEnable);
     560           0 :             aRightFT.Enable(bRightEnable);
     561             :         }
     562           0 :         if ( bSetLeft )
     563             :         {
     564           0 :             aLeftMF.Enable(bLeftEnable);
     565           0 :             aLeftFT.Enable(bLeftEnable);
     566             :         }
     567             : 
     568             :     }
     569             : 
     570             :     //Raender
     571           0 :     if(SFX_ITEM_SET == rSet.GetItemState( RES_UL_SPACE, sal_False,&pItem ))
     572             :     {
     573             :         aTopMF.SetValue(aTopMF.Normalize(
     574           0 :                         ((const SvxULSpaceItem*)pItem)->GetUpper()), FUNIT_TWIP);
     575             :         aBottomMF.SetValue(aBottomMF.Normalize(
     576           0 :                         ((const SvxULSpaceItem*)pItem)->GetLower()), FUNIT_TWIP);
     577           0 :         aTopMF.SaveValue();
     578           0 :         aBottomMF.SaveValue();
     579             :     }
     580             : 
     581             :     //text direction
     582           0 :     if( SFX_ITEM_SET == rSet.GetItemState( RES_FRAMEDIR, sal_True, &pItem ) )
     583             :     {
     584           0 :         sal_uIntPtr nVal  = ((SvxFrameDirectionItem*)pItem)->GetValue();
     585           0 :         sal_uInt16 nPos = aTextDirectionLB.GetEntryPos( (void*) nVal );
     586           0 :         aTextDirectionLB.SelectEntryPos( nPos );
     587           0 :         aTextDirectionLB.SaveValue();
     588             :     }
     589             : 
     590           0 :     aWidthMF.SetMax( 2*aWidthMF.NormalizePercent( pTblData->GetSpace() ), FUNIT_TWIP );
     591           0 :     aRightMF.SetMax( aRightMF.NormalizePercent( pTblData->GetSpace() ), FUNIT_TWIP );
     592           0 :     aLeftMF.SetMax( aLeftMF.NormalizePercent( pTblData->GetSpace() ), FUNIT_TWIP );
     593           0 :     aWidthMF.SetMin( aWidthMF.NormalizePercent( nMinTableWidth ), FUNIT_TWIP );
     594             : 
     595           0 : }
     596             : 
     597             : 
     598           0 : void    SwFormatTablePage::ActivatePage( const SfxItemSet& rSet )
     599             : {
     600             :     OSL_ENSURE(pTblData, "table data not available?");
     601           0 :     if(SFX_ITEM_SET == rSet.GetItemState( FN_TABLE_REP ))
     602             :     {
     603           0 :         SwTwips nCurWidth = text::HoriOrientation::FULL != pTblData->GetAlign() ?
     604           0 :                                         pTblData->GetWidth() :
     605           0 :                                             pTblData->GetSpace();
     606           0 :         if(pTblData->GetWidthPercent() == 0 &&
     607           0 :                 nCurWidth != aWidthMF.DenormalizePercent(aWidthMF.GetValue(FUNIT_TWIP )))
     608             :         {
     609             :             aWidthMF.SetPrcntValue(aWidthMF.NormalizePercent(
     610           0 :                             nCurWidth), FUNIT_TWIP);
     611           0 :             aWidthMF.SaveValue();
     612           0 :             nSaveWidth = nCurWidth;
     613             :             aLeftMF.SetPrcntValue(aLeftMF.NormalizePercent(
     614           0 :                             pTblData->GetLeftSpace()), FUNIT_TWIP);
     615           0 :             aLeftMF.SaveValue();
     616             :             aRightMF.SetPrcntValue(aRightMF.NormalizePercent(
     617           0 :                             pTblData->GetRightSpace()), FUNIT_TWIP);
     618           0 :             aRightMF.SaveValue();
     619             :         }
     620             :     }
     621             : 
     622           0 : }
     623             : 
     624           0 : int  SwFormatTablePage::DeactivatePage( SfxItemSet* _pSet )
     625             : {
     626             :     // os: VCL sorgt nicht dafuer, dass das aktive Control im
     627             :     // dialog bei OK den focus verliert
     628           0 :     aNameED.GrabFocus();
     629             :     // Test des Tabellennamens auf Leerzeichen
     630           0 :     String sTblName = aNameED.GetText();
     631           0 :     if(sTblName.Search(' ') != STRING_NOTFOUND)
     632             :     {
     633           0 :         InfoBox(this, SW_RES(MSG_WRONG_TABLENAME)).Execute();
     634           0 :         aNameED.GrabFocus();
     635           0 :         return KEEP_PAGE;
     636             :     }
     637           0 :     if(_pSet)
     638             :     {
     639           0 :         FillItemSet(*_pSet);
     640           0 :         if(bModified)
     641             :         {
     642           0 :             SwTwips lLeft  = static_cast< SwTwips >(aLeftMF.DenormalizePercent(aLeftMF.GetValue( FUNIT_TWIP )));
     643           0 :             SwTwips lRight = static_cast< SwTwips >(aRightMF.DenormalizePercent(aRightMF.GetValue( FUNIT_TWIP )));
     644             : 
     645             : 
     646           0 :             if( aLeftMF.GetText() != aLeftMF.GetSavedValue() ||
     647           0 :                                     aRightMF.GetText() != aRightMF.GetSavedValue() )
     648             :             {
     649           0 :                 pTblData->SetWidthChanged();
     650           0 :                 pTblData->SetLeftSpace( lLeft);
     651           0 :                 pTblData->SetRightSpace( lRight);
     652             :             }
     653             : 
     654             :             SwTwips lWidth;
     655           0 :             if (aRelWidthCB.IsChecked() && aRelWidthCB.IsEnabled())
     656             :             {
     657           0 :                 lWidth = pTblData->GetSpace() - lRight - lLeft;
     658           0 :                 sal_uInt16 nPercentWidth = (sal_uInt16)aWidthMF.GetValue(FUNIT_CUSTOM);
     659           0 :                 if(pTblData->GetWidthPercent() != nPercentWidth)
     660             :                 {
     661           0 :                     pTblData->SetWidthPercent(nPercentWidth);
     662           0 :                     pTblData->SetWidthChanged();
     663             :                 }
     664             :             }
     665             :             else
     666             :             {
     667           0 :                 pTblData->SetWidthPercent(0);
     668           0 :                 lWidth = static_cast< SwTwips >(aWidthMF.DenormalizePercent(aWidthMF.GetValue( FUNIT_TWIP )));
     669             :             }
     670           0 :             pTblData->SetWidth(lWidth);
     671             : 
     672           0 :             SwTwips nColSum = 0;
     673             :             sal_uInt16 i;
     674             : 
     675           0 :             for( i = 0; i < pTblData->GetColCount(); i++)
     676             :             {
     677           0 :                 nColSum += pTblData->GetColumns()[i].nWidth;
     678             :             }
     679           0 :             if(nColSum != pTblData->GetWidth())
     680             :             {
     681             :                 SwTwips nMinWidth = Min( (long)MINLAY,
     682           0 :                                     (long) (pTblData->GetWidth() /
     683           0 :                                             pTblData->GetColCount() - 1));
     684           0 :                 SwTwips nDiff = nColSum - pTblData->GetWidth();
     685           0 :                 while ( Abs(nDiff) > pTblData->GetColCount() + 1 )
     686             :                 {
     687           0 :                     SwTwips nSub = nDiff / pTblData->GetColCount();
     688           0 :                     for( i = 0; i < pTblData->GetColCount(); i++)
     689             :                     {
     690           0 :                         if(pTblData->GetColumns()[i].nWidth - nMinWidth > nSub)
     691             :                         {
     692           0 :                             pTblData->GetColumns()[i].nWidth -= nSub;
     693           0 :                             nDiff -= nSub;
     694             :                         }
     695             :                         else
     696             :                         {
     697           0 :                             nDiff -= pTblData->GetColumns()[i].nWidth - nMinWidth;
     698           0 :                             pTblData->GetColumns()[i].nWidth = nMinWidth;
     699             :                         }
     700             : 
     701             :                     }
     702             :                 }
     703             :             }
     704             : 
     705           0 :             sal_Int16 nAlign = 0;
     706           0 :             if(aRightBtn.IsChecked())
     707           0 :                 nAlign = text::HoriOrientation::RIGHT;
     708           0 :             else if(aLeftBtn.IsChecked())
     709           0 :                 nAlign = text::HoriOrientation::LEFT;
     710           0 :             else if(aFromLeftBtn.IsChecked())
     711           0 :                 nAlign = text::HoriOrientation::LEFT_AND_WIDTH;
     712           0 :             else if(aCenterBtn.IsChecked())
     713           0 :                 nAlign = text::HoriOrientation::CENTER;
     714           0 :             else if(aFreeBtn.IsChecked())
     715           0 :                 nAlign = text::HoriOrientation::NONE;
     716           0 :             else if(aFullBtn.IsChecked())
     717             :             {
     718           0 :                 nAlign = text::HoriOrientation::FULL;
     719           0 :                 lWidth = lAutoWidth;
     720             :             }
     721           0 :             if(nAlign != pTblData->GetAlign())
     722             :             {
     723           0 :                 pTblData->SetWidthChanged();
     724           0 :                 pTblData->SetAlign(nAlign);
     725             :             }
     726             : 
     727           0 :             if(pTblData->GetWidth() != lWidth )
     728             :             {
     729           0 :                 pTblData->SetWidthChanged();
     730             :                 pTblData->SetWidth(
     731           0 :                     nAlign == text::HoriOrientation::FULL ? pTblData->GetSpace() : lWidth );
     732             :             }
     733           0 :             if(pTblData->HasWidthChanged())
     734           0 :                 _pSet->Put(SwPtrItem(FN_TABLE_REP, pTblData));
     735             :         }
     736             :     }
     737           0 :     return sal_True;
     738             : }
     739             : /*------------------------------------------------------------------------
     740             :     Beschreibung: Seite Spaltenkonfiguration
     741             : ------------------------------------------------------------------------*/
     742           0 : SwTableColumnPage::SwTableColumnPage( Window* pParent,
     743             :             const SfxItemSet& rSet ) :
     744             :     SfxTabPage(pParent, SW_RES( TP_TABLE_COLUMN ), rSet ),
     745             :     aModifyTableCB(this,    SW_RES(CB_MOD_TBL)),
     746             :     aProportionalCB(this,   SW_RES(CB_PROP)),
     747             :     aSpaceFT(this,          SW_RES(FT_SPACE)),
     748             :     aSpaceED(this,          SW_RES(ED_SPACE)),
     749             : 
     750             :     aColFL(this,            SW_RES(COL_FL_LAYOUT)),
     751             :     aUpBtn(this,            SW_RES(COL_BTN_UP)),
     752             :     aFT1(this,              SW_RES(COL_FT_1)),
     753             :     aMF1(this,              SW_RES(COL_MF_1)),
     754             :     aFT2(this,              SW_RES(COL_FT_2)),
     755             :     aMF2(this,              SW_RES(COL_MF_2)),
     756             :     aFT3(this,              SW_RES(COL_FT_3)),
     757             :     aMF3(this,              SW_RES(COL_MF_3)),
     758             :     aFT4(this,              SW_RES(COL_FT_4)),
     759             :     aMF4(this,              SW_RES(COL_MF_4)),
     760             :     aFT5(this,              SW_RES(COL_FT_5)),
     761             :     aMF5(this,              SW_RES(COL_MF_5)),
     762             :     aFT6(this,              SW_RES(COL_FT_6)),
     763             :     aMF6(this,              SW_RES(COL_MF_6)),
     764             :     aDownBtn(this,          SW_RES(COL_BTN_DOWN)),
     765             : 
     766             :     nTableWidth(0),
     767             :     nMinWidth( MINLAY ),
     768             :     nNoOfCols( 0 ),
     769             :     nNoOfVisibleCols( 0 ),
     770             :     bModified(sal_False),
     771             :     bModifyTbl(sal_False),
     772           0 :     bPercentMode(sal_False)
     773             : {
     774           0 :     FreeResource();
     775           0 :     SetExchangeSupport();
     776             : 
     777           0 :     aDownBtn.SetAccessibleRelationMemberOf(&aColFL);
     778           0 :     aUpBtn.SetAccessibleRelationMemberOf(&aColFL);
     779             : 
     780           0 :     pFieldArr[0] = &aMF1;
     781           0 :     pFieldArr[1] = &aMF2;
     782           0 :     pFieldArr[2] = &aMF3;
     783           0 :     pFieldArr[3] = &aMF4;
     784           0 :     pFieldArr[4] = &aMF5;
     785           0 :     pFieldArr[5] = &aMF6;
     786             : 
     787           0 :     pTextArr[0] = &aFT1;
     788           0 :     pTextArr[1] = &aFT2;
     789           0 :     pTextArr[2] = &aFT3;
     790           0 :     pTextArr[3] = &aFT4;
     791           0 :     pTextArr[4] = &aFT5;
     792           0 :     pTextArr[5] = &aFT6;
     793             : 
     794             :     const SfxPoolItem* pItem;
     795           0 :     Init((SFX_ITEM_SET == rSet.GetItemState( SID_HTML_MODE, sal_False,&pItem )
     796           0 :         && ((const SfxUInt16Item*)pItem)->GetValue() & HTMLMODE_ON));
     797             : 
     798           0 : };
     799             : /*------------------------------------------------------------------------
     800             :     Beschreibung: Seite Spaltenkonfiguration
     801             : ------------------------------------------------------------------------*/
     802           0 :  SwTableColumnPage::~SwTableColumnPage()
     803             : {
     804           0 : };
     805             : 
     806             : 
     807           0 : SfxTabPage*   SwTableColumnPage::Create( Window* pParent,
     808             :                                 const SfxItemSet& rAttrSet)
     809             : {
     810           0 :     return new SwTableColumnPage( pParent, rAttrSet );
     811             : };
     812             : 
     813             : 
     814           0 : void  SwTableColumnPage::Reset( const SfxItemSet& )
     815             : {
     816           0 :     const SfxItemSet& rSet = GetItemSet();
     817             : 
     818             :     const SfxPoolItem* pItem;
     819           0 :     if(SFX_ITEM_SET == rSet.GetItemState( FN_TABLE_REP, sal_False, &pItem ))
     820             :     {
     821           0 :         pTblData = (SwTableRep*)((const SwPtrItem*) pItem)->GetValue();
     822           0 :         nNoOfVisibleCols = pTblData->GetColCount();
     823           0 :         nNoOfCols = pTblData->GetAllColCount();
     824           0 :         nTableWidth = pTblData->GetAlign() != text::HoriOrientation::FULL &&
     825           0 :                             pTblData->GetAlign() != text::HoriOrientation::LEFT_AND_WIDTH?
     826           0 :                         pTblData->GetWidth() : pTblData->GetSpace();
     827             : 
     828             :         sal_uInt16 i;
     829           0 :         for( i = 0; i < nNoOfCols; i++ )
     830             :         {
     831           0 :             if( pTblData->GetColumns()[i].nWidth  < nMinWidth )
     832           0 :                     nMinWidth = pTblData->GetColumns()[i].nWidth;
     833             :         }
     834           0 :         sal_Int64 nMinTwips = pFieldArr[0]->NormalizePercent( nMinWidth );
     835           0 :         sal_Int64 nMaxTwips = pFieldArr[0]->NormalizePercent( nTableWidth );
     836           0 :         for( i = 0; (i < MET_FIELDS) && (i < nNoOfVisibleCols); i++ )
     837             :         {
     838           0 :             pFieldArr[i]->SetPrcntValue( pFieldArr[i]->NormalizePercent(
     839           0 :                                                 GetVisibleWidth(i) ), FUNIT_TWIP );
     840           0 :             pFieldArr[i]->SetMin( nMinTwips , FUNIT_TWIP );
     841           0 :             pFieldArr[i]->SetMax( nMaxTwips , FUNIT_TWIP );
     842           0 :             pFieldArr[i]->Enable();
     843           0 :             pTextArr[i]->Enable();
     844             :         }
     845             : 
     846           0 :         if( nNoOfVisibleCols > MET_FIELDS )
     847           0 :             aUpBtn.Enable();
     848           0 :         i = nNoOfVisibleCols;
     849           0 :         while( i < MET_FIELDS )
     850             :         {
     851           0 :             pFieldArr[i]->SetText( aEmptyStr );
     852           0 :             pTextArr[i]->Hide();
     853           0 :             i++;
     854             :         }
     855             :     }
     856           0 :     ActivatePage(rSet);
     857             : 
     858           0 : };
     859             : 
     860             : 
     861           0 : void  SwTableColumnPage::Init(sal_Bool bWeb)
     862             : {
     863           0 :     FieldUnit aMetric = ::GetDfltMetric(bWeb);
     864           0 :     Link aLkUp = LINK( this, SwTableColumnPage, UpHdl );
     865           0 :     Link aLkDown = LINK( this, SwTableColumnPage, DownHdl );
     866           0 :     Link aLkLF = LINK( this, SwTableColumnPage, LoseFocusHdl );
     867           0 :     for( sal_uInt16 i = 0; i < MET_FIELDS; i++ )
     868             :     {
     869           0 :         aValueTbl[i] = i;
     870           0 :         SetMetric(*pFieldArr[i], aMetric);
     871           0 :         pFieldArr[i]->SetUpHdl( aLkUp );
     872           0 :         pFieldArr[i]->SetDownHdl( aLkDown );
     873           0 :         pFieldArr[i]->SetLoseFocusHdl( aLkLF );
     874             : 
     875             :     }
     876           0 :     SetMetric(aSpaceED, aMetric);
     877             : 
     878           0 :     Link aLk = LINK( this, SwTableColumnPage, AutoClickHdl );
     879           0 :     aUpBtn.SetClickHdl( aLk );
     880           0 :     aDownBtn.SetClickHdl( aLk );
     881             : 
     882           0 :     aLk = LINK( this, SwTableColumnPage, ModeHdl );
     883           0 :     aModifyTableCB .SetClickHdl( aLk );
     884           0 :     aProportionalCB.SetClickHdl( aLk );
     885           0 : };
     886             : 
     887             : 
     888           0 : IMPL_LINK( SwTableColumnPage, AutoClickHdl, CheckBox *, pBox )
     889             : {
     890             :     //Anzeigefenster verschieben
     891           0 :     if(pBox == (CheckBox *)&aDownBtn)
     892             :     {
     893           0 :         if(aValueTbl[0] > 0)
     894             :         {
     895           0 :             for( sal_uInt16 i=0; i < MET_FIELDS; i++ )
     896           0 :                 aValueTbl[i] -= 1;
     897             :         }
     898             :     }
     899           0 :     if(pBox == (CheckBox *)&aUpBtn)
     900             :     {
     901           0 :         if( aValueTbl[ MET_FIELDS -1 ] < nNoOfVisibleCols -1  )
     902             :         {
     903           0 :             for(sal_uInt16 i=0;i < MET_FIELDS;i++)
     904           0 :                 aValueTbl[i] += 1;
     905             :         }
     906             :     }
     907           0 :     for( sal_uInt16 i = 0; (i < nNoOfVisibleCols ) && ( i < MET_FIELDS); i++ )
     908             :     {
     909           0 :         String sEntry = rtl::OUString('~');
     910           0 :         String sIndex = String::CreateFromInt32( aValueTbl[i] + 1 );
     911           0 :         sEntry += sIndex;
     912           0 :         pTextArr[i]->SetText( sEntry );
     913             : 
     914             :         //added by menghu for SODC_5143,12/12/2006
     915           0 :         String sColumnWidth = SW_RESSTR( STR_ACCESS_COLUMN_WIDTH);
     916           0 :         sColumnWidth.SearchAndReplace( DEFINE_CONST_UNICODE("%1"), sIndex );
     917           0 :         pFieldArr[i]->SetAccessibleName( sColumnWidth );
     918           0 :     }
     919             : 
     920           0 :     aDownBtn.Enable(aValueTbl[0] > 0);
     921           0 :     aUpBtn.Enable(aValueTbl[ MET_FIELDS -1 ] < nNoOfVisibleCols -1 );
     922           0 :     UpdateCols(0);
     923           0 :     return 0;
     924             : };
     925             : 
     926             : 
     927           0 : IMPL_LINK_INLINE_START( SwTableColumnPage, UpHdl, PercentField *, pEdit )
     928             : {
     929           0 :     bModified = sal_True;
     930           0 :     ModifyHdl( pEdit );
     931           0 :     return 0;
     932             : };
     933           0 : IMPL_LINK_INLINE_END( SwTableColumnPage, UpHdl, PercentField *, pEdit )
     934             : 
     935             : 
     936           0 : IMPL_LINK_INLINE_START( SwTableColumnPage, DownHdl, PercentField *, pEdit )
     937             : {
     938           0 :     bModified = sal_True;
     939           0 :     ModifyHdl( pEdit );
     940           0 :     return 0;
     941             : };
     942           0 : IMPL_LINK_INLINE_END( SwTableColumnPage, DownHdl, PercentField *, pEdit )
     943             : 
     944             : 
     945           0 : IMPL_LINK_INLINE_START( SwTableColumnPage, LoseFocusHdl, PercentField *, pEdit )
     946             : {
     947           0 :     if(pEdit->IsModified())
     948             :     {
     949           0 :         bModified = sal_True;
     950           0 :         ModifyHdl( pEdit );
     951             :     }
     952           0 :     return 0;
     953             : };
     954           0 : IMPL_LINK_INLINE_END( SwTableColumnPage, LoseFocusHdl, PercentField *, pEdit )
     955             : 
     956             : 
     957           0 : IMPL_LINK( SwTableColumnPage, ModeHdl, CheckBox*, pBox )
     958             : {
     959           0 :     sal_Bool bCheck = pBox->IsChecked();
     960           0 :     if(pBox == &aProportionalCB)
     961             :     {
     962           0 :         if(bCheck)
     963           0 :             aModifyTableCB.Check();
     964           0 :         aModifyTableCB.Enable(!bCheck && bModifyTbl);
     965             :     }
     966           0 :     return 0;
     967             : };
     968             : 
     969             : 
     970           0 : sal_Bool  SwTableColumnPage::FillItemSet( SfxItemSet& )
     971             : {
     972           0 :     for( sal_uInt16 i = 0; i < MET_FIELDS; i++ )
     973             :     {
     974           0 :         if(pFieldArr[i]->HasFocus())
     975             :         {
     976           0 :             LoseFocusHdl(pFieldArr[i]);
     977           0 :             break;
     978             :         }
     979             :     }
     980             : 
     981           0 :     if(bModified)
     982             :     {
     983           0 :         pTblData->SetColsChanged();
     984             :     }
     985           0 :     return bModified;
     986             : };
     987             : 
     988             : 
     989           0 : void   SwTableColumnPage::ModifyHdl( PercentField* pEdit )
     990             : {
     991             :         sal_uInt16 nAktPos;
     992             :         sal_uInt16 i;
     993             : 
     994           0 :         for( i = 0; i < MET_FIELDS; i++)
     995           0 :             if(pEdit == pFieldArr[i])
     996           0 :                 break;
     997             : 
     998           0 :         if (MET_FIELDS <= i)
     999             :         {
    1000             :             OSL_ENSURE(false, "cannot happen.");
    1001           0 :             return;
    1002             :         }
    1003             : 
    1004           0 :         SetVisibleWidth(aValueTbl[i], static_cast< SwTwips >(pEdit->DenormalizePercent(pEdit->GetValue( FUNIT_TWIP ))) );
    1005           0 :         nAktPos = aValueTbl[i];
    1006             : 
    1007           0 :         UpdateCols( nAktPos );
    1008             : };
    1009             : 
    1010             : 
    1011           0 : void   SwTableColumnPage::UpdateCols( sal_uInt16 nAktPos )
    1012             : {
    1013           0 :     SwTwips nSum = 0;
    1014             :     sal_uInt16 i;
    1015             : 
    1016           0 :     for( i = 0; i < nNoOfCols; i++ )
    1017             :     {
    1018           0 :         nSum += (pTblData->GetColumns())[i].nWidth;
    1019             :     }
    1020           0 :     SwTwips nDiff = nSum - nTableWidth;
    1021             : 
    1022           0 :     sal_Bool bModifyTable = aModifyTableCB.IsChecked();
    1023           0 :     sal_Bool bProp =    aProportionalCB.IsChecked();
    1024             : 
    1025           0 :     if(!bModifyTable && !bProp )
    1026             :     {
    1027             : //      the table width is constant, the difference is balanced with the other columns
    1028           0 :         sal_uInt16 nLoopCount = 0;
    1029           0 :         while( nDiff )
    1030             :         {
    1031           0 :             if( ++nAktPos == nNoOfVisibleCols)
    1032             :             {
    1033           0 :                 nAktPos = 0;
    1034           0 :                 ++nLoopCount;
    1035             :                 //#i101353# in small tables it might not be possible to balance column width
    1036           0 :                 if( nLoopCount > 1 )
    1037           0 :                     break;
    1038             :             }
    1039           0 :             if( nDiff < 0 )
    1040             :             {
    1041           0 :                 SetVisibleWidth(nAktPos, GetVisibleWidth(nAktPos) -nDiff);
    1042           0 :                 nDiff = 0;
    1043             :             }
    1044           0 :             else if( GetVisibleWidth(nAktPos) >= nDiff + nMinWidth )
    1045             :             {
    1046           0 :                 SetVisibleWidth(nAktPos, GetVisibleWidth(nAktPos) -nDiff);
    1047           0 :                 nDiff = 0;
    1048             :             }
    1049           0 :             if( nDiff > 0 && GetVisibleWidth(nAktPos) > nMinWidth )
    1050             :             {
    1051           0 :                 if( nDiff >= (GetVisibleWidth(nAktPos) - nMinWidth) )
    1052             :                 {
    1053           0 :                     nDiff -= (GetVisibleWidth(nAktPos) - nMinWidth);
    1054           0 :                     SetVisibleWidth(nAktPos, nMinWidth);
    1055             :                 }
    1056             :                 else
    1057             :                 {
    1058           0 :                     nDiff = 0;
    1059           0 :                     SetVisibleWidth(nAktPos, GetVisibleWidth(nAktPos) -nDiff);
    1060             :                 }
    1061             :                 OSL_ENSURE(nDiff >= 0, "nDiff < 0 cannot be here!");
    1062             :             }
    1063           0 :         }
    1064             :     }
    1065           0 :     else if(bModifyTable && !bProp)
    1066             :     {
    1067             : //      Differenz wird ueber die Tabellenbreite ausgeglichen,
    1068             : //      andere Spalten bleiben unveraendert
    1069             :         OSL_ENSURE(nDiff <= pTblData->GetSpace() - nTableWidth, "wrong maximum" );
    1070           0 :         SwTwips nActSpace = pTblData->GetSpace() - nTableWidth;
    1071           0 :         if(nDiff > nActSpace)
    1072             :         {
    1073           0 :             nTableWidth = pTblData->GetSpace();
    1074           0 :             SetVisibleWidth(nAktPos, GetVisibleWidth(nAktPos) - nDiff + nActSpace );
    1075             :         }
    1076             :         else
    1077             :         {
    1078           0 :             nTableWidth += nDiff;
    1079           0 :         }
    1080             :     }
    1081           0 :     else if(bModifyTable & bProp)
    1082             :     {
    1083             : //      Alle Spalten werden proportional mitveraendert, die Tabellenbreite wird
    1084             : //      entsprechend angepasst
    1085             :         OSL_ENSURE(nDiff * nNoOfVisibleCols <= pTblData->GetSpace() - nTableWidth, "wrong maximum" );
    1086           0 :         long nAdd = nDiff;
    1087           0 :         if(nDiff * nNoOfVisibleCols > pTblData->GetSpace() - nTableWidth)
    1088             :         {
    1089           0 :             nAdd = (pTblData->GetSpace() - nTableWidth) / nNoOfVisibleCols;
    1090           0 :             SetVisibleWidth(nAktPos, GetVisibleWidth(nAktPos) - nDiff + nAdd );
    1091           0 :             nDiff = nAdd;
    1092             :         }
    1093           0 :         if(nAdd)
    1094           0 :             for(i = 0; i < nNoOfVisibleCols; i++ )
    1095             :             {
    1096           0 :                 if(i == nAktPos)
    1097           0 :                     continue;
    1098             :                 SwTwips nVisWidth;
    1099           0 :                 if((nVisWidth = GetVisibleWidth(i)) + nDiff < MINLAY)
    1100             :                 {
    1101           0 :                     nAdd += nVisWidth - MINLAY;
    1102           0 :                     SetVisibleWidth(i, MINLAY);
    1103             :                 }
    1104             :                 else
    1105             :                 {
    1106           0 :                     SetVisibleWidth(i, nVisWidth + nDiff);
    1107           0 :                     nAdd += nDiff;
    1108             :                 }
    1109             : 
    1110             :             }
    1111           0 :         nTableWidth += nAdd;
    1112             :     }
    1113             : 
    1114           0 :     if(!bPercentMode)
    1115           0 :         aSpaceED.SetValue(aSpaceED.Normalize( pTblData->GetSpace() - nTableWidth) , FUNIT_TWIP);
    1116             : 
    1117           0 :     for( i = 0; ( i < nNoOfVisibleCols ) && ( i < MET_FIELDS ); i++)
    1118             :     {
    1119           0 :         pFieldArr[i]->SetPrcntValue(pFieldArr[i]->NormalizePercent(
    1120           0 :                         GetVisibleWidth(aValueTbl[i]) ), FUNIT_TWIP);
    1121           0 :         pFieldArr[i]->ClearModifyFlag();
    1122             :     }
    1123             : 
    1124           0 : }
    1125             : 
    1126             : 
    1127           0 : void    SwTableColumnPage::ActivatePage( const SfxItemSet& )
    1128             : {
    1129           0 :     bPercentMode = pTblData->GetWidthPercent() != 0;
    1130           0 :     for( sal_uInt16 i = 0; (i < MET_FIELDS) && (i < nNoOfVisibleCols); i++ )
    1131             :     {
    1132           0 :         pFieldArr[i]->SetRefValue(pTblData->GetWidth());
    1133           0 :         pFieldArr[i]->ShowPercent( bPercentMode );
    1134             :     }
    1135             : 
    1136           0 :     sal_uInt16 nTblAlign = pTblData->GetAlign();
    1137           0 :     if((text::HoriOrientation::FULL != nTblAlign && nTableWidth != pTblData->GetWidth()) ||
    1138           0 :     (text::HoriOrientation::FULL == nTblAlign && nTableWidth != pTblData->GetSpace()))
    1139             :     {
    1140             :         nTableWidth = text::HoriOrientation::FULL == nTblAlign ?
    1141           0 :                                     pTblData->GetSpace() :
    1142           0 :                                         pTblData->GetWidth();
    1143           0 :         UpdateCols(0);
    1144             :     }
    1145           0 :     bModifyTbl = sal_True;
    1146           0 :     if(pTblData->GetWidthPercent() ||
    1147             :                 text::HoriOrientation::FULL == nTblAlign ||
    1148           0 :                         pTblData->IsLineSelected()  )
    1149           0 :         bModifyTbl = sal_False;
    1150           0 :     if(bPercentMode)
    1151             :     {
    1152           0 :         aModifyTableCB  .Check(sal_False);
    1153           0 :         aProportionalCB .Check(sal_False);
    1154             :     }
    1155           0 :     else if( !bModifyTbl )
    1156             :     {
    1157           0 :         aProportionalCB.Check(sal_False);
    1158           0 :         aModifyTableCB.Check(sal_False);
    1159             :     }
    1160           0 :     aSpaceFT.Enable(!bPercentMode);
    1161           0 :     aSpaceED.Enable(!bPercentMode);
    1162           0 :     aModifyTableCB.Enable( !bPercentMode && bModifyTbl );
    1163           0 :     aProportionalCB.Enable(!bPercentMode && bModifyTbl );
    1164             : 
    1165             :     aSpaceED.SetValue(aSpaceED.Normalize(
    1166           0 :                 pTblData->GetSpace() - nTableWidth) , FUNIT_TWIP);
    1167             : 
    1168           0 : }
    1169             : 
    1170             : 
    1171           0 : int  SwTableColumnPage::DeactivatePage( SfxItemSet* _pSet )
    1172             : {
    1173           0 :     if(_pSet)
    1174             :     {
    1175           0 :         FillItemSet(*_pSet);
    1176           0 :         if(text::HoriOrientation::FULL != pTblData->GetAlign() && pTblData->GetWidth() != nTableWidth)
    1177             :         {
    1178           0 :             pTblData->SetWidth(nTableWidth);
    1179           0 :             SwTwips nDiff = pTblData->GetSpace() - pTblData->GetWidth() -
    1180           0 :                             pTblData->GetLeftSpace() - pTblData->GetRightSpace();
    1181           0 :             switch( pTblData->GetAlign()  )
    1182             :             {
    1183             :                 case text::HoriOrientation::RIGHT:
    1184           0 :                     pTblData->SetLeftSpace(pTblData->GetLeftSpace() + nDiff);
    1185           0 :                 break;
    1186             :                 case text::HoriOrientation::LEFT:
    1187           0 :                     pTblData->SetRightSpace(pTblData->GetRightSpace() + nDiff);
    1188           0 :                 break;
    1189             :                 case text::HoriOrientation::NONE:
    1190             :                 {
    1191           0 :                     SwTwips nDiff2 = nDiff/2;
    1192           0 :                     if( nDiff > 0 ||
    1193           0 :                         (-nDiff2 < pTblData->GetRightSpace() && - nDiff2 < pTblData->GetLeftSpace()))
    1194             :                     {
    1195           0 :                         pTblData->SetRightSpace(pTblData->GetRightSpace() + nDiff2);
    1196           0 :                         pTblData->SetLeftSpace(pTblData->GetLeftSpace() + nDiff2);
    1197             :                     }
    1198             :                     else
    1199             :                     {
    1200           0 :                         if(pTblData->GetRightSpace() > pTblData->GetLeftSpace())
    1201             :                         {
    1202           0 :                             pTblData->SetLeftSpace(0);
    1203           0 :                             pTblData->SetRightSpace(pTblData->GetSpace() - pTblData->GetWidth());
    1204             :                         }
    1205             :                         else
    1206             :                         {
    1207           0 :                             pTblData->SetRightSpace(0);
    1208           0 :                             pTblData->SetLeftSpace(pTblData->GetSpace() - pTblData->GetWidth());
    1209             :                         }
    1210             :                     }
    1211             :                 }
    1212           0 :                 break;
    1213             :                 case text::HoriOrientation::CENTER:
    1214           0 :                     pTblData->SetRightSpace(pTblData->GetRightSpace() + nDiff/2);
    1215           0 :                     pTblData->SetLeftSpace(pTblData->GetLeftSpace() + nDiff/2);
    1216           0 :                 break;
    1217             :                 case text::HoriOrientation::LEFT_AND_WIDTH :
    1218           0 :                     if(nDiff > pTblData->GetRightSpace())
    1219             :                     {
    1220           0 :                         pTblData->SetLeftSpace(pTblData->GetSpace() - pTblData->GetWidth());
    1221             :                     }
    1222             :                     pTblData->SetRightSpace(
    1223           0 :                         pTblData->GetSpace() - pTblData->GetWidth() - pTblData->GetLeftSpace());
    1224           0 :                 break;
    1225             :             }
    1226           0 :             pTblData->SetWidthChanged();
    1227             :         }
    1228           0 :         _pSet->Put(SwPtrItem( FN_TABLE_REP, pTblData ));
    1229             :     }
    1230           0 :     return sal_True;
    1231             : }
    1232             : 
    1233             : 
    1234           0 : SwTwips  SwTableColumnPage::GetVisibleWidth(sal_uInt16 nPos)
    1235             : {
    1236           0 :     sal_uInt16 i=0;
    1237             : 
    1238           0 :     while( nPos )
    1239             :     {
    1240           0 :         if(pTblData->GetColumns()[i].bVisible && nPos)
    1241           0 :             nPos--;
    1242           0 :         i++;
    1243             :     }
    1244           0 :     SwTwips nReturn = pTblData->GetColumns()[i].nWidth;
    1245             :     OSL_ENSURE(i < nNoOfCols, "Array index out of range");
    1246           0 :     while(!pTblData->GetColumns()[i].bVisible && (i + 1) < nNoOfCols)
    1247           0 :         nReturn += pTblData->GetColumns()[++i].nWidth;
    1248             : 
    1249           0 :     return nReturn;
    1250             : }
    1251             : 
    1252             : 
    1253           0 : void SwTableColumnPage::SetVisibleWidth(sal_uInt16 nPos, SwTwips nNewWidth)
    1254             : {
    1255           0 :     sal_uInt16 i=0;
    1256           0 :     while( nPos )
    1257             :     {
    1258           0 :         if(pTblData->GetColumns()[i].bVisible && nPos)
    1259           0 :             nPos--;
    1260           0 :         i++;
    1261             :     }
    1262             :     OSL_ENSURE(i < nNoOfCols, "Array index out of range");
    1263           0 :     pTblData->GetColumns()[i].nWidth = nNewWidth;
    1264           0 :     while(!pTblData->GetColumns()[i].bVisible && (i + 1) < nNoOfCols)
    1265           0 :         pTblData->GetColumns()[++i].nWidth = 0;
    1266             : 
    1267           0 : }
    1268             : 
    1269             : 
    1270           0 : SwTableTabDlg::SwTableTabDlg(Window* pParent, SfxItemPool& ,
    1271             :                     const SfxItemSet* pItemSet, SwWrtShell* pSh ) :
    1272             :         SfxTabDialog(pParent, SW_RES(DLG_FORMAT_TABLE), pItemSet,0),
    1273             :         pShell(pSh),
    1274           0 :         nHtmlMode(::GetHtmlMode(pSh->GetView().GetDocShell()))
    1275             : {
    1276           0 :     FreeResource();
    1277           0 :     SfxAbstractDialogFactory* pFact = SfxAbstractDialogFactory::Create();
    1278             :     OSL_ENSURE(pFact, "Dialogdiet fail!");
    1279           0 :     AddTabPage(TP_FORMAT_TABLE, &SwFormatTablePage::Create, 0 );
    1280           0 :     AddTabPage(TP_TABLE_TEXTFLOW, &SwTextFlowPage::Create, 0 );
    1281           0 :     AddTabPage(TP_TABLE_COLUMN, &SwTableColumnPage::Create, 0 );
    1282           0 :     AddTabPage(TP_BACKGROUND, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), 0 );
    1283           0 :     AddTabPage(TP_BORDER, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BORDER ), 0 );
    1284           0 : }
    1285             : 
    1286             : 
    1287           0 : void  SwTableTabDlg::PageCreated(sal_uInt16 nId, SfxTabPage& rPage)
    1288             : {
    1289           0 :     SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool()));
    1290           0 :     if( TP_BACKGROUND == nId )
    1291             :     {
    1292           0 :         sal_Int32 nFlagType = SVX_SHOW_TBLCTL;
    1293           0 :         if(!( nHtmlMode & HTMLMODE_ON ) ||
    1294             :             nHtmlMode & HTMLMODE_SOME_STYLES)
    1295           0 :             nFlagType |= SVX_SHOW_SELECTOR;
    1296           0 :         aSet.Put (SfxUInt32Item(SID_FLAG_TYPE, nFlagType));
    1297           0 :         rPage.PageCreated(aSet);
    1298             :     }
    1299           0 :     else if(TP_BORDER == nId)
    1300             :     {
    1301           0 :         aSet.Put (SfxUInt16Item(SID_SWMODE_TYPE,SW_BORDER_MODE_TABLE));
    1302           0 :         rPage.PageCreated(aSet);
    1303             :     }
    1304           0 :     else if(TP_TABLE_TEXTFLOW == nId)
    1305             :     {
    1306           0 :         ((SwTextFlowPage&)rPage).SetShell(pShell);
    1307           0 :         const sal_uInt16 eType = pShell->GetFrmType(0,sal_True);
    1308           0 :         if( !(FRMTYPE_BODY & eType) )
    1309           0 :             ((SwTextFlowPage&)rPage).DisablePageBreak();
    1310           0 :     }
    1311           0 : }
    1312             : 
    1313           0 : SwTextFlowPage::SwTextFlowPage( Window* pParent,
    1314             :                                 const SfxItemSet& rSet ) :
    1315             :     SfxTabPage(pParent, SW_RES( TP_TABLE_TEXTFLOW ), rSet ),
    1316             :     aFlowFL         (this, SW_RES(FL_FLOW            )),
    1317             :     aPgBrkCB        (this, SW_RES(CB_PAGEBREAK      )),
    1318             :     aPgBrkRB        (this, SW_RES(RB_BREAKPAGE      )),
    1319             :     aColBrkRB       (this, SW_RES(RB_BREAKCOLUMN    )),
    1320             :     aPgBrkBeforeRB  (this, SW_RES(RB_PAGEBREAKBEFORE)),
    1321             :     aPgBrkAfterRB   (this, SW_RES(RB_PAGEBREAKAFTER )),
    1322             :     aPageCollCB     (this, SW_RES(CB_PAGECOLL       )),
    1323             :     aPageCollLB     (this, SW_RES(LB_PAGECOLL       )),
    1324             :     aPageNoFT       (this, SW_RES(FT_PAGENUM        )),
    1325             :     aPageNoNF       (this, SW_RES(NF_PAGENUM        )),
    1326             :     aSplitCB        (this, SW_RES(CB_SPLIT          )),
    1327             :     aSplitRowCB     (this, SW_RES(CB_SPLIT_ROW      )),
    1328             :     aKeepCB         (this, SW_RES(CB_KEEP           )),
    1329             :     aHeadLineCB     (this, SW_RES(CB_HEADLINE       )),
    1330             :     aRepeatHeaderFT         (this, SW_RES(FT_REPEAT_HEADER  )),
    1331             :     aRepeatHeaderBeforeFT   (this),
    1332             :     aRepeatHeaderNF         (this, SW_RES(NF_REPEAT_HEADER  )),
    1333             :     aRepeatHeaderAfterFT    (this),
    1334             :     aRepeatHeaderCombo      (this, SW_RES(WIN_REPEAT_HEADER), aRepeatHeaderNF, aRepeatHeaderBeforeFT, aRepeatHeaderAfterFT),
    1335             :     aTextDirectionFT(this, SW_RES(FT_TEXTORIENTATION  )),
    1336             :     aTextDirectionLB(this, SW_RES(LB_TEXTORIENTATION  )),
    1337             : 
    1338             :     aVertOrientFL   (this, SW_RES(FL_VERT_ORIENT    )),
    1339             :     aVertOrientFT(this,  SW_RES(FT_VERTORIENT       )),
    1340             :     aVertOrientLB(this,  SW_RES(LB_VERTORIENT       )),
    1341             : 
    1342             :     pShell(0),
    1343             : 
    1344             :     bPageBreak(sal_True),
    1345           0 :     bHtmlMode(sal_False)
    1346             : {
    1347           0 :     FreeResource();
    1348             : 
    1349           0 :     aPgBrkRB.SetAccessibleRelationMemberOf(&aPgBrkCB);
    1350           0 :     aColBrkRB.SetAccessibleRelationMemberOf(&aPgBrkCB);
    1351           0 :     aPgBrkBeforeRB.SetAccessibleRelationMemberOf(&aPgBrkCB);
    1352           0 :     aPgBrkAfterRB.SetAccessibleRelationMemberOf(&aPgBrkCB);
    1353           0 :     aPageCollLB.SetAccessibleRelationLabeledBy(&aPageCollCB);
    1354           0 :     aPageCollLB.SetAccessibleName(aPageCollCB.GetText());
    1355             : 
    1356           0 :     aPgBrkCB.SetClickHdl(LINK(this, SwTextFlowPage, PageBreakHdl_Impl));
    1357             :     aPgBrkBeforeRB.SetClickHdl(
    1358           0 :         LINK( this, SwTextFlowPage, PageBreakPosHdl_Impl ) );
    1359             :     aPgBrkAfterRB.SetClickHdl(
    1360           0 :         LINK( this, SwTextFlowPage, PageBreakPosHdl_Impl ) );
    1361             :     aPageCollCB.SetClickHdl(
    1362           0 :         LINK( this, SwTextFlowPage, ApplyCollClickHdl_Impl ) );
    1363             :     aColBrkRB.SetClickHdl(
    1364           0 :         LINK( this, SwTextFlowPage, PageBreakTypeHdl_Impl ) );
    1365             :     aPgBrkRB.SetClickHdl(
    1366           0 :         LINK( this, SwTextFlowPage, PageBreakTypeHdl_Impl ) );
    1367             :     aSplitCB.SetClickHdl(
    1368           0 :         LINK( this, SwTextFlowPage, SplitHdl_Impl));
    1369             :     aSplitRowCB.SetClickHdl(
    1370           0 :         LINK( this, SwTextFlowPage, SplitRowHdl_Impl));
    1371           0 :     aHeadLineCB.SetClickHdl( LINK( this, SwTextFlowPage, HeadLineCBClickHdl ) );
    1372             : 
    1373             : #ifndef SW_FILEFORMAT_40
    1374             :     const SfxPoolItem *pItem;
    1375           0 :     if(SFX_ITEM_SET == rSet.GetItemState( SID_HTML_MODE, sal_False,&pItem )
    1376           0 :         && ((const SfxUInt16Item*)pItem)->GetValue() & HTMLMODE_ON)
    1377             : #endif
    1378             :     {
    1379           0 :         aKeepCB.Hide();
    1380           0 :         aSplitCB.Hide();
    1381           0 :         aSplitRowCB.Hide();
    1382             :     }
    1383             : 
    1384           0 :     aRepeatHeaderCombo.Arrange( aRepeatHeaderFT );
    1385             : 
    1386           0 :     HeadLineCBClickHdl();
    1387           0 : }
    1388             : 
    1389           0 :  SwTextFlowPage::~SwTextFlowPage()
    1390             : {
    1391           0 : }
    1392             : 
    1393           0 : SfxTabPage*   SwTextFlowPage::Create( Window* pParent,
    1394             :                                 const SfxItemSet& rAttrSet)
    1395             : {
    1396           0 :     return new SwTextFlowPage(pParent, rAttrSet);
    1397             : }
    1398             : 
    1399           0 : sal_Bool  SwTextFlowPage::FillItemSet( SfxItemSet& rSet )
    1400             : {
    1401           0 :     sal_Bool bModified = sal_False;
    1402             : 
    1403             :     // Repeat Heading
    1404           0 :     if(aHeadLineCB.IsChecked() != aHeadLineCB.GetSavedValue() ||
    1405           0 :         String::CreateFromInt32( static_cast< sal_Int32 >(aRepeatHeaderNF.GetValue()) ) != aRepeatHeaderNF.GetSavedValue() )
    1406             :     {
    1407             :         bModified |= 0 != rSet.Put(
    1408           0 :             SfxUInt16Item(FN_PARAM_TABLE_HEADLINE, aHeadLineCB.IsChecked()? sal_uInt16(aRepeatHeaderNF.GetValue()) : 0 ));
    1409             :     }
    1410           0 :     if(aKeepCB.IsChecked() != aKeepCB.GetSavedValue())
    1411           0 :         bModified |= 0 != rSet.Put( SvxFmtKeepItem( aKeepCB.IsChecked(), RES_KEEP));
    1412             : 
    1413           0 :     if(aSplitCB.IsChecked() != aSplitCB.GetSavedValue())
    1414           0 :         bModified |= 0 != rSet.Put( SwFmtLayoutSplit( aSplitCB.IsChecked()));
    1415             : 
    1416           0 :     if(aSplitRowCB.IsChecked() != aSplitRowCB.GetSavedValue())
    1417           0 :         bModified |= 0 != rSet.Put( SwFmtRowSplit( aSplitRowCB.IsChecked()));
    1418             : 
    1419             : 
    1420           0 :     const SvxFmtBreakItem* pBreak = (const SvxFmtBreakItem*)GetOldItem( rSet, RES_BREAK );
    1421           0 :     const SwFmtPageDesc* pDesc = (const SwFmtPageDesc*) GetOldItem( rSet, RES_PAGEDESC );
    1422             : 
    1423             : 
    1424           0 :     sal_Bool bState = aPageCollCB.IsChecked();
    1425             : 
    1426             :     // If we have a page style, then there's no break
    1427           0 :     sal_Bool bPageItemPut = sal_False;
    1428           0 :     if ( bState != aPageCollCB.GetSavedValue() ||
    1429             :          ( bState &&
    1430           0 :            aPageCollLB.GetSelectEntryPos() != aPageCollLB.GetSavedValue() )
    1431           0 :            || (aPageNoNF.IsEnabled() && aPageNoNF.IsValueModified()) )
    1432             :     {
    1433           0 :         String sPage;
    1434             : 
    1435           0 :         if ( bState )
    1436             :         {
    1437           0 :             sPage = aPageCollLB.GetSelectEntry();
    1438             :         }
    1439           0 :         sal_uInt16 nPgNum = static_cast< sal_uInt16 >(aPageNoNF.GetValue());
    1440           0 :         if ( !pDesc || !pDesc->GetPageDesc() ||
    1441           0 :             ( pDesc->GetPageDesc() && ((pDesc->GetPageDesc()->GetName() != sPage) ||
    1442           0 :                     !comphelper::string::equals(aPageNoNF.GetSavedValue(), nPgNum))))
    1443             :         {
    1444           0 :             SwFmtPageDesc aFmt( pShell->FindPageDescByName( sPage, sal_True ) );
    1445           0 :             aFmt.SetNumOffset(bState ? nPgNum : 0);
    1446           0 :             bModified |= 0 != rSet.Put( aFmt );
    1447           0 :             bPageItemPut = bState;
    1448           0 :         }
    1449             :     }
    1450           0 :     sal_Bool bIsChecked = aPgBrkCB.IsChecked();
    1451           0 :     if ( !bPageItemPut &&
    1452           0 :         (   bState != aPageCollCB.GetSavedValue() ||
    1453           0 :             bIsChecked != aPgBrkCB.GetSavedValue()              ||
    1454           0 :             aPgBrkBeforeRB.IsChecked() != aPgBrkBeforeRB.GetSavedValue()    ||
    1455           0 :             aPgBrkRB.IsChecked() != aPgBrkRB.GetSavedValue() ))
    1456             :     {
    1457             :         SvxFmtBreakItem aBreak(
    1458           0 :             (const SvxFmtBreakItem&)GetItemSet().Get( RES_BREAK ) );
    1459             : 
    1460           0 :         if(bIsChecked)
    1461             :         {
    1462           0 :             sal_Bool bBefore = aPgBrkBeforeRB.IsChecked();
    1463             : 
    1464           0 :             if ( aPgBrkRB.IsChecked() )
    1465             :             {
    1466           0 :                 if ( bBefore )
    1467           0 :                     aBreak.SetValue( SVX_BREAK_PAGE_BEFORE );
    1468             :                 else
    1469           0 :                     aBreak.SetValue( SVX_BREAK_PAGE_AFTER );
    1470             :             }
    1471             :             else
    1472             :             {
    1473           0 :                 if ( bBefore )
    1474           0 :                     aBreak.SetValue( SVX_BREAK_COLUMN_BEFORE );
    1475             :                 else
    1476           0 :                     aBreak.SetValue( SVX_BREAK_COLUMN_AFTER );
    1477             :             }
    1478             :         }
    1479             :         else
    1480             :         {
    1481           0 :                 aBreak.SetValue( SVX_BREAK_NONE );
    1482             :         }
    1483             : 
    1484           0 :         if ( !pBreak || !( *(const SvxFmtBreakItem*)pBreak == aBreak ) )
    1485             :         {
    1486           0 :             bModified |= 0 != rSet.Put( aBreak );
    1487           0 :         }
    1488             :     }
    1489             : 
    1490           0 :     if(aTextDirectionLB.GetSelectEntryPos() != aTextDirectionLB.GetSavedValue())
    1491             :     {
    1492             :           bModified |= 0 != rSet.Put(
    1493             :                     SvxFrameDirectionItem(
    1494           0 :                         (SvxFrameDirection)(sal_uLong)aTextDirectionLB.GetEntryData(aTextDirectionLB.GetSelectEntryPos())
    1495           0 :                         , FN_TABLE_BOX_TEXTORIENTATION));
    1496             :     }
    1497             : 
    1498           0 :     if(aVertOrientLB.GetSelectEntryPos() != aVertOrientLB.GetSavedValue())
    1499             :     {
    1500           0 :         sal_uInt16 nOrient = USHRT_MAX;
    1501           0 :         switch(aVertOrientLB.GetSelectEntryPos())
    1502             :         {
    1503           0 :             case 0 : nOrient = text::VertOrientation::NONE; break;
    1504           0 :             case 1 : nOrient = text::VertOrientation::CENTER; break;
    1505           0 :             case 2 : nOrient = text::VertOrientation::BOTTOM; break;
    1506             :         }
    1507           0 :         if(nOrient != USHRT_MAX)
    1508           0 :             bModified |= 0 != rSet.Put(SfxUInt16Item(FN_TABLE_SET_VERT_ALIGN, nOrient));
    1509             :     }
    1510             : 
    1511           0 :     return bModified;
    1512             : 
    1513             : }
    1514             : 
    1515           0 : void   SwTextFlowPage::Reset( const SfxItemSet& rSet )
    1516             : {
    1517             :     const SfxPoolItem* pItem;
    1518           0 :     SvxHtmlOptions& rHtmlOpt = SvxHtmlOptions::Get();
    1519           0 :     sal_Bool bFlowAllowed = !bHtmlMode || rHtmlOpt.IsPrintLayoutExtension();
    1520           0 :     if(bFlowAllowed)
    1521             :     {
    1522             :         // Einfuegen der vorhandenen Seitenvorlagen in die Listbox
    1523           0 :         const sal_uInt16 nCount = pShell->GetPageDescCnt();
    1524             :         sal_uInt16 i;
    1525             : 
    1526           0 :         for( i = 0; i < nCount; ++i)
    1527             :         {
    1528           0 :             const SwPageDesc &rPageDesc = pShell->GetPageDesc(i);
    1529           0 :             aPageCollLB.InsertEntry(rPageDesc.GetName());
    1530             :         }
    1531             : 
    1532           0 :         String aFmtName;
    1533           0 :         for(i = RES_POOLPAGE_BEGIN; i < RES_POOLPAGE_END; ++i)
    1534           0 :             if( LISTBOX_ENTRY_NOTFOUND == aPageCollLB.GetEntryPos(
    1535           0 :                     aFmtName = SwStyleNameMapper::GetUIName( i, aFmtName ) ))
    1536           0 :                 aPageCollLB.InsertEntry( aFmtName );
    1537             : 
    1538           0 :         if(SFX_ITEM_SET == rSet.GetItemState( RES_KEEP, sal_False, &pItem ))
    1539             :         {
    1540           0 :             aKeepCB.Check( ((const SvxFmtKeepItem*)pItem)->GetValue() );
    1541           0 :             aKeepCB.SaveValue();
    1542             :         }
    1543           0 :         if(SFX_ITEM_SET == rSet.GetItemState( RES_LAYOUT_SPLIT, sal_False, &pItem ))
    1544             :         {
    1545           0 :             aSplitCB.Check( ((const SwFmtLayoutSplit*)pItem)->GetValue() );
    1546             :         }
    1547             :         else
    1548           0 :             aSplitCB.Check();
    1549             : 
    1550           0 :         aSplitCB.SaveValue();
    1551           0 :         SplitHdl_Impl(&aSplitCB);
    1552             : 
    1553           0 :         if(SFX_ITEM_SET == rSet.GetItemState( RES_ROW_SPLIT, sal_False, &pItem ))
    1554             :         {
    1555           0 :             aSplitRowCB.Check( ((const SwFmtRowSplit*)pItem)->GetValue() );
    1556             :         }
    1557             :         else
    1558           0 :             aSplitRowCB.SetState(STATE_DONTKNOW);
    1559           0 :         aSplitRowCB.SaveValue();
    1560             : 
    1561           0 :         if(bPageBreak)
    1562             :         {
    1563           0 :             if(SFX_ITEM_SET == rSet.GetItemState( RES_PAGEDESC, sal_False, &pItem ))
    1564             :             {
    1565           0 :                 String sPageDesc;
    1566           0 :                 const SwPageDesc* pDesc = ((const SwFmtPageDesc*)pItem)->GetPageDesc();
    1567           0 :                 aPageNoNF.SetValue(((const SwFmtPageDesc*)pItem)->GetNumOffset());
    1568           0 :                 if(pDesc)
    1569           0 :                     sPageDesc = pDesc->GetName();
    1570           0 :                 if ( sPageDesc.Len() &&
    1571           0 :                         aPageCollLB.GetEntryPos( sPageDesc ) != LISTBOX_ENTRY_NOTFOUND )
    1572             :                 {
    1573           0 :                     aPageCollLB.SelectEntry( sPageDesc );
    1574           0 :                     aPageCollCB.Check();
    1575             : 
    1576           0 :                     aPgBrkCB.Enable();
    1577           0 :                     aPgBrkRB.Enable();
    1578           0 :                     aColBrkRB.Enable();
    1579           0 :                     aPgBrkBeforeRB.Enable();
    1580           0 :                     aPgBrkAfterRB.Enable();
    1581           0 :                     aPageCollCB.Enable();
    1582           0 :                     aPgBrkCB.Check();
    1583             : 
    1584           0 :                     aPgBrkCB.Check( sal_True );
    1585           0 :                     aColBrkRB.Check( sal_False );
    1586           0 :                     aPgBrkBeforeRB.Check( sal_True );
    1587           0 :                     aPgBrkAfterRB.Check( sal_False );
    1588             :                 }
    1589             :                 else
    1590             :                 {
    1591           0 :                     aPageCollLB.SetNoSelection();
    1592           0 :                     aPageCollCB.Check(sal_False);
    1593           0 :                 }
    1594             :             }
    1595             : 
    1596           0 :             if(SFX_ITEM_SET == rSet.GetItemState( RES_BREAK, sal_False, &pItem ))
    1597             :             {
    1598           0 :                 const SvxFmtBreakItem* pPageBreak = (const SvxFmtBreakItem*)pItem;
    1599           0 :                 SvxBreak eBreak = (SvxBreak)pPageBreak->GetValue();
    1600             : 
    1601           0 :                 if ( eBreak != SVX_BREAK_NONE )
    1602             :                 {
    1603           0 :                     aPgBrkCB.Check();
    1604           0 :                     aPageCollCB.Enable(sal_False);
    1605           0 :                     aPageCollLB.Enable(sal_False);
    1606           0 :                     aPageNoFT.Enable(sal_False);
    1607           0 :                     aPageNoNF.Enable(sal_False);
    1608             :                 }
    1609           0 :                 switch ( eBreak )
    1610             :                 {
    1611             :                     case SVX_BREAK_PAGE_BEFORE:
    1612           0 :                         aPgBrkRB.Check( sal_True );
    1613           0 :                         aColBrkRB.Check( sal_False );
    1614           0 :                         aPgBrkBeforeRB.Check( sal_True );
    1615           0 :                         aPgBrkAfterRB.Check( sal_False );
    1616           0 :                         break;
    1617             :                     case SVX_BREAK_PAGE_AFTER:
    1618           0 :                         aPgBrkRB.Check( sal_True );
    1619           0 :                         aColBrkRB.Check( sal_False );
    1620           0 :                         aPgBrkBeforeRB.Check( sal_False );
    1621           0 :                         aPgBrkAfterRB.Check( sal_True );
    1622           0 :                         break;
    1623             :                     case SVX_BREAK_COLUMN_BEFORE:
    1624           0 :                         aPgBrkRB.Check( sal_False );
    1625           0 :                         aColBrkRB.Check( sal_True );
    1626           0 :                         aPgBrkBeforeRB.Check( sal_True );
    1627           0 :                         aPgBrkAfterRB.Check( sal_False );
    1628           0 :                         break;
    1629             :                     case SVX_BREAK_COLUMN_AFTER:
    1630           0 :                         aPgBrkRB.Check( sal_False );
    1631           0 :                         aColBrkRB.Check( sal_True );
    1632           0 :                         aPgBrkBeforeRB.Check( sal_False );
    1633           0 :                         aPgBrkAfterRB.Check( sal_True );
    1634           0 :                         break;
    1635             :                     default:; //prevent warning
    1636             :                 }
    1637             : 
    1638             :             }
    1639           0 :             if ( aPgBrkBeforeRB.IsChecked() )
    1640           0 :                 PageBreakPosHdl_Impl( &aPgBrkBeforeRB );
    1641           0 :             else if ( aPgBrkAfterRB.IsChecked() )
    1642           0 :                 PageBreakPosHdl_Impl( &aPgBrkAfterRB );
    1643           0 :             PageBreakHdl_Impl( &aPgBrkCB );
    1644           0 :         }
    1645             :     }
    1646             :     else
    1647             :     {
    1648           0 :         aPgBrkRB.Enable(sal_False);
    1649           0 :         aColBrkRB.Enable(sal_False);
    1650           0 :         aPgBrkBeforeRB.Enable(sal_False);
    1651           0 :         aPgBrkAfterRB.Enable(sal_False);
    1652           0 :         aKeepCB .Enable(sal_False);
    1653           0 :         aSplitCB.Enable(sal_False);
    1654           0 :         aPgBrkCB.Enable(sal_False);
    1655           0 :         aPageCollCB.Enable(sal_False);
    1656           0 :         aPageCollLB.Enable(sal_False);
    1657             :     }
    1658             : 
    1659           0 :     if(SFX_ITEM_SET == rSet.GetItemState( FN_PARAM_TABLE_HEADLINE, sal_False, &pItem ))
    1660             :     {
    1661           0 :         sal_uInt16 nRep = ((const SfxUInt16Item*)pItem)->GetValue();
    1662           0 :         aHeadLineCB.Check( nRep > 0 );
    1663           0 :         aHeadLineCB.SaveValue();
    1664           0 :         aRepeatHeaderNF.SetValue( nRep );
    1665           0 :         aRepeatHeaderNF.SaveValue();
    1666             :     }
    1667           0 :     if ( rSet.GetItemState(FN_TABLE_BOX_TEXTORIENTATION) > SFX_ITEM_AVAILABLE )
    1668             :     {
    1669           0 :         sal_uLong nDirection = ((const SvxFrameDirectionItem&)rSet.Get(FN_TABLE_BOX_TEXTORIENTATION)).GetValue();
    1670           0 :         aTextDirectionLB.SelectEntryPos(aTextDirectionLB.GetEntryPos( (const void*)nDirection ));
    1671             :     }
    1672             : 
    1673           0 :     if ( rSet.GetItemState(FN_TABLE_SET_VERT_ALIGN) > SFX_ITEM_AVAILABLE )
    1674             :     {
    1675           0 :         sal_uInt16 nVert = ((const SfxUInt16Item&)rSet.Get(FN_TABLE_SET_VERT_ALIGN)).GetValue();
    1676           0 :         sal_uInt16 nPos = 0;
    1677           0 :         switch(nVert)
    1678             :         {
    1679           0 :             case text::VertOrientation::NONE:     nPos = 0;   break;
    1680           0 :             case text::VertOrientation::CENTER:   nPos = 1;   break;
    1681           0 :             case text::VertOrientation::BOTTOM:   nPos = 2;   break;
    1682             :         }
    1683           0 :         aVertOrientLB.SelectEntryPos(nPos);
    1684             :     }
    1685             : 
    1686           0 :     aPageCollCB.SaveValue();
    1687           0 :     aPageCollLB.SaveValue();
    1688           0 :     aPgBrkCB.SaveValue();
    1689           0 :     aPgBrkRB.SaveValue();
    1690           0 :     aColBrkRB.SaveValue();
    1691           0 :     aPgBrkBeforeRB.SaveValue();
    1692           0 :     aPgBrkAfterRB.SaveValue();
    1693           0 :     aPageNoNF.SaveValue();
    1694           0 :     aTextDirectionLB.SaveValue();
    1695           0 :     aVertOrientLB.SaveValue();
    1696             : 
    1697           0 :     HeadLineCBClickHdl();
    1698           0 : }
    1699             : 
    1700           0 : void SwTextFlowPage::SetShell(SwWrtShell* pSh)
    1701             : {
    1702           0 :     pShell = pSh;
    1703           0 :     bHtmlMode = 0 != (::GetHtmlMode(pShell->GetView().GetDocShell()) & HTMLMODE_ON);
    1704           0 :     if(bHtmlMode)
    1705             :     {
    1706           0 :         aPageNoNF.Enable(sal_False);
    1707           0 :         aPageNoFT.Enable(sal_False);
    1708             :     }
    1709           0 : }
    1710             : 
    1711           0 : IMPL_LINK_NOARG(SwTextFlowPage, PageBreakHdl_Impl)
    1712             : {
    1713           0 :     if( aPgBrkCB.IsChecked() )
    1714             :     {
    1715           0 :             aPgBrkRB.       Enable();
    1716           0 :             aColBrkRB.      Enable();
    1717           0 :             aPgBrkBeforeRB. Enable();
    1718           0 :             aPgBrkAfterRB.  Enable();
    1719             : 
    1720           0 :             if ( aPgBrkRB.IsChecked() && aPgBrkBeforeRB.IsChecked() )
    1721             :             {
    1722           0 :                 aPageCollCB.Enable();
    1723             : 
    1724           0 :                 sal_Bool bEnable = aPageCollCB.IsChecked() &&
    1725           0 :                                             aPageCollLB.GetEntryCount();
    1726           0 :                 aPageCollLB.Enable(bEnable);
    1727           0 :                 if(!bHtmlMode)
    1728             :                 {
    1729           0 :                     aPageNoFT.Enable(bEnable);
    1730           0 :                     aPageNoNF.Enable(bEnable);
    1731             :                 }
    1732             :             }
    1733             :     }
    1734             :     else
    1735             :     {
    1736           0 :             aPageCollCB.Check( sal_False );
    1737           0 :             aPageCollCB.Enable(sal_False);
    1738           0 :             aPageCollLB.Enable(sal_False);
    1739           0 :             aPageNoFT.Enable(sal_False);
    1740           0 :             aPageNoNF.Enable(sal_False);
    1741           0 :             aPgBrkRB.       Enable(sal_False);
    1742           0 :             aColBrkRB.      Enable(sal_False);
    1743           0 :             aPgBrkBeforeRB. Enable(sal_False);
    1744           0 :             aPgBrkAfterRB.  Enable(sal_False);
    1745             :     }
    1746           0 :     return 0;
    1747             : }
    1748             : 
    1749           0 : IMPL_LINK_NOARG(SwTextFlowPage, ApplyCollClickHdl_Impl)
    1750             : {
    1751           0 :     sal_Bool bEnable = sal_False;
    1752           0 :     if ( aPageCollCB.IsChecked() &&
    1753           0 :          aPageCollLB.GetEntryCount() )
    1754             :     {
    1755           0 :         bEnable = sal_True;
    1756           0 :         aPageCollLB.SelectEntryPos( 0 );
    1757             :     }
    1758             :     else
    1759             :     {
    1760           0 :         aPageCollLB.SetNoSelection();
    1761             :     }
    1762           0 :     aPageCollLB.Enable(bEnable);
    1763           0 :     if(!bHtmlMode)
    1764             :     {
    1765           0 :         aPageNoFT.Enable(bEnable);
    1766           0 :         aPageNoNF.Enable(bEnable);
    1767             :     }
    1768           0 :     return 0;
    1769             : }
    1770             : 
    1771           0 : IMPL_LINK( SwTextFlowPage, PageBreakPosHdl_Impl, RadioButton*, pBtn )
    1772             : {
    1773           0 :     if ( aPgBrkCB.IsChecked() )
    1774             :     {
    1775           0 :         if ( pBtn == &aPgBrkBeforeRB && aPgBrkRB.IsChecked() )
    1776             :         {
    1777           0 :             aPageCollCB.Enable();
    1778             : 
    1779           0 :             sal_Bool bEnable = aPageCollCB.IsChecked()  &&
    1780           0 :                                         aPageCollLB.GetEntryCount();
    1781             : 
    1782           0 :             aPageCollLB.Enable(bEnable);
    1783           0 :             if(!bHtmlMode)
    1784             :             {
    1785           0 :                 aPageNoFT.Enable(bEnable);
    1786           0 :                 aPageNoNF.Enable(bEnable);
    1787             :             }
    1788             :         }
    1789           0 :         else if ( pBtn == &aPgBrkAfterRB )
    1790             :         {
    1791           0 :             aPageCollCB .Check( sal_False );
    1792           0 :             aPageCollCB .Enable(sal_False);
    1793           0 :             aPageCollLB .Enable(sal_False);
    1794           0 :             aPageNoFT   .Enable(sal_False);
    1795           0 :             aPageNoNF   .Enable(sal_False);
    1796             :         }
    1797             :     }
    1798           0 :     return 0;
    1799             : }
    1800             : 
    1801           0 : IMPL_LINK( SwTextFlowPage, PageBreakTypeHdl_Impl, RadioButton*, pBtn )
    1802             : {
    1803           0 :     if ( pBtn == &aColBrkRB || aPgBrkAfterRB.IsChecked() )
    1804             :     {
    1805           0 :         aPageCollCB .Check(sal_False);
    1806           0 :         aPageCollCB .Enable(sal_False);
    1807           0 :         aPageCollLB .Enable(sal_False);
    1808           0 :         aPageNoFT   .Enable(sal_False);
    1809           0 :         aPageNoNF   .Enable(sal_False);
    1810             :     }
    1811           0 :     else if ( aPgBrkBeforeRB.IsChecked() )
    1812           0 :         PageBreakPosHdl_Impl( &aPgBrkBeforeRB );
    1813           0 :     return 0;
    1814             : }
    1815             : 
    1816           0 : IMPL_LINK( SwTextFlowPage, SplitHdl_Impl, CheckBox*, pBox )
    1817             : {
    1818           0 :     aSplitRowCB.Enable(pBox->IsChecked());
    1819           0 :     return 0;
    1820             : }
    1821             : 
    1822           0 : IMPL_LINK( SwTextFlowPage, SplitRowHdl_Impl, TriStateBox*, pBox )
    1823             : {
    1824           0 :     pBox->EnableTriState(sal_False);
    1825           0 :     return 0;
    1826             : }
    1827             : 
    1828           0 : IMPL_LINK_NOARG(SwTextFlowPage, HeadLineCBClickHdl)
    1829             : {
    1830           0 :     aRepeatHeaderCombo.Enable(aHeadLineCB.IsChecked());
    1831             : 
    1832           0 :     return 0;
    1833             : }
    1834             : 
    1835           0 : void SwTextFlowPage::DisablePageBreak()
    1836             : {
    1837           0 :     bPageBreak = sal_False;
    1838           0 :     aPgBrkCB       .Disable();
    1839           0 :     aPgBrkRB       .Disable();
    1840           0 :     aColBrkRB      .Disable();
    1841           0 :     aPgBrkBeforeRB .Disable();
    1842           0 :     aPgBrkAfterRB  .Disable();
    1843           0 :     aPageCollCB    .Disable();
    1844           0 :     aPageCollLB    .Disable();
    1845           0 :     aPageNoFT      .Disable();
    1846           0 :     aPageNoNF      .Disable();
    1847           0 : }
    1848             : 
    1849             : 
    1850             : 
    1851             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10