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