1efeef26fSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3efeef26fSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4efeef26fSAndrew Rist * or more contributor license agreements. See the NOTICE file 5efeef26fSAndrew Rist * distributed with this work for additional information 6efeef26fSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7efeef26fSAndrew Rist * to you under the Apache License, Version 2.0 (the 8efeef26fSAndrew Rist * "License"); you may not use this file except in compliance 9efeef26fSAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11efeef26fSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13efeef26fSAndrew Rist * Unless required by applicable law or agreed to in writing, 14efeef26fSAndrew Rist * software distributed under the License is distributed on an 15efeef26fSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16efeef26fSAndrew Rist * KIND, either express or implied. See the License for the 17efeef26fSAndrew Rist * specific language governing permissions and limitations 18efeef26fSAndrew Rist * under the License. 19cdf0e10cSrcweir * 20efeef26fSAndrew Rist *************************************************************/ 21efeef26fSAndrew Rist 22efeef26fSAndrew 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 } 315205b6fc7SArmin Le Grand if (MAXLEVEL <= nLvl) 316205b6fc7SArmin Le Grand { 317205b6fc7SArmin Le Grand OSL_ENSURE(false, "cannot happen."); 318205b6fc7SArmin Le Grand return; 319205b6fc7SArmin Le Grand } 320cdf0e10cSrcweir if(bSameDistBorderNum) 321cdf0e10cSrcweir { 322cdf0e10cSrcweir long nDistBorderNum; 323cdf0e10cSrcweir if(bRelative) 324cdf0e10cSrcweir { 325cdf0e10cSrcweir nDistBorderNum = (long)aNumFmtArr[nLvl]->GetAbsLSpace()+ aNumFmtArr[nLvl]->GetFirstLineOffset(); 326cdf0e10cSrcweir if(nLvl) 327cdf0e10cSrcweir nDistBorderNum -= (long)aNumFmtArr[nLvl - 1]->GetAbsLSpace()+ aNumFmtArr[nLvl - 1]->GetFirstLineOffset(); 328cdf0e10cSrcweir } 329cdf0e10cSrcweir else 330cdf0e10cSrcweir { 331cdf0e10cSrcweir nDistBorderNum = (long)aNumFmtArr[nLvl]->GetAbsLSpace()+ aNumFmtArr[nLvl]->GetFirstLineOffset(); 332cdf0e10cSrcweir } 333cdf0e10cSrcweir aDistBorderMF.SetValue(aDistBorderMF.Normalize(nDistBorderNum),FUNIT_TWIP); 334cdf0e10cSrcweir } 335cdf0e10cSrcweir else 336cdf0e10cSrcweir bSetDistEmpty = sal_True; 337cdf0e10cSrcweir 338cdf0e10cSrcweir if(bSameDist) 339cdf0e10cSrcweir aDistNumMF .SetValue(aDistNumMF.Normalize(aNumFmtArr[nLvl]->GetCharTextDistance()), FUNIT_TWIP); 340cdf0e10cSrcweir else 341cdf0e10cSrcweir aDistNumMF.SetText(aEmptyStr); 342cdf0e10cSrcweir if(bSameIndent) 343cdf0e10cSrcweir aIndentMF.SetValue(aIndentMF.Normalize(-aNumFmtArr[nLvl]->GetFirstLineOffset()), FUNIT_TWIP); 344cdf0e10cSrcweir else 345cdf0e10cSrcweir aIndentMF.SetText(aEmptyStr); 346cdf0e10cSrcweir 347cdf0e10cSrcweir if(bSameAdjust) 348cdf0e10cSrcweir { 349cdf0e10cSrcweir sal_uInt16 nPos = 1; // zentriert 350cdf0e10cSrcweir if(aNumFmtArr[nLvl]->GetNumAdjust() == SVX_ADJUST_LEFT) 351cdf0e10cSrcweir nPos = 0; 352cdf0e10cSrcweir else if(aNumFmtArr[nLvl]->GetNumAdjust() == SVX_ADJUST_RIGHT) 353cdf0e10cSrcweir nPos = 2; 354cdf0e10cSrcweir aAlignLB.SelectEntryPos(nPos); 355cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 356cdf0e10cSrcweir aAlign2LB.SelectEntryPos( nPos ); 357cdf0e10cSrcweir // <-- 358cdf0e10cSrcweir } 359cdf0e10cSrcweir else 360cdf0e10cSrcweir { 361cdf0e10cSrcweir aAlignLB.SetNoSelection(); 362cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 363cdf0e10cSrcweir aAlign2LB.SetNoSelection(); 364cdf0e10cSrcweir // <-- 365cdf0e10cSrcweir } 366cdf0e10cSrcweir 367cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 368cdf0e10cSrcweir if ( bSameLabelFollowedBy ) 369cdf0e10cSrcweir { 370cdf0e10cSrcweir sal_uInt16 nPos = 0; // LISTTAB 371cdf0e10cSrcweir if ( aNumFmtArr[nLvl]->GetLabelFollowedBy() == SvxNumberFormat::SPACE ) 372cdf0e10cSrcweir { 373cdf0e10cSrcweir nPos = 1; 374cdf0e10cSrcweir } 375cdf0e10cSrcweir else if ( aNumFmtArr[nLvl]->GetLabelFollowedBy() == SvxNumberFormat::NOTHING ) 376cdf0e10cSrcweir { 377cdf0e10cSrcweir nPos = 2; 378cdf0e10cSrcweir } 379cdf0e10cSrcweir aLabelFollowedByLB.SelectEntryPos( nPos ); 380cdf0e10cSrcweir } 381cdf0e10cSrcweir else 382cdf0e10cSrcweir { 383cdf0e10cSrcweir aLabelFollowedByLB.SetNoSelection(); 384cdf0e10cSrcweir } 385cdf0e10cSrcweir 386cdf0e10cSrcweir if ( aNumFmtArr[nLvl]->GetLabelFollowedBy() == SvxNumberFormat::LISTTAB ) 387cdf0e10cSrcweir { 388cdf0e10cSrcweir aListtabFT.Enable( true ); 389cdf0e10cSrcweir aListtabMF.Enable( true ); 390cdf0e10cSrcweir if ( bSameListtab ) 391cdf0e10cSrcweir { 392cdf0e10cSrcweir aListtabMF.SetValue(aListtabMF.Normalize(aNumFmtArr[nLvl]->GetListtabPos()),FUNIT_TWIP); 393cdf0e10cSrcweir } 394cdf0e10cSrcweir else 395cdf0e10cSrcweir { 396cdf0e10cSrcweir aListtabMF.SetText(aEmptyStr); 397cdf0e10cSrcweir } 398cdf0e10cSrcweir } 399cdf0e10cSrcweir else 400cdf0e10cSrcweir { 401cdf0e10cSrcweir aListtabFT.Enable( false ); 402cdf0e10cSrcweir aListtabMF.Enable( false ); 403cdf0e10cSrcweir aListtabMF.SetText(aEmptyStr); 404cdf0e10cSrcweir } 405cdf0e10cSrcweir 406cdf0e10cSrcweir if ( bSameAlignAt ) 407cdf0e10cSrcweir { 408cdf0e10cSrcweir aAlignedAtMF.SetValue( 409cdf0e10cSrcweir aAlignedAtMF.Normalize( aNumFmtArr[nLvl]->GetIndentAt() + 410cdf0e10cSrcweir aNumFmtArr[nLvl]->GetFirstLineIndent()), 411cdf0e10cSrcweir FUNIT_TWIP ); 412cdf0e10cSrcweir } 413cdf0e10cSrcweir else 414cdf0e10cSrcweir { 415cdf0e10cSrcweir aAlignedAtMF.SetText(aEmptyStr); 416cdf0e10cSrcweir } 417cdf0e10cSrcweir 418cdf0e10cSrcweir if ( bSameIndentAt ) 419cdf0e10cSrcweir { 420cdf0e10cSrcweir aIndentAtMF.SetValue( 421cdf0e10cSrcweir aIndentAtMF.Normalize( aNumFmtArr[nLvl]->GetIndentAt()), FUNIT_TWIP ); 422cdf0e10cSrcweir } 423cdf0e10cSrcweir else 424cdf0e10cSrcweir { 425cdf0e10cSrcweir aIndentAtMF.SetText(aEmptyStr); 426cdf0e10cSrcweir } 427cdf0e10cSrcweir // <-- 428cdf0e10cSrcweir 429cdf0e10cSrcweir if(sal_True == bSetDistEmpty) 430cdf0e10cSrcweir aDistBorderMF.SetText(aEmptyStr); 431cdf0e10cSrcweir 432cdf0e10cSrcweir bInInintControl = sal_False; 433cdf0e10cSrcweir } 434cdf0e10cSrcweir 435cdf0e10cSrcweir /*-----------------03.12.97 10:02------------------- 436cdf0e10cSrcweir 437cdf0e10cSrcweir --------------------------------------------------*/ 438cdf0e10cSrcweir void SwNumPositionTabPage::ActivatePage(const SfxItemSet& ) 439cdf0e10cSrcweir { 440cdf0e10cSrcweir const SfxPoolItem* pItem; 441cdf0e10cSrcweir sal_uInt16 nTmpNumLvl = 442cdf0e10cSrcweir pOutlineDlg ? pOutlineDlg->GetActNumLevel() : 0; 443cdf0e10cSrcweir const SfxItemSet* pExampleSet = GetTabDialog()->GetExampleSet(); 444cdf0e10cSrcweir if(pExampleSet && pExampleSet->GetItemState(FN_PARAM_NUM_PRESET, sal_False, &pItem)) 445cdf0e10cSrcweir { 446cdf0e10cSrcweir bPreset = ((const SfxBoolItem*)pItem)->GetValue(); 447cdf0e10cSrcweir } 448cdf0e10cSrcweir // 449cdf0e10cSrcweir bModified = (!pActNum->GetNumFmt( 0 ) || bPreset); 450cdf0e10cSrcweir if(*pActNum != *pSaveNum || 451cdf0e10cSrcweir nActNumLvl != nTmpNumLvl ) 452cdf0e10cSrcweir { 453cdf0e10cSrcweir *pActNum = *pSaveNum; 454cdf0e10cSrcweir nActNumLvl = nTmpNumLvl; 455cdf0e10cSrcweir sal_uInt16 nMask = 1; 456cdf0e10cSrcweir aLevelLB.SetUpdateMode(sal_False); 457cdf0e10cSrcweir aLevelLB.SetNoSelection(); 458cdf0e10cSrcweir aLevelLB.SelectEntryPos( MAXLEVEL, nActNumLvl == USHRT_MAX); 459cdf0e10cSrcweir if(nActNumLvl != USHRT_MAX) 460cdf0e10cSrcweir for(sal_uInt16 i = 0; i < MAXLEVEL; i++) 461cdf0e10cSrcweir { 462cdf0e10cSrcweir if(nActNumLvl & nMask) 463cdf0e10cSrcweir aLevelLB.SelectEntryPos( i, sal_True); 464cdf0e10cSrcweir nMask <<= 1 ; 465cdf0e10cSrcweir } 466cdf0e10cSrcweir aLevelLB.SetUpdateMode(sal_True); 467cdf0e10cSrcweir 468cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 469cdf0e10cSrcweir InitPosAndSpaceMode(); 470cdf0e10cSrcweir ShowControlsDependingOnPosAndSpaceMode(); 471cdf0e10cSrcweir // <-- 472cdf0e10cSrcweir 473cdf0e10cSrcweir InitControls(); 474cdf0e10cSrcweir } 475cdf0e10cSrcweir aRelativeCB.Enable(1 != nActNumLvl); 476cdf0e10cSrcweir aPreviewWIN.Invalidate(); 477cdf0e10cSrcweir } 478cdf0e10cSrcweir 479cdf0e10cSrcweir /*-----------------03.12.97 10:02------------------- 480cdf0e10cSrcweir 481cdf0e10cSrcweir --------------------------------------------------*/ 482cdf0e10cSrcweir int SwNumPositionTabPage::DeactivatePage(SfxItemSet *_pSet) 483cdf0e10cSrcweir { 484cdf0e10cSrcweir SwOutlineTabDialog::SetActNumLevel(nActNumLvl); 485cdf0e10cSrcweir if(_pSet) 486cdf0e10cSrcweir FillItemSet(*_pSet); 487cdf0e10cSrcweir return sal_True; 488cdf0e10cSrcweir 489cdf0e10cSrcweir } 490cdf0e10cSrcweir 491cdf0e10cSrcweir /*-----------------03.12.97 10:02------------------- 492cdf0e10cSrcweir 493cdf0e10cSrcweir --------------------------------------------------*/ 494cdf0e10cSrcweir sal_Bool SwNumPositionTabPage::FillItemSet( SfxItemSet& rSet ) 495cdf0e10cSrcweir { 496cdf0e10cSrcweir if(pOutlineDlg) 497cdf0e10cSrcweir *pOutlineDlg->GetNumRule() = *pActNum; 498cdf0e10cSrcweir else if(bModified && pActNum) 499cdf0e10cSrcweir { 500cdf0e10cSrcweir *pSaveNum = *pActNum; 501cdf0e10cSrcweir rSet.Put(SwUINumRuleItem( *pSaveNum )); 502cdf0e10cSrcweir rSet.Put(SfxBoolItem(FN_PARAM_NUM_PRESET, sal_False)); 503cdf0e10cSrcweir } 504cdf0e10cSrcweir return bModified; 505cdf0e10cSrcweir } 506cdf0e10cSrcweir 507cdf0e10cSrcweir /*-----------------03.12.97 10:02------------------- 508cdf0e10cSrcweir 509cdf0e10cSrcweir --------------------------------------------------*/ 510cdf0e10cSrcweir void SwNumPositionTabPage::Reset( const SfxItemSet& rSet ) 511cdf0e10cSrcweir { 512cdf0e10cSrcweir const SfxPoolItem* pItem; 513cdf0e10cSrcweir if(pOutlineDlg) 514cdf0e10cSrcweir { 515cdf0e10cSrcweir pSaveNum = pOutlineDlg->GetNumRule(); 516cdf0e10cSrcweir aLevelLB.EnableMultiSelection(sal_False); 517cdf0e10cSrcweir } 518cdf0e10cSrcweir else if(SFX_ITEM_SET == rSet.GetItemState(FN_PARAM_ACT_NUMBER, sal_False, &pItem)) 519cdf0e10cSrcweir pSaveNum = ((SwUINumRuleItem*)pItem)->GetNumRule(); 520cdf0e10cSrcweir 521cdf0e10cSrcweir nActNumLvl = SwOutlineTabDialog::GetActNumLevel(); 522cdf0e10cSrcweir sal_uInt16 nMask = 1; 523cdf0e10cSrcweir aLevelLB.SetUpdateMode(sal_False); 524cdf0e10cSrcweir aLevelLB.SetNoSelection(); 525cdf0e10cSrcweir if(nActNumLvl == USHRT_MAX) 526cdf0e10cSrcweir { 527cdf0e10cSrcweir aLevelLB.SelectEntryPos( MAXLEVEL, sal_True); 528cdf0e10cSrcweir } 529cdf0e10cSrcweir else 530cdf0e10cSrcweir for(sal_uInt16 i = 0; i < MAXLEVEL; i++) 531cdf0e10cSrcweir { 532cdf0e10cSrcweir if(nActNumLvl & nMask) 533cdf0e10cSrcweir aLevelLB.SelectEntryPos( i, sal_True); 534cdf0e10cSrcweir nMask <<= 1; 535cdf0e10cSrcweir } 536cdf0e10cSrcweir aLevelLB.SetUpdateMode(sal_True); 537cdf0e10cSrcweir 538cdf0e10cSrcweir if(!pActNum) 539cdf0e10cSrcweir pActNum = new SwNumRule(*pSaveNum); 540cdf0e10cSrcweir else if(*pSaveNum != *pActNum) 541cdf0e10cSrcweir *pActNum = *pSaveNum; 542cdf0e10cSrcweir aPreviewWIN.SetNumRule(pActNum); 543cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 544cdf0e10cSrcweir InitPosAndSpaceMode(); 545cdf0e10cSrcweir ShowControlsDependingOnPosAndSpaceMode(); 546cdf0e10cSrcweir // <-- 547cdf0e10cSrcweir InitControls(); 548cdf0e10cSrcweir bModified = sal_False; 549cdf0e10cSrcweir } 550cdf0e10cSrcweir 551cdf0e10cSrcweir // --> OD 2008-01-11 #newlistlevelattrs# 552cdf0e10cSrcweir void SwNumPositionTabPage::InitPosAndSpaceMode() 553cdf0e10cSrcweir { 554cdf0e10cSrcweir if ( pActNum == 0 ) 555cdf0e10cSrcweir { 556cdf0e10cSrcweir DBG_ASSERT( false, 557cdf0e10cSrcweir "<SwNumPositionTabPage::InitPosAndSpaceMode()> - misusage of method -> <pAktNum> has to be already set!" ); 558cdf0e10cSrcweir return; 559cdf0e10cSrcweir } 560cdf0e10cSrcweir 561cdf0e10cSrcweir SvxNumberFormat::SvxNumPositionAndSpaceMode ePosAndSpaceMode = 562cdf0e10cSrcweir SvxNumberFormat::LABEL_ALIGNMENT; 563cdf0e10cSrcweir sal_uInt16 nMask = 1; 564cdf0e10cSrcweir for( sal_uInt16 i = 0; i < MAXLEVEL; ++i ) 565cdf0e10cSrcweir { 566cdf0e10cSrcweir if(nActNumLvl & nMask) 567cdf0e10cSrcweir { 568cdf0e10cSrcweir SvxNumberFormat aNumFmt( pActNum->Get(i) ); 569cdf0e10cSrcweir ePosAndSpaceMode = aNumFmt.GetPositionAndSpaceMode(); 570cdf0e10cSrcweir if ( ePosAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT ) 571cdf0e10cSrcweir { 572cdf0e10cSrcweir break; 573cdf0e10cSrcweir } 574cdf0e10cSrcweir } 575cdf0e10cSrcweir nMask <<= 1; 576cdf0e10cSrcweir } 577cdf0e10cSrcweir 578cdf0e10cSrcweir bLabelAlignmentPosAndSpaceModeActive = 579cdf0e10cSrcweir ePosAndSpaceMode == SvxNumberFormat::LABEL_ALIGNMENT; 580cdf0e10cSrcweir } 581cdf0e10cSrcweir 582cdf0e10cSrcweir void SwNumPositionTabPage::ShowControlsDependingOnPosAndSpaceMode() 583cdf0e10cSrcweir { 584cdf0e10cSrcweir aDistBorderFT.Show( !bLabelAlignmentPosAndSpaceModeActive ); 585cdf0e10cSrcweir aDistBorderMF.Show( !bLabelAlignmentPosAndSpaceModeActive ); 586cdf0e10cSrcweir aRelativeCB.Show( !bLabelAlignmentPosAndSpaceModeActive ); 587cdf0e10cSrcweir aIndentFT.Show( !bLabelAlignmentPosAndSpaceModeActive ); 588cdf0e10cSrcweir aIndentMF.Show( !bLabelAlignmentPosAndSpaceModeActive ); 589cdf0e10cSrcweir aDistNumFT.Show( !bLabelAlignmentPosAndSpaceModeActive ); 590cdf0e10cSrcweir aDistNumMF.Show( !bLabelAlignmentPosAndSpaceModeActive ); 591cdf0e10cSrcweir aAlignFT.Show( !bLabelAlignmentPosAndSpaceModeActive ); 592cdf0e10cSrcweir aAlignLB.Show( !bLabelAlignmentPosAndSpaceModeActive ); 593cdf0e10cSrcweir 594cdf0e10cSrcweir aLabelFollowedByFT.Show( bLabelAlignmentPosAndSpaceModeActive ); 595cdf0e10cSrcweir aLabelFollowedByLB.Show( bLabelAlignmentPosAndSpaceModeActive ); 596cdf0e10cSrcweir aListtabFT.Show( bLabelAlignmentPosAndSpaceModeActive ); 597cdf0e10cSrcweir aListtabMF.Show( bLabelAlignmentPosAndSpaceModeActive ); 598cdf0e10cSrcweir aAlign2FT.Show( bLabelAlignmentPosAndSpaceModeActive ); 599cdf0e10cSrcweir aAlign2LB.Show( bLabelAlignmentPosAndSpaceModeActive ); 600cdf0e10cSrcweir aAlignedAtFT.Show( bLabelAlignmentPosAndSpaceModeActive ); 601cdf0e10cSrcweir aAlignedAtMF.Show( bLabelAlignmentPosAndSpaceModeActive ); 602cdf0e10cSrcweir aIndentAtFT.Show( bLabelAlignmentPosAndSpaceModeActive ); 603cdf0e10cSrcweir aIndentAtMF.Show( bLabelAlignmentPosAndSpaceModeActive ); 604cdf0e10cSrcweir } 605cdf0e10cSrcweir // <-- 606cdf0e10cSrcweir 607cdf0e10cSrcweir /*-----------------03.12.97 10:02------------------- 608cdf0e10cSrcweir 609cdf0e10cSrcweir --------------------------------------------------*/ 610cdf0e10cSrcweir SfxTabPage* SwNumPositionTabPage::Create( Window* pParent, 611cdf0e10cSrcweir const SfxItemSet& rAttrSet) 612cdf0e10cSrcweir { 613cdf0e10cSrcweir return new SwNumPositionTabPage(pParent, rAttrSet); 614cdf0e10cSrcweir } 615cdf0e10cSrcweir 616cdf0e10cSrcweir /*-----------------04.12.97 12:51------------------- 617cdf0e10cSrcweir 618cdf0e10cSrcweir --------------------------------------------------*/ 619cdf0e10cSrcweir void SwNumPositionTabPage::SetWrtShell(SwWrtShell* pSh) 620cdf0e10cSrcweir { 621cdf0e10cSrcweir pWrtSh = pSh; 622cdf0e10cSrcweir 623cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 624cdf0e10cSrcweir const SwTwips nWidth = pWrtSh->GetAnyCurRect(RECT_FRM).Width(); 625cdf0e10cSrcweir 626cdf0e10cSrcweir aDistBorderMF.SetMax(aDistBorderMF.Normalize( nWidth ), FUNIT_TWIP ); 627cdf0e10cSrcweir aDistNumMF .SetMax(aDistNumMF .Normalize( nWidth ), FUNIT_TWIP ); 628cdf0e10cSrcweir aIndentMF .SetMax(aIndentMF .Normalize( nWidth ), FUNIT_TWIP ); 629cdf0e10cSrcweir // --> OD 2008-02-18 #newlistlevelattrs# 630cdf0e10cSrcweir aListtabMF.SetMax(aListtabMF.Normalize( nWidth ), FUNIT_TWIP ); 631cdf0e10cSrcweir aAlignedAtMF.SetMax(aAlignedAtMF.Normalize( nWidth ), FUNIT_TWIP ); 632cdf0e10cSrcweir aIndentAtMF.SetMax(aIndentAtMF.Normalize( nWidth ), FUNIT_TWIP ); 633cdf0e10cSrcweir // <-- 634cdf0e10cSrcweir const SwTwips nLast2 = nWidth /2; 635cdf0e10cSrcweir aDistBorderMF.SetLast( aDistBorderMF.Normalize( nLast2 ), FUNIT_TWIP ); 636cdf0e10cSrcweir aDistNumMF .SetLast( aDistNumMF .Normalize( nLast2 ), FUNIT_TWIP ); 637cdf0e10cSrcweir aIndentMF .SetLast( aIndentMF .Normalize( nLast2 ), FUNIT_TWIP ); 638cdf0e10cSrcweir // --> OD 2008-02-18 #newlistlevelattrs# 639cdf0e10cSrcweir aListtabMF.SetLast(aListtabMF.Normalize( nLast2 ), FUNIT_TWIP ); 640cdf0e10cSrcweir aAlignedAtMF.SetLast(aAlignedAtMF.Normalize( nLast2 ), FUNIT_TWIP ); 641cdf0e10cSrcweir aIndentAtMF.SetLast(aIndentAtMF.Normalize( nLast2 ), FUNIT_TWIP ); 642cdf0e10cSrcweir // <-- 643cdf0e10cSrcweir // <-- 644cdf0e10cSrcweir 645cdf0e10cSrcweir const SwRect& rPrtRect = pWrtSh->GetAnyCurRect(RECT_PAGE); 646cdf0e10cSrcweir aPreviewWIN.SetPageWidth(rPrtRect.Width()); 647cdf0e10cSrcweir FieldUnit eMetric = ::GetDfltMetric(0 != PTR_CAST(SwWebView, &pWrtSh->GetView())); 648cdf0e10cSrcweir if(eMetric == FUNIT_MM) 649cdf0e10cSrcweir { 650cdf0e10cSrcweir aDistBorderMF .SetDecimalDigits(1); 651cdf0e10cSrcweir aDistNumMF .SetDecimalDigits(1); 652cdf0e10cSrcweir aIndentMF .SetDecimalDigits(1); 653cdf0e10cSrcweir // --> OD 2008-02-18 #newlistlevelattrs# 654cdf0e10cSrcweir aListtabMF.SetDecimalDigits(1); 655cdf0e10cSrcweir aAlignedAtMF.SetDecimalDigits(1); 656cdf0e10cSrcweir aIndentAtMF.SetDecimalDigits(1); 657cdf0e10cSrcweir // <-- 658cdf0e10cSrcweir } 659cdf0e10cSrcweir aDistBorderMF .SetUnit( eMetric ); 660cdf0e10cSrcweir aDistNumMF .SetUnit( eMetric ); 661cdf0e10cSrcweir aIndentMF .SetUnit( eMetric ); 662cdf0e10cSrcweir // --> OD 2008-02-18 #newlistlevelattrs# 663cdf0e10cSrcweir aListtabMF.SetUnit( eMetric ); 664cdf0e10cSrcweir aAlignedAtMF.SetUnit( eMetric ); 665cdf0e10cSrcweir aIndentAtMF.SetUnit( eMetric ); 666cdf0e10cSrcweir // <-- 667cdf0e10cSrcweir } 668cdf0e10cSrcweir 669cdf0e10cSrcweir /*-----------------03.12.97 11:06------------------- 670cdf0e10cSrcweir 671cdf0e10cSrcweir --------------------------------------------------*/ 672cdf0e10cSrcweir IMPL_LINK( SwNumPositionTabPage, EditModifyHdl, Edit *, EMPTYARG ) 673cdf0e10cSrcweir { 674cdf0e10cSrcweir sal_uInt16 nMask = 1; 675cdf0e10cSrcweir for(sal_uInt16 i = 0; i < MAXLEVEL; i++) 676cdf0e10cSrcweir { 677cdf0e10cSrcweir if(nActNumLvl & nMask) 678cdf0e10cSrcweir { 679cdf0e10cSrcweir SwNumFmt aNumFmt(pActNum->Get(i)); 680cdf0e10cSrcweir 681cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 682cdf0e10cSrcweir const sal_uInt16 nPos = aAlignLB.IsVisible() 683cdf0e10cSrcweir ? aAlignLB.GetSelectEntryPos() 684cdf0e10cSrcweir : aAlign2LB.GetSelectEntryPos(); 685cdf0e10cSrcweir // <-- 686cdf0e10cSrcweir SvxAdjust eAdjust = SVX_ADJUST_CENTER; 687cdf0e10cSrcweir if(nPos == 0) 688cdf0e10cSrcweir eAdjust = SVX_ADJUST_LEFT; 689cdf0e10cSrcweir else if(nPos == 2) 690cdf0e10cSrcweir eAdjust = SVX_ADJUST_RIGHT; 691cdf0e10cSrcweir aNumFmt.SetNumAdjust( eAdjust ); 692cdf0e10cSrcweir pActNum->Set(i, aNumFmt); 693cdf0e10cSrcweir } 694cdf0e10cSrcweir nMask <<= 1; 695cdf0e10cSrcweir } 696cdf0e10cSrcweir SetModified(); 697cdf0e10cSrcweir return 0; 698cdf0e10cSrcweir } 699cdf0e10cSrcweir /*-----------------03.12.97 11:11------------------- 700cdf0e10cSrcweir 701cdf0e10cSrcweir --------------------------------------------------*/ 702cdf0e10cSrcweir IMPL_LINK( SwNumPositionTabPage, LevelHdl, ListBox *, pBox ) 703cdf0e10cSrcweir { 704cdf0e10cSrcweir sal_uInt16 nSaveNumLvl = nActNumLvl; 705cdf0e10cSrcweir nActNumLvl = 0; 706cdf0e10cSrcweir if(pBox->IsEntryPosSelected( MAXLEVEL ) && 707cdf0e10cSrcweir (pBox->GetSelectEntryCount() == 1 || nSaveNumLvl != 0xffff)) 708cdf0e10cSrcweir { 709cdf0e10cSrcweir nActNumLvl = 0xFFFF; 710cdf0e10cSrcweir pBox->SetUpdateMode(sal_False); 711cdf0e10cSrcweir for( sal_uInt16 i = 0; i < MAXLEVEL; i++ ) 712cdf0e10cSrcweir pBox->SelectEntryPos( i, sal_False ); 713cdf0e10cSrcweir pBox->SetUpdateMode(sal_True); 714cdf0e10cSrcweir } 715cdf0e10cSrcweir else if(pBox->GetSelectEntryCount()) 716cdf0e10cSrcweir { 717cdf0e10cSrcweir sal_uInt16 nMask = 1; 718cdf0e10cSrcweir for( sal_uInt16 i = 0; i < MAXLEVEL; i++ ) 719cdf0e10cSrcweir { 720cdf0e10cSrcweir if(pBox->IsEntryPosSelected( i )) 721cdf0e10cSrcweir nActNumLvl |= nMask; 722cdf0e10cSrcweir nMask <<= 1; 723cdf0e10cSrcweir } 724cdf0e10cSrcweir pBox->SelectEntryPos( MAXLEVEL, sal_False ); 725cdf0e10cSrcweir } 726cdf0e10cSrcweir else 727cdf0e10cSrcweir { 728cdf0e10cSrcweir nActNumLvl = nSaveNumLvl; 729cdf0e10cSrcweir sal_uInt16 nMask = 1; 730cdf0e10cSrcweir for( sal_uInt16 i = 0; i < MAXLEVEL; i++ ) 731cdf0e10cSrcweir { 732cdf0e10cSrcweir if(nActNumLvl & nMask) 733cdf0e10cSrcweir { 734cdf0e10cSrcweir pBox->SelectEntryPos(i); 735cdf0e10cSrcweir break; 736cdf0e10cSrcweir } 737cdf0e10cSrcweir nMask <<=1; 738cdf0e10cSrcweir } 739cdf0e10cSrcweir } 740cdf0e10cSrcweir aRelativeCB.Enable(1 != nActNumLvl); 741cdf0e10cSrcweir SetModified(); 742cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 743cdf0e10cSrcweir InitPosAndSpaceMode(); 744cdf0e10cSrcweir ShowControlsDependingOnPosAndSpaceMode(); 745cdf0e10cSrcweir // <-- 746cdf0e10cSrcweir InitControls(); 747cdf0e10cSrcweir return 0; 748cdf0e10cSrcweir } 749cdf0e10cSrcweir /*-----------------03.12.97 12:24------------------- 750cdf0e10cSrcweir 751cdf0e10cSrcweir --------------------------------------------------*/ 752cdf0e10cSrcweir IMPL_LINK( SwNumPositionTabPage, DistanceHdl, MetricField *, pFld ) 753cdf0e10cSrcweir { 754cdf0e10cSrcweir if(bInInintControl) 755cdf0e10cSrcweir return 0; 756cdf0e10cSrcweir long nValue = static_cast< long >(pFld->Denormalize(pFld->GetValue(FUNIT_TWIP))); 757cdf0e10cSrcweir sal_uInt16 nMask = 1; 758cdf0e10cSrcweir for(sal_uInt16 i = 0; i < MAXLEVEL; i++) 759cdf0e10cSrcweir { 760cdf0e10cSrcweir if(nActNumLvl & nMask) 761cdf0e10cSrcweir { 762cdf0e10cSrcweir SwNumFmt aNumFmt( pActNum->Get( i ) ); 763cdf0e10cSrcweir if(pFld == &aDistBorderMF) 764cdf0e10cSrcweir { 765cdf0e10cSrcweir 766cdf0e10cSrcweir if(aRelativeCB.IsChecked() && aRelativeCB.IsEnabled()) 767cdf0e10cSrcweir { 768cdf0e10cSrcweir if(0 == i) 769cdf0e10cSrcweir { 770cdf0e10cSrcweir long nTmp = aNumFmt.GetFirstLineOffset(); 771cdf0e10cSrcweir aNumFmt.SetAbsLSpace( sal_uInt16(nValue - nTmp)); 772cdf0e10cSrcweir } 773cdf0e10cSrcweir else 774cdf0e10cSrcweir { 775cdf0e10cSrcweir long nTmp = pActNum->Get( i - 1 ).GetAbsLSpace() + 776cdf0e10cSrcweir pActNum->Get( i - 1 ).GetFirstLineOffset() - 777cdf0e10cSrcweir pActNum->Get( i ).GetFirstLineOffset(); 778cdf0e10cSrcweir 779cdf0e10cSrcweir aNumFmt.SetAbsLSpace( sal_uInt16(nValue + nTmp)); 780cdf0e10cSrcweir } 781cdf0e10cSrcweir } 782cdf0e10cSrcweir else 783cdf0e10cSrcweir { 784cdf0e10cSrcweir aNumFmt.SetAbsLSpace( (short)nValue - aNumFmt.GetFirstLineOffset()); 785cdf0e10cSrcweir } 786cdf0e10cSrcweir } 787cdf0e10cSrcweir else if(pFld == &aDistNumMF) 788cdf0e10cSrcweir { 789cdf0e10cSrcweir aNumFmt.SetCharTextDistance( (short)nValue ); 790cdf0e10cSrcweir } 791cdf0e10cSrcweir else if(pFld == &aIndentMF) 792cdf0e10cSrcweir { 793cdf0e10cSrcweir //jetzt muss mit dem FirstLineOffset auch der AbsLSpace veraendert werden 794cdf0e10cSrcweir long nDiff = nValue + aNumFmt.GetFirstLineOffset(); 795cdf0e10cSrcweir long nAbsLSpace = aNumFmt.GetAbsLSpace(); 796cdf0e10cSrcweir aNumFmt.SetAbsLSpace(sal_uInt16(nAbsLSpace + nDiff)); 797cdf0e10cSrcweir aNumFmt.SetFirstLineOffset( -(short)nValue ); 798cdf0e10cSrcweir } 799cdf0e10cSrcweir 800cdf0e10cSrcweir pActNum->Set( i, aNumFmt ); 801cdf0e10cSrcweir } 802cdf0e10cSrcweir nMask <<= 1; 803cdf0e10cSrcweir } 804cdf0e10cSrcweir 805cdf0e10cSrcweir SetModified(); 806cdf0e10cSrcweir if(!aDistBorderMF.IsEnabled()) 807cdf0e10cSrcweir aDistBorderMF.SetText(aEmptyStr); 808cdf0e10cSrcweir 809cdf0e10cSrcweir return 0; 810cdf0e10cSrcweir } 811cdf0e10cSrcweir 812cdf0e10cSrcweir /*-----------------04.12.97 12:35------------------- 813cdf0e10cSrcweir 814cdf0e10cSrcweir --------------------------------------------------*/ 815cdf0e10cSrcweir IMPL_LINK( SwNumPositionTabPage, RelativeHdl, CheckBox *, pBox ) 816cdf0e10cSrcweir { 817cdf0e10cSrcweir sal_Bool bOn = pBox->IsChecked(); 818cdf0e10cSrcweir sal_Bool bSingleSelection = aLevelLB.GetSelectEntryCount() == 1 && USHRT_MAX != nActNumLvl; 819cdf0e10cSrcweir sal_Bool bSetValue = sal_False; 820cdf0e10cSrcweir long nValue = 0; 821cdf0e10cSrcweir if(bOn || bSingleSelection) 822cdf0e10cSrcweir { 823cdf0e10cSrcweir sal_uInt16 nMask = 1; 824cdf0e10cSrcweir sal_Bool bFirst = sal_True; 825cdf0e10cSrcweir bSetValue = sal_True; 826cdf0e10cSrcweir for(sal_uInt16 i = 0; i < MAXLEVEL; i++) 827cdf0e10cSrcweir { 828cdf0e10cSrcweir if(nActNumLvl & nMask) 829cdf0e10cSrcweir { 830cdf0e10cSrcweir const SwNumFmt &rNumFmt = pActNum->Get(i); 831cdf0e10cSrcweir if(bFirst) 832cdf0e10cSrcweir { 833cdf0e10cSrcweir nValue = rNumFmt.GetAbsLSpace(); 834cdf0e10cSrcweir if(bOn && i) 835cdf0e10cSrcweir nValue -= pActNum->Get(i - 1).GetAbsLSpace(); 836cdf0e10cSrcweir } 837cdf0e10cSrcweir else 838cdf0e10cSrcweir bSetValue = nValue == rNumFmt.GetAbsLSpace() - pActNum->Get(i - 1).GetAbsLSpace(); 839cdf0e10cSrcweir bFirst = sal_False; 840cdf0e10cSrcweir } 841cdf0e10cSrcweir nMask <<= 1; 842cdf0e10cSrcweir } 843cdf0e10cSrcweir 844cdf0e10cSrcweir } 845cdf0e10cSrcweir if(bSetValue) 846cdf0e10cSrcweir aDistBorderMF.SetValue(aDistBorderMF.Normalize(nValue), FUNIT_TWIP); 847cdf0e10cSrcweir else 848cdf0e10cSrcweir aDistBorderMF.SetText(aEmptyStr); 849cdf0e10cSrcweir aDistBorderMF.Enable(bOn || bSingleSelection||0 != pOutlineDlg); 850cdf0e10cSrcweir bLastRelative = bOn; 851cdf0e10cSrcweir return 0; 852cdf0e10cSrcweir } 853cdf0e10cSrcweir 854cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 855cdf0e10cSrcweir IMPL_LINK( SwNumPositionTabPage, LabelFollowedByHdl_Impl, ListBox*, EMPTYARG ) 856cdf0e10cSrcweir { 857cdf0e10cSrcweir // determine value to be set at the chosen list levels 858cdf0e10cSrcweir SvxNumberFormat::SvxNumLabelFollowedBy eLabelFollowedBy = 859cdf0e10cSrcweir SvxNumberFormat::LISTTAB; 860cdf0e10cSrcweir { 861cdf0e10cSrcweir const sal_uInt16 nPos = aLabelFollowedByLB.GetSelectEntryPos(); 862cdf0e10cSrcweir if ( nPos == 1 ) 863cdf0e10cSrcweir { 864cdf0e10cSrcweir eLabelFollowedBy = SvxNumberFormat::SPACE; 865cdf0e10cSrcweir } 866cdf0e10cSrcweir else if ( nPos == 2 ) 867cdf0e10cSrcweir { 868cdf0e10cSrcweir eLabelFollowedBy = SvxNumberFormat::NOTHING; 869cdf0e10cSrcweir } 870cdf0e10cSrcweir } 871cdf0e10cSrcweir 872cdf0e10cSrcweir // set value at the chosen list levels 873cdf0e10cSrcweir bool bSameListtabPos = true; 874cdf0e10cSrcweir sal_uInt16 nFirstLvl = USHRT_MAX; 875cdf0e10cSrcweir sal_uInt16 nMask = 1; 876cdf0e10cSrcweir for( sal_uInt16 i = 0; i < MAXLEVEL; ++i ) 877cdf0e10cSrcweir { 878cdf0e10cSrcweir if ( nActNumLvl & nMask ) 879cdf0e10cSrcweir { 880cdf0e10cSrcweir SwNumFmt aNumFmt( pActNum->Get(i) ); 881cdf0e10cSrcweir aNumFmt.SetLabelFollowedBy( eLabelFollowedBy ); 882cdf0e10cSrcweir pActNum->Set( i, aNumFmt ); 883cdf0e10cSrcweir 884cdf0e10cSrcweir if ( nFirstLvl == USHRT_MAX ) 885cdf0e10cSrcweir { 886cdf0e10cSrcweir nFirstLvl = i; 887cdf0e10cSrcweir } 888cdf0e10cSrcweir else 889cdf0e10cSrcweir { 890cdf0e10cSrcweir bSameListtabPos &= aNumFmt.GetListtabPos() == 891cdf0e10cSrcweir pActNum->Get( nFirstLvl ).GetListtabPos(); 892cdf0e10cSrcweir } 893cdf0e10cSrcweir } 894cdf0e10cSrcweir nMask <<= 1; 895cdf0e10cSrcweir } 896cdf0e10cSrcweir 897cdf0e10cSrcweir // enable/disable metric field for list tab stop position depending on 898cdf0e10cSrcweir // selected item following the list label. 899cdf0e10cSrcweir aListtabFT.Enable( eLabelFollowedBy == SvxNumberFormat::LISTTAB ); 900cdf0e10cSrcweir aListtabMF.Enable( eLabelFollowedBy == SvxNumberFormat::LISTTAB ); 901cdf0e10cSrcweir if ( bSameListtabPos && eLabelFollowedBy == SvxNumberFormat::LISTTAB ) 902cdf0e10cSrcweir { 903cdf0e10cSrcweir aListtabMF.SetValue( 904cdf0e10cSrcweir aListtabMF.Normalize( pActNum->Get( nFirstLvl ).GetListtabPos() ), 905cdf0e10cSrcweir FUNIT_TWIP ); 906cdf0e10cSrcweir } 907cdf0e10cSrcweir else 908cdf0e10cSrcweir { 909cdf0e10cSrcweir aListtabMF.SetText( String() ); 910cdf0e10cSrcweir } 911cdf0e10cSrcweir 912cdf0e10cSrcweir SetModified(); 913cdf0e10cSrcweir 914cdf0e10cSrcweir return 0; 915cdf0e10cSrcweir } 916cdf0e10cSrcweir // <-- 917cdf0e10cSrcweir 918cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 919cdf0e10cSrcweir IMPL_LINK( SwNumPositionTabPage, ListtabPosHdl_Impl, MetricField*, pFld ) 920cdf0e10cSrcweir { 921cdf0e10cSrcweir // determine value to be set at the chosen list levels 922cdf0e10cSrcweir const long nValue = static_cast< long >(pFld->Denormalize(pFld->GetValue(FUNIT_TWIP))); 923cdf0e10cSrcweir 924cdf0e10cSrcweir // set value at the chosen list levels 925cdf0e10cSrcweir sal_uInt16 nMask = 1; 926cdf0e10cSrcweir for( sal_uInt16 i = 0; i < MAXLEVEL; ++i ) 927cdf0e10cSrcweir { 928cdf0e10cSrcweir if ( nActNumLvl & nMask ) 929cdf0e10cSrcweir { 930cdf0e10cSrcweir SwNumFmt aNumFmt( pActNum->Get(i) ); 931cdf0e10cSrcweir aNumFmt.SetListtabPos( nValue ); 932cdf0e10cSrcweir pActNum->Set( i, aNumFmt ); 933cdf0e10cSrcweir } 934cdf0e10cSrcweir nMask <<= 1; 935cdf0e10cSrcweir } 936cdf0e10cSrcweir 937cdf0e10cSrcweir SetModified(); 938cdf0e10cSrcweir 939cdf0e10cSrcweir return 0; 940cdf0e10cSrcweir } 941cdf0e10cSrcweir // <-- 942cdf0e10cSrcweir 943cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 944cdf0e10cSrcweir IMPL_LINK( SwNumPositionTabPage, AlignAtHdl_Impl, MetricField*, pFld ) 945cdf0e10cSrcweir { 946cdf0e10cSrcweir // determine value to be set at the chosen list levels 947cdf0e10cSrcweir const long nValue = static_cast< long >(pFld->Denormalize(pFld->GetValue(FUNIT_TWIP))); 948cdf0e10cSrcweir 949cdf0e10cSrcweir // set value at the chosen list levels 950cdf0e10cSrcweir sal_uInt16 nMask = 1; 951cdf0e10cSrcweir for( sal_uInt16 i = 0; i < MAXLEVEL; ++i ) 952cdf0e10cSrcweir { 953cdf0e10cSrcweir if ( nActNumLvl & nMask ) 954cdf0e10cSrcweir { 955cdf0e10cSrcweir SwNumFmt aNumFmt( pActNum->Get(i) ); 956cdf0e10cSrcweir const long nFirstLineIndent = nValue - aNumFmt.GetIndentAt(); 957cdf0e10cSrcweir aNumFmt.SetFirstLineIndent( nFirstLineIndent ); 958cdf0e10cSrcweir pActNum->Set( i, aNumFmt ); 959cdf0e10cSrcweir } 960cdf0e10cSrcweir nMask <<= 1; 961cdf0e10cSrcweir } 962cdf0e10cSrcweir 963cdf0e10cSrcweir SetModified(); 964cdf0e10cSrcweir 965cdf0e10cSrcweir return 0; 966cdf0e10cSrcweir } 967cdf0e10cSrcweir // <-- 968cdf0e10cSrcweir 969cdf0e10cSrcweir // --> OD 2008-02-01 #newlistlevelattrs# 970cdf0e10cSrcweir IMPL_LINK( SwNumPositionTabPage, IndentAtHdl_Impl, MetricField*, pFld ) 971cdf0e10cSrcweir { 972cdf0e10cSrcweir // determine value to be set at the chosen list levels 973cdf0e10cSrcweir const long nValue = static_cast< long >(pFld->Denormalize(pFld->GetValue(FUNIT_TWIP))); 974cdf0e10cSrcweir 975cdf0e10cSrcweir // set value at the chosen list levels 976cdf0e10cSrcweir sal_uInt16 nMask = 1; 977cdf0e10cSrcweir for( sal_uInt16 i = 0; i < MAXLEVEL; ++i ) 978cdf0e10cSrcweir { 979cdf0e10cSrcweir if ( nActNumLvl & nMask ) 980cdf0e10cSrcweir { 981cdf0e10cSrcweir SwNumFmt aNumFmt( pActNum->Get(i) ); 982cdf0e10cSrcweir const long nAlignedAt = aNumFmt.GetIndentAt() + 983cdf0e10cSrcweir aNumFmt.GetFirstLineIndent(); 984cdf0e10cSrcweir aNumFmt.SetIndentAt( nValue ); 985cdf0e10cSrcweir const long nNewFirstLineIndent = nAlignedAt - nValue; 986cdf0e10cSrcweir aNumFmt.SetFirstLineIndent( nNewFirstLineIndent ); 987cdf0e10cSrcweir pActNum->Set( i, aNumFmt ); 988cdf0e10cSrcweir } 989cdf0e10cSrcweir nMask <<= 1; 990cdf0e10cSrcweir } 991cdf0e10cSrcweir 992cdf0e10cSrcweir SetModified(); 993cdf0e10cSrcweir 994cdf0e10cSrcweir return 0; 995cdf0e10cSrcweir } 996cdf0e10cSrcweir // <-- 997cdf0e10cSrcweir 998cdf0e10cSrcweir /*-----------------05.12.97 15:33------------------- 999cdf0e10cSrcweir 1000cdf0e10cSrcweir --------------------------------------------------*/ 1001cdf0e10cSrcweir IMPL_LINK( SwNumPositionTabPage, StandardHdl, PushButton *, EMPTYARG ) 1002cdf0e10cSrcweir { 1003cdf0e10cSrcweir sal_uInt16 nMask = 1; 1004cdf0e10cSrcweir for(sal_uInt16 i = 0; i < MAXLEVEL; i++) 1005cdf0e10cSrcweir { 1006cdf0e10cSrcweir if(nActNumLvl & nMask) 1007cdf0e10cSrcweir { 1008cdf0e10cSrcweir SwNumFmt aNumFmt( pActNum->Get( i ) ); 1009cdf0e10cSrcweir // --> OD 2008-02-11 #newlistlevelattrs# 1010cdf0e10cSrcweir SwNumRule aTmpNumRule( pWrtSh->GetUniqueNumRuleName(), 1011cdf0e10cSrcweir aNumFmt.GetPositionAndSpaceMode(), 1012cdf0e10cSrcweir pOutlineDlg ? OUTLINE_RULE : NUM_RULE ); 1013cdf0e10cSrcweir // <-- 1014cdf0e10cSrcweir SwNumFmt aTempFmt(aTmpNumRule.Get( i )); 1015cdf0e10cSrcweir // --> OD 2008-02-05 #newlistlevelattrs# 1016cdf0e10cSrcweir aNumFmt.SetPositionAndSpaceMode( aTempFmt.GetPositionAndSpaceMode() ); 1017cdf0e10cSrcweir if ( aTempFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_WIDTH_AND_POSITION ) 1018cdf0e10cSrcweir { 1019cdf0e10cSrcweir aNumFmt.SetAbsLSpace( aTempFmt.GetAbsLSpace()); 1020cdf0e10cSrcweir aNumFmt.SetCharTextDistance( aTempFmt.GetCharTextDistance() ); 1021cdf0e10cSrcweir aNumFmt.SetFirstLineOffset( aTempFmt.GetFirstLineOffset() ); 1022cdf0e10cSrcweir } 1023cdf0e10cSrcweir else if ( aTempFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT ) 1024cdf0e10cSrcweir { 1025cdf0e10cSrcweir aNumFmt.SetNumAdjust( aTempFmt.GetNumAdjust() ); 1026cdf0e10cSrcweir aNumFmt.SetLabelFollowedBy( aTempFmt.GetLabelFollowedBy() ); 1027cdf0e10cSrcweir aNumFmt.SetListtabPos( aTempFmt.GetListtabPos() ); 1028cdf0e10cSrcweir aNumFmt.SetFirstLineIndent( aTempFmt.GetFirstLineIndent() ); 1029cdf0e10cSrcweir aNumFmt.SetIndentAt( aTempFmt.GetIndentAt() ); 1030cdf0e10cSrcweir } 1031cdf0e10cSrcweir // <-- 1032cdf0e10cSrcweir 1033cdf0e10cSrcweir pActNum->Set( i, aNumFmt ); 1034cdf0e10cSrcweir } 1035cdf0e10cSrcweir nMask <<= 1; 1036cdf0e10cSrcweir } 1037cdf0e10cSrcweir 1038cdf0e10cSrcweir InitControls(); 1039cdf0e10cSrcweir SetModified(); 1040cdf0e10cSrcweir return 0; 1041cdf0e10cSrcweir } 1042cdf0e10cSrcweir 1043cdf0e10cSrcweir #if OSL_DEBUG_LEVEL > 1 1044cdf0e10cSrcweir void SwNumPositionTabPage::SetModified(sal_Bool bRepaint) 1045cdf0e10cSrcweir { 1046cdf0e10cSrcweir bModified = sal_True; 1047cdf0e10cSrcweir if(bRepaint) 1048cdf0e10cSrcweir { 1049cdf0e10cSrcweir aPreviewWIN.SetLevel(nActNumLvl); 1050cdf0e10cSrcweir aPreviewWIN.Invalidate(); 1051cdf0e10cSrcweir } 1052cdf0e10cSrcweir } 1053cdf0e10cSrcweir 1054cdf0e10cSrcweir #endif 1055cdf0e10cSrcweir 1056cdf0e10cSrcweir /**************************************************************************/ 1057cdf0e10cSrcweir /* */ 1058cdf0e10cSrcweir /* */ 1059cdf0e10cSrcweir /**************************************************************************/ 1060cdf0e10cSrcweir 1061cdf0e10cSrcweir 1062cdf0e10cSrcweir SwSvxNumBulletTabDialog::SwSvxNumBulletTabDialog(Window* pParent, 1063cdf0e10cSrcweir const SfxItemSet* pSwItemSet, SwWrtShell & rSh) : 1064cdf0e10cSrcweir SfxTabDialog(pParent, SW_RES(DLG_SVXTEST_NUM_BULLET), pSwItemSet, sal_False, &aEmptyStr), 1065cdf0e10cSrcweir rWrtSh(rSh), 1066cdf0e10cSrcweir sRemoveText(SW_RES(ST_RESET)), 1067cdf0e10cSrcweir nRetOptionsDialog(USHRT_MAX) 1068cdf0e10cSrcweir { 1069cdf0e10cSrcweir FreeResource(); 1070cdf0e10cSrcweir GetUserButton()->SetText(sRemoveText); 1071cdf0e10cSrcweir GetUserButton()->SetHelpId(HID_NUM_RESET); 1072cdf0e10cSrcweir GetUserButton()->SetClickHdl(LINK(this, SwSvxNumBulletTabDialog, RemoveNumberingHdl)); 1073*34760e49SOliver-Rainer Wittmann if(!rWrtSh.GetNumRuleAtCurrCrsrPos()) 1074cdf0e10cSrcweir GetUserButton()->Enable(sal_False); 1075cdf0e10cSrcweir AddTabPage( RID_SVXPAGE_PICK_SINGLE_NUM ); 1076cdf0e10cSrcweir AddTabPage( RID_SVXPAGE_PICK_BULLET ); 1077cdf0e10cSrcweir AddTabPage( RID_SVXPAGE_PICK_NUM ); 1078cdf0e10cSrcweir AddTabPage( RID_SVXPAGE_PICK_BMP ); 1079cdf0e10cSrcweir AddTabPage( RID_SVXPAGE_NUM_OPTIONS ); 1080cdf0e10cSrcweir AddTabPage( RID_SVXPAGE_NUM_POSITION ); 1081cdf0e10cSrcweir 1082cdf0e10cSrcweir } 1083cdf0e10cSrcweir /*-----------------07.02.97 12.08------------------- 1084cdf0e10cSrcweir 1085cdf0e10cSrcweir --------------------------------------------------*/ 1086cdf0e10cSrcweir 1087cdf0e10cSrcweir SwSvxNumBulletTabDialog::~SwSvxNumBulletTabDialog() 1088cdf0e10cSrcweir { 1089cdf0e10cSrcweir } 1090cdf0e10cSrcweir 1091cdf0e10cSrcweir /*-----------------07.02.97 14.48------------------- 1092cdf0e10cSrcweir 1093cdf0e10cSrcweir --------------------------------------------------*/ 1094cdf0e10cSrcweir 1095cdf0e10cSrcweir void SwSvxNumBulletTabDialog::PageCreated(sal_uInt16 nPageId, SfxTabPage& rPage) 1096cdf0e10cSrcweir { 1097cdf0e10cSrcweir //Namen der Vorlagen und Metric setzen 1098cdf0e10cSrcweir String sNumCharFmt, sBulletCharFmt; 1099cdf0e10cSrcweir SwStyleNameMapper::FillUIName( RES_POOLCHR_NUM_LEVEL, sNumCharFmt ); 1100cdf0e10cSrcweir SwStyleNameMapper::FillUIName( RES_POOLCHR_BUL_LEVEL, sBulletCharFmt ); 1101cdf0e10cSrcweir 1102cdf0e10cSrcweir switch ( nPageId ) 1103cdf0e10cSrcweir { 1104cdf0e10cSrcweir case RID_SVXPAGE_PICK_NUM: 1105cdf0e10cSrcweir { 1106cdf0e10cSrcweir SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool())); 1107cdf0e10cSrcweir aSet.Put (SfxStringItem(SID_NUM_CHAR_FMT,sNumCharFmt)); 1108cdf0e10cSrcweir aSet.Put (SfxStringItem(SID_BULLET_CHAR_FMT,sBulletCharFmt)); 1109cdf0e10cSrcweir rPage.PageCreated(aSet); 1110cdf0e10cSrcweir } 1111cdf0e10cSrcweir break; 1112cdf0e10cSrcweir case RID_SVXPAGE_PICK_BULLET : 1113cdf0e10cSrcweir { 1114cdf0e10cSrcweir SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool())); 1115cdf0e10cSrcweir aSet.Put (SfxStringItem(SID_BULLET_CHAR_FMT,sBulletCharFmt)); 1116cdf0e10cSrcweir rPage.PageCreated(aSet); 1117cdf0e10cSrcweir } 1118cdf0e10cSrcweir break; 1119cdf0e10cSrcweir 1120cdf0e10cSrcweir case RID_SVXPAGE_NUM_OPTIONS: 1121cdf0e10cSrcweir { 1122cdf0e10cSrcweir SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool())); 1123cdf0e10cSrcweir aSet.Put (SfxStringItem(SID_NUM_CHAR_FMT,sNumCharFmt)); 1124cdf0e10cSrcweir aSet.Put (SfxStringItem(SID_BULLET_CHAR_FMT,sBulletCharFmt)); 1125cdf0e10cSrcweir // Zeichenvorlagen sammeln 1126cdf0e10cSrcweir ListBox rCharFmtLB(this); 1127cdf0e10cSrcweir rCharFmtLB.Clear(); 1128cdf0e10cSrcweir rCharFmtLB.InsertEntry( ViewShell::GetShellRes()->aStrNone ); 1129cdf0e10cSrcweir SwDocShell* pDocShell = rWrtSh.GetView().GetDocShell(); 1130cdf0e10cSrcweir ::FillCharStyleListBox(rCharFmtLB, pDocShell); 1131cdf0e10cSrcweir List aList; 1132cdf0e10cSrcweir for(sal_uInt16 j = 0; j < rCharFmtLB.GetEntryCount(); j++) 1133cdf0e10cSrcweir { 1134cdf0e10cSrcweir 1135cdf0e10cSrcweir aList.Insert( new XubString(rCharFmtLB.GetEntry(j)), LIST_APPEND ); 1136cdf0e10cSrcweir } 1137cdf0e10cSrcweir aSet.Put( SfxStringListItem( SID_CHAR_FMT_LIST_BOX,&aList ) ) ; 1138cdf0e10cSrcweir 1139cdf0e10cSrcweir FieldUnit eMetric = ::GetDfltMetric(0 != PTR_CAST(SwWebDocShell, pDocShell)); 1140cdf0e10cSrcweir aSet.Put ( SfxAllEnumItem(SID_METRIC_ITEM, static_cast< sal_uInt16 >(eMetric) ) ); 1141cdf0e10cSrcweir rPage.PageCreated(aSet); 1142cdf0e10cSrcweir for( sal_uInt16 i = (sal_uInt16)aList.Count(); i; --i ) 1143cdf0e10cSrcweir delete (XubString*)aList.Remove(i); 1144cdf0e10cSrcweir aList.Clear(); 1145cdf0e10cSrcweir } 1146cdf0e10cSrcweir break; 1147cdf0e10cSrcweir case RID_SVXPAGE_NUM_POSITION: 1148cdf0e10cSrcweir { 1149cdf0e10cSrcweir SwDocShell* pDocShell = rWrtSh.GetView().GetDocShell(); 1150cdf0e10cSrcweir FieldUnit eMetric = ::GetDfltMetric(0 != PTR_CAST(SwWebDocShell, pDocShell)); 1151cdf0e10cSrcweir SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool())); 1152cdf0e10cSrcweir aSet.Put ( SfxAllEnumItem(SID_METRIC_ITEM, static_cast< sal_uInt16 >(eMetric)) ); 1153cdf0e10cSrcweir rPage.PageCreated(aSet); 1154cdf0e10cSrcweir // ((SvxNumPositionTabPage&)rPage).SetWrtShell(&rWrtSh); 1155cdf0e10cSrcweir } 1156cdf0e10cSrcweir break; 1157cdf0e10cSrcweir } 1158cdf0e10cSrcweir } 1159cdf0e10cSrcweir /*-----------------17.02.97 16.52------------------- 1160cdf0e10cSrcweir 1161cdf0e10cSrcweir --------------------------------------------------*/ 1162cdf0e10cSrcweir short SwSvxNumBulletTabDialog::Ok() 1163cdf0e10cSrcweir { 1164cdf0e10cSrcweir short nRet = SfxTabDialog::Ok(); 1165cdf0e10cSrcweir pExampleSet->ClearItem(SID_PARAM_NUM_PRESET); 1166cdf0e10cSrcweir return nRet; 1167cdf0e10cSrcweir } 1168cdf0e10cSrcweir /* -----------------02.12.98 08:35------------------- 1169cdf0e10cSrcweir * 1170cdf0e10cSrcweir * --------------------------------------------------*/ 1171cdf0e10cSrcweir IMPL_LINK(SwSvxNumBulletTabDialog, RemoveNumberingHdl, PushButton*, EMPTYARG) 1172cdf0e10cSrcweir { 1173cdf0e10cSrcweir EndDialog(RET_USER); 1174cdf0e10cSrcweir return 0; 1175cdf0e10cSrcweir } 1176cdf0e10cSrcweir 1177cdf0e10cSrcweir 1178