1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: tpview.cxx,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 // MARKER(update_precomp.py): autogen include statement, do not remove
32 #include "precompiled_sc.hxx"
34 #undef SC_DLLIMPLEMENTATION
38 //------------------------------------------------------------------
40 #include "scitems.hxx"
43 #include "viewopti.hxx"
44 #include "tabvwsh.hxx"
45 #include "uiitems.hxx"
46 #include "scresid.hxx"
48 #include "sc.hrc" // -> Slot-IDs
50 #include "globstr.hrc"
51 #include <appoptio.hxx>
53 #include <svx/dlgutil.hxx>
54 #include <svx/drawitem.hxx>
55 #include <svx/xtable.hxx>
58 // STATIC DATA -----------------------------------------------------------
62 /*-----------------11.01.97 10.52-------------------
64 --------------------------------------------------*/
66 ScTpContentOptions::ScTpContentOptions( Window
* pParent
,
67 const SfxItemSet
& rArgSet
) :
68 SfxTabPage(pParent
, ScResId( RID_SCPAGE_CONTENT
), rArgSet
),
70 aLinesGB( this, ScResId(GB_LINES
)),
71 aGridCB( this, ScResId(CB_GRID
)),
72 aColorFT( this, ScResId(FT_COLOR
)),
73 aColorLB( this, ScResId(LB_COLOR
)),
74 aBreakCB( this, ScResId(CB_PAGEBREAKS
)),
75 aGuideLineCB( this, ScResId(CB_GUIDELINE
)),
76 aHandleCB( this, ScResId(CB_HANDLES
)),
77 aBigHandleCB( this, ScResId(CB_BIGHANDLES
)),
79 aSeparator1FL (this, ScResId(FL_SEPARATOR1
)),
80 aDisplayGB( this, ScResId(GB_DISPLAY
)),
81 aFormulaCB( this, ScResId(CB_FORMULA
)),
82 aNilCB( this, ScResId(CB_NIL
)),
83 aAnnotCB( this, ScResId(CB_ANNOT
)),
84 aValueCB( this, ScResId(CB_VALUE
)),
85 aAnchorCB( this, ScResId(CB_ANCHOR
)),
86 aClipMarkCB( this, ScResId(CB_CLIP
)),
87 aRangeFindCB( this, ScResId( CB_RFIND
)),
89 aObjectGB( this, ScResId(GB_OBJECT
)),
90 aObjGrfFT( this, ScResId(FT_OBJGRF
)),
91 aObjGrfLB( this, ScResId(LB_OBJGRF
)),
92 aDiagramFT( this, ScResId(FT_DIAGRAM
)),
93 aDiagramLB( this, ScResId(LB_DIAGRAM
)),
94 aDrawFT( this, ScResId(FT_DRAW
)),
95 aDrawLB( this, ScResId(LB_DRAW
)),
97 aZoomGB( this, ScResId(GB_ZOOM
) ),
98 aSyncZoomCB( this, ScResId(CB_SYNCZOOM
) ),
100 aSeparator2FL (this, ScResId(FL_SEPARATOR2
)),
101 aWindowGB( this, ScResId(GB_WINDOW
)),
102 aRowColHeaderCB(this, ScResId(CB_ROWCOLHEADER
)),
103 aHScrollCB( this, ScResId(CB_HSCROLL
)),
104 aVScrollCB( this, ScResId(CB_VSCROLL
)),
105 aTblRegCB( this, ScResId(CB_TBLREG
)),
106 aOutlineCB( this, ScResId(CB_OUTLINE
)),
110 aSeparator1FL
.SetStyle( aSeparator1FL
.GetStyle() | WB_VERT
);
111 aSeparator2FL
.SetStyle( aSeparator2FL
.GetStyle() | WB_VERT
);
112 SetExchangeSupport();
113 Link
aSelObjHdl(LINK( this, ScTpContentOptions
, SelLbObjHdl
) );
114 aObjGrfLB
. SetSelectHdl(aSelObjHdl
);
115 aDiagramLB
. SetSelectHdl(aSelObjHdl
);
116 aDrawLB
. SetSelectHdl(aSelObjHdl
);
118 Link
aCBHdl(LINK( this, ScTpContentOptions
, CBHdl
) );
119 aFormulaCB
.SetClickHdl(aCBHdl
);
120 aNilCB
.SetClickHdl(aCBHdl
);
121 aAnnotCB
.SetClickHdl(aCBHdl
);
122 aValueCB
.SetClickHdl(aCBHdl
);
123 aAnchorCB
.SetClickHdl(aCBHdl
);
124 aClipMarkCB
.SetClickHdl(aCBHdl
);
126 aVScrollCB
.SetClickHdl(aCBHdl
);
127 aHScrollCB
.SetClickHdl(aCBHdl
);
128 aTblRegCB
.SetClickHdl(aCBHdl
);
129 aOutlineCB
.SetClickHdl(aCBHdl
);
130 aBreakCB
.SetClickHdl(aCBHdl
);
131 aGuideLineCB
.SetClickHdl(aCBHdl
);
132 aHandleCB
.SetClickHdl(aCBHdl
);
133 aBigHandleCB
.SetClickHdl(aCBHdl
);
134 aRowColHeaderCB
.SetClickHdl(aCBHdl
);
136 aGridCB
.SetClickHdl( LINK( this, ScTpContentOptions
, GridHdl
) );
138 /*-----------------11.01.97 10.52-------------------
140 --------------------------------------------------*/
142 ScTpContentOptions::~ScTpContentOptions()
144 delete pLocalOptions
;
146 /*-----------------11.01.97 10.52-------------------
148 --------------------------------------------------*/
150 SfxTabPage
* ScTpContentOptions::Create( Window
* pParent
,
151 const SfxItemSet
& rCoreSet
)
153 return new ScTpContentOptions(pParent
, rCoreSet
);
155 /*-----------------11.01.97 10.52-------------------
157 --------------------------------------------------*/
158 BOOL
ScTpContentOptions::FillItemSet( SfxItemSet
& rCoreSet
)
161 if( aFormulaCB
.GetSavedValue() != aFormulaCB
.IsChecked() ||
162 aNilCB
.GetSavedValue() != aNilCB
.IsChecked() ||
163 aAnnotCB
.GetSavedValue() != aAnnotCB
.IsChecked() ||
164 aValueCB
.GetSavedValue() != aValueCB
.IsChecked() ||
165 aAnchorCB
.GetSavedValue() != aAnchorCB
.IsChecked() ||
166 aClipMarkCB
.GetSavedValue() != aClipMarkCB
.IsChecked() ||
167 aObjGrfLB
.GetSavedValue() != aObjGrfLB
.GetSelectEntryPos() ||
168 aDiagramLB
.GetSavedValue() != aDiagramLB
.GetSelectEntryPos() ||
169 aDrawLB
.GetSavedValue() != aDrawLB
.GetSelectEntryPos() ||
170 aGridCB
.GetSavedValue() != aGridCB
.IsChecked() ||
171 aRowColHeaderCB
.GetSavedValue() != aRowColHeaderCB
.IsChecked() ||
172 aHScrollCB
.GetSavedValue() != aHScrollCB
.IsChecked() ||
173 aVScrollCB
.GetSavedValue() != aVScrollCB
.IsChecked() ||
174 aTblRegCB
.GetSavedValue() != aTblRegCB
.IsChecked() ||
175 aOutlineCB
.GetSavedValue() != aOutlineCB
.IsChecked() ||
176 aColorLB
.GetSavedValue() != aColorLB
.GetSelectEntryPos() ||
177 aBreakCB
.GetSavedValue() != aBreakCB
.IsChecked() ||
178 aGuideLineCB
.GetSavedValue() != aGuideLineCB
.IsChecked() ||
179 aHandleCB
.GetSavedValue() != aHandleCB
.IsChecked() ||
180 aBigHandleCB
.GetSavedValue() != aBigHandleCB
.IsChecked())
182 pLocalOptions
->SetGridColor( aColorLB
.GetSelectEntryColor(),
183 aColorLB
.GetSelectEntry() );
184 rCoreSet
.Put(ScTpViewItem(SID_SCVIEWOPTIONS
, *pLocalOptions
));
187 if(aRangeFindCB
.GetSavedValue() != aRangeFindCB
.IsChecked())
189 rCoreSet
.Put(SfxBoolItem(SID_SC_INPUT_RANGEFINDER
, aRangeFindCB
.IsChecked()));
192 if(aSyncZoomCB
.GetSavedValue() != aSyncZoomCB
.IsChecked())
194 rCoreSet
.Put(SfxBoolItem(SID_SC_OPT_SYNCZOOM
, aSyncZoomCB
.IsChecked()));
201 /*-----------------11.01.97 10.53-------------------
203 --------------------------------------------------*/
205 void ScTpContentOptions::Reset( const SfxItemSet
& rCoreSet
)
207 const SfxPoolItem
* pItem
;
208 if(SFX_ITEM_SET
== rCoreSet
.GetItemState(SID_SCVIEWOPTIONS
, FALSE
, &pItem
))
209 pLocalOptions
= new ScViewOptions(
210 ((const ScTpViewItem
*)pItem
)->GetViewOptions() );
212 pLocalOptions
= new ScViewOptions
;
213 aFormulaCB
.Check(pLocalOptions
->GetOption(VOPT_FORMULAS
));
214 aNilCB
.Check(pLocalOptions
->GetOption(VOPT_NULLVALS
));
215 aAnnotCB
.Check(pLocalOptions
->GetOption(VOPT_NOTES
));
216 aValueCB
.Check(pLocalOptions
->GetOption(VOPT_SYNTAX
));
217 aAnchorCB
.Check(pLocalOptions
->GetOption(VOPT_ANCHOR
));
218 aClipMarkCB
.Check(pLocalOptions
->GetOption(VOPT_CLIPMARKS
));
220 aObjGrfLB
.SelectEntryPos( (USHORT
)pLocalOptions
->GetObjMode(VOBJ_TYPE_OLE
) );
221 aDiagramLB
.SelectEntryPos( (USHORT
)pLocalOptions
->GetObjMode(VOBJ_TYPE_CHART
) );
222 aDrawLB
.SelectEntryPos( (USHORT
)pLocalOptions
->GetObjMode(VOBJ_TYPE_DRAW
) );
224 aRowColHeaderCB
.Check( pLocalOptions
->GetOption(VOPT_HEADER
) );
225 aHScrollCB
.Check( pLocalOptions
->GetOption(VOPT_HSCROLL
) );
226 aVScrollCB
.Check( pLocalOptions
->GetOption(VOPT_VSCROLL
) );
227 aTblRegCB
.Check( pLocalOptions
->GetOption(VOPT_TABCONTROLS
) );
228 aOutlineCB
.Check( pLocalOptions
->GetOption(VOPT_OUTLINER
) );
232 aBreakCB
.Check( pLocalOptions
->GetOption(VOPT_PAGEBREAKS
) );
233 aGuideLineCB
.Check( pLocalOptions
->GetOption(VOPT_HELPLINES
) );
234 aHandleCB
.Check( !pLocalOptions
->GetOption(VOPT_SOLIDHANDLES
) ); // inverted
235 aBigHandleCB
.Check( pLocalOptions
->GetOption(VOPT_BIGHANDLES
) );
237 if(SFX_ITEM_SET
== rCoreSet
.GetItemState(SID_SC_INPUT_RANGEFINDER
, FALSE
, &pItem
))
238 aRangeFindCB
.Check(((const SfxBoolItem
*)pItem
)->GetValue());
239 if(SFX_ITEM_SET
== rCoreSet
.GetItemState(SID_SC_OPT_SYNCZOOM
, FALSE
, &pItem
))
240 aSyncZoomCB
.Check(((const SfxBoolItem
*)pItem
)->GetValue());
242 aRangeFindCB
.SaveValue();
243 aSyncZoomCB
.SaveValue();
245 aFormulaCB
.SaveValue();
247 aAnnotCB
.SaveValue();
248 aValueCB
.SaveValue();
249 aAnchorCB
.SaveValue();
250 aClipMarkCB
.SaveValue();
251 aObjGrfLB
.SaveValue();
252 aDiagramLB
.SaveValue();
253 aDrawLB
.SaveValue();
254 aRowColHeaderCB
.SaveValue();
255 aHScrollCB
.SaveValue();
256 aVScrollCB
.SaveValue();
257 aTblRegCB
.SaveValue();
258 aOutlineCB
.SaveValue();
259 aGridCB
.SaveValue();
260 aColorLB
.SaveValue();
261 aBreakCB
.SaveValue();
262 aGuideLineCB
.SaveValue();
263 aHandleCB
.SaveValue();
264 aBigHandleCB
.SaveValue();
266 /*-----------------11.01.97 12.45-------------------
268 --------------------------------------------------*/
270 void ScTpContentOptions::ActivatePage( const SfxItemSet
& rSet
)
272 const SfxPoolItem
* pItem
;
273 if(SFX_ITEM_SET
== rSet
.GetItemState(SID_SCVIEWOPTIONS
, FALSE
, &pItem
))
274 *pLocalOptions
= ((const ScTpViewItem
*)pItem
)->GetViewOptions();
276 /*-----------------11.01.97 12.45-------------------
278 --------------------------------------------------*/
280 int ScTpContentOptions::DeactivatePage( SfxItemSet
* pSetP
)
284 return SfxTabPage::LEAVE_PAGE
;
286 /*-----------------11.01.97 13.43-------------------
288 --------------------------------------------------*/
290 IMPL_LINK( ScTpContentOptions
, SelLbObjHdl
, ListBox
*, pLb
)
292 USHORT nSelPos
= pLb
->GetSelectEntryPos();
293 ScVObjMode eMode
= ScVObjMode(nSelPos
);
294 ScVObjType eType
= VOBJ_TYPE_OLE
;
296 if ( pLb
== &aDiagramLB
)
297 eType
= VOBJ_TYPE_CHART
;
298 else if ( pLb
== &aDrawLB
)
299 eType
= VOBJ_TYPE_DRAW
;
301 pLocalOptions
->SetObjMode( eType
, eMode
);
306 /*-----------------11.01.97 14.25-------------------
308 --------------------------------------------------*/
310 IMPL_LINK( ScTpContentOptions
, CBHdl
, CheckBox
*, pBtn
)
312 ScViewOption eOption
= VOPT_FORMULAS
;
313 BOOL bChecked
= pBtn
->IsChecked();
315 if ( &aFormulaCB
== pBtn
) eOption
= VOPT_FORMULAS
;
316 else if ( &aNilCB
== pBtn
) eOption
= VOPT_NULLVALS
;
317 else if ( &aAnnotCB
== pBtn
) eOption
= VOPT_NOTES
;
318 else if ( &aValueCB
== pBtn
) eOption
= VOPT_SYNTAX
;
319 else if ( &aAnchorCB
== pBtn
) eOption
= VOPT_ANCHOR
;
320 else if ( &aClipMarkCB
== pBtn
) eOption
= VOPT_CLIPMARKS
;
321 else if ( &aVScrollCB
== pBtn
) eOption
= VOPT_VSCROLL
;
322 else if ( &aHScrollCB
== pBtn
) eOption
= VOPT_HSCROLL
;
323 else if ( &aTblRegCB
== pBtn
) eOption
= VOPT_TABCONTROLS
;
324 else if ( &aOutlineCB
== pBtn
) eOption
= VOPT_OUTLINER
;
325 else if ( &aBreakCB
== pBtn
) eOption
= VOPT_PAGEBREAKS
;
326 else if ( &aGuideLineCB
== pBtn
) eOption
= VOPT_HELPLINES
;
327 else if ( &aHandleCB
== pBtn
) eOption
= VOPT_SOLIDHANDLES
;
328 else if ( &aBigHandleCB
== pBtn
) eOption
= VOPT_BIGHANDLES
;
329 else if ( &aRowColHeaderCB
== pBtn
) eOption
= VOPT_HEADER
;
331 // VOPT_SOLIDHANDLES is inverted (CheckBox is "simple handles")
332 if ( eOption
== VOPT_SOLIDHANDLES
)
333 pLocalOptions
->SetOption( eOption
, !bChecked
);
335 pLocalOptions
->SetOption( eOption
, bChecked
);
340 /*-----------------11.01.97 13.13-------------------
342 --------------------------------------------------*/
344 void ScTpContentOptions::InitGridOpt()
346 BOOL bGrid
= pLocalOptions
->GetOption( VOPT_GRID
);
348 aGridCB
.Check( bGrid
);
351 aColorFT
.Enable(), aColorLB
.Enable();
353 aColorFT
.Disable(), aColorLB
.Disable();
355 if ( aColorLB
.GetEntryCount() == 0 )
357 SfxObjectShell
* pDocSh
= SfxObjectShell::Current();
358 // hier koennte auch eine andere DocShell kommen!
359 pDocSh
= PTR_CAST(ScDocShell
, pDocSh
);
361 XColorTable
* pColorTable
= NULL
;
365 const SfxPoolItem
* pItem
= pDocSh
->GetItem( SID_COLOR_TABLE
);
368 pColorTable
= ((SvxColorTableItem
*)pItem
)->GetColorTable();
371 pColorTable
= XColorTable::GetStdColorTable();
376 //------------------------------------------------------
378 aColorLB
.SetUpdateMode( FALSE
);
380 // Eintraege aus der Colortable
382 long nCount
= pColorTable
->Count();
383 for ( long n
=0; n
<nCount
; n
++ )
385 XColorEntry
* pEntry
= pColorTable
->GetColor(n
);
386 aColorLB
.InsertEntry( pEntry
->GetColor(), pEntry
->GetName() );
389 // Standard-Gitterfarbe
391 Color
aStdCol( SC_STD_GRIDCOLOR
); // wie Default in ScViewOptions
392 if ( LISTBOX_ENTRY_NOTFOUND
==
393 aColorLB
.GetEntryPos( aStdCol
) )
394 aColorLB
.InsertEntry( aStdCol
, ScGlobal::GetRscString( STR_GRIDCOLOR
) );
396 aColorLB
.SetUpdateMode( TRUE
);
401 // #79720# also select grid color entry on subsequent calls
404 Color aCol
= pLocalOptions
->GetGridColor( &aName
);
405 USHORT nSelPos
= aColorLB
.GetEntryPos( aCol
);
407 if ( LISTBOX_ENTRY_NOTFOUND
!= nSelPos
)
408 aColorLB
.SelectEntryPos( nSelPos
);
410 aColorLB
.SelectEntryPos( aColorLB
.InsertEntry( aCol
, aName
) );
412 /*-----------------11.01.97 13.40-------------------
414 --------------------------------------------------*/
416 IMPL_LINK( ScTpContentOptions
, GridHdl
, CheckBox
*, pBox
)
418 BOOL bChecked
= pBox
->IsChecked();
419 aColorFT
.Enable(bChecked
);
420 aColorLB
.Enable(bChecked
);
421 pLocalOptions
->SetOption( VOPT_GRID
, bChecked
);
424 /*-----------------11.01.97 10.53-------------------
426 --------------------------------------------------*/
428 ScTpLayoutOptions::ScTpLayoutOptions( Window
* pParent
,
429 const SfxItemSet
& rArgSet
) :
430 SfxTabPage(pParent
, ScResId( RID_SCPAGE_LAYOUT
), rArgSet
),
431 aUnitGB( this, ScResId(GB_UNIT
)),
432 aUnitFT( this, ScResId(FT_UNIT
)),
433 aUnitLB( this, ScResId(LB_UNIT
)),
434 aTabFT( this, ScResId( FT_TAB
)),
435 aTabMF( this, ScResId( MF_TAB
)),
436 aSeparatorFL( this, ScResId( FL_SEPARATOR
)),
437 aLinkGB (this, ScResId(GB_LINK
)),
438 aLinkFT(this, ScResId(FT_UPDATE_LINKS
)),
439 aAlwaysRB (this, ScResId(RB_ALWAYS
)),
440 aRequestRB (this, ScResId(RB_REQUEST
)),
441 aNeverRB (this, ScResId(RB_NEVER
)),
443 aOptionsGB( this, ScResId( GB_OPTIONS
)),
444 aAlignCB ( this, ScResId( CB_ALIGN
)),
445 aAlignLB ( this, ScResId( LB_ALIGN
)),
446 aEditModeCB( this, ScResId( CB_EDITMODE
)),
447 aFormatCB( this, ScResId( CB_FORMAT
)),
448 aExpRefCB( this, ScResId( CB_EXPREF
)),
449 aMarkHdrCB( this, ScResId( CB_MARKHDR
)),
450 aTextFmtCB( this, ScResId( CB_TEXTFMT
)),
451 aReplWarnCB( this, ScResId( CB_REPLWARN
)),
452 aUnitArr( ScResId(ST_UNIT
)),
456 aSeparatorFL
.SetStyle( aSeparatorFL
.GetStyle() | WB_VERT
);
457 SetExchangeSupport();
459 aUnitLB
. SetSelectHdl( LINK( this, ScTpLayoutOptions
, MetricHdl
) );
461 aAlignCB
.SetClickHdl(LINK(this, ScTpLayoutOptions
, AlignHdl
));
464 for ( USHORT i
= 0; i
< aUnitArr
.Count(); ++i
)
466 String sMetric
= aUnitArr
.GetStringByPos( i
);
467 FieldUnit eFUnit
= (FieldUnit
)aUnitArr
.GetValue( i
);
477 // nur diese Metriken benutzen
478 USHORT nPos
= aUnitLB
.InsertEntry( sMetric
);
479 aUnitLB
.SetEntryData( nPos
, (void*)(long)eFUnit
);
484 // added to avoid warnings
490 /*-----------------11.01.97 10.53-------------------
492 --------------------------------------------------*/
494 ScTpLayoutOptions::~ScTpLayoutOptions()
497 /*-----------------11.01.97 10.53-------------------
499 --------------------------------------------------*/
501 SfxTabPage
* ScTpLayoutOptions::Create( Window
* pParent
,
502 const SfxItemSet
& rCoreSet
)
504 ScTpLayoutOptions
* pNew
= new ScTpLayoutOptions(pParent
, rCoreSet
);
505 ScDocShell
* pDocSh
= PTR_CAST(ScDocShell
,SfxObjectShell::Current());
508 pNew
->SetDocument(pDocSh
->GetDocument());
511 /*-----------------11.01.97 10.53-------------------
513 --------------------------------------------------*/
515 BOOL
ScTpLayoutOptions::FillItemSet( SfxItemSet
& rCoreSet
)
518 const USHORT nMPos
= aUnitLB
.GetSelectEntryPos();
519 if ( nMPos
!= aUnitLB
.GetSavedValue() )
521 USHORT nFieldUnit
= (USHORT
)(long)aUnitLB
.GetEntryData( nMPos
);
522 rCoreSet
.Put( SfxUInt16Item( SID_ATTR_METRIC
,
523 (UINT16
)nFieldUnit
) );
527 if(aTabMF
.GetText() != aTabMF
.GetSavedValue())
529 rCoreSet
.Put(SfxUInt16Item(SID_ATTR_DEFTABSTOP
,
530 sal::static_int_cast
<UINT16
>( aTabMF
.Denormalize(aTabMF
.GetValue(FUNIT_TWIP
)) )));
534 ScLkUpdMode nSet
=LM_ALWAYS
;
536 if(aRequestRB
.IsChecked())
540 else if(aNeverRB
.IsChecked())
545 if(aRequestRB
.IsChecked() != aRequestRB
.GetSavedValue() ||
546 aNeverRB
.IsChecked() != aNeverRB
.GetSavedValue() )
549 pDoc
->SetLinkMode(nSet
);
550 ScAppOptions aAppOptions
=SC_MOD()->GetAppOptions();
551 aAppOptions
.SetLinkMode(nSet
);
552 SC_MOD()->SetAppOptions(aAppOptions
);
555 if(aAlignCB
.GetSavedValue() != aAlignCB
.IsChecked())
557 rCoreSet
.Put(SfxBoolItem(SID_SC_INPUT_SELECTION
, aAlignCB
.IsChecked()));
561 if(aAlignLB
.GetSavedValue() != aAlignLB
.GetSelectEntryPos())
563 rCoreSet
.Put(SfxUInt16Item(SID_SC_INPUT_SELECTIONPOS
, aAlignLB
.GetSelectEntryPos()));
567 if(aEditModeCB
.GetSavedValue() != aEditModeCB
.IsChecked())
569 rCoreSet
.Put(SfxBoolItem(SID_SC_INPUT_EDITMODE
, aEditModeCB
.IsChecked()));
573 if(aFormatCB
.GetSavedValue() != aFormatCB
.IsChecked())
575 rCoreSet
.Put(SfxBoolItem(SID_SC_INPUT_FMT_EXPAND
, aFormatCB
.IsChecked()));
580 if(aExpRefCB
.GetSavedValue() != aExpRefCB
.IsChecked())
582 rCoreSet
.Put(SfxBoolItem(SID_SC_INPUT_REF_EXPAND
, aExpRefCB
.IsChecked()));
586 if(aMarkHdrCB
.GetSavedValue() != aMarkHdrCB
.IsChecked())
588 rCoreSet
.Put(SfxBoolItem(SID_SC_INPUT_MARK_HEADER
, aMarkHdrCB
.IsChecked()));
592 if(aTextFmtCB
.GetSavedValue() != aTextFmtCB
.IsChecked())
594 rCoreSet
.Put(SfxBoolItem(SID_SC_INPUT_TEXTWYSIWYG
, aTextFmtCB
.IsChecked()));
598 if( aReplWarnCB
.GetSavedValue() != aReplWarnCB
.IsChecked() )
600 rCoreSet
.Put( SfxBoolItem( SID_SC_INPUT_REPLCELLSWARN
, aReplWarnCB
.IsChecked() ) );
606 /*-----------------11.01.97 10.53-------------------
608 --------------------------------------------------*/
610 void ScTpLayoutOptions::Reset( const SfxItemSet
& rCoreSet
)
612 aUnitLB
.SetNoSelection();
613 if ( rCoreSet
.GetItemState( SID_ATTR_METRIC
) >= SFX_ITEM_AVAILABLE
)
615 const SfxUInt16Item
& rItem
= (SfxUInt16Item
&)rCoreSet
.Get( SID_ATTR_METRIC
);
616 FieldUnit eFieldUnit
= (FieldUnit
)rItem
.GetValue();
618 for ( USHORT i
= 0; i
< aUnitLB
.GetEntryCount(); ++i
)
620 if ( (FieldUnit
)(long)aUnitLB
.GetEntryData( i
) == eFieldUnit
)
622 aUnitLB
.SelectEntryPos( i
);
626 ::SetFieldUnit(aTabMF
, eFieldUnit
);
630 const SfxPoolItem
* pItem
;
631 if(SFX_ITEM_SET
== rCoreSet
.GetItemState(SID_ATTR_DEFTABSTOP
, FALSE
, &pItem
))
632 aTabMF
.SetValue(aTabMF
.Normalize(((SfxUInt16Item
*)pItem
)->GetValue()), FUNIT_TWIP
);
635 aUnitLB
.SaveValue();
638 ScLkUpdMode nSet
=LM_UNKNOWN
;
642 nSet
=pDoc
->GetLinkMode();
647 ScAppOptions aAppOptions
=SC_MOD()->GetAppOptions();
648 nSet
=aAppOptions
.GetLinkMode();
653 case LM_ALWAYS
: aAlwaysRB
. Check(); break;
654 case LM_NEVER
: aNeverRB
. Check(); break;
655 case LM_ON_DEMAND
: aRequestRB
. Check(); break;
658 // added to avoid warnings
661 if(SFX_ITEM_SET
== rCoreSet
.GetItemState(SID_SC_INPUT_SELECTION
, FALSE
, &pItem
))
662 aAlignCB
.Check(((const SfxBoolItem
*)pItem
)->GetValue());
664 if(SFX_ITEM_SET
== rCoreSet
.GetItemState(SID_SC_INPUT_SELECTIONPOS
, FALSE
, &pItem
))
665 aAlignLB
.SelectEntryPos(((const SfxUInt16Item
*)pItem
)->GetValue());
667 if(SFX_ITEM_SET
== rCoreSet
.GetItemState(SID_SC_INPUT_EDITMODE
, FALSE
, &pItem
))
668 aEditModeCB
.Check(((const SfxBoolItem
*)pItem
)->GetValue());
670 if(SFX_ITEM_SET
== rCoreSet
.GetItemState(SID_SC_INPUT_FMT_EXPAND
, FALSE
, &pItem
))
671 aFormatCB
.Check(((const SfxBoolItem
*)pItem
)->GetValue());
674 if(SFX_ITEM_SET
== rCoreSet
.GetItemState(SID_SC_INPUT_REF_EXPAND
, FALSE
, &pItem
))
675 aExpRefCB
.Check(((const SfxBoolItem
*)pItem
)->GetValue());
677 if(SFX_ITEM_SET
== rCoreSet
.GetItemState(SID_SC_INPUT_MARK_HEADER
, FALSE
, &pItem
))
678 aMarkHdrCB
.Check(((const SfxBoolItem
*)pItem
)->GetValue());
680 if(SFX_ITEM_SET
== rCoreSet
.GetItemState(SID_SC_INPUT_TEXTWYSIWYG
, FALSE
, &pItem
))
681 aTextFmtCB
.Check(((const SfxBoolItem
*)pItem
)->GetValue());
683 if( SFX_ITEM_SET
== rCoreSet
.GetItemState( SID_SC_INPUT_REPLCELLSWARN
, FALSE
, &pItem
) )
684 aReplWarnCB
.Check( ( (const SfxBoolItem
*)pItem
)->GetValue() );
686 aAlignCB
.SaveValue();
687 aAlignLB
.SaveValue();
688 aEditModeCB
.SaveValue();
689 aFormatCB
.SaveValue();
691 aExpRefCB
.SaveValue();
692 aMarkHdrCB
.SaveValue();
693 aTextFmtCB
.SaveValue();
694 aReplWarnCB
.SaveValue();
697 aAlwaysRB
.SaveValue();
698 aNeverRB
.SaveValue();
699 aRequestRB
.SaveValue();
702 /*-----------------11.01.97 12.46-------------------
704 --------------------------------------------------*/
706 void ScTpLayoutOptions::ActivatePage( const SfxItemSet
& /* rCoreSet */ )
709 /*-----------------11.01.97 12.46-------------------
711 --------------------------------------------------*/
713 int ScTpLayoutOptions::DeactivatePage( SfxItemSet
* pSetP
)
717 return SfxTabPage::LEAVE_PAGE
;
721 /*-----------------13.01.97 14.44-------------------
722 Metric des Deftabstops umschalten
723 --------------------------------------------------*/
725 IMPL_LINK(ScTpLayoutOptions
, MetricHdl
, ListBox
*, EMPTYARG
)
727 const USHORT nMPos
= aUnitLB
.GetSelectEntryPos();
728 if(nMPos
!= USHRT_MAX
)
730 FieldUnit eFieldUnit
= (FieldUnit
)(long)aUnitLB
.GetEntryData( nMPos
);
732 aTabMF
.Denormalize( aTabMF
.GetValue( FUNIT_TWIP
) );
733 ::SetFieldUnit( aTabMF
, eFieldUnit
);
734 aTabMF
.SetValue( aTabMF
.Normalize( nVal
), FUNIT_TWIP
);
739 /*-----------------11.01.97 15.30-------------------
741 --------------------------------------------------*/
742 IMPL_LINK( ScTpLayoutOptions
, AlignHdl
, CheckBox
*, pBox
)
744 aAlignLB
.Enable(pBox
->IsChecked());