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