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