blob: 4b7ca4e61f6277530fa6374fa6b81fae30724ceb [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sw.hxx"
#ifdef SW_DLLIMPLEMENTATION
#undef SW_DLLIMPLEMENTATION
#endif
#ifndef _VIEW_HXX
#include <view.hxx>
#endif
#include <wrtsh.hxx>
#include <cption.hxx>
#include <fldmgr.hxx>
#include <expfld.hxx>
#include <numrule.hxx>
#include <poolfmt.hxx>
#include <docsh.hxx>
#include <frmfmt.hxx>
#include <calc.hxx>
#include <uitool.hxx>
#include <doc.hxx>
#include <modcfg.hxx>
#include <swmodule.hxx>
#include <com/sun/star/frame/XStorable.hpp>
#include <com/sun/star/text/GraphicCrop.hpp>
#include <com/sun/star/text/XTextGraphicObjectsSupplier.hpp>
#include <com/sun/star/text/XTextTableCursor.hpp>
#include <com/sun/star/text/XTextTablesSupplier.hpp>
#include <com/sun/star/text/TableColumnSeparator.hpp>
#include <com/sun/star/text/XTextTable.hpp>
#include <com/sun/star/text/XTextEmbeddedObjectsSupplier.hpp>
#include <com/sun/star/text/XTextEmbeddedObject.hpp>
#include <com/sun/star/text/XTextFramesSupplier.hpp>
#include <com/sun/star/text/XTextFrame.hpp>
#ifndef _FRMUI_HRC
#include <frmui.hrc>
#endif
#ifndef _CPTION_HRC
#include <cption.hrc>
#endif
#include <SwStyleNameMapper.hxx>
using namespace ::com::sun::star;
extern String* GetOldGrfCat();
extern String* GetOldTabCat();
extern String* GetOldFrmCat();
extern String* GetOldDrwCat();
class SwSequenceOptionDialog : public SvxStandardDialog
{
FixedLine aFlHeader;
FixedText aFtLevel;
ListBox aLbLevel;
FixedText aFtDelim;
Edit aEdDelim;
FixedLine aFlCatAndFrame;
FixedText aFtCharStyle;
ListBox aLbCharStyle;
CheckBox aApplyBorderAndShadowCB;
//#i61007# order of captions
FixedLine aFlCaptionOrder;
FixedText aFtCaptionOrder;
ListBox aLbCaptionOrder;
OKButton aOKButton;
CancelButton aCancelButton;
HelpButton aHelpButton;
SwView& rView;
String aFldTypeName;
public:
SwSequenceOptionDialog( Window *pParent, SwView &rV,
const String& rSeqFldType );
virtual ~SwSequenceOptionDialog();
virtual void Apply();
bool IsApplyBorderAndShadow( void ) { return aApplyBorderAndShadowCB.IsChecked(); }
void SetApplyBorderAndShadow( bool bSet ) { aApplyBorderAndShadowCB.Check(bSet); }
//#i61007# order of captions
bool IsOrderNumberingFirst() const {return aLbCaptionOrder.GetSelectEntryPos() == 1;}
void SetOrderNumberingFirst(bool bSet) { aLbCaptionOrder.SelectEntryPos( bSet ? 1 : 0 ); }
void SetCharacterStyle(const String& rStyle);
String GetCharacterStyle() const;
};
SwCaptionDialog::SwCaptionDialog( Window *pParent, SwView &rV ) :
SvxStandardDialog( pParent, SW_RES(DLG_CAPTION) ),
aTextText (this, SW_RES(TXT_TEXT )),
aTextEdit (this, SW_RES(EDT_TEXT )),
aSettingsFL (this, SW_RES(FL_SETTINGS)),
aCategoryText (this, SW_RES(TXT_CATEGORY)),
aCategoryBox (this, SW_RES(BOX_CATEGORY)),
aFormatText (this, SW_RES(TXT_FORMAT )),
aFormatBox (this, SW_RES(BOX_FORMAT )),
aNumberingSeparatorFT(this, SW_RES(FT_NUM_SEP )),
aNumberingSeparatorED(this, SW_RES(ED_NUM_SEP )),
aSepText (this, SW_RES(TXT_SEP )),
aSepEdit (this, SW_RES(EDT_SEP )),
aPosText (this, SW_RES(TXT_POS )),
aPosBox (this, SW_RES(BOX_POS )),
aOKButton (this, SW_RES(BTN_OK )),
aCancelButton (this, SW_RES(BTN_CANCEL )),
aHelpButton (this, SW_RES(BTN_HELP )),
aAutoCaptionButton(this, SW_RES(BTN_AUTOCAPTION)),
aOptionButton (this, SW_RES(BTN_OPTION )),
sNone( SW_RES( STR_CATEGORY_NONE )),
aPrevWin (this, SW_RES(WIN_SAMPLE )),
rView( rV ),
pMgr( new SwFldMgr(rView.GetWrtShellPtr()) ),
bCopyAttributes( sal_False ),
bOrderNumberingFirst( SW_MOD()->GetModuleConfig()->IsCaptionOrderNumberingFirst() )
{
//#i61007# order of captions
if( bOrderNumberingFirst )
ApplyCaptionOrder();
SwWrtShell &rSh = rView.GetWrtShell();
uno::Reference< frame::XModel > xModel = rView.GetDocShell()->GetBaseModel();
eType = rSh.GetSelectionType();
if ( eType & nsSelectionType::SEL_OLE )
{
eType = nsSelectionType::SEL_GRF;
uno::Reference< text::XTextEmbeddedObjectsSupplier > xObjs(xModel, uno::UNO_QUERY);
xNameAccess = xObjs->getEmbeddedObjects();
}
Link aLk = LINK( this, SwCaptionDialog, ModifyHdl );
aCategoryBox.SetModifyHdl( aLk );
aTextEdit .SetModifyHdl( aLk );
aNumberingSeparatorED.SetModifyHdl ( aLk );
aSepEdit .SetModifyHdl( aLk );
aLk = LINK(this, SwCaptionDialog, SelectHdl);
aCategoryBox.SetSelectHdl( aLk );
aFormatBox .SetSelectHdl( aLk );
aOptionButton.SetClickHdl( LINK( this, SwCaptionDialog, OptionHdl ) );
aAutoCaptionButton.SetClickHdl(LINK(this, SwCaptionDialog, CaptionHdl));
aCategoryBox.InsertEntry( sNone );
sal_uInt16 i, nCount = pMgr->GetFldTypeCount();
for (i = 0; i < nCount; i++)
{
SwFieldType *pType = pMgr->GetFldType( USHRT_MAX, i );
if( pType->Which() == RES_SETEXPFLD &&
((SwSetExpFieldType *) pType)->GetType() & nsSwGetSetExpType::GSE_SEQ )
aCategoryBox.InsertEntry(pType->GetName());
}
String* pString = 0;
sal_uInt16 nPoolId = 0;
if (eType & nsSelectionType::SEL_GRF)
{
nPoolId = RES_POOLCOLL_LABEL_ABB;
pString = ::GetOldGrfCat();
bCopyAttributes = sal_True;
sObjectName = rSh.GetFlyName();
//if not OLE
if(!xNameAccess.is())
{
uno::Reference< text::XTextGraphicObjectsSupplier > xGraphics(xModel, uno::UNO_QUERY);
xNameAccess = xGraphics->getGraphicObjects();
}
}
else if( eType & nsSelectionType::SEL_TBL )
{
nPoolId = RES_POOLCOLL_LABEL_TABLE;
pString = ::GetOldTabCat();
uno::Reference< text::XTextTablesSupplier > xTables(xModel, uno::UNO_QUERY);
xNameAccess = xTables->getTextTables();
sObjectName = rSh.GetTableFmt()->GetName();
}
else if( eType & nsSelectionType::SEL_FRM )
{
nPoolId = RES_POOLCOLL_LABEL_FRAME;
pString = ::GetOldFrmCat();
uno::Reference< text::XTextFramesSupplier > xFrms(xModel, uno::UNO_QUERY);
xNameAccess = xFrms->getTextFrames();
sObjectName = rSh.GetFlyName();
}
else if( eType == nsSelectionType::SEL_TXT )
{
nPoolId = RES_POOLCOLL_LABEL_FRAME;
pString = ::GetOldFrmCat();
}
else if( eType & nsSelectionType::SEL_DRW )
{
nPoolId = RES_POOLCOLL_LABEL_DRAWING;
pString = ::GetOldDrwCat();
}
if( nPoolId )
{
if( pString && pString->Len())
aCategoryBox.SetText( *pString );
else
aCategoryBox.SetText(
SwStyleNameMapper::GetUIName( nPoolId, aEmptyStr ));
}
// aFormatBox
sal_uInt16 nSelFmt = SVX_NUM_ARABIC;
nCount = pMgr->GetFldTypeCount();
SwFieldType* pFldType;
for ( i = nCount; i; )
if( ( pFldType = pMgr->GetFldType(USHRT_MAX, --i))->GetName() ==
aCategoryBox.GetText() )
{
nSelFmt = (sal_uInt16)((SwSetExpFieldType*)pFldType)->GetSeqFormat();
break;
}
nCount = pMgr->GetFormatCount(TYP_SEQFLD, sal_False);
for ( i = 0; i < nCount; ++i )
{
aFormatBox.InsertEntry( pMgr->GetFormatStr(TYP_SEQFLD, i) );
sal_uInt16 nFmtId = pMgr->GetFormatId(TYP_SEQFLD, i);
aFormatBox.SetEntryData( i, reinterpret_cast<void*>( nFmtId ) );
if( nFmtId == nSelFmt )
aFormatBox.SelectEntryPos( i );
}
// aPosBox
switch (eType)
{
case nsSelectionType::SEL_GRF:
case nsSelectionType::SEL_TBL:
case nsSelectionType::SEL_TBL | nsSelectionType::SEL_NUM:
case nsSelectionType::SEL_TBL | nsSelectionType::SEL_TXT:
case nsSelectionType::SEL_TBL | nsSelectionType::SEL_NUM | nsSelectionType::SEL_TXT:
case nsSelectionType::SEL_DRW:
case nsSelectionType::SEL_DRW | nsSelectionType::SEL_BEZ:
aPosBox.InsertEntry(SW_RESSTR(STR_ABOVE));
aPosBox.InsertEntry(SW_RESSTR(STR_CP_BELOW));
break;
case nsSelectionType::SEL_FRM:
case nsSelectionType::SEL_TXT:
aPosBox.InsertEntry(SW_RESSTR(STR_BEGINNING));
aPosBox.InsertEntry(SW_RESSTR(STR_END ));
break;
}
aPosBox.SelectEntryPos(1);
if (eType & (nsSelectionType::SEL_GRF|nsSelectionType::SEL_DRW))
{
aPosText.Enable( sal_False );
aPosBox.Enable( sal_False );
}
aCategoryBox.GetModifyHdl().Call(&aCategoryBox);
FreeResource();
CheckButtonWidth();
aTextEdit.GrabFocus();
DrawSample();
}
void SwCaptionDialog::Apply()
{
InsCaptionOpt aOpt;
aOpt.UseCaption() = sal_True;
String aName( aCategoryBox.GetText() );
if ( aName == sNone )
aOpt.SetCategory( aEmptyStr );
else
{
aName.EraseLeadingChars( ' ' );
aName.EraseTrailingChars( ' ' );
aOpt.SetCategory( aName );
}
aOpt.SetNumType( (sal_uInt16)(sal_uIntPtr)aFormatBox.GetEntryData( aFormatBox.GetSelectEntryPos() ) );
aOpt.SetSeparator( aSepEdit.IsEnabled() ? aSepEdit.GetText() : String() );
aOpt.SetNumSeparator( aNumberingSeparatorED.GetText() );
aOpt.SetCaption( aTextEdit.GetText() );
aOpt.SetPos( aPosBox.GetSelectEntryPos() );
aOpt.IgnoreSeqOpts() = sal_True;
aOpt.CopyAttributes() = bCopyAttributes;
aOpt.SetCharacterStyle( sCharacterStyle );
rView.InsertCaption( &aOpt );
}
IMPL_LINK_INLINE_START( SwCaptionDialog, OptionHdl, Button*, pButton )
{
String sFldTypeName = aCategoryBox.GetText();
if(sFldTypeName == sNone)
sFldTypeName = aEmptyStr;
SwSequenceOptionDialog aDlg( pButton, rView, sFldTypeName );
aDlg.SetApplyBorderAndShadow(bCopyAttributes);
aDlg.SetCharacterStyle( sCharacterStyle );
aDlg.SetOrderNumberingFirst( bOrderNumberingFirst );
aDlg.Execute();
bCopyAttributes = aDlg.IsApplyBorderAndShadow();
sCharacterStyle = aDlg.GetCharacterStyle();
//#i61007# order of captions
if( bOrderNumberingFirst != aDlg.IsOrderNumberingFirst() )
{
bOrderNumberingFirst = aDlg.IsOrderNumberingFirst();
SW_MOD()->GetModuleConfig()->SetCaptionOrderNumberingFirst(bOrderNumberingFirst);
ApplyCaptionOrder();
}
DrawSample();
return 0;
}
IMPL_LINK_INLINE_END( SwCaptionDialog, OptionHdl, Button*, EMPTYARG )
IMPL_LINK_INLINE_START( SwCaptionDialog, SelectHdl, ListBox *, EMPTYARG )
{
DrawSample();
return 0;
}
IMPL_LINK_INLINE_END( SwCaptionDialog, SelectHdl, ListBox *, EMPTYARG )
IMPL_LINK( SwCaptionDialog, ModifyHdl, Edit *, EMPTYARG )
{
SwWrtShell &rSh = rView.GetWrtShell();
String sFldTypeName = aCategoryBox.GetText();
sal_Bool bCorrectFldName = sFldTypeName.Len() > 0;
sal_Bool bNone = sFldTypeName == sNone;
SwFieldType* pType = (bCorrectFldName && !bNone)
? rSh.GetFldType( RES_SETEXPFLD, sFldTypeName )
: 0;
aOKButton.Enable( bCorrectFldName &&
(!pType ||
((SwSetExpFieldType*)pType)->GetType() == nsSwGetSetExpType::GSE_SEQ)
&& 0 != sFldTypeName.Len() );
aOptionButton.Enable( aOKButton.IsEnabled() && !bNone );
aFormatText.Enable( !bNone );
aFormatBox.Enable( !bNone );
aSepText.Enable( !bNone );
aSepEdit.Enable( !bNone );
DrawSample();
return 0;
}
IMPL_LINK(SwCaptionDialog, CaptionHdl, PushButton*, EMPTYARG)
{
SfxItemSet aSet( rView.GetDocShell()->GetDoc()->GetAttrPool() );
SwCaptionOptDlg aDlg( this, aSet );
aDlg.Execute();
return 0;
}
void SwCaptionDialog::DrawSample()
{
String aStr;
String sCaption = aTextEdit.GetText();
// Nummer
String sFldTypeName = aCategoryBox.GetText();
sal_Bool bNone = sFldTypeName == sNone;
if( !bNone )
{
sal_uInt16 nNumFmt = (sal_uInt16)(sal_uIntPtr)aFormatBox.GetEntryData(
aFormatBox.GetSelectEntryPos() );
if( SVX_NUM_NUMBER_NONE != nNumFmt )
{
// Kategorie
//#i61007# order of captions
if( !bOrderNumberingFirst )
{
aStr += sFldTypeName;
if ( aStr.Len() > 0 )
aStr += ' ';
}
SwWrtShell &rSh = rView.GetWrtShell();
SwSetExpFieldType* pFldType = (SwSetExpFieldType*)rSh.GetFldType(
RES_SETEXPFLD, sFldTypeName );
if( pFldType && pFldType->GetOutlineLvl() < MAXLEVEL )
{
sal_Int8 nLvl = pFldType->GetOutlineLvl();
SwNumberTree::tNumberVector aNumVector;
for( sal_Int8 i = 0; i <= nLvl; ++i )
aNumVector.push_back(1);
String sNumber( rSh.GetOutlineNumRule()->
MakeNumString(aNumVector, sal_False ));
if( sNumber.Len() )
(aStr += sNumber) += pFldType->GetDelimiter();
}
switch( nNumFmt )
{
case SVX_NUM_CHARS_UPPER_LETTER: aStr += 'A'; break;
case SVX_NUM_CHARS_UPPER_LETTER_N: aStr += 'A'; break;
case SVX_NUM_CHARS_LOWER_LETTER: aStr += 'a'; break;
case SVX_NUM_CHARS_LOWER_LETTER_N: aStr += 'a'; break;
case SVX_NUM_ROMAN_UPPER: aStr += 'I'; break;
case SVX_NUM_ROMAN_LOWER: aStr += 'i'; break;
//case ARABIC:
default: aStr += '1'; break;
}
//#i61007# order of captions
if( bOrderNumberingFirst )
{
aStr += aNumberingSeparatorED.GetText();
aStr += sFldTypeName;
}
}
if( sCaption.Len() > 0 )
{
aStr += aSepEdit.GetText();
}
}
aStr += sCaption;
// do preview!
aPrevWin.SetPreviewText( aStr );
}
void SwCaptionDialog::CheckButtonWidth()
{
// check if the text of the AutoCaption button is to wide
const long nOffset = 10;
String sText = aAutoCaptionButton.GetText();
long nTxtW = aAutoCaptionButton.GetTextWidth( sText );
if ( sText.Search( '~' ) == STRING_NOTFOUND )
nTxtW += nOffset;
long nBtnW = aAutoCaptionButton.GetSizePixel().Width();
if ( nTxtW > nBtnW )
{
// then broaden all buttons
Size aNewSize;
long nDelta = Max( ( nTxtW - nBtnW ), nOffset );
Button* pBtns[] =
{
&aOKButton, &aCancelButton, &aHelpButton, &aAutoCaptionButton, &aOptionButton
};
Button** pCurrent = pBtns;
for ( sal_uInt32 i = 0; i < sizeof( pBtns ) / sizeof( pBtns[ 0 ] ); ++i, ++pCurrent )
{
aNewSize = (*pCurrent)->GetSizePixel();
aNewSize.Width() += nDelta;
(*pCurrent)->SetSizePixel( aNewSize );
}
// and the dialog
aNewSize = GetOutputSizePixel();
aNewSize.Width() += nDelta;
SetOutputSizePixel( aNewSize );
}
}
SwCaptionDialog::~SwCaptionDialog()
{
delete pMgr;
}
/* */
SwSequenceOptionDialog::SwSequenceOptionDialog( Window *pParent, SwView &rV,
const String& rSeqFldType )
: SvxStandardDialog( pParent, SW_RES(DLG_SEQUENCE_OPTION) ),
aFlHeader (this, SW_RES(FL_HEADER )),
aFtLevel (this, SW_RES(FT_LEVEL )),
aLbLevel (this, SW_RES(LB_LEVEL )),
aFtDelim (this, SW_RES(FT_SEPARATOR )),
aEdDelim (this, SW_RES(ED_SEPARATOR )),
aFlCatAndFrame (this, SW_RES(FL_CATANDFRAME)),
aFtCharStyle (this, SW_RES(FT_CHARSTYLE )),
aLbCharStyle (this, SW_RES(LB_CHARSTYLE )),
aApplyBorderAndShadowCB(this, SW_RES(CB_APPLYBAS)),
aFlCaptionOrder(this, SW_RES( FL_ORDER )), //#i61007# order of captions
aFtCaptionOrder(this, SW_RES( FT_ORDER )),
aLbCaptionOrder(this, SW_RES( LB_ORDER )),
aOKButton (this, SW_RES(BTN_OK )),
aCancelButton (this, SW_RES(BTN_CANCEL )),
aHelpButton (this, SW_RES(BTN_HELP )),
rView( rV ),
aFldTypeName( rSeqFldType )
{
FreeResource();
SwWrtShell &rSh = rView.GetWrtShell();
for( sal_uInt16 n = 0; n < MAXLEVEL; ++n )
aLbLevel.InsertEntry( String::CreateFromInt32(n+1) );
SwSetExpFieldType* pFldType = (SwSetExpFieldType*)rSh.GetFldType(
RES_SETEXPFLD, aFldTypeName );
sal_Unicode nLvl = MAXLEVEL;
String sDelim( String::CreateFromAscii( ": " ) );
if( pFldType )
{
sDelim = pFldType->GetDelimiter();
nLvl = pFldType->GetOutlineLvl();
}
aLbLevel.SelectEntryPos( nLvl < MAXLEVEL ? nLvl + 1 : 0 );
aEdDelim.SetText( sDelim );
::FillCharStyleListBox( aLbCharStyle, rView.GetDocShell(), sal_True, sal_True );
aLbCharStyle.SelectEntryPos( 0 );
}
SwSequenceOptionDialog::~SwSequenceOptionDialog()
{
}
void SwSequenceOptionDialog::Apply()
{
SwWrtShell &rSh = rView.GetWrtShell();
SwSetExpFieldType* pFldType = (SwSetExpFieldType*)rSh.GetFldType(
RES_SETEXPFLD, aFldTypeName );
sal_Int8 nLvl = (sal_Int8)( aLbLevel.GetSelectEntryPos() - 1);
sal_Unicode cDelim = aEdDelim.GetText().GetChar(0);
sal_Bool bUpdate = sal_True;
if( pFldType )
{
pFldType->SetDelimiter( cDelim );
pFldType->SetOutlineLvl( nLvl );
}
else if( aFldTypeName.Len() && nLvl < MAXLEVEL )
{
// dann muessen wir das mal einfuegen
SwSetExpFieldType aFldType( rSh.GetDoc(), aFldTypeName, nsSwGetSetExpType::GSE_SEQ );
aFldType.SetDelimiter( cDelim );
aFldType.SetOutlineLvl( nLvl );
rSh.InsertFldType( aFldType );
}
else
bUpdate = sal_False;
if( bUpdate )
rSh.UpdateExpFlds();
}
/*-- 24.08.2004 16:13:53---------------------------------------------------
-----------------------------------------------------------------------*/
String SwSequenceOptionDialog::GetCharacterStyle() const
{
String sRet;
if(aLbCharStyle.GetSelectEntryPos())
sRet = aLbCharStyle.GetSelectEntry();
return sRet;
}
/*-- 24.08.2004 16:14:00---------------------------------------------------
-----------------------------------------------------------------------*/
void SwSequenceOptionDialog::SetCharacterStyle(const String& rStyle)
{
aLbCharStyle.SelectEntryPos(0);
aLbCharStyle.SelectEntry(rStyle);
}
long SwCaptionDialog::CategoryBox::PreNotify( NotifyEvent& rNEvt )
{
long nHandled = 0;
if( rNEvt.GetType() == EVENT_KEYINPUT &&
rNEvt.GetKeyEvent()->GetCharCode() )
{
const KeyEvent* pEvent = rNEvt.GetKeyEvent();
const KeyCode& rKeyCode = pEvent->GetKeyCode();
sal_uInt16 nTmpCode = rKeyCode.GetFullCode() & ~KEY_ALLMODTYPE;
if(nTmpCode != KEY_BACKSPACE && nTmpCode != KEY_RETURN
&& nTmpCode != KEY_TAB && nTmpCode != KEY_ESCAPE)
{
String sKey( pEvent->GetCharCode() ), sName( GetText() );
Selection aSel( GetSelection() );
aSel.Justify();
if( aSel.Len() )
sName.Erase( (xub_StrLen)aSel.Min(), (xub_StrLen)aSel.Len() );
sName.Insert( sKey, (xub_StrLen)aSel.Min() );
if( !SwCalc::IsValidVarName( sName ))
nHandled = 1;
}
}
if(!nHandled)
nHandled = ComboBox::PreNotify( rNEvt );
return nHandled;
}
/*-- 01.11.2007 10:45:51---------------------------------------------------
//#i61007# order of captions
-----------------------------------------------------------------------*/
void lcl_MoveH( Window& rWin, sal_Int32 nMove )
{
Point aPos( rWin.GetPosPixel() );
aPos.Y() += nMove;
rWin.SetPosPixel(aPos);
}
void SwCaptionDialog::ApplyCaptionOrder()
{
//have the settings changed?
bool bVisible = aNumberingSeparatorED.IsVisible() != 0;
if( bOrderNumberingFirst != bVisible )
{
sal_Int32 nDiff = aPosBox.GetPosPixel().Y() - aSepEdit.GetPosPixel().Y();
aNumberingSeparatorFT.Show( bOrderNumberingFirst );
aNumberingSeparatorED.Show( bOrderNumberingFirst );
if( !bOrderNumberingFirst )
{
nDiff = -nDiff;
}
lcl_MoveH( aCategoryText, 2 * nDiff);
lcl_MoveH( aFormatText, -nDiff );
lcl_MoveH( aFormatBox, -nDiff );
lcl_MoveH( aCategoryBox, 2 * nDiff);
lcl_MoveH( aSepText, nDiff );
lcl_MoveH( aSepEdit, nDiff );
lcl_MoveH( aPosText, nDiff );
lcl_MoveH( aPosBox, nDiff );
lcl_MoveH( aPrevWin, nDiff );
Size aDlgSize( GetSizePixel() );
aDlgSize.Height() += nDiff;
SetSizePixel( aDlgSize );
}
}