blob: 5da845b87542c7beea17af2614e9983491b3d621 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sc.hxx"
#undef SC_DLLIMPLEMENTATION
//------------------------------------------------------------------
#include "scitems.hxx"
#include "tpview.hxx"
#include "global.hxx"
#include "viewopti.hxx"
#include "tabvwsh.hxx"
#include "uiitems.hxx"
#include "scresid.hxx"
#include "docsh.hxx"
#include "sc.hrc" // -> Slot-IDs
#include "optdlg.hrc"
#include "globstr.hrc"
#include <appoptio.hxx>
#include <scmod.hxx>
#include <svx/dlgutil.hxx>
#include <svx/drawitem.hxx>
#include <svx/xtable.hxx>
// STATIC DATA -----------------------------------------------------------
/*-----------------11.01.97 10.52-------------------
Optionen Inhalte
--------------------------------------------------*/
ScTpContentOptions::ScTpContentOptions( Window* pParent,
const SfxItemSet& rArgSet ) :
SfxTabPage(pParent, ScResId( RID_SCPAGE_CONTENT ), rArgSet),
aLinesGB( this, ScResId(GB_LINES )),
aGridCB( this, ScResId(CB_GRID )),
aColorFT( this, ScResId(FT_COLOR )),
aColorLB( this, ScResId(LB_COLOR )),
aBreakCB( this, ScResId(CB_PAGEBREAKS )),
aGuideLineCB( this, ScResId(CB_GUIDELINE )),
aHandleCB( this, ScResId(CB_HANDLES )),
aBigHandleCB( this, ScResId(CB_BIGHANDLES )),
aSeparator1FL (this, ScResId(FL_SEPARATOR1 )),
aDisplayGB( this, ScResId(GB_DISPLAY)),
aFormulaCB( this, ScResId(CB_FORMULA)),
aNilCB( this, ScResId(CB_NIL )),
aAnnotCB( this, ScResId(CB_ANNOT )),
aValueCB( this, ScResId(CB_VALUE )),
aAnchorCB( this, ScResId(CB_ANCHOR )),
aClipMarkCB( this, ScResId(CB_CLIP )),
aRangeFindCB( this, ScResId( CB_RFIND )),
aObjectGB( this, ScResId(GB_OBJECT )),
aObjGrfFT( this, ScResId(FT_OBJGRF )),
aObjGrfLB( this, ScResId(LB_OBJGRF )),
aDiagramFT( this, ScResId(FT_DIAGRAM)),
aDiagramLB( this, ScResId(LB_DIAGRAM)),
aDrawFT( this, ScResId(FT_DRAW )),
aDrawLB( this, ScResId(LB_DRAW )),
aZoomGB( this, ScResId(GB_ZOOM) ),
aSyncZoomCB( this, ScResId(CB_SYNCZOOM) ),
aSeparator2FL (this, ScResId(FL_SEPARATOR2)),
aWindowGB( this, ScResId(GB_WINDOW )),
aRowColHeaderCB(this, ScResId(CB_ROWCOLHEADER )),
aHScrollCB( this, ScResId(CB_HSCROLL )),
aVScrollCB( this, ScResId(CB_VSCROLL )),
aTblRegCB( this, ScResId(CB_TBLREG )),
aOutlineCB( this, ScResId(CB_OUTLINE )),
pLocalOptions(0)
{
FreeResource();
aSeparator1FL.SetStyle( aSeparator1FL.GetStyle() | WB_VERT );
aSeparator2FL.SetStyle( aSeparator2FL.GetStyle() | WB_VERT );
SetExchangeSupport();
Link aSelObjHdl(LINK( this, ScTpContentOptions, SelLbObjHdl ) );
aObjGrfLB. SetSelectHdl(aSelObjHdl);
aDiagramLB. SetSelectHdl(aSelObjHdl);
aDrawLB. SetSelectHdl(aSelObjHdl);
Link aCBHdl(LINK( this, ScTpContentOptions, CBHdl ) );
aFormulaCB .SetClickHdl(aCBHdl);
aNilCB .SetClickHdl(aCBHdl);
aAnnotCB .SetClickHdl(aCBHdl);
aValueCB .SetClickHdl(aCBHdl);
aAnchorCB .SetClickHdl(aCBHdl);
aClipMarkCB .SetClickHdl(aCBHdl);
aVScrollCB .SetClickHdl(aCBHdl);
aHScrollCB .SetClickHdl(aCBHdl);
aTblRegCB .SetClickHdl(aCBHdl);
aOutlineCB .SetClickHdl(aCBHdl);
aBreakCB .SetClickHdl(aCBHdl);
aGuideLineCB.SetClickHdl(aCBHdl);
aHandleCB .SetClickHdl(aCBHdl);
aBigHandleCB.SetClickHdl(aCBHdl);
aRowColHeaderCB.SetClickHdl(aCBHdl);
aGridCB .SetClickHdl( LINK( this, ScTpContentOptions, GridHdl ) );
}
/*-----------------11.01.97 10.52-------------------
--------------------------------------------------*/
ScTpContentOptions::~ScTpContentOptions()
{
delete pLocalOptions;
}
/*-----------------11.01.97 10.52-------------------
--------------------------------------------------*/
SfxTabPage* ScTpContentOptions::Create( Window* pParent,
const SfxItemSet& rCoreSet )
{
return new ScTpContentOptions(pParent, rCoreSet);
}
/*-----------------11.01.97 10.52-------------------
--------------------------------------------------*/
sal_Bool ScTpContentOptions::FillItemSet( SfxItemSet& rCoreSet )
{
sal_Bool bRet = sal_False;
if( aFormulaCB .GetSavedValue() != aFormulaCB .IsChecked() ||
aNilCB .GetSavedValue() != aNilCB .IsChecked() ||
aAnnotCB .GetSavedValue() != aAnnotCB .IsChecked() ||
aValueCB .GetSavedValue() != aValueCB .IsChecked() ||
aAnchorCB .GetSavedValue() != aAnchorCB .IsChecked() ||
aClipMarkCB .GetSavedValue() != aClipMarkCB .IsChecked() ||
aObjGrfLB .GetSavedValue() != aObjGrfLB .GetSelectEntryPos() ||
aDiagramLB .GetSavedValue() != aDiagramLB .GetSelectEntryPos() ||
aDrawLB .GetSavedValue() != aDrawLB .GetSelectEntryPos() ||
aGridCB .GetSavedValue() != aGridCB.IsChecked() ||
aRowColHeaderCB .GetSavedValue() != aRowColHeaderCB.IsChecked() ||
aHScrollCB .GetSavedValue() != aHScrollCB .IsChecked() ||
aVScrollCB .GetSavedValue() != aVScrollCB .IsChecked() ||
aTblRegCB .GetSavedValue() != aTblRegCB .IsChecked() ||
aOutlineCB .GetSavedValue() != aOutlineCB .IsChecked() ||
aColorLB .GetSavedValue() != aColorLB .GetSelectEntryPos() ||
aBreakCB .GetSavedValue() != aBreakCB .IsChecked() ||
aGuideLineCB .GetSavedValue() != aGuideLineCB .IsChecked() ||
aHandleCB .GetSavedValue() != aHandleCB .IsChecked() ||
aBigHandleCB .GetSavedValue() != aBigHandleCB .IsChecked())
{
pLocalOptions->SetGridColor( aColorLB.GetSelectEntryColor(),
aColorLB.GetSelectEntry() );
rCoreSet.Put(ScTpViewItem(SID_SCVIEWOPTIONS, *pLocalOptions));
bRet = sal_True;
}
if(aRangeFindCB.GetSavedValue() != aRangeFindCB.IsChecked())
{
rCoreSet.Put(SfxBoolItem(SID_SC_INPUT_RANGEFINDER, aRangeFindCB.IsChecked()));
bRet = sal_True;
}
if(aSyncZoomCB.GetSavedValue() != aSyncZoomCB.IsChecked())
{
rCoreSet.Put(SfxBoolItem(SID_SC_OPT_SYNCZOOM, aSyncZoomCB.IsChecked()));
bRet = sal_True;
}
return bRet;
}
/*-----------------11.01.97 10.53-------------------
--------------------------------------------------*/
void ScTpContentOptions::Reset( const SfxItemSet& rCoreSet )
{
const SfxPoolItem* pItem;
if(SFX_ITEM_SET == rCoreSet.GetItemState(SID_SCVIEWOPTIONS, sal_False , &pItem))
pLocalOptions = new ScViewOptions(
((const ScTpViewItem*)pItem)->GetViewOptions() );
else
pLocalOptions = new ScViewOptions;
aFormulaCB .Check(pLocalOptions->GetOption(VOPT_FORMULAS));
aNilCB .Check(pLocalOptions->GetOption(VOPT_NULLVALS));
aAnnotCB .Check(pLocalOptions->GetOption(VOPT_NOTES));
aValueCB .Check(pLocalOptions->GetOption(VOPT_SYNTAX));
aAnchorCB .Check(pLocalOptions->GetOption(VOPT_ANCHOR));
aClipMarkCB .Check(pLocalOptions->GetOption(VOPT_CLIPMARKS));
aObjGrfLB .SelectEntryPos( (sal_uInt16)pLocalOptions->GetObjMode(VOBJ_TYPE_OLE) );
aDiagramLB .SelectEntryPos( (sal_uInt16)pLocalOptions->GetObjMode(VOBJ_TYPE_CHART) );
aDrawLB .SelectEntryPos( (sal_uInt16)pLocalOptions->GetObjMode(VOBJ_TYPE_DRAW) );
aRowColHeaderCB.Check( pLocalOptions->GetOption(VOPT_HEADER) );
aHScrollCB .Check( pLocalOptions->GetOption(VOPT_HSCROLL) );
aVScrollCB .Check( pLocalOptions->GetOption(VOPT_VSCROLL) );
aTblRegCB .Check( pLocalOptions->GetOption(VOPT_TABCONTROLS) );
aOutlineCB .Check( pLocalOptions->GetOption(VOPT_OUTLINER) );
InitGridOpt();
aBreakCB.Check( pLocalOptions->GetOption(VOPT_PAGEBREAKS) );
aGuideLineCB.Check( pLocalOptions->GetOption(VOPT_HELPLINES) );
aHandleCB.Check( !pLocalOptions->GetOption(VOPT_SOLIDHANDLES) ); // inverted
aBigHandleCB.Check( pLocalOptions->GetOption(VOPT_BIGHANDLES) );
if(SFX_ITEM_SET == rCoreSet.GetItemState(SID_SC_INPUT_RANGEFINDER, sal_False, &pItem))
aRangeFindCB.Check(((const SfxBoolItem*)pItem)->GetValue());
if(SFX_ITEM_SET == rCoreSet.GetItemState(SID_SC_OPT_SYNCZOOM, sal_False, &pItem))
aSyncZoomCB.Check(((const SfxBoolItem*)pItem)->GetValue());
aRangeFindCB.SaveValue();
aSyncZoomCB.SaveValue();
aFormulaCB .SaveValue();
aNilCB .SaveValue();
aAnnotCB .SaveValue();
aValueCB .SaveValue();
aAnchorCB .SaveValue();
aClipMarkCB .SaveValue();
aObjGrfLB .SaveValue();
aDiagramLB .SaveValue();
aDrawLB .SaveValue();
aRowColHeaderCB .SaveValue();
aHScrollCB .SaveValue();
aVScrollCB .SaveValue();
aTblRegCB .SaveValue();
aOutlineCB .SaveValue();
aGridCB .SaveValue();
aColorLB .SaveValue();
aBreakCB .SaveValue();
aGuideLineCB .SaveValue();
aHandleCB .SaveValue();
aBigHandleCB .SaveValue();
}
/*-----------------11.01.97 12.45-------------------
--------------------------------------------------*/
void ScTpContentOptions::ActivatePage( const SfxItemSet& rSet)
{
const SfxPoolItem* pItem;
if(SFX_ITEM_SET == rSet.GetItemState(SID_SCVIEWOPTIONS, sal_False , &pItem))
*pLocalOptions = ((const ScTpViewItem*)pItem)->GetViewOptions();
}
/*-----------------11.01.97 12.45-------------------
--------------------------------------------------*/
int ScTpContentOptions::DeactivatePage( SfxItemSet* pSetP )
{
if(pSetP)
FillItemSet(*pSetP);
return SfxTabPage::LEAVE_PAGE;
}
/*-----------------11.01.97 13.43-------------------
--------------------------------------------------*/
IMPL_LINK( ScTpContentOptions, SelLbObjHdl, ListBox*, pLb )
{
sal_uInt16 nSelPos = pLb->GetSelectEntryPos();
ScVObjMode eMode = ScVObjMode(nSelPos);
ScVObjType eType = VOBJ_TYPE_OLE;
if ( pLb == &aDiagramLB )
eType = VOBJ_TYPE_CHART;
else if ( pLb == &aDrawLB )
eType = VOBJ_TYPE_DRAW;
pLocalOptions->SetObjMode( eType, eMode );
return 0;
}
/*-----------------11.01.97 14.25-------------------
--------------------------------------------------*/
IMPL_LINK( ScTpContentOptions, CBHdl, CheckBox*, pBtn )
{
ScViewOption eOption = VOPT_FORMULAS;
sal_Bool bChecked = pBtn->IsChecked();
if ( &aFormulaCB == pBtn ) eOption = VOPT_FORMULAS;
else if ( &aNilCB == pBtn ) eOption = VOPT_NULLVALS;
else if ( &aAnnotCB == pBtn ) eOption = VOPT_NOTES;
else if ( &aValueCB == pBtn ) eOption = VOPT_SYNTAX;
else if ( &aAnchorCB == pBtn ) eOption = VOPT_ANCHOR;
else if ( &aClipMarkCB == pBtn ) eOption = VOPT_CLIPMARKS;
else if ( &aVScrollCB == pBtn ) eOption = VOPT_VSCROLL;
else if ( &aHScrollCB == pBtn ) eOption = VOPT_HSCROLL;
else if ( &aTblRegCB == pBtn ) eOption = VOPT_TABCONTROLS;
else if ( &aOutlineCB == pBtn ) eOption = VOPT_OUTLINER;
else if ( &aBreakCB == pBtn ) eOption = VOPT_PAGEBREAKS;
else if ( &aGuideLineCB == pBtn ) eOption = VOPT_HELPLINES;
else if ( &aHandleCB == pBtn ) eOption = VOPT_SOLIDHANDLES;
else if ( &aBigHandleCB == pBtn ) eOption = VOPT_BIGHANDLES;
else if ( &aRowColHeaderCB == pBtn ) eOption = VOPT_HEADER;
// VOPT_SOLIDHANDLES is inverted (CheckBox is "simple handles")
if ( eOption == VOPT_SOLIDHANDLES )
pLocalOptions->SetOption( eOption, !bChecked );
else
pLocalOptions->SetOption( eOption, bChecked );
return 0;
}
/*-----------------11.01.97 13.13-------------------
--------------------------------------------------*/
void ScTpContentOptions::InitGridOpt()
{
sal_Bool bGrid = pLocalOptions->GetOption( VOPT_GRID );
aGridCB.Check( bGrid );
if ( bGrid )
aColorFT.Enable(), aColorLB.Enable();
else
aColorFT.Disable(), aColorLB.Disable();
if ( aColorLB.GetEntryCount() == 0 )
{
SfxObjectShell* pDocSh = SfxObjectShell::Current();
// hier koennte auch eine andere DocShell kommen!
pDocSh = PTR_CAST(ScDocShell, pDocSh);
XColorListSharedPtr aColorTable;
if ( pDocSh )
{
const SfxPoolItem* pItem = pDocSh->GetItem( SID_COLOR_TABLE );
if ( pItem )
aColorTable = static_cast< const SvxColorTableItem* >(pItem)->GetColorTable();
}
else
aColorTable = XColorList::GetStdColorList();
if ( !aColorTable.get() )
return;
//------------------------------------------------------
aColorLB.SetUpdateMode( sal_False );
// Eintraege aus der Colortable
long nCount = aColorTable->Count();
for ( long n=0; n<nCount; n++ )
{
XColorEntry* pEntry = aColorTable->GetColor(n);
aColorLB.InsertEntry( pEntry->GetColor(), pEntry->GetName() );
}
// Standard-Gitterfarbe
Color aStdCol( SC_STD_GRIDCOLOR ); // wie Default in ScViewOptions
if ( LISTBOX_ENTRY_NOTFOUND ==
aColorLB.GetEntryPos( aStdCol ) )
aColorLB.InsertEntry( aStdCol, ScGlobal::GetRscString( STR_GRIDCOLOR ) );
aColorLB.SetUpdateMode( sal_True );
Invalidate();
}
// #79720# also select grid color entry on subsequent calls
String aName;
Color aCol = pLocalOptions->GetGridColor( &aName );
sal_uInt16 nSelPos = aColorLB.GetEntryPos( aCol );
if ( LISTBOX_ENTRY_NOTFOUND != nSelPos )
aColorLB.SelectEntryPos( nSelPos );
else
aColorLB.SelectEntryPos( aColorLB.InsertEntry( aCol, aName ) );
}
/*-----------------11.01.97 13.40-------------------
--------------------------------------------------*/
IMPL_LINK( ScTpContentOptions, GridHdl, CheckBox*, pBox )
{
sal_Bool bChecked = pBox->IsChecked();
aColorFT.Enable(bChecked);
aColorLB.Enable(bChecked);
pLocalOptions->SetOption( VOPT_GRID, bChecked );
return 0;
}
/*-----------------11.01.97 10.53-------------------
--------------------------------------------------*/
ScTpLayoutOptions::ScTpLayoutOptions( Window* pParent,
const SfxItemSet& rArgSet ) :
SfxTabPage(pParent, ScResId( RID_SCPAGE_LAYOUT ), rArgSet),
aUnitGB( this, ScResId(GB_UNIT )),
aUnitFT( this, ScResId(FT_UNIT )),
aUnitLB( this, ScResId(LB_UNIT )),
aTabFT( this, ScResId( FT_TAB )),
aTabMF( this, ScResId( MF_TAB )),
aSeparatorFL( this, ScResId( FL_SEPARATOR )),
aLinkGB (this, ScResId(GB_LINK )),
aLinkFT(this, ScResId(FT_UPDATE_LINKS )),
aAlwaysRB (this, ScResId(RB_ALWAYS )),
aRequestRB (this, ScResId(RB_REQUEST )),
aNeverRB (this, ScResId(RB_NEVER )),
aOptionsGB( this, ScResId( GB_OPTIONS )),
aAlignCB ( this, ScResId( CB_ALIGN )),
aAlignLB ( this, ScResId( LB_ALIGN )),
aEditModeCB( this, ScResId( CB_EDITMODE )),
aFormatCB( this, ScResId( CB_FORMAT )),
aExpRefCB( this, ScResId( CB_EXPREF )),
aMarkHdrCB( this, ScResId( CB_MARKHDR )),
aTextFmtCB( this, ScResId( CB_TEXTFMT )),
aReplWarnCB( this, ScResId( CB_REPLWARN )),
aUnitArr( ScResId(ST_UNIT )),
pDoc(NULL)
{
FreeResource();
aSeparatorFL.SetStyle( aSeparatorFL.GetStyle() | WB_VERT );
SetExchangeSupport();
aUnitLB. SetSelectHdl( LINK( this, ScTpLayoutOptions, MetricHdl ) );
aAlignCB.SetClickHdl(LINK(this, ScTpLayoutOptions, AlignHdl));
for ( sal_uInt16 i = 0; i < aUnitArr.Count(); ++i )
{
String sMetric = aUnitArr.GetStringByPos( i );
FieldUnit eFUnit = (FieldUnit)aUnitArr.GetValue( i );
switch ( eFUnit )
{
case FUNIT_MM:
case FUNIT_CM:
case FUNIT_POINT:
case FUNIT_PICA:
case FUNIT_INCH:
{
// nur diese Metriken benutzen
sal_uInt16 nPos = aUnitLB.InsertEntry( sMetric );
aUnitLB.SetEntryData( nPos, (void*)(long)eFUnit );
}
break;
default:
{
// added to avoid warnings
}
}
}
}
/*-----------------11.01.97 10.53-------------------
--------------------------------------------------*/
ScTpLayoutOptions::~ScTpLayoutOptions()
{
}
/*-----------------11.01.97 10.53-------------------
--------------------------------------------------*/
SfxTabPage* ScTpLayoutOptions::Create( Window* pParent,
const SfxItemSet& rCoreSet )
{
ScTpLayoutOptions* pNew = new ScTpLayoutOptions(pParent, rCoreSet);
ScDocShell* pDocSh = PTR_CAST(ScDocShell,SfxObjectShell::Current());
if(pDocSh!=NULL)
pNew->SetDocument(pDocSh->GetDocument());
return pNew;
}
/*-----------------11.01.97 10.53-------------------
--------------------------------------------------*/
sal_Bool ScTpLayoutOptions::FillItemSet( SfxItemSet& rCoreSet )
{
sal_Bool bRet = sal_True;
const sal_uInt16 nMPos = aUnitLB.GetSelectEntryPos();
if ( nMPos != aUnitLB.GetSavedValue() )
{
sal_uInt16 nFieldUnit = (sal_uInt16)(long)aUnitLB.GetEntryData( nMPos );
rCoreSet.Put( SfxUInt16Item( SID_ATTR_METRIC,
(sal_uInt16)nFieldUnit ) );
bRet = sal_True;
}
if(aTabMF.GetText() != aTabMF.GetSavedValue())
{
rCoreSet.Put(SfxUInt16Item(SID_ATTR_DEFTABSTOP,
sal::static_int_cast<sal_uInt16>( aTabMF.Denormalize(aTabMF.GetValue(FUNIT_TWIP)) )));
bRet = sal_True;
}
ScLkUpdMode nSet=LM_ALWAYS;
if(aRequestRB.IsChecked())
{
nSet=LM_ON_DEMAND;
}
else if(aNeverRB.IsChecked())
{
nSet=LM_NEVER;
}
if(aRequestRB.IsChecked() != aRequestRB.GetSavedValue() ||
aNeverRB.IsChecked() != aNeverRB.GetSavedValue() )
{
if(pDoc)
pDoc->SetLinkMode(nSet);
ScAppOptions aAppOptions=SC_MOD()->GetAppOptions();
aAppOptions.SetLinkMode(nSet );
SC_MOD()->SetAppOptions(aAppOptions);
bRet = sal_True;
}
if(aAlignCB.GetSavedValue() != aAlignCB.IsChecked())
{
rCoreSet.Put(SfxBoolItem(SID_SC_INPUT_SELECTION, aAlignCB.IsChecked()));
bRet = sal_True;
}
if(aAlignLB.GetSavedValue() != aAlignLB.GetSelectEntryPos())
{
rCoreSet.Put(SfxUInt16Item(SID_SC_INPUT_SELECTIONPOS, aAlignLB.GetSelectEntryPos()));
bRet = sal_True;
}
if(aEditModeCB.GetSavedValue() != aEditModeCB.IsChecked())
{
rCoreSet.Put(SfxBoolItem(SID_SC_INPUT_EDITMODE, aEditModeCB.IsChecked()));
bRet = sal_True;
}
if(aFormatCB.GetSavedValue() != aFormatCB.IsChecked())
{
rCoreSet.Put(SfxBoolItem(SID_SC_INPUT_FMT_EXPAND, aFormatCB.IsChecked()));
bRet = sal_True;
}
if(aExpRefCB.GetSavedValue() != aExpRefCB.IsChecked())
{
rCoreSet.Put(SfxBoolItem(SID_SC_INPUT_REF_EXPAND, aExpRefCB.IsChecked()));
bRet = sal_True;
}
if(aMarkHdrCB.GetSavedValue() != aMarkHdrCB.IsChecked())
{
rCoreSet.Put(SfxBoolItem(SID_SC_INPUT_MARK_HEADER, aMarkHdrCB.IsChecked()));
bRet = sal_True;
}
if(aTextFmtCB.GetSavedValue() != aTextFmtCB.IsChecked())
{
rCoreSet.Put(SfxBoolItem(SID_SC_INPUT_TEXTWYSIWYG, aTextFmtCB.IsChecked()));
bRet = sal_True;
}
if( aReplWarnCB.GetSavedValue() != aReplWarnCB.IsChecked() )
{
rCoreSet.Put( SfxBoolItem( SID_SC_INPUT_REPLCELLSWARN, aReplWarnCB.IsChecked() ) );
bRet = sal_True;
}
return bRet;
}
/*-----------------11.01.97 10.53-------------------
--------------------------------------------------*/
void ScTpLayoutOptions::Reset( const SfxItemSet& rCoreSet )
{
aUnitLB.SetNoSelection();
if ( rCoreSet.GetItemState( SID_ATTR_METRIC ) >= SFX_ITEM_AVAILABLE )
{
const SfxUInt16Item& rItem = (SfxUInt16Item&)rCoreSet.Get( SID_ATTR_METRIC );
FieldUnit eFieldUnit = (FieldUnit)rItem.GetValue();
for ( sal_uInt16 i = 0; i < aUnitLB.GetEntryCount(); ++i )
{
if ( (FieldUnit)(long)aUnitLB.GetEntryData( i ) == eFieldUnit )
{
aUnitLB.SelectEntryPos( i );
break;
}
}
::SetFieldUnit(aTabMF, eFieldUnit);
}
aUnitLB.SaveValue();
const SfxPoolItem* pItem;
if(SFX_ITEM_SET == rCoreSet.GetItemState(SID_ATTR_DEFTABSTOP, sal_False, &pItem))
aTabMF.SetValue(aTabMF.Normalize(((SfxUInt16Item*)pItem)->GetValue()), FUNIT_TWIP);
aTabMF.SaveValue();
aUnitLB .SaveValue();
aTabMF .SaveValue();
ScLkUpdMode nSet=LM_UNKNOWN;
if(pDoc!=NULL)
{
nSet=pDoc->GetLinkMode();
}
if(nSet==LM_UNKNOWN)
{
ScAppOptions aAppOptions=SC_MOD()->GetAppOptions();
nSet=aAppOptions.GetLinkMode();
}
switch(nSet)
{
case LM_ALWAYS: aAlwaysRB. Check(); break;
case LM_NEVER: aNeverRB. Check(); break;
case LM_ON_DEMAND: aRequestRB. Check(); break;
default:
{
// added to avoid warnings
}
}
if(SFX_ITEM_SET == rCoreSet.GetItemState(SID_SC_INPUT_SELECTION, sal_False, &pItem))
aAlignCB.Check(((const SfxBoolItem*)pItem)->GetValue());
if(SFX_ITEM_SET == rCoreSet.GetItemState(SID_SC_INPUT_SELECTIONPOS, sal_False, &pItem))
aAlignLB.SelectEntryPos(((const SfxUInt16Item*)pItem)->GetValue());
if(SFX_ITEM_SET == rCoreSet.GetItemState(SID_SC_INPUT_EDITMODE, sal_False, &pItem))
aEditModeCB.Check(((const SfxBoolItem*)pItem)->GetValue());
if(SFX_ITEM_SET == rCoreSet.GetItemState(SID_SC_INPUT_FMT_EXPAND, sal_False, &pItem))
aFormatCB.Check(((const SfxBoolItem*)pItem)->GetValue());
if(SFX_ITEM_SET == rCoreSet.GetItemState(SID_SC_INPUT_REF_EXPAND, sal_False, &pItem))
aExpRefCB.Check(((const SfxBoolItem*)pItem)->GetValue());
if(SFX_ITEM_SET == rCoreSet.GetItemState(SID_SC_INPUT_MARK_HEADER, sal_False, &pItem))
aMarkHdrCB.Check(((const SfxBoolItem*)pItem)->GetValue());
if(SFX_ITEM_SET == rCoreSet.GetItemState(SID_SC_INPUT_TEXTWYSIWYG, sal_False, &pItem))
aTextFmtCB.Check(((const SfxBoolItem*)pItem)->GetValue());
if( SFX_ITEM_SET == rCoreSet.GetItemState( SID_SC_INPUT_REPLCELLSWARN, sal_False, &pItem ) )
aReplWarnCB.Check( ( (const SfxBoolItem*)pItem)->GetValue() );
aAlignCB .SaveValue();
aAlignLB .SaveValue();
aEditModeCB .SaveValue();
aFormatCB .SaveValue();
aExpRefCB .SaveValue();
aMarkHdrCB .SaveValue();
aTextFmtCB .SaveValue();
aReplWarnCB .SaveValue();
AlignHdl(&aAlignCB);
aAlwaysRB.SaveValue();
aNeverRB.SaveValue();
aRequestRB.SaveValue();
}
/*-----------------11.01.97 12.46-------------------
--------------------------------------------------*/
void ScTpLayoutOptions::ActivatePage( const SfxItemSet& /* rCoreSet */ )
{
}
/*-----------------11.01.97 12.46-------------------
--------------------------------------------------*/
int ScTpLayoutOptions::DeactivatePage( SfxItemSet* pSetP )
{
if(pSetP)
FillItemSet(*pSetP);
return SfxTabPage::LEAVE_PAGE;
}
/*-----------------13.01.97 14.44-------------------
Metric des Deftabstops umschalten
--------------------------------------------------*/
IMPL_LINK(ScTpLayoutOptions, MetricHdl, ListBox*, EMPTYARG)
{
const sal_uInt16 nMPos = aUnitLB.GetSelectEntryPos();
if(nMPos != USHRT_MAX)
{
FieldUnit eFieldUnit = (FieldUnit)(long)aUnitLB.GetEntryData( nMPos );
sal_Int64 nVal =
aTabMF.Denormalize( aTabMF.GetValue( FUNIT_TWIP ) );
::SetFieldUnit( aTabMF, eFieldUnit );
aTabMF.SetValue( aTabMF.Normalize( nVal ), FUNIT_TWIP );
}
return 0;
}
/*-----------------11.01.97 15.30-------------------
--------------------------------------------------*/
IMPL_LINK( ScTpLayoutOptions, AlignHdl, CheckBox*, pBox )
{
aAlignLB.Enable(pBox->IsChecked());
return 0;
}