1*b3f79822SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*b3f79822SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*b3f79822SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*b3f79822SAndrew Rist * distributed with this work for additional information 6*b3f79822SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*b3f79822SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*b3f79822SAndrew Rist * "License"); you may not use this file except in compliance 9*b3f79822SAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11*b3f79822SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13*b3f79822SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*b3f79822SAndrew Rist * software distributed under the License is distributed on an 15*b3f79822SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b3f79822SAndrew Rist * KIND, either express or implied. See the License for the 17*b3f79822SAndrew Rist * specific language governing permissions and limitations 18*b3f79822SAndrew Rist * under the License. 19cdf0e10cSrcweir * 20*b3f79822SAndrew Rist *************************************************************/ 21*b3f79822SAndrew Rist 22*b3f79822SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #include "vbatextboxshape.hxx" 25cdf0e10cSrcweir #include "vbacharacters.hxx" 26cdf0e10cSrcweir #include <com/sun/star/text/XSimpleText.hpp> 27cdf0e10cSrcweir #include <vector> 28cdf0e10cSrcweir 29cdf0e10cSrcweir using namespace com::sun::star; 30cdf0e10cSrcweir using namespace ooo::vba; 31cdf0e10cSrcweir 32cdf0e10cSrcweir ScVbaTextBoxShape::ScVbaTextBoxShape( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< drawing::XShape >& xShape, const uno::Reference< drawing::XShapes >& xShapes, const uno::Reference< frame::XModel >& xModel ) : TextBoxShapeImpl_BASE( uno::Reference< XHelperInterface >(), xContext, xShape, xShapes, xModel, ScVbaShape::getType( xShape ) ) 33cdf0e10cSrcweir { 34cdf0e10cSrcweir m_xTextRange.set( xShape , uno::UNO_QUERY_THROW ); 35cdf0e10cSrcweir m_xModel.set( xModel ); 36cdf0e10cSrcweir } 37cdf0e10cSrcweir 38cdf0e10cSrcweir rtl::OUString SAL_CALL 39cdf0e10cSrcweir ScVbaTextBoxShape::getText() throw (css::uno::RuntimeException) 40cdf0e10cSrcweir { 41cdf0e10cSrcweir return m_xTextRange->getString(); 42cdf0e10cSrcweir } 43cdf0e10cSrcweir 44cdf0e10cSrcweir void SAL_CALL 45cdf0e10cSrcweir ScVbaTextBoxShape::setText( const rtl::OUString& _text ) throw (css::uno::RuntimeException) 46cdf0e10cSrcweir { 47cdf0e10cSrcweir m_xTextRange->setString( _text ); 48cdf0e10cSrcweir } 49cdf0e10cSrcweir 50cdf0e10cSrcweir uno::Reference< excel::XCharacters > SAL_CALL 51cdf0e10cSrcweir ScVbaTextBoxShape::characters( const uno::Any& Start, const uno::Any& Length ) throw (uno::RuntimeException) 52cdf0e10cSrcweir { 53cdf0e10cSrcweir ScDocShell* pDocShell = excel::getDocShell( m_xModel ); 54cdf0e10cSrcweir ScDocument* pDoc = pDocShell ? pDocShell->GetDocument() : NULL; 55cdf0e10cSrcweir 56cdf0e10cSrcweir if ( !pDoc ) 57cdf0e10cSrcweir throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Failed to access document from shell" ) ), uno::Reference< uno::XInterface >() ); 58cdf0e10cSrcweir uno::Reference< text::XSimpleText > xSimple( m_xTextRange, uno::UNO_QUERY_THROW ); 59cdf0e10cSrcweir 60cdf0e10cSrcweir ScVbaPalette aPalette( pDoc->GetDocumentShell() ); 61cdf0e10cSrcweir return new ScVbaCharacters( this, mxContext, aPalette, xSimple, Start, Length, sal_True ); 62cdf0e10cSrcweir } 63