summaryrefslogtreecommitdiff
path: root/cui/source/tabpages/tabstpge.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'cui/source/tabpages/tabstpge.cxx')
-rw-r--r--cui/source/tabpages/tabstpge.cxx759
1 files changed, 0 insertions, 759 deletions
diff --git a/cui/source/tabpages/tabstpge.cxx b/cui/source/tabpages/tabstpge.cxx
deleted file mode 100644
index f2d8e0c3c..000000000
--- a/cui/source/tabpages/tabstpge.cxx
+++ /dev/null
@@ -1,759 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// include ---------------------------------------------------------------
-
-#include <sfx2/app.hxx>
-#include <tools/shl.hxx>
-#include <svtools/ruler.hxx>
-#include <svx/dialogs.hrc>
-
-#define _SVX_TABSTPGE_CXX
-
-#include <cuires.hrc>
-#include "tabstpge.hrc"
-#include <editeng/lrspitem.hxx>
-#include "tabstpge.hxx"
-#include <dialmgr.hxx>
-#include "svx/dlgutil.hxx"
-#include <sfx2/module.hxx>
-#include <svl/cjkoptions.hxx>
-#include <unotools/localedatawrapper.hxx>
-#include <comphelper/processfactory.hxx>
-#include <sfx2/request.hxx>
-#include <svl/intitem.hxx>
-
-// class TabWin_Impl -----------------------------------------------------
-
-class TabWin_Impl : public Window
-{
-private:
- sal_uInt16 nTabStyle;
-
-public:
- TabWin_Impl( Window* pParent, const ResId& rId, sal_uInt16 nStyle ) :
- Window( pParent, rId ),
- nTabStyle( nStyle ) {}
-
- virtual void Paint( const Rectangle& rRect );
-};
-
-// static ----------------------------------------------------------------
-
-static sal_uInt16 pRanges[] =
-{
- SID_ATTR_TABSTOP,
- SID_ATTR_TABSTOP_OFFSET,
- 0
-};
-
-// C-Funktion ------------------------------------------------------------
-
-void FillUpWithDefTabs_Impl( long nDefDist, SvxTabStopItem& rTabs )
-{
- if( rTabs.Count() )
- return;
- {
- SvxTabStop aSwTabStop( nDefDist, SVX_TAB_ADJUST_DEFAULT );
- rTabs.Insert( aSwTabStop );
- }
-}
-
-// class TabWin_Impl -----------------------------------------------------
-
-void TabWin_Impl::Paint( const Rectangle& )
-{
- // Tabulatoren malen
- Point aPnt;
- Size aSize = GetOutputSizePixel();
- aPnt.X() = aSize.Width() / 2;
- aPnt.Y() = aSize.Height() / 2;
- Ruler::DrawTab( this, aPnt, nTabStyle );
-}
-
-// class SvxTabulatorTabPage ---------------------------------------------
-
-SvxTabulatorTabPage::SvxTabulatorTabPage( Window* pParent,
- const SfxItemSet& rAttr ):
-
- SfxTabPage( pParent, CUI_RES( RID_SVXPAGE_TABULATOR ), rAttr ),
-
- aTabLabel ( this, CUI_RES( FL_TABPOS ) ),
- aTabBox ( this, CUI_RES( ED_TABPOS ) ),
- aTabLabelVert ( this, CUI_RES( FL_TABPOS_VERT ) ),
- aTabTypeLabel ( this, CUI_RES( FL_TABTYPE ) ),
- aLeftTab ( this, CUI_RES( BTN_TABTYPE_LEFT ) ),
- aRightTab ( this, CUI_RES( BTN_TABTYPE_RIGHT ) ),
- aCenterTab ( this, CUI_RES( BTN_TABTYPE_CENTER ) ),
- aDezTab ( this, CUI_RES( BTN_TABTYPE_DECIMAL ) ),
- pLeftWin ( new TabWin_Impl( this, CUI_RES( WIN_TABLEFT ), (sal_uInt16)(RULER_TAB_LEFT|WB_HORZ) ) ),
- pRightWin ( new TabWin_Impl( this, CUI_RES( WIN_TABRIGHT ), (sal_uInt16)(RULER_TAB_RIGHT|WB_HORZ) ) ),
- pCenterWin ( new TabWin_Impl( this, CUI_RES( WIN_TABCENTER ), (sal_uInt16)(RULER_TAB_CENTER|WB_HORZ) ) ),
- pDezWin ( new TabWin_Impl( this, CUI_RES( WIN_TABDECIMAL ), (sal_uInt16)(RULER_TAB_DECIMAL|WB_HORZ) ) ),
- aDezCharLabel ( this, CUI_RES( FT_TABTYPE_DECCHAR ) ),
- aDezChar ( this, CUI_RES( ED_TABTYPE_DECCHAR ) ),
- aFillLabel ( this, CUI_RES( FL_FILLCHAR ) ),
- aNoFillChar ( this, CUI_RES( BTN_FILLCHAR_NO ) ),
- aFillPoints ( this, CUI_RES( BTN_FILLCHAR_POINTS ) ),
- aFillDashLine ( this, CUI_RES( BTN_FILLCHAR_DASHLINE ) ),
- aFillSolidLine ( this, CUI_RES( BTN_FILLCHAR_UNDERSCORE ) ),
- aFillSpecial ( this, CUI_RES( BTN_FILLCHAR_OTHER ) ),
- aFillChar ( this, CUI_RES( ED_FILLCHAR_OTHER ) ),
- aNewBtn ( this, CUI_RES( BTN_NEW ) ),
- aDelAllBtn ( this, CUI_RES( BTN_DELALL ) ),
- aDelBtn ( this, CUI_RES( BTN_DEL ) ),
-
- aAktTab ( 0 ),
- aNewTabs ( 0, 0, SVX_TAB_ADJUST_LEFT, GetWhich( SID_ATTR_TABSTOP ) ),
- nDefDist ( 0 ),
- eDefUnit( FUNIT_100TH_MM ),
- bCheck ( sal_False )
-
-{
- SvtCJKOptions aCJKOptions;
- if(aCJKOptions.IsAsianTypographyEnabled())
- {
- aLeftTab .SetText(String(CUI_RES( ST_LEFTTAB_ASIAN )));
- aRightTab .SetText(String(CUI_RES( ST_RIGHTTAB_ASIAN )));
- }
-
- aFillChar.SetAccessibleName(String(CUI_RES( ST_FILLCHAR_OTHER )));
- // diese Page braucht ExchangeSupport
- SetExchangeSupport();
-
-
- // Metrik einstellen
- FieldUnit eFUnit = GetModuleFieldUnit( rAttr );
- SetFieldUnit( aTabBox, eFUnit );
-
- // Buttons initialisieren
- aNewBtn.SetClickHdl( LINK( this,SvxTabulatorTabPage, NewHdl_Impl ) );
- aDelBtn.SetClickHdl( LINK( this,SvxTabulatorTabPage, DelHdl_Impl ) );
- aDelAllBtn.SetClickHdl( LINK( this,SvxTabulatorTabPage, DelAllHdl_Impl ) );
-
- Link aLink = LINK( this, SvxTabulatorTabPage, TabTypeCheckHdl_Impl );
- aLeftTab.SetClickHdl( aLink );
- aRightTab.SetClickHdl( aLink );
- aDezTab.SetClickHdl( aLink );
- aCenterTab.SetClickHdl( aLink );
-
- aDezChar.SetLoseFocusHdl( LINK( this, SvxTabulatorTabPage, GetDezCharHdl_Impl ) );
- aDezChar.SetMaxTextLen(1);
- aDezChar.Disable();
- aDezCharLabel.Disable();
-
- aLink = LINK( this, SvxTabulatorTabPage, FillTypeCheckHdl_Impl );
- aNoFillChar.SetClickHdl( aLink );
- aFillPoints.SetClickHdl( aLink );
- aFillDashLine.SetClickHdl( aLink );
- aFillSolidLine.SetClickHdl( aLink );
- aFillSpecial.SetClickHdl( aLink );
- aFillChar.SetLoseFocusHdl( LINK( this, SvxTabulatorTabPage, GetFillCharHdl_Impl ) );
- aFillChar.SetMaxTextLen(1);
- aFillChar.Disable();
-
- aTabBox.SetDoubleClickHdl( LINK( this, SvxTabulatorTabPage, SelectHdl_Impl ) );
- aTabBox.SetModifyHdl( LINK( this, SvxTabulatorTabPage, ModifyHdl_Impl ) );
-
- aLeftTab.SetAccessibleRelationMemberOf( &aTabTypeLabel );
- aRightTab.SetAccessibleRelationMemberOf( &aTabTypeLabel );
- aCenterTab.SetAccessibleRelationMemberOf( &aTabTypeLabel );
- aDezTab.SetAccessibleRelationMemberOf( &aTabTypeLabel );
- aDezCharLabel.SetAccessibleRelationMemberOf( &aTabTypeLabel );
- aDezChar.SetAccessibleRelationMemberOf( &aTabTypeLabel );
-
- aNoFillChar.SetAccessibleRelationMemberOf( &aFillLabel );
- aFillPoints.SetAccessibleRelationMemberOf( &aFillLabel );
- aFillDashLine.SetAccessibleRelationMemberOf( &aFillLabel );
- aFillSolidLine.SetAccessibleRelationMemberOf( &aFillLabel );
- aFillSpecial.SetAccessibleRelationMemberOf( &aFillLabel );
- aFillChar.SetAccessibleRelationMemberOf( &aFillLabel );
-
- aFillChar.SetAccessibleRelationLabeledBy(&aFillSpecial);
-
- // das Default-Dezimalzeichen vom System holen
- LocaleDataWrapper aLocaleWrapper( ::comphelper::getProcessServiceFactory(), Application::GetSettings().GetLocale() );
- aAktTab.GetDecimal() = aLocaleWrapper.getNumDecimalSep().GetChar(0);
- FreeResource();
-}
-
-// -----------------------------------------------------------------------
-
-SvxTabulatorTabPage::~SvxTabulatorTabPage()
-{
- delete pLeftWin;
- delete pRightWin;
- delete pCenterWin;
- delete pDezWin;
-}
-
-// -----------------------------------------------------------------------
-
-sal_uInt16* SvxTabulatorTabPage::GetRanges()
-{
- return pRanges;
-}
-
-// -----------------------------------------------------------------------
-
-sal_Bool SvxTabulatorTabPage::FillItemSet( SfxItemSet& rSet )
-{
- sal_Bool bModified = sal_False;
-
- // Hier die Werte aus den Controls eintueten
- if ( aNewBtn.IsEnabled() )
- NewHdl_Impl( 0 );
-
- // call at first the LoseFocus-Handler
- GetDezCharHdl_Impl( &aDezChar );
- GetFillCharHdl_Impl( &aFillChar );
-
- FillUpWithDefTabs_Impl( nDefDist, aNewTabs );
- SfxItemPool* pPool = rSet.GetPool();
- MapUnit eUnit = (MapUnit)pPool->GetMetric( GetWhich( SID_ATTR_TABSTOP ) );
- const SfxPoolItem* pOld = GetOldItem( rSet, SID_ATTR_TABSTOP );
-
- if ( MAP_100TH_MM != eUnit )
- {
- // Wenn sich im ItemSet ein LRSpaceItem mit negativen Erstzeileneinzug
- // befindet, muss im TabStopItem auf der Position 0 ein DefTab sein.
- const SfxPoolItem* pLRSpace;
- // wenn nicht im neuen Set, dann vielleicht im alten
- if ( SFX_ITEM_SET !=
- rSet.GetItemState( GetWhich( SID_ATTR_LRSPACE ), sal_True, &pLRSpace ) )
- pLRSpace = GetOldItem( rSet, SID_ATTR_LRSPACE );
-
- if ( pLRSpace && ( (SvxLRSpaceItem*)pLRSpace )->GetTxtFirstLineOfst() < 0 )
- {
- SvxTabStop aNull( 0, SVX_TAB_ADJUST_DEFAULT );
- aNewTabs.Insert( aNull );
- }
-
- SvxTabStopItem aTmp( aNewTabs );
- aTmp.Remove( 0, aTmp.Count() );
-
- for ( sal_uInt16 i = 0; i < aNewTabs.Count(); ++i )
- {
- SvxTabStop aTmpStop = aNewTabs[i];
- aTmpStop.GetTabPos() =
- LogicToLogic( aTmpStop.GetTabPos(), MAP_100TH_MM, eUnit );
- aTmp.Insert( aTmpStop );
- }
-
- if ( !pOld || !( *( (SvxTabStopItem*)pOld ) == aTmp ) )
- {
- rSet.Put( aTmp );
- bModified = sal_True;
- }
- }
- else if ( !pOld || !( *( (SvxTabStopItem*)pOld ) == aNewTabs ) )
- {
- rSet.Put( aNewTabs );
- bModified = sal_True;
- }
- return bModified;
-}
-
-// -----------------------------------------------------------------------
-
-SfxTabPage* SvxTabulatorTabPage::Create( Window* pParent,
- const SfxItemSet& rSet)
-{
- return ( new SvxTabulatorTabPage( pParent, rSet ) );
-}
-
-// -----------------------------------------------------------------------
-
-void SvxTabulatorTabPage::Reset( const SfxItemSet& rSet )
-{
- SfxItemPool* pPool = rSet.GetPool();
- MapUnit eUnit = (MapUnit)pPool->GetMetric( GetWhich( SID_ATTR_TABSTOP ) );
-
- // Aktuelle Tabs
- const SfxPoolItem* pItem = GetItem( rSet, SID_ATTR_TABSTOP );
-
- if ( pItem )
- {
- if ( MAP_100TH_MM != eUnit )
- {
- SvxTabStopItem aTmp( *( (const SvxTabStopItem*)pItem ) );
- aNewTabs.Remove( 0, aNewTabs.Count() );
-
- for ( sal_uInt16 i = 0; i < aTmp.Count(); ++i )
- {
- SvxTabStop aTmpStop = aTmp[i];
- aTmpStop.GetTabPos() =
- LogicToLogic( aTmpStop.GetTabPos(), eUnit, MAP_100TH_MM );
- aNewTabs.Insert( aTmpStop );
- }
- }
- else
- aNewTabs = *( (const SvxTabStopItem*)pItem );
- }
- else
- aNewTabs.Remove( 0, aNewTabs.Count() );
-
- // Default-Tab - Abstand
- nDefDist = SVX_TAB_DEFDIST;
- pItem = GetItem( rSet, SID_ATTR_TABSTOP_DEFAULTS );
-
- if ( pItem )
- nDefDist = LogicToLogic(
- (long)((const SfxUInt16Item*)pItem)->GetValue(), eUnit, MAP_100TH_MM );
-
- // Aktuell selektierte Tab-Pos
- sal_uInt16 nTabPos = 0;
- pItem = GetItem( rSet, SID_ATTR_TABSTOP_POS );
-
- if ( pItem )
- nTabPos = ( (const SfxUInt16Item*)pItem )->GetValue();
-
- InitTabPos_Impl( nTabPos );
-}
-
-// -----------------------------------------------------------------------
-
-void SvxTabulatorTabPage::DisableControls( const sal_uInt16 nFlag )
-{
- if ( ( TABTYPE_LEFT & nFlag ) == TABTYPE_LEFT )
- {
- aLeftTab.Disable();
- pLeftWin->Disable();
- }
- if ( ( TABTYPE_RIGHT & nFlag ) == TABTYPE_RIGHT )
- {
- aRightTab.Disable();
- pRightWin->Disable();
- }
- if ( ( TABTYPE_CENTER & nFlag ) == TABTYPE_CENTER )
- {
- aCenterTab.Disable();
- pCenterWin->Disable();
- }
- if ( ( TABTYPE_DEZIMAL & nFlag ) == TABTYPE_DEZIMAL )
- {
- aDezTab.Disable();
- pDezWin->Disable();
- aDezCharLabel.Disable();
- aDezChar.Disable();
- }
- if ( ( TABTYPE_ALL & nFlag ) == TABTYPE_ALL )
- aTabTypeLabel.Disable();
- if ( ( TABFILL_NONE & nFlag ) == TABFILL_NONE )
- aNoFillChar.Disable();
- if ( ( TABFILL_POINT & nFlag ) == TABFILL_POINT )
- aFillPoints.Disable();
- if ( ( TABFILL_DASHLINE & nFlag ) == TABFILL_DASHLINE )
- aFillDashLine.Disable();
- if ( ( TABFILL_SOLIDLINE & nFlag ) == TABFILL_SOLIDLINE )
- aFillSolidLine.Disable();
- if ( ( TABFILL_SPECIAL & nFlag ) == TABFILL_SPECIAL )
- {
- aFillSpecial.Disable();
- aFillChar.Disable();
- }
- if ( ( TABFILL_ALL & nFlag ) == TABFILL_ALL )
- aFillLabel.Disable();
-}
-
-// -----------------------------------------------------------------------
-
-int SvxTabulatorTabPage::DeactivatePage( SfxItemSet* _pSet )
-{
- if ( _pSet )
- FillItemSet( *_pSet );
- return LEAVE_PAGE;
-}
-
-// -----------------------------------------------------------------------
-
-void SvxTabulatorTabPage::InitTabPos_Impl( sal_uInt16 nTabPos )
-{
- aTabBox.Clear();
-
- long nOffset = 0;
- const SfxPoolItem* pItem = 0;
- if ( GetItemSet().GetItemState( SID_ATTR_TABSTOP_OFFSET, sal_True, &pItem )
- == SFX_ITEM_SET )
- {
- nOffset = ( (const SfxInt32Item*)pItem )->GetValue();
- MapUnit eUnit = (MapUnit)GetItemSet().GetPool()->GetMetric( GetWhich( SID_ATTR_TABSTOP ) );
- nOffset = OutputDevice::LogicToLogic( nOffset, eUnit, MAP_100TH_MM );
- }
-
- // Aktuelle TabPos korrigieren und Defaults-Tabs
- for ( sal_uInt16 i = 0; i < aNewTabs.Count(); i++ )
- {
- if ( aNewTabs[i].GetAdjustment() != SVX_TAB_ADJUST_DEFAULT )
- {
- aTabBox.InsertValue( aTabBox.Normalize(
- aNewTabs[i].GetTabPos() + nOffset ), eDefUnit );
- }
- else
- aNewTabs.Remove( i-- );
- }
-
- // aktuellen Tabulator auswaehlen
- const sal_uInt16 nSize = aNewTabs.Count();
-
- if ( nTabPos >= nSize )
- nTabPos = 0;
-
- // alle RadioButtons erstmal ausschalten
- aLeftTab.Check( sal_True );
- aNoFillChar.Check( sal_True );
-
- if( aTabBox.GetEntryCount() > 0 )
- {
- aTabBox.SetText( aTabBox.GetEntry( nTabPos ) );
- aAktTab = aNewTabs[nTabPos];
-
- SetFillAndTabType_Impl();
- aNewBtn.Disable();
- aDelBtn.Enable();
- }
- else
- { // kein Eintrag dann ist 0 der Default-Wert
- aTabBox.SetValue( 0, eDefUnit );
-
- aNewBtn.Enable();
- aDelBtn.Disable();
- }
-}
-
-// -----------------------------------------------------------------------
-
-void SvxTabulatorTabPage::SetFillAndTabType_Impl()
-{
- RadioButton* pTypeBtn = 0;
- RadioButton* pFillBtn = 0;
-
- aDezChar.Disable();
- aDezCharLabel.Disable();
-
- if ( aAktTab.GetAdjustment() == SVX_TAB_ADJUST_LEFT )
- pTypeBtn = &aLeftTab;
- else if ( aAktTab.GetAdjustment() == SVX_TAB_ADJUST_RIGHT )
- pTypeBtn = &aRightTab;
- else if ( aAktTab.GetAdjustment() == SVX_TAB_ADJUST_DECIMAL )
- {
- pTypeBtn = &aDezTab;
- aDezChar.Enable();
- aDezCharLabel.Enable();
- aDezChar.SetText( String( (sal_Unicode)aAktTab.GetDecimal() ) );
- }
- else if ( aAktTab.GetAdjustment() == SVX_TAB_ADJUST_CENTER )
- pTypeBtn = &aCenterTab;
-
- if ( pTypeBtn )
- pTypeBtn->Check();
-
- aFillChar.Disable();
- aFillChar.SetText( String() );
-
- if ( aAktTab.GetFill() == ' ' )
- pFillBtn = &aNoFillChar;
- else if ( aAktTab.GetFill() == '-' )
- pFillBtn = &aFillDashLine;
- else if ( aAktTab.GetFill() == '_' )
- pFillBtn = &aFillSolidLine;
- else if ( aAktTab.GetFill() == '.' )
- pFillBtn = &aFillPoints;
- else
- {
- pFillBtn = &aFillSpecial;
- aFillChar.Enable();
- aFillChar.SetText( String( (sal_Unicode)aAktTab.GetFill() ) );
- }
- pFillBtn->Check();
-}
-
-// -----------------------------------------------------------------------
-
-IMPL_LINK( SvxTabulatorTabPage, NewHdl_Impl, Button *, pBtn )
-{
- // Einen neuen Hinzufuegen und Selectieren
- // Wert aus der Anzeige holen
- long nVal = static_cast<long>(aTabBox.Denormalize( aTabBox.GetValue( eDefUnit ) ));
-
- // Wenn der pBtn == 0 && der Value == 0 dann keinen Tab Erzeugen
- // weil ueber OK erzeugt
- if ( nVal == 0 && pBtn == 0 )
- return 0;
-
- long nOffset = 0;
- const SfxPoolItem* pItem = 0;
-
- if ( GetItemSet().GetItemState( SID_ATTR_TABSTOP_OFFSET, sal_True, &pItem ) ==
- SFX_ITEM_SET )
- {
- nOffset = ( (const SfxInt32Item*)pItem )->GetValue();
- MapUnit eUnit = (MapUnit)GetItemSet().GetPool()->GetMetric( GetWhich( SID_ATTR_TABSTOP ) );
- nOffset = OutputDevice::LogicToLogic( nOffset, eUnit, MAP_100TH_MM );
- }
- const long nReal = nVal - nOffset;
- sal_uInt16 nSize = aTabBox.GetEntryCount();
-
- sal_uInt16 i;
- for( i = 0; i < nSize; i++ )
- {
- if ( nReal < aNewTabs[i].GetTabPos() )
- break;
- }
-
- // ListBox-Eintrag vornehmen
- aTabBox.InsertValue( aTabBox.Normalize( nVal ), eDefUnit, i );
- aAktTab.GetTabPos() = nReal;
- SvxTabAdjust eAdj = SVX_TAB_ADJUST_LEFT;
-
- if ( aRightTab.IsChecked() )
- eAdj = SVX_TAB_ADJUST_RIGHT;
- else if ( aCenterTab.IsChecked() )
- eAdj = SVX_TAB_ADJUST_CENTER;
- else if ( aDezTab.IsChecked() )
- eAdj = SVX_TAB_ADJUST_DECIMAL;
-
- aAktTab.GetAdjustment() = eAdj;
- aNewTabs.Insert( aAktTab );
-
- aNewBtn.Disable();
- aDelBtn.Enable();
- aTabBox.GrabFocus();
-
- // falls kein RadioButton geclickt wurde,
- // muss trotzdem geputtet werden
- bCheck |= sal_True;
- // set the selection into the position Edit
- aTabBox.SetSelection(Selection(0, aTabBox.GetText().Len()));
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-IMPL_LINK( SvxTabulatorTabPage, DelHdl_Impl, Button *, EMPTYARG )
-{
- sal_uInt16 nPos = aTabBox.GetValuePos( aTabBox.GetValue() );
-
- if ( nPos == COMBOBOX_ENTRY_NOTFOUND )
- return 0;
-
- if ( aTabBox.GetEntryCount() == 1 )
- {
- DelAllHdl_Impl( 0 );
- return 0;
- }
-
- // Tab loeschen
- aTabBox.RemoveEntry( nPos );
- aNewTabs.Remove( nPos );
-
- // aAktTab neu setzen
- const sal_uInt16 nSize = aNewTabs.Count();
-
- if ( nSize > 0 )
- {
- // Pos korrigieren
- nPos = ( ( nSize - 1 ) >= nPos) ? nPos : nPos - 1;
- aTabBox.SetValue( aTabBox.GetValue( nPos ) );
- aAktTab = aNewTabs[nPos];
- }
-
- // Falls keine Tabs Enable Disable Controls
- if ( aTabBox.GetEntryCount() == 0 )
- {
- aDelBtn.Disable();
- aNewBtn.Enable();
- aTabBox.GrabFocus();
- }
-
- // falls kein RadioButton geclickt wurde,
- // muss trotzdem geputtet werden
- bCheck |= sal_True;
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-IMPL_LINK( SvxTabulatorTabPage, DelAllHdl_Impl, Button *, EMPTYARG )
-{
- if ( aNewTabs.Count() )
- {
- aNewTabs = SvxTabStopItem( 0 );
- InitTabPos_Impl();
-
- // damit in FillItemSet() geputtet wird
- bCheck |= sal_True;
- }
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-IMPL_LINK( SvxTabulatorTabPage, TabTypeCheckHdl_Impl, RadioButton *, pBox )
-{
- bCheck |= sal_True;
- SvxTabAdjust eAdj;
- aDezChar.Disable();
- aDezCharLabel.Disable();
- aDezChar.SetText( String() );
-
- if ( pBox == &aLeftTab )
- eAdj = SVX_TAB_ADJUST_LEFT;
- else if ( pBox == &aRightTab )
- eAdj = SVX_TAB_ADJUST_RIGHT;
- else if ( pBox == &aCenterTab )
- eAdj = SVX_TAB_ADJUST_CENTER;
- else
- {
- eAdj = SVX_TAB_ADJUST_DECIMAL;
- aDezChar.Enable();
- aDezCharLabel.Enable();
- aDezChar.SetText( String( (sal_Unicode)aAktTab.GetDecimal() ) );
- }
-
- aAktTab.GetAdjustment() = eAdj;
- sal_uInt16 nPos = aTabBox.GetValuePos( aTabBox.GetValue( eDefUnit ), eDefUnit );
-
- if ( nPos != COMBOBOX_ENTRY_NOTFOUND )
- {
- aNewTabs.Remove( nPos );
- aNewTabs.Insert( aAktTab );
- }
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-IMPL_LINK( SvxTabulatorTabPage, FillTypeCheckHdl_Impl, RadioButton *, pBox )
-{
- bCheck |= sal_True;
- sal_uInt8 cFill = ' ';
- aFillChar.SetText( String() );
- aFillChar.Disable();
-
- if( pBox == &aFillSpecial )
- aFillChar.Enable();
- else if ( pBox == &aNoFillChar )
- cFill = ' ';
- else if ( pBox == &aFillSolidLine )
- cFill = '_';
- else if ( pBox == &aFillPoints )
- cFill = '.';
- else if ( pBox == &aFillDashLine )
- cFill = '-';
-
- aAktTab.GetFill() = cFill;
- sal_uInt16 nPos = aTabBox.GetValuePos( aTabBox.GetValue( eDefUnit ), eDefUnit );
-
- if ( nPos != COMBOBOX_ENTRY_NOTFOUND )
- {
- aNewTabs.Remove( nPos );
- aNewTabs.Insert( aAktTab );
- }
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-IMPL_LINK( SvxTabulatorTabPage, GetFillCharHdl_Impl, Edit *, pEdit )
-{
- String aChar( pEdit->GetText() );
-
- if ( aChar.Len() > 0 )
- aAktTab.GetFill() = aChar.GetChar( 0 );
-
- const sal_uInt16 nPos = aTabBox.GetValuePos( aTabBox.GetValue( eDefUnit ), eDefUnit);
- if ( nPos != COMBOBOX_ENTRY_NOTFOUND )
- {
- aNewTabs.Remove( nPos );
- aNewTabs.Insert( aAktTab );
- }
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-IMPL_LINK( SvxTabulatorTabPage, GetDezCharHdl_Impl, Edit *, pEdit )
-{
- String aChar( pEdit->GetText() );
- if ( aChar.Len() > 0 && ( aChar.GetChar( 0 ) >= ' '))
- aAktTab.GetDecimal() = aChar.GetChar( 0 );
-
- sal_uInt16 nPos = aTabBox.GetValuePos( aTabBox.GetValue( eDefUnit ), eDefUnit );
- if ( nPos != COMBOBOX_ENTRY_NOTFOUND )
- {
- aNewTabs.Remove( nPos );
- aNewTabs.Insert( aAktTab );
- }
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-IMPL_LINK( SvxTabulatorTabPage, SelectHdl_Impl, MetricBox *, EMPTYARG )
-{
- sal_uInt16 nPos = aTabBox.GetValuePos( aTabBox.GetValue( eDefUnit ), eDefUnit );
- if ( nPos != COMBOBOX_ENTRY_NOTFOUND )
- {
- aAktTab = aNewTabs[nPos];
- aNewBtn.Disable();
- SetFillAndTabType_Impl();
- }
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-IMPL_LINK( SvxTabulatorTabPage, ModifyHdl_Impl, MetricBox *, EMPTYARG )
-{
- sal_uInt16 nPos = aTabBox.GetValuePos( aTabBox.GetValue( eDefUnit ), eDefUnit );
- if ( nPos != COMBOBOX_ENTRY_NOTFOUND )
- {
- aAktTab = aNewTabs[nPos];
- SetFillAndTabType_Impl();
-
- aAktTab.GetTabPos() =
- static_cast<long>(aTabBox.Denormalize( aTabBox.GetValue( eDefUnit ) ));
-
- aNewBtn.Disable();
- aDelBtn.Enable();
- return 0;
- }
- aNewBtn.Enable();
- aDelBtn.Disable();
- return 0;
-}
-
-void SvxTabulatorTabPage::PageCreated(SfxAllItemSet aSet)
-{
- SFX_ITEMSET_ARG (&aSet,pControlItem,SfxUInt16Item,SID_SVXTABULATORTABPAGE_CONTROLFLAGS,sal_False);
- if (pControlItem)
- DisableControls(pControlItem->GetValue());
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */