summaryrefslogtreecommitdiff
path: root/sw/source/filter/ww8/ww8glsy.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/filter/ww8/ww8glsy.hxx')
-rw-r--r--sw/source/filter/ww8/ww8glsy.hxx92
1 files changed, 92 insertions, 0 deletions
diff --git a/sw/source/filter/ww8/ww8glsy.hxx b/sw/source/filter/ww8/ww8glsy.hxx
new file mode 100644
index 000000000000..fe7b4a33bf63
--- /dev/null
+++ b/sw/source/filter/ww8/ww8glsy.hxx
@@ -0,0 +1,92 @@
+/* -*- 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 _WW8GLSY_HXX
+#define _WW8GLSY_HXX
+
+#include <sot/storage.hxx>
+#include "ww8scan.hxx"
+
+class SwTextBlocks;
+class SwNodeIndex;
+
+/*
+ * GlossaryFib takes the document fib and finds the glossary fib which may
+ * not exist. The glossary fib has the offsets into the autotext subdocument
+ * which is at the end of template .dot's
+ */
+class WW8GlossaryFib : public WW8Fib
+{
+public:
+ WW8GlossaryFib( SvStream& rStrm, sal_uInt8 nWantedVersion ,
+ SvStream& rTableStrm, const WW8Fib &rFib) : WW8Fib(rStrm,
+ nWantedVersion,FindGlossaryFibOffset(rTableStrm,rStrm,rFib)) {}
+ bool IsGlossaryFib();
+private:
+ sal_uInt32 FindGlossaryFibOffset(SvStream &rTableStrm,SvStream &rStrm,
+ const WW8Fib &rFib);
+};
+
+/*
+ * Imports glossaries from word, given the document it gets the usual word
+ * doc information, then the glossary fib and uses the usual reader class to
+ * wrap the autotext into a star doc. Afterwards taking each section entry and
+ * making it a single star autotext entry.
+ *
+ * ToDo currently all autotext entries become resource hungry star autotext
+ * formatted text, need to use a flag in the ww8reader class to determine if
+ * an entry is formatted or not.
+ */
+class WW8Glossary
+{
+public:
+ WW8Glossary( SvStorageStreamRef &refStrm, sal_uInt8 nVersion, SvStorage *pStg=0);
+ bool Load( SwTextBlocks &rBlocks, bool bSaveRelFile );
+ ~WW8Glossary() { delete pGlossary; }
+ WW8GlossaryFib *GetFib() { return pGlossary; }
+ sal_uInt16 GetNoStrings() const { return nStrings; }
+
+private:
+ WW8GlossaryFib *pGlossary;
+ SvStorageStreamRef xTableStream;
+ SvStorageStreamRef &rStrm;
+ SvStorageRef xStg;
+ sal_uInt16 nStrings;
+
+ bool MakeEntries(SwDoc *pD, SwTextBlocks &rBlocks, bool bSaveRelFile,
+ const ::std::vector<String>& rStrings,
+ const ::std::vector<ww::bytes>& rExtra);
+ bool HasBareGraphicEnd(SwDoc *pD,SwNodeIndex &rIdx);
+
+ //No copying
+ WW8Glossary(const WW8Glossary&);
+ WW8Glossary& operator=(const WW8Glossary&);
+};
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */