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 //------------------------------------------------------------------ 31 32 #include "scitems.hxx" 33 34 #include "tptable.hxx" 35 #include "global.hxx" 36 #include "attrib.hxx" 37 #include "scresid.hxx" 38 #include "sc.hrc" 39 #include "pagedlg.hrc" 40 41 // ======================================================================= 42 43 void EmptyNumericField::Modify() 44 { 45 if( GetText().Len() ) 46 NumericField::Modify(); 47 else 48 SetEmptyFieldValue(); 49 } 50 51 void EmptyNumericField::SetValue( sal_Int64 nValue ) 52 { 53 if( nValue == 0 ) 54 SetEmptyFieldValue(); 55 else 56 NumericField::SetValue( nValue ); 57 } 58 59 sal_Int64 EmptyNumericField::GetValue() const 60 { 61 return IsEmptyFieldValue() ? 0 : NumericField::GetValue(); 62 } 63 64 // ======================================================================= 65 66 // STATIC DATA ----------------------------------------------------------- 67 68 static sal_uInt16 pPageTableRanges[] = 69 { 70 ATTR_PAGE_NOTES, ATTR_PAGE_FIRSTPAGENO, 71 0 72 }; 73 74 sal_Bool lcl_PutVObjModeItem( sal_uInt16 nWhich, 75 SfxItemSet& rCoreSet, 76 const SfxItemSet& rOldSet, 77 const CheckBox& rBtn ); 78 79 sal_Bool lcl_PutScaleItem( sal_uInt16 nWhich, 80 SfxItemSet& rCoreSet, 81 const SfxItemSet& rOldSet, 82 const ListBox& rListBox, 83 sal_uInt16 nLBEntry, 84 const SpinField& rEd, 85 sal_uInt16 nValue ); 86 87 sal_Bool lcl_PutScaleItem2( sal_uInt16 nWhich, 88 SfxItemSet& rCoreSet, 89 const SfxItemSet& rOldSet, 90 const ListBox& rListBox, 91 sal_uInt16 nLBEntry, 92 const NumericField& rEd1, 93 const NumericField& rEd2 ); 94 95 sal_Bool lcl_PutBoolItem( sal_uInt16 nWhich, 96 SfxItemSet& rCoreSet, 97 const SfxItemSet& rOldSet, 98 sal_Bool bIsChecked, 99 sal_Bool bSavedValue ); 100 101 //------------------------------------------------------------------------ 102 103 #define PAGENO_HDL LINK(this,ScTablePage,PageNoHdl) 104 #define PAGEDIR_HDL LINK(this,ScTablePage,PageDirHdl) 105 #define SCALE_HDL LINK(this,ScTablePage,ScaleHdl) 106 107 #define WAS_DEFAULT(w,s) (SFX_ITEM_DEFAULT==(s).GetItemState((w),sal_True)) 108 #define GET_BOOL(sid,set) ((const SfxBoolItem&)((set).Get(GetWhich((sid))))).GetValue() 109 #define GET_USHORT(sid,set) (sal_uInt16)((const SfxUInt16Item&)((set).Get(GetWhich((sid))))).GetValue() 110 #define GET_SHOW(sid,set) ( ScVObjMode( ((const ScViewObjectModeItem&)((set).Get(GetWhich((sid))))).GetValue() ) \ 111 == VOBJ_MODE_SHOW ) 112 113 //======================================================================== 114 115 ScTablePage::ScTablePage( Window* pParent, const SfxItemSet& rCoreAttrs ) : 116 117 SfxTabPage( pParent, ScResId( RID_SCPAGE_TABLE ), rCoreAttrs ), 118 119 aFlPageDir ( this, ScResId( FL_PAGEDIR ) ), 120 aBtnTopDown ( this, ScResId( BTN_TOPDOWN ) ), 121 aBtnLeftRight ( this, ScResId( BTN_LEFTRIGHT ) ), 122 aBmpPageDir ( this, ScResId( BMP_PAGEDIR ) ), 123 aImgLeftRight ( ScResId( IMG_LEFTRIGHT ) ), 124 aImgTopDown ( ScResId( IMG_TOPDOWN ) ), 125 aImgLeftRightHC ( ScResId( IMG_LEFTRIGHT_H ) ), 126 aImgTopDownHC ( ScResId( IMG_TOPDOWN_H ) ), 127 aBtnPageNo ( this, ScResId( BTN_PAGENO ) ), 128 aEdPageNo ( this, ScResId( ED_PAGENO ) ), 129 aFlPrint ( this, ScResId( FL_PRINT ) ), 130 aBtnHeaders ( this, ScResId( BTN_HEADER ) ), 131 aBtnGrid ( this, ScResId( BTN_GRID ) ), 132 aBtnNotes ( this, ScResId( BTN_NOTES ) ), 133 aBtnObjects ( this, ScResId( BTN_OBJECTS ) ), 134 aBtnCharts ( this, ScResId( BTN_CHARTS ) ), 135 aBtnDrawings ( this, ScResId( BTN_DRAWINGS ) ), 136 aBtnFormulas ( this, ScResId( BTN_FORMULAS ) ), 137 aBtnNullVals ( this, ScResId( BTN_NULLVALS ) ), 138 aFlScale ( this, ScResId( FL_SCALE ) ), 139 aFtScaleMode ( this, ScResId( FT_SCALEMODE ) ), 140 aLbScaleMode ( this, ScResId( LB_SCALEMODE ) ), 141 aFtScaleAll ( this, ScResId( FT_SCALEFACTOR ) ), 142 aEdScaleAll ( this, ScResId( ED_SCALEALL ) ), 143 aFtScalePageWidth ( this, ScResId( FT_SCALEPAGEWIDTH ) ), 144 aEdScalePageWidth ( this, ScResId( ED_SCALEPAGEWIDTH ) ), 145 aFtScalePageHeight ( this, ScResId( FT_SCALEPAGEHEIGHT ) ), 146 aEdScalePageHeight ( this, ScResId( ED_SCALEPAGEHEIGHT ) ), 147 aFtScalePageNum ( this, ScResId( FT_SCALEPAGENUM ) ), 148 aEdScalePageNum ( this, ScResId( ED_SCALEPAGENUM ) ) 149 { 150 SetExchangeSupport(); 151 aBtnPageNo.SetClickHdl( PAGENO_HDL ); 152 aBtnTopDown.SetClickHdl( PAGEDIR_HDL ); 153 aBtnLeftRight.SetClickHdl( PAGEDIR_HDL ); 154 aLbScaleMode.SetSelectHdl( SCALE_HDL ); 155 156 Size aBmpSize = Image( ScResId( IMG_LEFTRIGHT ) ).GetSizePixel(); 157 aBmpPageDir.SetOutputSizePixel( aBmpSize ); 158 159 FreeResource(); 160 161 aEdPageNo.SetAccessibleName(aBtnPageNo.GetText()); 162 aEdPageNo.SetAccessibleRelationLabeledBy(&aBtnPageNo); 163 } 164 165 // ----------------------------------------------------------------------- 166 167 void ScTablePage::ShowImage() 168 { 169 bool bHC = GetSettings().GetStyleSettings().GetHighContrastMode(); 170 bool bLeftRight = aBtnLeftRight.IsChecked(); 171 aBmpPageDir.SetImage( bHC ? 172 (bLeftRight ? aImgLeftRightHC : aImgTopDownHC) : 173 (bLeftRight ? aImgLeftRight : aImgTopDown) ); 174 } 175 176 // ----------------------------------------------------------------------- 177 178 ScTablePage::~ScTablePage() 179 { 180 } 181 182 //------------------------------------------------------------------------ 183 184 sal_uInt16* ScTablePage::GetRanges() 185 { 186 return pPageTableRanges; 187 } 188 189 // ----------------------------------------------------------------------- 190 191 SfxTabPage* ScTablePage::Create( Window* pParent, const SfxItemSet& rCoreSet ) 192 { 193 return ( new ScTablePage( pParent, rCoreSet ) ); 194 } 195 196 // ----------------------------------------------------------------------- 197 198 void ScTablePage::Reset( const SfxItemSet& rCoreSet ) 199 { 200 sal_Bool bTopDown = GET_BOOL( SID_SCATTR_PAGE_TOPDOWN, rCoreSet ); 201 sal_uInt16 nWhich = 0; 202 203 //----------- 204 // sal_Bool-Flags 205 //----------- 206 aBtnNotes .Check( GET_BOOL(SID_SCATTR_PAGE_NOTES,rCoreSet) ); 207 aBtnGrid .Check( GET_BOOL(SID_SCATTR_PAGE_GRID,rCoreSet) ); 208 aBtnHeaders .Check( GET_BOOL(SID_SCATTR_PAGE_HEADERS,rCoreSet) ); 209 aBtnFormulas .Check( GET_BOOL(SID_SCATTR_PAGE_FORMULAS,rCoreSet) ); 210 aBtnNullVals .Check( GET_BOOL(SID_SCATTR_PAGE_NULLVALS,rCoreSet) ); 211 aBtnTopDown .Check( bTopDown ); 212 aBtnLeftRight .Check( !bTopDown ); 213 214 //------------------ 215 // Erste Druckseite: 216 //------------------ 217 sal_uInt16 nPage = GET_USHORT(SID_SCATTR_PAGE_FIRSTPAGENO,rCoreSet); 218 aBtnPageNo.Check( nPage != 0 ); 219 aEdPageNo.SetValue( (nPage != 0) ? nPage : 1 ); 220 PageNoHdl( NULL ); 221 222 //------------------- 223 // Objektdarstellung: 224 //------------------- 225 aBtnCharts .Check( GET_SHOW( SID_SCATTR_PAGE_CHARTS, rCoreSet ) ); 226 aBtnObjects .Check( GET_SHOW( SID_SCATTR_PAGE_OBJECTS, rCoreSet ) ); 227 aBtnDrawings .Check( GET_SHOW( SID_SCATTR_PAGE_DRAWINGS, rCoreSet ) ); 228 229 //------------ 230 // Skalierung: 231 //------------ 232 233 nWhich = GetWhich(SID_SCATTR_PAGE_SCALE); 234 if ( rCoreSet.GetItemState( nWhich, sal_True ) >= SFX_ITEM_AVAILABLE ) 235 { 236 sal_uInt16 nScale = ((const SfxUInt16Item&)rCoreSet.Get(nWhich)).GetValue(); 237 if( nScale > 0 ) 238 aLbScaleMode.SelectEntryPos( SC_TPTABLE_SCALE_PERCENT ); 239 aEdScaleAll.SetValue( (nScale > 0) ? nScale : 100 ); 240 } 241 242 nWhich = GetWhich(SID_SCATTR_PAGE_SCALETO); 243 if ( rCoreSet.GetItemState( nWhich, sal_True ) >= SFX_ITEM_AVAILABLE ) 244 { 245 const ScPageScaleToItem& rItem = static_cast< const ScPageScaleToItem& >( rCoreSet.Get( nWhich ) ); 246 sal_uInt16 nWidth = rItem.GetWidth(); 247 sal_uInt16 nHeight = rItem.GetHeight(); 248 249 /* width==0 and height==0 is invalid state, used as "not selected". 250 Dialog shows width=height=1 then. */ 251 bool bValid = nWidth || nHeight; 252 if( bValid ) 253 aLbScaleMode.SelectEntryPos( SC_TPTABLE_SCALE_TO ); 254 aEdScalePageWidth.SetValue( bValid ? nWidth : 1 ); 255 aEdScalePageHeight.SetValue( bValid ? nHeight : 1 ); 256 } 257 258 nWhich = GetWhich(SID_SCATTR_PAGE_SCALETOPAGES); 259 if ( rCoreSet.GetItemState( nWhich, sal_True ) >= SFX_ITEM_AVAILABLE ) 260 { 261 sal_uInt16 nPages = ((const SfxUInt16Item&)rCoreSet.Get(nWhich)).GetValue(); 262 if( nPages > 0 ) 263 aLbScaleMode.SelectEntryPos( SC_TPTABLE_SCALE_TO_PAGES ); 264 aEdScalePageNum.SetValue( (nPages > 0) ? nPages : 1 ); 265 } 266 267 if( aLbScaleMode.GetSelectEntryCount() == 0 ) 268 { 269 // fall back to 100% 270 DBG_ERRORFILE( "ScTablePage::Reset - missing scaling item" ); 271 aLbScaleMode.SelectEntryPos( SC_TPTABLE_SCALE_PERCENT ); 272 aEdScaleAll.SetValue( 100 ); 273 } 274 275 PageDirHdl( NULL ); 276 ScaleHdl( NULL ); 277 278 // merken fuer FillItemSet 279 aBtnFormulas .SaveValue(); 280 aBtnNullVals .SaveValue(); 281 aBtnNotes .SaveValue(); 282 aBtnGrid .SaveValue(); 283 aBtnHeaders .SaveValue(); 284 aBtnTopDown .SaveValue(); 285 aBtnLeftRight .SaveValue(); 286 aLbScaleMode .SaveValue(); 287 aBtnCharts .SaveValue(); 288 aBtnObjects .SaveValue(); 289 aBtnDrawings .SaveValue(); 290 aBtnPageNo .SaveValue(); 291 aEdPageNo .SaveValue(); 292 aEdScaleAll .SaveValue(); 293 aEdScalePageWidth.SaveValue(); 294 aEdScalePageHeight.SaveValue(); 295 aEdScalePageNum .SaveValue(); 296 } 297 298 // ----------------------------------------------------------------------- 299 300 sal_Bool ScTablePage::FillItemSet( SfxItemSet& rCoreSet ) 301 { 302 const SfxItemSet& rOldSet = GetItemSet(); 303 sal_uInt16 nWhichPageNo = GetWhich(SID_SCATTR_PAGE_FIRSTPAGENO); 304 sal_Bool bDataChanged = sal_False; 305 306 //----------- 307 // sal_Bool-Flags 308 //----------- 309 310 bDataChanged |= lcl_PutBoolItem( GetWhich(SID_SCATTR_PAGE_NOTES), 311 rCoreSet, rOldSet, 312 aBtnNotes.IsChecked(), 313 aBtnNotes.GetSavedValue() != STATE_NOCHECK ); 314 315 bDataChanged |= lcl_PutBoolItem( GetWhich(SID_SCATTR_PAGE_GRID), 316 rCoreSet, rOldSet, 317 aBtnGrid.IsChecked(), 318 aBtnGrid.GetSavedValue() != STATE_NOCHECK ); 319 320 bDataChanged |= lcl_PutBoolItem( GetWhich(SID_SCATTR_PAGE_HEADERS), 321 rCoreSet, rOldSet, 322 aBtnHeaders.IsChecked(), 323 aBtnHeaders.GetSavedValue() != STATE_NOCHECK ); 324 325 bDataChanged |= lcl_PutBoolItem( GetWhich(SID_SCATTR_PAGE_TOPDOWN), 326 rCoreSet, rOldSet, 327 aBtnTopDown.IsChecked(), 328 aBtnTopDown.GetSavedValue() ); 329 330 bDataChanged |= lcl_PutBoolItem( GetWhich(SID_SCATTR_PAGE_FORMULAS), 331 rCoreSet, rOldSet, 332 aBtnFormulas.IsChecked(), 333 aBtnFormulas.GetSavedValue() != STATE_NOCHECK ); 334 335 bDataChanged |= lcl_PutBoolItem( GetWhich(SID_SCATTR_PAGE_NULLVALS), 336 rCoreSet, rOldSet, 337 aBtnNullVals.IsChecked(), 338 aBtnNullVals.GetSavedValue() != STATE_NOCHECK ); 339 340 //------------------ 341 // Erste Druckseite: 342 //------------------ 343 sal_Bool bUseValue = aBtnPageNo.IsChecked(); 344 345 if ( WAS_DEFAULT(nWhichPageNo,rOldSet) 346 && ( (!bUseValue && bUseValue == aBtnPageNo.GetSavedValue()) 347 || ( bUseValue && bUseValue == aBtnPageNo.GetSavedValue() 348 && aEdPageNo.GetText() == aEdPageNo.GetSavedValue() ) ) ) 349 { 350 rCoreSet.ClearItem( nWhichPageNo ); 351 } 352 else 353 { 354 sal_uInt16 nPage = (sal_uInt16)( aBtnPageNo.IsChecked() 355 ? aEdPageNo.GetValue() 356 : 0 ); 357 358 rCoreSet.Put( SfxUInt16Item( nWhichPageNo, nPage ) ); 359 bDataChanged = sal_True; 360 } 361 362 //------------------- 363 // Objektdarstellung: 364 //------------------- 365 366 bDataChanged |= lcl_PutVObjModeItem( GetWhich(SID_SCATTR_PAGE_CHARTS), 367 rCoreSet, rOldSet, aBtnCharts ); 368 369 bDataChanged |= lcl_PutVObjModeItem( GetWhich(SID_SCATTR_PAGE_OBJECTS), 370 rCoreSet, rOldSet, aBtnObjects ); 371 372 bDataChanged |= lcl_PutVObjModeItem( GetWhich(SID_SCATTR_PAGE_DRAWINGS), 373 rCoreSet, rOldSet, aBtnDrawings ); 374 375 //------------ 376 // Skalierung: 377 //------------ 378 379 if( !aEdScalePageWidth.GetValue() && !aEdScalePageHeight.GetValue() ) 380 { 381 aLbScaleMode.SelectEntryPos( SC_TPTABLE_SCALE_PERCENT ); 382 aEdScaleAll.SetValue( 100 ); 383 } 384 385 bDataChanged |= lcl_PutScaleItem( GetWhich(SID_SCATTR_PAGE_SCALE), 386 rCoreSet, rOldSet, 387 aLbScaleMode, SC_TPTABLE_SCALE_PERCENT, 388 aEdScaleAll, (sal_uInt16)aEdScaleAll.GetValue() ); 389 390 bDataChanged |= lcl_PutScaleItem2( GetWhich(SID_SCATTR_PAGE_SCALETO), 391 rCoreSet, rOldSet, 392 aLbScaleMode, SC_TPTABLE_SCALE_TO, 393 aEdScalePageWidth, aEdScalePageHeight ); 394 395 bDataChanged |= lcl_PutScaleItem( GetWhich(SID_SCATTR_PAGE_SCALETOPAGES), 396 rCoreSet, rOldSet, 397 aLbScaleMode, SC_TPTABLE_SCALE_TO_PAGES, 398 aEdScalePageNum, (sal_uInt16)aEdScalePageNum.GetValue() ); 399 400 return bDataChanged; 401 } 402 403 //------------------------------------------------------------------------ 404 405 int ScTablePage::DeactivatePage( SfxItemSet* pSetP ) 406 { 407 if ( pSetP ) 408 FillItemSet( *pSetP ); 409 410 return LEAVE_PAGE; 411 } 412 413 //------------------------------------------------------------------------ 414 415 void ScTablePage::DataChanged( const DataChangedEvent& rDCEvt ) 416 { 417 if( (rDCEvt.GetType() == DATACHANGED_SETTINGS) && (rDCEvt.GetFlags() & SETTINGS_STYLE) ) 418 ShowImage(); 419 SfxTabPage::DataChanged( rDCEvt ); 420 } 421 422 //------------------------------------------------------------------------ 423 // Handler: 424 //------------------------------------------------------------------------ 425 426 IMPL_LINK( ScTablePage, PageDirHdl, RadioButton*, EMPTYARG ) 427 { 428 ShowImage(); 429 return 0; 430 } 431 432 //------------------------------------------------------------------------ 433 434 IMPL_LINK( ScTablePage, PageNoHdl, CheckBox*, pBtn ) 435 { 436 if ( aBtnPageNo.IsChecked() ) 437 { 438 aEdPageNo.Enable(); 439 if ( pBtn ) 440 aEdPageNo.GrabFocus(); 441 } 442 else 443 aEdPageNo.Disable(); 444 445 return 0; 446 } 447 448 //------------------------------------------------------------------------ 449 450 IMPL_LINK( ScTablePage, ScaleHdl, ListBox*, EMPTYARG ) 451 { 452 // controls for "Reduce/enlarge" 453 bool bPercent = (aLbScaleMode.GetSelectEntryPos() == SC_TPTABLE_SCALE_PERCENT); 454 aFtScaleAll.Show( bPercent ); 455 aEdScaleAll.Show( bPercent ); 456 457 // controls for "Scale to width/height" 458 bool bScaleTo = (aLbScaleMode.GetSelectEntryPos() == SC_TPTABLE_SCALE_TO); 459 aFtScalePageWidth.Show( bScaleTo ); 460 aEdScalePageWidth.Show( bScaleTo ); 461 aFtScalePageHeight.Show( bScaleTo ); 462 aEdScalePageHeight.Show( bScaleTo ); 463 464 // controls for "Scale to pages" 465 bool bScalePages = (aLbScaleMode.GetSelectEntryPos() == SC_TPTABLE_SCALE_TO_PAGES); 466 aFtScalePageNum.Show( bScalePages ); 467 aEdScalePageNum.Show( bScalePages ); 468 469 return 0; 470 } 471 472 //======================================================================== 473 // Hilfsfunktionen fuer FillItemSet: 474 //======================================================================== 475 476 sal_Bool lcl_PutBoolItem( sal_uInt16 nWhich, 477 SfxItemSet& rCoreSet, 478 const SfxItemSet& rOldSet, 479 sal_Bool bIsChecked, 480 sal_Bool bSavedValue ) 481 { 482 sal_Bool bDataChanged = ( bSavedValue == bIsChecked 483 && WAS_DEFAULT(nWhich,rOldSet) ); 484 485 if ( bDataChanged ) 486 rCoreSet.ClearItem(nWhich); 487 else 488 rCoreSet.Put( SfxBoolItem( nWhich, bIsChecked ) ); 489 490 return bDataChanged; 491 } 492 493 //------------------------------------------------------------------------ 494 495 sal_Bool lcl_PutVObjModeItem( sal_uInt16 nWhich, 496 SfxItemSet& rCoreSet, 497 const SfxItemSet& rOldSet, 498 const CheckBox& rBtn ) 499 { 500 sal_Bool bIsChecked = rBtn.IsChecked(); 501 sal_Bool bDataChanged = ( rBtn.GetSavedValue() == bIsChecked 502 && WAS_DEFAULT(nWhich,rOldSet) ); 503 504 if ( bDataChanged ) 505 rCoreSet.ClearItem( nWhich ); 506 507 else 508 rCoreSet.Put( ScViewObjectModeItem( nWhich, bIsChecked 509 ? VOBJ_MODE_SHOW 510 : VOBJ_MODE_HIDE ) ); 511 return bDataChanged; 512 } 513 514 //------------------------------------------------------------------------ 515 516 sal_Bool lcl_PutScaleItem( sal_uInt16 nWhich, 517 SfxItemSet& rCoreSet, 518 const SfxItemSet& rOldSet, 519 const ListBox& rListBox, 520 sal_uInt16 nLBEntry, 521 const SpinField& rEd, 522 sal_uInt16 nValue ) 523 { 524 sal_Bool bIsSel = (rListBox.GetSelectEntryPos() == nLBEntry); 525 sal_Bool bDataChanged = (rListBox.GetSavedValue() != nLBEntry) || 526 (rEd.GetSavedValue() != rEd.GetText()) || 527 !WAS_DEFAULT( nWhich, rOldSet ); 528 529 if( bDataChanged ) 530 rCoreSet.Put( SfxUInt16Item( nWhich, bIsSel ? nValue : 0 ) ); 531 else 532 rCoreSet.ClearItem( nWhich ); 533 534 return bDataChanged; 535 } 536 537 538 sal_Bool lcl_PutScaleItem2( sal_uInt16 nWhich, 539 SfxItemSet& rCoreSet, 540 const SfxItemSet& rOldSet, 541 const ListBox& rListBox, 542 sal_uInt16 nLBEntry, 543 const NumericField& rEd1, 544 const NumericField& rEd2 ) 545 { 546 sal_uInt16 nValue1 = (sal_uInt16)rEd1.GetValue(); 547 sal_uInt16 nValue2 = (sal_uInt16)rEd2.GetValue(); 548 sal_Bool bIsSel = (rListBox.GetSelectEntryPos() == nLBEntry); 549 sal_Bool bDataChanged = (rListBox.GetSavedValue() != nLBEntry) || 550 (rEd1.GetSavedValue() != rEd1.GetText()) || 551 (rEd2.GetSavedValue() != rEd2.GetText()) || 552 !WAS_DEFAULT( nWhich, rOldSet ); 553 554 if( bDataChanged ) 555 { 556 ScPageScaleToItem aItem; 557 if( bIsSel ) 558 aItem.Set( nValue1, nValue2 ); 559 rCoreSet.Put( aItem ); 560 } 561 else 562 rCoreSet.ClearItem( nWhich ); 563 564 return bDataChanged; 565 } 566 567 568 569