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_scui.hxx" 26 27 28 //------------------------------------------------------------------ 29 30 #include "scitems.hxx" 31 #include "tpview.hxx" 32 #include "global.hxx" 33 #include "viewopti.hxx" 34 #include "tabvwsh.hxx" 35 #include "uiitems.hxx" 36 #include "scresid.hxx" 37 #include "docsh.hxx" 38 #include "sc.hrc" // -> Slot-IDs 39 #include "optdlg.hrc" 40 #include "globstr.hrc" 41 #include <appoptio.hxx> 42 #include <scmod.hxx> 43 #include <svx/dlgutil.hxx> 44 #include <svx/drawitem.hxx> 45 #include <svx/xtable.hxx> 46 47 48 // STATIC DATA ----------------------------------------------------------- 49 50 51 52 /*-----------------11.01.97 10.52------------------- 53 Optionen Inhalte 54 --------------------------------------------------*/ 55 56 ScTpContentOptions::ScTpContentOptions( Window* pParent, 57 const SfxItemSet& rArgSet ) : 58 SfxTabPage(pParent, ScResId( RID_SCPAGE_CONTENT ), rArgSet), 59 60 aLinesGB( this, ScResId(GB_LINES )), 61 aGridCB( this, ScResId(CB_GRID )), 62 aColorFT( this, ScResId(FT_COLOR )), 63 aColorLB( this, ScResId(LB_COLOR )), 64 aBreakCB( this, ScResId(CB_PAGEBREAKS )), 65 aGuideLineCB( this, ScResId(CB_GUIDELINE )), 66 aBigHandleCB( this, ScResId(CB_BIGHANDLES )), 67 68 aSeparator1FL (this, ScResId(FL_SEPARATOR1 )), 69 aDisplayGB( this, ScResId(GB_DISPLAY)), 70 aFormulaCB( this, ScResId(CB_FORMULA)), 71 aNilCB( this, ScResId(CB_NIL )), 72 aAnnotCB( this, ScResId(CB_ANNOT )), 73 aValueCB( this, ScResId(CB_VALUE )), 74 aAnchorCB( this, ScResId(CB_ANCHOR )), 75 aClipMarkCB( this, ScResId(CB_CLIP )), 76 aRangeFindCB( this, ScResId( CB_RFIND )), 77 78 aObjectGB( this, ScResId(GB_OBJECT )), 79 aObjGrfFT( this, ScResId(FT_OBJGRF )), 80 aObjGrfLB( this, ScResId(LB_OBJGRF )), 81 aDiagramFT( this, ScResId(FT_DIAGRAM)), 82 aDiagramLB( this, ScResId(LB_DIAGRAM)), 83 aDrawFT( this, ScResId(FT_DRAW )), 84 aDrawLB( this, ScResId(LB_DRAW )), 85 86 aZoomGB( this, ScResId(GB_ZOOM) ), 87 aSyncZoomCB( this, ScResId(CB_SYNCZOOM) ), 88 89 aSeparator2FL (this, ScResId(FL_SEPARATOR2)), 90 aWindowGB( this, ScResId(GB_WINDOW )), 91 aRowColHeaderCB(this, ScResId(CB_ROWCOLHEADER )), 92 aHScrollCB( this, ScResId(CB_HSCROLL )), 93 aVScrollCB( this, ScResId(CB_VSCROLL )), 94 aTblRegCB( this, ScResId(CB_TBLREG )), 95 aOutlineCB( this, ScResId(CB_OUTLINE )), 96 pLocalOptions(0) 97 { 98 FreeResource(); 99 aSeparator1FL.SetStyle( aSeparator1FL.GetStyle() | WB_VERT ); 100 aSeparator2FL.SetStyle( aSeparator2FL.GetStyle() | WB_VERT ); 101 SetExchangeSupport(); 102 Link aSelObjHdl(LINK( this, ScTpContentOptions, SelLbObjHdl ) ); 103 aObjGrfLB. SetSelectHdl(aSelObjHdl); 104 aDiagramLB. SetSelectHdl(aSelObjHdl); 105 aDrawLB. SetSelectHdl(aSelObjHdl); 106 107 Link aCBHdl(LINK( this, ScTpContentOptions, CBHdl ) ); 108 aFormulaCB .SetClickHdl(aCBHdl); 109 aNilCB .SetClickHdl(aCBHdl); 110 aAnnotCB .SetClickHdl(aCBHdl); 111 aValueCB .SetClickHdl(aCBHdl); 112 aAnchorCB .SetClickHdl(aCBHdl); 113 aClipMarkCB .SetClickHdl(aCBHdl); 114 115 aVScrollCB .SetClickHdl(aCBHdl); 116 aHScrollCB .SetClickHdl(aCBHdl); 117 aTblRegCB .SetClickHdl(aCBHdl); 118 aOutlineCB .SetClickHdl(aCBHdl); 119 aBreakCB .SetClickHdl(aCBHdl); 120 aGuideLineCB.SetClickHdl(aCBHdl); 121 aBigHandleCB.SetClickHdl(aCBHdl); 122 aRowColHeaderCB.SetClickHdl(aCBHdl); 123 124 aGridCB .SetClickHdl( LINK( this, ScTpContentOptions, GridHdl ) ); 125 } 126 /*-----------------11.01.97 10.52------------------- 127 128 --------------------------------------------------*/ 129 130 ScTpContentOptions::~ScTpContentOptions() 131 { 132 delete pLocalOptions; 133 } 134 /*-----------------11.01.97 10.52------------------- 135 136 --------------------------------------------------*/ 137 138 SfxTabPage* ScTpContentOptions::Create( Window* pParent, 139 const SfxItemSet& rCoreSet ) 140 { 141 return new ScTpContentOptions(pParent, rCoreSet); 142 } 143 /*-----------------11.01.97 10.52------------------- 144 145 --------------------------------------------------*/ 146 sal_Bool ScTpContentOptions::FillItemSet( SfxItemSet& rCoreSet ) 147 { 148 sal_Bool bRet = sal_False; 149 if( aFormulaCB .GetSavedValue() != aFormulaCB .IsChecked() || 150 aNilCB .GetSavedValue() != aNilCB .IsChecked() || 151 aAnnotCB .GetSavedValue() != aAnnotCB .IsChecked() || 152 aValueCB .GetSavedValue() != aValueCB .IsChecked() || 153 aAnchorCB .GetSavedValue() != aAnchorCB .IsChecked() || 154 aClipMarkCB .GetSavedValue() != aClipMarkCB .IsChecked() || 155 aObjGrfLB .GetSavedValue() != aObjGrfLB .GetSelectEntryPos() || 156 aDiagramLB .GetSavedValue() != aDiagramLB .GetSelectEntryPos() || 157 aDrawLB .GetSavedValue() != aDrawLB .GetSelectEntryPos() || 158 aGridCB .GetSavedValue() != aGridCB.IsChecked() || 159 aRowColHeaderCB .GetSavedValue() != aRowColHeaderCB.IsChecked() || 160 aHScrollCB .GetSavedValue() != aHScrollCB .IsChecked() || 161 aVScrollCB .GetSavedValue() != aVScrollCB .IsChecked() || 162 aTblRegCB .GetSavedValue() != aTblRegCB .IsChecked() || 163 aOutlineCB .GetSavedValue() != aOutlineCB .IsChecked() || 164 aColorLB .GetSavedValue() != aColorLB .GetSelectEntryPos() || 165 aBreakCB .GetSavedValue() != aBreakCB .IsChecked() || 166 aGuideLineCB .GetSavedValue() != aGuideLineCB .IsChecked() || 167 aBigHandleCB .GetSavedValue() != aBigHandleCB .IsChecked()) 168 { 169 pLocalOptions->SetGridColor( aColorLB.GetSelectEntryColor(), 170 aColorLB.GetSelectEntry() ); 171 rCoreSet.Put(ScTpViewItem(SID_SCVIEWOPTIONS, *pLocalOptions)); 172 bRet = sal_True; 173 } 174 if(aRangeFindCB.GetSavedValue() != aRangeFindCB.IsChecked()) 175 { 176 rCoreSet.Put(SfxBoolItem(SID_SC_INPUT_RANGEFINDER, aRangeFindCB.IsChecked())); 177 bRet = sal_True; 178 } 179 if(aSyncZoomCB.GetSavedValue() != aSyncZoomCB.IsChecked()) 180 { 181 rCoreSet.Put(SfxBoolItem(SID_SC_OPT_SYNCZOOM, aSyncZoomCB.IsChecked())); 182 bRet = sal_True; 183 } 184 185 186 return bRet; 187 } 188 /*-----------------11.01.97 10.53------------------- 189 190 --------------------------------------------------*/ 191 192 void ScTpContentOptions::Reset( const SfxItemSet& rCoreSet ) 193 { 194 const SfxPoolItem* pItem; 195 if(SFX_ITEM_SET == rCoreSet.GetItemState(SID_SCVIEWOPTIONS, sal_False , &pItem)) 196 pLocalOptions = new ScViewOptions( 197 ((const ScTpViewItem*)pItem)->GetViewOptions() ); 198 else 199 pLocalOptions = new ScViewOptions; 200 aFormulaCB .Check(pLocalOptions->GetOption(VOPT_FORMULAS)); 201 aNilCB .Check(pLocalOptions->GetOption(VOPT_NULLVALS)); 202 aAnnotCB .Check(pLocalOptions->GetOption(VOPT_NOTES)); 203 aValueCB .Check(pLocalOptions->GetOption(VOPT_SYNTAX)); 204 aAnchorCB .Check(pLocalOptions->GetOption(VOPT_ANCHOR)); 205 aClipMarkCB .Check(pLocalOptions->GetOption(VOPT_CLIPMARKS)); 206 207 aObjGrfLB .SelectEntryPos( (sal_uInt16)pLocalOptions->GetObjMode(VOBJ_TYPE_OLE) ); 208 aDiagramLB .SelectEntryPos( (sal_uInt16)pLocalOptions->GetObjMode(VOBJ_TYPE_CHART) ); 209 aDrawLB .SelectEntryPos( (sal_uInt16)pLocalOptions->GetObjMode(VOBJ_TYPE_DRAW) ); 210 211 aRowColHeaderCB.Check( pLocalOptions->GetOption(VOPT_HEADER) ); 212 aHScrollCB .Check( pLocalOptions->GetOption(VOPT_HSCROLL) ); 213 aVScrollCB .Check( pLocalOptions->GetOption(VOPT_VSCROLL) ); 214 aTblRegCB .Check( pLocalOptions->GetOption(VOPT_TABCONTROLS) ); 215 aOutlineCB .Check( pLocalOptions->GetOption(VOPT_OUTLINER) ); 216 217 InitGridOpt(); 218 219 aBreakCB.Check( pLocalOptions->GetOption(VOPT_PAGEBREAKS) ); 220 aGuideLineCB.Check( pLocalOptions->GetOption(VOPT_HELPLINES) ); 221 aBigHandleCB.Check( pLocalOptions->GetOption(VOPT_BIGHANDLES) ); 222 223 if(SFX_ITEM_SET == rCoreSet.GetItemState(SID_SC_INPUT_RANGEFINDER, sal_False, &pItem)) 224 aRangeFindCB.Check(((const SfxBoolItem*)pItem)->GetValue()); 225 if(SFX_ITEM_SET == rCoreSet.GetItemState(SID_SC_OPT_SYNCZOOM, sal_False, &pItem)) 226 aSyncZoomCB.Check(((const SfxBoolItem*)pItem)->GetValue()); 227 228 aRangeFindCB.SaveValue(); 229 aSyncZoomCB.SaveValue(); 230 231 aFormulaCB .SaveValue(); 232 aNilCB .SaveValue(); 233 aAnnotCB .SaveValue(); 234 aValueCB .SaveValue(); 235 aAnchorCB .SaveValue(); 236 aClipMarkCB .SaveValue(); 237 aObjGrfLB .SaveValue(); 238 aDiagramLB .SaveValue(); 239 aDrawLB .SaveValue(); 240 aRowColHeaderCB .SaveValue(); 241 aHScrollCB .SaveValue(); 242 aVScrollCB .SaveValue(); 243 aTblRegCB .SaveValue(); 244 aOutlineCB .SaveValue(); 245 aGridCB .SaveValue(); 246 aColorLB .SaveValue(); 247 aBreakCB .SaveValue(); 248 aGuideLineCB .SaveValue(); 249 aBigHandleCB .SaveValue(); 250 } 251 /*-----------------11.01.97 12.45------------------- 252 253 --------------------------------------------------*/ 254 255 void ScTpContentOptions::ActivatePage( const SfxItemSet& rSet) 256 { 257 const SfxPoolItem* pItem; 258 if(SFX_ITEM_SET == rSet.GetItemState(SID_SCVIEWOPTIONS, sal_False , &pItem)) 259 *pLocalOptions = ((const ScTpViewItem*)pItem)->GetViewOptions(); 260 } 261 /*-----------------11.01.97 12.45------------------- 262 263 --------------------------------------------------*/ 264 265 int ScTpContentOptions::DeactivatePage( SfxItemSet* pSetP ) 266 { 267 if(pSetP) 268 FillItemSet(*pSetP); 269 return SfxTabPage::LEAVE_PAGE; 270 } 271 /*-----------------11.01.97 13.43------------------- 272 273 --------------------------------------------------*/ 274 275 IMPL_LINK( ScTpContentOptions, SelLbObjHdl, ListBox*, pLb ) 276 { 277 sal_uInt16 nSelPos = pLb->GetSelectEntryPos(); 278 ScVObjMode eMode = ScVObjMode(nSelPos); 279 ScVObjType eType = VOBJ_TYPE_OLE; 280 281 if ( pLb == &aDiagramLB ) 282 eType = VOBJ_TYPE_CHART; 283 else if ( pLb == &aDrawLB ) 284 eType = VOBJ_TYPE_DRAW; 285 286 pLocalOptions->SetObjMode( eType, eMode ); 287 288 return 0; 289 } 290 291 /*-----------------11.01.97 14.25------------------- 292 293 --------------------------------------------------*/ 294 295 IMPL_LINK( ScTpContentOptions, CBHdl, CheckBox*, pBtn ) 296 { 297 ScViewOption eOption = VOPT_FORMULAS; 298 sal_Bool bChecked = pBtn->IsChecked(); 299 300 if ( &aFormulaCB == pBtn ) eOption = VOPT_FORMULAS; 301 else if ( &aNilCB == pBtn ) eOption = VOPT_NULLVALS; 302 else if ( &aAnnotCB == pBtn ) eOption = VOPT_NOTES; 303 else if ( &aValueCB == pBtn ) eOption = VOPT_SYNTAX; 304 else if ( &aAnchorCB == pBtn ) eOption = VOPT_ANCHOR; 305 else if ( &aClipMarkCB == pBtn ) eOption = VOPT_CLIPMARKS; 306 else if ( &aVScrollCB == pBtn ) eOption = VOPT_VSCROLL; 307 else if ( &aHScrollCB == pBtn ) eOption = VOPT_HSCROLL; 308 else if ( &aTblRegCB == pBtn ) eOption = VOPT_TABCONTROLS; 309 else if ( &aOutlineCB == pBtn ) eOption = VOPT_OUTLINER; 310 else if ( &aBreakCB == pBtn ) eOption = VOPT_PAGEBREAKS; 311 else if ( &aGuideLineCB == pBtn ) eOption = VOPT_HELPLINES; 312 else if ( &aBigHandleCB == pBtn ) eOption = VOPT_BIGHANDLES; 313 else if ( &aRowColHeaderCB == pBtn ) eOption = VOPT_HEADER; 314 315 return 0; 316 } 317 /*-----------------11.01.97 13.13------------------- 318 319 --------------------------------------------------*/ 320 321 void ScTpContentOptions::InitGridOpt() 322 { 323 sal_Bool bGrid = pLocalOptions->GetOption( VOPT_GRID ); 324 325 aGridCB.Check( bGrid ); 326 327 if ( bGrid ) 328 aColorFT.Enable(), aColorLB.Enable(); 329 else 330 aColorFT.Disable(), aColorLB.Disable(); 331 332 if ( aColorLB.GetEntryCount() == 0 ) 333 { 334 SfxObjectShell* pDocSh = SfxObjectShell::Current(); 335 // hier koennte auch eine andere DocShell kommen! 336 pDocSh = PTR_CAST(ScDocShell, pDocSh); 337 338 XColorListSharedPtr aColorTable; 339 340 if ( pDocSh ) 341 { 342 const SfxPoolItem* pItem = pDocSh->GetItem( SID_COLOR_TABLE ); 343 344 if ( pItem ) 345 aColorTable = static_cast< const SvxColorTableItem* >(pItem)->GetColorTable(); 346 } 347 else 348 aColorTable = XColorList::GetStdColorList(); 349 350 if ( !aColorTable.get() ) 351 return; 352 353 //------------------------------------------------------ 354 355 aColorLB.SetUpdateMode( sal_False ); 356 357 // Eintraege aus der Colortable 358 359 long nCount = aColorTable->Count(); 360 for ( long n=0; n<nCount; n++ ) 361 { 362 XColorEntry* pEntry = aColorTable->GetColor(n); 363 aColorLB.InsertEntry( pEntry->GetColor(), pEntry->GetName() ); 364 } 365 366 // Standard-Gitterfarbe 367 368 Color aStdCol( SC_STD_GRIDCOLOR ); // wie Default in ScViewOptions 369 if ( LISTBOX_ENTRY_NOTFOUND == 370 aColorLB.GetEntryPos( aStdCol ) ) 371 aColorLB.InsertEntry( aStdCol, ScGlobal::GetRscString( STR_GRIDCOLOR ) ); 372 373 aColorLB.SetUpdateMode( sal_True ); 374 375 Invalidate(); 376 } 377 378 // #79720# also select grid color entry on subsequent calls 379 380 String aName; 381 Color aCol = pLocalOptions->GetGridColor( &aName ); 382 sal_uInt16 nSelPos = aColorLB.GetEntryPos( aCol ); 383 384 if ( LISTBOX_ENTRY_NOTFOUND != nSelPos ) 385 aColorLB.SelectEntryPos( nSelPos ); 386 else 387 aColorLB.SelectEntryPos( aColorLB.InsertEntry( aCol, aName ) ); 388 } 389 /*-----------------11.01.97 13.40------------------- 390 391 --------------------------------------------------*/ 392 393 IMPL_LINK( ScTpContentOptions, GridHdl, CheckBox*, pBox ) 394 { 395 sal_Bool bChecked = pBox->IsChecked(); 396 aColorFT.Enable(bChecked); 397 aColorLB.Enable(bChecked); 398 pLocalOptions->SetOption( VOPT_GRID, bChecked ); 399 return 0; 400 } 401 /*-----------------11.01.97 10.53------------------- 402 403 --------------------------------------------------*/ 404 405 ScTpLayoutOptions::ScTpLayoutOptions( Window* pParent, 406 const SfxItemSet& rArgSet ) : 407 SfxTabPage(pParent, ScResId( RID_SCPAGE_LAYOUT ), rArgSet), 408 aUnitGB( this, ScResId(GB_UNIT )), 409 aUnitFT( this, ScResId(FT_UNIT )), 410 aUnitLB( this, ScResId(LB_UNIT )), 411 aTabFT( this, ScResId( FT_TAB )), 412 aTabMF( this, ScResId( MF_TAB )), 413 aSeparatorFL( this, ScResId( FL_SEPARATOR )), 414 aLinkGB (this, ScResId(GB_LINK )), 415 aLinkFT(this, ScResId(FT_UPDATE_LINKS )), 416 aAlwaysRB (this, ScResId(RB_ALWAYS )), 417 aRequestRB (this, ScResId(RB_REQUEST )), 418 aNeverRB (this, ScResId(RB_NEVER )), 419 420 aOptionsGB( this, ScResId( GB_OPTIONS )), 421 aAlignCB ( this, ScResId( CB_ALIGN )), 422 aAlignLB ( this, ScResId( LB_ALIGN )), 423 aEditModeCB( this, ScResId( CB_EDITMODE )), 424 aFormatCB( this, ScResId( CB_FORMAT )), 425 aExpRefCB( this, ScResId( CB_EXPREF )), 426 aMarkHdrCB( this, ScResId( CB_MARKHDR )), 427 aTextFmtCB( this, ScResId( CB_TEXTFMT )), 428 aReplWarnCB( this, ScResId( CB_REPLWARN )), 429 aUnitArr( ScResId(ST_UNIT )), 430 pDoc(NULL) 431 { 432 FreeResource(); 433 aSeparatorFL.SetStyle( aSeparatorFL.GetStyle() | WB_VERT ); 434 SetExchangeSupport(); 435 436 aUnitLB. SetSelectHdl( LINK( this, ScTpLayoutOptions, MetricHdl ) ); 437 438 aAlignCB.SetClickHdl(LINK(this, ScTpLayoutOptions, AlignHdl)); 439 440 441 for ( sal_uInt16 i = 0; i < aUnitArr.Count(); ++i ) 442 { 443 String sMetric = aUnitArr.GetStringByPos( i ); 444 FieldUnit eFUnit = (FieldUnit)aUnitArr.GetValue( i ); 445 446 switch ( eFUnit ) 447 { 448 case FUNIT_MM: 449 case FUNIT_CM: 450 case FUNIT_POINT: 451 case FUNIT_PICA: 452 case FUNIT_INCH: 453 { 454 // nur diese Metriken benutzen 455 sal_uInt16 nPos = aUnitLB.InsertEntry( sMetric ); 456 aUnitLB.SetEntryData( nPos, (void*)(long)eFUnit ); 457 } 458 break; 459 default: 460 { 461 // added to avoid warnings 462 } 463 } 464 } 465 466 } 467 /*-----------------11.01.97 10.53------------------- 468 469 --------------------------------------------------*/ 470 471 ScTpLayoutOptions::~ScTpLayoutOptions() 472 { 473 } 474 /*-----------------11.01.97 10.53------------------- 475 476 --------------------------------------------------*/ 477 478 SfxTabPage* ScTpLayoutOptions::Create( Window* pParent, 479 const SfxItemSet& rCoreSet ) 480 { 481 ScTpLayoutOptions* pNew = new ScTpLayoutOptions(pParent, rCoreSet); 482 ScDocShell* pDocSh = PTR_CAST(ScDocShell,SfxObjectShell::Current()); 483 484 if(pDocSh!=NULL) 485 pNew->SetDocument(pDocSh->GetDocument()); 486 return pNew; 487 } 488 /*-----------------11.01.97 10.53------------------- 489 490 --------------------------------------------------*/ 491 492 sal_Bool ScTpLayoutOptions::FillItemSet( SfxItemSet& rCoreSet ) 493 { 494 sal_Bool bRet = sal_True; 495 const sal_uInt16 nMPos = aUnitLB.GetSelectEntryPos(); 496 if ( nMPos != aUnitLB.GetSavedValue() ) 497 { 498 sal_uInt16 nFieldUnit = (sal_uInt16)(long)aUnitLB.GetEntryData( nMPos ); 499 rCoreSet.Put( SfxUInt16Item( SID_ATTR_METRIC, 500 (sal_uInt16)nFieldUnit ) ); 501 bRet = sal_True; 502 } 503 504 if(aTabMF.GetText() != aTabMF.GetSavedValue()) 505 { 506 rCoreSet.Put(SfxUInt16Item(SID_ATTR_DEFTABSTOP, 507 sal::static_int_cast<sal_uInt16>( aTabMF.Denormalize(aTabMF.GetValue(FUNIT_TWIP)) ))); 508 bRet = sal_True; 509 } 510 511 ScLkUpdMode nSet=LM_ALWAYS; 512 513 if(aRequestRB.IsChecked()) 514 { 515 nSet=LM_ON_DEMAND; 516 } 517 else if(aNeverRB.IsChecked()) 518 { 519 nSet=LM_NEVER; 520 } 521 522 if(aRequestRB.IsChecked() != aRequestRB.GetSavedValue() || 523 aNeverRB.IsChecked() != aNeverRB.GetSavedValue() ) 524 { 525 if(pDoc) 526 pDoc->SetLinkMode(nSet); 527 ScAppOptions aAppOptions=SC_MOD()->GetAppOptions(); 528 aAppOptions.SetLinkMode(nSet ); 529 SC_MOD()->SetAppOptions(aAppOptions); 530 bRet = sal_True; 531 } 532 if(aAlignCB.GetSavedValue() != aAlignCB.IsChecked()) 533 { 534 rCoreSet.Put(SfxBoolItem(SID_SC_INPUT_SELECTION, aAlignCB.IsChecked())); 535 bRet = sal_True; 536 } 537 538 if(aAlignLB.GetSavedValue() != aAlignLB.GetSelectEntryPos()) 539 { 540 rCoreSet.Put(SfxUInt16Item(SID_SC_INPUT_SELECTIONPOS, aAlignLB.GetSelectEntryPos())); 541 bRet = sal_True; 542 } 543 544 if(aEditModeCB.GetSavedValue() != aEditModeCB.IsChecked()) 545 { 546 rCoreSet.Put(SfxBoolItem(SID_SC_INPUT_EDITMODE, aEditModeCB.IsChecked())); 547 bRet = sal_True; 548 } 549 550 if(aFormatCB.GetSavedValue() != aFormatCB.IsChecked()) 551 { 552 rCoreSet.Put(SfxBoolItem(SID_SC_INPUT_FMT_EXPAND, aFormatCB.IsChecked())); 553 bRet = sal_True; 554 } 555 556 557 if(aExpRefCB.GetSavedValue() != aExpRefCB.IsChecked()) 558 { 559 rCoreSet.Put(SfxBoolItem(SID_SC_INPUT_REF_EXPAND, aExpRefCB.IsChecked())); 560 bRet = sal_True; 561 } 562 563 if(aMarkHdrCB.GetSavedValue() != aMarkHdrCB.IsChecked()) 564 { 565 rCoreSet.Put(SfxBoolItem(SID_SC_INPUT_MARK_HEADER, aMarkHdrCB.IsChecked())); 566 bRet = sal_True; 567 } 568 569 if(aTextFmtCB.GetSavedValue() != aTextFmtCB.IsChecked()) 570 { 571 rCoreSet.Put(SfxBoolItem(SID_SC_INPUT_TEXTWYSIWYG, aTextFmtCB.IsChecked())); 572 bRet = sal_True; 573 } 574 575 if( aReplWarnCB.GetSavedValue() != aReplWarnCB.IsChecked() ) 576 { 577 rCoreSet.Put( SfxBoolItem( SID_SC_INPUT_REPLCELLSWARN, aReplWarnCB.IsChecked() ) ); 578 bRet = sal_True; 579 } 580 581 return bRet; 582 } 583 /*-----------------11.01.97 10.53------------------- 584 585 --------------------------------------------------*/ 586 587 void ScTpLayoutOptions::Reset( const SfxItemSet& rCoreSet ) 588 { 589 aUnitLB.SetNoSelection(); 590 if ( rCoreSet.GetItemState( SID_ATTR_METRIC ) >= SFX_ITEM_AVAILABLE ) 591 { 592 const SfxUInt16Item& rItem = (SfxUInt16Item&)rCoreSet.Get( SID_ATTR_METRIC ); 593 FieldUnit eFieldUnit = (FieldUnit)rItem.GetValue(); 594 595 for ( sal_uInt16 i = 0; i < aUnitLB.GetEntryCount(); ++i ) 596 { 597 if ( (FieldUnit)(long)aUnitLB.GetEntryData( i ) == eFieldUnit ) 598 { 599 aUnitLB.SelectEntryPos( i ); 600 break; 601 } 602 } 603 ::SetFieldUnit(aTabMF, eFieldUnit); 604 } 605 aUnitLB.SaveValue(); 606 607 const SfxPoolItem* pItem; 608 if(SFX_ITEM_SET == rCoreSet.GetItemState(SID_ATTR_DEFTABSTOP, sal_False, &pItem)) 609 aTabMF.SetValue(aTabMF.Normalize(((SfxUInt16Item*)pItem)->GetValue()), FUNIT_TWIP); 610 aTabMF.SaveValue(); 611 612 aUnitLB .SaveValue(); 613 aTabMF .SaveValue(); 614 615 ScLkUpdMode nSet=LM_UNKNOWN; 616 617 if(pDoc!=NULL) 618 { 619 nSet=pDoc->GetLinkMode(); 620 } 621 622 if(nSet==LM_UNKNOWN) 623 { 624 ScAppOptions aAppOptions=SC_MOD()->GetAppOptions(); 625 nSet=aAppOptions.GetLinkMode(); 626 } 627 628 switch(nSet) 629 { 630 case LM_ALWAYS: aAlwaysRB. Check(); break; 631 case LM_NEVER: aNeverRB. Check(); break; 632 case LM_ON_DEMAND: aRequestRB. Check(); break; 633 default: 634 { 635 // added to avoid warnings 636 } 637 } 638 if(SFX_ITEM_SET == rCoreSet.GetItemState(SID_SC_INPUT_SELECTION, sal_False, &pItem)) 639 aAlignCB.Check(((const SfxBoolItem*)pItem)->GetValue()); 640 641 if(SFX_ITEM_SET == rCoreSet.GetItemState(SID_SC_INPUT_SELECTIONPOS, sal_False, &pItem)) 642 aAlignLB.SelectEntryPos(((const SfxUInt16Item*)pItem)->GetValue()); 643 644 if(SFX_ITEM_SET == rCoreSet.GetItemState(SID_SC_INPUT_EDITMODE, sal_False, &pItem)) 645 aEditModeCB.Check(((const SfxBoolItem*)pItem)->GetValue()); 646 647 if(SFX_ITEM_SET == rCoreSet.GetItemState(SID_SC_INPUT_FMT_EXPAND, sal_False, &pItem)) 648 aFormatCB.Check(((const SfxBoolItem*)pItem)->GetValue()); 649 650 651 if(SFX_ITEM_SET == rCoreSet.GetItemState(SID_SC_INPUT_REF_EXPAND, sal_False, &pItem)) 652 aExpRefCB.Check(((const SfxBoolItem*)pItem)->GetValue()); 653 654 if(SFX_ITEM_SET == rCoreSet.GetItemState(SID_SC_INPUT_MARK_HEADER, sal_False, &pItem)) 655 aMarkHdrCB.Check(((const SfxBoolItem*)pItem)->GetValue()); 656 657 if(SFX_ITEM_SET == rCoreSet.GetItemState(SID_SC_INPUT_TEXTWYSIWYG, sal_False, &pItem)) 658 aTextFmtCB.Check(((const SfxBoolItem*)pItem)->GetValue()); 659 660 if( SFX_ITEM_SET == rCoreSet.GetItemState( SID_SC_INPUT_REPLCELLSWARN, sal_False, &pItem ) ) 661 aReplWarnCB.Check( ( (const SfxBoolItem*)pItem)->GetValue() ); 662 663 aAlignCB .SaveValue(); 664 aAlignLB .SaveValue(); 665 aEditModeCB .SaveValue(); 666 aFormatCB .SaveValue(); 667 668 aExpRefCB .SaveValue(); 669 aMarkHdrCB .SaveValue(); 670 aTextFmtCB .SaveValue(); 671 aReplWarnCB .SaveValue(); 672 AlignHdl(&aAlignCB); 673 674 aAlwaysRB.SaveValue(); 675 aNeverRB.SaveValue(); 676 aRequestRB.SaveValue(); 677 } 678 679 /*-----------------11.01.97 12.46------------------- 680 681 --------------------------------------------------*/ 682 683 void ScTpLayoutOptions::ActivatePage( const SfxItemSet& /* rCoreSet */ ) 684 { 685 } 686 /*-----------------11.01.97 12.46------------------- 687 688 --------------------------------------------------*/ 689 690 int ScTpLayoutOptions::DeactivatePage( SfxItemSet* pSetP ) 691 { 692 if(pSetP) 693 FillItemSet(*pSetP); 694 return SfxTabPage::LEAVE_PAGE; 695 } 696 697 698 /*-----------------13.01.97 14.44------------------- 699 Metric des Deftabstops umschalten 700 --------------------------------------------------*/ 701 702 IMPL_LINK(ScTpLayoutOptions, MetricHdl, ListBox*, EMPTYARG) 703 { 704 const sal_uInt16 nMPos = aUnitLB.GetSelectEntryPos(); 705 if(nMPos != USHRT_MAX) 706 { 707 FieldUnit eFieldUnit = (FieldUnit)(long)aUnitLB.GetEntryData( nMPos ); 708 sal_Int64 nVal = 709 aTabMF.Denormalize( aTabMF.GetValue( FUNIT_TWIP ) ); 710 ::SetFieldUnit( aTabMF, eFieldUnit ); 711 aTabMF.SetValue( aTabMF.Normalize( nVal ), FUNIT_TWIP ); 712 } 713 714 return 0; 715 } 716 /*-----------------11.01.97 15.30------------------- 717 718 --------------------------------------------------*/ 719 IMPL_LINK( ScTpLayoutOptions, AlignHdl, CheckBox*, pBox ) 720 { 721 aAlignLB.Enable(pBox->IsChecked()); 722 return 0; 723 } 724