1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 29*cdf0e10cSrcweir #include "precompiled_sw.hxx" 30*cdf0e10cSrcweir #ifdef SW_DLLIMPLEMENTATION 31*cdf0e10cSrcweir #undef SW_DLLIMPLEMENTATION 32*cdf0e10cSrcweir #endif 33*cdf0e10cSrcweir 34*cdf0e10cSrcweir 35*cdf0e10cSrcweir 36*cdf0e10cSrcweir #define USE_NUMTABPAGES 37*cdf0e10cSrcweir #define _NUM_CXX 38*cdf0e10cSrcweir #include <hintids.hxx> 39*cdf0e10cSrcweir 40*cdf0e10cSrcweir #ifndef _MSGBOX_HXX //autogen 41*cdf0e10cSrcweir #include <vcl/msgbox.hxx> 42*cdf0e10cSrcweir #endif 43*cdf0e10cSrcweir #include <tools/urlobj.hxx> 44*cdf0e10cSrcweir #include <sfx2/app.hxx> 45*cdf0e10cSrcweir #include <sfx2/imgmgr.hxx> 46*cdf0e10cSrcweir #include <svx/gallery.hxx> 47*cdf0e10cSrcweir #include <editeng/brshitem.hxx> 48*cdf0e10cSrcweir #include <editeng/lrspitem.hxx> 49*cdf0e10cSrcweir #include <editeng/numitem.hxx> 50*cdf0e10cSrcweir #include <swvset.hxx> 51*cdf0e10cSrcweir #include <swmodule.hxx> 52*cdf0e10cSrcweir #include <wrtsh.hxx> 53*cdf0e10cSrcweir #ifndef _DOCSH_HXX 54*cdf0e10cSrcweir #include <docsh.hxx> 55*cdf0e10cSrcweir #endif 56*cdf0e10cSrcweir #ifndef _WVIEW_HXX 57*cdf0e10cSrcweir #include <wview.hxx> 58*cdf0e10cSrcweir #endif 59*cdf0e10cSrcweir #include <uitool.hxx> 60*cdf0e10cSrcweir #ifndef _WDOCSH_HXX 61*cdf0e10cSrcweir #include <wdocsh.hxx> 62*cdf0e10cSrcweir #endif 63*cdf0e10cSrcweir #include <uiitems.hxx> 64*cdf0e10cSrcweir #include <docstyle.hxx> 65*cdf0e10cSrcweir #include <charfmt.hxx> 66*cdf0e10cSrcweir #include <uinums.hxx> 67*cdf0e10cSrcweir #include <poolfmt.hxx> 68*cdf0e10cSrcweir #include <shellres.hxx> 69*cdf0e10cSrcweir #include <outline.hxx> 70*cdf0e10cSrcweir #include <num.hxx> 71*cdf0e10cSrcweir #include <viewopt.hxx> 72*cdf0e10cSrcweir #include <frmmgr.hxx> 73*cdf0e10cSrcweir 74*cdf0e10cSrcweir #ifndef _MISC_HRC 75*cdf0e10cSrcweir #include <misc.hrc> 76*cdf0e10cSrcweir #endif 77*cdf0e10cSrcweir #ifndef _FRMUI_HRC 78*cdf0e10cSrcweir #include <frmui.hrc> 79*cdf0e10cSrcweir #endif 80*cdf0e10cSrcweir #ifndef _NUM_HRC 81*cdf0e10cSrcweir #include <num.hrc> 82*cdf0e10cSrcweir #endif 83*cdf0e10cSrcweir #ifndef _GLOBALS_HRC 84*cdf0e10cSrcweir #include <globals.hrc> 85*cdf0e10cSrcweir #endif 86*cdf0e10cSrcweir #ifndef _HELPID_H 87*cdf0e10cSrcweir #include <helpid.h> 88*cdf0e10cSrcweir #endif 89*cdf0e10cSrcweir #include <SwStyleNameMapper.hxx> 90*cdf0e10cSrcweir #include <svx/svxids.hrc> 91*cdf0e10cSrcweir #include <svx/dialogs.hrc> 92*cdf0e10cSrcweir #include <svl/stritem.hxx> 93*cdf0e10cSrcweir #include <svl/aeitem.hxx> 94*cdf0e10cSrcweir #include <svl/slstitm.hxx> 95*cdf0e10cSrcweir 96*cdf0e10cSrcweir static sal_Bool bLastRelative = sal_False; 97*cdf0e10cSrcweir 98*cdf0e10cSrcweir /*-----------------03.12.97 10:02------------------- 99*cdf0e10cSrcweir 100*cdf0e10cSrcweir --------------------------------------------------*/ 101*cdf0e10cSrcweir SwNumPositionTabPage::SwNumPositionTabPage(Window* pParent, 102*cdf0e10cSrcweir const SfxItemSet& rSet) : 103*cdf0e10cSrcweir SfxTabPage( pParent, SW_RES( TP_NUM_POSITION ), rSet ), 104*cdf0e10cSrcweir aLevelFL( this, SW_RES(FL_LEVEL )), 105*cdf0e10cSrcweir aLevelLB( this, SW_RES(LB_LEVEL )), 106*cdf0e10cSrcweir aPositionFL( this, SW_RES(FL_POSITION )), 107*cdf0e10cSrcweir 108*cdf0e10cSrcweir aDistBorderFT( this, SW_RES(FT_BORDERDIST )), 109*cdf0e10cSrcweir aDistBorderMF( this, SW_RES(MF_BORDERDIST )), 110*cdf0e10cSrcweir aRelativeCB( this, SW_RES(CB_RELATIVE )), 111*cdf0e10cSrcweir aIndentFT( this, SW_RES(FT_INDENT )), 112*cdf0e10cSrcweir aIndentMF( this, SW_RES(MF_INDENT )), 113*cdf0e10cSrcweir aDistNumFT( this, SW_RES(FT_NUMDIST )), 114*cdf0e10cSrcweir aDistNumMF( this, SW_RES(MF_NUMDIST )), 115*cdf0e10cSrcweir aAlignFT( this, SW_RES(FT_ALIGN )), 116*cdf0e10cSrcweir aAlignLB( this, SW_RES(LB_ALIGN )), 117*cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 118*cdf0e10cSrcweir aLabelFollowedByFT( this, SW_RES(FT_LABEL_FOLLOWED_BY) ), 119*cdf0e10cSrcweir aLabelFollowedByLB( this, SW_RES(LB_LABEL_FOLLOWED_BY) ), 120*cdf0e10cSrcweir aListtabFT( this, SW_RES(FT_LISTTAB) ), 121*cdf0e10cSrcweir aListtabMF( this, SW_RES(MF_LISTTAB) ), 122*cdf0e10cSrcweir aAlign2FT( this, SW_RES(FT_ALIGN_2) ), 123*cdf0e10cSrcweir aAlign2LB( this, SW_RES(LB_ALIGN_2) ), 124*cdf0e10cSrcweir aAlignedAtFT( this, SW_RES(FT_ALIGNED_AT) ), 125*cdf0e10cSrcweir aAlignedAtMF( this, SW_RES(MF_ALIGNED_AT) ), 126*cdf0e10cSrcweir aIndentAtFT( this, SW_RES(FT_INDENT_AT) ), 127*cdf0e10cSrcweir aIndentAtMF( this, SW_RES(MF_INDENT_AT) ), 128*cdf0e10cSrcweir // <-- 129*cdf0e10cSrcweir aStandardPB( this, SW_RES(PB_STANDARD )), 130*cdf0e10cSrcweir 131*cdf0e10cSrcweir aPreviewWIN( this, SW_RES(WIN_PREVIEW )), 132*cdf0e10cSrcweir 133*cdf0e10cSrcweir pActNum(0), 134*cdf0e10cSrcweir pSaveNum(0), 135*cdf0e10cSrcweir pWrtSh(0), 136*cdf0e10cSrcweir pOutlineDlg(0), 137*cdf0e10cSrcweir bPreset( sal_False ), 138*cdf0e10cSrcweir bInInintControl(sal_False), 139*cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 140*cdf0e10cSrcweir bLabelAlignmentPosAndSpaceModeActive( false ) 141*cdf0e10cSrcweir // <-- 142*cdf0e10cSrcweir { 143*cdf0e10cSrcweir FreeResource(); 144*cdf0e10cSrcweir SetExchangeSupport(); 145*cdf0e10cSrcweir aPreviewWIN.SetBackground(Wallpaper(Color(COL_TRANSPARENT))); 146*cdf0e10cSrcweir 147*cdf0e10cSrcweir aStandardPB.SetAccessibleRelationMemberOf(&aPositionFL); 148*cdf0e10cSrcweir 149*cdf0e10cSrcweir 150*cdf0e10cSrcweir aRelativeCB.Check(); 151*cdf0e10cSrcweir aAlignLB.SetSelectHdl(LINK(this, SwNumPositionTabPage, EditModifyHdl)); 152*cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 153*cdf0e10cSrcweir aAlign2LB.SetSelectHdl(LINK(this, SwNumPositionTabPage, EditModifyHdl)); 154*cdf0e10cSrcweir for ( sal_uInt16 i = 0; i < aAlignLB.GetEntryCount(); ++i ) 155*cdf0e10cSrcweir { 156*cdf0e10cSrcweir aAlign2LB.InsertEntry( aAlignLB.GetEntry( i ) ); 157*cdf0e10cSrcweir } 158*cdf0e10cSrcweir aAlign2LB.SetDropDownLineCount( aAlign2LB.GetEntryCount() ); 159*cdf0e10cSrcweir aAlign2FT.SetText( aAlignFT.GetText() ); 160*cdf0e10cSrcweir // <-- 161*cdf0e10cSrcweir 162*cdf0e10cSrcweir Link aLk = LINK(this, SwNumPositionTabPage, DistanceHdl); 163*cdf0e10cSrcweir aDistBorderMF.SetUpHdl(aLk); 164*cdf0e10cSrcweir aDistNumMF.SetUpHdl(aLk); 165*cdf0e10cSrcweir aIndentMF.SetUpHdl(aLk); 166*cdf0e10cSrcweir aDistBorderMF.SetDownHdl(aLk); 167*cdf0e10cSrcweir aDistNumMF.SetDownHdl(aLk); 168*cdf0e10cSrcweir aIndentMF.SetDownHdl(aLk); 169*cdf0e10cSrcweir aDistBorderMF.SetLoseFocusHdl(aLk); 170*cdf0e10cSrcweir aDistNumMF.SetLoseFocusHdl(aLk); 171*cdf0e10cSrcweir aIndentMF.SetLoseFocusHdl(aLk); 172*cdf0e10cSrcweir 173*cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 174*cdf0e10cSrcweir aLabelFollowedByLB.SetDropDownLineCount( aLabelFollowedByLB.GetEntryCount() ); 175*cdf0e10cSrcweir aLabelFollowedByLB.SetSelectHdl( LINK(this, SwNumPositionTabPage, LabelFollowedByHdl_Impl) ); 176*cdf0e10cSrcweir 177*cdf0e10cSrcweir aLk = LINK(this, SwNumPositionTabPage, ListtabPosHdl_Impl); 178*cdf0e10cSrcweir aListtabMF.SetUpHdl(aLk); 179*cdf0e10cSrcweir aListtabMF.SetDownHdl(aLk); 180*cdf0e10cSrcweir aListtabMF.SetLoseFocusHdl(aLk); 181*cdf0e10cSrcweir 182*cdf0e10cSrcweir aLk = LINK(this, SwNumPositionTabPage, AlignAtHdl_Impl); 183*cdf0e10cSrcweir aAlignedAtMF.SetUpHdl(aLk); 184*cdf0e10cSrcweir aAlignedAtMF.SetDownHdl(aLk); 185*cdf0e10cSrcweir aAlignedAtMF.SetLoseFocusHdl(aLk); 186*cdf0e10cSrcweir 187*cdf0e10cSrcweir aLk = LINK(this, SwNumPositionTabPage, IndentAtHdl_Impl); 188*cdf0e10cSrcweir aIndentAtMF.SetUpHdl(aLk); 189*cdf0e10cSrcweir aIndentAtMF.SetDownHdl(aLk); 190*cdf0e10cSrcweir aIndentAtMF.SetLoseFocusHdl(aLk); 191*cdf0e10cSrcweir // <-- 192*cdf0e10cSrcweir 193*cdf0e10cSrcweir aLevelLB.SetSelectHdl(LINK(this, SwNumPositionTabPage, LevelHdl)); 194*cdf0e10cSrcweir aRelativeCB.SetClickHdl(LINK(this, SwNumPositionTabPage, RelativeHdl)); 195*cdf0e10cSrcweir aStandardPB.SetClickHdl(LINK(this, SwNumPositionTabPage, StandardHdl)); 196*cdf0e10cSrcweir 197*cdf0e10cSrcweir // Ebenen einfuegen 198*cdf0e10cSrcweir for(sal_uInt16 i = 1; i <= MAXLEVEL; i++) 199*cdf0e10cSrcweir aLevelLB.InsertEntry(String::CreateFromInt32(i)); 200*cdf0e10cSrcweir String sEntry(String::CreateFromAscii("1 - ")); 201*cdf0e10cSrcweir sEntry += String::CreateFromInt32(MAXLEVEL); 202*cdf0e10cSrcweir aLevelLB.InsertEntry(sEntry); 203*cdf0e10cSrcweir aLevelLB.SelectEntry(sEntry); 204*cdf0e10cSrcweir 205*cdf0e10cSrcweir aRelativeCB.Check(bLastRelative); 206*cdf0e10cSrcweir aPreviewWIN.SetPositionMode(); 207*cdf0e10cSrcweir } 208*cdf0e10cSrcweir /*-----------------03.12.97 10:02------------------- 209*cdf0e10cSrcweir 210*cdf0e10cSrcweir --------------------------------------------------*/ 211*cdf0e10cSrcweir SwNumPositionTabPage::~SwNumPositionTabPage() 212*cdf0e10cSrcweir { 213*cdf0e10cSrcweir delete pActNum; 214*cdf0e10cSrcweir } 215*cdf0e10cSrcweir /*-----------------03.12.97 10:06------------------- 216*cdf0e10cSrcweir 217*cdf0e10cSrcweir --------------------------------------------------*/ 218*cdf0e10cSrcweir void SwNumPositionTabPage::InitControls() 219*cdf0e10cSrcweir { 220*cdf0e10cSrcweir bInInintControl = sal_True; 221*cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 222*cdf0e10cSrcweir const bool bRelative = !bLabelAlignmentPosAndSpaceModeActive && 223*cdf0e10cSrcweir aRelativeCB.IsEnabled() && aRelativeCB.IsChecked(); 224*cdf0e10cSrcweir const bool bSingleSelection = aLevelLB.GetSelectEntryCount() == 1 && 225*cdf0e10cSrcweir USHRT_MAX != nActNumLvl; 226*cdf0e10cSrcweir 227*cdf0e10cSrcweir aDistBorderMF.Enable( !bLabelAlignmentPosAndSpaceModeActive && 228*cdf0e10cSrcweir ( bSingleSelection || bRelative || pOutlineDlg != 0 ) ); 229*cdf0e10cSrcweir aDistBorderFT.Enable( !bLabelAlignmentPosAndSpaceModeActive && 230*cdf0e10cSrcweir ( bSingleSelection || bRelative || pOutlineDlg != 0 ) ); 231*cdf0e10cSrcweir // <-- 232*cdf0e10cSrcweir 233*cdf0e10cSrcweir bool bSetDistEmpty = false; 234*cdf0e10cSrcweir bool bSameDistBorderNum = !bLabelAlignmentPosAndSpaceModeActive; 235*cdf0e10cSrcweir bool bSameDist = !bLabelAlignmentPosAndSpaceModeActive; 236*cdf0e10cSrcweir bool bSameIndent = !bLabelAlignmentPosAndSpaceModeActive; 237*cdf0e10cSrcweir bool bSameAdjust = true; 238*cdf0e10cSrcweir 239*cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 240*cdf0e10cSrcweir bool bSameLabelFollowedBy = bLabelAlignmentPosAndSpaceModeActive; 241*cdf0e10cSrcweir bool bSameListtab = bLabelAlignmentPosAndSpaceModeActive; 242*cdf0e10cSrcweir bool bSameAlignAt = bLabelAlignmentPosAndSpaceModeActive; 243*cdf0e10cSrcweir bool bSameIndentAt = bLabelAlignmentPosAndSpaceModeActive; 244*cdf0e10cSrcweir // <-- 245*cdf0e10cSrcweir 246*cdf0e10cSrcweir const SwNumFmt* aNumFmtArr[MAXLEVEL]; 247*cdf0e10cSrcweir const SwFmtVertOrient* pFirstOrient = 0; 248*cdf0e10cSrcweir sal_uInt16 nMask = 1; 249*cdf0e10cSrcweir sal_uInt16 nLvl = USHRT_MAX; 250*cdf0e10cSrcweir long nFirstBorderText = 0; 251*cdf0e10cSrcweir long nFirstBorderTextRelative = -1; 252*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < MAXLEVEL; i++) 253*cdf0e10cSrcweir { 254*cdf0e10cSrcweir aNumFmtArr[i] = &pActNum->Get(i); 255*cdf0e10cSrcweir if(nActNumLvl & nMask) 256*cdf0e10cSrcweir { 257*cdf0e10cSrcweir if(USHRT_MAX == nLvl) 258*cdf0e10cSrcweir { 259*cdf0e10cSrcweir nLvl = i; 260*cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 261*cdf0e10cSrcweir if ( !bLabelAlignmentPosAndSpaceModeActive ) 262*cdf0e10cSrcweir { 263*cdf0e10cSrcweir pFirstOrient = aNumFmtArr[nLvl]->GetGraphicOrientation(); 264*cdf0e10cSrcweir nFirstBorderText = nLvl > 0 ? 265*cdf0e10cSrcweir aNumFmtArr[nLvl]->GetAbsLSpace() + aNumFmtArr[nLvl]->GetFirstLineOffset() - 266*cdf0e10cSrcweir aNumFmtArr[nLvl - 1]->GetAbsLSpace() + aNumFmtArr[nLvl - 1]->GetFirstLineOffset(): 267*cdf0e10cSrcweir aNumFmtArr[nLvl]->GetAbsLSpace() + aNumFmtArr[nLvl]->GetFirstLineOffset(); 268*cdf0e10cSrcweir } 269*cdf0e10cSrcweir // <-- 270*cdf0e10cSrcweir } 271*cdf0e10cSrcweir 272*cdf0e10cSrcweir if( i > nLvl) 273*cdf0e10cSrcweir { 274*cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 275*cdf0e10cSrcweir bSameAdjust &= aNumFmtArr[i]->GetNumAdjust() == aNumFmtArr[nLvl]->GetNumAdjust(); 276*cdf0e10cSrcweir if ( !bLabelAlignmentPosAndSpaceModeActive ) 277*cdf0e10cSrcweir { 278*cdf0e10cSrcweir if(bRelative) 279*cdf0e10cSrcweir { 280*cdf0e10cSrcweir if(nFirstBorderTextRelative == -1) 281*cdf0e10cSrcweir nFirstBorderTextRelative = 282*cdf0e10cSrcweir (aNumFmtArr[i]->GetAbsLSpace() + aNumFmtArr[i]->GetFirstLineOffset() - 283*cdf0e10cSrcweir aNumFmtArr[i - 1]->GetAbsLSpace() + aNumFmtArr[i - 1]->GetFirstLineOffset()); 284*cdf0e10cSrcweir else 285*cdf0e10cSrcweir bSameDistBorderNum &= nFirstBorderTextRelative == 286*cdf0e10cSrcweir (aNumFmtArr[i]->GetAbsLSpace() + aNumFmtArr[i]->GetFirstLineOffset() - 287*cdf0e10cSrcweir aNumFmtArr[i - 1]->GetAbsLSpace() + aNumFmtArr[i - 1]->GetFirstLineOffset()); 288*cdf0e10cSrcweir 289*cdf0e10cSrcweir } 290*cdf0e10cSrcweir else 291*cdf0e10cSrcweir { 292*cdf0e10cSrcweir bSameDistBorderNum &= 293*cdf0e10cSrcweir aNumFmtArr[i]->GetAbsLSpace() - aNumFmtArr[i]->GetFirstLineOffset() == 294*cdf0e10cSrcweir aNumFmtArr[i - 1]->GetAbsLSpace() - aNumFmtArr[i - 1]->GetFirstLineOffset(); 295*cdf0e10cSrcweir } 296*cdf0e10cSrcweir 297*cdf0e10cSrcweir bSameDist &= aNumFmtArr[i]->GetCharTextDistance() == aNumFmtArr[nLvl]->GetCharTextDistance(); 298*cdf0e10cSrcweir bSameIndent &= aNumFmtArr[i]->GetFirstLineOffset() == aNumFmtArr[nLvl]->GetFirstLineOffset(); 299*cdf0e10cSrcweir } 300*cdf0e10cSrcweir else 301*cdf0e10cSrcweir { 302*cdf0e10cSrcweir bSameLabelFollowedBy &= 303*cdf0e10cSrcweir aNumFmtArr[i]->GetLabelFollowedBy() == aNumFmtArr[nLvl]->GetLabelFollowedBy(); 304*cdf0e10cSrcweir bSameListtab &= 305*cdf0e10cSrcweir aNumFmtArr[i]->GetListtabPos() == aNumFmtArr[nLvl]->GetListtabPos(); 306*cdf0e10cSrcweir bSameAlignAt &= 307*cdf0e10cSrcweir ( ( aNumFmtArr[i]->GetIndentAt() + aNumFmtArr[i]->GetFirstLineIndent() ) 308*cdf0e10cSrcweir == ( aNumFmtArr[nLvl]->GetIndentAt() + aNumFmtArr[nLvl]->GetFirstLineIndent() ) ); 309*cdf0e10cSrcweir bSameIndentAt &= 310*cdf0e10cSrcweir aNumFmtArr[i]->GetIndentAt() == aNumFmtArr[nLvl]->GetIndentAt(); 311*cdf0e10cSrcweir } 312*cdf0e10cSrcweir // <-- 313*cdf0e10cSrcweir 314*cdf0e10cSrcweir } 315*cdf0e10cSrcweir } 316*cdf0e10cSrcweir nMask <<= 1; 317*cdf0e10cSrcweir 318*cdf0e10cSrcweir } 319*cdf0e10cSrcweir if(bSameDistBorderNum) 320*cdf0e10cSrcweir { 321*cdf0e10cSrcweir long nDistBorderNum; 322*cdf0e10cSrcweir if(bRelative) 323*cdf0e10cSrcweir { 324*cdf0e10cSrcweir nDistBorderNum = (long)aNumFmtArr[nLvl]->GetAbsLSpace()+ aNumFmtArr[nLvl]->GetFirstLineOffset(); 325*cdf0e10cSrcweir if(nLvl) 326*cdf0e10cSrcweir nDistBorderNum -= (long)aNumFmtArr[nLvl - 1]->GetAbsLSpace()+ aNumFmtArr[nLvl - 1]->GetFirstLineOffset(); 327*cdf0e10cSrcweir } 328*cdf0e10cSrcweir else 329*cdf0e10cSrcweir { 330*cdf0e10cSrcweir nDistBorderNum = (long)aNumFmtArr[nLvl]->GetAbsLSpace()+ aNumFmtArr[nLvl]->GetFirstLineOffset(); 331*cdf0e10cSrcweir } 332*cdf0e10cSrcweir aDistBorderMF.SetValue(aDistBorderMF.Normalize(nDistBorderNum),FUNIT_TWIP); 333*cdf0e10cSrcweir } 334*cdf0e10cSrcweir else 335*cdf0e10cSrcweir bSetDistEmpty = sal_True; 336*cdf0e10cSrcweir 337*cdf0e10cSrcweir if(bSameDist) 338*cdf0e10cSrcweir aDistNumMF .SetValue(aDistNumMF.Normalize(aNumFmtArr[nLvl]->GetCharTextDistance()), FUNIT_TWIP); 339*cdf0e10cSrcweir else 340*cdf0e10cSrcweir aDistNumMF.SetText(aEmptyStr); 341*cdf0e10cSrcweir if(bSameIndent) 342*cdf0e10cSrcweir aIndentMF.SetValue(aIndentMF.Normalize(-aNumFmtArr[nLvl]->GetFirstLineOffset()), FUNIT_TWIP); 343*cdf0e10cSrcweir else 344*cdf0e10cSrcweir aIndentMF.SetText(aEmptyStr); 345*cdf0e10cSrcweir 346*cdf0e10cSrcweir if(bSameAdjust) 347*cdf0e10cSrcweir { 348*cdf0e10cSrcweir sal_uInt16 nPos = 1; // zentriert 349*cdf0e10cSrcweir if(aNumFmtArr[nLvl]->GetNumAdjust() == SVX_ADJUST_LEFT) 350*cdf0e10cSrcweir nPos = 0; 351*cdf0e10cSrcweir else if(aNumFmtArr[nLvl]->GetNumAdjust() == SVX_ADJUST_RIGHT) 352*cdf0e10cSrcweir nPos = 2; 353*cdf0e10cSrcweir aAlignLB.SelectEntryPos(nPos); 354*cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 355*cdf0e10cSrcweir aAlign2LB.SelectEntryPos( nPos ); 356*cdf0e10cSrcweir // <-- 357*cdf0e10cSrcweir } 358*cdf0e10cSrcweir else 359*cdf0e10cSrcweir { 360*cdf0e10cSrcweir aAlignLB.SetNoSelection(); 361*cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 362*cdf0e10cSrcweir aAlign2LB.SetNoSelection(); 363*cdf0e10cSrcweir // <-- 364*cdf0e10cSrcweir } 365*cdf0e10cSrcweir 366*cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 367*cdf0e10cSrcweir if ( bSameLabelFollowedBy ) 368*cdf0e10cSrcweir { 369*cdf0e10cSrcweir sal_uInt16 nPos = 0; // LISTTAB 370*cdf0e10cSrcweir if ( aNumFmtArr[nLvl]->GetLabelFollowedBy() == SvxNumberFormat::SPACE ) 371*cdf0e10cSrcweir { 372*cdf0e10cSrcweir nPos = 1; 373*cdf0e10cSrcweir } 374*cdf0e10cSrcweir else if ( aNumFmtArr[nLvl]->GetLabelFollowedBy() == SvxNumberFormat::NOTHING ) 375*cdf0e10cSrcweir { 376*cdf0e10cSrcweir nPos = 2; 377*cdf0e10cSrcweir } 378*cdf0e10cSrcweir aLabelFollowedByLB.SelectEntryPos( nPos ); 379*cdf0e10cSrcweir } 380*cdf0e10cSrcweir else 381*cdf0e10cSrcweir { 382*cdf0e10cSrcweir aLabelFollowedByLB.SetNoSelection(); 383*cdf0e10cSrcweir } 384*cdf0e10cSrcweir 385*cdf0e10cSrcweir if ( aNumFmtArr[nLvl]->GetLabelFollowedBy() == SvxNumberFormat::LISTTAB ) 386*cdf0e10cSrcweir { 387*cdf0e10cSrcweir aListtabFT.Enable( true ); 388*cdf0e10cSrcweir aListtabMF.Enable( true ); 389*cdf0e10cSrcweir if ( bSameListtab ) 390*cdf0e10cSrcweir { 391*cdf0e10cSrcweir aListtabMF.SetValue(aListtabMF.Normalize(aNumFmtArr[nLvl]->GetListtabPos()),FUNIT_TWIP); 392*cdf0e10cSrcweir } 393*cdf0e10cSrcweir else 394*cdf0e10cSrcweir { 395*cdf0e10cSrcweir aListtabMF.SetText(aEmptyStr); 396*cdf0e10cSrcweir } 397*cdf0e10cSrcweir } 398*cdf0e10cSrcweir else 399*cdf0e10cSrcweir { 400*cdf0e10cSrcweir aListtabFT.Enable( false ); 401*cdf0e10cSrcweir aListtabMF.Enable( false ); 402*cdf0e10cSrcweir aListtabMF.SetText(aEmptyStr); 403*cdf0e10cSrcweir } 404*cdf0e10cSrcweir 405*cdf0e10cSrcweir if ( bSameAlignAt ) 406*cdf0e10cSrcweir { 407*cdf0e10cSrcweir aAlignedAtMF.SetValue( 408*cdf0e10cSrcweir aAlignedAtMF.Normalize( aNumFmtArr[nLvl]->GetIndentAt() + 409*cdf0e10cSrcweir aNumFmtArr[nLvl]->GetFirstLineIndent()), 410*cdf0e10cSrcweir FUNIT_TWIP ); 411*cdf0e10cSrcweir } 412*cdf0e10cSrcweir else 413*cdf0e10cSrcweir { 414*cdf0e10cSrcweir aAlignedAtMF.SetText(aEmptyStr); 415*cdf0e10cSrcweir } 416*cdf0e10cSrcweir 417*cdf0e10cSrcweir if ( bSameIndentAt ) 418*cdf0e10cSrcweir { 419*cdf0e10cSrcweir aIndentAtMF.SetValue( 420*cdf0e10cSrcweir aIndentAtMF.Normalize( aNumFmtArr[nLvl]->GetIndentAt()), FUNIT_TWIP ); 421*cdf0e10cSrcweir } 422*cdf0e10cSrcweir else 423*cdf0e10cSrcweir { 424*cdf0e10cSrcweir aIndentAtMF.SetText(aEmptyStr); 425*cdf0e10cSrcweir } 426*cdf0e10cSrcweir // <-- 427*cdf0e10cSrcweir 428*cdf0e10cSrcweir if(sal_True == bSetDistEmpty) 429*cdf0e10cSrcweir aDistBorderMF.SetText(aEmptyStr); 430*cdf0e10cSrcweir 431*cdf0e10cSrcweir bInInintControl = sal_False; 432*cdf0e10cSrcweir } 433*cdf0e10cSrcweir 434*cdf0e10cSrcweir /*-----------------03.12.97 10:02------------------- 435*cdf0e10cSrcweir 436*cdf0e10cSrcweir --------------------------------------------------*/ 437*cdf0e10cSrcweir void SwNumPositionTabPage::ActivatePage(const SfxItemSet& ) 438*cdf0e10cSrcweir { 439*cdf0e10cSrcweir const SfxPoolItem* pItem; 440*cdf0e10cSrcweir sal_uInt16 nTmpNumLvl = 441*cdf0e10cSrcweir pOutlineDlg ? pOutlineDlg->GetActNumLevel() : 0; 442*cdf0e10cSrcweir const SfxItemSet* pExampleSet = GetTabDialog()->GetExampleSet(); 443*cdf0e10cSrcweir if(pExampleSet && pExampleSet->GetItemState(FN_PARAM_NUM_PRESET, sal_False, &pItem)) 444*cdf0e10cSrcweir { 445*cdf0e10cSrcweir bPreset = ((const SfxBoolItem*)pItem)->GetValue(); 446*cdf0e10cSrcweir } 447*cdf0e10cSrcweir // 448*cdf0e10cSrcweir bModified = (!pActNum->GetNumFmt( 0 ) || bPreset); 449*cdf0e10cSrcweir if(*pActNum != *pSaveNum || 450*cdf0e10cSrcweir nActNumLvl != nTmpNumLvl ) 451*cdf0e10cSrcweir { 452*cdf0e10cSrcweir *pActNum = *pSaveNum; 453*cdf0e10cSrcweir nActNumLvl = nTmpNumLvl; 454*cdf0e10cSrcweir sal_uInt16 nMask = 1; 455*cdf0e10cSrcweir aLevelLB.SetUpdateMode(sal_False); 456*cdf0e10cSrcweir aLevelLB.SetNoSelection(); 457*cdf0e10cSrcweir aLevelLB.SelectEntryPos( MAXLEVEL, nActNumLvl == USHRT_MAX); 458*cdf0e10cSrcweir if(nActNumLvl != USHRT_MAX) 459*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < MAXLEVEL; i++) 460*cdf0e10cSrcweir { 461*cdf0e10cSrcweir if(nActNumLvl & nMask) 462*cdf0e10cSrcweir aLevelLB.SelectEntryPos( i, sal_True); 463*cdf0e10cSrcweir nMask <<= 1 ; 464*cdf0e10cSrcweir } 465*cdf0e10cSrcweir aLevelLB.SetUpdateMode(sal_True); 466*cdf0e10cSrcweir 467*cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 468*cdf0e10cSrcweir InitPosAndSpaceMode(); 469*cdf0e10cSrcweir ShowControlsDependingOnPosAndSpaceMode(); 470*cdf0e10cSrcweir // <-- 471*cdf0e10cSrcweir 472*cdf0e10cSrcweir InitControls(); 473*cdf0e10cSrcweir } 474*cdf0e10cSrcweir aRelativeCB.Enable(1 != nActNumLvl); 475*cdf0e10cSrcweir aPreviewWIN.Invalidate(); 476*cdf0e10cSrcweir } 477*cdf0e10cSrcweir 478*cdf0e10cSrcweir /*-----------------03.12.97 10:02------------------- 479*cdf0e10cSrcweir 480*cdf0e10cSrcweir --------------------------------------------------*/ 481*cdf0e10cSrcweir int SwNumPositionTabPage::DeactivatePage(SfxItemSet *_pSet) 482*cdf0e10cSrcweir { 483*cdf0e10cSrcweir SwOutlineTabDialog::SetActNumLevel(nActNumLvl); 484*cdf0e10cSrcweir if(_pSet) 485*cdf0e10cSrcweir FillItemSet(*_pSet); 486*cdf0e10cSrcweir return sal_True; 487*cdf0e10cSrcweir 488*cdf0e10cSrcweir } 489*cdf0e10cSrcweir 490*cdf0e10cSrcweir /*-----------------03.12.97 10:02------------------- 491*cdf0e10cSrcweir 492*cdf0e10cSrcweir --------------------------------------------------*/ 493*cdf0e10cSrcweir sal_Bool SwNumPositionTabPage::FillItemSet( SfxItemSet& rSet ) 494*cdf0e10cSrcweir { 495*cdf0e10cSrcweir if(pOutlineDlg) 496*cdf0e10cSrcweir *pOutlineDlg->GetNumRule() = *pActNum; 497*cdf0e10cSrcweir else if(bModified && pActNum) 498*cdf0e10cSrcweir { 499*cdf0e10cSrcweir *pSaveNum = *pActNum; 500*cdf0e10cSrcweir rSet.Put(SwUINumRuleItem( *pSaveNum )); 501*cdf0e10cSrcweir rSet.Put(SfxBoolItem(FN_PARAM_NUM_PRESET, sal_False)); 502*cdf0e10cSrcweir } 503*cdf0e10cSrcweir return bModified; 504*cdf0e10cSrcweir } 505*cdf0e10cSrcweir 506*cdf0e10cSrcweir /*-----------------03.12.97 10:02------------------- 507*cdf0e10cSrcweir 508*cdf0e10cSrcweir --------------------------------------------------*/ 509*cdf0e10cSrcweir void SwNumPositionTabPage::Reset( const SfxItemSet& rSet ) 510*cdf0e10cSrcweir { 511*cdf0e10cSrcweir const SfxPoolItem* pItem; 512*cdf0e10cSrcweir if(pOutlineDlg) 513*cdf0e10cSrcweir { 514*cdf0e10cSrcweir pSaveNum = pOutlineDlg->GetNumRule(); 515*cdf0e10cSrcweir aLevelLB.EnableMultiSelection(sal_False); 516*cdf0e10cSrcweir } 517*cdf0e10cSrcweir else if(SFX_ITEM_SET == rSet.GetItemState(FN_PARAM_ACT_NUMBER, sal_False, &pItem)) 518*cdf0e10cSrcweir pSaveNum = ((SwUINumRuleItem*)pItem)->GetNumRule(); 519*cdf0e10cSrcweir 520*cdf0e10cSrcweir nActNumLvl = SwOutlineTabDialog::GetActNumLevel(); 521*cdf0e10cSrcweir sal_uInt16 nMask = 1; 522*cdf0e10cSrcweir aLevelLB.SetUpdateMode(sal_False); 523*cdf0e10cSrcweir aLevelLB.SetNoSelection(); 524*cdf0e10cSrcweir if(nActNumLvl == USHRT_MAX) 525*cdf0e10cSrcweir { 526*cdf0e10cSrcweir aLevelLB.SelectEntryPos( MAXLEVEL, sal_True); 527*cdf0e10cSrcweir } 528*cdf0e10cSrcweir else 529*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < MAXLEVEL; i++) 530*cdf0e10cSrcweir { 531*cdf0e10cSrcweir if(nActNumLvl & nMask) 532*cdf0e10cSrcweir aLevelLB.SelectEntryPos( i, sal_True); 533*cdf0e10cSrcweir nMask <<= 1; 534*cdf0e10cSrcweir } 535*cdf0e10cSrcweir aLevelLB.SetUpdateMode(sal_True); 536*cdf0e10cSrcweir 537*cdf0e10cSrcweir if(!pActNum) 538*cdf0e10cSrcweir pActNum = new SwNumRule(*pSaveNum); 539*cdf0e10cSrcweir else if(*pSaveNum != *pActNum) 540*cdf0e10cSrcweir *pActNum = *pSaveNum; 541*cdf0e10cSrcweir aPreviewWIN.SetNumRule(pActNum); 542*cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 543*cdf0e10cSrcweir InitPosAndSpaceMode(); 544*cdf0e10cSrcweir ShowControlsDependingOnPosAndSpaceMode(); 545*cdf0e10cSrcweir // <-- 546*cdf0e10cSrcweir InitControls(); 547*cdf0e10cSrcweir bModified = sal_False; 548*cdf0e10cSrcweir } 549*cdf0e10cSrcweir 550*cdf0e10cSrcweir // --> OD 2008-01-11 #newlistlevelattrs# 551*cdf0e10cSrcweir void SwNumPositionTabPage::InitPosAndSpaceMode() 552*cdf0e10cSrcweir { 553*cdf0e10cSrcweir if ( pActNum == 0 ) 554*cdf0e10cSrcweir { 555*cdf0e10cSrcweir DBG_ASSERT( false, 556*cdf0e10cSrcweir "<SwNumPositionTabPage::InitPosAndSpaceMode()> - misusage of method -> <pAktNum> has to be already set!" ); 557*cdf0e10cSrcweir return; 558*cdf0e10cSrcweir } 559*cdf0e10cSrcweir 560*cdf0e10cSrcweir SvxNumberFormat::SvxNumPositionAndSpaceMode ePosAndSpaceMode = 561*cdf0e10cSrcweir SvxNumberFormat::LABEL_ALIGNMENT; 562*cdf0e10cSrcweir sal_uInt16 nMask = 1; 563*cdf0e10cSrcweir for( sal_uInt16 i = 0; i < MAXLEVEL; ++i ) 564*cdf0e10cSrcweir { 565*cdf0e10cSrcweir if(nActNumLvl & nMask) 566*cdf0e10cSrcweir { 567*cdf0e10cSrcweir SvxNumberFormat aNumFmt( pActNum->Get(i) ); 568*cdf0e10cSrcweir ePosAndSpaceMode = aNumFmt.GetPositionAndSpaceMode(); 569*cdf0e10cSrcweir if ( ePosAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT ) 570*cdf0e10cSrcweir { 571*cdf0e10cSrcweir break; 572*cdf0e10cSrcweir } 573*cdf0e10cSrcweir } 574*cdf0e10cSrcweir nMask <<= 1; 575*cdf0e10cSrcweir } 576*cdf0e10cSrcweir 577*cdf0e10cSrcweir bLabelAlignmentPosAndSpaceModeActive = 578*cdf0e10cSrcweir ePosAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT; 579*cdf0e10cSrcweir } 580*cdf0e10cSrcweir 581*cdf0e10cSrcweir void SwNumPositionTabPage::ShowControlsDependingOnPosAndSpaceMode() 582*cdf0e10cSrcweir { 583*cdf0e10cSrcweir aDistBorderFT.Show( !bLabelAlignmentPosAndSpaceModeActive ); 584*cdf0e10cSrcweir aDistBorderMF.Show( !bLabelAlignmentPosAndSpaceModeActive ); 585*cdf0e10cSrcweir aRelativeCB.Show( !bLabelAlignmentPosAndSpaceModeActive ); 586*cdf0e10cSrcweir aIndentFT.Show( !bLabelAlignmentPosAndSpaceModeActive ); 587*cdf0e10cSrcweir aIndentMF.Show( !bLabelAlignmentPosAndSpaceModeActive ); 588*cdf0e10cSrcweir aDistNumFT.Show( !bLabelAlignmentPosAndSpaceModeActive ); 589*cdf0e10cSrcweir aDistNumMF.Show( !bLabelAlignmentPosAndSpaceModeActive ); 590*cdf0e10cSrcweir aAlignFT.Show( !bLabelAlignmentPosAndSpaceModeActive ); 591*cdf0e10cSrcweir aAlignLB.Show( !bLabelAlignmentPosAndSpaceModeActive ); 592*cdf0e10cSrcweir 593*cdf0e10cSrcweir aLabelFollowedByFT.Show( bLabelAlignmentPosAndSpaceModeActive ); 594*cdf0e10cSrcweir aLabelFollowedByLB.Show( bLabelAlignmentPosAndSpaceModeActive ); 595*cdf0e10cSrcweir aListtabFT.Show( bLabelAlignmentPosAndSpaceModeActive ); 596*cdf0e10cSrcweir aListtabMF.Show( bLabelAlignmentPosAndSpaceModeActive ); 597*cdf0e10cSrcweir aAlign2FT.Show( bLabelAlignmentPosAndSpaceModeActive ); 598*cdf0e10cSrcweir aAlign2LB.Show( bLabelAlignmentPosAndSpaceModeActive ); 599*cdf0e10cSrcweir aAlignedAtFT.Show( bLabelAlignmentPosAndSpaceModeActive ); 600*cdf0e10cSrcweir aAlignedAtMF.Show( bLabelAlignmentPosAndSpaceModeActive ); 601*cdf0e10cSrcweir aIndentAtFT.Show( bLabelAlignmentPosAndSpaceModeActive ); 602*cdf0e10cSrcweir aIndentAtMF.Show( bLabelAlignmentPosAndSpaceModeActive ); 603*cdf0e10cSrcweir } 604*cdf0e10cSrcweir // <-- 605*cdf0e10cSrcweir 606*cdf0e10cSrcweir /*-----------------03.12.97 10:02------------------- 607*cdf0e10cSrcweir 608*cdf0e10cSrcweir --------------------------------------------------*/ 609*cdf0e10cSrcweir SfxTabPage* SwNumPositionTabPage::Create( Window* pParent, 610*cdf0e10cSrcweir const SfxItemSet& rAttrSet) 611*cdf0e10cSrcweir { 612*cdf0e10cSrcweir return new SwNumPositionTabPage(pParent, rAttrSet); 613*cdf0e10cSrcweir } 614*cdf0e10cSrcweir 615*cdf0e10cSrcweir /*-----------------04.12.97 12:51------------------- 616*cdf0e10cSrcweir 617*cdf0e10cSrcweir --------------------------------------------------*/ 618*cdf0e10cSrcweir void SwNumPositionTabPage::SetWrtShell(SwWrtShell* pSh) 619*cdf0e10cSrcweir { 620*cdf0e10cSrcweir pWrtSh = pSh; 621*cdf0e10cSrcweir 622*cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 623*cdf0e10cSrcweir const SwTwips nWidth = pWrtSh->GetAnyCurRect(RECT_FRM).Width(); 624*cdf0e10cSrcweir 625*cdf0e10cSrcweir aDistBorderMF.SetMax(aDistBorderMF.Normalize( nWidth ), FUNIT_TWIP ); 626*cdf0e10cSrcweir aDistNumMF .SetMax(aDistNumMF .Normalize( nWidth ), FUNIT_TWIP ); 627*cdf0e10cSrcweir aIndentMF .SetMax(aIndentMF .Normalize( nWidth ), FUNIT_TWIP ); 628*cdf0e10cSrcweir // --> OD 2008-02-18 #newlistlevelattrs# 629*cdf0e10cSrcweir aListtabMF.SetMax(aListtabMF.Normalize( nWidth ), FUNIT_TWIP ); 630*cdf0e10cSrcweir aAlignedAtMF.SetMax(aAlignedAtMF.Normalize( nWidth ), FUNIT_TWIP ); 631*cdf0e10cSrcweir aIndentAtMF.SetMax(aIndentAtMF.Normalize( nWidth ), FUNIT_TWIP ); 632*cdf0e10cSrcweir // <-- 633*cdf0e10cSrcweir const SwTwips nLast2 = nWidth /2; 634*cdf0e10cSrcweir aDistBorderMF.SetLast( aDistBorderMF.Normalize( nLast2 ), FUNIT_TWIP ); 635*cdf0e10cSrcweir aDistNumMF .SetLast( aDistNumMF .Normalize( nLast2 ), FUNIT_TWIP ); 636*cdf0e10cSrcweir aIndentMF .SetLast( aIndentMF .Normalize( nLast2 ), FUNIT_TWIP ); 637*cdf0e10cSrcweir // --> OD 2008-02-18 #newlistlevelattrs# 638*cdf0e10cSrcweir aListtabMF.SetLast(aListtabMF.Normalize( nLast2 ), FUNIT_TWIP ); 639*cdf0e10cSrcweir aAlignedAtMF.SetLast(aAlignedAtMF.Normalize( nLast2 ), FUNIT_TWIP ); 640*cdf0e10cSrcweir aIndentAtMF.SetLast(aIndentAtMF.Normalize( nLast2 ), FUNIT_TWIP ); 641*cdf0e10cSrcweir // <-- 642*cdf0e10cSrcweir // <-- 643*cdf0e10cSrcweir 644*cdf0e10cSrcweir const SwRect& rPrtRect = pWrtSh->GetAnyCurRect(RECT_PAGE); 645*cdf0e10cSrcweir aPreviewWIN.SetPageWidth(rPrtRect.Width()); 646*cdf0e10cSrcweir FieldUnit eMetric = ::GetDfltMetric(0 != PTR_CAST(SwWebView, &pWrtSh->GetView())); 647*cdf0e10cSrcweir if(eMetric == FUNIT_MM) 648*cdf0e10cSrcweir { 649*cdf0e10cSrcweir aDistBorderMF .SetDecimalDigits(1); 650*cdf0e10cSrcweir aDistNumMF .SetDecimalDigits(1); 651*cdf0e10cSrcweir aIndentMF .SetDecimalDigits(1); 652*cdf0e10cSrcweir // --> OD 2008-02-18 #newlistlevelattrs# 653*cdf0e10cSrcweir aListtabMF.SetDecimalDigits(1); 654*cdf0e10cSrcweir aAlignedAtMF.SetDecimalDigits(1); 655*cdf0e10cSrcweir aIndentAtMF.SetDecimalDigits(1); 656*cdf0e10cSrcweir // <-- 657*cdf0e10cSrcweir } 658*cdf0e10cSrcweir aDistBorderMF .SetUnit( eMetric ); 659*cdf0e10cSrcweir aDistNumMF .SetUnit( eMetric ); 660*cdf0e10cSrcweir aIndentMF .SetUnit( eMetric ); 661*cdf0e10cSrcweir // --> OD 2008-02-18 #newlistlevelattrs# 662*cdf0e10cSrcweir aListtabMF.SetUnit( eMetric ); 663*cdf0e10cSrcweir aAlignedAtMF.SetUnit( eMetric ); 664*cdf0e10cSrcweir aIndentAtMF.SetUnit( eMetric ); 665*cdf0e10cSrcweir // <-- 666*cdf0e10cSrcweir } 667*cdf0e10cSrcweir 668*cdf0e10cSrcweir /*-----------------03.12.97 11:06------------------- 669*cdf0e10cSrcweir 670*cdf0e10cSrcweir --------------------------------------------------*/ 671*cdf0e10cSrcweir IMPL_LINK( SwNumPositionTabPage, EditModifyHdl, Edit *, EMPTYARG ) 672*cdf0e10cSrcweir { 673*cdf0e10cSrcweir sal_uInt16 nMask = 1; 674*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < MAXLEVEL; i++) 675*cdf0e10cSrcweir { 676*cdf0e10cSrcweir if(nActNumLvl & nMask) 677*cdf0e10cSrcweir { 678*cdf0e10cSrcweir SwNumFmt aNumFmt(pActNum->Get(i)); 679*cdf0e10cSrcweir 680*cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 681*cdf0e10cSrcweir const sal_uInt16 nPos = aAlignLB.IsVisible() 682*cdf0e10cSrcweir ? aAlignLB.GetSelectEntryPos() 683*cdf0e10cSrcweir : aAlign2LB.GetSelectEntryPos(); 684*cdf0e10cSrcweir // <-- 685*cdf0e10cSrcweir SvxAdjust eAdjust = SVX_ADJUST_CENTER; 686*cdf0e10cSrcweir if(nPos == 0) 687*cdf0e10cSrcweir eAdjust = SVX_ADJUST_LEFT; 688*cdf0e10cSrcweir else if(nPos == 2) 689*cdf0e10cSrcweir eAdjust = SVX_ADJUST_RIGHT; 690*cdf0e10cSrcweir aNumFmt.SetNumAdjust( eAdjust ); 691*cdf0e10cSrcweir pActNum->Set(i, aNumFmt); 692*cdf0e10cSrcweir } 693*cdf0e10cSrcweir nMask <<= 1; 694*cdf0e10cSrcweir } 695*cdf0e10cSrcweir SetModified(); 696*cdf0e10cSrcweir return 0; 697*cdf0e10cSrcweir } 698*cdf0e10cSrcweir /*-----------------03.12.97 11:11------------------- 699*cdf0e10cSrcweir 700*cdf0e10cSrcweir --------------------------------------------------*/ 701*cdf0e10cSrcweir IMPL_LINK( SwNumPositionTabPage, LevelHdl, ListBox *, pBox ) 702*cdf0e10cSrcweir { 703*cdf0e10cSrcweir sal_uInt16 nSaveNumLvl = nActNumLvl; 704*cdf0e10cSrcweir nActNumLvl = 0; 705*cdf0e10cSrcweir if(pBox->IsEntryPosSelected( MAXLEVEL ) && 706*cdf0e10cSrcweir (pBox->GetSelectEntryCount() == 1 || nSaveNumLvl != 0xffff)) 707*cdf0e10cSrcweir { 708*cdf0e10cSrcweir nActNumLvl = 0xFFFF; 709*cdf0e10cSrcweir pBox->SetUpdateMode(sal_False); 710*cdf0e10cSrcweir for( sal_uInt16 i = 0; i < MAXLEVEL; i++ ) 711*cdf0e10cSrcweir pBox->SelectEntryPos( i, sal_False ); 712*cdf0e10cSrcweir pBox->SetUpdateMode(sal_True); 713*cdf0e10cSrcweir } 714*cdf0e10cSrcweir else if(pBox->GetSelectEntryCount()) 715*cdf0e10cSrcweir { 716*cdf0e10cSrcweir sal_uInt16 nMask = 1; 717*cdf0e10cSrcweir for( sal_uInt16 i = 0; i < MAXLEVEL; i++ ) 718*cdf0e10cSrcweir { 719*cdf0e10cSrcweir if(pBox->IsEntryPosSelected( i )) 720*cdf0e10cSrcweir nActNumLvl |= nMask; 721*cdf0e10cSrcweir nMask <<= 1; 722*cdf0e10cSrcweir } 723*cdf0e10cSrcweir pBox->SelectEntryPos( MAXLEVEL, sal_False ); 724*cdf0e10cSrcweir } 725*cdf0e10cSrcweir else 726*cdf0e10cSrcweir { 727*cdf0e10cSrcweir nActNumLvl = nSaveNumLvl; 728*cdf0e10cSrcweir sal_uInt16 nMask = 1; 729*cdf0e10cSrcweir for( sal_uInt16 i = 0; i < MAXLEVEL; i++ ) 730*cdf0e10cSrcweir { 731*cdf0e10cSrcweir if(nActNumLvl & nMask) 732*cdf0e10cSrcweir { 733*cdf0e10cSrcweir pBox->SelectEntryPos(i); 734*cdf0e10cSrcweir break; 735*cdf0e10cSrcweir } 736*cdf0e10cSrcweir nMask <<=1; 737*cdf0e10cSrcweir } 738*cdf0e10cSrcweir } 739*cdf0e10cSrcweir aRelativeCB.Enable(1 != nActNumLvl); 740*cdf0e10cSrcweir SetModified(); 741*cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 742*cdf0e10cSrcweir InitPosAndSpaceMode(); 743*cdf0e10cSrcweir ShowControlsDependingOnPosAndSpaceMode(); 744*cdf0e10cSrcweir // <-- 745*cdf0e10cSrcweir InitControls(); 746*cdf0e10cSrcweir return 0; 747*cdf0e10cSrcweir } 748*cdf0e10cSrcweir /*-----------------03.12.97 12:24------------------- 749*cdf0e10cSrcweir 750*cdf0e10cSrcweir --------------------------------------------------*/ 751*cdf0e10cSrcweir IMPL_LINK( SwNumPositionTabPage, DistanceHdl, MetricField *, pFld ) 752*cdf0e10cSrcweir { 753*cdf0e10cSrcweir if(bInInintControl) 754*cdf0e10cSrcweir return 0; 755*cdf0e10cSrcweir long nValue = static_cast< long >(pFld->Denormalize(pFld->GetValue(FUNIT_TWIP))); 756*cdf0e10cSrcweir sal_uInt16 nMask = 1; 757*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < MAXLEVEL; i++) 758*cdf0e10cSrcweir { 759*cdf0e10cSrcweir if(nActNumLvl & nMask) 760*cdf0e10cSrcweir { 761*cdf0e10cSrcweir SwNumFmt aNumFmt( pActNum->Get( i ) ); 762*cdf0e10cSrcweir if(pFld == &aDistBorderMF) 763*cdf0e10cSrcweir { 764*cdf0e10cSrcweir 765*cdf0e10cSrcweir if(aRelativeCB.IsChecked() && aRelativeCB.IsEnabled()) 766*cdf0e10cSrcweir { 767*cdf0e10cSrcweir if(0 == i) 768*cdf0e10cSrcweir { 769*cdf0e10cSrcweir long nTmp = aNumFmt.GetFirstLineOffset(); 770*cdf0e10cSrcweir aNumFmt.SetAbsLSpace( sal_uInt16(nValue - nTmp)); 771*cdf0e10cSrcweir } 772*cdf0e10cSrcweir else 773*cdf0e10cSrcweir { 774*cdf0e10cSrcweir long nTmp = pActNum->Get( i - 1 ).GetAbsLSpace() + 775*cdf0e10cSrcweir pActNum->Get( i - 1 ).GetFirstLineOffset() - 776*cdf0e10cSrcweir pActNum->Get( i ).GetFirstLineOffset(); 777*cdf0e10cSrcweir 778*cdf0e10cSrcweir aNumFmt.SetAbsLSpace( sal_uInt16(nValue + nTmp)); 779*cdf0e10cSrcweir } 780*cdf0e10cSrcweir } 781*cdf0e10cSrcweir else 782*cdf0e10cSrcweir { 783*cdf0e10cSrcweir aNumFmt.SetAbsLSpace( (short)nValue - aNumFmt.GetFirstLineOffset()); 784*cdf0e10cSrcweir } 785*cdf0e10cSrcweir } 786*cdf0e10cSrcweir else if(pFld == &aDistNumMF) 787*cdf0e10cSrcweir { 788*cdf0e10cSrcweir aNumFmt.SetCharTextDistance( (short)nValue ); 789*cdf0e10cSrcweir } 790*cdf0e10cSrcweir else if(pFld == &aIndentMF) 791*cdf0e10cSrcweir { 792*cdf0e10cSrcweir //jetzt muss mit dem FirstLineOffset auch der AbsLSpace veraendert werden 793*cdf0e10cSrcweir long nDiff = nValue + aNumFmt.GetFirstLineOffset(); 794*cdf0e10cSrcweir long nAbsLSpace = aNumFmt.GetAbsLSpace(); 795*cdf0e10cSrcweir aNumFmt.SetAbsLSpace(sal_uInt16(nAbsLSpace + nDiff)); 796*cdf0e10cSrcweir aNumFmt.SetFirstLineOffset( -(short)nValue ); 797*cdf0e10cSrcweir } 798*cdf0e10cSrcweir 799*cdf0e10cSrcweir pActNum->Set( i, aNumFmt ); 800*cdf0e10cSrcweir } 801*cdf0e10cSrcweir nMask <<= 1; 802*cdf0e10cSrcweir } 803*cdf0e10cSrcweir 804*cdf0e10cSrcweir SetModified(); 805*cdf0e10cSrcweir if(!aDistBorderMF.IsEnabled()) 806*cdf0e10cSrcweir aDistBorderMF.SetText(aEmptyStr); 807*cdf0e10cSrcweir 808*cdf0e10cSrcweir return 0; 809*cdf0e10cSrcweir } 810*cdf0e10cSrcweir 811*cdf0e10cSrcweir /*-----------------04.12.97 12:35------------------- 812*cdf0e10cSrcweir 813*cdf0e10cSrcweir --------------------------------------------------*/ 814*cdf0e10cSrcweir IMPL_LINK( SwNumPositionTabPage, RelativeHdl, CheckBox *, pBox ) 815*cdf0e10cSrcweir { 816*cdf0e10cSrcweir sal_Bool bOn = pBox->IsChecked(); 817*cdf0e10cSrcweir sal_Bool bSingleSelection = aLevelLB.GetSelectEntryCount() == 1 && USHRT_MAX != nActNumLvl; 818*cdf0e10cSrcweir sal_Bool bSetValue = sal_False; 819*cdf0e10cSrcweir long nValue = 0; 820*cdf0e10cSrcweir if(bOn || bSingleSelection) 821*cdf0e10cSrcweir { 822*cdf0e10cSrcweir sal_uInt16 nMask = 1; 823*cdf0e10cSrcweir sal_Bool bFirst = sal_True; 824*cdf0e10cSrcweir bSetValue = sal_True; 825*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < MAXLEVEL; i++) 826*cdf0e10cSrcweir { 827*cdf0e10cSrcweir if(nActNumLvl & nMask) 828*cdf0e10cSrcweir { 829*cdf0e10cSrcweir const SwNumFmt &rNumFmt = pActNum->Get(i); 830*cdf0e10cSrcweir if(bFirst) 831*cdf0e10cSrcweir { 832*cdf0e10cSrcweir nValue = rNumFmt.GetAbsLSpace(); 833*cdf0e10cSrcweir if(bOn && i) 834*cdf0e10cSrcweir nValue -= pActNum->Get(i - 1).GetAbsLSpace(); 835*cdf0e10cSrcweir } 836*cdf0e10cSrcweir else 837*cdf0e10cSrcweir bSetValue = nValue == rNumFmt.GetAbsLSpace() - pActNum->Get(i - 1).GetAbsLSpace(); 838*cdf0e10cSrcweir bFirst = sal_False; 839*cdf0e10cSrcweir } 840*cdf0e10cSrcweir nMask <<= 1; 841*cdf0e10cSrcweir } 842*cdf0e10cSrcweir 843*cdf0e10cSrcweir } 844*cdf0e10cSrcweir if(bSetValue) 845*cdf0e10cSrcweir aDistBorderMF.SetValue(aDistBorderMF.Normalize(nValue), FUNIT_TWIP); 846*cdf0e10cSrcweir else 847*cdf0e10cSrcweir aDistBorderMF.SetText(aEmptyStr); 848*cdf0e10cSrcweir aDistBorderMF.Enable(bOn || bSingleSelection||0 != pOutlineDlg); 849*cdf0e10cSrcweir bLastRelative = bOn; 850*cdf0e10cSrcweir return 0; 851*cdf0e10cSrcweir } 852*cdf0e10cSrcweir 853*cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 854*cdf0e10cSrcweir IMPL_LINK( SwNumPositionTabPage, LabelFollowedByHdl_Impl, ListBox*, EMPTYARG ) 855*cdf0e10cSrcweir { 856*cdf0e10cSrcweir // determine value to be set at the chosen list levels 857*cdf0e10cSrcweir SvxNumberFormat::SvxNumLabelFollowedBy eLabelFollowedBy = 858*cdf0e10cSrcweir SvxNumberFormat::LISTTAB; 859*cdf0e10cSrcweir { 860*cdf0e10cSrcweir const sal_uInt16 nPos = aLabelFollowedByLB.GetSelectEntryPos(); 861*cdf0e10cSrcweir if ( nPos == 1 ) 862*cdf0e10cSrcweir { 863*cdf0e10cSrcweir eLabelFollowedBy = SvxNumberFormat::SPACE; 864*cdf0e10cSrcweir } 865*cdf0e10cSrcweir else if ( nPos == 2 ) 866*cdf0e10cSrcweir { 867*cdf0e10cSrcweir eLabelFollowedBy = SvxNumberFormat::NOTHING; 868*cdf0e10cSrcweir } 869*cdf0e10cSrcweir } 870*cdf0e10cSrcweir 871*cdf0e10cSrcweir // set value at the chosen list levels 872*cdf0e10cSrcweir bool bSameListtabPos = true; 873*cdf0e10cSrcweir sal_uInt16 nFirstLvl = USHRT_MAX; 874*cdf0e10cSrcweir sal_uInt16 nMask = 1; 875*cdf0e10cSrcweir for( sal_uInt16 i = 0; i < MAXLEVEL; ++i ) 876*cdf0e10cSrcweir { 877*cdf0e10cSrcweir if ( nActNumLvl & nMask ) 878*cdf0e10cSrcweir { 879*cdf0e10cSrcweir SwNumFmt aNumFmt( pActNum->Get(i) ); 880*cdf0e10cSrcweir aNumFmt.SetLabelFollowedBy( eLabelFollowedBy ); 881*cdf0e10cSrcweir pActNum->Set( i, aNumFmt ); 882*cdf0e10cSrcweir 883*cdf0e10cSrcweir if ( nFirstLvl == USHRT_MAX ) 884*cdf0e10cSrcweir { 885*cdf0e10cSrcweir nFirstLvl = i; 886*cdf0e10cSrcweir } 887*cdf0e10cSrcweir else 888*cdf0e10cSrcweir { 889*cdf0e10cSrcweir bSameListtabPos &= aNumFmt.GetListtabPos() == 890*cdf0e10cSrcweir pActNum->Get( nFirstLvl ).GetListtabPos(); 891*cdf0e10cSrcweir } 892*cdf0e10cSrcweir } 893*cdf0e10cSrcweir nMask <<= 1; 894*cdf0e10cSrcweir } 895*cdf0e10cSrcweir 896*cdf0e10cSrcweir // enable/disable metric field for list tab stop position depending on 897*cdf0e10cSrcweir // selected item following the list label. 898*cdf0e10cSrcweir aListtabFT.Enable( eLabelFollowedBy == SvxNumberFormat::LISTTAB ); 899*cdf0e10cSrcweir aListtabMF.Enable( eLabelFollowedBy == SvxNumberFormat::LISTTAB ); 900*cdf0e10cSrcweir if ( bSameListtabPos && eLabelFollowedBy == SvxNumberFormat::LISTTAB ) 901*cdf0e10cSrcweir { 902*cdf0e10cSrcweir aListtabMF.SetValue( 903*cdf0e10cSrcweir aListtabMF.Normalize( pActNum->Get( nFirstLvl ).GetListtabPos() ), 904*cdf0e10cSrcweir FUNIT_TWIP ); 905*cdf0e10cSrcweir } 906*cdf0e10cSrcweir else 907*cdf0e10cSrcweir { 908*cdf0e10cSrcweir aListtabMF.SetText( String() ); 909*cdf0e10cSrcweir } 910*cdf0e10cSrcweir 911*cdf0e10cSrcweir SetModified(); 912*cdf0e10cSrcweir 913*cdf0e10cSrcweir return 0; 914*cdf0e10cSrcweir } 915*cdf0e10cSrcweir // <-- 916*cdf0e10cSrcweir 917*cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 918*cdf0e10cSrcweir IMPL_LINK( SwNumPositionTabPage, ListtabPosHdl_Impl, MetricField*, pFld ) 919*cdf0e10cSrcweir { 920*cdf0e10cSrcweir // determine value to be set at the chosen list levels 921*cdf0e10cSrcweir const long nValue = static_cast< long >(pFld->Denormalize(pFld->GetValue(FUNIT_TWIP))); 922*cdf0e10cSrcweir 923*cdf0e10cSrcweir // set value at the chosen list levels 924*cdf0e10cSrcweir sal_uInt16 nMask = 1; 925*cdf0e10cSrcweir for( sal_uInt16 i = 0; i < MAXLEVEL; ++i ) 926*cdf0e10cSrcweir { 927*cdf0e10cSrcweir if ( nActNumLvl & nMask ) 928*cdf0e10cSrcweir { 929*cdf0e10cSrcweir SwNumFmt aNumFmt( pActNum->Get(i) ); 930*cdf0e10cSrcweir aNumFmt.SetListtabPos( nValue ); 931*cdf0e10cSrcweir pActNum->Set( i, aNumFmt ); 932*cdf0e10cSrcweir } 933*cdf0e10cSrcweir nMask <<= 1; 934*cdf0e10cSrcweir } 935*cdf0e10cSrcweir 936*cdf0e10cSrcweir SetModified(); 937*cdf0e10cSrcweir 938*cdf0e10cSrcweir return 0; 939*cdf0e10cSrcweir } 940*cdf0e10cSrcweir // <-- 941*cdf0e10cSrcweir 942*cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 943*cdf0e10cSrcweir IMPL_LINK( SwNumPositionTabPage, AlignAtHdl_Impl, MetricField*, pFld ) 944*cdf0e10cSrcweir { 945*cdf0e10cSrcweir // determine value to be set at the chosen list levels 946*cdf0e10cSrcweir const long nValue = static_cast< long >(pFld->Denormalize(pFld->GetValue(FUNIT_TWIP))); 947*cdf0e10cSrcweir 948*cdf0e10cSrcweir // set value at the chosen list levels 949*cdf0e10cSrcweir sal_uInt16 nMask = 1; 950*cdf0e10cSrcweir for( sal_uInt16 i = 0; i < MAXLEVEL; ++i ) 951*cdf0e10cSrcweir { 952*cdf0e10cSrcweir if ( nActNumLvl & nMask ) 953*cdf0e10cSrcweir { 954*cdf0e10cSrcweir SwNumFmt aNumFmt( pActNum->Get(i) ); 955*cdf0e10cSrcweir const long nFirstLineIndent = nValue - aNumFmt.GetIndentAt(); 956*cdf0e10cSrcweir aNumFmt.SetFirstLineIndent( nFirstLineIndent ); 957*cdf0e10cSrcweir pActNum->Set( i, aNumFmt ); 958*cdf0e10cSrcweir } 959*cdf0e10cSrcweir nMask <<= 1; 960*cdf0e10cSrcweir } 961*cdf0e10cSrcweir 962*cdf0e10cSrcweir SetModified(); 963*cdf0e10cSrcweir 964*cdf0e10cSrcweir return 0; 965*cdf0e10cSrcweir } 966*cdf0e10cSrcweir // <-- 967*cdf0e10cSrcweir 968*cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 969*cdf0e10cSrcweir IMPL_LINK( SwNumPositionTabPage, IndentAtHdl_Impl, MetricField*, pFld ) 970*cdf0e10cSrcweir { 971*cdf0e10cSrcweir // determine value to be set at the chosen list levels 972*cdf0e10cSrcweir const long nValue = static_cast< long >(pFld->Denormalize(pFld->GetValue(FUNIT_TWIP))); 973*cdf0e10cSrcweir 974*cdf0e10cSrcweir // set value at the chosen list levels 975*cdf0e10cSrcweir sal_uInt16 nMask = 1; 976*cdf0e10cSrcweir for( sal_uInt16 i = 0; i < MAXLEVEL; ++i ) 977*cdf0e10cSrcweir { 978*cdf0e10cSrcweir if ( nActNumLvl & nMask ) 979*cdf0e10cSrcweir { 980*cdf0e10cSrcweir SwNumFmt aNumFmt( pActNum->Get(i) ); 981*cdf0e10cSrcweir const long nAlignedAt = aNumFmt.GetIndentAt() + 982*cdf0e10cSrcweir aNumFmt.GetFirstLineIndent(); 983*cdf0e10cSrcweir aNumFmt.SetIndentAt( nValue ); 984*cdf0e10cSrcweir const long nNewFirstLineIndent = nAlignedAt - nValue; 985*cdf0e10cSrcweir aNumFmt.SetFirstLineIndent( nNewFirstLineIndent ); 986*cdf0e10cSrcweir pActNum->Set( i, aNumFmt ); 987*cdf0e10cSrcweir } 988*cdf0e10cSrcweir nMask <<= 1; 989*cdf0e10cSrcweir } 990*cdf0e10cSrcweir 991*cdf0e10cSrcweir SetModified(); 992*cdf0e10cSrcweir 993*cdf0e10cSrcweir return 0; 994*cdf0e10cSrcweir } 995*cdf0e10cSrcweir // <-- 996*cdf0e10cSrcweir 997*cdf0e10cSrcweir /*-----------------05.12.97 15:33------------------- 998*cdf0e10cSrcweir 999*cdf0e10cSrcweir --------------------------------------------------*/ 1000*cdf0e10cSrcweir IMPL_LINK( SwNumPositionTabPage, StandardHdl, PushButton *, EMPTYARG ) 1001*cdf0e10cSrcweir { 1002*cdf0e10cSrcweir sal_uInt16 nMask = 1; 1003*cdf0e10cSrcweir for(sal_uInt16 i = 0; i < MAXLEVEL; i++) 1004*cdf0e10cSrcweir { 1005*cdf0e10cSrcweir if(nActNumLvl & nMask) 1006*cdf0e10cSrcweir { 1007*cdf0e10cSrcweir SwNumFmt aNumFmt( pActNum->Get( i ) ); 1008*cdf0e10cSrcweir // --> OD 2008-02-11 #newlistlevelattrs# 1009*cdf0e10cSrcweir SwNumRule aTmpNumRule( pWrtSh->GetUniqueNumRuleName(), 1010*cdf0e10cSrcweir aNumFmt.GetPositionAndSpaceMode(), 1011*cdf0e10cSrcweir pOutlineDlg ? OUTLINE_RULE : NUM_RULE ); 1012*cdf0e10cSrcweir // <-- 1013*cdf0e10cSrcweir SwNumFmt aTempFmt(aTmpNumRule.Get( i )); 1014*cdf0e10cSrcweir // --> OD 2008-02-05 #newlistlevelattrs# 1015*cdf0e10cSrcweir aNumFmt.SetPositionAndSpaceMode( aTempFmt.GetPositionAndSpaceMode() ); 1016*cdf0e10cSrcweir if ( aTempFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_WIDTH_AND_POSITION ) 1017*cdf0e10cSrcweir { 1018*cdf0e10cSrcweir aNumFmt.SetAbsLSpace( aTempFmt.GetAbsLSpace()); 1019*cdf0e10cSrcweir aNumFmt.SetCharTextDistance( aTempFmt.GetCharTextDistance() ); 1020*cdf0e10cSrcweir aNumFmt.SetFirstLineOffset( aTempFmt.GetFirstLineOffset() ); 1021*cdf0e10cSrcweir } 1022*cdf0e10cSrcweir else if ( aTempFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT ) 1023*cdf0e10cSrcweir { 1024*cdf0e10cSrcweir aNumFmt.SetNumAdjust( aTempFmt.GetNumAdjust() ); 1025*cdf0e10cSrcweir aNumFmt.SetLabelFollowedBy( aTempFmt.GetLabelFollowedBy() ); 1026*cdf0e10cSrcweir aNumFmt.SetListtabPos( aTempFmt.GetListtabPos() ); 1027*cdf0e10cSrcweir aNumFmt.SetFirstLineIndent( aTempFmt.GetFirstLineIndent() ); 1028*cdf0e10cSrcweir aNumFmt.SetIndentAt( aTempFmt.GetIndentAt() ); 1029*cdf0e10cSrcweir } 1030*cdf0e10cSrcweir // <-- 1031*cdf0e10cSrcweir 1032*cdf0e10cSrcweir pActNum->Set( i, aNumFmt ); 1033*cdf0e10cSrcweir } 1034*cdf0e10cSrcweir nMask <<= 1; 1035*cdf0e10cSrcweir } 1036*cdf0e10cSrcweir 1037*cdf0e10cSrcweir InitControls(); 1038*cdf0e10cSrcweir SetModified(); 1039*cdf0e10cSrcweir return 0; 1040*cdf0e10cSrcweir } 1041*cdf0e10cSrcweir 1042*cdf0e10cSrcweir #if OSL_DEBUG_LEVEL > 1 1043*cdf0e10cSrcweir void SwNumPositionTabPage::SetModified(sal_Bool bRepaint) 1044*cdf0e10cSrcweir { 1045*cdf0e10cSrcweir bModified = sal_True; 1046*cdf0e10cSrcweir if(bRepaint) 1047*cdf0e10cSrcweir { 1048*cdf0e10cSrcweir aPreviewWIN.SetLevel(nActNumLvl); 1049*cdf0e10cSrcweir aPreviewWIN.Invalidate(); 1050*cdf0e10cSrcweir } 1051*cdf0e10cSrcweir } 1052*cdf0e10cSrcweir 1053*cdf0e10cSrcweir #endif 1054*cdf0e10cSrcweir 1055*cdf0e10cSrcweir /**************************************************************************/ 1056*cdf0e10cSrcweir /* */ 1057*cdf0e10cSrcweir /* */ 1058*cdf0e10cSrcweir /**************************************************************************/ 1059*cdf0e10cSrcweir 1060*cdf0e10cSrcweir 1061*cdf0e10cSrcweir SwSvxNumBulletTabDialog::SwSvxNumBulletTabDialog(Window* pParent, 1062*cdf0e10cSrcweir const SfxItemSet* pSwItemSet, SwWrtShell & rSh) : 1063*cdf0e10cSrcweir SfxTabDialog(pParent, SW_RES(DLG_SVXTEST_NUM_BULLET), pSwItemSet, sal_False, &aEmptyStr), 1064*cdf0e10cSrcweir rWrtSh(rSh), 1065*cdf0e10cSrcweir sRemoveText(SW_RES(ST_RESET)), 1066*cdf0e10cSrcweir nRetOptionsDialog(USHRT_MAX) 1067*cdf0e10cSrcweir { 1068*cdf0e10cSrcweir FreeResource(); 1069*cdf0e10cSrcweir GetUserButton()->SetText(sRemoveText); 1070*cdf0e10cSrcweir GetUserButton()->SetHelpId(HID_NUM_RESET); 1071*cdf0e10cSrcweir GetUserButton()->SetClickHdl(LINK(this, SwSvxNumBulletTabDialog, RemoveNumberingHdl)); 1072*cdf0e10cSrcweir if(!rWrtSh.GetCurNumRule()) 1073*cdf0e10cSrcweir GetUserButton()->Enable(sal_False); 1074*cdf0e10cSrcweir AddTabPage( RID_SVXPAGE_PICK_SINGLE_NUM ); 1075*cdf0e10cSrcweir AddTabPage( RID_SVXPAGE_PICK_BULLET ); 1076*cdf0e10cSrcweir AddTabPage( RID_SVXPAGE_PICK_NUM ); 1077*cdf0e10cSrcweir AddTabPage( RID_SVXPAGE_PICK_BMP ); 1078*cdf0e10cSrcweir AddTabPage( RID_SVXPAGE_NUM_OPTIONS ); 1079*cdf0e10cSrcweir AddTabPage( RID_SVXPAGE_NUM_POSITION ); 1080*cdf0e10cSrcweir 1081*cdf0e10cSrcweir } 1082*cdf0e10cSrcweir /*-----------------07.02.97 12.08------------------- 1083*cdf0e10cSrcweir 1084*cdf0e10cSrcweir --------------------------------------------------*/ 1085*cdf0e10cSrcweir 1086*cdf0e10cSrcweir SwSvxNumBulletTabDialog::~SwSvxNumBulletTabDialog() 1087*cdf0e10cSrcweir { 1088*cdf0e10cSrcweir } 1089*cdf0e10cSrcweir 1090*cdf0e10cSrcweir /*-----------------07.02.97 14.48------------------- 1091*cdf0e10cSrcweir 1092*cdf0e10cSrcweir --------------------------------------------------*/ 1093*cdf0e10cSrcweir 1094*cdf0e10cSrcweir void SwSvxNumBulletTabDialog::PageCreated(sal_uInt16 nPageId, SfxTabPage& rPage) 1095*cdf0e10cSrcweir { 1096*cdf0e10cSrcweir //Namen der Vorlagen und Metric setzen 1097*cdf0e10cSrcweir String sNumCharFmt, sBulletCharFmt; 1098*cdf0e10cSrcweir SwStyleNameMapper::FillUIName( RES_POOLCHR_NUM_LEVEL, sNumCharFmt ); 1099*cdf0e10cSrcweir SwStyleNameMapper::FillUIName( RES_POOLCHR_BUL_LEVEL, sBulletCharFmt ); 1100*cdf0e10cSrcweir 1101*cdf0e10cSrcweir switch ( nPageId ) 1102*cdf0e10cSrcweir { 1103*cdf0e10cSrcweir case RID_SVXPAGE_PICK_NUM: 1104*cdf0e10cSrcweir { 1105*cdf0e10cSrcweir SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool())); 1106*cdf0e10cSrcweir aSet.Put (SfxStringItem(SID_NUM_CHAR_FMT,sNumCharFmt)); 1107*cdf0e10cSrcweir aSet.Put (SfxStringItem(SID_BULLET_CHAR_FMT,sBulletCharFmt)); 1108*cdf0e10cSrcweir rPage.PageCreated(aSet); 1109*cdf0e10cSrcweir } 1110*cdf0e10cSrcweir break; 1111*cdf0e10cSrcweir case RID_SVXPAGE_PICK_BULLET : 1112*cdf0e10cSrcweir { 1113*cdf0e10cSrcweir SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool())); 1114*cdf0e10cSrcweir aSet.Put (SfxStringItem(SID_BULLET_CHAR_FMT,sBulletCharFmt)); 1115*cdf0e10cSrcweir rPage.PageCreated(aSet); 1116*cdf0e10cSrcweir } 1117*cdf0e10cSrcweir break; 1118*cdf0e10cSrcweir 1119*cdf0e10cSrcweir case RID_SVXPAGE_NUM_OPTIONS: 1120*cdf0e10cSrcweir { 1121*cdf0e10cSrcweir SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool())); 1122*cdf0e10cSrcweir aSet.Put (SfxStringItem(SID_NUM_CHAR_FMT,sNumCharFmt)); 1123*cdf0e10cSrcweir aSet.Put (SfxStringItem(SID_BULLET_CHAR_FMT,sBulletCharFmt)); 1124*cdf0e10cSrcweir // Zeichenvorlagen sammeln 1125*cdf0e10cSrcweir ListBox rCharFmtLB(this); 1126*cdf0e10cSrcweir rCharFmtLB.Clear(); 1127*cdf0e10cSrcweir rCharFmtLB.InsertEntry( ViewShell::GetShellRes()->aStrNone ); 1128*cdf0e10cSrcweir SwDocShell* pDocShell = rWrtSh.GetView().GetDocShell(); 1129*cdf0e10cSrcweir ::FillCharStyleListBox(rCharFmtLB, pDocShell); 1130*cdf0e10cSrcweir List aList; 1131*cdf0e10cSrcweir for(sal_uInt16 j = 0; j < rCharFmtLB.GetEntryCount(); j++) 1132*cdf0e10cSrcweir { 1133*cdf0e10cSrcweir 1134*cdf0e10cSrcweir aList.Insert( new XubString(rCharFmtLB.GetEntry(j)), LIST_APPEND ); 1135*cdf0e10cSrcweir } 1136*cdf0e10cSrcweir aSet.Put( SfxStringListItem( SID_CHAR_FMT_LIST_BOX,&aList ) ) ; 1137*cdf0e10cSrcweir 1138*cdf0e10cSrcweir FieldUnit eMetric = ::GetDfltMetric(0 != PTR_CAST(SwWebDocShell, pDocShell)); 1139*cdf0e10cSrcweir aSet.Put ( SfxAllEnumItem(SID_METRIC_ITEM, static_cast< sal_uInt16 >(eMetric) ) ); 1140*cdf0e10cSrcweir rPage.PageCreated(aSet); 1141*cdf0e10cSrcweir for( sal_uInt16 i = (sal_uInt16)aList.Count(); i; --i ) 1142*cdf0e10cSrcweir delete (XubString*)aList.Remove(i); 1143*cdf0e10cSrcweir aList.Clear(); 1144*cdf0e10cSrcweir } 1145*cdf0e10cSrcweir break; 1146*cdf0e10cSrcweir case RID_SVXPAGE_NUM_POSITION: 1147*cdf0e10cSrcweir { 1148*cdf0e10cSrcweir SwDocShell* pDocShell = rWrtSh.GetView().GetDocShell(); 1149*cdf0e10cSrcweir FieldUnit eMetric = ::GetDfltMetric(0 != PTR_CAST(SwWebDocShell, pDocShell)); 1150*cdf0e10cSrcweir SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool())); 1151*cdf0e10cSrcweir aSet.Put ( SfxAllEnumItem(SID_METRIC_ITEM, static_cast< sal_uInt16 >(eMetric)) ); 1152*cdf0e10cSrcweir rPage.PageCreated(aSet); 1153*cdf0e10cSrcweir // ((SvxNumPositionTabPage&)rPage).SetWrtShell(&rWrtSh); 1154*cdf0e10cSrcweir } 1155*cdf0e10cSrcweir break; 1156*cdf0e10cSrcweir } 1157*cdf0e10cSrcweir } 1158*cdf0e10cSrcweir /*-----------------17.02.97 16.52------------------- 1159*cdf0e10cSrcweir 1160*cdf0e10cSrcweir --------------------------------------------------*/ 1161*cdf0e10cSrcweir short SwSvxNumBulletTabDialog::Ok() 1162*cdf0e10cSrcweir { 1163*cdf0e10cSrcweir short nRet = SfxTabDialog::Ok(); 1164*cdf0e10cSrcweir pExampleSet->ClearItem(SID_PARAM_NUM_PRESET); 1165*cdf0e10cSrcweir return nRet; 1166*cdf0e10cSrcweir } 1167*cdf0e10cSrcweir /* -----------------02.12.98 08:35------------------- 1168*cdf0e10cSrcweir * 1169*cdf0e10cSrcweir * --------------------------------------------------*/ 1170*cdf0e10cSrcweir IMPL_LINK(SwSvxNumBulletTabDialog, RemoveNumberingHdl, PushButton*, EMPTYARG) 1171*cdf0e10cSrcweir { 1172*cdf0e10cSrcweir EndDialog(RET_USER); 1173*cdf0e10cSrcweir return 0; 1174*cdf0e10cSrcweir } 1175*cdf0e10cSrcweir 1176*cdf0e10cSrcweir 1177