/************************************************************** * * 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 "vbatextbox.hxx" #include "vbanewfont.hxx" #include #include #include using namespace com::sun::star; using namespace ooo::vba; ScVbaTextBox::ScVbaTextBox( const uno::Reference< ov::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< uno::XInterface >& xControl, const uno::Reference< frame::XModel >& xModel, AbstractGeometryAttributes* pGeomHelper, bool bDialog ) : TextBoxImpl_BASE( xParent, xContext, xControl, xModel, pGeomHelper ), mbDialog( bDialog ) { } // Attributes uno::Any SAL_CALL ScVbaTextBox::getValue() throw (css::uno::RuntimeException) { return uno::makeAny( getText() ); } void SAL_CALL ScVbaTextBox::setValue( const uno::Any& _value ) throw (css::uno::RuntimeException) { // booleans are converted to uppercase strings rtl::OUString sVal = extractStringFromAny( _value, true ); setText( sVal ); } //getString() will cause some imfo lose. rtl::OUString SAL_CALL ScVbaTextBox::getText() throw (css::uno::RuntimeException) { uno::Any aValue; aValue = m_xProps->getPropertyValue (rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Text" ) ) ); rtl::OUString sString; aValue >>= sString; return sString; } void SAL_CALL ScVbaTextBox::setText( const rtl::OUString& _text ) throw (css::uno::RuntimeException) { if ( !mbDialog ) { uno::Reference< text::XTextRange > xTextRange( m_xProps, uno::UNO_QUERY_THROW ); xTextRange->setString( _text ); } else m_xProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Text") ), uno::makeAny( _text ) ); } sal_Int32 SAL_CALL ScVbaTextBox::getMaxLength() throw (css::uno::RuntimeException) { uno::Any aValue; aValue = m_xProps->getPropertyValue (rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "MaxTextLen" ) ) ); sal_Int32 nMaxLength = 0; aValue >>= nMaxLength; return nMaxLength; } void SAL_CALL ScVbaTextBox::setMaxLength( sal_Int32 _maxlength ) throw (css::uno::RuntimeException) { uno::Any aValue( _maxlength ); m_xProps->setPropertyValue (rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "MaxTextLen" ) ), aValue); } sal_Bool SAL_CALL ScVbaTextBox::getMultiline() throw (css::uno::RuntimeException) { uno::Any aValue; aValue = m_xProps->getPropertyValue (rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "MultiLine" ) ) ); sal_Bool bRet = false; aValue >>= bRet; return bRet; } void SAL_CALL ScVbaTextBox::setMultiline( sal_Bool _multiline ) throw (css::uno::RuntimeException) { uno::Any aValue( _multiline ); m_xProps->setPropertyValue (rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "MultiLine" ) ), aValue); } sal_Int32 SAL_CALL ScVbaTextBox::getSpecialEffect() throw (uno::RuntimeException) { return msforms::fmSpecialEffect::fmSpecialEffectSunken; } void SAL_CALL ScVbaTextBox::setSpecialEffect( sal_Int32 /*nSpecialEffect*/ ) throw (uno::RuntimeException) { } sal_Int32 SAL_CALL ScVbaTextBox::getBorderStyle() throw (uno::RuntimeException) { return msforms::fmBorderStyle::fmBorderStyleNone; } void SAL_CALL ScVbaTextBox::setBorderStyle( sal_Int32 /*nBorderStyle*/ ) throw (uno::RuntimeException) { } sal_Int32 SAL_CALL ScVbaTextBox::getTextLength() throw (uno::RuntimeException) { return getText().getLength(); } uno::Reference< msforms::XNewFont > SAL_CALL ScVbaTextBox::getFont() throw (uno::RuntimeException) { return new VbaNewFont( this, mxContext, m_xProps ); } rtl::OUString& ScVbaTextBox::getServiceImplName() { static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaTextBox") ); return sImplName; } uno::Sequence< rtl::OUString > ScVbaTextBox::getServiceNames() { static uno::Sequence< rtl::OUString > aServiceNames; if ( aServiceNames.getLength() == 0 ) { aServiceNames.realloc( 1 ); aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.msforms.TextBox" ) ); } return aServiceNames; }