/************************************************************** * * 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. * *************************************************************/ #ifndef _GLOSDOC_HXX #define _GLOSDOC_HXX #include #include #include class SwTextBlocks; class SvStrings; class SwDocShell; #ifndef SW_DECL_SWDOCSHELL_DEFINED #define SW_DECL_SWDOCSHELL_DEFINED #include SV_DECL_REF( SwDocShell ) #endif #include #ifndef INCLUDED_VECTOR #include #define INCLUDED_VECTOR #endif #include "swdllapi.h" typedef ::com::sun::star::uno::WeakReference< ::com::sun::star::text::XAutoTextGroup > AutoTextGroupRef; typedef ::std::vector< AutoTextGroupRef > UnoAutoTextGroups; typedef ::com::sun::star::uno::WeakReference< ::com::sun::star::text::XAutoTextEntry > AutoTextEntryRef; typedef ::std::vector< AutoTextEntryRef > UnoAutoTextEntries; #define GLOS_DELIM (sal_Unicode)'*' // CLASS ----------------------------------------------------------------- class SW_DLLPUBLIC SwGlossaries { UnoAutoTextGroups m_aGlossaryGroups; UnoAutoTextEntries m_aGlossaryEntries; String m_aPath; String m_sOldErrPath; String m_sErrPath; SvStrings *m_pPathArr; SvStrings *m_pGlosArr; sal_Bool m_bError; SW_DLLPRIVATE SwTextBlocks* GetGlosDoc(const String &rName, sal_Bool bCreate = sal_True) const; SW_DLLPRIVATE SvStrings *GetNameList(); // implementation in unoatxt.cxx SW_DLLPRIVATE void RemoveFileFromList( const String& rGroup ); SW_DLLPRIVATE void InvalidateUNOOjects(); public: SwGlossaries(); ~SwGlossaries(); /** returns the cached AutoTextGroup (if any) for the given group name @precond If _bCreate is , the SolarMutex must be locked when calling into this method. @param _rGroupName the name of the glossaries group @param _bCreate if , the group is created if it does not yet exist */ ::com::sun::star::uno::Reference< ::com::sun::star::text::XAutoTextGroup > GetAutoTextGroup( const ::rtl::OUString& _rGroupName, bool _bCreate = false ); /** returns the cached AutoTextEntry (if any) for the given group/with the given name @precond If _bCreate is , the SolarMutex must be locked when calling into this method. @param _rGroupAccessName the name to access the group @param _rGroupName the name of the glossaries group, as to be passed to the entry @param _rEntryName the name of the auto text entry @param _bCreate if , the entry is created if it does not yet exist */ ::com::sun::star::uno::Reference< ::com::sun::star::text::XAutoTextEntry > GetAutoTextEntry( const String& _rCompleteGroupName, const ::rtl::OUString& _rGroupName, const ::rtl::OUString& _rEntryName, bool _bCreate = false ); sal_uInt16 GetGroupCnt(); String GetGroupName(sal_uInt16 ); String GetGroupTitle( const String& rGroupName ); sal_Bool FindGroupName(String & rGroup); SwTextBlocks* GetGroupDoc(const String &rName, sal_Bool bCreate = sal_False) const; SwTextBlocks* GetDefGroupDoc() const {return GetGroupDoc(GetDefName());} void PutGroupDoc(SwTextBlocks *pBlock); static String GetDefName(); static String GetExtension(); String GetCompleteGroupName( const ::rtl::OUString& GroupName ); sal_Bool NewGroupDoc(String &rGroupName, const String& rTitle); sal_Bool RenameGroupDoc(const String& sOldGroup, String& sNewGroup, const String& rNewTitle); sal_Bool DelGroupDoc(const String &); SwDocShellRef EditGroupDoc(const String &rGrpName, const String& rShortName, sal_Bool bShow = sal_True ); void SaveGroupDoc(const String &rGrpName, const String& rLongName ); void UpdateGlosPath(sal_Bool bFull); void ShowError(); inline sal_uLong IsGlosPathErr() { return m_bError; } const SvStrings* GetPathArray() const {return m_pPathArr;} }; #endif // _GLOSDOC_HXX