summaryrefslogtreecommitdiff
path: root/cui/source/tabpages/textattr.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'cui/source/tabpages/textattr.cxx')
-rw-r--r--cui/source/tabpages/textattr.cxx767
1 files changed, 0 insertions, 767 deletions
diff --git a/cui/source/tabpages/textattr.cxx b/cui/source/tabpages/textattr.cxx
deleted file mode 100644
index f9634b6d8..000000000
--- a/cui/source/tabpages/textattr.cxx
+++ /dev/null
@@ -1,767 +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 <sfx2/module.hxx>
-#include <tools/shl.hxx>
-#include <cuires.hrc>
-#include <svx/svddef.hxx>
-#include <svx/sdtditm.hxx>
-#include <svx/sdtagitm.hxx>
-#include <svx/sdtaitm.hxx>
-#include <svx/sdtfsitm.hxx>
-#include <svx/sdtcfitm.hxx>
-#include <svx/svdobj.hxx>
-#include <svx/svdmark.hxx>
-#include <svx/svdview.hxx>
-#include <svx/svdotext.hxx>
-#include <svx/dialogs.hrc>
-
-#ifndef _SVX_TEXTATTR_CXX
-#define _SVX_TEXTATTR_CXX
-#endif
-#include "textattr.hxx"
-#include "textattr.hrc"
-#include <dialmgr.hxx>
-#include "svx/dlgutil.hxx"
-#include <sfx2/request.hxx>
-#include <svx/ofaitem.hxx>
-#include <editeng/writingmodeitem.hxx>
-
-static sal_uInt16 pRanges[] =
-{
- SDRATTR_MISC_FIRST, SDRATTR_TEXT_HORZADJUST,
- SDRATTR_TEXT_WORDWRAP, SDRATTR_TEXT_AUTOGROWSIZE,
- 0
-};
-
-/*************************************************************************
-|*
-|* Dialog (Seite) zum Kopieren von Objekten
-|*
-\************************************************************************/
-
-SvxTextAttrPage::SvxTextAttrPage( Window* pWindow, const SfxItemSet& rInAttrs ) :
- SvxTabPage ( pWindow, CUI_RES( RID_SVXPAGE_TEXTATTR ),
- rInAttrs ),
-
- aFlText ( this, CUI_RES( FL_TEXT ) ),
- aTsbAutoGrowWidth ( this, CUI_RES( TSB_AUTOGROW_WIDTH ) ),
- aTsbAutoGrowHeight ( this, CUI_RES( TSB_AUTOGROW_HEIGHT ) ),
- aTsbFitToSize ( this, CUI_RES( TSB_FIT_TO_SIZE ) ),
- aTsbContour ( this, CUI_RES( TSB_CONTOUR ) ),
- aTsbWordWrapText( this, CUI_RES( TSB_WORDWRAP_TEXT ) ),
- aTsbAutoGrowSize( this, CUI_RES( TSB_AUTOGROW_SIZE ) ),
- aFlDistance ( this, CUI_RES( FL_DISTANCE ) ),
- aFtLeft ( this, CUI_RES( FT_LEFT ) ),
- aMtrFldLeft ( this, CUI_RES( MTR_FLD_LEFT ) ),
- aFtRight ( this, CUI_RES( FT_RIGHT ) ),
- aMtrFldRight ( this, CUI_RES( MTR_FLD_RIGHT ) ),
- aFtTop ( this, CUI_RES( FT_TOP ) ),
- aMtrFldTop ( this, CUI_RES( MTR_FLD_TOP ) ),
- aFtBottom ( this, CUI_RES( FT_BOTTOM ) ),
- aMtrFldBottom ( this, CUI_RES( MTR_FLD_BOTTOM ) ),
-
- aFlSeparator ( this, CUI_RES( FL_SEPARATOR ) ),
-
- aFlPosition ( this, CUI_RES( FL_POSITION ) ),
- aCtlPosition ( this, CUI_RES( CTL_POSITION ),
- RP_MM, 240, 100 ),
- aTsbFullWidth ( this, CUI_RES( TSB_FULL_WIDTH ) ),
-
- rOutAttrs ( rInAttrs )
-{
- FreeResource();
-
- FieldUnit eFUnit = GetModuleFieldUnit( rInAttrs );
- SetFieldUnit( aMtrFldLeft, eFUnit );
- SetFieldUnit( aMtrFldRight, eFUnit );
- SetFieldUnit( aMtrFldTop, eFUnit );
- SetFieldUnit( aMtrFldBottom, eFUnit );
-
- Link aLink( LINK( this, SvxTextAttrPage, ClickHdl_Impl ) );
- aTsbAutoGrowWidth.SetClickHdl( aLink );
- aTsbAutoGrowHeight.SetClickHdl( aLink );
- aTsbFitToSize.SetClickHdl( aLink );
- aTsbContour.SetClickHdl( aLink );
-
- aTsbFullWidth.SetClickHdl(
- LINK( this, SvxTextAttrPage, ClickFullWidthHdl_Impl ) );
-
- aCtlPosition.SetAccessibleRelationMemberOf( &aFlPosition );
-}
-
-/*************************************************************************
-|*
-|* Dtor
-|*
-\************************************************************************/
-
-SvxTextAttrPage::~SvxTextAttrPage()
-{
-}
-
-/*************************************************************************
-|*
-|* Liest uebergebenen Item-Set
-|*
-\************************************************************************/
-
-void SvxTextAttrPage::Reset( const SfxItemSet& rAttrs )
-{
- SfxItemPool* pPool = rAttrs.GetPool();
- DBG_ASSERT( pPool, "Wo ist der Pool" );
- SfxMapUnit eUnit = pPool->GetMetric( SDRATTR_TEXT_LEFTDIST );
-
- // Linker Abstand vom Rahmen
- const SfxPoolItem* pItem = GetItem( rAttrs, SDRATTR_TEXT_LEFTDIST );
-
- if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_LEFTDIST );
- if( pItem )
- {
- long nValue = ( ( const SdrTextLeftDistItem* )pItem )->GetValue();
- SetMetricValue( aMtrFldLeft, nValue, eUnit );
- }
- else
- aMtrFldLeft.SetText( String() );
- aMtrFldLeft.SaveValue();
-
- // Rechter Abstand vom Rahmen
- pItem = GetItem( rAttrs, SDRATTR_TEXT_RIGHTDIST );
- if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_RIGHTDIST );
- if( pItem )
- {
- long nValue = ( ( const SdrTextRightDistItem* )pItem )->GetValue();
- SetMetricValue( aMtrFldRight, nValue, eUnit );
- }
- else
- aMtrFldRight.SetText( String() );
- aMtrFldRight.SaveValue();
-
- // Oberer Abstand vom Rahmen
- pItem = GetItem( rAttrs, SDRATTR_TEXT_UPPERDIST );
- if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_UPPERDIST );
- if( pItem )
- {
- long nValue = ( ( const SdrTextUpperDistItem* )pItem )->GetValue();
- SetMetricValue( aMtrFldTop, nValue, eUnit );
- }
- else
- aMtrFldTop.SetText( String() );
- aMtrFldTop.SaveValue();
-
- // Unterer Abstand vom Rahmen
- pItem = GetItem( rAttrs, SDRATTR_TEXT_LOWERDIST );
- if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_LOWERDIST );
- if( pItem )
- {
- long nValue = ( ( const SdrTextLowerDistItem* )pItem )->GetValue();
- SetMetricValue( aMtrFldBottom, nValue, eUnit );
- }
- else
- aMtrFldBottom.SetText( String() );
- aMtrFldBottom.SaveValue();
-
- // An Hoehe anpassen
- if ( rAttrs.GetItemState( SDRATTR_TEXT_AUTOGROWHEIGHT ) != SFX_ITEM_DONTCARE )
- {
- aTsbAutoGrowHeight.SetState( ( ( const SdrTextAutoGrowHeightItem& )rAttrs.Get( SDRATTR_TEXT_AUTOGROWHEIGHT ) ).
- GetValue() ? STATE_CHECK : STATE_NOCHECK );
- aTsbAutoGrowHeight.EnableTriState( sal_False );
- }
- else
- aTsbAutoGrowHeight.SetState( STATE_DONTKNOW );
- aTsbAutoGrowHeight.SaveValue();
-
- // An Breite anpassen
- if ( rAttrs.GetItemState( SDRATTR_TEXT_AUTOGROWWIDTH ) != SFX_ITEM_DONTCARE )
- {
- aTsbAutoGrowWidth.SetState( ( ( const SdrTextAutoGrowWidthItem& )rAttrs.Get( SDRATTR_TEXT_AUTOGROWWIDTH ) ).
- GetValue() ? STATE_CHECK : STATE_NOCHECK );
- aTsbAutoGrowWidth.EnableTriState( sal_False );
- }
- else
- aTsbAutoGrowWidth.SetState( STATE_DONTKNOW );
- aTsbAutoGrowWidth.SaveValue();
-
- // autogrowsize
- if ( rAttrs.GetItemState( SDRATTR_TEXT_AUTOGROWSIZE ) != SFX_ITEM_DONTCARE )
- {
- aTsbAutoGrowSize.SetState( ( ( const SdrTextAutoGrowHeightItem& )rAttrs.Get( SDRATTR_TEXT_AUTOGROWHEIGHT ) ).
- GetValue() ? STATE_CHECK : STATE_NOCHECK );
- aTsbAutoGrowSize.EnableTriState( sal_False );
- }
- else
- aTsbAutoGrowSize.SetState( STATE_DONTKNOW );
- aTsbAutoGrowSize.SaveValue();
-
- // wordwrap text
- if ( rAttrs.GetItemState( SDRATTR_TEXT_WORDWRAP ) != SFX_ITEM_DONTCARE )
- {
- aTsbWordWrapText.SetState( ( ( const SdrTextWordWrapItem& )rAttrs.Get( SDRATTR_TEXT_WORDWRAP ) ).
- GetValue() ? STATE_CHECK : STATE_NOCHECK );
- aTsbWordWrapText.EnableTriState( sal_False );
- }
- else
- aTsbWordWrapText.SetState( STATE_DONTKNOW );
- aTsbWordWrapText.SaveValue();
-
-
- // #103516# Do the setup based on states of hor/ver adjust
- // Setup center field and FullWidth
- SfxItemState eVState = rAttrs.GetItemState( SDRATTR_TEXT_VERTADJUST );
- SfxItemState eHState = rAttrs.GetItemState( SDRATTR_TEXT_HORZADJUST );
-
- if(SFX_ITEM_DONTCARE != eVState && SFX_ITEM_DONTCARE != eHState)
- {
- // VertAdjust and HorAdjust are unequivocal, thus
- SdrTextVertAdjust eTVA = (SdrTextVertAdjust)((const SdrTextVertAdjustItem&)rAttrs.Get(SDRATTR_TEXT_VERTADJUST)).GetValue();
- SdrTextHorzAdjust eTHA = (SdrTextHorzAdjust)((const SdrTextHorzAdjustItem&)rAttrs.Get(SDRATTR_TEXT_HORZADJUST)).GetValue();
- RECT_POINT eRP = RP_LB;
-
- aTsbFullWidth.EnableTriState( sal_False );
-
- // Translate item values into local anchor position.
- switch (eTVA)
- {
- case SDRTEXTVERTADJUST_TOP:
- {
- switch (eTHA)
- {
- case SDRTEXTHORZADJUST_LEFT: eRP = RP_LT; break;
- case SDRTEXTHORZADJUST_BLOCK:
- case SDRTEXTHORZADJUST_CENTER: eRP = RP_MT; break;
- case SDRTEXTHORZADJUST_RIGHT: eRP = RP_RT; break;
- }
- break;
- }
- case SDRTEXTVERTADJUST_BLOCK:
- case SDRTEXTVERTADJUST_CENTER:
- {
- switch (eTHA)
- {
- case SDRTEXTHORZADJUST_LEFT: eRP = RP_LM; break;
- case SDRTEXTHORZADJUST_BLOCK:
- case SDRTEXTHORZADJUST_CENTER: eRP = RP_MM; break;
- case SDRTEXTHORZADJUST_RIGHT: eRP = RP_RM; break;
- }
- break;
- }
- case SDRTEXTVERTADJUST_BOTTOM:
- {
- switch (eTHA)
- {
- case SDRTEXTHORZADJUST_LEFT: eRP = RP_LB; break;
- case SDRTEXTHORZADJUST_BLOCK:
- case SDRTEXTHORZADJUST_CENTER: eRP = RP_MB; break;
- case SDRTEXTHORZADJUST_RIGHT: eRP = RP_RB; break;
- }
- break;
- }
- default:
- break;
- }
-
- // See if we have to check the "full width" check button.
- sal_Bool bLeftToRight(IsTextDirectionLeftToRight());
-
- if((bLeftToRight && (SDRTEXTHORZADJUST_BLOCK == eTHA)) || (!bLeftToRight && (SDRTEXTVERTADJUST_BLOCK == eTVA)))
- {
- // Move anchor to valid position.
- ClickFullWidthHdl_Impl(NULL);
- aTsbFullWidth.SetState(STATE_CHECK);
- }
-
- aCtlPosition.SetActualRP( eRP );
- }
- else
- {
- // VertAdjust or HorAdjust is not unequivocal
- aCtlPosition.Reset();
-
- aCtlPosition.SetState(STATE_DONTKNOW);
- aCtlPosition.DoCompletelyDisable(sal_True);
-
- aTsbFullWidth.SetState(STATE_DONTKNOW);
- aTsbFullWidth.Enable( sal_False );
- aFlPosition.Enable( sal_False );
- }
-
- // Am Rahmen anpassen
- if ( rAttrs.GetItemState( SDRATTR_TEXT_FITTOSIZE ) != SFX_ITEM_DONTCARE )
- {
- SdrFitToSizeType eFTS = (SdrFitToSizeType)
- ( ( const SdrTextFitToSizeTypeItem& )rAttrs.Get( SDRATTR_TEXT_FITTOSIZE ) ).GetValue();
- aTsbFitToSize.SetState( eFTS == SDRTEXTFIT_NONE ? STATE_NOCHECK : STATE_CHECK );
- aTsbFitToSize.EnableTriState( sal_False );
- }
- else
- aTsbFitToSize.SetState( STATE_DONTKNOW );
- aTsbFitToSize.SaveValue();
-
- // Konturfluss
- if( rAttrs.GetItemState( SDRATTR_TEXT_CONTOURFRAME ) != SFX_ITEM_DONTCARE )
- {
- sal_Bool bContour = ( ( const SdrTextContourFrameItem& )rAttrs.Get( SDRATTR_TEXT_CONTOURFRAME ) ).GetValue();
- aTsbContour.SetState( bContour ? STATE_CHECK : STATE_NOCHECK );
- aTsbContour.EnableTriState( sal_False );
- }
- else
- aTsbContour.SetState( STATE_DONTKNOW );
- aTsbContour.SaveValue();
-
- ClickHdl_Impl( NULL );
-}
-
-/*************************************************************************
-|*
-|* Fuellt uebergebenen Item-Set mit Dialogbox-Attributen
-|*
-\************************************************************************/
-
-sal_Bool SvxTextAttrPage::FillItemSet( SfxItemSet& rAttrs)
-{
- SfxItemPool* pPool = rAttrs.GetPool();
- DBG_ASSERT( pPool, "Wo ist der Pool" );
- SfxMapUnit eUnit = pPool->GetMetric( SDRATTR_TEXT_LEFTDIST );
-
- sal_Int32 nValue;
- TriState eState;
-
- if( aMtrFldLeft.GetText() != aMtrFldLeft.GetSavedValue() )
- {
- nValue = GetCoreValue( aMtrFldLeft, eUnit );
- rAttrs.Put( SdrTextLeftDistItem( nValue ) );
- }
-
- if( aMtrFldRight.GetText() != aMtrFldRight.GetSavedValue() )
- {
- nValue = GetCoreValue( aMtrFldRight, eUnit );
- rAttrs.Put( SdrTextRightDistItem( nValue ) );
- }
-
- if( aMtrFldTop.GetText() != aMtrFldTop.GetSavedValue() )
- {
- nValue = GetCoreValue( aMtrFldTop, eUnit );
- rAttrs.Put( SdrTextUpperDistItem( nValue ) );
- }
-
- if( aMtrFldBottom.GetText() != aMtrFldBottom.GetSavedValue() )
- {
- nValue = GetCoreValue( aMtrFldBottom, eUnit );
- rAttrs.Put( SdrTextLowerDistItem( nValue ) );
- }
-
- eState = aTsbAutoGrowHeight.GetState();
- if( eState != aTsbAutoGrowHeight.GetSavedValue() )
- {
- rAttrs.Put( SdrTextAutoGrowHeightItem( (sal_Bool) STATE_CHECK == eState ) );
- }
-
- eState = aTsbAutoGrowWidth.GetState();
- if( eState != aTsbAutoGrowWidth.GetSavedValue() )
- {
- rAttrs.Put( SdrTextAutoGrowWidthItem( (sal_Bool) STATE_CHECK == eState ) );
- }
-
- eState = aTsbAutoGrowSize.GetState();
- if( eState != aTsbAutoGrowSize.GetSavedValue() )
- {
- rAttrs.Put( SdrTextAutoGrowHeightItem( (sal_Bool) STATE_CHECK == eState ) );
- }
-
- eState = aTsbWordWrapText.GetState();
- if( eState != aTsbWordWrapText.GetSavedValue() )
- {
- rAttrs.Put( SdrTextWordWrapItem( (sal_Bool) STATE_CHECK == eState ) );
- }
-
- // Konturfluss
- eState = aTsbContour.GetState();
- if( eState != aTsbContour.GetSavedValue() )
- {
- rAttrs.Put( SdrTextContourFrameItem( (sal_Bool) STATE_CHECK == eState ) );
- }
-
- eState = aTsbFitToSize.GetState();
- if( eState != aTsbFitToSize.GetSavedValue() )
- {
- SdrFitToSizeType eFTS;
- switch( eState )
- {
- default: ; //prevent warning
- OSL_FAIL( "svx::SvxTextAttrPage::FillItemSet(), unhandled state!" );
- case STATE_NOCHECK: eFTS = SDRTEXTFIT_NONE; break;
- case STATE_CHECK: eFTS = SDRTEXTFIT_AUTOFIT; break;
- }
- rAttrs.Put( SdrTextFitToSizeTypeItem( eFTS ) );
- }
-
- // zentriert
- RECT_POINT eRP = aCtlPosition.GetActualRP();
- SdrTextVertAdjust eTVA, eOldTVA;
- SdrTextHorzAdjust eTHA, eOldTHA;
-
- switch( eRP )
- {
- default:
- case RP_LT: eTVA = SDRTEXTVERTADJUST_TOP;
- eTHA = SDRTEXTHORZADJUST_LEFT; break;
- case RP_LM: eTVA = SDRTEXTVERTADJUST_CENTER;
- eTHA = SDRTEXTHORZADJUST_LEFT; break;
- case RP_LB: eTVA = SDRTEXTVERTADJUST_BOTTOM;
- eTHA = SDRTEXTHORZADJUST_LEFT; break;
- case RP_MT: eTVA = SDRTEXTVERTADJUST_TOP;
- eTHA = SDRTEXTHORZADJUST_CENTER; break;
- case RP_MM: eTVA = SDRTEXTVERTADJUST_CENTER;
- eTHA = SDRTEXTHORZADJUST_CENTER; break;
- case RP_MB: eTVA = SDRTEXTVERTADJUST_BOTTOM;
- eTHA = SDRTEXTHORZADJUST_CENTER; break;
- case RP_RT: eTVA = SDRTEXTVERTADJUST_TOP;
- eTHA = SDRTEXTHORZADJUST_RIGHT; break;
- case RP_RM: eTVA = SDRTEXTVERTADJUST_CENTER;
- eTHA = SDRTEXTHORZADJUST_RIGHT; break;
- case RP_RB: eTVA = SDRTEXTVERTADJUST_BOTTOM;
- eTHA = SDRTEXTHORZADJUST_RIGHT; break;
- }
-
- // #103516# Do not change values if adjust controls were disabled.
- sal_Bool bIsDisabled(aCtlPosition.IsCompletelyDisabled());
-
- if(!bIsDisabled)
- {
- if( aTsbFullWidth.GetState() == STATE_CHECK )
- {
- if (IsTextDirectionLeftToRight())
- eTHA = SDRTEXTHORZADJUST_BLOCK;
- else
- eTVA = SDRTEXTVERTADJUST_BLOCK;
- }
-
- if ( rOutAttrs.GetItemState( SDRATTR_TEXT_VERTADJUST ) != SFX_ITEM_DONTCARE )
- {
- eOldTVA = (SdrTextVertAdjust)
- ( ( const SdrTextVertAdjustItem& )rOutAttrs.Get( SDRATTR_TEXT_VERTADJUST ) ).GetValue();
- if( eOldTVA != eTVA )
- rAttrs.Put( SdrTextVertAdjustItem( eTVA ) );
- }
- else
- rAttrs.Put( SdrTextVertAdjustItem( eTVA ) );
-
- if ( rOutAttrs.GetItemState( SDRATTR_TEXT_HORZADJUST ) != SFX_ITEM_DONTCARE )
- {
- eOldTHA = (SdrTextHorzAdjust)
- ( ( const SdrTextHorzAdjustItem& )rOutAttrs.Get( SDRATTR_TEXT_HORZADJUST ) ).GetValue();
- if( eOldTHA != eTHA )
- rAttrs.Put( SdrTextHorzAdjustItem( eTHA ) );
- }
- else
- rAttrs.Put( SdrTextHorzAdjustItem( eTHA ) );
- }
-
- return( sal_True );
-}
-
-/*************************************************************************
-|*
-|*
-|*
-\************************************************************************/
-
-void SvxTextAttrPage::Construct()
-{
- DBG_ASSERT( pView, "Keine gueltige View Uebergeben!" );
-
- bFitToSizeEnabled = bContourEnabled = sal_True;
- bWordWrapTextEnabled = bAutoGrowSizeEnabled = bAutoGrowWidthEnabled = bAutoGrowHeightEnabled = sal_False;
-
- const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
- if( rMarkList.GetMarkCount() == 1 )
- {
- const SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj();
- SdrObjKind eKind = (SdrObjKind) pObj->GetObjIdentifier();
- if( pObj->GetObjInventor() == SdrInventor )
- {
- switch( eKind )
- {
- case OBJ_TEXT :
- case OBJ_TITLETEXT :
- case OBJ_OUTLINETEXT :
- case OBJ_CAPTION :
- {
- if ( ((SdrTextObj*)pObj)->HasText() )
- {
- // Konturfluss ist NICHT bei reinen Textobjekten m�glich
- bContourEnabled = sal_False;
-
- // Breite und Hoehe anpassen ist NUR bei reinen Textobjekten m�glich
- bAutoGrowWidthEnabled = bAutoGrowHeightEnabled = sal_True;
- }
- }
- break;
- case OBJ_CUSTOMSHAPE :
- {
- bFitToSizeEnabled = bContourEnabled = sal_False;
- bAutoGrowSizeEnabled = sal_True;
- bWordWrapTextEnabled = sal_True;
- }
- break;
- default: ;//prevent warning
- }
- }
- }
- aTsbAutoGrowHeight.Enable( bAutoGrowHeightEnabled );
- aTsbAutoGrowWidth.Enable( bAutoGrowWidthEnabled );
- aTsbFitToSize.Enable( bFitToSizeEnabled );
- aTsbContour.Enable( bContourEnabled );
- aTsbAutoGrowSize.Enable( bAutoGrowSizeEnabled );
- aTsbWordWrapText.Enable( bWordWrapTextEnabled );
-}
-
-/*************************************************************************
-|*
-|* Erzeugt die Seite
-|*
-\************************************************************************/
-
-SfxTabPage* SvxTextAttrPage::Create( Window* pWindow,
- const SfxItemSet& rAttrs )
-{
- return( new SvxTextAttrPage( pWindow, rAttrs ) );
-}
-
-/*************************************************************************
-|*
-|*
-|*
-\************************************************************************/
-
-sal_uInt16* SvxTextAttrPage::GetRanges()
-{
- return( pRanges );
-}
-
-/*************************************************************************
-|*
-|*
-|*
-\************************************************************************/
-
-/** Check whether we have to uncheck the "Full width" check box.
-*/
-void SvxTextAttrPage::PointChanged( Window*, RECT_POINT eRP )
-{
- if (aTsbFullWidth.GetState() == STATE_CHECK)
- {
- // Depending on write direction and currently checked anchor we have
- // to uncheck the "full width" button.
- if (IsTextDirectionLeftToRight())
- switch( eRP )
- {
- case RP_LT:
- case RP_LM:
- case RP_LB:
- case RP_RT:
- case RP_RM:
- case RP_RB:
- aTsbFullWidth.SetState( STATE_NOCHECK );
- break;
- default: ;//prevent warning
- }
- else
- switch (eRP)
- {
- case RP_LT:
- case RP_MT:
- case RP_RT:
- case RP_LB:
- case RP_MB:
- case RP_RB:
- aTsbFullWidth.SetState( STATE_NOCHECK );
- break;
- default: ;//prevent warning
- }
- }
-}
-
-/*************************************************************************
-|*
-|* Aendert evtl. die Position des Positions-Controls
-|*
-\************************************************************************/
-
-/** When switching the "full width" check button on the text anchor may have
- to be moved to a valid and adjacent position. This position depends on
- the current anchor position and the text writing direction.
-*/
-IMPL_LINK( SvxTextAttrPage, ClickFullWidthHdl_Impl, void *, EMPTYARG )
-{
- if( aTsbFullWidth.GetState() == STATE_CHECK )
- {
- if (IsTextDirectionLeftToRight())
- {
- // Move text anchor to horizontal middle axis.
- switch( aCtlPosition.GetActualRP() )
- {
- case RP_LT:
- case RP_RT:
- aCtlPosition.SetActualRP( RP_MT );
- break;
-
- case RP_LM:
- case RP_RM:
- aCtlPosition.SetActualRP( RP_MM );
- break;
-
- case RP_LB:
- case RP_RB:
- aCtlPosition.SetActualRP( RP_MB );
- break;
- default: ;//prevent warning
- }
- }
- else
- {
- // Move text anchor to vertical middle axis.
- switch( aCtlPosition.GetActualRP() )
- {
- case RP_LT:
- case RP_LB:
- aCtlPosition.SetActualRP( RP_LM );
- break;
-
- case RP_MT:
- case RP_MB:
- aCtlPosition.SetActualRP( RP_MM );
- break;
-
- case RP_RT:
- case RP_RB:
- aCtlPosition.SetActualRP( RP_RM );
- break;
- default: ;//prevent warning
- }
- }
- }
- return( 0L );
-}
-
-/*************************************************************************
-|*
-|* Enabled/Disabled "Groesse an Text" oder "Am Rahmen Anpassen"
-|*
-\************************************************************************/
-
-IMPL_LINK( SvxTextAttrPage, ClickHdl_Impl, void *, EMPTYARG )
-{
- sal_Bool bAutoGrowWidth = aTsbAutoGrowWidth.GetState() == STATE_CHECK;
- sal_Bool bAutoGrowHeight = aTsbAutoGrowHeight.GetState() == STATE_CHECK;
- sal_Bool bFitToSize = aTsbFitToSize.GetState() == STATE_CHECK;
- sal_Bool bContour = aTsbContour.GetState() == STATE_CHECK;
-
- aTsbContour.Enable( !bFitToSize &&
- !( ( bAutoGrowWidth && bAutoGrowWidthEnabled ) || ( bAutoGrowHeight && bAutoGrowHeightEnabled ) ) &&
- bContourEnabled );
-
- aTsbAutoGrowWidth.Enable( !bFitToSize &&
- !( bContour && bContourEnabled ) &&
- bAutoGrowWidthEnabled );
-
- aTsbAutoGrowHeight.Enable( !bFitToSize &&
- !( bContour && bContourEnabled ) &&
- bAutoGrowHeightEnabled );
-
- aTsbFitToSize.Enable( !( ( bAutoGrowWidth && bAutoGrowWidthEnabled ) || ( bAutoGrowHeight && bAutoGrowHeightEnabled ) ) &&
- !( bContour && bContourEnabled ) &&
- bFitToSizeEnabled );
-
- // #101901# enable/disable metric fields and decorations dependent of contour
- aMtrFldLeft.Enable(!bContour);
- aMtrFldRight.Enable(!bContour);
- aMtrFldTop.Enable(!bContour);
- aMtrFldBottom.Enable(!bContour);
- aFlDistance.Enable(!bContour);
- aFtLeft.Enable(!bContour);
- aFtRight.Enable(!bContour);
- aFtTop.Enable(!bContour);
- aFtBottom.Enable(!bContour);
-
- if( bContour && bContourEnabled )
- {
- aMtrFldLeft.SetValue( 0 );
- aMtrFldRight.SetValue( 0 );
- aMtrFldTop.SetValue( 0 );
- aMtrFldBottom.SetValue( 0 );
- }
-
- // #103516# Do the setup based on states of hor/ver adjust
- SfxItemState eVState = rOutAttrs.GetItemState( SDRATTR_TEXT_VERTADJUST );
- SfxItemState eHState = rOutAttrs.GetItemState( SDRATTR_TEXT_HORZADJUST );
- sal_Bool bHorAndVer(SFX_ITEM_DONTCARE == eVState || SFX_ITEM_DONTCARE == eHState);
-
- // #83698# enable/disable text anchoring dependent of contour
- aCtlPosition.Enable(!bContour && !bHorAndVer);
- aTsbFullWidth.Enable(!bContour && !bHorAndVer);
- aFlPosition.Enable(!bContour && !bHorAndVer);
-
- return( 0L );
-}
-
-
-bool SvxTextAttrPage::IsTextDirectionLeftToRight (void) const
-{
- // Determine the text writing direction with left to right as default.
- bool bLeftToRightDirection = true;
- SfxItemState eState = rOutAttrs.GetItemState(SDRATTR_TEXTDIRECTION);
-
- if(SFX_ITEM_DONTCARE != eState)
- {
- const SvxWritingModeItem& rItem = static_cast<const SvxWritingModeItem&> (
- rOutAttrs.Get (SDRATTR_TEXTDIRECTION));
- if (rItem.GetValue() == com::sun::star::text::WritingMode_TB_RL)
- bLeftToRightDirection = false;
- }
- return bLeftToRightDirection;
-}
-
-void SvxTextAttrPage::PageCreated(SfxAllItemSet aSet)
-{
- SFX_ITEMSET_ARG (&aSet,pViewItem,OfaPtrItem,SID_SVXTEXTATTRPAGE_VIEW,sal_False);
-
- if (pViewItem)
- SetView( static_cast<SdrView *>(pViewItem->GetValue()));
-
- Construct();
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */