| /************************************************************** |
| * |
| * 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. |
| * |
| *************************************************************/ |
| |
| |
| #include "vbaparagraphformat.hxx" |
| #include <vbahelper/vbahelper.hxx> |
| #include <tools/diagnose_ex.h> |
| #include "wordvbahelper.hxx" |
| #include <com/sun/star/style/LineSpacingMode.hpp> |
| #include <ooo/vba/word/WdLineSpacing.hpp> |
| #include <ooo/vba/word/WdParagraphAlignment.hpp> |
| #include <ooo/vba/word/WdOutlineLevel.hpp> |
| #include <com/sun/star/style/ParagraphAdjust.hpp> |
| #include <com/sun/star/style/BreakType.hpp> |
| |
| |
| using namespace ::ooo::vba; |
| using namespace ::com::sun::star; |
| |
| static const sal_Int16 CHARACTER_INDENT_FACTOR = 12; |
| static const sal_Int16 PERCENT100 = 100; |
| static const sal_Int16 PERCENT150 = 150; |
| static const sal_Int16 PERCENT200 = 200; |
| |
| SwVbaParagraphFormat::SwVbaParagraphFormat( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, const uno::Reference< text::XTextDocument >& rTextDocument, const uno::Reference< beans::XPropertySet >& rParaProps ) : SwVbaParagraphFormat_BASE( rParent, rContext ), mxTextDocument( rTextDocument ), mxParaProps( rParaProps ) |
| { |
| } |
| |
| SwVbaParagraphFormat::~SwVbaParagraphFormat() |
| { |
| } |
| |
| sal_Int32 SAL_CALL SwVbaParagraphFormat::getAlignment() throw (uno::RuntimeException) |
| { |
| style::ParagraphAdjust aParaAdjust = style::ParagraphAdjust_LEFT; |
| mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaAdjust") ) ) >>= aParaAdjust; |
| return getMSWordAlignment( aParaAdjust ); |
| } |
| |
| void SAL_CALL SwVbaParagraphFormat::setAlignment( sal_Int32 _alignment ) throw (uno::RuntimeException) |
| { |
| style::ParagraphAdjust aParaAdjust = ( style::ParagraphAdjust ) getOOoAlignment( _alignment ); |
| mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaAdjust") ), uno::makeAny( aParaAdjust ) ); |
| } |
| |
| float SAL_CALL SwVbaParagraphFormat::getFirstLineIndent() throw (uno::RuntimeException) |
| { |
| sal_Int32 indent = 0; |
| mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaFirstLineIndent") ) ) >>= indent; |
| return (float)( Millimeter::getInPoints( indent ) ); |
| } |
| |
| void SAL_CALL SwVbaParagraphFormat::setFirstLineIndent( float _firstlineindent ) throw (uno::RuntimeException) |
| { |
| sal_Int32 indent = Millimeter::getInHundredthsOfOneMillimeter( _firstlineindent ); |
| mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaFirstLineIndent") ), uno::makeAny( indent ) ); |
| } |
| |
| uno::Any SAL_CALL SwVbaParagraphFormat::getKeepTogether() throw (uno::RuntimeException) |
| { |
| sal_Bool bKeep = sal_False; |
| mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaKeepTogether") ) ) >>= bKeep; |
| return uno::makeAny ( bKeep ); |
| } |
| |
| void SAL_CALL SwVbaParagraphFormat::setKeepTogether( const uno::Any& _keeptogether ) throw (uno::RuntimeException) |
| { |
| sal_Bool bKeep = sal_False; |
| if( _keeptogether >>= bKeep ) |
| { |
| mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaKeepTogether") ), uno::makeAny( bKeep ) ); |
| } |
| else |
| { |
| DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() ); |
| } |
| } |
| |
| uno::Any SAL_CALL SwVbaParagraphFormat::getKeepWithNext() throw (uno::RuntimeException) |
| { |
| sal_Bool bKeep = sal_False; |
| mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaSplit") ) ) >>= bKeep; |
| return uno::makeAny ( bKeep ); |
| } |
| |
| void SAL_CALL SwVbaParagraphFormat::setKeepWithNext( const uno::Any& _keepwithnext ) throw (uno::RuntimeException) |
| { |
| sal_Bool bKeep = sal_False; |
| if( _keepwithnext >>= bKeep ) |
| { |
| mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaSplit") ), uno::makeAny( bKeep ) ); |
| } |
| else |
| { |
| DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() ); |
| } |
| } |
| |
| uno::Any SAL_CALL SwVbaParagraphFormat::getHyphenation() throw (uno::RuntimeException) |
| { |
| sal_Bool bHypn = sal_False; |
| mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaIsHyphenation") ) ) >>= bHypn; |
| return uno::makeAny ( bHypn ); |
| } |
| |
| void SAL_CALL SwVbaParagraphFormat::setHyphenation( const uno::Any& _hyphenation ) throw (uno::RuntimeException) |
| { |
| sal_Bool bHypn = sal_False; |
| if( _hyphenation >>= bHypn ) |
| { |
| mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaIsHyphenation") ), uno::makeAny( bHypn ) ); |
| } |
| else |
| { |
| DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() ); |
| } |
| } |
| |
| float SAL_CALL SwVbaParagraphFormat::getLineSpacing() throw (uno::RuntimeException) |
| { |
| style::LineSpacing aLineSpacing; |
| mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaLineSpacing") ) ) >>= aLineSpacing; |
| return getMSWordLineSpacing( aLineSpacing ); |
| } |
| |
| void SAL_CALL SwVbaParagraphFormat::setLineSpacing( float _linespacing ) throw (uno::RuntimeException) |
| { |
| style::LineSpacing aLineSpacing; |
| mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaLineSpacing") ) ) >>= aLineSpacing; |
| aLineSpacing = getOOoLineSpacing( _linespacing, aLineSpacing.Mode ); |
| mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaLineSpacing") ), uno::makeAny( aLineSpacing ) ); |
| } |
| |
| sal_Int32 SAL_CALL SwVbaParagraphFormat::getLineSpacingRule() throw (uno::RuntimeException) |
| { |
| style::LineSpacing aLineSpacing; |
| mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaLineSpacing") ) ) >>= aLineSpacing; |
| return getMSWordLineSpacingRule( aLineSpacing ); |
| } |
| |
| void SAL_CALL SwVbaParagraphFormat::setLineSpacingRule( sal_Int32 _linespacingrule ) throw (uno::RuntimeException) |
| { |
| style::LineSpacing aLineSpacing = getOOoLineSpacingFromRule( _linespacingrule ); |
| mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaLineSpacing") ), uno::makeAny( aLineSpacing ) ); |
| } |
| |
| uno::Any SAL_CALL SwVbaParagraphFormat::getNoLineNumber() throw (uno::RuntimeException) |
| { |
| sal_Bool noLineNum = sal_False; |
| mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaLineNumberCount") ) ) >>= noLineNum; |
| return uno::makeAny ( noLineNum ); |
| } |
| |
| void SAL_CALL SwVbaParagraphFormat::setNoLineNumber( const uno::Any& _nolinenumber ) throw (uno::RuntimeException) |
| { |
| sal_Bool noLineNum = sal_False; |
| if( _nolinenumber >>= noLineNum ) |
| { |
| mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaLineNumberCount") ), uno::makeAny( noLineNum ) ); |
| } |
| else |
| { |
| DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() ); |
| } |
| } |
| |
| sal_Int32 SAL_CALL SwVbaParagraphFormat::getOutlineLevel() throw (uno::RuntimeException) |
| { |
| sal_Int32 nLevel = word::WdOutlineLevel::wdOutlineLevelBodyText; |
| rtl::OUString aHeading; |
| const rtl::OUString HEADING = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Heading") ); |
| mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaStyleName") ) ) >>= aHeading; |
| if( aHeading.indexOf( HEADING ) == 0 ) |
| { |
| // get the sub string after "Heading" |
| nLevel = aHeading.copy( HEADING.getLength() ).toInt32(); |
| } |
| return nLevel; |
| } |
| |
| void SAL_CALL SwVbaParagraphFormat::setOutlineLevel( sal_Int32 /*_outlinelevel*/ ) throw (uno::RuntimeException) |
| { |
| throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); |
| } |
| |
| uno::Any SAL_CALL SwVbaParagraphFormat::getPageBreakBefore() throw (uno::RuntimeException) |
| { |
| style::BreakType aBreakType; |
| mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BreakType") ) ) >>= aBreakType; |
| sal_Bool bBreakBefore = ( aBreakType == style::BreakType_PAGE_BEFORE || aBreakType == style::BreakType_PAGE_BOTH ); |
| return uno::makeAny( bBreakBefore ); |
| } |
| |
| void SAL_CALL SwVbaParagraphFormat::setPageBreakBefore( const uno::Any& _breakbefore ) throw (uno::RuntimeException) |
| { |
| sal_Bool bBreakBefore = sal_False; |
| if( _breakbefore >>= bBreakBefore ) |
| { |
| style::BreakType aBreakType; |
| mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BreakType") ) ) >>= aBreakType; |
| if( bBreakBefore ) |
| { |
| if( aBreakType == style::BreakType_NONE ) |
| aBreakType = style::BreakType_PAGE_BEFORE; |
| else if ( aBreakType == style::BreakType_PAGE_AFTER ) |
| aBreakType = style::BreakType_PAGE_BOTH; |
| } |
| else |
| { |
| if( aBreakType == style::BreakType_PAGE_BOTH ) |
| aBreakType = style::BreakType_PAGE_AFTER; |
| else if ( aBreakType == style::BreakType_PAGE_BEFORE ) |
| aBreakType = style::BreakType_PAGE_AFTER; |
| } |
| mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BreakType") ), uno::makeAny( aBreakType ) ); |
| } |
| else |
| { |
| DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() ); |
| } |
| } |
| |
| float SAL_CALL SwVbaParagraphFormat::getSpaceBefore() throw (uno::RuntimeException) |
| { |
| sal_Int32 nSpace = 0; |
| mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaTopMargin") ) ) >>= nSpace; |
| return (float)( Millimeter::getInPoints( nSpace ) ); |
| } |
| |
| void SAL_CALL SwVbaParagraphFormat::setSpaceBefore( float _space ) throw (uno::RuntimeException) |
| { |
| sal_Int32 nSpace = Millimeter::getInHundredthsOfOneMillimeter( _space ); |
| mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaTopMargin") ), uno::makeAny( nSpace ) ); |
| } |
| |
| float SAL_CALL SwVbaParagraphFormat::getSpaceAfter() throw (uno::RuntimeException) |
| { |
| sal_Int32 nSpace = 0; |
| mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaBottomMargin") ) ) >>= nSpace; |
| return (float)( Millimeter::getInPoints( nSpace ) ); |
| } |
| |
| void SAL_CALL SwVbaParagraphFormat::setSpaceAfter( float _space ) throw (uno::RuntimeException) |
| { |
| sal_Int32 nSpace = Millimeter::getInHundredthsOfOneMillimeter( _space ); |
| mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaBottomMargin") ), uno::makeAny( nSpace ) ); |
| } |
| |
| float SAL_CALL SwVbaParagraphFormat::getLeftIndent() throw (uno::RuntimeException) |
| { |
| sal_Int32 nIndent = 0; |
| mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaLeftMargin") ) ) >>= nIndent; |
| return (float)( Millimeter::getInPoints( nIndent ) ); |
| } |
| |
| void SAL_CALL SwVbaParagraphFormat::setLeftIndent( float _leftindent ) throw (uno::RuntimeException) |
| { |
| sal_Int32 nIndent = Millimeter::getInHundredthsOfOneMillimeter( _leftindent ); |
| mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaLeftMargin") ), uno::makeAny( nIndent ) ); |
| } |
| |
| float SAL_CALL SwVbaParagraphFormat::getRightIndent() throw (uno::RuntimeException) |
| { |
| sal_Int32 nIndent = 0; |
| mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaRightMargin") ) ) >>= nIndent; |
| return (float)( Millimeter::getInPoints( nIndent ) ); |
| } |
| |
| void SAL_CALL SwVbaParagraphFormat::setRightIndent( float _rightindent ) throw (uno::RuntimeException) |
| { |
| sal_Int32 nIndent = Millimeter::getInHundredthsOfOneMillimeter( _rightindent ); |
| mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaRightMargin") ), uno::makeAny( nIndent ) ); |
| } |
| |
| uno::Any SAL_CALL SwVbaParagraphFormat::getTabStops() throw (uno::RuntimeException) |
| { |
| throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); |
| } |
| |
| void SAL_CALL SwVbaParagraphFormat::setTabStops( const uno::Any& /*_tabstops*/ ) throw (uno::RuntimeException) |
| { |
| throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Not implemented") ), uno::Reference< uno::XInterface >() ); |
| } |
| |
| uno::Any SAL_CALL SwVbaParagraphFormat::getWidowControl() throw (uno::RuntimeException) |
| { |
| sal_Bool bWidow = sal_False; |
| sal_Int8 nWidow = 0; |
| mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaWidows") ) ) >>= nWidow; |
| sal_Int8 nOrphan = 0; |
| mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaOrphans") ) ) >>= nOrphan; |
| // if the amount of single lines on one page > 1 and the same of start and end of the paragraph, |
| // true is retured. |
| bWidow = ( nWidow > 1 && nOrphan == nWidow ); |
| return uno::makeAny( bWidow ); |
| } |
| |
| void SAL_CALL SwVbaParagraphFormat::setWidowControl( const uno::Any& _widowcontrol ) throw (uno::RuntimeException) |
| { |
| // if we get true, the part of the paragraph on one page has to be |
| // at least two lines |
| sal_Bool bWidow = sal_False; |
| if( _widowcontrol >>= bWidow ) |
| { |
| sal_Int8 nControl = bWidow? 2:1; |
| mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaWidows") ), uno::makeAny( nControl ) ); |
| mxParaProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ParaOrphans") ), uno::makeAny( nControl ) ); |
| } |
| else |
| { |
| DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() ); |
| } |
| } |
| |
| style::LineSpacing SwVbaParagraphFormat::getOOoLineSpacing( float _lineSpace, sal_Int16 mode ) |
| { |
| style::LineSpacing aLineSpacing; |
| if( mode != style::LineSpacingMode::MINIMUM && mode != style::LineSpacingMode::FIX ) |
| { |
| // special behaviour of word: if the space is set to these values, the rule and |
| // the height are changed accordingly |
| if( _lineSpace == CHARACTER_INDENT_FACTOR ) |
| { |
| aLineSpacing.Mode = style::LineSpacingMode::PROP; |
| aLineSpacing.Height = PERCENT100; |
| } |
| else if( _lineSpace == ( sal_Int16 )( CHARACTER_INDENT_FACTOR * 1.5 ) ) |
| { |
| aLineSpacing.Mode = style::LineSpacingMode::PROP; |
| aLineSpacing.Height = PERCENT150; |
| } |
| else if( _lineSpace == ( sal_Int16 )( ( CHARACTER_INDENT_FACTOR ) * 2 ) ) |
| { |
| aLineSpacing.Mode = style::LineSpacingMode::PROP; |
| aLineSpacing.Height = PERCENT200; |
| } |
| else |
| { |
| aLineSpacing.Mode = style::LineSpacingMode::FIX; |
| aLineSpacing.Height = ( sal_Int16 )( Millimeter::getInHundredthsOfOneMillimeter( _lineSpace ) ); |
| } |
| } |
| else |
| { |
| aLineSpacing.Mode = mode; |
| aLineSpacing.Height = ( sal_Int16 )( Millimeter::getInHundredthsOfOneMillimeter( _lineSpace ) ); |
| } |
| return aLineSpacing; |
| } |
| |
| style::LineSpacing SwVbaParagraphFormat::getOOoLineSpacingFromRule( sal_Int32 _linespacingrule ) |
| { |
| style::LineSpacing aLineSpacing; |
| switch( _linespacingrule ) |
| { |
| case word::WdLineSpacing::wdLineSpace1pt5: |
| { |
| aLineSpacing.Mode = style::LineSpacingMode::PROP; |
| aLineSpacing.Height = PERCENT150; |
| break; |
| } |
| case word::WdLineSpacing::wdLineSpaceAtLeast: |
| { |
| aLineSpacing.Mode = style::LineSpacingMode::MINIMUM; |
| aLineSpacing.Height = getCharHeight(); |
| break; |
| } |
| case word::WdLineSpacing::wdLineSpaceDouble: |
| { |
| aLineSpacing.Mode = style::LineSpacingMode::PROP; |
| aLineSpacing.Height = getCharHeight(); |
| break; |
| } |
| case word::WdLineSpacing::wdLineSpaceExactly: |
| case word::WdLineSpacing::wdLineSpaceMultiple: |
| { |
| aLineSpacing.Mode = style::LineSpacingMode::FIX; |
| aLineSpacing.Height = getCharHeight(); |
| break; |
| } |
| case word::WdLineSpacing::wdLineSpaceSingle: |
| { |
| aLineSpacing.Mode = style::LineSpacingMode::PROP; |
| aLineSpacing.Height = PERCENT100; |
| break; |
| } |
| default: |
| { |
| DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() ); |
| break; |
| } |
| } |
| return aLineSpacing; |
| } |
| |
| float SwVbaParagraphFormat::getMSWordLineSpacing( style::LineSpacing& rLineSpacing ) |
| { |
| float wdLineSpacing = 0; |
| if( rLineSpacing.Mode != style::LineSpacingMode::PROP ) |
| { |
| wdLineSpacing = (float)( Millimeter::getInPoints( rLineSpacing.Height ) ); |
| } |
| else |
| { |
| wdLineSpacing = (float)( CHARACTER_INDENT_FACTOR * rLineSpacing.Height ) / PERCENT100; |
| } |
| return wdLineSpacing; |
| } |
| |
| sal_Int32 SwVbaParagraphFormat::getMSWordLineSpacingRule( style::LineSpacing& rLineSpacing ) |
| { |
| sal_Int32 wdLineSpacing = word::WdLineSpacing::wdLineSpaceSingle; |
| switch( rLineSpacing.Mode ) |
| { |
| case style::LineSpacingMode::PROP: |
| { |
| switch( rLineSpacing.Height ) |
| { |
| case PERCENT100: |
| { |
| wdLineSpacing = word::WdLineSpacing::wdLineSpaceSingle; |
| break; |
| } |
| case PERCENT150: |
| { |
| wdLineSpacing = word::WdLineSpacing::wdLineSpace1pt5; |
| break; |
| } |
| case PERCENT200: |
| { |
| wdLineSpacing = word::WdLineSpacing::wdLineSpaceDouble; |
| break; |
| } |
| default: |
| { |
| wdLineSpacing = word::WdLineSpacing::wdLineSpaceMultiple; |
| } |
| } |
| break; |
| } |
| case style::LineSpacingMode::MINIMUM: |
| { |
| wdLineSpacing = word::WdLineSpacing::wdLineSpaceAtLeast; |
| break; |
| } |
| case style::LineSpacingMode::FIX: |
| case style::LineSpacingMode::LEADING: |
| { |
| wdLineSpacing = word::WdLineSpacing::wdLineSpaceExactly; |
| break; |
| } |
| default: |
| { |
| DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() ); |
| } |
| } |
| return wdLineSpacing; |
| } |
| |
| sal_Int16 SwVbaParagraphFormat::getCharHeight() throw (uno::RuntimeException) |
| { |
| float fCharHeight = 0.0; |
| mxParaProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("CharHeight") ) ) >>= fCharHeight; |
| return (sal_Int16)( Millimeter::getInHundredthsOfOneMillimeter( fCharHeight ) ); |
| } |
| |
| sal_Int32 SwVbaParagraphFormat::getOOoAlignment( sal_Int32 _alignment ) |
| { |
| sal_Int32 nParaAjust = style::ParagraphAdjust_LEFT; |
| switch( _alignment ) |
| { |
| case word::WdParagraphAlignment::wdAlignParagraphCenter: |
| { |
| nParaAjust = style::ParagraphAdjust_CENTER; |
| break; |
| } |
| case word::WdParagraphAlignment::wdAlignParagraphJustify: |
| { |
| nParaAjust = style::ParagraphAdjust_BLOCK; |
| break; |
| } |
| case word::WdParagraphAlignment::wdAlignParagraphLeft: |
| { |
| nParaAjust = style::ParagraphAdjust_LEFT; |
| break; |
| } |
| case word::WdParagraphAlignment::wdAlignParagraphRight: |
| { |
| nParaAjust = style::ParagraphAdjust_RIGHT; |
| break; |
| } |
| default: |
| { |
| DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() ); |
| } |
| } |
| return nParaAjust; |
| } |
| |
| sal_Int32 SwVbaParagraphFormat::getMSWordAlignment( sal_Int32 _alignment ) |
| { |
| sal_Int32 wdAlignment = word::WdParagraphAlignment::wdAlignParagraphLeft; |
| switch( _alignment ) |
| { |
| case style::ParagraphAdjust_CENTER: |
| { |
| wdAlignment = word::WdParagraphAlignment::wdAlignParagraphCenter; |
| break; |
| } |
| case style::ParagraphAdjust_LEFT: |
| { |
| wdAlignment = word::WdParagraphAlignment::wdAlignParagraphLeft; |
| break; |
| } |
| case style::ParagraphAdjust_BLOCK: |
| { |
| wdAlignment = word::WdParagraphAlignment::wdAlignParagraphJustify; |
| break; |
| } |
| case style::ParagraphAdjust_RIGHT: |
| { |
| wdAlignment = word::WdParagraphAlignment::wdAlignParagraphRight; |
| break; |
| } |
| default: |
| { |
| DebugHelper::exception( SbERR_BAD_PARAMETER, rtl::OUString() ); |
| } |
| } |
| return wdAlignment; |
| } |
| |
| rtl::OUString& |
| SwVbaParagraphFormat::getServiceImplName() |
| { |
| static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("SwVbaParagraphFormat") ); |
| return sImplName; |
| } |
| |
| uno::Sequence< rtl::OUString > |
| SwVbaParagraphFormat::getServiceNames() |
| { |
| static uno::Sequence< rtl::OUString > aServiceNames; |
| if ( aServiceNames.getLength() == 0 ) |
| { |
| aServiceNames.realloc( 1 ); |
| aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.word.ParagraphFormat" ) ); |
| } |
| return aServiceNames; |
| } |
| |