22 #include <com/sun/star/io/IOException.hpp>
23 #include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
24 #include <com/sun/star/lang/WrappedTargetRuntimeException.hpp>
25 #include <com/sun/star/container/ElementExistException.hpp>
27 #include <osl/diagnose.h>
28 #include <rtl/character.hxx>
74 "SwXAutoTextContainer::getCount: too many items");
83 throw lang::IndexOutOfBoundsException();
103 uno::Reference< text::XAutoTextGroup > xGroup;
109 throw container::NoSuchElementException();
119 "SwXAutoTextContainer::getElementNames: too many groups");
121 uno::Sequence< OUString > aGroupNames(static_cast<sal_Int32>(nCount));
122 OUString *pArr = aGroupNames.getArray();
124 for (
size_t i = 0;
i < nCount; ++
i )
136 if(!sGroupName.isEmpty())
142 const OUString& aGroupName)
146 throw container::ElementExistException();
148 if(aGroupName.isEmpty())
150 lang::IllegalArgumentException aIllegal;
151 aIllegal.Message =
"group name must not be empty";
154 for(sal_Int32
nPos = 0;
nPos < aGroupName.getLength();
nPos++)
157 if (rtl::isAsciiAlphanumeric(cChar) ||
164 lang::IllegalArgumentException aIllegal;
165 aIllegal.Message =
"group name must contain a-z, A-z, '_', ' ' only";
168 OUString sGroup(aGroupName);
176 OSL_ENSURE( xGroup.is(),
"SwXAutoTextContainer::insertNewByName: no UNO object created? How this?" );
187 if(sGroupName.isEmpty())
188 throw container::NoSuchElementException();
194 return "SwXAutoTextContainer";
204 return {
"com.sun.star.text.AutoTextContainer" };
209 class theSwXAutoTextGroupUnoTunnelId :
public rtl::Static< UnoTunnelIdInit, theSwXAutoTextGroupUnoTunnelId > {};
219 if( isUnoTunnelId<SwXAutoTextGroup>(rId) )
221 return sal::static_int_cast< sal_Int64 >(
reinterpret_cast< sal_IntPtr
>( this ));
233 OSL_ENSURE( -1 != rName.indexOf(
GLOS_DELIM ),
234 "SwXAutoTextGroup::SwXAutoTextGroup: to be constructed with a complete name only!" );
245 if (!pGlosGroup || pGlosGroup->GetError())
246 throw uno::RuntimeException();
247 const sal_uInt16
nCount = pGlosGroup->GetCount();
249 uno::Sequence< OUString > aEntryTitles(nCount);
250 OUString *pArr = aEntryTitles.getArray();
252 for ( sal_uInt16
i = 0;
i < nCount;
i++ )
253 pArr[
i] = pGlosGroup->GetLongName(
i);
258 const OUString& aNewElementName,
const OUString& aNewElementTitle)
262 if(aNewElementName != aElementName &&
hasByName(aNewElementName))
263 throw container::ElementExistException();
265 if(!pGlosGroup || pGlosGroup->GetError())
266 throw uno::RuntimeException();
268 const sal_uInt16 nIdx = pGlosGroup->GetIndex( aElementName);
270 throw lang::IllegalArgumentException();
271 OUString aNewShort(aNewElementName);
272 OUString aNewName(aNewElementTitle);
273 sal_uInt16 nOldLongIdx = pGlosGroup->GetLongIndex( aNewShort );
274 sal_uInt16 nOldIdx = pGlosGroup->GetIndex( aNewName );
276 if ((nOldLongIdx ==
USHRT_MAX || nOldLongIdx == nIdx)
277 && (nOldIdx ==
USHRT_MAX || nOldIdx == nIdx))
279 pGlosGroup->Rename( nIdx, &aNewShort, &aNewName );
281 throw io::IOException();
298 SwPaM aPam(pDoc->GetNodes());
299 SwPaM * pPam(
nullptr);
302 pPam = pxCursor->
GetPaM();
311 if (!pPam) {
return false; }
324 const OUString& aTitle,
const uno::Reference< text::XTextRange > & xTextRange)
328 throw container::ElementExistException();
330 throw uno::RuntimeException();
332 std::unique_ptr<SwTextBlocks> pGlosGroup;
335 const OUString& sShortName(aName);
336 const OUString& sLongName(aTitle);
337 if (pGlosGroup && !pGlosGroup->GetError())
339 uno::Reference<lang::XUnoTunnel> xRangeTunnel( xTextRange, uno::UNO_QUERY);
342 if(xRangeTunnel.is())
344 pxRange =
reinterpret_cast<SwXTextRange*
>(xRangeTunnel->getSomething(
351 OUString* pOnlyText =
nullptr;
352 bool bNoAttr = !pxCursor && !pxRange;
356 pOnlyText = &sOnlyText;
361 SwDoc* pGDoc = pGlosGroup->GetDoc();
370 pGlosGroup->SetBaseURL( OUString() );
374 nRet = pGlosGroup->PutText( sShortName, sLongName, *pOnlyText );
377 pGlosGroup->ClearDoc();
378 if( pGlosGroup->BeginPutDoc( sShortName, sLongName ) )
383 nRet = pGlosGroup->PutDoc();
389 throw uno::RuntimeException();
394 uno::Reference< text::XAutoTextEntry > xEntry;
400 uno::Reference< text::XAutoTextEntry >();
401 OSL_ENSURE( xEntry.is(),
"SwXAutoTextGroup::insertNewByName: no UNO object created? How this?" );
404 catch (
const container::ElementExistException&)
408 catch (
const uno::RuntimeException&)
412 catch (
const uno::Exception&)
415 throw css::lang::WrappedTargetRuntimeException(
416 "Error Getting AutoText!",
417 static_cast < OWeakObject * > (
this ),
428 if(!pGlosGroup || pGlosGroup->GetError())
429 throw container::NoSuchElementException();
431 sal_uInt16 nIdx = pGlosGroup->GetIndex(aEntryName);
433 throw container::NoSuchElementException();
435 pGlosGroup->Delete(nIdx);
448 throw uno::RuntimeException();
450 sal_Int32 nNewDelimPos = rName.lastIndexOf(
GLOS_DELIM );
454 if (nNewDelimPos > -1)
455 aNewSuffix = rName.copy( nNewDelimPos + 1 );
457 if (nOldDelimPos > -1)
458 aOldSuffix =
sName.copy( nOldDelimPos + 1 );
460 sal_Int32 nNewNumeric = aNewSuffix.toInt32();
461 sal_Int32 nOldNumeric = aOldSuffix.toInt32();
463 OUString aNewPrefix( (nNewDelimPos > 1) ? rName.copy( 0, nNewDelimPos ) : rName );
464 OUString aOldPrefix( (nOldDelimPos > 1) ?
sName.copy( 0, nOldDelimPos ) :
sName );
466 if (
sName == rName ||
467 ( nNewNumeric == nOldNumeric && aNewPrefix == aOldPrefix ) )
469 OUString sNewGroup(rName);
480 throw uno::RuntimeException();
490 if (!pGlosGroup || pGlosGroup->GetError())
491 throw uno::RuntimeException();
492 return static_cast<sal_Int32
>(pGlosGroup->GetCount());
499 if (!pGlosGroup || pGlosGroup->GetError())
500 throw uno::RuntimeException();
501 const sal_uInt16
nCount = pGlosGroup->GetCount();
502 if (nIndex < 0 || nIndex >= static_cast<sal_Int32>(nCount))
503 throw lang::IndexOutOfBoundsException();
504 return getByName(pGlosGroup->GetShortName(static_cast<sal_uInt16>(nIndex)));
517 if (!pGlosGroup || pGlosGroup->GetError())
518 throw uno::RuntimeException();
519 return pGlosGroup->GetCount() > 0;
527 OSL_ENSURE( xEntry.is(),
"SwXAutoTextGroup::getByName: GetAutoTextEntry is fractious!" );
536 if (!pGlosGroup || pGlosGroup->GetError())
537 throw uno::RuntimeException();
539 const sal_uInt16
nCount = pGlosGroup->GetCount();
540 uno::Sequence< OUString > aEntryNames(nCount);
541 OUString *pArr = aEntryNames.getArray();
543 for ( sal_uInt16
i = 0;
i < nCount;
i++ )
544 pArr[
i] = pGlosGroup->GetShortName(
i);
553 if (!pGlosGroup || pGlosGroup->GetError())
554 throw uno::RuntimeException();
556 const sal_uInt16
nCount = pGlosGroup->GetCount();
557 for( sal_uInt16
i = 0;
i < nCount; ++
i )
559 OUString sCompare(pGlosGroup->GetShortName(
i));
560 if(sCompare.equalsIgnoreAsciiCase(rName))
576 const OUString& rPropertyName,
const uno::Any& aValue)
582 throw beans::UnknownPropertyException(rPropertyName);
585 if(!pGlosGroup || pGlosGroup->GetError())
586 throw uno::RuntimeException();
592 aValue >>= sNewTitle;
593 if(sNewTitle.isEmpty())
594 throw lang::IllegalArgumentException();
595 bool bChanged = sNewTitle != pGlosGroup->GetName();
596 pGlosGroup->SetName(sNewTitle);
610 throw beans::UnknownPropertyException(rPropertyName);
612 if(!pGlosGroup || pGlosGroup->GetError())
613 throw uno::RuntimeException();
619 aAny <<= pGlosGroup->GetFileName();
622 aAny <<= pGlosGroup->GetName();
629 const OUString& ,
const uno::Reference< beans::XPropertyChangeListener > & )
634 const OUString& ,
const uno::Reference< beans::XPropertyChangeListener > & )
639 const OUString& ,
const uno::Reference< beans::XVetoableChangeListener > & )
644 const OUString& ,
const uno::Reference< beans::XVetoableChangeListener > & )
657 return "SwXAutoTextGroup";
667 uno::Sequence<OUString> aRet {
"com.sun.star.text.AutoTextGroup" };
673 class theSwXAutoTextEntryUnoTunnelId :
public rtl::Static< UnoTunnelIdInit, theSwXAutoTextEntryUnoTunnelId > {};
683 if( isUnoTunnelId<SwXAutoTextEntry>(rId) )
685 return sal::static_int_cast< sal_Int64 >(
reinterpret_cast< sal_IntPtr
>( this ));
691 const OUString& rEntryName) :
694 sGroupName(rGroupName),
695 sEntryName(rEntryName)
731 if (
const SfxEventHint* pEventHint = dynamic_cast<const SfxEventHint*>(&_rHint))
733 if (SfxEventHintId::PrepareCloseDoc == pEventHint->GetEventId())
743 if ( SfxHintId::Deinitializing == _rHint.
GetId() )
760 OSL_ENSURE(
xDocSh.
is(),
"SwXAutoTextEntry::GetBodyText: unexpected: no doc returned by EditGroupDoc!" );
782 const uno::Reference< text::XTextRange > & aTextPosition)
786 return mxBodyText->createTextCursorByRange ( aTextPosition );
793 mxBodyText->insertString ( xRange, aString, bAbsorb );
797 sal_Int16 nControlCharacter,
sal_Bool bAbsorb)
801 mxBodyText->insertControlCharacter ( xRange, nControlCharacter, bAbsorb );
805 const uno::Reference< text::XTextRange > & xRange,
806 const uno::Reference< text::XTextContent > & xContent,
sal_Bool bAbsorb)
810 mxBodyText->insertTextContent ( xRange, xContent, bAbsorb );
814 const uno::Reference< text::XTextContent > & xContent)
824 uno::Reference< text::XText > xRet =
static_cast<text::XText*
>(
this);
872 uno::Reference<lang::XUnoTunnel> xTunnel( xTextRange, uno::UNO_QUERY);
883 pText = reinterpret_cast <
SwXText* >
887 SwDoc* pDoc =
nullptr;
892 else if ( pText && pText->
GetDoc() )
894 xTunnel.set(pText->
getStart(), uno::UNO_QUERY);
905 throw uno::RuntimeException();
912 throw uno::RuntimeException();
917 InsertPaM = *pCursor->
GetPaM();
921 const bool bResult = pBlock && !pBlock->GetError()
925 throw uno::RuntimeException();
930 return "SwXAutoTextEntry";
940 uno::Sequence<OUString> aRet {
"com.sun.star.text.AutoTextEntry" };
951 { SvMacroItemId::SwStartInsGlossary,
"OnInsertStart" },
952 { SvMacroItemId::SwEndInsGlossary,
"OnInsertDone" },
953 { SvMacroItemId::NONE,
nullptr }
959 rAutoTextEntry(rAutoText)
969 return "SwAutoTextEventDescriptor";
977 "Strangely enough, the AutoText vanished!" );
978 OSL_ENSURE( (nEvent == SvMacroItemId::SwEndInsGlossary) ||
979 (nEvent == SvMacroItemId::SwStartInsGlossary) ,
980 "Unknown event ID" );
984 std::unique_ptr<SwTextBlocks> pBlocks(
987 "can't get autotext group; SwAutoTextEntry has illegal name?");
989 if( !pBlocks || pBlocks->GetError())
996 if( pBlocks->GetMacroTable( nIndex, aMacroTable ) )
998 aMacroTable.
Insert( nEvent, rMacro );
999 pBlocks->SetMacroTable( nIndex, aMacroTable );
1010 OSL_ENSURE( (nEvent == SvMacroItemId::SwEndInsGlossary) ||
1011 (nEvent == SvMacroItemId::SwStartInsGlossary) ,
1012 "Unknown event ID" );
1016 std::unique_ptr<SwTextBlocks> pBlocks(
1018 OSL_ENSURE( pBlocks,
1019 "can't get autotext group; SwAutoTextEntry has illegal name?");
1023 SvxMacro aEmptyMacro(sEmptyStr, sEmptyStr);
1024 rMacro = aEmptyMacro;
1026 if ( !pBlocks || pBlocks->GetError())
1033 if( pBlocks->GetMacroTable( nIndex, aMacroTable ) )
1042 extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
1044 css::uno::Sequence<css::uno::Any>
const &)
css::uno::Reference< css::linguistic2::XProofreadingIterator > get(css::uno::Reference< css::uno::XComponentContext > const &context)
virtual void SAL_CALL setName(const OUString &Name_) override
const SfxItemPropertySimpleEntry * getByName(std::u16string_view rName) const
SvxMacro & Insert(SvMacroItemId nEvent, const SvxMacro &rMacro)
static const css::uno::Sequence< sal_Int8 > & getUnoTunnelId()
virtual const SwDoc * GetDoc() const =0
static SvxAutoCorrCfg & Get()
Marks a position in the document model.
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
virtual void SAL_CALL addPropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &xListener) override
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
virtual css::uno::Type SAL_CALL getElementType() override
virtual css::uno::Any SAL_CALL getByName(const OUString &Name) override
virtual sal_Bool SAL_CALL hasElements() override
virtual void SetRedlineFlags_intern(RedlineFlags eMode)=0
Set a new redline mode.
virtual sal_Bool SAL_CALL hasByName(const OUString &Name) override
virtual css::uno::Reference< css::text::XText > SAL_CALL getText() override
SwDocShellRef EditGroupDoc(const OUString &rGrpName, const OUString &rShortName, bool bShow=true)
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SwXAutoTextContainer_get_implementation(css::uno::XComponentContext *, css::uno::Sequence< css::uno::Any > const &)
const OUString & GetEntryName() const
std::unique_ptr< SwTextBlocks > GetGroupDoc(const OUString &rName, bool bCreate=false)
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex) override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
static const css::uno::Sequence< sal_Int8 > & getUnoTunnelId()
css::uno::Reference< css::beans::XPropertySetInfo > const & getPropertySetInfo() const
OUString GetCompleteGroupName(const OUString &GroupName)
virtual css::uno::Type SAL_CALL getElementType() override
virtual void LockExpFields()=0
void SAL_CALL disposing() override
virtual void UpdateExpFields(SwTextField *pField, bool bUpdateRefFields)=0
IDocumentFieldsAccess const & getIDocumentFieldsAccess() const
virtual OUString SAL_CALL getString() override
virtual void SAL_CALL insertString(const css::uno::Reference< css::text::XTextRange > &xRange, const OUString &aString, sal_Bool bAbsorb) override
Any SAL_CALL getCaughtException()
virtual css::uno::Sequence< OUString > SAL_CALL getTitles() override
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex) override
check if target position is in fly anchored at source range
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
virtual css::uno::Reference< css::container::XNameReplace > SAL_CALL getEvents() override
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
virtual bool IsExpFieldsLocked() const =0
bool InsertGlossary(SwTextBlocks &rBlock, const OUString &rEntry, SwPaM &rPaM, SwCursorShell *pShell=nullptr)
inserts an AutoText block
virtual void SAL_CALL applyTo(const css::uno::Reference< css::text::XTextRange > &xRange) override
virtual css::uno::Reference< css::text::XTextCursor > SAL_CALL createTextCursor() override
virtual sal_Int64 SAL_CALL getSomething(const css::uno::Sequence< sal_Int8 > &aIdentifier) override
SW_DLLPUBLIC SwGlossaries * GetGlossaries()
SwXAutoTextGroup(const OUString &rName, SwGlossaries *pGloss)
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
bool DelGroupDoc(const OUString &)
virtual sal_Int32 SAL_CALL getCount() override
virtual void SAL_CALL removeByName(const OUString &aEntryName) override
virtual OUString SAL_CALL getImplementationName() override
SwNode & GetEndOfContent() const
Regular ContentSection (i.e. the BodyText).
virtual void SAL_CALL removeTextContent(const css::uno::Reference< css::text::XTextContent > &xContent) override
SwDoc * GetDoc()
returns Doc. But be careful!
PaM is Point and Mark: a selection of the document model.
virtual css::uno::Reference< css::text::XTextRange > SAL_CALL getStart() override
SwXAutoTextEntry(SwGlossaries *, const OUString &rGroupName, const OUString &rEntryName)
virtual bool IsModified() const =0
Changes of document?
virtual sal_Bool SAL_CALL hasElements() override
virtual sal_Int32 SAL_CALL getCount() override
virtual OUString SAL_CALL getImplementationName() override
static std::unique_ptr< SwGlossaries > pGlossaries
SwContentNode * GetContentNode()
const OUString & GetGroupName() const
constexpr std::enable_if_t< std::is_signed_v< T >, std::make_unsigned_t< T > > make_unsigned(T value)
Marks a character position inside a document model node.
virtual void SAL_CALL removeVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
const SfxItemPropertyMap & getPropertyMap() const
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
IDocumentState const & getIDocumentState() const
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
Marks a node in the document model.
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
css::uno::Type const & get()
void implFlushDocument(bool _bCloseDoc=false)
ensure that the current content (which may only be in-memory so far) is flushed to the auto text grou...
void StartListening(SfxBroadcaster &rBroadcaster, DuplicateHandling eDuplicateHanding=DuplicateHandling::Unexpected)
bool IsSaveRelFile() const
css::uno::Reference< css::text::XAutoTextGroup > GetAutoTextGroup(const OUString &_rGroupName)
returns the cached AutoTextGroup (if any) for the given group name The group is created if it does no...
virtual void SAL_CALL removePropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &aListener) override
virtual void replaceByName(const SvMacroItemId nEvent, const SvxMacro &rMacro) override
event (will be copied)
virtual ~SwXAutoTextContainer() override
const struct SvEventDescription aAutotextEvents[]
virtual ~SwXAutoTextGroup() override
virtual OUString SAL_CALL getName() override
const SfxItemPropertySet * pPropSet
virtual css::uno::Reference< css::text::XTextRange > SAL_CALL getEnd() override
virtual sal_Bool SAL_CALL hasByName(const OUString &Name) override
virtual const SwPaM * GetPaM() const =0
virtual void SAL_CALL addVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
const SwDoc * GetDoc() const
css::uno::Reference< css::text::XAutoTextEntry > GetAutoTextEntry(const OUString &_rCompleteGroupName, const OUString &_rGroupName, const OUString &_rEntryName)
returns the cached AutoTextEntry (if any) for the given group/with the given name The entry is create...
Implement the XNameAccess for the AutoText events.
virtual void SAL_CALL removeByName(const OUString &aGroupName) override
IDocumentRedlineAccess const & getIDocumentRedlineAccess() const
virtual void SAL_CALL setString(const OUString &aString) override
virtual css::uno::Reference< css::text::XTextRange > SAL_CALL getStart() override
const SvxMacro * Get(SvMacroItemId nEvent) const
OUString const & GetGroupName(size_t)
#define PROPERTY_MAP_AUTO_TEXT_GROUP
virtual ~SwXAutoTextEntry() override
OUString GetGroupTitle(const OUString &rGroupName)
bool RenameGroupDoc(const OUString &sOldGroup, OUString &sNewGroup, const OUString &rNewTitle)
const o3tl::enumarray< SvxAdjust, unsigned short > aSvxToUnoAdjust USHRT_MAX
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
static const css::uno::Sequence< sal_Int8 > & getUnoTunnelId()
void EndListening(SfxBroadcaster &rBroadcaster, bool bRemoveAllDuplicates=false)
virtual css::uno::Any SAL_CALL getByName(const OUString &Name) override
SwUnoPropertyMapProvider aSwMapProvider
rtl::Reference< SwXBodyText > mxBodyText
virtual css::uno::Reference< css::text::XAutoTextGroup > SAL_CALL insertNewByName(const OUString &aGroupName) override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual void getByName(SvxMacro &rMacro, const SvMacroItemId nEvent) override
item ID of event
SwGlossaries * pGlossaries
virtual css::uno::Reference< css::text::XAutoTextEntry > SAL_CALL insertNewByName(const OUString &aName, const OUString &aTitle, const css::uno::Reference< css::text::XTextRange > &xTextRange) override
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual void SAL_CALL insertTextContent(const css::uno::Reference< css::text::XTextRange > &xRange, const css::uno::Reference< css::text::XTextContent > &xContent, sal_Bool bAbsorb) override
virtual void SAL_CALL renameByName(const OUString &aElementName, const OUString &aNewElementName, const OUString &aNewElementTitle) override
virtual OUString SAL_CALL getImplementationName() override
virtual ~SwAutoTextEventDescriptor() override
virtual void UnlockExpFields()=0
SwXAutoTextEntry & rAutoTextEntry
virtual sal_Int64 SAL_CALL getSomething(const css::uno::Sequence< sal_Int8 > &aIdentifier) override
virtual void SAL_CALL insertControlCharacter(const css::uno::Reference< css::text::XTextRange > &xRange, sal_Int16 nControlCharacter, sal_Bool bAbsorb) override
SwAutoTextEventDescriptor(SwXAutoTextEntry &rAutoText)
SwGlossaries * pGlossaries
static const css::uno::Sequence< sal_Int8 > & getUnoTunnelId()
virtual css::uno::Reference< css::text::XTextCursor > SAL_CALL createTextCursorByRange(const css::uno::Reference< css::text::XTextRange > &aTextPosition) override
SwGlossaries * pGlossaries
const SwGlossaries * GetGlossaries() const
bool NewGroupDoc(OUString &rGroupName, const OUString &rTitle)
virtual bool Save() override
global IO.
virtual OUString SAL_CALL getImplementationName() override
static bool lcl_CopySelToDoc(SwDoc &rInsDoc, OTextCursorHelper *pxCursor, SwXTextRange *pxRange)
css::uno::Any SAL_CALL makeAny(const SharedUNOComponent< INTERFACE, COMPONENT > &value)
SwGlossaryList * GetGlossaryList()