1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
#ifndef _GLOSDOC_HXX
#define _GLOSDOC_HXX
#include <tools/string.hxx>
#include <svl/svarray.hxx>
#include <com/sun/star/text/XAutoTextGroup.hpp>
class SwTextBlocks;
class SvStrings;
class SwDocShell;
#ifndef SW_DECL_SWDOCSHELL_DEFINED
#define SW_DECL_SWDOCSHELL_DEFINED
#include <tools/ref.hxx>
SV_DECL_REF( SwDocShell )
#endif
#include <cppuhelper/weakref.hxx>
#ifndef INCLUDED_VECTOR
#include <vector>
#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 <arg>_bCreate</arg> is <TRUE/>, the SolarMutex must be locked when calling into this method.
@param _rGroupName
the name of the glossaries group
@param _bCreate
if <TRUE/>, 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 <arg>_bCreate</arg> is <TRUE/>, 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 <TRUE/>, 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
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|