LibreOffice Module sw (master)  1
vbarange.cxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 #include "vbarange.hxx"
20 #include <vbahelper/vbahelper.hxx>
21 #include <basic/sberrors.hxx>
22 #include "vbarangehelper.hxx"
23 #include <ooo/vba/word/WdBreakType.hpp>
24 #include <com/sun/star/style/BreakType.hpp>
25 #include <com/sun/star/text/ControlCharacter.hpp>
26 #include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
27 #include <com/sun/star/text/XTextRangeCompare.hpp>
28 #include <com/sun/star/text/XTextViewCursor.hpp>
29 #include "vbaparagraphformat.hxx"
30 #include "vbastyle.hxx"
31 #include "vbafont.hxx"
32 #include "vbapalette.hxx"
33 #include "vbapagesetup.hxx"
34 #include "vbalistformat.hxx"
35 #include "vbarevisions.hxx"
36 #include "vbabookmarks.hxx"
37 #include "vbasections.hxx"
38 #include "vbafield.hxx"
39 #include "wordvbahelper.hxx"
40 
41 using namespace ::ooo::vba;
42 using namespace ::com::sun::star;
43 
44 SwVbaRange::SwVbaRange( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, const uno::Reference< text::XTextDocument >& rTextDocument, const uno::Reference< text::XTextRange >& rStart ) : SwVbaRange_BASE( rParent, rContext ), mxTextDocument( rTextDocument )
45 {
46  uno::Reference< text::XTextRange > xEnd;
47  initialize( rStart, xEnd );
48 }
49 
50 SwVbaRange::SwVbaRange( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, const uno::Reference< text::XTextDocument >& rTextDocument, const uno::Reference< text::XTextRange >& rStart, const uno::Reference< text::XTextRange >& rEnd ) : SwVbaRange_BASE( rParent, rContext ), mxTextDocument( rTextDocument )
51 {
52  initialize( rStart, rEnd );
53 }
54 
55 SwVbaRange::SwVbaRange( const uno::Reference< ooo::vba::XHelperInterface >& rParent, const uno::Reference< uno::XComponentContext >& rContext, const uno::Reference< text::XTextDocument >& rTextDocument, const uno::Reference< text::XTextRange >& rStart, const uno::Reference< text::XTextRange >& rEnd, const uno::Reference< text::XText >& rText ) : SwVbaRange_BASE( rParent, rContext ),mxTextDocument( rTextDocument ), mxText( rText )
56 {
57  initialize( rStart, rEnd );
58 }
59 
61 {
62 }
63 
64 void SwVbaRange::initialize( const uno::Reference< text::XTextRange >& rStart, const uno::Reference< text::XTextRange >& rEnd )
65 {
66  if( !mxText.is() )
67  {
68  mxText = mxTextDocument->getText();
69  }
70 
72  if( !mxTextCursor.is() )
73  throw uno::RuntimeException("Fails to create text cursor" );
74  mxTextCursor->collapseToStart();
75 
76  if( rEnd.is() )
77  mxTextCursor->gotoRange( rEnd, true );
78  else
79  mxTextCursor->gotoEnd( true );
80 }
81 
82 uno::Reference< text::XTextRange > SAL_CALL
84 {
85  uno::Reference< text::XTextRange > xTextRange( mxTextCursor, uno::UNO_QUERY_THROW );
86  return xTextRange;
87 }
88 
94 OUString SAL_CALL
96 {
97  OUString aText = mxTextCursor->getString();
98  sal_Int32 nLen = aText.getLength();
99 
100  // FIXME: should add a line separator if the range includes the last paragraph
101  if( nLen == 0 )
102  {
103  if( mxTextCursor->isCollapsed() )
104  {
105  mxTextCursor->goRight( 1, true );
106  aText = mxTextCursor->getString();
107  mxTextCursor->collapseToStart();
108  }
109  else
110  {
111  uno::Reference< text::XTextRange > xStart = mxTextCursor->getStart();
112  uno::Reference< text::XTextRange > xEnd = mxTextCursor->getEnd();
113  mxTextCursor->collapseToEnd();
114  mxTextCursor->goRight( 1, true );
115  mxTextCursor->gotoRange( xStart, false );
116  mxTextCursor->gotoRange( xEnd, true );
117  }
118  }
119 
120  return aText;
121 }
122 
123 void SAL_CALL
124 SwVbaRange::setText( const OUString& rText )
125 {
126  // Emulate the MSWord behavior, Don't delete the bookmark
127  // which contains no text string in current inserting position,
128  OUString sName;
129  uno::Reference< text::XTextRange > xRange( mxTextCursor, uno::UNO_QUERY_THROW );
130  try
131  {
132  uno::Reference< text::XTextContent > xBookmark = SwVbaRangeHelper::findBookmarkByPosition( mxTextDocument, xRange->getStart() );
133  if( xBookmark.is() )
134  {
135  uno::Reference< container::XNamed > xNamed( xBookmark, uno::UNO_QUERY_THROW );
136  sName = xNamed->getName();
137  }
138  }
139  catch (const uno::Exception&)
140  {
141  // do nothing
142  }
143 
144  if( rText.indexOf( '\n' ) != -1 )
145  {
146  mxTextCursor->setString( OUString() );
147  // process CR in strings
148  SwVbaRangeHelper::insertString( xRange, mxText, rText, true );
149  }
150  else
151  {
152  mxTextCursor->setString( rText );
153  }
154 
155  // insert the bookmark if the bookmark is deleted during setting text string
156  if( !sName.isEmpty() )
157  {
158  uno::Reference< text::XBookmarksSupplier > xBookmarksSupplier( mxTextDocument, uno::UNO_QUERY_THROW );
159  uno::Reference< container::XNameAccess > xNameAccess( xBookmarksSupplier->getBookmarks(), uno::UNO_SET_THROW );
160  if( !xNameAccess->hasByName( sName ) )
161  {
162  uno::Reference< frame::XModel > xModel( mxTextDocument, uno::UNO_QUERY_THROW );
163  SwVbaBookmarks::addBookmarkByName( xModel, sName, xRange->getStart() );
164  }
165  }
166 }
167 
168 // FIXME: test is not pass
169 void SAL_CALL SwVbaRange::InsertBreak(const uno::Any& _breakType)
170 {
171  // default type is wdPageBreak;
172  sal_Int32 nBreakType = word::WdBreakType::wdPageBreak;
173  if( _breakType.hasValue() )
174  _breakType >>= nBreakType;
175 
176  style::BreakType eBreakType = style::BreakType_NONE;
177  switch( nBreakType )
178  {
179  case word::WdBreakType::wdPageBreak:
180  eBreakType = style::BreakType_PAGE_BEFORE;
181  break;
182  case word::WdBreakType::wdColumnBreak:
183  eBreakType = style::BreakType_COLUMN_AFTER;
184  break;
185  case word::WdBreakType::wdLineBreak:
186  case word::WdBreakType::wdLineBreakClearLeft:
187  case word::WdBreakType::wdLineBreakClearRight:
188  case word::WdBreakType::wdSectionBreakContinuous:
189  case word::WdBreakType::wdSectionBreakEvenPage:
190  case word::WdBreakType::wdSectionBreakNextPage:
191  case word::WdBreakType::wdSectionBreakOddPage:
192  case word::WdBreakType::wdTextWrappingBreak:
193  DebugHelper::basicexception( ERRCODE_BASIC_NOT_IMPLEMENTED, OUString() );
194  break;
195  default:
196  DebugHelper::basicexception( ERRCODE_BASIC_BAD_PARAMETER, OUString() );
197  }
198 
199  if( eBreakType != style::BreakType_NONE )
200  {
201  if( !mxTextCursor->isCollapsed() )
202  {
203  mxTextCursor->setString( OUString() );
204  mxTextCursor->collapseToStart();
205  }
206 
207  uno::Reference< beans::XPropertySet > xProp( mxTextCursor, uno::UNO_QUERY_THROW );
208  xProp->setPropertyValue("BreakType", uno::makeAny( eBreakType ) );
209  }
210 }
211 
212 void SAL_CALL
214 {
215  uno::Reference< frame::XModel > xModel( mxTextDocument, uno::UNO_QUERY_THROW );
216  uno::Reference< text::XTextViewCursor > xTextViewCursor = word::getXTextViewCursor( xModel );
217  xTextViewCursor->gotoRange( mxTextCursor->getStart(), false );
218  xTextViewCursor->gotoRange( mxTextCursor->getEnd(), true );
219 }
220 
221 void SAL_CALL
223 {
224  mxTextCursor->setString( "" );
226 }
227 
228 void SAL_CALL
230 {
231  uno::Reference< text::XTextRange > xTextRange = mxTextCursor->getStart();
232  mxText->insertControlCharacter( xTextRange, text::ControlCharacter::PARAGRAPH_BREAK, true );
233  mxTextCursor->gotoRange( xTextRange, true );
234 }
235 
236 void SAL_CALL
238 {
239  uno::Reference< text::XTextRange > xTextRange = mxTextCursor->getEnd();
240  mxText->insertControlCharacter( xTextRange, text::ControlCharacter::PARAGRAPH_BREAK, true );
241 }
242 
243 uno::Reference< word::XParagraphFormat > SAL_CALL
245 {
246  uno::Reference< beans::XPropertySet > xParaProps( mxTextCursor, uno::UNO_QUERY_THROW );
247  return uno::Reference< word::XParagraphFormat >( new SwVbaParagraphFormat( this, mxContext, xParaProps ) );
248 }
249 
250 void SAL_CALL
251 SwVbaRange::setParagraphFormat( const uno::Reference< word::XParagraphFormat >& /*rParagraphFormat*/ )
252 {
253  throw uno::RuntimeException("Not implemented" );
254 }
255 
256 void SwVbaRange::GetStyleInfo(OUString& aStyleName, OUString& aStyleType )
257 {
258  uno::Reference< beans::XPropertySet > xProp( mxTextCursor, uno::UNO_QUERY_THROW );
259  if( ( xProp->getPropertyValue("CharStyleName") >>= aStyleName ) && !aStyleName.isEmpty() )
260  {
261  aStyleType = "CharacterStyles";
262  }
263  else if( ( xProp->getPropertyValue("ParaStyleName") >>= aStyleName ) && !aStyleName.isEmpty() )
264  {
265  aStyleType = "ParagraphStyles";
266  }
267  if( aStyleType.isEmpty() )
268  {
269  DebugHelper::runtimeexception( ERRCODE_BASIC_INTERNAL_ERROR );
270  }
271 }
272 
273 uno::Any SAL_CALL
275 {
276  OUString aStyleName;
277  OUString aStyleType;
278  GetStyleInfo( aStyleName, aStyleType );
279  uno::Reference< style::XStyleFamiliesSupplier > xStyleSupplier( mxTextDocument, uno::UNO_QUERY_THROW);
280  uno::Reference< container::XNameAccess > xStylesAccess( xStyleSupplier->getStyleFamilies()->getByName( aStyleType ), uno::UNO_QUERY_THROW );
281  uno::Reference< beans::XPropertySet > xStyleProps( xStylesAccess->getByName( aStyleName ), uno::UNO_QUERY_THROW );
282  uno::Reference< frame::XModel > xModel( mxTextDocument, uno::UNO_QUERY_THROW );
283  return uno::makeAny( uno::Reference< word::XStyle >( new SwVbaStyle( this, mxContext, xModel, xStyleProps ) ) );
284 }
285 
286 void SAL_CALL
288 {
289  uno::Reference< beans::XPropertySet > xParaProps( mxTextCursor, uno::UNO_QUERY_THROW );
290  SwVbaStyle::setStyle( xParaProps, rStyle );
291 }
292 
293 uno::Reference< word::XFont > SAL_CALL
295 {
296  VbaPalette aColors;
297  return new SwVbaFont( mxParent, mxContext, aColors.getPalette(), uno::Reference< beans::XPropertySet >( getXTextRange(), uno::UNO_QUERY_THROW ) );
298 }
299 
300 uno::Reference< word::XListFormat > SAL_CALL
302 {
303  return uno::Reference< word::XListFormat >( new SwVbaListFormat( this, mxContext, getXTextRange() ) );
304 }
305 
306 ::sal_Int32 SAL_CALL SwVbaRange::getLanguageID()
307 {
308  uno::Reference< beans::XPropertySet > xParaProps( mxTextCursor, uno::UNO_QUERY_THROW );
309  return static_cast<sal_uInt16>(SwVbaStyle::getLanguageID( xParaProps ));
310 }
311 
312 void SAL_CALL SwVbaRange::setLanguageID( ::sal_Int32 _languageid )
313 {
314  uno::Reference< beans::XPropertySet > xParaProps( mxTextCursor, uno::UNO_QUERY_THROW );
315  SwVbaStyle::setLanguageID( xParaProps, LanguageType(_languageid) );
316 }
317 
318 uno::Any SAL_CALL
320 {
321  uno::Reference< beans::XPropertySet > xParaProps( mxTextCursor, uno::UNO_QUERY_THROW );
322  uno::Reference< frame::XModel > xModel( mxTextDocument, uno::UNO_QUERY_THROW );
323  OUString aPageStyleName;
324  xParaProps->getPropertyValue("PageStyleName") >>= aPageStyleName;
325  uno::Reference< style::XStyleFamiliesSupplier > xSytleFamSupp( xModel, uno::UNO_QUERY_THROW );
326  uno::Reference< container::XNameAccess > xSytleFamNames( xSytleFamSupp->getStyleFamilies(), uno::UNO_SET_THROW );
327  uno::Reference< container::XNameAccess > xPageStyles( xSytleFamNames->getByName("PageStyles"), uno::UNO_QUERY_THROW );
328  uno::Reference< beans::XPropertySet > xPageProps( xPageStyles->getByName( aPageStyleName ), uno::UNO_QUERY_THROW );
329  return uno::makeAny( uno::Reference< word::XPageSetup >( new SwVbaPageSetup( this, mxContext, xModel, xPageProps ) ) );
330 }
331 
332 ::sal_Int32 SAL_CALL SwVbaRange::getStart()
333 {
334  uno::Reference< text::XText > xText = mxTextDocument->getText();
335  return SwVbaRangeHelper::getPosition( xText, mxTextCursor->getStart() );
336 }
337 
338 void SAL_CALL SwVbaRange::setStart( ::sal_Int32 _start )
339 {
340  uno::Reference< text::XText > xText = mxTextDocument->getText();
341  uno::Reference< text::XTextRange > xStart = SwVbaRangeHelper::getRangeByPosition( xText, _start );
342  uno::Reference< text::XTextRange > xEnd = mxTextCursor->getEnd();
343 
344  mxTextCursor->gotoRange( xStart, false );
345  mxTextCursor->gotoRange( xEnd, true );
346 }
347 
348 ::sal_Int32 SAL_CALL SwVbaRange::getEnd()
349 {
350  uno::Reference< text::XText > xText = mxTextDocument->getText();
351  return SwVbaRangeHelper::getPosition( xText, mxTextCursor->getEnd() );
352 }
353 
354 void SAL_CALL SwVbaRange::setEnd( ::sal_Int32 _end )
355 {
356  uno::Reference< text::XText > xText = mxTextDocument->getText();
357  uno::Reference< text::XTextRange > xEnd = SwVbaRangeHelper::getRangeByPosition( xText, _end );
358 
359  mxTextCursor->collapseToStart();
360  mxTextCursor->gotoRange( xEnd, true );
361 }
362 
363 sal_Bool SAL_CALL SwVbaRange::InRange( const uno::Reference< ::ooo::vba::word::XRange >& Range )
364 {
365  SwVbaRange* pRange = dynamic_cast< SwVbaRange* >( Range.get() );
366  if( !pRange )
367  throw uno::RuntimeException();
368  uno::Reference< text::XTextRange > xTextRange = pRange->getXTextRange();
369  uno::Reference< text::XTextRangeCompare > xTRC( mxTextCursor->getText(), uno::UNO_QUERY_THROW );
370  if( xTRC->compareRegionStarts( xTextRange, getXTextRange() ) >= 0 && xTRC->compareRegionEnds( xTextRange, getXTextRange() ) <= 0 )
371  return true;
372  return false;
373 }
374 
375 uno::Any SAL_CALL
377 {
378  uno::Reference< text::XTextRange > xTextRange = getXTextRange();
379  uno::Reference< frame::XModel > xModel( mxTextDocument, uno::UNO_QUERY_THROW );
380  uno::Reference< XCollection > xCol( new SwVbaRevisions( mxParent, mxContext, xModel, xTextRange ) );
381  if ( index.hasValue() )
382  return xCol->Item( index, uno::Any() );
383  return uno::makeAny( xCol );
384 }
385 
386 uno::Any SAL_CALL
388 {
389  uno::Reference< text::XTextRange > xTextRange = getXTextRange();
390  uno::Reference< frame::XModel > xModel( mxTextDocument, uno::UNO_QUERY_THROW );
391  uno::Reference< XCollection > xCol( new SwVbaSections( mxParent, mxContext, xModel, xTextRange ) );
392  if ( index.hasValue() )
393  return xCol->Item( index, uno::Any() );
394  return uno::makeAny( xCol );
395 }
396 
397 uno::Any SAL_CALL
399 {
400  //FIXME: should be get the field in current range
401  uno::Reference< frame::XModel > xModel( mxTextDocument, uno::UNO_QUERY_THROW );
402  uno::Reference< XCollection > xCol( new SwVbaFields( mxParent, mxContext, xModel ) );
403  if ( index.hasValue() )
404  return xCol->Item( index, uno::Any() );
405  return uno::makeAny( xCol );
406 }
407 
408 OUString
410 {
411  return "SwVbaRange";
412 }
413 
414 uno::Sequence< OUString >
416 {
417  static uno::Sequence< OUString > const aServiceNames
418  {
419  "ooo.vba.word.Range"
420  };
421  return aServiceNames;
422 }
423 
424 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
static css::uno::Reference< css::text::XTextContent > findBookmarkByPosition(const css::uno::Reference< css::text::XTextDocument > &xTextDoc, const css::uno::Reference< css::text::XTextRange > &xTextRange)
static css::uno::Reference< css::text::XTextCursor > initCursor(const css::uno::Reference< css::text::XTextRange > &rTextRange, const css::uno::Reference< css::text::XText > &rText)
virtual sal_Bool SAL_CALL InRange(const css::uno::Reference< ::ooo::vba::word::XRange > &Range) override
Definition: vbarange.cxx:363
virtual void SAL_CALL setText(const OUString &rText) override
Definition: vbarange.cxx:124
bool hasValue()
virtual css::uno::Any SAL_CALL Revisions(const css::uno::Any &aIndex) override
Definition: vbarange.cxx:376
virtual css::uno::Any SAL_CALL getStyle() override
Definition: vbarange.cxx:274
virtual void SAL_CALL setLanguageID(::sal_Int32 _languageid) override
Definition: vbarange.cxx:312
virtual ::sal_Int32 SAL_CALL getStart() override
Definition: vbarange.cxx:332
Sequence< OUString > aServiceNames
css::uno::Reference< css::text::XTextDocument > mxTextDocument
Definition: vbarange.hxx:35
static sal_Int32 getPosition(const css::uno::Reference< css::text::XText > &rText, const css::uno::Reference< css::text::XTextRange > &rTextRange)
static css::uno::Reference< css::text::XTextRange > getRangeByPosition(const css::uno::Reference< css::text::XText > &rText, sal_Int32 _position)
get a range in a xText by creating a cursor that iterates over the text.
#define ERRCODE_BASIC_NOT_IMPLEMENTED
virtual css::uno::Reference< ooo::vba::word::XParagraphFormat > SAL_CALL getParagraphFormat() override
Definition: vbarange.cxx:244
virtual css::uno::Reference< css::text::XTextRange > SAL_CALL getXTextRange() override
Definition: vbarange.cxx:83
uno::Reference< text::XTextViewCursor > getXTextViewCursor(const uno::Reference< frame::XModel > &xModel)
virtual ~SwVbaRange() override
Definition: vbarange.cxx:60
virtual css::uno::Reference< ooo::vba::word::XListFormat > SAL_CALL getListFormat() override
Definition: vbarange.cxx:301
virtual ::sal_Int32 SAL_CALL getEnd() override
Definition: vbarange.cxx:348
const char * sName
virtual css::uno::Reference< ooo::vba::word::XFont > SAL_CALL getFont() override
Definition: vbarange.cxx:294
virtual void SAL_CALL Select() override
Definition: vbarange.cxx:213
void GetStyleInfo(OUString &aStyleName, OUString &aStyleType)
Definition: vbarange.cxx:256
virtual css::uno::Any SAL_CALL PageSetup() override
Definition: vbarange.cxx:319
virtual void SAL_CALL InsertParagraphAfter() override
Definition: vbarange.cxx:237
static void insertString(css::uno::Reference< css::text::XTextRange > const &rTextRange, css::uno::Reference< css::text::XText > const &rText, const OUString &rStr, bool _bAbsorb)
virtual ::sal_Int32 SAL_CALL getLanguageID() override
Definition: vbastyle.cxx:63
virtual css::uno::Any SAL_CALL Fields(const css::uno::Any &aIndex) override
Definition: vbarange.cxx:398
virtual OUString SAL_CALL getText() override
The complexity in this method is because we need to workaround an issue that the last paragraph in a ...
Definition: vbarange.cxx:95
virtual ::sal_Int32 SAL_CALL getLanguageID() override
Definition: vbarange.cxx:306
const css::uno::Reference< css::container::XIndexAccess > & getPalette() const
Definition: vbapalette.hxx:32
unsigned char sal_Bool
virtual void SAL_CALL setStart(::sal_Int32 _start) override
Definition: vbarange.cxx:338
css::uno::WeakReference< ov::XHelperInterface > mxParent
Reference< text::XText > mxText
static void setStyle(const css::uno::Reference< css::beans::XPropertySet > &xParaProps, const css::uno::Any &xStyle)
Definition: vbastyle.cxx:93
#define ERRCODE_BASIC_BAD_PARAMETER
virtual void SAL_CALL InsertParagraph() override
Definition: vbarange.cxx:222
css::uno::Reference< css::text::XTextCursor > mxTextCursor
Definition: vbarange.hxx:36
virtual OUString getServiceImplName() override
Definition: vbarange.cxx:409
static void addBookmarkByName(const css::uno::Reference< css::frame::XModel > &xModel, const OUString &rName, const css::uno::Reference< css::text::XTextRange > &rTextRange)
css::uno::Reference< css::uno::XComponentContext > mxContext
SwVbaRange(const css::uno::Reference< ooo::vba::XHelperInterface > &rParent, const css::uno::Reference< css::uno::XComponentContext > &rContext, const css::uno::Reference< css::text::XTextDocument > &rTextDocument, const css::uno::Reference< css::text::XTextRange > &rStart)
#define ERRCODE_BASIC_INTERNAL_ERROR
virtual css::uno::Any SAL_CALL Sections(const css::uno::Any &aIndex) override
Definition: vbarange.cxx:387
void initialize(const css::uno::Reference< css::text::XTextRange > &rStart, const css::uno::Reference< css::text::XTextRange > &rEnd)
Definition: vbarange.cxx:64
virtual css::uno::Sequence< OUString > getServiceNames() override
Definition: vbarange.cxx:415
virtual void SAL_CALL setEnd(::sal_Int32 _end) override
Definition: vbarange.cxx:354
css::uno::Reference< css::text::XText > mxText
Definition: vbarange.hxx:37
virtual void SAL_CALL setParagraphFormat(const css::uno::Reference< ooo::vba::word::XParagraphFormat > &rParagraphFormat) override
Definition: vbarange.cxx:251
virtual void SAL_CALL setStyle(const css::uno::Any &_xStyle) override
Definition: vbarange.cxx:287
Reference< XModel > xModel
virtual void SAL_CALL InsertBreak(const css::uno::Any &_breakType) override
Definition: vbarange.cxx:169
static void setLanguageID(const css::uno::Reference< css::beans::XPropertySet > &xTCProps, LanguageType _languageid)
virtual void SAL_CALL InsertParagraphBefore() override
Definition: vbarange.cxx:229