summaryrefslogtreecommitdiff
path: root/autodoc/source/display/inc
diff options
context:
space:
mode:
Diffstat (limited to 'autodoc/source/display/inc')
-rw-r--r--autodoc/source/display/inc/cfrstd.hxx82
-rw-r--r--autodoc/source/display/inc/html/chd_udk2.hxx98
-rw-r--r--autodoc/source/display/inc/idl/hi_display.hxx113
-rw-r--r--autodoc/source/display/inc/toolkit/hf_docentry.hxx62
-rw-r--r--autodoc/source/display/inc/toolkit/hf_funcdecl.hxx74
-rw-r--r--autodoc/source/display/inc/toolkit/hf_linachain.hxx75
-rw-r--r--autodoc/source/display/inc/toolkit/hf_navi_main.hxx94
-rw-r--r--autodoc/source/display/inc/toolkit/hf_navi_sub.hxx83
-rw-r--r--autodoc/source/display/inc/toolkit/hf_title.hxx94
-rw-r--r--autodoc/source/display/inc/toolkit/htmlfactory.hxx104
-rw-r--r--autodoc/source/display/inc/toolkit/htmlfile.hxx88
-rw-r--r--autodoc/source/display/inc/toolkit/out_node.hxx132
-rw-r--r--autodoc/source/display/inc/toolkit/out_position.hxx120
-rw-r--r--autodoc/source/display/inc/toolkit/out_tree.hxx139
-rw-r--r--autodoc/source/display/inc/toolkit/outputstack.hxx75
15 files changed, 1433 insertions, 0 deletions
diff --git a/autodoc/source/display/inc/cfrstd.hxx b/autodoc/source/display/inc/cfrstd.hxx
new file mode 100644
index 000000000000..dce0db3b886f
--- /dev/null
+++ b/autodoc/source/display/inc/cfrstd.hxx
@@ -0,0 +1,82 @@
+/* -*- 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 ADC_CFRSTD_HXX
+#define ADC_CFRSTD_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <display/corframe.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+
+class StdFrame : public display::CorporateFrame
+{
+ public:
+ // LIFECYCLE
+ StdFrame();
+
+ // INQUIRY
+ virtual DYN Html_Image *
+ LogoSrc() const;
+ virtual const char *
+ LogoLink() const;
+ virtual const char *
+ CopyrightText() const;
+ virtual const char *
+ CssStyle() const;
+ virtual const char *
+ CssStylesExplanation() const;
+ virtual const char *
+ DevelopersGuideHtmlRoot() const;
+ virtual bool SimpleLinks() const;
+
+ // ACCESS
+ virtual void Set_DevelopersGuideHtmlRoot(
+ const String & i_directory );
+ virtual void Set_SimpleLinks();
+
+ private:
+ String sDevelopersGuideHtmlRoot;
+ bool bSimpleLinks;
+};
+
+
+
+// IMPLEMENTATION
+
+
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/source/display/inc/html/chd_udk2.hxx b/autodoc/source/display/inc/html/chd_udk2.hxx
new file mode 100644
index 000000000000..b8a17b999fb5
--- /dev/null
+++ b/autodoc/source/display/inc/html/chd_udk2.hxx
@@ -0,0 +1,98 @@
+/* -*- 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 ADC_DISPLAY_HTML_CHD_UDK2_HXX
+#define ADC_DISPLAY_HTML_CHD_UDK2_HXX
+
+// BASE CLASSES
+#include <autodoc/dsp_html_std.hxx>
+// USED SERVICES
+#include <cosv/ploc.hxx>
+
+namespace ary
+{
+namespace cpp
+{
+ class Namespace;
+ class Gate;
+}
+}
+
+class OuputPage_Environment;
+
+
+
+
+class CppHtmlDisplay_Udk2 : public autodoc::HtmlDisplay_UdkStd
+{
+ public:
+ CppHtmlDisplay_Udk2();
+ ~CppHtmlDisplay_Udk2();
+ private:
+ // Interface CppHtmlDisplay_UdkStd:
+ virtual void do_Run(
+ const char * i_sOutputDirectory,
+ const ary::cpp::Gate &
+ i_rAryGate,
+ const display::CorporateFrame &
+ i_rLayout );
+
+ // Local
+ void SetRunData(
+ const char * i_sOutputDirectory,
+ const ary::cpp::Gate &
+ i_rAryGate,
+ const display::CorporateFrame &
+ i_rLayout );
+
+ void Create_Css_File();
+ void Create_Overview_File();
+ void Create_Help_File();
+ void Create_AllDefs_File();
+ void CreateFiles_InSubTree_Namespaces();
+ void CreateFiles_InSubTree_Index();
+
+ void RecursiveDisplay_Namespace(
+ const ary::cpp::Namespace &
+ i_rNsp );
+ void DisplayFiles_InNamespace(
+ const ary::cpp::Namespace &
+ i_rNsp );
+ const ary::cpp::Gate &
+ Gate() const;
+ // DATA
+ Dyn<OuputPage_Environment>
+ pCurPageEnv;
+};
+
+
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/source/display/inc/idl/hi_display.hxx b/autodoc/source/display/inc/idl/hi_display.hxx
new file mode 100644
index 000000000000..6fb4ca50ab38
--- /dev/null
+++ b/autodoc/source/display/inc/idl/hi_display.hxx
@@ -0,0 +1,113 @@
+/* -*- 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 ADC_DISPLAY_HI_DISPLAY_HXX
+#define ADC_DISPLAY_HI_DISPLAY_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <autodoc/dsp_html_std.hxx>
+ // COMPONENTS
+#include <cosv/ploc.hxx>
+ // PARAMETERS
+
+
+
+namespace ary
+{
+ namespace idl
+ {
+ class Module;
+ class CodeEntity;
+ } // namspace idl
+} // namspace csi
+
+
+class MainDisplay_Idl;
+class HtmlEnvironment_Idl;
+
+class HtmlDisplay_Idl : public autodoc::HtmlDisplay_Idl_Ifc
+{
+ public:
+ HtmlDisplay_Idl();
+ ~HtmlDisplay_Idl();
+ private:
+ // Interface HtmlDisplay_Idl_Ifc:
+ virtual void do_Run(
+ const char * i_sOutputDirectory,
+ const ary::idl::Gate &
+ i_rAryGate,
+ const display::CorporateFrame &
+ i_rLayout );
+ void SetRunData(
+ const char * i_sOutputDirectory,
+ const ary::idl::Gate &
+ i_rAryGate,
+ const display::CorporateFrame &
+ i_rLayout );
+ void Create_StartFile();
+ void Create_FilesInNameTree();
+ void Create_IndexFiles();
+ void Create_FilesInProjectTree();
+ void Create_PackageList();
+ void Create_HelpFile();
+ void Create_CssFile();
+
+ /** @descr
+ - makes sure, the module's directory exists
+ - creates the module's docu file
+ - creates docu files for all members of the module
+ - does the same recursive for all sub-modules.
+ */
+ void RecursiveDisplay_Module(
+ const ary::idl::Module &
+ i_rNamespace );
+ bool IsModule(
+ const ary::idl::CodeEntity &
+ i_ce ) const;
+ const ary::idl::Module &
+ Module_Cast( /// @precond Cast must be valid.
+ const ary::idl::CodeEntity &
+ i_ce ) const;
+ // DATA
+ Dyn<HtmlEnvironment_Idl>
+ pCurPageEnv;
+ Dyn<MainDisplay_Idl>
+ pMainDisplay;
+};
+
+
+
+// IMPLEMENTATION
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/source/display/inc/toolkit/hf_docentry.hxx b/autodoc/source/display/inc/toolkit/hf_docentry.hxx
new file mode 100644
index 000000000000..028f47b68af1
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/hf_docentry.hxx
@@ -0,0 +1,62 @@
+/* -*- 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 ADC_DISPLAY_HF_DOCENTRY_HXX
+#define ADC_DISPLAY_HF_DOCENTRY_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "htmlfactory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+/** @resp
+ Produces a list of <DT>..</DT> and <DD>.
+*/
+class HF_DocEntryList : public HtmlMaker
+{
+ public:
+
+ HF_DocEntryList(
+ Xml::Element & o_rOut );
+ virtual ~HF_DocEntryList();
+
+ Xml::Element & Produce_Term(
+ const char * i_sTerm = 0 );
+ Xml::Element & Produce_NormalTerm( /// Font will not be bold.
+ const char * i_sTerm = 0 );
+ Xml::Element & Produce_Definition();
+};
+
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/source/display/inc/toolkit/hf_funcdecl.hxx b/autodoc/source/display/inc/toolkit/hf_funcdecl.hxx
new file mode 100644
index 000000000000..013a8d2e123d
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/hf_funcdecl.hxx
@@ -0,0 +1,74 @@
+/* -*- 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 ADC_DISPLAY_HF_FUNCDECL_HXX
+#define ADC_DISPLAY_HF_FUNCDECL_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <toolkit/htmlfactory.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+class HF_FunctionDeclaration : public HtmlMaker
+{
+ public:
+ HF_FunctionDeclaration(
+ Xml::Element & o_rParent,
+ const String & i_sRaisesText );
+ virtual ~HF_FunctionDeclaration();
+
+ // OPERATIONS
+ Xml::Element & ReturnCell();
+ Xml::Element & NameCell();
+ Xml::Element & NewParamTypeCell();
+ Xml::Element & ParamNameCell();
+ Xml::Element & ExceptionCell();
+
+ private:
+ Html::TableRow & ParameterLine();
+
+ // DATA
+ String sRaisesText;
+ Html::Table * pTable;
+ Xml::Element * pReturnCell;
+ Xml::Element * pNameCell;
+ Html::TableRow * pParameterLine;
+ Xml::Element * pLastParameterCell;
+ Xml::Element * pExceptionCell;
+};
+
+
+// IMPLEMENTATION
+
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/source/display/inc/toolkit/hf_linachain.hxx b/autodoc/source/display/inc/toolkit/hf_linachain.hxx
new file mode 100644
index 000000000000..143e864c700e
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/hf_linachain.hxx
@@ -0,0 +1,75 @@
+/* -*- 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 ADC_DISPLAY_HF_LINACHAIN_HXX
+#define ADC_DISPLAY_HF_LINACHAIN_HXX
+
+// BASE CLASSES
+#include "htmlfactory.hxx"
+#include "out_position.hxx"
+
+
+
+
+class HF_LinkedNameChain : public HtmlMaker
+{
+ public:
+ /** F_LinkMaker makes a link out of the name of the
+ parent position.
+
+ Returns true, if there is a link, false if not.
+ */
+ typedef String (*F_LinkMaker)(const char *);
+
+
+ HF_LinkedNameChain(
+ Xml::Element & o_rOut );
+ virtual ~HF_LinkedNameChain();
+
+ void Produce_CompleteChain(
+ const output::Position &
+ i_curPosition,
+ F_LinkMaker i_linkMaker ) const;
+ void Produce_CompleteChain_forModule(
+ const output::Position &
+ i_curPosition, /// current Module's node
+ F_LinkMaker i_linkMaker ) const;
+ private:
+ void produce_Level(
+ output::Node & i_levelNode,
+ const output::Position &
+ i_startPosition,
+ F_LinkMaker i_linkMaker ) const;
+};
+
+
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/source/display/inc/toolkit/hf_navi_main.hxx b/autodoc/source/display/inc/toolkit/hf_navi_main.hxx
new file mode 100644
index 000000000000..0fbb726a4fcb
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/hf_navi_main.hxx
@@ -0,0 +1,94 @@
+/* -*- 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 ADC_DISPLAY_HF_NAVI_MAIN_HXX
+#define ADC_DISPLAY_HF_NAVI_MAIN_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include "htmlfactory.hxx"
+ // PARAMETERS
+
+
+class HF_MainItem;
+
+
+/** @task
+ Create a HTML navigation bar with lightly coloured background.
+
+ @descr
+ There are three kinds of items:
+ Item with link: Add_StdItem(),
+ Item without link: Add_NoneItem(),
+ Item that is current page: Add_SelfItem().
+*/
+class HF_NaviMainRow : public HtmlMaker
+{
+ public:
+ enum E_Style
+ {
+ eStd,
+ eSelf,
+ eNo
+ };
+ HF_NaviMainRow(
+ Xml::Element & o_out );
+ ~HF_NaviMainRow();
+
+ void Add_StdItem(
+ const char * i_sText,
+ const char * i_sLink );
+ void Add_SelfItem(
+ const char * i_sText );
+ void Add_NoneItem(
+ const char * i_sText );
+
+ void Produce_Row();
+
+ private:
+ // DATA
+ typedef std::vector< DYN HF_MainItem* > ItemList;
+
+ ItemList aItems;
+ Xml::Element * pRow;
+};
+
+
+
+// IMPLEMENTATION
+
+
+
+
+#endif
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/source/display/inc/toolkit/hf_navi_sub.hxx b/autodoc/source/display/inc/toolkit/hf_navi_sub.hxx
new file mode 100644
index 000000000000..24980ed666d8
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/hf_navi_sub.hxx
@@ -0,0 +1,83 @@
+/* -*- 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 ADC_DISPLAY_HF_NAVI_SUB_HXX
+#define ADC_DISPLAY_HFI_NAVI_SUB_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include "htmlfactory.hxx"
+ // PARAMETERS
+
+
+class HF_NaviSubRow : public HtmlMaker
+{
+ public:
+ HF_NaviSubRow(
+ Xml::Element & o_rOut );
+ virtual ~HF_NaviSubRow();
+
+ void AddItem(
+ const String & i_sText,
+ const String & i_sLink,
+ bool i_bSwitchOn );
+ void SwitchOn(
+ int i_nIndex );
+ void Produce_Row();
+
+ private:
+ typedef std::pair<String,String> SubRow_Data;
+ typedef std::pair<SubRow_Data,bool> SubRow_Item;
+ typedef std::vector<SubRow_Item> SubRow;
+
+ /** Puts the row's table into the parent XML-element, but
+ doesn't write the items, because the actvity-status of
+ the subitems isn't known yet.
+ */
+ void Setup_Row();
+
+ // DATA
+ SubRow aRow;
+ Xml::Element * pMyRow;
+};
+
+
+
+
+// IMPLEMENTATION
+
+
+
+
+#endif
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/source/display/inc/toolkit/hf_title.hxx b/autodoc/source/display/inc/toolkit/hf_title.hxx
new file mode 100644
index 000000000000..d0045182ac85
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/hf_title.hxx
@@ -0,0 +1,94 @@
+/* -*- 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 ADC_DISPLAY_HF_TITLE_HXX
+#define ADC_DISPLAY_HF_TITLE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <toolkit/htmlfactory.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+class HF_TitleTable : public HtmlMaker
+{
+ public:
+ HF_TitleTable(
+ Xml::Element & o_rOut );
+ virtual ~HF_TitleTable();
+
+ void Produce_Title(
+ const char * i_title );
+ void Produce_Title(
+ const char * i_annotations,
+// const char * i_label,
+ const char * i_title );
+
+ /// @return a Html::TableCell reference.
+ Xml::Element & Add_Row();
+};
+
+
+class HF_SubTitleTable : public HtmlMaker
+{
+ public:
+ enum E_SubLevel
+ {
+ sublevel_1, /// Big title.
+ sublevel_2, /// Small title.
+ sublevel_3 /// No title.
+ };
+
+ /** @param i_nColumns [1 .. n]
+ @param i_nSubTitleLevel [1 .. 2]
+ 1 is a bit bigger than 2.
+ */
+
+ HF_SubTitleTable(
+ Xml::Element & o_rOut,
+ const String & i_label,
+ const String & i_title,
+ int i_nColumns,
+ E_SubLevel i_eSubTitleLevel = sublevel_1 );
+ virtual ~HF_SubTitleTable();
+
+ /// @return an Html::TableRow reference.
+ Xml::Element & Add_Row();
+};
+
+
+// IMPLEMENTATION
+
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/source/display/inc/toolkit/htmlfactory.hxx b/autodoc/source/display/inc/toolkit/htmlfactory.hxx
new file mode 100644
index 000000000000..4be72412832e
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/htmlfactory.hxx
@@ -0,0 +1,104 @@
+/* -*- 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 ADC_DISPLAY_HTMLFACTORY_HXX
+#define ADC_DISPLAY_HTMLFACTORY_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include "outputstack.hxx"
+ // PARAMETERS
+#include <udm/xml/xmlitem.hxx>
+#include <udm/html/htmlitem.hxx>
+
+namespace Xml = ::csi::xml;
+namespace Html = ::csi::html;
+
+/** @resp
+ Base class for HTML page creators (factories) for code entites or
+ similar items.
+*/
+template <class ENV>
+class HtmlFactory
+{
+ public:
+ // INQUIRY
+ ENV & Env() const { return *pEnv; }
+ Xml::Element & CurOut() const { return aDestination.Out(); }
+
+ // ACCESS
+ OutputStack & Out() const { return aDestination; }
+
+ protected:
+ HtmlFactory(
+ ENV & io_rEnv,
+ Xml::Element * o_pOut = 0 )
+ : pEnv(&io_rEnv) { if (o_pOut != 0) aDestination.Enter(*o_pOut); }
+ ~HtmlFactory() {}
+ private:
+ // DATA
+ ENV * pEnv;
+ mutable OutputStack aDestination;
+};
+
+
+/** @resp
+ Base class for HTML paragraph creators, which are to be put into
+ a parent HTML element.
+*/
+class HtmlMaker
+{
+ public:
+
+ // INQUIRY
+ Xml::Element & CurOut() const { return *pOut; }
+
+ protected:
+ HtmlMaker(
+ Xml::Element & o_rOut )
+ : pOut(&o_rOut) {}
+ private:
+ // DATA
+ Xml::Element * pOut;
+};
+
+
+
+
+// IMPLEMENTATION
+
+
+
+
+#endif
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/source/display/inc/toolkit/htmlfile.hxx b/autodoc/source/display/inc/toolkit/htmlfile.hxx
new file mode 100644
index 000000000000..ae4f773e6680
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/htmlfile.hxx
@@ -0,0 +1,88 @@
+/* -*- 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 ADC_DISPLAY_HTMLFILE_HXX
+#define ADC_DISPLAY_HTMLFILE_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include <udm/html/htmlitem.hxx>
+ // PARAMETERS
+#include <cosv/ploc.hxx>
+
+namespace csv
+{
+ class File;
+}
+
+/** Represents an HTML output file.
+*/
+class DocuFile_Html
+{
+ public:
+ // LIFECYCLE
+ DocuFile_Html();
+
+ void SetLocation(
+ const csv::ploc::Path &
+ i_rFilePath );
+ void SetTitle(
+ const char * i_sTitle );
+ void SetRelativeCssPath(
+ const char * i_sCssFile_relativePath );
+ void SetCopyright(
+ const char * i_sCopyright );
+ void EmptyBody();
+
+ Html::Body & Body() { return aBodyData; }
+ bool CreateFile();
+
+ private:
+ void WriteHeader(
+ csv::File & io_aFile );
+ void WriteBody(
+ csv::File & io_aFile );
+ // DATA
+ String sFilePath;
+ String sTitle;
+ String sLocation;
+ String sStyle;
+ String sCssFile;
+ String sCopyright;
+
+ Html::Body aBodyData;
+ StreamStr aBuffer;
+};
+
+
+
+#endif
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/source/display/inc/toolkit/out_node.hxx b/autodoc/source/display/inc/toolkit/out_node.hxx
new file mode 100644
index 000000000000..1c837ec6b50f
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/out_node.hxx
@@ -0,0 +1,132 @@
+/* -*- 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 ADC_DISPLAY_OUT_NODE_HXX
+#define ADC_DISPLAY_OUT_NODE_HXX
+
+
+
+
+namespace output
+{
+
+
+/** @resp
+ Represents a tree of names where each node can have only one parent,
+ but a list of children.
+
+ @see Position
+ @see Tree
+*/
+class Node
+{
+ public:
+ typedef std::vector< Node* > List;
+ typedef UINT32 relative_id;
+
+ // LIFECYCLE
+ enum E_NullObject { null_object };
+
+ Node();
+ explicit Node(
+ E_NullObject );
+ ~Node();
+
+ // OPERATORS
+ bool operator==(
+ const Node & i_node ) const
+ { return pParent == i_node.pParent AND sName == i_node.sName; }
+ bool operator!=(
+ const Node & i_node ) const
+ { return NOT operator==(i_node); }
+
+ // OPERATIONS
+ /// Seek, and if not existent, create.
+ Node & Provide_Child(
+ const String & i_name );
+ /// Seek, and if not existent, create.
+ Node & Provide_Child(
+ const StringVector &
+ i_path )
+ { return provide_Child(i_path.begin(), i_path.end()); }
+ // INQUIRY
+ intt Depth() const { return nDepth; }
+
+ const String & Name() const { return sName; }
+ /// @return Id of a namespace or class etc. this directory represents.
+ relative_id RelatedNameRoom() const { return nNameRoomId; }
+ /// @return No delimiter at start, with delimiter at end.
+ void Get_Path(
+ StreamStr & o_result,
+ intt i_maxDepth = -1 ) const;
+ void Get_Chain(
+ StringVector & o_result,
+ intt i_maxDepth = -1 ) const;
+ // ACCESS
+ void Set_RelatedNameRoom(
+ relative_id i_nNameRoomId )
+ { nNameRoomId = i_nNameRoomId; }
+ Node * Parent() { return pParent; }
+ Node * Child(
+ const String & i_name )
+ { return find_Child(i_name); }
+ List & Children() { return aChildren; }
+
+ /// @return a reference to a Node with Depth() == -1.
+ static Node & Null_();
+
+ private:
+ // Local
+ Node(
+ const String & i_name,
+ Node & i_parent );
+
+ Node * find_Child(
+ const String & i_name );
+ Node & add_Child(
+ const String & i_name );
+ Node & provide_Child(
+ StringVector::const_iterator
+ i_next,
+ StringVector::const_iterator
+ i_end );
+ // Data
+ String sName;
+ Node * pParent;
+ List aChildren;
+ intt nDepth;
+ relative_id nNameRoomId;
+};
+
+
+
+
+} // namespace output
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/source/display/inc/toolkit/out_position.hxx b/autodoc/source/display/inc/toolkit/out_position.hxx
new file mode 100644
index 000000000000..0bc236cdf871
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/out_position.hxx
@@ -0,0 +1,120 @@
+/* -*- 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 ADC_DISPLAY_OUT_POSITION_HXX
+#define ADC_DISPLAY_OUT_POSITION_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include <toolkit/out_node.hxx>
+ // PARAMETERS
+
+
+
+namespace output
+{
+
+
+
+class Position
+{
+ public:
+ // LIFECYCLE
+ Position();
+ explicit Position(
+ Node & i_directory,
+ const String & i_file = String::Null_() );
+ Position(
+ const Position & i_directory,
+ const String & i_rDifferentFile );
+ ~Position();
+
+ // OPERATIONS
+ Position & operator=(
+ Node & i_node );
+ Position & operator+=(
+ const String & i_nodeName );
+ Position & operator-=(
+ intt i_levels );
+
+ // INQUIRY
+ bool IsValid() const { return pDirectory->Depth() >= 0; }
+ const String & Name() const { return pDirectory->Name(); }
+ const String & File() const { return sFile; }
+ intt Depth() const { return pDirectory->Depth(); }
+
+ void Get_Chain(
+ StringVector & o_result ) const
+ { pDirectory->Get_Chain(o_result); }
+ String LinkToRoot(
+ const String & i_localLabel = String::Null_() ) const;
+
+ void Get_LinkTo(
+ StreamStr & o_result,
+ const Position & i_destination,
+ const String & i_localLabel = String::Null_() ) const;
+ void Get_LinkToRoot(
+ StreamStr & o_result,
+ const String & i_localLabel = String::Null_() ) const;
+
+ static char Delimiter() { return '/'; }
+
+ // ACCESS
+ Node & RelatedNode() const { return *pDirectory; }
+
+ void Set(
+ Node & i_node,
+ const String & i_file = String::Null_() );
+ void Set_File(
+ const String & i_file );
+
+ private:
+ // DATA
+ String sFile;
+ Node * pDirectory;
+};
+
+
+/// @return No delimiter at start, with delimiter at end.
+const char * get_UpLink(
+ uintt i_depth );
+
+
+// IMPLEMENTATION
+
+inline void
+Position::Set_File( const String & i_file )
+ { sFile = i_file; }
+
+} // namespace output
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/source/display/inc/toolkit/out_tree.hxx b/autodoc/source/display/inc/toolkit/out_tree.hxx
new file mode 100644
index 000000000000..d04d51b780d4
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/out_tree.hxx
@@ -0,0 +1,139 @@
+/* -*- 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 ADC_DISPLAY_OUT_TREE_HXX
+#define ADC_DISPLAY_OUT_TREE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include "out_position.hxx"
+ // PARAMETERS
+
+
+namespace output
+{
+
+inline const char *
+ModuleFileName()
+{ return "module-ix.html"; }
+inline const char *
+IndexFilesDirName()
+{ return "index-files"; }
+inline const char *
+IndexFile_A()
+{ return "index-1.html"; }
+
+
+class Tree
+{
+ public:
+ // LIFECYCLE
+ Tree();
+ ~Tree();
+
+ // OPERATIONS
+ void Set_Overview(
+ const StringVector &
+ i_path,
+ const String & i_sFileName );
+ Node & Set_NamesRoot(
+ const StringVector &
+ i_path );
+ Node & Set_IndexRoot(
+ const StringVector &
+ i_path );
+ Node & Set_ProjectsRoot(
+ const StringVector &
+ i_path );
+ Node & Provide_Node(
+ const StringVector &
+ i_path );
+
+ // ACCESS
+ Node & RootNode() { return *pRoot; }
+ Node & NamesRootNode() { return *pNamesRoot; }
+ Node & IndexRootNode() { return *pIndexRoot; }
+ Node & ProjectsRootNode() { return *pProjectsRoot; }
+
+ Position Root() { return Position(*pRoot); }
+ Position Overview() { return aOverview; }
+ Position NamesRoot() { return Position(*pNamesRoot); }
+ Position IndexRoot() { return Position(*pIndexRoot); }
+ Position ProjectsRoot() { return Position(*pProjectsRoot); }
+
+ private:
+ // forbidden:
+ Tree(const Tree&);
+ Tree & operator=(const Tree&);
+
+ // DATA
+ Dyn<Node> pRoot;
+ Node * pNamesRoot;
+ Node * pIndexRoot;
+ Node * pProjectsRoot;
+ Position aOverview;
+};
+
+
+// IMPLEMENTATION
+
+inline Node &
+Tree::Provide_Node( const StringVector & i_path )
+ { return pRoot->Provide_Child(i_path); }
+
+
+inline void
+Tree::Set_Overview( const StringVector & i_path,
+ const String & i_sFileName )
+ { aOverview.Set(Provide_Node(i_path), i_sFileName); }
+
+inline Node &
+Tree::Set_NamesRoot( const StringVector & i_path )
+ { pNamesRoot = &Provide_Node(i_path);
+ return *pNamesRoot; }
+
+inline Node &
+Tree::Set_IndexRoot( const StringVector & i_path )
+ { pIndexRoot = &Provide_Node(i_path);
+ return *pIndexRoot; }
+
+inline Node &
+Tree::Set_ProjectsRoot( const StringVector & i_path )
+ { pProjectsRoot = &Provide_Node(i_path);
+ return *pProjectsRoot; }
+
+
+
+} // namespace output
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/autodoc/source/display/inc/toolkit/outputstack.hxx b/autodoc/source/display/inc/toolkit/outputstack.hxx
new file mode 100644
index 000000000000..e874516ff157
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/outputstack.hxx
@@ -0,0 +1,75 @@
+/* -*- 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 ADC_DISPLAY_OUTPUTSTACK_HXX
+#define ADC_DISPLAY_OUTPUTSTACK_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include <estack.hxx>
+ // PARAMETERS
+#include <udm/xml/xmlitem.hxx>
+
+
+class OutputStack
+{
+ public:
+ // LIFECYCLE
+ OutputStack();
+ ~OutputStack();
+
+ // OPERATIONS
+ void Enter(
+ csi::xml::Element & io_rDestination );
+ void Leave();
+
+ // ACCESS
+ csi::xml::Element & Out() const; // CurOutputNode
+
+ private:
+ EStack< csi::xml::Element * >
+ aCurDestination; // The front element is the currently used.
+ // The later ones are the parents.
+};
+
+inline csi::xml::Element &
+OutputStack::Out() const
+{
+ csv_assert( aCurDestination.size() > 0 );
+ return *aCurDestination.top();
+}
+
+// IMPLEMENTATION
+
+
+#endif
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */