summaryrefslogtreecommitdiff
path: root/autodoc/source/display
diff options
context:
space:
mode:
authorNikolai Pretzell <np@openoffice.org>2002-11-01 16:15:51 +0000
committerNikolai Pretzell <np@openoffice.org>2002-11-01 16:15:51 +0000
commit18e7b2a7dbc74cd094028e11b0910f1136cce615 (patch)
treebc1652165f7eb6af956a96cbb2e6408db0da2cbf /autodoc/source/display
parent7a9d96862db4571421d6eadb314da3c0c67ece2b (diff)
#103134#
Diffstat (limited to 'autodoc/source/display')
-rw-r--r--autodoc/source/display/html/cfrstd.cxx113
-rw-r--r--autodoc/source/display/html/hd_docu.cxx8
-rw-r--r--autodoc/source/display/html/hdimpl.cxx6
-rw-r--r--autodoc/source/display/idl/hfi_constgroup.cxx175
-rw-r--r--autodoc/source/display/idl/hfi_constgroup.hxx100
-rw-r--r--autodoc/source/display/idl/hfi_doc.cxx146
-rw-r--r--autodoc/source/display/idl/hfi_doc.hxx95
-rw-r--r--autodoc/source/display/idl/hfi_enum.cxx172
-rw-r--r--autodoc/source/display/idl/hfi_enum.hxx102
-rw-r--r--autodoc/source/display/idl/hfi_globalindex.cxx275
-rw-r--r--autodoc/source/display/idl/hfi_globalindex.hxx94
-rw-r--r--autodoc/source/display/idl/hfi_interface.cxx263
-rw-r--r--autodoc/source/display/idl/hfi_interface.hxx123
-rw-r--r--autodoc/source/display/idl/hfi_linklist.cxx409
-rw-r--r--autodoc/source/display/idl/hfi_linklist.hxx179
-rw-r--r--autodoc/source/display/idl/hfi_method.cxx253
-rw-r--r--autodoc/source/display/idl/hfi_method.hxx129
-rw-r--r--autodoc/source/display/idl/hfi_module.cxx331
-rw-r--r--autodoc/source/display/idl/hfi_module.hxx117
-rw-r--r--autodoc/source/display/idl/hfi_navibar.cxx239
-rw-r--r--autodoc/source/display/idl/hfi_navibar.hxx115
-rw-r--r--autodoc/source/display/idl/hfi_property.cxx269
-rw-r--r--autodoc/source/display/idl/hfi_property.hxx163
-rw-r--r--autodoc/source/display/idl/hfi_service.cxx320
-rw-r--r--autodoc/source/display/idl/hfi_service.hxx121
-rw-r--r--autodoc/source/display/idl/hfi_singleton.cxx144
-rw-r--r--autodoc/source/display/idl/hfi_singleton.hxx101
-rw-r--r--autodoc/source/display/idl/hfi_struct.cxx207
-rw-r--r--autodoc/source/display/idl/hfi_struct.hxx111
-rw-r--r--autodoc/source/display/idl/hfi_tag.cxx331
-rw-r--r--autodoc/source/display/idl/hfi_tag.hxx208
-rw-r--r--autodoc/source/display/idl/hfi_typedef.cxx131
-rw-r--r--autodoc/source/display/idl/hfi_typedef.hxx99
-rw-r--r--autodoc/source/display/idl/hfi_typetext.cxx573
-rw-r--r--autodoc/source/display/idl/hfi_typetext.hxx156
-rw-r--r--autodoc/source/display/idl/hfi_xrefpage.cxx221
-rw-r--r--autodoc/source/display/idl/hfi_xrefpage.hxx117
-rw-r--r--autodoc/source/display/idl/hi_ary.cxx324
-rw-r--r--autodoc/source/display/idl/hi_ary.hxx179
-rw-r--r--autodoc/source/display/idl/hi_display.cxx208
-rw-r--r--autodoc/source/display/idl/hi_env.cxx182
-rw-r--r--autodoc/source/display/idl/hi_env.hxx179
-rw-r--r--autodoc/source/display/idl/hi_factory.cxx299
-rw-r--r--autodoc/source/display/idl/hi_factory.hxx166
-rw-r--r--autodoc/source/display/idl/hi_linkhelper.cxx144
-rw-r--r--autodoc/source/display/idl/hi_linkhelper.hxx158
-rw-r--r--autodoc/source/display/idl/hi_main.cxx634
-rw-r--r--autodoc/source/display/idl/hi_main.hxx178
-rw-r--r--autodoc/source/display/idl/makefile.mk110
-rw-r--r--autodoc/source/display/inc/cfrstd.hxx96
-rw-r--r--autodoc/source/display/inc/idl/hi_display.hxx144
-rw-r--r--autodoc/source/display/inc/toolkit/hf_docentry.hxx93
-rw-r--r--autodoc/source/display/inc/toolkit/hf_funcdecl.hxx109
-rw-r--r--autodoc/source/display/inc/toolkit/hf_linachain.hxx104
-rw-r--r--autodoc/source/display/inc/toolkit/hf_navi_main.hxx126
-rw-r--r--autodoc/source/display/inc/toolkit/hf_navi_sub.hxx115
-rw-r--r--autodoc/source/display/inc/toolkit/hf_title.hxx108
-rw-r--r--autodoc/source/display/inc/toolkit/htmlfactory.hxx135
-rw-r--r--autodoc/source/display/inc/toolkit/htmlfile.hxx119
-rw-r--r--autodoc/source/display/inc/toolkit/out_node.hxx162
-rw-r--r--autodoc/source/display/inc/toolkit/out_position.hxx154
-rw-r--r--autodoc/source/display/inc/toolkit/out_tree.hxx170
-rw-r--r--autodoc/source/display/inc/toolkit/outputstack.hxx107
-rw-r--r--autodoc/source/display/kernel/displfct.cxx10
-rw-r--r--autodoc/source/display/toolkit/hf_docentry.cxx99
-rw-r--r--autodoc/source/display/toolkit/hf_funcdecl.cxx116
-rw-r--r--autodoc/source/display/toolkit/hf_linachain.cxx145
-rw-r--r--autodoc/source/display/toolkit/hf_navi_main.cxx273
-rw-r--r--autodoc/source/display/toolkit/hf_navi_sub.cxx136
-rw-r--r--autodoc/source/display/toolkit/hf_title.cxx155
-rw-r--r--autodoc/source/display/toolkit/htmlfile.cxx194
-rw-r--r--autodoc/source/display/toolkit/makefile.mk99
-rw-r--r--autodoc/source/display/toolkit/out_node.cxx265
-rw-r--r--autodoc/source/display/toolkit/out_position.cxx260
-rw-r--r--autodoc/source/display/toolkit/out_tree.cxx88
-rw-r--r--autodoc/source/display/toolkit/outputstack.cxx93
76 files changed, 13136 insertions, 16 deletions
diff --git a/autodoc/source/display/html/cfrstd.cxx b/autodoc/source/display/html/cfrstd.cxx
index 2b41edc625b3..d4d726e99531 100644
--- a/autodoc/source/display/html/cfrstd.cxx
+++ b/autodoc/source/display/html/cfrstd.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: cfrstd.cxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: np $ $Date: 2002-05-14 09:02:11 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:21 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -61,12 +61,111 @@
#include <precomp.h>
-#include <html/cfrstd.hxx>
+#include <cfrstd.hxx>
// NOT FULLY DEFINED SERVICES
+/* CSS Styles
+ ----------
+
+
+Colors:
+- light background color #eeeeff
+- dark background color #ccccff
+- self in navibar background color #2222ad
+
+
+Fonts:
+- page title 20, bold, Arial
+- navibar main 12, bold, Arial
+- navibar sub 8, Arial, kapitlchen
+- attrtable title line 8, bold, Arial, kapitlchen
+- attrtable value line 8, Arial kapitlchen
+
+- namespace chain 13, bold
+- table title 13, bold
+- template line 13
+
+- member paragraph title 12, bold
+
+- docu paragraph title 11, bold
+- standard text 11
+
+- hierarchy 11, monospace
+
+
+classes:
+
+ td.title page title
+ h3 table title
+ h4 member paragraph title
+
+ td.nmain navigation main bar
+ td.nsub navigation sub bar
+ a.nmain links in navigation main bar
+ a.nsub links in navigation sub bar
+
+ td.attr1 attribute table head line
+ td.attr2 attribute table value line
+
+ p.namechain namespace chain in head of pages
+ p.tpl template line in head of pages
+
+ pre.doc preformatted docu
+ pre.hierarchy class bases hierarchy graphic
+
+ dl.syntax function- or variable-declaration field
+ a.syntax link in function- or variable-declaration field
+
+ p.dt docu paragraph title
+ dl.dt docu paragraph title
+
+ p standard text
+ dl standard text
+ dd standard text
+*/
+
+
+#define CRLF "\n"
+
+namespace
+{
+const char * const C_sStdStyle =
+ "h3 { font-size:13pt; font-weight:bold; margin-top:3pt; margin-bottom:1pt; }"CRLF
+ "p, dt, dd, pre { font-size:11pt; margin-top:3pt; margin-bottom:1pt; }"CRLF
+
+ "table.lightbg { background-color:#eeeeff; }"CRLF
+ "table.subtitle { margin-top:6pt; margin-bottom:6pt; }"CRLF
+
+ "td { font-size:11pt; }"CRLF
+ "td.title { font-family: Arial; font-size:19pt; font-weight:bold; text-align:center; background-color:#ccccff; line-height:30pt; }"CRLF
+ "td.subtitle { font-family: Arial; font-size:13pt; background-color:#ccccff; line-height:20pt; }"CRLF
+ "td.imdetail { width:100%; background-color:#eeeeff; }"CRLF
+ "a.membertitle { font-size:12pt; font-weight:bold; line-height:18pt; }"CRLF
+
+ "td.imsum_left { width:30%; }"CRLF
+ "td.imsum_right { width:70%; }"CRLF
+
+ "td.navimain, a.navimain { text-align:center; font-family: Arial; font-size:12pt; font-weight:bold; }"CRLF
+ "td.navimainself { text-align:center; font-family: Arial; font-size:12pt; font-weight:bold; color:#ffffff; background-color:#2222ad; }"CRLF
+ "td.navimainnone { text-align:center; font-family: Arial; font-size:12pt; }"CRLF
+ "td.attrtitle { font-weight:bold; background-color:#eeeeff; }"CRLF
+ "td.navisub, a.navisub, td.attrtitle, td.attrvalue { text-align:center; font-family: Arial; font-size:9pt; font-variant:small-caps; }"CRLF
+ "td.navimain, td.navisub { padding-left:7pt; padding-right:7pt; }"CRLF
+
+ "p.raise { font-size:11pt; margin-top:0pt; text-align:right; padding-right:5pt; }"CRLF
+
+ "a.navimain, a.navisub { color:#000000; }"CRLF
+ ".dt { font-weight:bold; }"CRLF
+ ".namechain { font-size:13pt; font-weight:bold; margin-top:3pt; margin-bottom:6pt; }"CRLF
+ ".tpl { font-size:13pt; margin-top:3pt; margin-bottom:6pt; }"CRLF
+ ;
+} // anonymous namespace
+
+
+
DYN Html_Image *
StdFrame::LogoSrc() const
@@ -93,8 +192,14 @@ StdFrame::LogoLink() const
const char *
StdFrame::CopyrightText() const
{
- return "Copyright 2002 Sun Microsystems, Inc., 901 San Antonio Road, Palo Alto, CA 94303 USA.";
+ return "Copyright &copy; 2002 Sun Microsystems, Inc., 901 San Antonio Road, Palo Alto, CA 94303 USA.";
// return "Copyright 2001 OpenOffice.org Foundation. All Rights Reserved.";
}
+const char *
+StdFrame::CssStyle() const
+{
+ return C_sStdStyle;
+}
+
diff --git a/autodoc/source/display/html/hd_docu.cxx b/autodoc/source/display/html/hd_docu.cxx
index 1dcc602ac777..7f9700949426 100644
--- a/autodoc/source/display/html/hd_docu.cxx
+++ b/autodoc/source/display/html/hd_docu.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: hd_docu.cxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: np $ $Date: 2002-03-08 14:45:23 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:22 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -459,8 +459,8 @@ Docu_Display::Write_QualifiedName( const ary::QualifiedName & i_sQuName )
{
if ( i_sQuName.IsAbsolute() )
CurOut() << "::";
- for ( ary::QualifiedName::namespace_iterator it = i_sQuName.begin();
- it != i_sQuName.end();
+ for ( ary::QualifiedName::namespace_iterator it = i_sQuName.first_namespace();
+ it != i_sQuName.end_namespace();
++it )
{
CurOut() << (*it) << "::";
diff --git a/autodoc/source/display/html/hdimpl.cxx b/autodoc/source/display/html/hdimpl.cxx
index dee9d525af98..a3a5c8887e0f 100644
--- a/autodoc/source/display/html/hdimpl.cxx
+++ b/autodoc/source/display/html/hdimpl.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: hdimpl.cxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: np $ $Date: 2002-05-14 09:02:12 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:22 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -68,7 +68,7 @@
#include <stdlib.h>
#include <stdio.h>
#include <ary/ceslot.hxx>
-#include <ary/quname.hxx>
+#include <ary/qualiname.hxx>
#include <ary/cpp/c_class.hxx>
#include <ary/cpp/c_disply.hxx>
#include <ary/cpp/c_enum.hxx>
diff --git a/autodoc/source/display/idl/hfi_constgroup.cxx b/autodoc/source/display/idl/hfi_constgroup.cxx
new file mode 100644
index 000000000000..29f152e606f3
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_constgroup.cxx
@@ -0,0 +1,175 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_constgroup.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:24 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "hfi_constgroup.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/ik_constgroup.hxx>
+#include <toolkit/hf_linachain.hxx>
+#include <toolkit/hf_navi_sub.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_navibar.hxx"
+#include "hfi_property.hxx"
+#include "hi_linkhelper.hxx"
+
+
+extern const String
+ C_sCePrefix_Constants("constants group");
+
+
+namespace
+{
+
+const String
+ C_sList_Constants("Constants");
+const String
+ C_sList_Constants_Label("Constants");
+const String
+ C_sList_ConstantDetails("Constants' Details");
+const String
+ C_sList_ConstantDetails_Label("ConstantDetails");
+
+enum E_SubListIndices
+{
+ sli_ConstantsSummary = 0,
+ sli_ConstantDetails = 1
+};
+
+
+} // anonymous namespace
+
+
+
+HF_IdlConstGroup::HF_IdlConstGroup( Environment & io_rEnv,
+ Xml::Element & o_rOut )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut)
+{
+}
+
+HF_IdlConstGroup::~HF_IdlConstGroup()
+{
+}
+
+void
+HF_IdlConstGroup::Produce_byData( const client & i_ce ) const
+{
+ Dyn<HF_NaviSubRow>
+ pNaviSubRow( &make_Navibar(i_ce) );
+
+ HF_TitleTable
+ aTitle(CurOut());
+ HF_LinkedNameChain
+ aNameChain(aTitle.Add_Row());
+
+ aNameChain.Produce_CompleteChain(Env().CurPosition(), nameChainLinker);
+ aTitle.Produce_Title( StreamLock(200)()
+ << C_sCePrefix_Constants
+ << " "
+ << i_ce.LocalName()
+ << c_str );
+ write_Docu(aTitle.Add_Row(), i_ce);
+ CurOut() << new Html::HorizontalLine();
+
+ dyn_ce_list
+ dpConstants;
+ ary::idl::ifc_constgroup::attr::Get_Constants(dpConstants, i_ce);
+ if (*dpConstants)
+ {
+ produce_Members( *dpConstants,
+ C_sList_Constants,
+ C_sList_Constants_Label,
+ C_sList_ConstantDetails,
+ C_sList_ConstantDetails_Label );
+ pNaviSubRow->SwitchOn(sli_ConstantsSummary);
+ pNaviSubRow->SwitchOn(sli_ConstantDetails);
+ }
+ pNaviSubRow->Produce_Row();
+}
+
+HF_NaviSubRow &
+HF_IdlConstGroup::make_Navibar( const client & i_ce ) const
+{
+ HF_IdlNavigationBar
+ aNaviBar(Env(), CurOut());
+ aNaviBar.Produce_CeMainRow(i_ce);
+
+ DYN HF_NaviSubRow &
+ ret = aNaviBar.Add_SubRow();
+ ret.AddItem(C_sList_Constants, C_sList_Constants_Label, false);
+ ret.AddItem(C_sList_ConstantDetails, C_sList_ConstantDetails_Label, false);
+
+ CurOut() << new Html::HorizontalLine();
+ return ret;
+}
+
+void
+HF_IdlConstGroup::produce_MemberDetails( HF_SubTitleTable & o_table,
+ const client & i_ce ) const
+{
+ HF_IdlConstant
+ aElement( Env(), o_table );
+ aElement.Produce_byData(i_ce);
+}
+
diff --git a/autodoc/source/display/idl/hfi_constgroup.hxx b/autodoc/source/display/idl/hfi_constgroup.hxx
new file mode 100644
index 000000000000..eb3f59a9e05d
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_constgroup.hxx
@@ -0,0 +1,100 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_constgroup.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:25 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_CONSTGROUP_HXX
+#define ADC_DISPLAY_HFI_CONSTGROUP_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+class HF_IdlConstGroup : public HtmlFactory_Idl
+{
+ public:
+ HF_IdlConstGroup(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut );
+ virtual ~HF_IdlConstGroup();
+
+ void Produce_byData(
+ const client & ce ) const;
+ private:
+ HF_NaviSubRow & make_Navibar(
+ const client & ce ) const;
+ virtual void produce_MemberDetails(
+ HF_SubTitleTable & o_table,
+ const client & ce ) const;
+};
+
+
+
+// IMPLEMENTATION
+
+
+extern const String
+ C_sCePrefix_Constants;
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hfi_doc.cxx b/autodoc/source/display/idl/hfi_doc.cxx
new file mode 100644
index 000000000000..7c2488b9b7bf
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_doc.cxx
@@ -0,0 +1,146 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_doc.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:25 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "hfi_doc.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary_i/codeinf2.hxx>
+#include <toolkit/hf_docentry.hxx>
+#include "hfi_tag.hxx"
+
+
+
+
+HF_IdlDocu::HF_IdlDocu( Environment & io_rEnv,
+ HF_DocEntryList & o_rOut )
+ : HtmlFactory_Idl( io_rEnv, &o_rOut.CurOut() ),
+ rOut(o_rOut)
+{
+}
+
+HF_IdlDocu::~HF_IdlDocu()
+{
+}
+
+void
+HF_IdlDocu::Produce_byData( const client & i_ce,
+ const ce_info * i_doc ) const
+{
+ const ce_info * i_pDocu = i_doc != 0
+ ? i_doc
+ : i_ce.Docu();
+ if (i_pDocu == 0)
+ return;
+
+ Xml::Element *
+ pDescrDefinition = 0;
+ bool bShort = NOT i_pDocu->Short().IsEmpty();
+ bool bDescr = NOT i_pDocu->Description().IsEmpty();
+
+ if ( i_pDocu->IsDeprecated() )
+ {
+ rOut.Produce_Term("[ DEPRECATED ]");
+ }
+ if ( i_pDocu->IsOptional() )
+ {
+ rOut.Produce_Term("[ OPTIONAL ]");
+ }
+
+ if ( bShort OR bDescr )
+ {
+ rOut.Produce_Term("Description");
+ HF_IdlDocuTextDisplay
+ aDescription( Env(), 0, i_ce);
+ if (bShort)
+ {
+ aDescription.Out().Enter( rOut.Produce_Definition() );
+ i_pDocu->Short().DisplayAt( aDescription );
+ aDescription.Out().Leave();
+ }
+ if (bDescr)
+ {
+ aDescription.Out().Enter( rOut.Produce_Definition() );
+ i_pDocu->Description().DisplayAt( aDescription );
+ aDescription.Out().Leave();
+ }
+ }
+
+ for ( std::vector< ary::info::AtTag2* >::const_iterator
+ iter = i_pDocu->Tags().begin();
+ iter != i_pDocu->Tags().end();
+ ++iter )
+ {
+ if ( strlen( (*iter)->Title() ) > 0 )
+ {
+ HF_IdlTag
+ aTag(Env(), i_ce);
+ Xml::Element &
+ rTerm = rOut.Produce_Term();
+ aTag.Produce_byData( rTerm,
+ rOut.Produce_Definition(),
+ *(*iter) );
+ }
+ } // end for
+}
diff --git a/autodoc/source/display/idl/hfi_doc.hxx b/autodoc/source/display/idl/hfi_doc.hxx
new file mode 100644
index 000000000000..cd2bfc116cb8
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_doc.hxx
@@ -0,0 +1,95 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_doc.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:26 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_DOC_HXX
+#define ADC_DISPLAY_HFI_DOC_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+
+class HF_DocEntryList;
+
+
+class HF_IdlDocu : public HtmlFactory_Idl
+{
+ public:
+ HF_IdlDocu(
+ Environment & io_rEnv,
+ HF_DocEntryList & o_rOut );
+ virtual ~HF_IdlDocu();
+
+ void Produce_byData(
+ const client & i_ce,
+ const ce_info * i_doc = 0 ) const;
+ private:
+ HF_DocEntryList & rOut;
+};
+
+
+
+#endif
+
diff --git a/autodoc/source/display/idl/hfi_enum.cxx b/autodoc/source/display/idl/hfi_enum.cxx
new file mode 100644
index 000000000000..19861b9cf9c3
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_enum.cxx
@@ -0,0 +1,172 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_enum.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:27 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "hfi_enum.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/ik_enum.hxx>
+#include <toolkit/hf_linachain.hxx>
+#include <toolkit/hf_navi_sub.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_navibar.hxx"
+#include "hfi_property.hxx"
+#include "hi_linkhelper.hxx"
+
+
+extern const String
+ C_sCePrefix_Enum("enum");
+
+namespace
+{
+
+const String
+ C_sList_Values("Values");
+const String
+ C_sList_Values_Label("Values");
+const String
+ C_sList_ValueDetails("Values' Details");
+const String
+ C_sList_ValueDetails_Label("ValueDetails");
+
+enum E_SubListIndices
+{
+ sli_ValuesSummary = 0,
+ sli_ValueDetails = 1
+};
+
+} // anonymous namespace
+
+HF_IdlEnum::HF_IdlEnum( Environment & io_rEnv,
+ Xml::Element & o_rOut )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut)
+{
+}
+
+HF_IdlEnum::~HF_IdlEnum()
+{
+}
+
+void
+HF_IdlEnum::Produce_byData( const client & i_ce ) const
+{
+ Dyn<HF_NaviSubRow>
+ pNaviSubRow( &make_Navibar(i_ce) );
+
+ HF_TitleTable
+ aTitle(CurOut());
+
+ HF_LinkedNameChain
+ aNameChain(aTitle.Add_Row());
+
+ aNameChain.Produce_CompleteChain(Env().CurPosition(), nameChainLinker);
+ aTitle.Produce_Title( StreamLock(200)()
+ << C_sCePrefix_Enum
+ << " "
+ << i_ce.LocalName()
+ << c_str );
+
+ write_Docu(aTitle.Add_Row(), i_ce);
+ CurOut() << new Html::HorizontalLine();
+
+ dyn_ce_list
+ dpValues;
+ ary::idl::ifc_enum::attr::Get_Values(dpValues, i_ce);
+ if (*dpValues)
+ {
+ produce_Members( *dpValues,
+ C_sList_Values,
+ C_sList_Values_Label,
+ C_sList_ValueDetails,
+ C_sList_ValueDetails_Label );
+ pNaviSubRow->SwitchOn(sli_ValuesSummary);
+ pNaviSubRow->SwitchOn(sli_ValueDetails);
+ }
+ pNaviSubRow->Produce_Row();
+}
+
+HF_NaviSubRow &
+HF_IdlEnum::make_Navibar( const client & i_ce ) const
+{
+ HF_IdlNavigationBar
+ aNaviBar(Env(), CurOut());
+ aNaviBar.Produce_CeMainRow(i_ce);
+
+ DYN HF_NaviSubRow &
+ ret = aNaviBar.Add_SubRow();
+ ret.AddItem(C_sList_Values, C_sList_Values_Label, false);
+ ret.AddItem(C_sList_ValueDetails, C_sList_ValueDetails_Label, false);
+
+ CurOut() << new Html::HorizontalLine();
+ return ret;
+}
+
+void
+HF_IdlEnum::produce_MemberDetails( HF_SubTitleTable & o_table,
+ const client & i_ce) const
+{
+ HF_IdlEnumValue
+ aElement( Env(), o_table );
+ aElement.Produce_byData(i_ce);
+}
diff --git a/autodoc/source/display/idl/hfi_enum.hxx b/autodoc/source/display/idl/hfi_enum.hxx
new file mode 100644
index 000000000000..e0dc9b86aa94
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_enum.hxx
@@ -0,0 +1,102 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_enum.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:27 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_ENUM_HXX
+#define ADC_DISPLAY_HFI_ENUM_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+
+class HF_IdlEnum : public HtmlFactory_Idl
+{
+ public:
+ HF_IdlEnum(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut );
+ virtual ~HF_IdlEnum();
+
+ void Produce_byData(
+ const client & ce ) const;
+ private:
+ HF_NaviSubRow & make_Navibar(
+ const client & ce ) const;
+ virtual void produce_MemberDetails(
+ HF_SubTitleTable & o_table,
+ const client & ce ) const;
+};
+
+
+
+// IMPLEMENTATION
+
+
+extern const String
+ C_sCePrefix_Enum;
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hfi_globalindex.cxx b/autodoc/source/display/idl/hfi_globalindex.cxx
new file mode 100644
index 000000000000..b5ebd3b8687d
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_globalindex.cxx
@@ -0,0 +1,275 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_globalindex.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:28 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "hfi_globalindex.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/template/tpltools.hxx>
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/i_module.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_navibar.hxx"
+#include "hfi_typetext.hxx"
+#include "hi_linkhelper.hxx"
+
+
+
+
+namespace
+{
+
+enum E_Types
+{
+ t_service = 0,
+ t_interface = 1,
+ t_struct = 2,
+ t_exception = 3,
+ t_enum = 4,
+ t_typedef = 5,
+ t_constantsgroup = 6,
+ t_property = 7,
+ t_function = 8,
+ t_structelement = 9,
+ t_enumvalue = 10,
+ t_constant = 11,
+ t_module = 12,
+ t_singleton = 13,
+ t_attribute = 14,
+ t_MAX
+};
+
+String G_sDummy;
+uintt G_nDummy;
+
+
+/* RC-Ids for IDL types (see reposy.cxx):
+
+ Module 2000
+ Interface 2001
+ Function 2002
+ Service 2003
+ Property 2004
+
+ Enum 2005
+ EnumValue 2006
+ Typedef 2007
+ Struct 2008
+ StructElement 2009
+
+ Exception 2010
+ ConstantGroup 2011
+ Constant 2012
+ Singleton 2013
+ Attribute 2014
+*/
+const int C_nNumberOfIdlTypes = 15;
+const char * C_sTypeNames[C_nNumberOfIdlTypes] =
+ { "module ", "interface ", "function ", "service ", "property ",
+ "enum ", "value ", "typedef ", "struct ", "field ",
+ "exception ", "constants group ", "constant ","singleton ", "attribute "
+ };
+const char * C_sOwnerNames[C_nNumberOfIdlTypes] =
+ { "module ", "module ", "interface ", "module ", "service ",
+ "module ", "enum ", "module ", "module ", "", // could be struct or exception
+ "module ", "module ", "constants group ", "module ", "interface "
+ };
+
+const char C_cAlphabet[] =
+"<a class=\"inverse\" href=\"index-1.html\"><B>A</B></a> <a class=\"inverse\" href=\"index-2.html\"><B>B</B></a> <a class=\"inverse\" href=\"index-3.html\"><B>C</B></a> <a class=\"inverse\" href=\"index-4.html\"><B>D</B></a> <a class=\"inverse\" href=\"index-5.html\"><B>E</B></a> "
+"<a class=\"inverse\" href=\"index-6.html\"><B>F</B></a> <a class=\"inverse\" href=\"index-7.html\"><B>G</B></a> <a class=\"inverse\" href=\"index-8.html\"><B>H</B></a> <a class=\"inverse\" href=\"index-9.html\"><B>I</B></a> <a class=\"inverse\" href=\"index-10.html\"><B>J</B></a> "
+"<a class=\"inverse\" href=\"index-11.html\"><B>K</B></a> <a class=\"inverse\" href=\"index-12.html\"><B>L</B></a> <a class=\"inverse\" href=\"index-13.html\"><B>M</B></a> <a class=\"inverse\" href=\"index-14.html\"><B>N</B></a> <a class=\"inverse\" href=\"index-15.html\"><B>O</B></a> "
+"<a class=\"inverse\" href=\"index-16.html\"><B>P</B></a> <a class=\"inverse\" href=\"index-17.html\"><B>Q</B></a> <a class=\"inverse\" href=\"index-18.html\"><B>R</B></a> <a class=\"inverse\" href=\"index-19.html\"><B>S</B></a> <a class=\"inverse\" href=\"index-20.html\"><B>T</B></a> "
+"<a class=\"inverse\" href=\"index-21.html\"><B>U</B></a> <a class=\"inverse\" href=\"index-22.html\"><B>V</B></a> <a class=\"inverse\" href=\"index-23.html\"><B>W</B></a> <a class=\"inverse\" href=\"index-24.html\"><B>X</B></a> <a class=\"inverse\" href=\"index-25.html\"><B>Y</B></a> "
+"<a class=\"inverse\" href=\"index-26.html\"><B>Z</B></a>";
+
+typedef std::vector<ary::idl::Ce_id> PageData;
+
+PageData G_PageData;
+
+} // end anonymous namespace
+
+
+HF_IdlGlobalIndex::HF_IdlGlobalIndex( Environment & io_rEnv,
+ Xml::Element & o_rOut )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut)
+{
+}
+
+HF_IdlGlobalIndex::~HF_IdlGlobalIndex()
+{
+}
+
+void
+HF_IdlGlobalIndex::Produce_Page(ary::idl::alphabetical_index::E_Letter i_letter) const
+{
+ make_Navibar();
+
+ HF_TitleTable
+ aTitle(CurOut());
+ aTitle.Produce_Title( StreamLock(100)()
+ << "Global Index "
+ << ( i_letter != ary::idl::alphabetical_index::non_alpha
+ ? char(int(i_letter)-'a'+'A')
+ : '_' )
+ << c_str );
+
+ // Letters Index
+ aTitle.Add_Row()
+ << new Xml::XmlCode(
+ "<p align=\"center\"><a href=\"index-1.html\"><b>A</b></a> <a href=\"index-2.html\"><b>B</b></a> <a href=\"index-3.html\"><b>C</b></a> <a href=\"index-4.html\"><b>D</b></a> <a href=\"index-5.html\"><b>E</b></a> <a href=\"index-6.html\"><b>F</b></a> <a href=\"index-7.html\"><b>G</b></a> <a href=\"index-8.html\"><b>H</b></a> <a href=\"index-9.html\"><b>I</b></a> <a href=\"index-10.html\"><b>J</b></a>"
+ " <a href=\"index-11.html\"><b>K</b></a> <a href=\"index-12.html\"><b>L</b></a> <a href=\"index-13.html\"><b>M</b></a> <a href=\"index-14.html\"><b>N</b></a> <a href=\"index-15.html\"><b>O</b></a> <a href=\"index-16.html\"><b>P</b></a> <a href=\"index-17.html\"><b>Q</b></a> <a href=\"index-18.html\"><b>R</b></a> <a href=\"index-19.html\"><b>S</b></a> <a href=\"index-20.html\"><b>T</b></a>"
+ " <a href=\"index-21.html\"><b>U</b></a> <a href=\"index-22.html\"><b>V</b></a> <a href=\"index-23.html\"><b>W</b></a> <a href=\"index-24.html\"><b>X</b></a> <a href=\"index-25.html\"><b>Y</b></a> <a href=\"index-26.html\"><b>Z</b></a> <a href=\"index-27.html\"><b>_</b></a></p>" );
+
+ Out().Enter(CurOut() >> *new Html::DefList);
+
+ csv::erase_container(G_PageData);
+ Env().Data().Get_IndexData(G_PageData, i_letter);
+
+ static StringVector aModule_;
+ csv::erase_container(aModule_);
+ String sCeMain;
+ String sCeMember;
+
+ const intt nDiff = intt(ary::idl::Module::class_id);
+ const int nIxModule = 0;
+ const int nIxField = 9;
+
+ HF_IdlTypeText aLinker(Env(),HF_IdlTypeText::use_for_javacompatible_index);
+
+ PageData::const_iterator itEnd = G_PageData.end();
+ for ( PageData::const_iterator iter = G_PageData.begin();
+ iter != itEnd;
+ ++iter )
+ {
+ const client & rCe = Env().Data().Find_Ce(*iter);
+ if (NOT rCe.Owner().IsValid())
+ return; // Omit global namespace.
+ const client & rOwner = Env().Data().Find_Ce(rCe.Owner());
+
+ Xml::Element & rDT = CurOut() >> *new Html::DefListTerm;
+ aLinker.Produce_IndexLink(rDT, rCe);
+
+ rDT << " - ";
+
+ int nIx = int(rCe.ClassId()-nDiff);
+ csv_assert(csv::in_range(0,nIx,15));
+ rDT << C_sTypeNames[nIx]
+ << "in ";
+ if (nIx != nIxField)
+ {
+ rDT << C_sOwnerNames[nIx];
+ }
+ else
+ {
+ uintt nOwnerIx = rOwner.ClassId()-nDiff;
+ rDT << C_sTypeNames[nOwnerIx];
+ }
+ aLinker.Produce_IndexOwnerLink(rDT, rOwner);
+ CurOut() << new Html::DefListDefinition;
+ } // end for
+
+ Out().Leave();
+ CurOut() << new Html::HorizontalLine;
+}
+
+void
+HF_IdlGlobalIndex::make_Navibar() const
+{
+ HF_IdlNavigationBar
+ aNaviBar(Env(), CurOut());
+ aNaviBar.Produce_IndexMainRow();
+
+ CurOut() << new Html::HorizontalLine();
+}
+
+
+#if 0
+void
+HF_IdlGlobalIndex::StoreString( const String & i_sName,
+ E_Types i_eType,
+ bool i_bUseOwner )
+{
+ aText.seekp(0);
+
+ aText << char('A'+char(i_eType));
+
+ aText << i_sName
+ << C_cSplit
+ << sCurModule;
+ if (i_bUseOwner)
+ {
+ aText << "*"
+ << sCurOwner;
+ }
+
+ int nBegin = tolower(aText.c_str()[1]);
+ if (nBegin >= 'a' AND nBegin <= 'z')
+ aData[nBegin-'a'].push_back(aText.c_str());
+ else
+ aData[C_nIndexUnderscore].push_back(aText.c_str());
+}
+
+
+#endif // 0
+
diff --git a/autodoc/source/display/idl/hfi_globalindex.hxx b/autodoc/source/display/idl/hfi_globalindex.hxx
new file mode 100644
index 000000000000..21495fe8689a
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_globalindex.hxx
@@ -0,0 +1,94 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_globalindex.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:29 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_GLOBALINDEX_HXX
+#define ADC_DISPLAY_HFI_GLOBALINDEX_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/idl/ip_2s.hxx>
+
+
+
+class HF_IdlGlobalIndex : public HtmlFactory_Idl
+{
+ public:
+ HF_IdlGlobalIndex(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut );
+ virtual ~HF_IdlGlobalIndex();
+
+ void Produce_Page(
+ ary::idl::alphabetical_index::E_Letter
+ i_letter ) const;
+ private:
+ void make_Navibar() const;
+};
+
+
+
+#endif
+
diff --git a/autodoc/source/display/idl/hfi_interface.cxx b/autodoc/source/display/idl/hfi_interface.cxx
new file mode 100644
index 000000000000..90fb704093e7
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_interface.cxx
@@ -0,0 +1,263 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_interface.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:31 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "hfi_interface.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/ik_function.hxx>
+#include <ary/idl/ik_interface.hxx>
+#include <toolkit/hf_docentry.hxx>
+#include <toolkit/hf_linachain.hxx>
+#include <toolkit/hf_navi_sub.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_method.hxx"
+#include "hfi_navibar.hxx"
+#include "hfi_property.hxx"
+#include "hfi_typetext.hxx"
+#include "hi_linkhelper.hxx"
+
+
+extern const String
+ C_sCePrefix_Interface("interface");
+
+namespace
+{
+
+const String
+ C_sBaseInterface("Base Hierarchy");
+//const String
+// C_sList_ExportingServices("Known Services which Export this Interface");
+//const String
+// C_sList_ExportingServices_Link("Exporting Services");
+//const String
+// C_sList_ExportingServices_Label("ExportingServices");
+const String
+ C_sList_Methods("Methods' Summary");
+const String
+ C_sList_Methods_Label("MethodsSummary");
+const String
+ C_sDetails_Methods("Methods' Details");
+const String
+ C_sDetails_Methods_Label("MethodsDetails");
+
+const String
+ C_sList_Attributes("Attributes' Summary");
+const String
+ C_sList_Attributes_Label("AttributesSummary");
+const String
+ C_sList_AttributesDetails("Attributes' Details");
+const String
+ C_sList_AttributesDetails_Label("AttributesDetails");
+
+
+
+enum E_SubListIndices
+{
+ sli_Methods = 0,
+ sli_MethodDetails = 1,
+ sli_AttributesSummary = 2,
+ sli_AttributesDetails = 3
+};
+
+} //anonymous namespace
+
+
+
+
+HF_IdlInterface::HF_IdlInterface( Environment & io_rEnv,
+ Xml::Element & o_rOut )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut),
+ eCurProducedMembers(mem_none)
+{
+}
+
+HF_IdlInterface::~HF_IdlInterface()
+{
+}
+
+void
+HF_IdlInterface::Produce_byData( const client & i_ce ) const
+{
+ Dyn<HF_NaviSubRow>
+ pNaviSubRow( &make_Navibar(i_ce) );
+
+ HF_TitleTable
+ aTitle(CurOut());
+
+ HF_LinkedNameChain
+ aNameChain(aTitle.Add_Row());
+ aNameChain.Produce_CompleteChain(Env().CurPosition(), nameChainLinker);
+
+ aTitle.Produce_Title( StreamLock(200)() << C_sCePrefix_Interface
+ << " "
+ << i_ce.LocalName()
+ << c_str );
+ produce_Bases(aTitle.Add_Row(),i_ce,C_sBaseInterface);
+
+ write_Docu(aTitle.Add_Row(), i_ce);
+ CurOut() << new Html::HorizontalLine();
+
+ dyn_ce_list dpFunctions;
+ ary::idl::ifc_interface::attr::Get_Functions(dpFunctions, i_ce);
+
+ if ( *dpFunctions )
+ {
+ eCurProducedMembers = mem_Functions;
+
+ produce_Members( *dpFunctions,
+ C_sList_Methods,
+ C_sList_Methods_Label,
+ C_sDetails_Methods,
+ C_sDetails_Methods_Label );
+ pNaviSubRow->SwitchOn(sli_Methods);
+ pNaviSubRow->SwitchOn(sli_MethodDetails);
+ }
+
+ dyn_ce_list
+ dpAttributes;
+ ary::idl::ifc_interface::attr::Get_Attributes(dpAttributes, i_ce);
+ if (*dpAttributes)
+ {
+ eCurProducedMembers = mem_Attributes;
+
+ produce_Members( *dpAttributes,
+ C_sList_Attributes,
+ C_sList_Attributes_Label,
+ C_sList_AttributesDetails,
+ C_sList_AttributesDetails_Label );
+ pNaviSubRow->SwitchOn(sli_AttributesSummary);
+ pNaviSubRow->SwitchOn(sli_AttributesDetails);
+ }
+ eCurProducedMembers = mem_none;
+
+ pNaviSubRow->Produce_Row();
+}
+
+HtmlFactory_Idl::type_id
+HF_IdlInterface::inq_BaseOf( const client & i_ce ) const
+{
+ return ary::idl::ifc_interface::attr::Base(i_ce);
+}
+
+DYN HF_NaviSubRow &
+HF_IdlInterface::make_Navibar( const client & i_ce ) const
+{
+ HF_IdlNavigationBar
+ aNaviBar(Env(), CurOut());
+ aNaviBar.Produce_CeMainRow(i_ce);
+
+ DYN HF_NaviSubRow &
+ ret = aNaviBar.Add_SubRow();
+ ret.AddItem(C_sList_Methods, C_sList_Methods_Label, false);
+ ret.AddItem(C_sDetails_Methods, C_sDetails_Methods_Label, false);
+ ret.AddItem(C_sList_Attributes, C_sList_Attributes_Label, false);
+ ret.AddItem(C_sList_AttributesDetails, C_sList_AttributesDetails_Label, false);
+
+ CurOut() << new Html::HorizontalLine();
+ return ret;
+}
+
+void
+HF_IdlInterface::produce_MemberDetails( HF_SubTitleTable & o_table,
+ const client & i_ce ) const
+{
+ switch (eCurProducedMembers)
+ {
+ case mem_Functions:
+ break;
+ case mem_Attributes:
+ {
+ HF_IdlAttribute
+ aAttribute( Env(), o_table);
+ aAttribute.Produce_byData( i_ce );
+ return;
+ };
+ default: //Won't happen.
+ return;
+ } // end switch
+
+ typedef ary::idl::ifc_function::attr funcAttr;
+
+ HF_IdlMethod
+ aFunction( Env(),
+ o_table.Add_Row()
+ >> *new Html::TableCell
+ << new Html::ClassAttr(C_sCellStyle_MDetail) );
+
+ ary::Dyn_StdConstIterator<ary::idl::Parameter>
+ pParameters;
+ funcAttr::Get_Parameters(pParameters, i_ce);
+
+ ary::Dyn_StdConstIterator<ary::idl::Type_id>
+ pExceptions;
+ funcAttr::Get_Exceptions(pExceptions, i_ce);
+
+ aFunction.Produce_byData( i_ce.LocalName(),
+ funcAttr::ReturnType(i_ce),
+ *pParameters,
+ *pExceptions,
+ funcAttr::IsOneway(i_ce),
+ i_ce );
+}
diff --git a/autodoc/source/display/idl/hfi_interface.hxx b/autodoc/source/display/idl/hfi_interface.hxx
new file mode 100644
index 000000000000..a24cfd3967bf
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_interface.hxx
@@ -0,0 +1,123 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_interface.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:32 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_INTERFACE_HXX
+#define ADC_DISPLAY_HFI_INTERFACE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/idl/i_language.hxx>
+#include <ary_i/codeinf2.hxx>
+
+
+class HF_NaviSubRow;
+class HF_SubTitleTable;
+
+
+class HF_IdlInterface : public HtmlFactory_Idl
+{
+ public:
+ HF_IdlInterface(
+ Environment & io_rEnv, // The CurDirecory() is the one of the here displayed Module.
+ Xml::Element & o_rOut );
+ virtual ~HF_IdlInterface();
+
+ void Produce_byData(
+ const client & i_ce ) const;
+ private:
+ // Interface HtmlFactory_Idl:
+ virtual type_id inq_BaseOf(
+ const client & i_ce ) const;
+ // Locals
+ DYN HF_NaviSubRow & make_Navibar(
+ const client & i_ce ) const;
+
+ virtual void produce_MemberDetails(
+ HF_SubTitleTable & o_table,
+ const client & ce ) const;
+
+ // Locals
+ enum E_CurProducedMembers
+ {
+ mem_none,
+ mem_Functions,
+ mem_Attributes
+ };
+
+ // DATA
+ mutable E_CurProducedMembers
+ eCurProducedMembers;
+};
+
+
+
+// IMPLEMENTATION
+
+extern const String
+ C_sCePrefix_Interface;
+
+
+
+#endif
diff --git a/autodoc/source/display/idl/hfi_linklist.cxx b/autodoc/source/display/idl/hfi_linklist.cxx
new file mode 100644
index 000000000000..95401bd66ec7
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_linklist.cxx
@@ -0,0 +1,409 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_linklist.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:33 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "hfi_linklist.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/idl/ip_type.hxx>
+#include <ary_i/codeinf2.hxx>
+#include <toolkit/hf_docentry.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_doc.hxx"
+#include "hfi_tag.hxx"
+#include "hfi_typetext.hxx"
+#include "hi_ary.hxx"
+#include "hi_env.hxx"
+
+
+
+
+//******************* HF_CommentedLink_Table **********************************//
+
+HF_CommentedLink_Table::HF_CommentedLink_Table( Environment & io_rEnv,
+ Xml::Element & o_rOut,
+ const String & i_sTitle,
+ const String & i_sLabel,
+ bool i_bBorder )
+ : HtmlFactory_Idl(io_rEnv,&o_rOut),
+ pTable( new Html::Table( (i_bBorder ? "1" : "0"), "100%", "5", "0") ),
+ pCurLinkColumn(0),
+ pCurCommentColumn(0)
+{
+ CurOut()
+ >> *new Html::Label(i_sLabel)
+ << new Html::LineBreak;
+ CurOut()
+ << pTable;
+// HF_SubTitle aTitle(*pTable);
+// aTitle.Produce_it(i_sTitle);
+}
+
+HF_CommentedLink_Table::~HF_CommentedLink_Table()
+{
+}
+
+void
+HF_CommentedLink_Table::Add_Line()
+{
+ Html::TableRow &
+ rRow = pTable->AddRow();
+
+ pCurLinkColumn = & (rRow.AddCell()
+ << new Html::WidthAttr("30%")
+ << new Xml::AnAttribute("valign","top") );
+ pCurCommentColumn = & rRow.AddCell();
+
+}
+
+Xml::Element &
+HF_CommentedLink_Table::Cur_LinkColumn()
+{
+ csv_assert(pCurLinkColumn != 0);
+ return *pCurLinkColumn;
+}
+
+Xml::Element &
+HF_CommentedLink_Table::Cur_CommentColumn()
+{
+ csv_assert(pCurCommentColumn != 0);
+ return *pCurCommentColumn;
+}
+
+
+//******************* HF_MemberTable **********************************//
+
+HF_MemberTable::HF_MemberTable( Environment & io_rEnv,
+ Xml::Element & o_rOut,
+ const String & i_sTitle,
+ const String & i_sLabel,
+ bool i_bInline )
+ : HtmlFactory_Idl(io_rEnv,&o_rOut),
+ pTable( new Html::Table("1", "100%", "5", "0") ),
+ pCurDeclaration(0),
+ pCurDescription(0),
+ bInline(i_bInline)
+{
+ CurOut()
+ >> *new Html::Label(i_sLabel)
+ << new Html::LineBreak;
+ CurOut()
+ << pTable;
+// HF_SubTitle aTitle(*pTable);
+// aTitle.Produce_it(i_sTitle);
+}
+
+HF_MemberTable::~HF_MemberTable()
+{
+}
+
+void
+HF_MemberTable::Add_Line()
+{
+ if (bInline)
+ {
+ Html::TableRow & rRow = pTable->AddRow();
+
+ pCurDeclaration = &( rRow.AddCell()
+ << new Xml::AnAttribute("valign","top")
+ << new Html::WidthAttr("30%") );
+ pCurDescription = & rRow.AddCell();
+ }
+ else
+ {
+ Html::DefList *
+ pMemberSpace = new Html::DefList;
+ *pMemberSpace
+ << new Html::ClassAttr("member");
+
+ pTable->AddRow().AddCell() << pMemberSpace;
+
+ pCurDeclaration =
+ & ( *pMemberSpace
+ >> *new Html::DefListTerm
+ << new Html::ClassAttr("member") );
+ pCurDescription =
+ & ( *pMemberSpace
+ >> *new Html::DefListDefinition()
+ << new Html::ClassAttr("member") );
+ }
+}
+
+Xml::Element &
+HF_MemberTable::Cur_Declaration()
+{
+ csv_assert(pCurDeclaration != 0);
+ return *pCurDeclaration;
+}
+
+Xml::Element &
+HF_MemberTable::Cur_Description()
+{
+ csv_assert(pCurDescription != 0);
+ return *pCurDescription;
+}
+
+
+
+//******************* HF_IdlLinkList **********************************//
+
+HF_IdlLinkList::HF_IdlLinkList( Environment & io_rEnv,
+ Xml::Element * o_pOut )
+ : HtmlFactory_Idl(io_rEnv,o_pOut)
+{
+}
+
+HF_IdlLinkList::~HF_IdlLinkList()
+{
+}
+
+void
+HF_IdlLinkList::Produce_NamespaceMembers( const String & i_sTitle,
+ const String & i_sLabel,
+ const std::vector<ary::idl::Ce_id> & i_rList,
+ bool i_bNestedNamespaces ) const
+{
+ HF_CommentedLink_Table
+ aTableMaker( Env(), CurOut(),
+ i_sTitle, i_sLabel,
+ true );
+
+ std::vector<ary::idl::Ce_id>::const_iterator itEnd = i_rList.end();
+ for ( std::vector<ary::idl::Ce_id>::const_iterator it = i_rList.begin();
+ it != itEnd;
+ ++it )
+ {
+ static String sEntryName;
+ static String sEntryLink;
+ const ce_info *
+ pDocu = 0;
+ Get_EntryData_NamespaceMembers( sEntryName, sEntryLink, pDocu, *it, i_bNestedNamespaces );
+ aTableMaker.Add_Line();
+
+ aTableMaker.Cur_LinkColumn()
+ >> *new Html::Link(sEntryLink)
+ << sEntryName;
+
+ if ( pDocu != 0 )
+ {
+ HF_IdlShortDocu
+ aTextDisplay(Env(), aTableMaker.Cur_CommentColumn() );
+ aTextDisplay.Produce_byData( pDocu );
+ }
+ } // end for
+}
+
+void
+HF_IdlLinkList::Produce_GlobalLinks( const String & i_sTitle,
+ const String & i_sLabel,
+ ce_list & i_rList ) const
+{
+ HF_CommentedLink_Table
+ aTableMaker( Env(), CurOut(),
+ i_sTitle, i_sLabel,
+ true );
+
+ for ( ; i_rList; ++i_rList )
+ {
+ aTableMaker.Add_Line();
+ HF_IdlTypeText
+ aLinkText( Env(), aTableMaker.Cur_LinkColumn(), true );
+ aLinkText.Produce_byData(*i_rList);
+
+ const ce_info *
+ pDocu = Get_EntryDocu(*i_rList);
+ if ( pDocu != 0 )
+ {
+ HF_IdlShortDocu
+ aTextDisplay(Env(), aTableMaker.Cur_CommentColumn() );
+ aTextDisplay.Produce_byData( pDocu, *i_rList );
+ }
+ }
+}
+
+void
+HF_IdlLinkList::Produce_GlobalCommentedLinks( const String & i_sTitle,
+ const String & i_sLabel,
+ comref_list & i_rList ) const
+{
+ HF_CommentedLink_Table
+ aTableMaker( Env(), CurOut(),
+ i_sTitle, i_sLabel,
+ true );
+/*
+ for ( ; i_rList; ++i_rList )
+ {
+ aTableMaker.Add_Line();
+ HF_IdlTypeText
+ aLinkText( Env(), aTableMaker.Cur_LinkColumn(), true );
+ aLinkText.Produce_byData( (*i_rList).first );
+
+ HF_DocEntryList
+ aDocList( aTableMaker.Cur_CommentColumn() );
+ if ( (*i_rList).second != 0 )
+ {
+ HF_IdlDocu
+ aDocuDisplay( Env(), aDocList );
+ aDocuDisplay.Produce_byData( (*i_rList).second );
+ }
+ else
+ {
+ const ce_info *
+ pShort = Get_EntryDocu(
+ Env().Gate().Types().Search_CeRelatedTo(
+ (*i_rList).first) );
+ if ( pShort != 0 )
+ {
+ if (pShort->IsDeprecated())
+ {
+ aDocList.Produce_Term()
+ << "[ DEPRECATED ]";
+ }
+ if (pShort->IsOptional())
+ {
+ aDocList.Produce_Term()
+ << "[ OPTIONAL ]";
+ }
+
+ aDocList.Produce_Term()
+ << "Description";
+
+ HF_IdlDocuTextDisplay
+ aShortDisplay( Env(), &aDocList.Produce_Definition() );
+ aShortDisplay.Set_CurScopeTo(
+ Env().Gate().Types().Search_CeRelatedTo((*i_rList).first) );
+ pShort->Short().DisplayAt(aShortDisplay);
+ }
+ }
+ }
+*/
+}
+
+void
+HF_IdlLinkList::Produce_MemberLinks( const String & i_sTitle,
+ const String & i_sLabel,
+ ce_list & i_rList ) const
+{
+ HF_CommentedLink_Table
+ aTableMaker( Env(), CurOut(),
+ i_sTitle, i_sLabel,
+ true );
+
+/*
+ for ( ; i_rList; ++i_rList )
+ {
+ const ary::idl::CodeEntity &
+ rCe = Env().Gate().Ces().Find_Ce(*i_rList);
+
+ aTableMaker.Add_Line();
+ aTableMaker.Cur_LinkColumn()
+ >> *new Html::Link(
+ StreamLock(200)() << "#" << rCe.LocalName() << c_str)
+ << rCe.LocalName();
+
+ const ce_info *
+ pDocu = rCe.Docu();
+ if ( pDocu != 0 )
+ {
+ HF_IdlShortDocu
+ aTextDisplay(Env(), aTableMaker.Cur_CommentColumn() );
+ aTextDisplay.Produce_byData( *pDocu );
+ }
+ } // end for
+*/
+}
+
+void
+HF_IdlLinkList::Get_EntryData_NamespaceMembers(
+ String & o_sEntryName,
+ String & o_sEntryLink,
+ const ce_info * & o_pDocu,
+ ce_id i_nMemberId,
+ bool i_bIsNestedNamespace ) const
+{
+ const ary::idl::CodeEntity &
+ rCe = Env().Data().Find_Ce(i_nMemberId);
+
+ o_sEntryName = rCe.LocalName();
+ o_sEntryLink = StreamLock(200)() << rCe.LocalName()
+ << ( i_bIsNestedNamespace
+ ? "/module-ix"
+ : "" )
+ << ".html"
+ << c_str;
+ o_pDocu = rCe.Docu();
+}
+
+const ary::info::CodeInformation *
+HF_IdlLinkList::Get_EntryDocu(ce_id i_nMemberId) const
+{
+ if (i_nMemberId.IsValid())
+ return Env().Data().Find_Ce(i_nMemberId).Docu();
+ else
+ return 0;
+}
+
+
diff --git a/autodoc/source/display/idl/hfi_linklist.hxx b/autodoc/source/display/idl/hfi_linklist.hxx
new file mode 100644
index 000000000000..e06fa95171c7
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_linklist.hxx
@@ -0,0 +1,179 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_linklist.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:34 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_LINKLIST_HXX
+#define ADC_DISPLAY_HFI_LINKLIST_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/idl/i_language.hxx>
+#include <ary_i/ci_text2.hxx>
+#include <ary_i/codeinf2.hxx>
+
+
+
+
+class HF_CommentedLink_Table : public HtmlFactory_Idl
+{
+ public:
+ HF_CommentedLink_Table(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut,
+ const String & i_sTitle,
+ const String & i_sLabel,
+ bool i_bBorder = false );
+ virtual ~HF_CommentedLink_Table();
+
+ void Add_Line();
+ Xml::Element & Cur_LinkColumn();
+ Xml::Element & Cur_CommentColumn();
+
+ private:
+ // DATA
+ Html::Table * pTable;
+ Xml::Element * pCurLinkColumn;
+ Xml::Element * pCurCommentColumn;
+};
+
+class HF_MemberTable : public HtmlFactory_Idl
+{
+ public:
+ HF_MemberTable(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut,
+ const String & i_sTitle,
+ const String & i_sLabel,
+ bool i_bInline = false );
+ virtual ~HF_MemberTable();
+
+ void Add_Line();
+ Xml::Element & Cur_Declaration();
+ Xml::Element & Cur_Description();
+
+ private:
+ // DATA
+ Html::Table * pTable;
+ Xml::Element * pCurDeclaration;
+ Xml::Element * pCurDescription;
+ bool bInline;
+};
+
+
+
+
+class HF_IdlLinkList : public HtmlFactory_Idl
+{
+ public:
+ typedef ary::StdConstIterator<ary::idl::CommentedReference>
+ comref_list;
+
+ HF_IdlLinkList(
+ Environment & io_rEnv,
+ Xml::Element * o_pOut );
+ virtual ~HF_IdlLinkList();
+
+ void Produce_NamespaceMembers(
+ const String & i_sTitle,
+ const String & i_sLabel,
+ const std::vector<ary::idl::Ce_id> &
+ i_rList,
+ bool i_bNestedNamespaces = false ) const;
+ void Produce_GlobalLinks(
+ const String & i_sTitle,
+ const String & i_sLabel,
+ ce_list & i_rList ) const;
+ void Produce_GlobalCommentedLinks(
+ const String & i_sTitle,
+ const String & i_sLabel,
+ comref_list & i_rList ) const;
+ void Produce_MemberLinks(
+ const String & i_sTitle,
+ const String & i_sLabel,
+ ce_list & i_rList ) const;
+ private:
+ void Get_EntryData_NamespaceMembers(
+ String & o_sEntryName,
+ String & o_sEntryLink,
+ const ce_info * & o_pDocuText,
+ ce_id i_nMemberId,
+ bool i_bIsNestedNamespace ) const;
+ const ce_info * Get_EntryDocu(
+ ce_id i_nMemberId ) const;
+};
+
+
+
+
+
+
+
+
+// IMPLEMENTATION
+
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hfi_method.cxx b/autodoc/source/display/idl/hfi_method.cxx
new file mode 100644
index 000000000000..88c044c2af30
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_method.cxx
@@ -0,0 +1,253 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_method.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:35 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "hfi_method.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_exception.hxx>
+#include <ary/idl/i_param.hxx>
+#include <toolkit/hf_docentry.hxx>
+#include <toolkit/hf_funcdecl.hxx>
+#include "hfi_doc.hxx"
+#include "hfi_globalindex.hxx"
+#include "hfi_typetext.hxx"
+
+
+
+
+
+HF_IdlMethod::HF_IdlMethod( Environment & io_rEnv,
+ Xml::Element & o_cell)
+ : HtmlFactory_Idl(io_rEnv,&o_cell)
+{
+}
+
+
+HF_IdlMethod::~HF_IdlMethod()
+{
+}
+
+
+void
+HF_IdlMethod::Produce_byData( const String & i_sName,
+ type_id i_nReturnType,
+ param_list & i_rParams,
+ type_list & i_rExceptions,
+ bool i_bOneway,
+ const client & i_ce ) const
+{
+ CurOut()
+ >> *new Html::Label(i_sName)
+ << new Html::ClassAttr(C_sMemberTitle)
+ << i_sName;
+ enter_ContentCell();
+ write_Declaration( i_sName,
+ i_nReturnType,
+ i_rParams,
+ i_rExceptions,
+ i_bOneway );
+ CurOut() << new Html::HorizontalLine;
+ write_Docu(CurOut(), i_ce);
+ leave_ContentCell();
+}
+
+void
+HF_IdlMethod::write_Declaration( const String & i_sName,
+ type_id i_nReturnType,
+ param_list & i_rParams,
+ type_list & i_rExceptions,
+ bool i_bOneway ) const
+{
+ HF_FunctionDeclaration
+ aDecl(CurOut()) ;
+ Xml::Element &
+ front = aDecl.Add_ReturnLine();
+
+ // Front:
+ if (i_bOneway)
+ front << "[oneway] ";
+ HF_IdlTypeText
+ aReturn(Env(), front,true);
+ aReturn.Produce_byData(i_nReturnType);
+ front
+ << new Html::LineBreak
+ >> *new Html::Bold
+ << i_sName;
+
+ // Main line:
+ Xml::Element &
+ types = aDecl.Types();
+ Xml::Element &
+ names = aDecl.Names();
+ bool bParams = bool(i_rParams);
+ if (bParams)
+ {
+ front
+ << "(";
+ HF_IdlTypeText
+ aType( Env(), types, true );
+
+ write_Param( aType, names, (*i_rParams) );
+
+ for (++i_rParams; i_rParams; ++i_rParams)
+ {
+ types
+ << new Html::LineBreak;
+ names
+ << ","
+ << new Html::LineBreak;
+ write_Param( aType, names, (*i_rParams) );
+ } // end for
+
+ names
+ << " )";
+ }
+ else
+ front
+ << "()";
+
+
+ if (i_rExceptions)
+ {
+ Xml::Element &
+ rExcOut = aDecl.Add_RaisesLine("raises", NOT bParams);
+ HF_IdlTypeText
+ aExc(Env(), rExcOut, true);
+ aExc.Produce_byData(*i_rExceptions);
+
+ for (++i_rExceptions; i_rExceptions; ++i_rExceptions)
+ {
+ rExcOut
+ << ","
+ << new Html::LineBreak;
+ aExc.Produce_byData(*i_rExceptions);
+ } // end for
+
+ rExcOut << " );";
+ }
+ else
+ {
+ if (bParams)
+ aDecl.Names() << ";";
+ else
+ aDecl.Front() << ";";
+ }
+}
+
+void
+HF_IdlMethod::write_Param( HF_IdlTypeText & o_type,
+ Xml::Element & o_names,
+ const ary::idl::Parameter & i_param ) const
+{
+ switch ( i_param.Direction() )
+ {
+ case ary::idl::param_in:
+ o_type.CurOut() << "[in] ";
+ break;
+ case ary::idl::param_out:
+ o_type.CurOut() << "[out] ";
+ break;
+ case ary::idl::param_inout:
+ o_type.CurOut() << "[inout] ";
+ break;
+ } // end switch
+
+ o_type.Produce_byData( i_param.Type() );
+ o_names
+ << i_param.Name();
+}
+
+
+const String sContentBorder("0");
+const String sContentWidth("96%");
+const String sContentPadding("5");
+const String sContentSpacing("0");
+
+const String sBgWhite("#ffffff");
+const String sCenter("center");
+
+void
+HF_IdlMethod::enter_ContentCell() const
+{
+
+ Xml::Element &
+ rContentCell = CurOut()
+ >> *new Html::Table( sContentBorder,
+ sContentWidth,
+ sContentPadding,
+ sContentSpacing )
+ << new Html::BgColorAttr(sBgWhite)
+ << new Html::AlignAttr(sCenter)
+ >> *new Html::TableRow
+ >> *new Html::TableCell;
+ Out().Enter(rContentCell);
+}
+
+
+void
+HF_IdlMethod::leave_ContentCell() const
+{
+ Out().Leave();
+}
+
diff --git a/autodoc/source/display/idl/hfi_method.hxx b/autodoc/source/display/idl/hfi_method.hxx
new file mode 100644
index 000000000000..4748a6c70df4
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_method.hxx
@@ -0,0 +1,129 @@
+ /*************************************************************************
+ *
+ * $RCSfile: hfi_method.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:36 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_METHOD_HXX
+#define ADC_DISPLAY_HFI_METHOD_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/idl/i_param.hxx>
+#include <ary_i/codeinf2.hxx>
+typedef ary::info::CodeInformation CodeInfo;
+#include "hfi_linklist.hxx"
+
+
+
+namespace csi
+{
+ namespace idl
+ {
+ class Parameter;
+ }
+}
+class HF_IdlTypeText;
+
+class HF_IdlMethod : public HtmlFactory_Idl
+{
+ public:
+ typedef ary::StdConstIterator<ary::idl::Parameter> param_list;
+
+ HF_IdlMethod(
+ Environment & io_rEnv,
+ Xml::Element & o_cell );
+ virtual ~HF_IdlMethod();
+
+ void Produce_byData(
+ const String & i_sName,
+ type_id i_nReturnType,
+ param_list & i_rParams,
+ type_list & i_rExceptions,
+ bool i_bOneway,
+ const client & i_ce ) const;
+ private:
+ void write_Declaration(
+ const String & i_sName,
+ type_id i_nReturnType,
+ param_list & i_rParams,
+ type_list & i_rExceptions,
+ bool i_bOneway ) const;
+ void write_Param(
+ HF_IdlTypeText & o_type,
+ Xml::Element & o_names,
+ const ary::idl::Parameter &
+ i_param ) const;
+ void enter_ContentCell() const;
+ void leave_ContentCell() const;
+};
+
+
+
+// IMPLEMENTATION
+
+
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hfi_module.cxx b/autodoc/source/display/idl/hfi_module.cxx
new file mode 100644
index 000000000000..7897f9fcbd1d
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_module.cxx
@@ -0,0 +1,331 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_module.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:36 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "hfi_module.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/i_module.hxx>
+#include <ary/idl/ik_module.hxx>
+#include <ary_i/codeinf2.hxx>
+#include <toolkit/hf_docentry.hxx>
+#include <toolkit/hf_linachain.hxx>
+#include <toolkit/hf_navi_sub.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_doc.hxx"
+#include "hfi_navibar.hxx"
+#include "hfi_tag.hxx"
+#include "hfi_typetext.hxx"
+#include "hi_linkhelper.hxx"
+
+
+extern const String
+ C_sCePrefix_Module("module");
+
+namespace
+{
+
+const String
+ C_sList_NestedModules("Nested Modules");
+const String
+ C_sList_NestedModules_Label("NestedModules");
+const String
+ C_sList_Services("Services");
+const String
+ C_sList_Singletons("Singletons");
+const String
+ C_sList_Interfaces("Interfaces");
+const String
+ C_sList_Structs("Structs");
+const String
+ C_sList_Exceptions("Exceptions");
+const String
+ C_sList_Enums("Enums");
+const String
+ C_sList_Typedefs("Typedefs");
+const String
+ C_sList_ConstGroups("Constant Groups");
+const String
+ C_sList_ConstGroups_Label("ConstantGroups");
+
+
+enum E_SubListIndices
+{ // In case of changes, also adapt make_Navibar() !!
+ sli_NestedModules = 0,
+ sli_Services = 1,
+ sli_Singletons = 2,
+ sli_Interfaces = 3,
+ sli_Structs = 4,
+ sli_Exceptions = 5,
+ sli_Enums = 6,
+ sli_Typedefs = 7,
+ sli_ConstGroups = 8
+};
+
+} //anonymous namespace
+
+
+HF_IdlModule::HF_IdlModule( Environment & io_rEnv,
+ Xml::Element & o_rOut )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut)
+{
+}
+
+HF_IdlModule::~HF_IdlModule()
+{
+}
+
+typedef ary::idl::ifc_module::attr ModuleAttr;
+
+
+void
+HF_IdlModule::Produce_byData( const client & i_ce ) const
+{
+ Dyn<HF_NaviSubRow>
+ pNaviSubRow( &make_Navibar(i_ce) );
+
+ HF_TitleTable
+ aTitle(CurOut());
+ HF_LinkedNameChain
+ aNameChain(aTitle.Add_Row());
+
+ if ( Env().CurPosition().Depth() > 0 )
+ {
+ aNameChain.Produce_CompleteChain_forModule(Env().CurPosition(), nameChainLinker);
+
+ aTitle.Produce_Title( StreamLock(200)()
+ << C_sCePrefix_Module
+ << " "
+ << i_ce.LocalName()
+ << c_str );
+ }
+ else
+ {
+ aTitle.Produce_Title( "Global Module" );
+ }
+
+ write_Docu(aTitle.Add_Row(), i_ce);
+ CurOut() << new Html::HorizontalLine();
+
+
+ // Write children lists:
+ ce_ptr_list aNestedModules;
+ ce_ptr_list aServices;
+ ce_ptr_list aInterfaces;
+ ce_ptr_list aStructs;
+ ce_ptr_list aExceptions;
+ ce_ptr_list aEnums;
+ ce_ptr_list aTypedefs;
+ ce_ptr_list aConstantGroups;
+ ce_ptr_list aSingletons;
+
+ ModuleAttr::Get_AllChildrenSeparated(
+ aNestedModules,
+ aServices,
+ aInterfaces,
+ aStructs,
+ aExceptions,
+ aEnums,
+ aTypedefs,
+ aConstantGroups,
+ aSingletons,
+ Env().Data().Ces(),
+ i_ce );
+
+ // Has this to be in the order of enum E_SubListIndices ???
+ if (produce_ChildList(C_sList_NestedModules, C_sList_NestedModules_Label, aNestedModules ))
+ pNaviSubRow->SwitchOn(sli_NestedModules);
+ if (produce_ChildList(C_sList_Services, C_sList_Services, aServices))
+ pNaviSubRow->SwitchOn(sli_Services);
+ if (produce_ChildList(C_sList_Singletons, C_sList_Singletons, aSingletons))
+ pNaviSubRow->SwitchOn(sli_Singletons);
+ if (produce_ChildList(C_sList_Interfaces, C_sList_Interfaces, aInterfaces))
+ pNaviSubRow->SwitchOn(sli_Interfaces);
+ if (produce_ChildList(C_sList_Structs, C_sList_Structs, aStructs))
+ pNaviSubRow->SwitchOn(sli_Structs);
+ if (produce_ChildList(C_sList_Exceptions, C_sList_Exceptions, aExceptions))
+ pNaviSubRow->SwitchOn(sli_Exceptions);
+ if (produce_ChildList(C_sList_Enums, C_sList_Enums, aEnums))
+ pNaviSubRow->SwitchOn(sli_Enums);
+ if (produce_ChildList(C_sList_Typedefs, C_sList_Typedefs, aTypedefs))
+ pNaviSubRow->SwitchOn(sli_Typedefs);
+ if (produce_ChildList(C_sList_ConstGroups, C_sList_ConstGroups_Label, aConstantGroups))
+ pNaviSubRow->SwitchOn(sli_ConstGroups);
+ pNaviSubRow->Produce_Row();
+}
+
+DYN HF_NaviSubRow &
+HF_IdlModule::make_Navibar( const client & i_ce ) const
+{
+ HF_IdlNavigationBar
+ aNaviBar(Env(), CurOut());
+ aNaviBar.Produce_ModuleMainRow(i_ce);
+
+ DYN HF_NaviSubRow &
+ ret = aNaviBar.Add_SubRow();
+
+ // Has to be in the order of E_SubListIndices:
+ ret.AddItem(C_sList_NestedModules, C_sList_NestedModules_Label, false);
+ ret.AddItem(C_sList_Services, C_sList_Services, false);
+ ret.AddItem(C_sList_Singletons, C_sList_Singletons, false);
+ ret.AddItem(C_sList_Interfaces, C_sList_Interfaces, false);
+ ret.AddItem(C_sList_Structs, C_sList_Structs, false);
+ ret.AddItem(C_sList_Exceptions, C_sList_Exceptions, false);
+ ret.AddItem(C_sList_Enums, C_sList_Enums, false);
+ ret.AddItem(C_sList_Typedefs, C_sList_Typedefs, false);
+ ret.AddItem(C_sList_ConstGroups, C_sList_ConstGroups_Label, false);
+
+ CurOut() << new Html::HorizontalLine();
+ return ret;
+}
+
+bool
+HF_IdlModule::produce_ChildList( const String & i_sName,
+ const String & i_sLabel,
+ const ce_ptr_list & i_list ) const
+{
+ if ( i_list.size() == 0 )
+ return false;
+
+ HF_SubTitleTable
+ aTable( CurOut(),
+ i_sLabel,
+ i_sName,
+ 2 );
+
+ ce_ptr_list::const_iterator
+ itEnd = i_list.end();
+ for ( ce_ptr_list::const_iterator it = i_list.begin();
+ it != itEnd;
+ ++it )
+ {
+ Xml::Element &
+ rRow = aTable.Add_Row();
+ produce_Link(rRow, *it);
+ produce_LinkDoc(rRow, *it);
+ } // end for
+
+ return true;
+}
+
+void
+HF_IdlModule::produce_Link( Xml::Element & o_row,
+ const client * i_ce ) const
+{
+ csv_assert(i_ce != 0);
+ Xml::Element &
+ rCell = o_row
+ >> *new Html::TableCell
+ << new Html::ClassAttr(C_sCellStyle_SummaryLeft);
+
+ if (i_ce->ClassId() != ary::idl::Module::class_id)
+ {
+ HF_IdlTypeText
+ aText(Env(), rCell, true);
+ aText.Produce_byData(i_ce->CeId());
+ }
+ else
+ {
+ StreamLock slBuf(100);
+ rCell
+ >> *new Html::Link( slBuf() << i_ce->LocalName()
+ << "/module-ix.html"
+ << c_str )
+ << i_ce->LocalName();
+ }
+}
+
+void
+HF_IdlModule::produce_LinkDoc( Xml::Element & o_row,
+ const client * i_ce ) const
+{
+ csv_assert(i_ce != 0);
+
+ // We need the cell in any case, because, the rendering may be hurt else.
+ Xml::Element &
+ rCell = o_row
+ >> *new Html::TableCell
+ << new Html::ClassAttr(C_sCellStyle_SummaryRight);
+
+ const client &
+ rCe = *i_ce;
+ const ce_info *
+ pShort = rCe.Docu();
+ if ( pShort == 0 )
+ return;
+
+
+ if (pShort->IsDeprecated())
+ {
+ rCell << "[ DEPRECATED ]" << new Html::LineBreak;
+ }
+ if (pShort->IsOptional())
+ {
+ rCell << "[ OPTIONAL ]" << new Html::LineBreak;
+ }
+
+ HF_IdlDocuTextDisplay
+ aShortDisplay(Env(), &rCell, *i_ce);
+ pShort->Short().DisplayAt(aShortDisplay);
+}
diff --git a/autodoc/source/display/idl/hfi_module.hxx b/autodoc/source/display/idl/hfi_module.hxx
new file mode 100644
index 000000000000..df6becb6cb7b
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_module.hxx
@@ -0,0 +1,117 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_module.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:37 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_MODULE_HXX
+#define ADC_DISPLAY_HFI_MODULE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+
+class HF_NaviSubRow;
+
+class HF_IdlModule : public HtmlFactory_Idl
+{
+ public:
+ HF_IdlModule(
+ Environment & io_rEnv, // The CurDirecory() is the one of the here displayed Module.
+ Xml::Element & o_rOut );
+ virtual ~HF_IdlModule();
+
+ void Produce_byData(
+ const client & i_ce ) const;
+ private:
+ typedef std::vector< const ary::idl::CodeEntity* > ce_ptr_list;
+
+ DYN HF_NaviSubRow & make_Navibar(
+ const client & i_ce ) const;
+ bool produce_ChildList(
+ const String & i_sName,
+ const String & i_sLabel,
+ const ce_ptr_list & i_list ) const;
+ void produce_Link(
+ Xml::Element & o_row,
+ const client * i_ce ) const;
+ void produce_LinkDoc(
+ Xml::Element & o_row,
+ const client * i_ce ) const;
+};
+
+
+
+// IMPLEMENTATION
+
+
+extern const String
+ C_sCePrefix_Module;
+
+
+
+
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hfi_navibar.cxx b/autodoc/source/display/idl/hfi_navibar.cxx
new file mode 100644
index 000000000000..a60fec090c17
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_navibar.cxx
@@ -0,0 +1,239 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_navibar.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:38 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "hfi_navibar.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <toolkit/hf_navi_main.hxx>
+#include <toolkit/hf_navi_sub.hxx>
+#include "hfi_interface.hxx"
+#include "hfi_module.hxx"
+#include "hfi_service.hxx"
+#include "hi_linkhelper.hxx"
+
+
+extern const String
+ C_sLocalManualLinks("#devmanual");
+
+
+const String C_sTop = "Overview";
+const String C_sModule = "Module";
+const String C_sUse = "Use";
+const String C_sManual = "Manual";
+const String C_sIndex = "Index";
+
+
+
+
+HF_IdlNavigationBar::HF_IdlNavigationBar( Environment & io_rEnv,
+ Xml::Element & o_rOut )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut)
+{
+}
+
+HF_IdlNavigationBar::~HF_IdlNavigationBar()
+{
+}
+
+void
+HF_IdlNavigationBar::Produce_CeMainRow( const client & i_ce )
+{
+ HF_NaviMainRow
+ aNaviMain( CurOut() );
+
+ StreamLock aLink(500);
+ StreamStr & rLink = aLink();
+
+ Env().Get_LinkTo( rLink.reset(),
+ Env().OutputTree().Overview() );
+ aNaviMain.Add_StdItem( C_sTop, rLink.c_str() );
+
+ Env().Get_LinkTo( rLink.reset(),
+ Env().Linker().PositionOf_CurModule() );
+ aNaviMain.Add_StdItem( C_sModule, rLink.c_str() );
+
+ Env().Get_LinkTo( rLink.reset(),
+ Env().Linker().PositionOf_CurXRefs(i_ce.LocalName()) );
+ aNaviMain.Add_StdItem( C_sUse, rLink.c_str() );
+
+
+ const StringVector &
+ rManualDescrs = i_ce.Secondaries().Links2DescriptionInManual();
+ if (rManualDescrs.size() == 1)
+ {
+ aNaviMain.Add_StdItem(C_sManual, Env().Link2Manual( rManualDescrs.front() ));
+ }
+ else if (rManualDescrs.size() > 1)
+ {
+ aNaviMain.Add_StdItem(C_sManual, C_sLocalManualLinks);
+ }
+ else
+ {
+ aNaviMain.Add_NoneItem( C_sManual );
+ }
+
+ Env().Get_LinkTo( rLink.reset(),
+ Env().Linker().PositionOf_Index() );
+ aNaviMain.Add_StdItem( C_sIndex, rLink.c_str() );
+
+ aNaviMain.Produce_Row();
+}
+
+void
+HF_IdlNavigationBar::Produce_CeXrefsMainRow( const client & i_ce )
+{
+ HF_NaviMainRow
+ aNaviMain( CurOut() );
+
+ StreamLock aLink(500);
+ StreamStr & rLink = aLink();
+
+ Env().Get_LinkTo( rLink.reset(),
+ Env().OutputTree().Overview() );
+ aNaviMain.Add_StdItem( C_sTop, rLink.c_str() );
+
+ Env().Get_LinkTo( rLink.reset(),
+ Env().Linker().PositionOf_CurModule() );
+ aNaviMain.Add_StdItem( C_sModule, rLink.c_str() );
+
+ aNaviMain.Add_SelfItem( C_sUse );
+ aNaviMain.Add_NoneItem( C_sManual );
+
+ Env().Get_LinkTo( rLink.reset(),
+ Env().Linker().PositionOf_Index() );
+ aNaviMain.Add_StdItem( C_sIndex, rLink.c_str() );
+
+ aNaviMain.Produce_Row();
+}
+
+void
+HF_IdlNavigationBar::Produce_ModuleMainRow( const client & i_ce )
+{
+ HF_NaviMainRow
+ aNaviMain( CurOut() );
+
+ StreamLock aLink(500);
+ StreamStr & rLink = aLink();
+
+ Env().Get_LinkTo( rLink.reset(),
+ Env().OutputTree().Overview() );
+ aNaviMain.Add_StdItem( C_sTop, rLink.c_str() );
+
+ aNaviMain.Add_SelfItem( C_sModule );
+
+ aNaviMain.Add_NoneItem( C_sUse );
+
+ const StringVector &
+ rManualDescrs = i_ce.Secondaries().Links2DescriptionInManual();
+ if (rManualDescrs.size() == 1)
+ {
+ aNaviMain.Add_StdItem(C_sManual, Env().Link2Manual( rManualDescrs.front() ));
+ }
+ else if (rManualDescrs.size() > 1)
+ {
+ aNaviMain.Add_StdItem(C_sManual, C_sLocalManualLinks);
+ }
+ else
+ {
+ aNaviMain.Add_NoneItem( C_sManual );
+ }
+
+ Env().Get_LinkTo( rLink.reset(),
+ Env().Linker().PositionOf_Index() );
+ aNaviMain.Add_StdItem( C_sIndex, rLink.c_str() );
+
+ aNaviMain.Produce_Row();
+}
+
+void
+HF_IdlNavigationBar::Produce_IndexMainRow()
+{
+ HF_NaviMainRow
+ aNaviMain( CurOut() );
+
+ StreamLock aLink(500);
+ StreamStr & rLink = aLink();
+
+ Env().Get_LinkTo( rLink.reset(),
+ Env().OutputTree().Overview() );
+ aNaviMain.Add_StdItem( C_sTop, rLink.c_str() );
+
+ aNaviMain.Add_NoneItem( C_sModule );
+ aNaviMain.Add_NoneItem( C_sUse );
+ aNaviMain.Add_NoneItem( C_sManual );
+
+ aNaviMain.Add_SelfItem( C_sIndex );
+
+ aNaviMain.Produce_Row();
+
+ CurOut() << new Html::HorizontalLine();
+}
+
+DYN HF_NaviSubRow &
+HF_IdlNavigationBar::Add_SubRow()
+{
+ return *new HF_NaviSubRow( CurOut() );
+}
+
diff --git a/autodoc/source/display/idl/hfi_navibar.hxx b/autodoc/source/display/idl/hfi_navibar.hxx
new file mode 100644
index 000000000000..b5f659769f39
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_navibar.hxx
@@ -0,0 +1,115 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_navibar.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:38 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_NAVIBAR_HXX
+#define ADC_DISPLAY_HFI_NAVIBAR_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include "hi_factory.hxx"
+ // PARAMETERS
+
+namespace ary
+{
+namespace idl
+{
+class CodeEntity;
+}
+}
+
+
+class HF_NaviSubRow;
+
+/** @resp
+ Creates a navigation bar for an IDL HTML documentation page.
+*/
+class HF_IdlNavigationBar : public HtmlFactory_Idl
+{
+ public:
+ HF_IdlNavigationBar(
+ HtmlEnvironment_Idl &
+ io_rEnv,
+ Xml::Element & o_rOut );
+ virtual ~HF_IdlNavigationBar();
+
+ void Produce_CeMainRow(
+ const client & i_ce );
+ void Produce_CeXrefsMainRow(
+ const client & i_ce );
+ void Produce_ModuleMainRow(
+ const client & i_ce );
+ void Produce_IndexMainRow();
+
+ /** Adds the subrow to the o_rOut argument of the constructor.
+ */
+ DYN HF_NaviSubRow & Add_SubRow();
+
+ private:
+ const ary::idl::CodeEntity *
+ pCe;
+};
+
+extern const String
+ C_sLocalManualLinks;
+
+#endif
diff --git a/autodoc/source/display/idl/hfi_property.cxx b/autodoc/source/display/idl/hfi_property.cxx
new file mode 100644
index 000000000000..7414ec89958d
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_property.cxx
@@ -0,0 +1,269 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_property.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:39 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following li
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "hfi_property.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/ik_attribute.hxx>
+#include <ary/idl/ik_constant.hxx>
+#include <ary/idl/ik_enumvalue.hxx>
+#include <ary/idl/ik_property.hxx>
+#include <ary/idl/ik_structelem.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_typetext.hxx"
+
+void
+HF_IdlDataMember::Produce_byData( const client & ce ) const
+{
+ // Title:
+ CurOut()
+ >> *new Html::Label(ce.LocalName())
+ << new Html::ClassAttr(C_sMemberTitle)
+ << ce.LocalName();
+
+ enter_ContentCell();
+ write_Declaration(ce);
+ CurOut() << new Html::HorizontalLine;
+ write_Docu(CurOut(), ce);
+ leave_ContentCell();
+}
+
+HF_IdlDataMember::HF_IdlDataMember( Environment & io_rEnv,
+ HF_SubTitleTable & o_table )
+ : HtmlFactory_Idl( io_rEnv,
+ &(o_table.Add_Row()
+ >> *new Html::TableCell
+ << new Html::ClassAttr(C_sCellStyle_MDetail))
+ )
+{
+}
+
+const String sContentBorder("0");
+const String sContentWidth("96%");
+const String sContentPadding("5");
+const String sContentSpacing("0");
+
+const String sBgWhite("#ffffff");
+const String sCenter("center");
+
+void
+HF_IdlDataMember::enter_ContentCell() const
+{
+
+ Xml::Element &
+ rContentCell = CurOut()
+ >> *new Html::Table( sContentBorder,
+ sContentWidth,
+ sContentPadding,
+ sContentSpacing )
+ << new Html::BgColorAttr(sBgWhite)
+ << new Html::AlignAttr(sCenter)
+ >> *new Html::TableRow
+ >> *new Html::TableCell;
+ Out().Enter(rContentCell);
+}
+
+
+void
+HF_IdlDataMember::leave_ContentCell() const
+{
+ Out().Leave();
+}
+
+
+HF_IdlProperty::~HF_IdlProperty()
+{
+}
+
+typedef ary::idl::ifc_property::attr PropertyAttr;
+
+void
+HF_IdlProperty::write_Declaration( const client & i_ce ) const
+{
+ if (PropertyAttr::HasAnyStereotype(i_ce))
+ CurOut() << "[ ";
+ if (PropertyAttr::IsReadOnly(i_ce))
+ CurOut() << "readonly ";
+ if (PropertyAttr::IsBound(i_ce))
+ CurOut() << "bound ";
+ if (PropertyAttr::IsConstrained(i_ce))
+ CurOut() << "constrained ";
+ if (PropertyAttr::IsMayBeAmbigious(i_ce))
+ CurOut() << "maybeambigious ";
+ if (PropertyAttr::IsMayBeDefault(i_ce))
+ CurOut() << "maybedefault ";
+ if (PropertyAttr::IsMayBeVoid(i_ce))
+ CurOut() << "maybevoid ";
+ if (PropertyAttr::IsRemovable(i_ce))
+ CurOut() << "removable ";
+ if (PropertyAttr::IsTransient(i_ce))
+ CurOut() << "transient ";
+ if (PropertyAttr::HasAnyStereotype(i_ce))
+ CurOut() << " ] ";
+
+ HF_IdlTypeText
+ aType( Env(), CurOut(), true );
+ aType.Produce_byData( PropertyAttr::Type(i_ce) );
+
+ CurOut() << " " >> *new Html::Bold << i_ce.LocalName();
+ CurOut() << ";";
+}
+
+
+
+
+HF_IdlAttribute::~HF_IdlAttribute()
+{
+}
+
+typedef ary::idl::ifc_attribute::attr AttributeAttr;
+
+void
+HF_IdlAttribute::write_Declaration( const client & i_ce ) const
+{
+ if (AttributeAttr::IsReadOnly(i_ce))
+ CurOut() << "[ readonly ] ";
+
+ HF_IdlTypeText
+ aType( Env(), CurOut(), true );
+ aType.Produce_byData( AttributeAttr::Type(i_ce) );
+
+ CurOut() << " " >> *new Html::Bold << i_ce.LocalName();
+ CurOut() << ";";
+}
+
+
+
+
+HF_IdlEnumValue::~HF_IdlEnumValue()
+{
+}
+
+typedef ary::idl::ifc_enumvalue::attr EnumValueAttr;
+
+void
+HF_IdlEnumValue::write_Declaration( const client & i_ce ) const
+{
+ CurOut()
+ >> *new Html::Bold
+ << i_ce.LocalName();
+
+ const String &
+ rValue = EnumValueAttr::Value(i_ce);
+ if ( NOT rValue.empty() )
+ { CurOut() << " " // << " = " // In the moment this is somehow in the value
+ << rValue;
+ // CurOut() << ","; // In the moment this is somehow in the value
+ }
+ else
+ CurOut() << ",";
+}
+
+
+HF_IdlConstant::~HF_IdlConstant()
+{
+}
+
+typedef ary::idl::ifc_constant::attr ConstantAttr;
+
+void
+HF_IdlConstant::write_Declaration( const client & i_ce ) const
+{
+ CurOut() << "const ";
+ HF_IdlTypeText
+ aType( Env(), CurOut(), true );
+ aType.Produce_byData(ConstantAttr::Type(i_ce));
+ CurOut()
+ << " "
+ >> *new Html::Bold
+ << i_ce.LocalName();
+ const String &
+ rValue = ConstantAttr::Value(i_ce);
+ CurOut() << " " // << " = " // In the moment this is somehow in the value
+ << rValue;
+ // << ";"; // In the moment this is somehow in the value
+}
+
+
+HF_IdlStructElement::~HF_IdlStructElement()
+{
+}
+
+typedef ary::idl::ifc_structelement::attr StructElementAttr;
+
+void
+HF_IdlStructElement::write_Declaration( const client & i_ce ) const
+{
+ HF_IdlTypeText
+ aType( Env(), CurOut(), true );
+ aType.Produce_byData(StructElementAttr::Type(i_ce));
+ CurOut()
+ << " "
+ >> *new Html::Bold
+ << i_ce.LocalName();
+ CurOut()
+ << ";";
+}
+
diff --git a/autodoc/source/display/idl/hfi_property.hxx b/autodoc/source/display/idl/hfi_property.hxx
new file mode 100644
index 000000000000..2d14623bc9e9
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_property.hxx
@@ -0,0 +1,163 @@
+ /*************************************************************************
+ *
+ * $RCSfile: hfi_property.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:40 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_PROPERTY_HXX
+#define ADC_DISPLAY_HFI_PROPERTY_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+class HF_SubTitleTable;
+
+class HF_IdlDataMember : public HtmlFactory_Idl
+{
+ public:
+ void Produce_byData(
+ const client & ce ) const;
+ protected:
+ HF_IdlDataMember(
+ Environment & io_rEnv,
+ HF_SubTitleTable & o_table );
+ private:
+ /// @descr Must enclose writing a horizontal line.
+ virtual void write_Declaration(
+ const client & i_ce ) const = 0;
+
+ void enter_ContentCell() const;
+ void leave_ContentCell() const;
+};
+
+
+
+class HF_IdlProperty : public HF_IdlDataMember
+{
+ public:
+ HF_IdlProperty(
+ Environment & io_rEnv,
+ HF_SubTitleTable & o_table )
+ : HF_IdlDataMember(io_rEnv, o_table) {}
+ virtual ~HF_IdlProperty();
+ private:
+ virtual void write_Declaration(
+ const client & i_ce ) const;
+};
+
+class HF_IdlAttribute : public HF_IdlDataMember
+{
+ public:
+ HF_IdlAttribute(
+ Environment & io_rEnv,
+ HF_SubTitleTable & o_table )
+ : HF_IdlDataMember(io_rEnv, o_table) {}
+ virtual ~HF_IdlAttribute();
+ private:
+ virtual void write_Declaration(
+ const client & i_ce ) const;
+};
+
+
+class HF_IdlEnumValue : public HF_IdlDataMember
+{
+ public:
+ HF_IdlEnumValue(
+ Environment & io_rEnv,
+ HF_SubTitleTable & o_table )
+ : HF_IdlDataMember(io_rEnv, o_table) {}
+ virtual ~HF_IdlEnumValue();
+ private:
+ virtual void write_Declaration(
+ const client & i_ce ) const;
+};
+
+class HF_IdlConstant : public HF_IdlDataMember
+{
+ public:
+ HF_IdlConstant(
+ Environment & io_rEnv,
+ HF_SubTitleTable & o_table )
+ : HF_IdlDataMember(io_rEnv, o_table) {}
+ virtual ~HF_IdlConstant();
+ private:
+ virtual void write_Declaration(
+ const client & i_ce ) const;
+};
+
+
+class HF_IdlStructElement : public HF_IdlDataMember
+{
+ public:
+ HF_IdlStructElement(
+ Environment & io_rEnv,
+ HF_SubTitleTable & o_table )
+ : HF_IdlDataMember(io_rEnv, o_table) {}
+ virtual ~HF_IdlStructElement();
+ private:
+ virtual void write_Declaration(
+ const client & i_ce ) const;
+};
+
+
+#endif
diff --git a/autodoc/source/display/idl/hfi_service.cxx b/autodoc/source/display/idl/hfi_service.cxx
new file mode 100644
index 000000000000..66996a5ed11c
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_service.cxx
@@ -0,0 +1,320 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_service.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:40 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "hfi_service.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/ik_service.hxx>
+#include <ary_i/codeinf2.hxx>
+#include <toolkit/hf_docentry.hxx>
+#include <toolkit/hf_linachain.hxx>
+#include <toolkit/hf_navi_sub.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_doc.hxx"
+#include "hfi_navibar.hxx"
+#include "hfi_property.hxx"
+#include "hfi_tag.hxx"
+#include "hfi_typetext.hxx"
+#include "hi_linkhelper.hxx"
+
+
+
+
+extern const String
+ C_sCePrefix_Service("service");
+
+namespace
+{
+
+const String
+ C_sList_IncludedServices("Included Services");
+const String
+ C_sList_IncludedServices_Label("IncludedServices");
+const String
+ C_sList_ExportedInterfaces("Exported Interfaces");
+const String
+ C_sList_ExportedInterfaces_Label("ExportedInterfaces");
+const String
+ C_sList_Properties("Properties' Summary");
+const String
+ C_sList_Properties_Label("PropertiesSummary");
+const String
+ C_sList_PropertiesDetails("Properties' Details");
+const String
+ C_sList_PropertiesDetails_Label("PropertiesDetails");
+
+
+enum E_SubListIndices
+{
+ sli_IncludedServices = 0,
+ sli_ExportedInterfaces = 1,
+ sli_PropertiesSummary = 2,
+ sli_PropertiesDetails = 3
+};
+
+} //anonymous namespace
+
+
+HF_IdlService::HF_IdlService( Environment & io_rEnv,
+ Xml::Element & o_rOut )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut)
+{
+}
+
+HF_IdlService::~HF_IdlService()
+{
+
+}
+
+typedef ::ary::idl::ifc_service::attr
+ ServiceAttr;
+typedef ::ary::Dyn_StdConstIterator< ::ary::idl::CommentedReference >
+ dyn_comref_list;
+
+void
+HF_IdlService::Produce_byData( const client & i_ce ) const
+{
+ Dyn<HF_NaviSubRow>
+ pNaviSubRow( &make_Navibar(i_ce) );
+
+ HF_TitleTable
+ aTitle(CurOut());
+ HF_LinkedNameChain
+ aNameChain(aTitle.Add_Row());
+
+ aNameChain.Produce_CompleteChain(Env().CurPosition(), nameChainLinker);
+ aTitle.Produce_Title( StreamLock(200)() << C_sCePrefix_Service
+ << " "
+ << i_ce.LocalName()
+ << c_str );
+ write_Docu(aTitle.Add_Row(), i_ce);
+ CurOut() << new Html::HorizontalLine();
+
+ dyn_comref_list
+ dpIncludedServices;
+ ServiceAttr::Get_IncludedServices(dpIncludedServices, i_ce);
+ if (*dpIncludedServices)
+ {
+ produce_IncludedServices( i_ce, *dpIncludedServices );
+ pNaviSubRow->SwitchOn(sli_IncludedServices);
+ }
+
+ dyn_comref_list
+ dpExportedInterfaces;
+ ServiceAttr::Get_ExportedInterfaces(dpExportedInterfaces, i_ce);
+ if (*dpExportedInterfaces)
+ {
+ produce_ExportedInterfaces( i_ce, *dpExportedInterfaces );
+ pNaviSubRow->SwitchOn(sli_ExportedInterfaces);
+ }
+
+ dyn_ce_list
+ dpProperties;
+ ServiceAttr::Get_Properties(dpProperties, i_ce);
+ if (*dpProperties)
+ {
+ produce_Members( *dpProperties,
+ C_sList_Properties,
+ C_sList_Properties_Label,
+ C_sList_PropertiesDetails,
+ C_sList_PropertiesDetails_Label );
+ pNaviSubRow->SwitchOn(sli_PropertiesSummary);
+ pNaviSubRow->SwitchOn(sli_PropertiesDetails);
+ }
+
+ pNaviSubRow->Produce_Row();
+ CurOut() << new Xml::XmlCode("<br>&nbsp;");
+}
+
+DYN HF_NaviSubRow &
+HF_IdlService::make_Navibar( const client & i_ce ) const
+{
+ HF_IdlNavigationBar
+ aNaviBar(Env(), CurOut());
+ aNaviBar.Produce_CeMainRow(i_ce);
+
+ DYN HF_NaviSubRow &
+ ret = aNaviBar.Add_SubRow();
+ ret.AddItem(C_sList_IncludedServices, C_sList_IncludedServices_Label, false);
+ ret.AddItem(C_sList_ExportedInterfaces, C_sList_ExportedInterfaces_Label, false);
+ ret.AddItem(C_sList_Properties, C_sList_Properties_Label, false);
+ ret.AddItem(C_sList_PropertiesDetails, C_sList_PropertiesDetails_Label, false);
+
+ CurOut() << new Html::HorizontalLine();
+ return ret;
+}
+
+void
+HF_IdlService::produce_IncludedServices( const client & i_ce,
+ comref_list & it_list ) const
+{
+ csv_assert( it_list );
+
+ HF_SubTitleTable
+ aTable( CurOut(),
+ C_sList_IncludedServices_Label,
+ C_sList_IncludedServices,
+ 2 );
+
+ for ( ; it_list; ++it_list )
+ {
+ Xml::Element &
+ rRow = aTable.Add_Row();
+ produce_Link(rRow, (*it_list).first);
+ produce_LinkDoc(i_ce, rRow, it_list);
+ } // end for
+}
+
+void
+HF_IdlService::produce_ExportedInterfaces( const client & i_ce,
+ comref_list & it_list ) const
+{
+ csv_assert( it_list );
+
+ HF_SubTitleTable
+ aTable( CurOut(),
+ C_sList_ExportedInterfaces_Label,
+ C_sList_ExportedInterfaces,
+ 2 );
+
+ for ( ; it_list; ++it_list )
+ {
+ Xml::Element &
+ rRow = aTable.Add_Row();
+ produce_Link(rRow, (*it_list).first);
+ produce_LinkDoc(i_ce, rRow, it_list);
+ } // end for
+}
+
+void
+HF_IdlService::produce_Link( Xml::Element & o_row,
+ type_id i_type ) const
+{
+ Xml::Element &
+ rCell = o_row
+ >> *new Html::TableCell
+ << new Html::ClassAttr(C_sCellStyle_SummaryLeft);
+ HF_IdlTypeText
+ aText(Env(), rCell, true);
+ aText.Produce_byData(i_type);
+}
+
+void
+HF_IdlService::produce_LinkDoc( const client & i_ce,
+ Xml::Element & o_row,
+ comref_list & i_commentedRef ) const
+{
+ Xml::Element &
+ rCell = o_row
+ >> *new Html::TableCell
+ << new Html::ClassAttr(C_sCellStyle_SummaryRight);
+
+
+ HF_DocEntryList
+ aDocList(rCell);
+ if ( (*i_commentedRef).second != 0 )
+ {
+ HF_IdlDocu
+ aDocuDisplay(Env(), aDocList);
+ aDocuDisplay.Produce_byData(i_ce, (*i_commentedRef).second );
+ }
+ else
+ {
+ const client *
+ pCe = Env().Linker().Search_CeFromType((*i_commentedRef).first);
+ const ce_info *
+ pShort = pCe != 0
+ ? pCe->Docu()
+ : 0;
+ if ( pShort != 0 )
+ {
+ if (pShort->IsDeprecated())
+ {
+ rCell << "[ DEPRECATED ]" << new Html::LineBreak;
+ }
+ if (pShort->IsOptional())
+ {
+ rCell << "[ OPTIONAL ]" << new Html::LineBreak;
+ }
+
+ HF_IdlDocuTextDisplay
+ aShortDisplay( Env(), &rCell, *pCe);
+ pShort->Short().DisplayAt(aShortDisplay);
+ }
+ } // endif ( (*i_commentedRef).second != 0 ) else
+}
+
+
+void
+HF_IdlService::produce_MemberDetails( HF_SubTitleTable & o_table,
+ const client & i_ce ) const
+{
+ HF_IdlProperty
+ aProperty( Env(), o_table);
+ aProperty.Produce_byData( i_ce );
+}
+
+
+
diff --git a/autodoc/source/display/idl/hfi_service.hxx b/autodoc/source/display/idl/hfi_service.hxx
new file mode 100644
index 000000000000..23f5bde69666
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_service.hxx
@@ -0,0 +1,121 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_service.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:41 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_SERVICE_HXX
+#define ADC_DISPLAY_HFI_SERVICE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+class HF_NaviSubRow;
+class HF_SubTitleTable;
+
+class HF_IdlService : public HtmlFactory_Idl
+{
+ public:
+ typedef ::ary::StdConstIterator< ::ary::idl::CommentedReference> comref_list;
+ HF_IdlService(
+ Environment & io_rEnv, // The CurDirecory() is the one of the here displayed Module.
+ Xml::Element & o_rOut );
+ virtual ~HF_IdlService();
+
+ void Produce_byData(
+ const client & i_ce ) const;
+ private:
+ DYN HF_NaviSubRow & make_Navibar(
+ const client & i_ce ) const;
+
+ void produce_IncludedServices(
+ const client & i_ce,
+ comref_list & it_list ) const;
+ void produce_ExportedInterfaces(
+ const client & i_ce,
+ comref_list & it_list ) const;
+
+ void produce_Link(
+ Xml::Element & o_row,
+ type_id i_type ) const;
+ void produce_LinkDoc(
+ const client & i_ce,
+ Xml::Element & o_row,
+ comref_list & i_commentedRef ) const;
+
+ void produce_MemberDetails( /// of property
+ HF_SubTitleTable & o_table,
+ const client & i_ce ) const;
+};
+
+
+
+// IMPLEMENTATION
+
+extern const String
+ C_sCePrefix_Service;
+
+
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hfi_singleton.cxx b/autodoc/source/display/idl/hfi_singleton.cxx
new file mode 100644
index 000000000000..2a196d20ebdb
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_singleton.cxx
@@ -0,0 +1,144 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_singleton.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:42 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "hfi_singleton.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/ik_singleton.hxx>
+#include <toolkit/hf_docentry.hxx>
+#include <toolkit/hf_linachain.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_navibar.hxx"
+#include "hfi_typetext.hxx"
+#include "hi_linkhelper.hxx"
+
+
+
+
+extern const String
+ C_sCePrefix_Singleton("singleton");
+
+namespace
+{
+const String
+ C_sAssociatedService("Associated Service");
+} //anonymous namespace
+
+
+HF_IdlSingleton::HF_IdlSingleton( Environment & io_rEnv,
+ Xml::Element & o_rOut )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut)
+{
+}
+
+HF_IdlSingleton::~HF_IdlSingleton()
+{
+
+}
+
+typedef ::ary::idl::ifc_singleton::attr
+ SingletonAttr;
+
+void
+HF_IdlSingleton::Produce_byData( const client & i_ce ) const
+{
+ make_Navibar(i_ce);
+
+ HF_TitleTable
+ aTitle(CurOut());
+
+ HF_LinkedNameChain
+ aNameChain(aTitle.Add_Row());
+
+ aNameChain.Produce_CompleteChain(Env().CurPosition(), nameChainLinker);
+ aTitle.Produce_Title( StreamLock(200)()
+ << C_sCePrefix_Singleton
+ << " "
+ << i_ce.LocalName()
+ << c_str );
+
+ HF_DocEntryList
+ aTopList( aTitle.Add_Row() );
+ aTopList.Produce_Term(C_sAssociatedService);
+
+ HF_IdlTypeText
+ aAssociatedService( Env(), aTopList.Produce_Definition(), true );
+ aAssociatedService.Produce_byData( SingletonAttr::AssociatedService(i_ce) );
+
+ CurOut() << new Html::HorizontalLine;
+
+ write_Docu(aTitle.Add_Row(), i_ce);
+ CurOut() << new Html::HorizontalLine();
+}
+
+void
+HF_IdlSingleton::make_Navibar( const client & i_ce ) const
+{
+ HF_IdlNavigationBar
+ aNaviBar(Env(), CurOut());
+ aNaviBar.Produce_CeMainRow(i_ce);
+
+ CurOut() << new Html::HorizontalLine();
+}
diff --git a/autodoc/source/display/idl/hfi_singleton.hxx b/autodoc/source/display/idl/hfi_singleton.hxx
new file mode 100644
index 000000000000..c11b45f46497
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_singleton.hxx
@@ -0,0 +1,101 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_singleton.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:42 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_SINGLETON_HXX
+#define ADC_DISPLAY_HFI_SINGLETON_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+class HF_NaviSubRow;
+
+
+class HF_IdlSingleton : public HtmlFactory_Idl
+{
+ public:
+ HF_IdlSingleton(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut );
+ virtual ~HF_IdlSingleton();
+
+ void Produce_byData(
+ const client & i_ce ) const;
+ private:
+ void make_Navibar(
+ const client & i_ce ) const;
+};
+
+
+
+// IMPLEMENTATION
+
+extern const String
+ C_sCePrefix_Singleton;
+
+
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hfi_struct.cxx b/autodoc/source/display/idl/hfi_struct.cxx
new file mode 100644
index 000000000000..a0e49a36273a
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_struct.cxx
@@ -0,0 +1,207 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_struct.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:43 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "hfi_struct.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/ik_exception.hxx>
+#include <ary/idl/ik_struct.hxx>
+#include <toolkit/hf_docentry.hxx>
+#include <toolkit/hf_linachain.hxx>
+#include <toolkit/hf_navi_sub.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_navibar.hxx"
+#include "hfi_property.hxx"
+#include "hfi_typetext.hxx"
+#include "hi_linkhelper.hxx"
+
+
+extern const String
+ C_sCePrefix_Struct("struct");
+extern const String
+ C_sCePrefix_Exception("exception");
+
+
+namespace
+{
+
+const String
+ C_sBaseStruct("Base Hierarchy");
+const String
+ C_sBaseException("Base Hierarchy");
+
+const String
+ C_sList_Elements("Elements' Summary");
+const String
+ C_sList_Elements_Label("Elements");
+
+const String
+ C_sList_ElementDetails("Elements' Details");
+const String
+ C_sList_ElementDetails_Label("ElementDetails");
+
+enum E_SubListIndices
+{
+ sli_ElementsSummary = 0,
+ sli_ElementsDetails = 1
+};
+
+} // anonymous namespace
+
+
+
+HF_IdlStruct::HF_IdlStruct( Environment & io_rEnv,
+ Xml::Element & o_rOut,
+ bool i_bIsException )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut),
+ bIsException(i_bIsException)
+{
+}
+
+HF_IdlStruct::~HF_IdlStruct()
+{
+}
+
+void
+HF_IdlStruct::Produce_byData( const client & i_ce ) const
+{
+ Dyn<HF_NaviSubRow>
+ pNaviSubRow( &make_Navibar(i_ce) );
+
+ HF_TitleTable
+ aTitle(CurOut());
+ HF_LinkedNameChain
+ aNameChain(aTitle.Add_Row());
+
+ aNameChain.Produce_CompleteChain(Env().CurPosition(), nameChainLinker);
+ aTitle.Produce_Title( StreamLock(200)()
+ << (bIsException
+ ? C_sCePrefix_Exception
+ : C_sCePrefix_Struct)
+ << " "
+ << i_ce.LocalName()
+ << c_str );
+ produce_Bases( aTitle.Add_Row(),
+ i_ce,
+ bIsException
+ ? C_sBaseException
+ : C_sBaseStruct );
+
+ write_Docu(aTitle.Add_Row(), i_ce);
+ CurOut() << new Html::HorizontalLine();
+
+ dyn_ce_list
+ dpElements;
+ if (bIsException)
+ ary::idl::ifc_exception::attr::Get_Elements(dpElements, i_ce);
+ else
+ ary::idl::ifc_struct::attr::Get_Elements(dpElements, i_ce);
+
+ if (*dpElements)
+ {
+ produce_Members( *dpElements,
+ C_sList_Elements,
+ C_sList_Elements_Label,
+ C_sList_ElementDetails,
+ C_sList_ElementDetails_Label );
+ pNaviSubRow->SwitchOn(sli_ElementsSummary);
+ pNaviSubRow->SwitchOn(sli_ElementsDetails);
+ }
+ pNaviSubRow->Produce_Row();
+}
+
+HtmlFactory_Idl::type_id
+HF_IdlStruct::inq_BaseOf( const client & i_ce ) const
+{
+ return bIsException
+ ? ary::idl::ifc_exception::attr::Base(i_ce)
+ : ary::idl::ifc_struct::attr::Base(i_ce);
+}
+
+HF_NaviSubRow &
+HF_IdlStruct::make_Navibar( const client & i_ce ) const
+{
+ HF_IdlNavigationBar
+ aNaviBar(Env(), CurOut());
+ aNaviBar.Produce_CeMainRow(i_ce);
+
+ DYN HF_NaviSubRow &
+ ret = aNaviBar.Add_SubRow();
+ ret.AddItem(C_sList_Elements, C_sList_Elements_Label, false);
+ ret.AddItem(C_sList_ElementDetails, C_sList_ElementDetails_Label, false);
+
+ CurOut() << new Html::HorizontalLine();
+ return ret;
+}
+
+void
+HF_IdlStruct::produce_MemberDetails( HF_SubTitleTable & o_table,
+ const client & i_ce) const
+{
+ HF_IdlStructElement
+ aElement( Env(), o_table );
+ aElement.Produce_byData(i_ce);
+}
+
diff --git a/autodoc/source/display/idl/hfi_struct.hxx b/autodoc/source/display/idl/hfi_struct.hxx
new file mode 100644
index 000000000000..22db657ee664
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_struct.hxx
@@ -0,0 +1,111 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_struct.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_STRUCT_HXX
+#define ADC_DISPLAY_HFI_STRUCT_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+
+class HF_IdlStruct : public HtmlFactory_Idl
+{
+ public:
+
+ HF_IdlStruct(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut,
+ bool i_bIsException );
+ virtual ~HF_IdlStruct();
+
+ void Produce_byData(
+ const client & ce ) const;
+ private:
+ // Interface HtmlFactory_Idl:
+ virtual type_id inq_BaseOf(
+ const client & i_ce ) const;
+ // Locals
+ HF_NaviSubRow & make_Navibar(
+ const client & ce ) const;
+ virtual void produce_MemberDetails(
+ HF_SubTitleTable & o_table,
+ const client & ce ) const;
+ // DATA
+ bool bIsException;
+};
+
+
+
+// IMPLEMENTATION
+
+
+extern const String
+ C_sCePrefix_Struct;
+extern const String
+ C_sCePrefix_Exception;
+
+
+#endif
diff --git a/autodoc/source/display/idl/hfi_tag.cxx b/autodoc/source/display/idl/hfi_tag.cxx
new file mode 100644
index 000000000000..72036beadb4c
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_tag.cxx
@@ -0,0 +1,331 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_tag.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "hfi_tag.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary_i/d_token.hxx>
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/i_module.hxx>
+#include <toolkit/out_tree.hxx>
+#include "hfi_typetext.hxx"
+#include "hi_ary.hxx"
+#include "hi_env.hxx"
+#include "hi_linkhelper.hxx"
+
+
+
+
+inline void
+HF_IdlTag::Enter_TextOut( Xml::Element & o_rText ) const
+{
+ aTextOut.Out().Enter(o_rText);
+}
+
+inline void
+HF_IdlTag::Leave_TextOut() const
+{
+ aTextOut.Out().Leave();
+}
+
+inline void
+HF_IdlTag::PutText_Out( const ary::info::DocuTex2 & i_rText ) const
+{
+ i_rText.DisplayAt( const_cast< HF_IdlDocuTextDisplay& >(aTextOut) );
+}
+
+
+
+HF_IdlTag::HF_IdlTag( Environment & io_rEnv,
+ const ary::idl::CodeEntity & i_rScopeGivingCe )
+ : HtmlFactory_Idl( io_rEnv, 0 ),
+ pTitleOut(0),
+ aTextOut(io_rEnv, 0, i_rScopeGivingCe)
+{
+}
+
+HF_IdlTag::~HF_IdlTag()
+{
+}
+
+void
+HF_IdlTag::Produce_byData( Xml::Element & o_rTitle,
+ Xml::Element & o_rText,
+ const ary::info::AtTag2 & i_rTag ) const
+{
+ pTitleOut = &o_rTitle;
+ Enter_TextOut(o_rText);
+ i_rTag.DisplayAt( const_cast< HF_IdlTag& >(*this) );
+ Leave_TextOut();
+}
+
+void
+HF_IdlTag::Display_StdAtTag( const csi::dsapi::DT_StdAtTag & i_rTag )
+{
+ if ( i_rTag.Text().IsEmpty() )
+ return;
+
+ csv_assert( pTitleOut != 0 );
+ *pTitleOut << i_rTag.Title();
+ PutText_Out( i_rTag.Text() );
+}
+
+void
+HF_IdlTag::Display_SeeAlsoAtTag( const csi::dsapi::DT_SeeAlsoAtTag & i_rTag )
+{
+ if ( i_rTag.Text().IsEmpty() )
+ return;
+
+ csv_assert( pTitleOut != 0 );
+ *pTitleOut << "See also";
+
+ HF_IdlTypeText aLinkText(Env(),aTextOut.CurOut(),true);
+ aLinkText.Produce_byData( i_rTag.LinkText() );
+// aTextOut.Create_LinkToBeFound(i_rTag.LinkText(),true);
+ aTextOut.CurOut() << new Html::LineBreak;
+ PutText_Out( i_rTag.Text() );
+}
+
+void
+HF_IdlTag::Display_ParameterAtTag( const csi::dsapi::DT_ParameterAtTag & i_rTag )
+{
+ csv_assert( pTitleOut != 0 );
+ *pTitleOut
+ << ( StreamLock(100)() << "Parameter " << i_rTag.Title() << c_str );
+ PutText_Out( i_rTag.Text() );
+}
+
+
+//******************** HF_IdlShortDocu *********************/
+
+HF_IdlShortDocu::HF_IdlShortDocu( Environment & io_rEnv,
+ Xml::Element & o_rOut )
+ : HtmlFactory_Idl( io_rEnv, &o_rOut )
+{
+}
+
+HF_IdlShortDocu::~HF_IdlShortDocu()
+{
+}
+
+void
+HF_IdlShortDocu::Produce_byData( const ary::idl::CodeEntity & i_rCe )
+{
+ if (i_rCe.Docu() == 0)
+ return;
+
+ const ce_info &
+ rDocu = *i_rCe.Docu();
+ if ( rDocu.IsDeprecated() )
+ {
+ CurOut()
+ >> *new Html::Bold
+ << "[ DEPRECATED ]" << new Html::LineBreak;
+ }
+ if ( rDocu.IsOptional() )
+ {
+ CurOut()
+ >> *new Html::Bold
+ << "[ OPTIONAL ]" << new Html::LineBreak;
+ }
+
+ HF_IdlDocuTextDisplay
+ aText( Env(), &CurOut(), i_rCe);
+ rDocu.Short().DisplayAt(aText);
+}
+
+
+//******************** HF_IdlDocuTextDisplay *********************/
+
+
+HF_IdlDocuTextDisplay::HF_IdlDocuTextDisplay( Environment & io_rEnv,
+ Xml::Element * o_pOut,
+ const ary::idl::CodeEntity & i_rScopeGivingCe )
+ : HtmlFactory_Idl(io_rEnv, o_pOut),
+ sScope(),
+ sLinkToken(),
+ bGatherLink(false),
+ pScopeGivingCe(&i_rScopeGivingCe)
+{
+}
+
+HF_IdlDocuTextDisplay::~HF_IdlDocuTextDisplay()
+{
+}
+
+void
+HF_IdlDocuTextDisplay::Display_TextToken( const csi::dsapi::DT_TextToken & i_rToken )
+{
+ if (bGatherLink)
+ {
+ if (sLinkToken.length() == 0)
+ {
+ sLinkToken = i_rToken.GetText();
+ return;
+ }
+ else
+ {
+ Cerr() << "Error in documentation: Too many or too few tokens for a link in <member> or <type>." << Endl();
+ Cerr() << " Link won't be created, but all tokens shown plain." << Endl();
+ Cerr() << " \"" << sLinkToken << "\"";
+ if ( pScopeGivingCe != 0 )
+ Cerr() << " in " << pScopeGivingCe->LocalName();
+ Cerr() << Endl();
+ StopLinkGathering();
+ }
+ } // endif (bGatherLink)
+
+ CurOut() << " " << new Xml::XmlCode( i_rToken.GetText() );
+}
+
+void
+HF_IdlDocuTextDisplay::Display_MupType( const csi::dsapi::DT_MupType & i_rToken )
+{
+ if (i_rToken.IsBegin())
+ {
+ StartLinkGathering(i_rToken.Scope());
+ }
+ else
+ {
+ if (bGatherLink)
+ {
+ CurOut()
+ << " ";
+ CreateTypeLink();
+ StopLinkGathering();
+ }
+ }
+}
+
+void
+HF_IdlDocuTextDisplay::Display_MupMember( const csi::dsapi::DT_MupMember & i_rToken )
+{
+ if (i_rToken.IsBegin())
+ {
+ StartLinkGathering(i_rToken.Scope());
+ }
+ else
+ {
+ if (bGatherLink)
+ {
+ CurOut()
+ << " ";
+ CreateMemberLink();
+ StopLinkGathering();
+ }
+ }
+}
+
+void
+HF_IdlDocuTextDisplay::Display_MupConst( const csi::dsapi::DT_MupConst & i_rToken )
+{
+ CurOut()
+ << " "
+ >> *new Html::Bold
+ << i_rToken.GetText();
+}
+
+void
+HF_IdlDocuTextDisplay::Display_Style( const csi::dsapi::DT_Style & i_rToken )
+{
+ CurOut() << new Xml::XmlCode( i_rToken.GetText() );
+}
+
+void
+HF_IdlDocuTextDisplay::Display_EOL()
+{
+ CurOut() << "\n";
+}
+
+void
+HF_IdlDocuTextDisplay::CreateTypeLink()
+{
+ HF_IdlTypeText aLink(Env(), CurOut(), true, &ScopeGivingCe());
+ aLink.Produce_LinkInDocu(sScope, sLinkToken, String::Null_());
+}
+
+void
+HF_IdlDocuTextDisplay::CreateMemberLink()
+{
+
+ HF_IdlTypeText aLink(Env(), CurOut(), true, &ScopeGivingCe());
+
+ const char *
+ sSplit = strstr(sLinkToken,"::");
+
+ if (sSplit != 0)
+ {
+ String sCe(sLinkToken.c_str(), sSplit - sLinkToken.c_str());
+ String sMember(sSplit+2);
+
+ if (NOT sScope.empty() OR ScopeGivingCe().LocalName() != sCe )
+ aLink.Produce_LinkInDocu(sScope, sCe, sMember);
+ else
+ aLink.Produce_LocalLinkInDocu(sMember);
+ }
+ else
+ {
+ aLink.Produce_LocalLinkInDocu(sLinkToken);
+ }
+}
diff --git a/autodoc/source/display/idl/hfi_tag.hxx b/autodoc/source/display/idl/hfi_tag.hxx
new file mode 100644
index 000000000000..2d381e7d894d
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_tag.hxx
@@ -0,0 +1,208 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_tag.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:46 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_TAG_HXX
+#define ADC_DISPLAY_HFI_TAG_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+#include <ary_i/disdocum.hxx>
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/idl/i_language.hxx>
+#include <ary_i/ci_atag2.hxx>
+#include <ary_i/ci_text2.hxx>
+#include <ary_i/codeinf2.hxx>
+
+#include <toolkit/hf_docentry.hxx>
+
+namespace ary
+{
+namespace idl
+{
+ class Module;
+}
+}
+
+
+/** This class is an implementation of ary::info::DocuText_Display
+ and will be used by that interface.
+*/
+class HF_IdlDocuTextDisplay : public HtmlFactory_Idl,
+ public ary::info::DocuText_Display
+{
+ public:
+ HF_IdlDocuTextDisplay(
+ Environment & io_rEnv,
+ Xml::Element * o_pOut,
+ const ary::idl::CodeEntity &
+ i_rScopeGivingCe );
+ virtual ~HF_IdlDocuTextDisplay();
+
+ const ary::idl::CodeEntity &
+ ScopeGivingCe() const { return *pScopeGivingCe; }
+ private:
+ virtual void Display_TextToken(
+ const csi::dsapi::DT_TextToken &
+ i_rToken );
+ virtual void Display_MupType(
+ const csi::dsapi::DT_MupType &
+ i_rToken );
+ virtual void Display_MupMember(
+ const csi::dsapi::DT_MupMember &
+ i_rToken );
+ virtual void Display_MupConst(
+ const csi::dsapi::DT_MupConst &
+ i_rToken );
+ virtual void Display_Style(
+ const csi::dsapi::DT_Style & i_rToken );
+ virtual void Display_EOL();
+
+ // Local
+ void StartLinkGathering(
+ const String & i_sScope )
+ { sLinkToken = ""; sScope = i_sScope; bGatherLink = true; }
+ void StopLinkGathering() { bGatherLink = false; }
+ /** @precond
+ The scope is in sScope, the name is in sLinkToken.
+ */
+ void CreateTypeLink();
+ /** @precond
+ The scope is in sScope, the qualified member-name is in sLinkToken.
+ */
+ void CreateMemberLink();
+
+ // DATA
+ String sScope;
+ String sLinkToken;
+ bool bGatherLink;
+ const ary::idl::CodeEntity *
+ pScopeGivingCe;
+};
+
+
+
+class HF_IdlShortDocu : public HtmlFactory_Idl
+{
+ public:
+ HF_IdlShortDocu(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut );
+ virtual ~HF_IdlShortDocu();
+
+ void Produce_byData(
+ const ary::idl::CodeEntity &
+ i_rCe );
+};
+
+
+
+class HF_IdlTag : public HtmlFactory_Idl,
+ public ary::info::DocuTag_Display
+{
+ public:
+ HF_IdlTag(
+ Environment & io_rEnv,
+ const ary::idl::CodeEntity &
+ i_rScopeGivingCe );
+ virtual ~HF_IdlTag();
+
+ void Produce_byData(
+ Xml::Element & o_rTitle,
+ Xml::Element & o_rText,
+ const ary::info::AtTag2 &
+ i_rTag ) const;
+ private:
+ virtual void Display_StdAtTag(
+ const csi::dsapi::DT_StdAtTag &
+ i_rToken );
+ virtual void Display_SeeAlsoAtTag(
+ const csi::dsapi::DT_SeeAlsoAtTag &
+ i_rToken );
+ virtual void Display_ParameterAtTag(
+ const csi::dsapi::DT_ParameterAtTag &
+ i_rToken );
+
+ void Enter_TextOut(
+ Xml::Element & o_rText ) const;
+ void Leave_TextOut() const;
+ void PutText_Out(
+ const ary::info::DocuTex2 &
+ i_rText ) const;
+ // DATA
+ mutable Xml::Element *
+ pTitleOut;
+ mutable HF_IdlDocuTextDisplay
+ aTextOut;
+};
+
+
+
+
+// IMPLEMENTATION
+
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hfi_typedef.cxx b/autodoc/source/display/idl/hfi_typedef.cxx
new file mode 100644
index 000000000000..b822b3b01b36
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_typedef.cxx
@@ -0,0 +1,131 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_typedef.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:47 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "hfi_typedef.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/ik_typedef.hxx>
+#include <toolkit/hf_docentry.hxx>
+#include <toolkit/hf_linachain.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_navibar.hxx"
+#include "hfi_typetext.hxx"
+#include "hi_linkhelper.hxx"
+
+
+
+HF_IdlTypedef::HF_IdlTypedef( Environment & io_rEnv,
+ Xml::Element & o_rOut )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut)
+{
+}
+
+HF_IdlTypedef::~HF_IdlTypedef()
+{
+}
+
+typedef ary::idl::ifc_typedef::attr TypedefAttr;
+
+void
+HF_IdlTypedef::Produce_byData( const client & i_ce ) const
+{
+ make_Navibar(i_ce);
+
+ HF_TitleTable
+ aTitle(CurOut());
+
+ HF_LinkedNameChain
+ aNameChain(aTitle.Add_Row());
+
+ aNameChain.Produce_CompleteChain(Env().CurPosition(), nameChainLinker);
+ aTitle.Produce_Title( StreamLock(200)()
+ << C_sCePrefix_Typedef
+ << " "
+ << i_ce.LocalName()
+ << c_str );
+
+ HF_DocEntryList
+ aTopList( aTitle.Add_Row() );
+ aTopList.Produce_Term("Defining Type");
+
+ HF_IdlTypeText
+ aDefinition( Env(), aTopList.Produce_Definition(), true );
+ aDefinition.Produce_byData( TypedefAttr::DefiningType(i_ce) );
+
+ CurOut() << new Html::HorizontalLine;
+
+ write_Docu(aTitle.Add_Row(), i_ce);
+ CurOut() << new Html::HorizontalLine();
+}
+
+void
+HF_IdlTypedef::make_Navibar( const client & i_ce ) const
+{
+ HF_IdlNavigationBar
+ aNaviBar(Env(), CurOut());
+ aNaviBar.Produce_CeMainRow(i_ce);
+
+ CurOut() << new Html::HorizontalLine();
+}
diff --git a/autodoc/source/display/idl/hfi_typedef.hxx b/autodoc/source/display/idl/hfi_typedef.hxx
new file mode 100644
index 000000000000..a6f7e4579424
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_typedef.hxx
@@ -0,0 +1,99 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_typedef.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:48 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_TYPEDEF_HXX
+#define ADC_DISPLAY_HFI_TYPEDEF_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+
+class HF_IdlTypedef : public HtmlFactory_Idl
+{
+ public:
+ HF_IdlTypedef(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut );
+ virtual ~HF_IdlTypedef();
+
+ void Produce_byData(
+ const client & ce ) const;
+ private:
+ void make_Navibar(
+ const client & ce ) const;
+};
+
+
+
+// IMPLEMENTATION
+
+
+const String
+ C_sCePrefix_Typedef("typedef");
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hfi_typetext.cxx b/autodoc/source/display/idl/hfi_typetext.cxx
new file mode 100644
index 000000000000..2106d803a50e
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_typetext.cxx
@@ -0,0 +1,573 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_typetext.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:48 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "hfi_typetext.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <string.h>
+#include <ary/idl/i_type.hxx>
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/i_module.hxx>
+#include <ary/idl/ik_ce.hxx>
+#include "hi_linkhelper.hxx"
+
+
+inline const ary::idl::Module *
+HF_IdlTypeText::referingModule() const
+{
+ if (pReferingCe == 0)
+ return Env().Linker().Search_CurModule();
+ else
+ return &Env().Data().Find_Module(pReferingCe->NameRoom());
+}
+
+inline const HF_IdlTypeText::client *
+HF_IdlTypeText::referingCe() const
+{
+ return pReferingCe;
+}
+
+
+HF_IdlTypeText::HF_IdlTypeText( Environment & io_rEnv,
+ Xml::Element & o_rOut,
+ bool i_bWithLink,
+ const client * i_pScopeGivingCe )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut),
+ pReferingCe( i_pScopeGivingCe ),
+ bWithLink(i_bWithLink)
+{
+}
+
+HF_IdlTypeText::HF_IdlTypeText( Environment & io_rEnv,
+ E_Index e )
+ : HtmlFactory_Idl(io_rEnv, 0),
+ pReferingCe( 0 ),
+ bWithLink(true)
+{
+}
+
+HF_IdlTypeText::~HF_IdlTypeText()
+{
+}
+
+void
+HF_IdlTypeText::Produce_byData( ary::idl::Type_id i_idType ) const
+{
+ static StringVector aModule_;
+ String sName;
+ ce_id nCe;
+ int nSequenceCount = 0;
+ csv::erase_container(aModule_);
+
+ const ary::idl::Type &
+ rType = Env().Data().Find_Type(i_idType);
+ Env().Data().Get_TypeText(aModule_, sName, nCe, nSequenceCount, rType);
+
+ if ( Env().Data().IsBuiltInOrRelated(rType) )
+ {
+ produce_BuiltIn(sName,nSequenceCount);
+ }
+ else
+ {
+ produce_FromStd( aModule_,
+ sName,
+ String::Null_(),
+ nSequenceCount,
+ (nCe.IsValid() ? exists_yes : exists_no) );
+ }
+}
+
+void
+HF_IdlTypeText::Produce_byData( ary::idl::Ce_id i_idCe ) const
+{
+ static StringVector aModule_;
+ String sCe;
+ String sMember;
+ csv::erase_container(aModule_);
+
+ const ary::idl::CodeEntity &
+ rCe = Env().Data().Find_Ce(i_idCe);
+ Env().Data().Get_CeText(aModule_, sCe, sMember, rCe);
+ produce_FromStd(aModule_, sCe, sMember, 0, exists_yes);
+}
+
+void
+HF_IdlTypeText::Produce_byData( const String & i_sFullName ) const
+{
+ static StringVector aModule_;
+ String sCe,
+ sMember;
+ int nSequence = 0;
+ String sTypeText;
+ csv::erase_container(aModule_);
+
+ const ary::idl::Module *
+ pScopeModule = referingModule();
+ if (pScopeModule == 0)
+ {
+ // SYNTAX_ERR, but rather logical error: Missing module.
+ CurOut() << i_sFullName;
+ return;
+ }
+
+ const char * sTypeStart = strrchr(i_sFullName,'<');
+ if ( sTypeStart != 0 )
+ {
+ const char * sTypeEnd = strchr(i_sFullName,'>');
+ if (sTypeEnd == 0)
+ { // SYNTAX_ERR
+ CurOut() << i_sFullName;
+ return;
+ }
+
+ nSequence = count_Sequences(i_sFullName);
+ sTypeStart++;
+ sTypeText.assign(sTypeStart, sTypeEnd-sTypeStart);
+ }
+ else
+ {
+ sTypeText = i_sFullName;
+ }
+
+ csv::erase_container(aModule_);
+ bool bFound = // KORR : Check the semantics of this, see if ce really exists in any case?
+ Env().Data().Search_Ce( aModule_,
+ sCe,sMember,
+ sTypeText,
+ *pScopeModule );
+ if (NOT bFound)
+ {
+ CurOut() << i_sFullName;
+ return;
+ }
+
+ produce_FromStd(aModule_, sCe, sMember, nSequence, exists_yes);
+}
+
+void
+HF_IdlTypeText::Produce_LinkInDocu( const String & i_scope,
+ const String & i_name,
+ const String & i_member ) const
+{
+ static StringVector aModule_;
+ String sName;
+ ce_id nCe;
+ int nSequenceCount = 0;
+ csv::erase_container(aModule_);
+
+ const ary::idl::Module *
+ pScopeModule = referingModule();
+ if (pScopeModule == 0)
+ {
+ // SYNTAX_ERR, but rather logical error: Missing module.
+ CurOut() << i_scope << "::" << i_name;
+ if (NOT i_member.empty())
+ CurOut() << "::" << i_member;
+ return;
+ }
+
+ bool
+ bFound = Env().Data().Search_CesModule( aModule_,
+ i_scope,
+ i_name,
+ *pScopeModule );
+ if (NOT bFound)
+ {
+ CurOut() << i_scope << "::" << i_name;
+ if (NOT i_member.empty())
+ CurOut() << "::" << i_member;
+ return;
+ }
+ produce_FromStd(aModule_, i_name, i_member, 0, exists_yes);
+}
+
+void
+HF_IdlTypeText::Produce_LocalLinkInDocu( const String & i_member ) const
+{
+ static StringVector aModule_;
+ String sName;
+ csv::erase_container(aModule_);
+
+ csv_assert(referingCe() != 0);
+ if ( referingModule() == Env().Linker().Search_CurModule() )
+ {
+ CurOut()
+ >> *new Html::Link( StreamLock(200)()
+ << referingCe()->LocalName()
+ << ".html#"
+ << i_member
+ << c_str )
+ << i_member;
+ return;
+ }
+
+ String sDummyMember;
+ Env().Data().Get_CeText(aModule_, sName, sDummyMember, *referingCe());
+ produce_FromStd(aModule_, sName, i_member, 0, exists_yes);
+}
+
+void
+HF_IdlTypeText::Produce_IndexLink( Xml::Element & o_out,
+ const client & i_ce ) const
+{
+ static StringVector aModule_;
+ String sCe;
+ String sMember;
+ csv::erase_container(aModule_);
+
+ Out().Enter(o_out);
+
+ Env().Data().Get_CeText(aModule_, sCe, sMember, i_ce);
+ produce_IndexLink(aModule_, sCe, sMember, false);
+
+ Out().Leave();
+}
+
+void
+HF_IdlTypeText::Produce_IndexOwnerLink( Xml::Element & o_out,
+ const client & i_ce ) const
+{
+ static StringVector aModule_;
+ String sCe;
+ String sMember;
+ csv::erase_container(aModule_);
+
+ Out().Enter(o_out);
+
+ if (i_ce.Owner().IsValid())
+ {
+ Env().Data().Get_CeText(aModule_, sCe, sMember, i_ce);
+ produce_IndexLink(aModule_, sCe, sMember, true);
+ }
+ else
+ { // global namespace:
+
+ CurOut()
+ << "."
+ >> *new Html::Link("../module-ix.html")
+ << "global namespace";
+ }
+
+
+ Out().Leave();
+}
+
+void
+HF_IdlTypeText::produce_FromStd( const StringVector & i_module,
+ const String & i_ce,
+ const String & i_member,
+ int i_sequenceCount,
+ E_Existence i_ceExists ) const
+{
+ output::Node &
+ rCeNode = Env().OutputTree().Provide_Node(i_module);
+ output::Position
+ aDestination(rCeNode);
+ bool
+ bShowModule = rCeNode != Env().CurPosition().RelatedNode()
+ ? i_module.size() > 0
+ : false;
+ bool
+ bUseMember = NOT i_member.empty();
+ bool
+ bLink2Module = i_ceExists == exists_yes;
+ bool
+ bLink2Ce = i_ceExists == exists_yes;
+ bool
+ bLink2Member = NOT Env().Is_MemberExistenceCheckRequired()
+ AND i_ceExists == exists_yes;
+ bool
+ bHasCeOrName = NOT i_ce.empty();
+
+ if (i_sequenceCount > 0)
+ start_Sequence(i_sequenceCount);
+
+ StreamLock aLink(300);
+ StreamStr & rLink = aLink();
+
+ // Produce output: module
+ if (bShowModule)
+ {
+ int nMax = i_module.size() - 1;
+ int nCount = 0;
+ StringVector::const_iterator
+ itm = i_module.begin();
+ for ( ;
+ nCount < nMax;
+ ++itm, ++nCount )
+ {
+ CurOut() << "::" << *itm;
+ }
+
+ CurOut() << "::";
+ if (bLink2Module)
+ {
+ aDestination.Set_File(output::ModuleFileName());
+ Env().Linker().Get_Link2Position(rLink, aDestination);
+ CurOut()
+ >> *new Html::Link( rLink.c_str() )
+ << *itm;
+ rLink.reset();
+ }
+ else
+ {
+ CurOut() << *itm;
+ }
+
+ if (bHasCeOrName)
+ CurOut() << "::";
+ } // end if (bShowModule)
+
+ // CodeEntity and member:
+ aDestination.Set_File( rLink << i_ce << ".html" << c_str );
+ rLink.reset();
+
+ if (bHasCeOrName)
+ {
+ if (bUseMember)
+ {
+ if (bLink2Member)
+ {
+ bool bFunction = strstr(i_member,"()") != 0;
+ String sMember( i_member );
+ if (bFunction)
+ sMember.assign(i_member.c_str(), sMember.length()-2);
+
+ Env().Linker().Get_Link2Member(rLink, aDestination, sMember);
+ CurOut()
+ << i_ce << "::"
+ >> *new Html::Link(rLink.c_str())
+ << i_member;
+ }
+ else
+ {
+ CurOut()
+ << i_ce << "::"
+ << i_member;
+ }
+ }
+ else
+ {
+ if (bLink2Ce)
+ {
+ Env().Linker().Get_Link2Position(rLink, aDestination);
+ CurOut()
+ >> *new Html::Link(rLink.c_str())
+ << i_ce;
+ }
+ else
+ {
+ CurOut() << i_ce;
+ }
+ }
+ } // endif (bHasCeOrName)
+
+ if (i_sequenceCount > 0)
+ finish_Sequence(i_sequenceCount);
+}
+
+void
+HF_IdlTypeText::produce_BuiltIn( const String & i_type,
+ int i_sequenceCount ) const
+{
+ if (i_sequenceCount > 0)
+ start_Sequence(i_sequenceCount);
+ CurOut() << i_type;
+ if (i_sequenceCount > 0)
+ finish_Sequence(i_sequenceCount);
+}
+
+void
+HF_IdlTypeText::produce_IndexLink( const StringVector & i_module,
+ const String & i_ce,
+ const String & i_member,
+ bool i_bIsOwner ) const
+{
+ output::Node &
+ rCeNode = Env().OutputTree().Provide_Node(i_module);
+ output::Position
+ aDestination(rCeNode);
+ bool
+ bShowModule = i_bIsOwner OR i_module.size() > 0 AND i_ce.empty();
+ bool
+ bShowNonModule = NOT bShowModule OR i_bIsOwner AND NOT i_ce.empty();
+ bool
+ bUseMember = NOT i_member.empty();
+
+ StreamLock aLink(300);
+ StreamStr & rLink = aLink();
+
+ // Produce output: module
+ if (bShowModule)
+ {
+ if (i_bIsOwner)
+ {
+ int nMax = bShowNonModule ? i_module.size() : i_module.size() - 1;
+ int nCount = 0;
+ for ( StringVector::const_iterator itm = i_module.begin();
+ nCount < nMax;
+ ++itm, ++nCount )
+ {
+ CurOut() << "::" << *itm;
+ }
+ CurOut() << ":: .";
+ }
+
+ if (NOT bShowNonModule)
+ {
+ aDestination.Set_File(output::ModuleFileName());
+ Env().Linker().Get_Link2Position(rLink, aDestination);
+ CurOut()
+ >> *new Html::Link( rLink.c_str() )
+ >> *new Html::Bold
+ << i_module.back();
+ rLink.reset();
+ }
+ } // end if (bShowModule)
+
+ if (bShowNonModule)
+ {
+ aDestination.Set_File( rLink << i_ce << ".html" << c_str );
+ rLink.reset();
+
+ if (bUseMember)
+ {
+ bool bFunction = strstr(i_member,"()") != 0;
+ String sMember( i_member );
+ if (bFunction)
+ sMember.assign(i_member.c_str(), sMember.length()-2);
+ Env().Linker().Get_Link2Member(rLink, aDestination, sMember);
+ CurOut()
+ >> *new Html::Link(rLink.c_str())
+ >> *new Html::Bold
+ << i_member;
+ }
+ else
+ {
+ Env().Linker().Get_Link2Position(rLink, aDestination);
+ if (i_bIsOwner)
+ {
+ CurOut()
+ >> *new Html::Link(rLink.c_str())
+ << i_ce;
+ }
+ else
+ {
+ CurOut()
+ >> *new Html::Link(rLink.c_str())
+ >> *new Html::Bold
+ << i_ce;
+ }
+ }
+ } // endif (bHasCeOrName)
+}
+
+int
+HF_IdlTypeText::count_Sequences( const char * i_sFullType ) const
+{
+ int ret = 0;
+
+ for ( const char * pCount = i_sFullType;
+ *pCount != 0;
+ )
+ {
+ pCount = strstr(pCount,"sequence");
+ if (pCount != 0)
+ {
+ pCount += sizeof("sequence"); // = strlen(sequence) + 1 for '<'.
+ if ( *(pCount-1) == '\0' )
+ {
+ // SYNTAX_ERR
+ return 0;
+ }
+ ++ret;
+ }
+ } // end for
+
+ return ret;
+}
+
+void
+HF_IdlTypeText::start_Sequence( int i_count ) const
+{
+ csv_assert( i_count > 0 );
+ for (int i = 0; i < i_count; ++i )
+ {
+ CurOut() << "sequence< ";
+ }
+}
+
+void
+HF_IdlTypeText::finish_Sequence( int i_count ) const
+{
+ csv_assert( i_count > 0 );
+ for (int i = 0; i < i_count; ++i )
+ {
+ CurOut() << " >";
+ }
+}
+
+
+
+
diff --git a/autodoc/source/display/idl/hfi_typetext.hxx b/autodoc/source/display/idl/hfi_typetext.hxx
new file mode 100644
index 000000000000..1b2158de9577
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_typetext.hxx
@@ -0,0 +1,156 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_typetext.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:49 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_TYPETEXT_HXX
+#define ADC_DISPLAY_HFI_TYPETEXT_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+
+class HF_IdlTypeText : public HtmlFactory_Idl
+{
+ public:
+ enum E_Index { use_for_javacompatible_index };
+
+ HF_IdlTypeText(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut,
+ bool i_bWithLink,
+ const client * i_pScopeGivingCe = 0 );
+ HF_IdlTypeText(
+ Environment & io_rEnv,
+ E_Index e );
+ virtual ~HF_IdlTypeText();
+
+ void Produce_byData(
+ ary::idl::Type_id i_idType ) const;
+ void Produce_byData(
+ ary::idl::Ce_id i_idCe ) const;
+ void Produce_byData(
+ const String & i_sFullName ) const;
+ void Produce_LinkInDocu(
+ const String & i_scope,
+ const String & i_name,
+ const String & i_member ) const;
+ void Produce_LocalLinkInDocu(
+ const String & i_member ) const;
+ void Produce_IndexLink(
+ Xml::Element & o_out,
+ const client & i_ce ) const;
+ void Produce_IndexOwnerLink(
+ Xml::Element & o_out,
+ const client & i_ce ) const;
+ private:
+ // Locals
+ enum E_Existence
+ {
+ exists_dontknow,
+ exists_yes,
+ exists_no
+ };
+
+ void produce_FromStd(
+ const StringVector &
+ i_module,
+ const String & i_ce,
+ const String & i_member,
+ int i_sequenceCount,
+ E_Existence i_ceExists ) const;
+ void produce_BuiltIn(
+ const String & i_type,
+ int i_sequenceCount ) const;
+ void produce_IndexLink(
+ const StringVector &
+ i_module,
+ const String & i_ce,
+ const String & i_member,
+ bool i_bIsOwner ) const;
+ int count_Sequences(
+ const char * i_sFullType ) const;
+ void start_Sequence(
+ int i_count ) const;
+ void finish_Sequence(
+ int i_count ) const;
+ const ary::idl::Module *
+ referingModule() const;
+ const client * referingCe() const;
+
+ // DATA
+ mutable const client *
+ pReferingCe;
+ bool bWithLink;
+};
+
+
+
+// IMPLEMENTATION
+
+
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hfi_xrefpage.cxx b/autodoc/source/display/idl/hfi_xrefpage.cxx
new file mode 100644
index 000000000000..1a294f6b03e7
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_xrefpage.cxx
@@ -0,0 +1,221 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_xrefpage.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:49 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "hfi_xrefpage.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_navibar.hxx"
+#include "hfi_typetext.hxx"
+#include "hi_env.hxx"
+
+
+namespace
+{
+
+const String
+ C_sTitleStart("uses of ");
+const String
+ C_sCRLF("\n");
+
+} // anonymous namespace
+
+
+
+HF_IdlXrefs::HF_IdlXrefs( Environment & io_rEnv,
+ Xml::Element & o_rOut,
+ const String & i_prefix,
+ const client & i_ce )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut),
+ rContentDirectory(*new Html::Paragraph),
+ pClient(&i_ce)
+{
+ produce_Main(i_prefix, i_ce);
+}
+
+HF_IdlXrefs::~HF_IdlXrefs()
+{
+}
+
+void
+HF_IdlXrefs::Write_ManualLinks( const client & i_ce ) const
+{
+ const StringVector &
+ rLinks2Refs = i_ce.Secondaries().Links2RefsInManual();
+ if ( rLinks2Refs.size() == 0 )
+ {
+ rContentDirectory
+ << "References in Developer Manual"
+ << new Html::LineBreak
+ << C_sCRLF;
+ return;
+ }
+
+
+ rContentDirectory
+ >> *new Html::Link("#devmanrefs")
+ << "References in Developer Manual"
+ << new Html::LineBreak
+ << C_sCRLF;
+
+ HF_SubTitleTable
+ aList(CurOut(), "devmanrefs", "References in Developer Manual", 1);
+ Xml::Element &
+ rOutCell = aList.Add_Row() >>* new Html::TableCell;
+
+ for ( StringVector::const_iterator it = rLinks2Refs.begin();
+ it != rLinks2Refs.end();
+ ++it )
+ {
+ rOutCell
+ >> *new Html::Link( Env().Link2Manual(*it))
+ << *it;
+ rOutCell
+ << new Html::LineBreak
+ << C_sCRLF;
+ } // end for
+
+ CurOut() << new Html::HorizontalLine();
+
+}
+
+void
+HF_IdlXrefs::Produce_List( const char * i_title,
+ const char * i_label,
+ ce_list & i_iterator ) const
+{
+ if (NOT i_iterator)
+ {
+ rContentDirectory
+ << i_title
+ << new Html::LineBreak
+ << C_sCRLF;
+ return;
+ }
+
+ csv_assert(*i_label == '#');
+
+ rContentDirectory
+ >> *new Html::Link(i_label)
+ << i_title
+ << new Html::LineBreak
+ << C_sCRLF;
+
+ HF_SubTitleTable
+ aList(CurOut(), i_label+1, i_title, 1);
+ Xml::Element &
+ rOutCell = aList.Add_Row() >>* new Html::TableCell;
+ HF_IdlTypeText
+ aTypeWriter(Env(), rOutCell, true, pClient);
+ for ( ce_list & it = i_iterator; it; ++it )
+ {
+ aTypeWriter.Produce_byData(*it);
+ rOutCell << new Html::LineBreak;
+ } // end for
+ CurOut() << new Html::HorizontalLine();
+}
+
+void
+HF_IdlXrefs::produce_Main( const String & i_prefix,
+ const client & i_ce ) const
+{
+ make_Navibar(i_ce);
+
+ HF_TitleTable
+ aTitle(CurOut());
+ aTitle.Produce_Title( StreamLock(200)()
+ << C_sTitleStart
+ << i_prefix
+ << " "
+ << i_ce.LocalName()
+ << c_str );
+
+ aTitle.Add_Row() << &rContentDirectory;
+ rContentDirectory
+ >> *new Html::Link( StreamLock(200)()
+ << i_ce.LocalName()
+ << ".html"
+ << c_str )
+ >> *new Html::Bold
+ << "back to "
+ << i_prefix
+ << " "
+ << i_ce.LocalName();
+ rContentDirectory
+ << new Html::LineBreak
+ << new Html::LineBreak
+ << C_sCRLF;
+
+ CurOut() << new Html::HorizontalLine();
+}
+
+void
+HF_IdlXrefs::make_Navibar( const client & i_ce ) const
+{
+ HF_IdlNavigationBar
+ aNaviBar(Env(), CurOut());
+ aNaviBar.Produce_CeXrefsMainRow(i_ce);
+ CurOut() << new Html::HorizontalLine();
+}
diff --git a/autodoc/source/display/idl/hfi_xrefpage.hxx b/autodoc/source/display/idl/hfi_xrefpage.hxx
new file mode 100644
index 000000000000..407141ca3380
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_xrefpage.hxx
@@ -0,0 +1,117 @@
+/*************************************************************************
+ *
+ * $RCSfile: hfi_xrefpage.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:50 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_XREFPAGE_HXX
+#define ADC_DISPLAY_HFI_XREFPAGE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+
+class HF_IdlXrefs : public HtmlFactory_Idl
+{
+ public:
+
+ HF_IdlXrefs(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut,
+ const String & i_prefix,
+ const client & i_ce);
+ virtual ~HF_IdlXrefs();
+
+ /** @descr
+ Only lists which are tried to be produced by this, will occur
+ in the content directory of the page. They will have links,
+ if the list has at least one element, else the list is
+ mentioned in the directory without link and won't appear as
+ a list below.
+
+ @param i_label [*i_label == '#']
+ */
+ void Produce_List(
+ const char * i_title,
+ const char * i_label,
+ ce_list & i_iterator ) const;
+ void Write_ManualLinks(
+ const client & i_ce ) const;
+
+ private:
+ // Locals
+ void produce_Main(
+ const String & i_prefix,
+ const client & i_ce ) const;
+ void make_Navibar(
+ const client & i_ce ) const;
+ // DATA
+ Xml::Element & rContentDirectory;
+ const client * pClient;
+};
+
+
+
+// IMPLEMENTATION
+
+#endif
diff --git a/autodoc/source/display/idl/hi_ary.cxx b/autodoc/source/display/idl/hi_ary.cxx
new file mode 100644
index 000000000000..8852ffa3045e
--- /dev/null
+++ b/autodoc/source/display/idl/hi_ary.cxx
@@ -0,0 +1,324 @@
+/*************************************************************************
+ *
+ * $RCSfile: hi_ary.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:51 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "hi_ary.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/ploc_dir.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_module.hxx>
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/i_type.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/idl/ip_type.hxx>
+
+
+inline const ary::idl::Gate &
+AryAccess::gate() const
+ { return rGate; }
+
+inline const ary::idl::CePilot &
+AryAccess::ces() const
+ { return rGate.Ces(); }
+
+inline const ary::idl::TypePilot &
+AryAccess::types() const
+ { return rGate.Types(); }
+
+inline const ary::idl::Module *
+AryAccess::find_SubModule( const ary::idl::Module & i_parent,
+ const String & i_name ) const
+{
+ ary::idl::Ce_id
+ nModule = i_parent.Search_Name(i_name);
+ return ces().Search_Module(nModule);
+}
+
+bool
+AryAccess::nextName( const char * & io_TextPtr,
+ String & o_name ) const
+{
+ if ( strncmp(io_TextPtr,"::", 2) == 0 )
+ io_TextPtr += 2;
+
+ const char * pEnd = strchr(io_TextPtr,':');
+ size_t nLen = pEnd == 0
+ ? strlen(io_TextPtr)
+ : pEnd - io_TextPtr;
+ o_name.assign(io_TextPtr, nLen);
+ io_TextPtr += nLen;
+ return nLen > 0;
+}
+
+
+
+AryAccess::AryAccess( const ary::idl::Gate & i_rGate )
+ : rGate(i_rGate)
+{
+}
+
+const ary::idl::Module &
+AryAccess::GlobalNamespace() const
+{
+ return ces().GlobalNamespace();
+}
+
+const ary::idl::Module &
+AryAccess::Find_Module( ary::idl::Ce_id i_ce ) const
+{
+ return ces().Find_Module(i_ce);
+}
+
+
+const ary::idl::CodeEntity &
+AryAccess::Find_Ce( ary::idl::Ce_id i_ce ) const
+{
+ return ces().Find_Ce(i_ce);
+}
+
+const ary::idl::Type &
+AryAccess::Find_Type( ary::idl::Type_id i_type ) const
+{
+ return types().Find_Type(i_type);
+}
+
+ary::idl::Ce_id
+AryAccess::CeFromType( ary::idl::Type_id i_type ) const
+{
+ return types().Search_CeRelatedTo(i_type);
+}
+
+bool
+AryAccess::IsBuiltInOrRelated( const ary::idl::Type & i_type ) const
+{
+ return types().IsBuiltInOrRelated(i_type);
+}
+
+bool
+AryAccess::Search_Ce( StringVector & o_module,
+ String & o_mainEntity,
+ String & o_memberEntity,
+ const char * i_sText,
+ const ary::idl::Module & i_referingScope ) const
+{
+ o_module.erase(o_module.begin(),o_module.end());
+ o_mainEntity = String::Null_();
+ o_memberEntity = String::Null_();
+
+ const ary::idl::Module * pModule = 0;
+
+ if ( strncmp(i_sText, "::", 2) == 0
+ OR strncmp(i_sText, "com::sun::star", 14) == 0 )
+ pModule = &GlobalNamespace();
+ else
+ {
+ pModule = &i_referingScope;
+ ces().Get_Text(o_module, o_mainEntity, o_memberEntity, *pModule);
+ }
+
+ const char * pNext = i_sText;
+ String sNextName;
+
+ // Find Module:
+ while ( nextName(pNext, sNextName) )
+ {
+ const ary::idl::Module *
+ pSub = find_SubModule(*pModule, sNextName);
+ if (pSub != 0)
+ {
+ pModule = pSub;
+ o_module.push_back(sNextName);
+ }
+ else
+ break;
+ }
+
+ // Find main CodeEntity:
+ if ( sNextName.length() == 0 )
+ return true;
+ ary::idl::Ce_id nCe = pModule->Search_Name(sNextName);
+ if (NOT nCe.IsValid())
+ return false;
+ o_mainEntity = sNextName;
+
+ // Find member:
+ if ( *pNext == 0 )
+ return true;
+ if (strchr(pNext,':') != 0)
+ return false; // This must not happen in IDL
+
+ int nMemberLen = strlen(pNext);
+ if ( nMemberLen > 2
+ ? *(pNext + nMemberLen - 2) == '('
+ : false )
+ {
+ nMemberLen -= 2;
+ }
+ o_memberEntity.assign(pNext,nMemberLen);
+
+#if 0
+// The following code avoids false links, but is rather expensive
+// in runtime time consumation.
+
+ const ary::idl::CodeEntity *
+ pCe = Find_Ce(nCe);
+ if (pCe == 0)
+ return false;
+
+ if ( NOT ary::idl::ifc_ce::attr::Search_Member(*pCe,o_memberEntity) )
+ return false;
+#endif
+
+ return true;
+}
+
+bool
+AryAccess::Search_CesModule( StringVector & o_module,
+ const String & i_scope,
+ const String & i_ce,
+ const ary::idl::Module & i_referingScope ) const
+{
+ o_module.erase(o_module.begin(),o_module.end());
+
+ const ary::idl::Module *
+ pModule = 0;
+
+ if ( strncmp(i_scope, "::", 2) == 0
+ OR strncmp(i_scope, "com::sun::star", 14) == 0 )
+ pModule = &GlobalNamespace();
+ else
+ {
+ pModule = &i_referingScope;
+ static String Dummy1;
+ static String Dummy2;
+ ces().Get_Text(o_module, Dummy1, Dummy2, *pModule);
+ }
+
+ const char * pNext = i_scope;
+ String sNextName;
+
+ // Find Module:
+ while ( nextName(pNext, sNextName) )
+ {
+ const ary::idl::Module *
+ pSub = find_SubModule(*pModule, sNextName);
+ if (pSub != 0)
+ {
+ pModule = pSub;
+ o_module.push_back(sNextName);
+ }
+ else
+ return false;
+ } // end while
+ return pModule->Search_Name(i_ce).IsValid();
+}
+
+const ary::idl::Module *
+AryAccess::Search_Module( const StringVector & i_nameChain ) const
+{
+ const ary::idl::Module * ret =
+ &GlobalNamespace();
+ for ( StringVector::const_iterator it = i_nameChain.begin();
+ it != i_nameChain.end();
+ ++it )
+ {
+ ret = find_SubModule(*ret, *it);
+ if (ret == 0)
+ break;
+ } // end for
+ return ret;
+}
+
+void
+AryAccess::Get_CeText( StringVector & o_module,
+ String & o_ce,
+ String & o_member,
+ const ary::idl::CodeEntity & i_ce ) const
+{
+ ces().Get_Text(o_module, o_ce, o_member, i_ce);
+}
+
+void
+AryAccess::Get_TypeText( StringVector & o_module,
+ String & o_sCe,
+ ary::idl::Ce_id & o_nCe,
+ int & o_sequenceCount,
+ const ary::idl::Type & i_type ) const
+{
+ i_type.Get_Text(o_module, o_sCe, o_nCe, o_sequenceCount, gate());
+}
+
+void
+AryAccess::Get_IndexData( std::vector<ary::idl::Ce_id> & o_data,
+ ary::idl::alphabetical_index::E_Letter i_letter ) const
+{
+ rGate.Secondaries().Get_AlphabeticalIndex(o_data, i_letter);
+}
+
+
+const ary::idl::CePilot &
+AryAccess::Ces() const
+{
+ return rGate.Ces();
+}
diff --git a/autodoc/source/display/idl/hi_ary.hxx b/autodoc/source/display/idl/hi_ary.hxx
new file mode 100644
index 000000000000..b3fba820767a
--- /dev/null
+++ b/autodoc/source/display/idl/hi_ary.hxx
@@ -0,0 +1,179 @@
+/*************************************************************************
+ *
+ * $RCSfile: hi_ary.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:51 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HI_ARY_HXX
+#define ADC_DISPLAY_HI_ARY_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include <ary/idl/i_language.hxx>
+ // PARAMETERS
+#include <ary/idl/ip_2s.hxx>
+
+
+namespace ary
+{
+namespace idl
+{
+ class Module;
+ class Gate;
+ class CePilot;
+ class TypePilot;
+}
+}
+namespace output
+{
+ class Position;
+}
+
+class AryAccess
+{
+ public:
+ // LIFECYCLE
+ AryAccess(
+ const ary::idl::Gate &
+ i_rGate );
+ // INQUIRY
+ const ary::idl::Module &
+ GlobalNamespace() const;
+ const ary::idl::Module &
+ Find_Module(
+ ary::idl::Ce_id i_ce ) const;
+ const ary::idl::CodeEntity &
+ Find_Ce(
+ ary::idl::Ce_id i_ce ) const;
+ const ary::idl::Type &
+ Find_Type(
+ ary::idl::Type_id i_type ) const;
+ ary::idl::Ce_id CeFromType(
+ ary::idl::Type_id i_type ) const;
+ bool IsBuiltInOrRelated(
+ const ary::idl::Type &
+ i_type ) const;
+ bool Search_Ce(
+ StringVector & o_module,
+ String & o_mainEntity,
+ String & o_memberEntity,
+ const char * i_sText,
+ const ary::idl::Module &
+ i_referingScope ) const;
+ bool Search_CesModule(
+ StringVector & o_module,
+ const String & i_scope,
+ const String & i_ce,
+ const ary::idl::Module &
+ i_referingScope ) const;
+ const ary::idl::Module *
+ Search_Module(
+ const StringVector &
+ i_nameChain ) const;
+
+ void Get_CeText(
+ StringVector & o_module,
+ String & o_ce,
+ String & o_member,
+ const ary::idl::CodeEntity &
+ i_ce ) const;
+ void Get_TypeText(
+ StringVector & o_module,
+ String & o_sCe,
+ ary::idl::Ce_id & o_nCe,
+ int & o_sequenceCount,
+ const ary::idl::Type &
+ i_type ) const;
+ void Get_IndexData(
+ std::vector<ary::idl::Ce_id> &
+ o_data,
+ ary::idl::alphabetical_index::E_Letter
+ i_letter ) const;
+
+ const ary::idl::CePilot &
+ Ces() const; // KORR
+ private:
+ const ary::idl::Module *
+ find_SubModule(
+ const ary::idl::Module &
+ i_parent,
+ const String & i_name ) const;
+
+ /// Gets "::"-separated names out of a string.
+ bool nextName(
+ const char * & io_TextPtr,
+ String & o_name ) const;
+
+
+ const ary::idl::Gate &
+ gate() const;
+ const ary::idl::CePilot &
+ ces() const;
+ const ary::idl::TypePilot &
+ types() const;
+ // DATA
+ const ary::idl::Gate &
+ rGate;
+};
+
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hi_display.cxx b/autodoc/source/display/idl/hi_display.cxx
new file mode 100644
index 000000000000..ac5a510e43cd
--- /dev/null
+++ b/autodoc/source/display/idl/hi_display.cxx
@@ -0,0 +1,208 @@
+/*************************************************************************
+ *
+ * $RCSfile: hi_display.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:52 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include <idl/hi_display.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/i_module.hxx>
+#include <toolkit/out_tree.hxx>
+#include "hi_ary.hxx"
+#include "hi_env.hxx"
+#include "hi_main.hxx"
+
+
+inline bool
+HtmlDisplay_Idl::IsModule( const ary::idl::CodeEntity & i_ce ) const
+{
+ return i_ce.ClassId() == ary::idl::Module::class_id;
+}
+
+inline const ary::idl::Module &
+HtmlDisplay_Idl::Module_Cast( const ary::idl::CodeEntity & i_ce ) const
+{
+ return static_cast< const ary::idl::Module& >(i_ce);
+}
+
+
+
+
+HtmlDisplay_Idl::HtmlDisplay_Idl()
+ : pCurPageEnv(),
+ pMainDisplay()
+{
+}
+
+HtmlDisplay_Idl::~HtmlDisplay_Idl()
+{
+}
+
+void
+HtmlDisplay_Idl::do_Run( const char * i_sOutputDirectory,
+ const ary::idl::Gate & i_rAryGate,
+ const display::CorporateFrame & i_rLayout )
+{
+ SetRunData( i_sOutputDirectory, i_rAryGate, i_rLayout );
+
+ Create_StartFile();
+ Create_FilesInNameTree();
+ Create_IndexFiles();
+ Create_FilesInProjectTree();
+ Create_PackageList();
+ Create_HelpFile();
+}
+
+void
+HtmlDisplay_Idl::SetRunData( const char * i_sOutputDirectory,
+ const ary::idl::Gate & i_rAryGate,
+ const display::CorporateFrame & i_rLayout )
+{
+ csv::ploc::Path aOutputDir( i_sOutputDirectory, true );
+ pCurPageEnv = new HtmlEnvironment_Idl( aOutputDir, i_rAryGate, i_rLayout );
+ pMainDisplay = new MainDisplay_Idl(*pCurPageEnv);
+}
+
+void
+HtmlDisplay_Idl::Create_StartFile()
+{
+}
+
+void
+HtmlDisplay_Idl::Create_FilesInNameTree()
+{
+ Cout() << "\nCreate files in subtree namespaces ..." << Endl();
+
+ const ary::idl::Module &
+ rGlobalNamespace = pCurPageEnv->Data().GlobalNamespace();
+ pCurPageEnv->Goto_Directory( pCurPageEnv->OutputTree().NamesRoot(), true );
+
+ RecursiveDisplay_Module(rGlobalNamespace);
+
+ Cout() << "... done." << Endl();
+}
+
+void
+HtmlDisplay_Idl::Create_IndexFiles()
+{
+ Cout() << "\nCreate files in subtree index ..." << Endl();
+ pCurPageEnv->Goto_Directory( pCurPageEnv->OutputTree().IndexRoot(), true );
+ pMainDisplay->WriteGlobalIndices();
+ Cout() << "... done.\n" << Endl();
+}
+
+typedef ary::Dyn_StdConstIterator<ary::idl::Ce_id> Dyn_CeIterator;
+typedef ary::StdConstIterator<ary::idl::Ce_id> CeIterator;
+
+void
+HtmlDisplay_Idl::RecursiveDisplay_Module( const ary::idl::Module & i_module )
+{
+ i_module.Visit(*pMainDisplay);
+
+ Dyn_CeIterator aMembers;
+ i_module.Get_Names(aMembers);
+
+ for ( CeIterator & iter = *aMembers;
+ iter;
+ ++iter )
+ {
+ const ary::idl::CodeEntity &
+ rCe = pCurPageEnv->Data().Find_Ce(*iter);
+
+ if ( NOT IsModule(rCe) )
+ rCe.Visit(*pMainDisplay);
+ else
+ {
+ pCurPageEnv->Goto_DirectoryLevelDown( rCe.LocalName(), true );
+ RecursiveDisplay_Module( Module_Cast(rCe) );
+ pCurPageEnv->Goto_DirectoryLevelUp();
+ }
+ } // end for
+}
+
+void
+HtmlDisplay_Idl::Create_FilesInProjectTree()
+{
+}
+
+void
+HtmlDisplay_Idl::Create_PackageList()
+{
+#if 0
+ Cout() << "\nCreate package list ..." << std::flush;
+
+ pCurPageEnv->CurPosition() = pCurPageEnv->OutputTree().Root();
+
+ // KORR
+ // ...
+
+ Cout() << " done." << Endl();
+#endif // 0
+}
+
+void
+HtmlDisplay_Idl::Create_HelpFile()
+{
+}
+
+
diff --git a/autodoc/source/display/idl/hi_env.cxx b/autodoc/source/display/idl/hi_env.cxx
new file mode 100644
index 000000000000..2987421c9344
--- /dev/null
+++ b/autodoc/source/display/idl/hi_env.cxx
@@ -0,0 +1,182 @@
+/*************************************************************************
+ *
+ * $RCSfile: hi_env.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:52 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "hi_env.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/ploc_dir.hxx>
+#include <cfrstd.hxx>
+#include <toolkit/out_tree.hxx>
+#include "hi_ary.hxx"
+#include "hi_linkhelper.hxx"
+
+
+
+const String C_s_index_files("index-files");
+
+const String C_sUseFileSuffix("-use.html");
+const String C_IndexA_FileName("index-1.html");
+
+
+HtmlEnvironment_Idl::HtmlEnvironment_Idl( const csv::ploc::Path & i_rOutputDir,
+ const ary::idl::Gate & i_rGate,
+ const display::CorporateFrame & i_rLayout )
+ : aOutputRoot(i_rOutputDir),
+ pData(new AryAccess(i_rGate)),
+ pOutputTree(new output::Tree),
+ aCurPosition(pOutputTree->Root()),
+ pLayout(&i_rLayout),
+ pLinker()
+{
+ StringVector aHelp;
+ pOutputTree->Set_NamesRoot(aHelp);
+
+ aHelp.push_back(output::IndexFilesDirName());
+ pOutputTree->Set_IndexRoot(aHelp);
+
+ (*aHelp.begin()) = String("com");
+ aHelp.push_back(String("sun"));
+ aHelp.push_back(String("star"));
+ pOutputTree->Set_Overview(aHelp, output::ModuleFileName() );
+
+ pLinker = new LinkHelper(*this);
+}
+
+HtmlEnvironment_Idl::~HtmlEnvironment_Idl()
+{
+}
+
+namespace
+{
+StringVector G_aChain;
+}
+
+void
+HtmlEnvironment_Idl::Goto_Directory( output::Position i_pos,
+ bool i_bCreateDirectoryIfNecessary )
+{
+ aCurPosition = i_pos;
+ aCurPath = aOutputRoot.MyPath();
+
+ aCurPosition.Get_Chain(G_aChain);
+ for ( StringVector::const_iterator it = G_aChain.begin();
+ it != G_aChain.end();
+ ++it )
+ {
+ aCurPath.DirChain() += *it;
+ }
+
+ if (i_bCreateDirectoryIfNecessary)
+ create_Directory(aCurPath);
+}
+
+void
+HtmlEnvironment_Idl::Goto_DirectoryLevelDown( const String & i_subDirName,
+ bool i_bCreateDirectoryIfNecessary )
+{
+ aCurPosition +=(i_subDirName);
+
+ aCurPath.SetFile(String::Null_());
+ aCurPath.DirChain() += i_subDirName;
+
+ if (i_bCreateDirectoryIfNecessary)
+ create_Directory(aCurPath);
+}
+
+void
+HtmlEnvironment_Idl::Goto_DirectoryLevelUp()
+{
+ aCurPosition -= 1;
+
+ aCurPath.SetFile(String::Null_());
+ aCurPath.DirChain() -= 1;
+}
+
+void
+HtmlEnvironment_Idl::Set_CurFile( const String & i_fileName )
+{
+ aCurPath.SetFile(i_fileName);
+}
+
+void
+HtmlEnvironment_Idl::create_Directory( const csv::ploc::Path & i_path )
+
+{
+ csv::ploc::Directory aCurDir(i_path);
+ if (NOT aCurDir.Exists())
+ aCurDir.PhysicalCreate();
+}
+
+const char *
+HtmlEnvironment_Idl::Link2Manual( const String & i_link ) const
+{
+ static StreamStr aLink_(200);
+ aLink_.reset();
+ aCurPosition.Get_LinkToRoot(aLink_);
+ aLink_ << "../devman/"
+ << i_link;
+ return aLink_.c_str();
+}
+
+
diff --git a/autodoc/source/display/idl/hi_env.hxx b/autodoc/source/display/idl/hi_env.hxx
new file mode 100644
index 000000000000..aac333cfe2b4
--- /dev/null
+++ b/autodoc/source/display/idl/hi_env.hxx
@@ -0,0 +1,179 @@
+/*************************************************************************
+ *
+ * $RCSfile: hi_env.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:54 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HI_ENV_HXX
+#define ADC_DISPLAY_HI_ENV_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include <cosv/ploc.hxx>
+#include <cosv/ploc_dir.hxx>
+ // PARAMETERS
+#include <toolkit/out_position.hxx>
+
+namespace ary
+{
+namespace idl
+{
+ class Gate;
+}
+}
+namespace display
+{
+ class CorporateFrame;
+}
+namespace output
+{
+ class Tree;
+}
+
+class AryAccess;
+class LinkHelper;
+
+/** @resp
+ Provides enviroment information to the HTML factory
+ classes.
+
+ @descr
+ All information that is not included in the data, especially
+ about the layout of the output tree and the access to
+ information from the repository are provided here.
+
+ @see HtmlFactory
+*/
+class HtmlEnvironment_Idl
+{
+ public:
+ // LIFECYCLE
+ HtmlEnvironment_Idl(
+ const csv::ploc::Path &
+ io_rOutputDir,
+ const ary::idl::Gate &
+ i_rGate,
+ const display::CorporateFrame &
+ i_rLayout );
+ ~HtmlEnvironment_Idl();
+
+ // OPERATIONS
+ void Goto_Directory(
+ output::Position i_pos,
+ bool i_bCreateDirectoryIfNecessary );
+ void Goto_DirectoryLevelDown(
+ const String & i_subDirName,
+ bool i_bCreateDirectoryIfNecessary );
+ void Goto_DirectoryLevelUp();
+ void Set_CurFile(
+ const String & i_fileName );
+
+ // INQUIRY
+ const AryAccess & Data() const { return *pData; }
+ const char * Link2Manual(
+ const String & i_link ) const;
+
+ /// This may be reimplemented for removing dead links to members.
+ bool Is_MemberExistenceCheckRequired() const
+ { return false; }
+
+ /// @return Holds only the current directory, not the current file.
+ output::Position & CurPosition() const { return aCurPosition; }
+ void Get_CurFilePath(
+ StreamStr & o_buffer ) const
+ { o_buffer << aCurPath; }
+
+ const display::CorporateFrame &
+ Layout() const { return *pLayout; }
+ const LinkHelper & Linker() const { return *pLinker; }
+
+ void Get_LinkTo(
+ StreamStr & o_result,
+ output::Position i_destination )
+ { CurPosition().Get_LinkTo(o_result, i_destination); }
+ // ACCESS
+ output::Tree & OutputTree() { return *pOutputTree; }
+
+ private:
+ // Local
+ void create_Directory(
+ const csv::ploc::Path &
+ i_path );
+
+ // DATA
+ csv::ploc::Directory
+ aOutputRoot;
+ csv::ploc::Path aCurPath;
+
+ Dyn<AryAccess> pData;
+ Dyn<output::Tree> pOutputTree;
+ mutable output::Position
+ aCurPosition;
+
+ const display::CorporateFrame *
+ pLayout;
+
+ Dyn<LinkHelper> pLinker;
+};
+
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hi_factory.cxx b/autodoc/source/display/idl/hi_factory.cxx
new file mode 100644
index 000000000000..ed9343b43e0f
--- /dev/null
+++ b/autodoc/source/display/idl/hi_factory.cxx
@@ -0,0 +1,299 @@
+/*************************************************************************
+ *
+ * $RCSfile: hi_factory.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:55 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "hi_factory.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_doc.hxx"
+#include "hfi_navibar.hxx"
+#include "hfi_tag.hxx"
+#include "hfi_typetext.hxx"
+#include "hi_linkhelper.hxx"
+
+
+extern const String
+ C_sCellStyle_SummaryLeft("imsum_left");
+extern const String
+ C_sCellStyle_SummaryRight("imsum_right");
+extern const String
+ C_sCellStyle_MDetail("imdetail");
+extern const String
+ C_sMemberTitle("membertitle");
+
+
+namespace
+{
+
+const char C_sSpace[92] = " "
+ " "
+ " ";
+}
+
+
+
+void
+HtmlFactory_Idl::produce_InternalLink( Xml::Element & o_screen,
+ const client & i_ce ) const
+{
+ StreamLock aLocalLink(100);
+ aLocalLink() << "#" << i_ce.LocalName();
+
+ o_screen
+ >> *new Html::TableCell
+ << new Html::ClassAttr( C_sCellStyle_SummaryLeft )
+ >> *new Html::Link( aLocalLink().c_str() )
+ << i_ce.LocalName();
+}
+
+void
+HtmlFactory_Idl::produce_ShortDoc( Xml::Element & o_screen,
+ const client & i_ce ) const
+{
+ Xml::Element &
+ rDetailsRowCell = o_screen
+ >> *new Html::TableCell
+ << new Html::ClassAttr( C_sCellStyle_SummaryRight );
+ HF_IdlShortDocu
+ aLinkDoc(Env(), rDetailsRowCell);
+ aLinkDoc.Produce_byData( i_ce );
+}
+
+void
+HtmlFactory_Idl::produce_Bases( Xml::Element & o_screen,
+ const client & i_ce,
+ const String & i_sLabel ) const
+{
+ ary::idl::Type_id nBaseT = baseOf(i_ce);
+ // ary::idl::ifc_interface::attr::Base(i_ce);
+ if ( nBaseT.IsValid() )
+ {
+ HF_DocEntryList
+ aDocList( o_screen );
+ aDocList.Produce_Term(i_sLabel);
+
+ int nDepth = 0;
+ Xml::Element &
+ rBaseList = aDocList.Produce_Definition()
+ >> *new Xml::AnElement("pre")
+ << new Xml::AnAttribute("style","font-family:monospace;");
+ recursive_ShowBases( rBaseList,
+ nBaseT,
+ nDepth );
+ csv_assert(nDepth > 0);
+ if (nDepth > 30)
+ nDepth = 30;
+ rBaseList
+ << (C_sSpace + 93 - 3*nDepth)
+ << "|\n"
+ << (C_sSpace + 93 - 3*nDepth)
+ << "+-"
+ >> *new Html::Bold
+ << i_ce.LocalName();
+ }
+}
+
+void
+HtmlFactory_Idl::produce_Members( ce_list & it_list,
+ const String & i_summaryTitle,
+ const String & i_summaryLabel,
+ const String & i_detailsTitle,
+ const String & i_detailsLabel ) const
+{
+ csv_assert( it_list );
+
+ HF_SubTitleTable
+ aSummary( CurOut(),
+ i_summaryLabel,
+ i_summaryTitle,
+ 2 );
+
+ HF_SubTitleTable
+ aDetails( CurOut(),
+ i_detailsLabel,
+ i_detailsTitle,
+ 1 );
+
+ for ( ; it_list; ++it_list )
+ {
+ const ary::idl::CodeEntity &
+ rCe = Env().Data().Find_Ce(*it_list);
+
+ Xml::Element &
+ rSummaryRow = aSummary.Add_Row();
+ produce_InternalLink(rSummaryRow, rCe);
+ produce_ShortDoc(rSummaryRow, rCe);
+
+ produce_MemberDetails(aDetails, rCe);
+ }
+}
+
+void
+HtmlFactory_Idl::write_Docu( Xml::Element & o_screen,
+ const client & i_ce ) const
+{
+ if (i_ce.Docu() != 0)
+ {
+ HF_DocEntryList
+ aDocuList( o_screen );
+ HF_IdlDocu
+ aDocu( Env(), aDocuList );
+ aDocu.Produce_byData(i_ce);
+ }
+
+ write_ManualLinks(o_screen, i_ce);
+}
+
+void
+HtmlFactory_Idl::write_ManualLinks( Xml::Element & o_screen,
+ const client & i_ce ) const
+{
+ const StringVector &
+ rLinks2Descrs = i_ce.Secondaries().Links2DescriptionInManual();
+ if ( rLinks2Descrs.size() == 0 )
+ return;
+
+ o_screen
+ >> *new Html::Label(C_sLocalManualLinks.c_str()+1) // Leave out the leading '#'.
+ << " ";
+ HF_DocEntryList
+ aDocuList( o_screen );
+ aDocuList.Produce_Term("Developer Manual");
+ for ( StringVector::const_iterator it = rLinks2Descrs.begin();
+ it != rLinks2Descrs.end();
+ ++it )
+ {
+ aDocuList.Produce_Definition()
+ >> *new Html::Link( Env().Link2Manual(*it))
+ << *it;
+ } // end for
+}
+
+void
+HtmlFactory_Idl::produce_MemberDetails( HF_SubTitleTable & o_table,
+ const client & ce ) const
+{
+ // Dummy, which does not need to do anything.
+}
+
+void
+HtmlFactory_Idl::recursive_ShowBases( Xml::Element & o_screen,
+ type_id i_baseType,
+ int & io_nDepth ) const
+{
+ // go up:
+ const ary::idl::CodeEntity *
+ pCe = Env().Linker().Search_CeFromType(i_baseType);
+ if (pCe == 0)
+ {
+ HF_IdlTypeText
+ aText( Env(), o_screen, pCe != 0 );
+ aText.Produce_byData( i_baseType );
+ o_screen
+ << "\n";
+ ++io_nDepth;
+ return;
+ }
+ else
+ {
+ ary::idl::Type_id nBaseT = baseOf(*pCe);
+ if (nBaseT.IsValid())
+ recursive_ShowBases(o_screen,nBaseT,io_nDepth);
+ else
+ {
+ HF_IdlTypeText
+ aText( Env(), o_screen, true );
+ aText.Produce_byData(pCe->CeId());
+ o_screen
+ << "\n";
+ ++io_nDepth;
+ return;
+ }
+ }
+
+ // go back down:
+ csv_assert(io_nDepth > 0);
+ if (io_nDepth > 30)
+ io_nDepth = 30;
+ o_screen
+ << (C_sSpace + 93 - 3*io_nDepth)
+ << "|\n"
+ << (C_sSpace + 93 - 3*io_nDepth)
+ << "+-";
+ HF_IdlTypeText
+ aBaseLink( Env(), o_screen, true );
+ aBaseLink.Produce_byData(pCe->CeId());
+ o_screen
+ << "\n";
+ ++io_nDepth;
+}
+
+HtmlFactory_Idl::type_id
+HtmlFactory_Idl::inq_BaseOf( const client & i_ce ) const
+{
+ // Unused dummy.
+ return type_id(0);
+}
+
diff --git a/autodoc/source/display/idl/hi_factory.hxx b/autodoc/source/display/idl/hi_factory.hxx
new file mode 100644
index 000000000000..fc0dfe13c257
--- /dev/null
+++ b/autodoc/source/display/idl/hi_factory.hxx
@@ -0,0 +1,166 @@
+/*************************************************************************
+ *
+ * $RCSfile: hi_factory.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:56 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HI_FACTORY_HXX
+#define ADC_DISPLAY_HI_FACTORY_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <toolkit/htmlfactory.hxx>
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/stdconstiter.hxx>
+#include <ary/idl/i_language.hxx>
+#include <toolkit/out_position.hxx>
+
+
+namespace ary
+{
+ namespace idl
+ {
+ class Module;
+ }
+}
+
+
+class HtmlEnvironment_Idl;
+class LinkHelper;
+class HF_NaviSubRow;
+class HF_SubTitleTable;
+
+
+class HtmlFactory_Idl : public HtmlFactory<HtmlEnvironment_Idl>
+{
+ public:
+ typedef ary::idl::CodeEntity client;
+ typedef ary::idl::Ce_id ce_id;
+ typedef ary::idl::Type_id type_id;
+ typedef ary::info::CodeInformation ce_info;
+
+ typedef ary::Dyn_StdConstIterator<ce_id> dyn_ce_list;
+ typedef ary::Dyn_StdConstIterator<type_id> dyn_type_list;
+ typedef ary::StdConstIterator<ce_id> ce_list;
+ typedef ary::StdConstIterator<type_id> type_list;
+
+ typedef HtmlEnvironment_Idl Environment;
+ typedef output::Position OutPosition;
+
+ protected:
+ HtmlFactory_Idl(
+ Environment & io_rEnv,
+ Xml::Element * o_pOut = 0 )
+ : HtmlFactory<Environment>(io_rEnv, o_pOut)
+ { }
+
+ void produce_InternalLink(
+ Xml::Element & o_row,
+ const client & i_ce ) const;
+ void produce_ShortDoc(
+ Xml::Element & o_row,
+ const client & i_ce ) const;
+ void produce_Bases(
+ Xml::Element & o_screen,
+ const client & i_ce,
+ const String & i_sLabel ) const;
+ void produce_Members(
+ ce_list & it_list,
+ const String & i_summaryTitle,
+ const String & i_summaryLabel,
+ const String & i_detailsTitle,
+ const String & i_detailsLabel ) const;
+
+ /// Writes complete docu in standard format.
+ void write_Docu(
+ Xml::Element & o_screen,
+ const client & i_ce ) const;
+
+ void write_ManualLinks(
+ Xml::Element & o_screen,
+ const client & i_ce ) const;
+ private:
+ // Dummy does nothing
+ virtual void produce_MemberDetails(
+ HF_SubTitleTable & o_table,
+ const client & i_ce ) const;
+ void recursive_ShowBases(
+ Xml::Element & o_screen,
+ type_id i_baseType,
+ int & io_nDepth ) const;
+ type_id baseOf(
+ const client & i_ce ) const
+ { return inq_BaseOf(i_ce); }
+ virtual type_id inq_BaseOf(
+ const client & i_ce ) const;
+};
+
+
+extern const String
+ C_sCellStyle_SummaryLeft;
+extern const String
+ C_sCellStyle_SummaryRight;
+extern const String
+ C_sCellStyle_MDetail;
+extern const String
+ C_sMemberTitle;
+
+
+#endif
diff --git a/autodoc/source/display/idl/hi_linkhelper.cxx b/autodoc/source/display/idl/hi_linkhelper.cxx
new file mode 100644
index 000000000000..0593c29dfe46
--- /dev/null
+++ b/autodoc/source/display/idl/hi_linkhelper.cxx
@@ -0,0 +1,144 @@
+/*************************************************************************
+ *
+ * $RCSfile: hi_linkhelper.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:57 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "hi_linkhelper.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_module.hxx>
+
+
+
+
+const ary::idl::Module *
+LinkHelper::Search_CurModule() const
+{
+ return Search_Module( rEnv.CurPosition().RelatedNode() );
+}
+
+const ary::idl::Module *
+LinkHelper::Search_Module( output::Node & i_node ) const
+{
+ static StringVector aNames_;
+
+ output::Node::relative_id
+ nId = i_node.RelatedNameRoom();
+ if (nId == 0)
+ {
+ csv::erase_container(aNames_);
+ i_node.Get_Chain(aNames_);
+ const ary::idl::Module * pModule =
+ rEnv.Data().Search_Module(aNames_);
+ if ( pModule == 0 )
+ return 0;
+ nId = static_cast<output::Node::relative_id>(pModule->Id());
+ rEnv.CurPosition().RelatedNode().Set_RelatedNameRoom(nId);
+ }
+
+ return & rEnv.Data().Find_Module( static_cast<ary::idl::Ce_id>(nId) );
+}
+
+LinkHelper::OutPosition
+LinkHelper::PositionOf_Ce(const CE & i_ce) const
+{
+ static StringVector aModule_;
+ csv::erase_container(aModule_);
+ String sCe;
+ String sMember;
+ rEnv.Data().Get_CeText(aModule_, sCe, sMember, i_ce);
+ output::Node &
+ rNode = rEnv.OutputTree().RootNode().Provide_Child(aModule_);
+ return OutPosition(rNode,sCe);
+}
+
+
+namespace
+{
+ const String C_sXrefsSuffix("-xref");
+}
+
+
+LinkHelper::OutPosition
+LinkHelper::PositionOf_CurXRefs( const String & i_ceName ) const
+{
+ return OutPosition( rEnv.CurPosition(),
+ StreamLock(100)() << i_ceName
+ << C_sXrefsSuffix
+ << ".html"
+ << c_str );
+}
+
+const String &
+LinkHelper::XrefsSuffix() const
+{
+ return C_sXrefsSuffix;
+}
+
+
+String
+nameChainLinker( const char * )
+{
+ static const String
+ sModuleFileName_( output::ModuleFileName() );
+ return sModuleFileName_;
+}
diff --git a/autodoc/source/display/idl/hi_linkhelper.hxx b/autodoc/source/display/idl/hi_linkhelper.hxx
new file mode 100644
index 000000000000..5d9ee867bd8b
--- /dev/null
+++ b/autodoc/source/display/idl/hi_linkhelper.hxx
@@ -0,0 +1,158 @@
+/*************************************************************************
+ *
+ * $RCSfile: hi_linkhelper.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:58 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HI_LINKHELPER_HXX
+#define ADC_DISPLAY_HI_LINKHELPER_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include "hi_ary.hxx"
+#include "hi_env.hxx"
+#include <toolkit/out_position.hxx>
+#include <toolkit/out_tree.hxx>
+
+
+class LinkHelper
+{
+ public:
+ typedef ary::idl::CodeEntity CE;
+ typedef output::Position OutPosition;
+
+ LinkHelper(
+ HtmlEnvironment_Idl &
+ io_rEnv )
+ : rEnv(io_rEnv) {}
+
+ OutPosition PositionOf_CurModule() const
+ { return OutPosition( rEnv.CurPosition(),
+ output::ModuleFileName()); }
+ OutPosition PositionOf_Ce(
+ const CE & i_ce ) const;
+
+ OutPosition PositionOf_CurXRefs(
+ const String & i_ceName) const;
+ OutPosition PositionOf_Index() const
+ { OutPosition ret1 = rEnv.OutputTree().IndexRoot();
+ return OutPosition( ret1, String(output::IndexFile_A()) ); }
+
+
+ const ary::idl::Module *
+ Search_CurModule() const;
+ const ary::idl::Module *
+ Search_Module(
+ output::Node & i_node ) const;
+
+ const CE * Search_CeFromType(
+ ary::idl::Type_id i_type ) const;
+
+
+// OutPosition Search_Ce(
+// String & o_member,
+// const char * i_sText,
+// OutPosition * i_referingScope = 0 ) const;
+
+// OutPosition PositionOf_Ce(
+// const char * i_sScope,
+// const char * i_sCeName ) const
+// { const CE *
+// pce = rEnv.Data().Search_Ce( i_sScope,
+// i_sCeName );
+// if (pce != 0) return rEnv.Data().PositionOfCe(*pce);
+// else return OutPosition(); }
+
+ void Get_Link2Position(
+ StreamStr & o_link,
+ OutPosition & i_pos ) const
+ { rEnv.CurPosition().Get_LinkTo(o_link, i_pos); }
+
+ void Get_Link2Member(
+ StreamStr & o_link,
+ OutPosition & i_ownerPos,
+ const String & i_memberName ) const
+ { Get_Link2Position(o_link, i_ownerPos);
+ o_link << "#" << i_memberName; }
+ const String & XrefsSuffix() const;
+
+ private:
+ // DATA
+ mutable HtmlEnvironment_Idl &
+ rEnv;
+};
+
+inline const ary::idl::CodeEntity *
+LinkHelper::Search_CeFromType( ary::idl::Type_id i_type ) const
+{
+ ary::idl::Ce_id nCe = rEnv.Data().CeFromType(i_type);
+ if (nCe.IsValid())
+ return &rEnv.Data().Find_Ce(nCe);
+ return 0;
+}
+
+
+
+String nameChainLinker(
+ const char * i_levelName );
+
+
+#endif
diff --git a/autodoc/source/display/idl/hi_main.cxx b/autodoc/source/display/idl/hi_main.cxx
new file mode 100644
index 000000000000..da327f3ec6a7
--- /dev/null
+++ b/autodoc/source/display/idl/hi_main.cxx
@@ -0,0 +1,634 @@
+/*************************************************************************
+ *
+ * $RCSfile: hi_main.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:14:59 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "hi_main.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <algorithm>
+#include <cosv/ploc.hxx>
+#include <cosv/file.hxx>
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/ik_ce.hxx>
+#include <ary/idl/ik_enum.hxx>
+#include <ary/idl/ik_exception.hxx>
+#include <ary/idl/ik_interface.hxx>
+#include <ary/idl/ik_service.hxx>
+#include <ary/idl/ik_struct.hxx>
+#include <ary/idl/ik_typedef.hxx>
+#include <cfrstd.hxx>
+#include <toolkit/htmlfile.hxx>
+#include <toolkit/out_position.hxx>
+#include <toolkit/out_tree.hxx>
+#include "hfi_constgroup.hxx"
+#include "hfi_enum.hxx"
+#include "hfi_globalindex.hxx"
+#include "hfi_interface.hxx"
+#include "hfi_module.hxx"
+#include "hfi_struct.hxx"
+#include "hfi_service.hxx"
+#include "hfi_singleton.hxx"
+#include "hfi_typedef.hxx"
+#include "hfi_xrefpage.hxx"
+#include "hi_env.hxx"
+#include "hi_linkhelper.hxx"
+
+
+using ::ary::idl::Ce_id;
+using ::ary::idl::Type_id;
+using ::ary::idl::ifc_ce::Dyn_CeIterator;
+
+
+/*
+typedef ::ary::Dyn_StdConstIterator< ::ary::idl::CommentedReference>
+ Dyn_ComRefIterator;
+namespace read_module = ::ary::idl::ifc_module;
+namespace read_interface = ::ary::idl::ifc_interface;
+namespace read_service = ::ary::idl::ifc_service;
+namespace read_struct = ::ary::idl::ifc_struct;
+namespace read_exception = ::ary::idl::ifc_exception;
+namespace read_enum = ::ary::idl::ifc_enum;
+namespace read_typedef = ::ary::idl::ifc_typedef;
+namespace read_constgroup = ::ary::idl::ifc_constantsgroup;
+*/
+
+namespace
+{
+
+/** @resp
+ Inits (constructor) and creates (destructor) the current
+ html documentation file ( MainDisplay_Idl.pMyFile ).
+*/
+class Guard_CurFile
+{
+ public:
+ Guard_CurFile( /// For CodeEntities
+ DocuFile_Html & io_client,
+ HtmlEnvironment_Idl &
+ io_env,
+ const String & i_ceName,
+ const String & i_titlePrefix );
+ Guard_CurFile( /// For Modules
+ DocuFile_Html & io_client,
+ HtmlEnvironment_Idl &
+ io_env );
+ Guard_CurFile( /// For Indices
+ DocuFile_Html & io_client,
+ HtmlEnvironment_Idl &
+ io_env,
+ char i_letter );
+ ~Guard_CurFile();
+ private:
+ DocuFile_Html & rClient;
+
+};
+
+/** @resp
+ Sets and releases the current factory pointer
+ ( MainDisplay_Idl.pCurFactory ).
+*/
+class Guard_CurFactoryPtr
+{
+ public:
+ Guard_CurFactoryPtr(
+ HtmlFactory_Idl *& io_client,
+ HtmlFactory_Idl & i_factory )
+ : rpClient(io_client)
+ { rpClient = &i_factory; }
+
+ ~Guard_CurFactoryPtr()
+ { rpClient = 0; }
+
+ private:
+ HtmlFactory_Idl *& rpClient;
+
+};
+
+
+Guard_CurFile::Guard_CurFile( DocuFile_Html & io_client,
+ HtmlEnvironment_Idl & io_env,
+ const String & i_ceName,
+ const String & i_titlePrefix )
+ : rClient(io_client)
+{
+ io_env.Set_CurFile( StreamLock(100)() << i_ceName
+ << ".html"
+ << c_str );
+ StreamLock aCurFilePath(700);
+ io_env.Get_CurFilePath(aCurFilePath());
+
+ rClient.EmptyBody();
+ rClient.SetLocation( aCurFilePath().c_str() );
+ rClient.SetTitle( StreamLock(100)() << i_titlePrefix << " " << i_ceName << c_str );
+}
+
+Guard_CurFile::Guard_CurFile( DocuFile_Html & io_client,
+ HtmlEnvironment_Idl & io_env )
+ : rClient(io_client)
+{
+ io_env.Set_CurFile( output::ModuleFileName() );
+ StreamLock aCurFilePath(700);
+ io_env.Get_CurFilePath(aCurFilePath());
+
+ rClient.EmptyBody();
+ rClient.SetLocation( aCurFilePath().c_str() );
+ rClient.SetTitle( StreamLock(100)() << "Module " << io_env.CurPosition().Name() << c_str );
+}
+
+Guard_CurFile::Guard_CurFile( DocuFile_Html & io_client,
+ HtmlEnvironment_Idl & io_env,
+ char i_letter )
+ : rClient(io_client)
+{
+ io_env.Set_CurFile( StreamLock(100)() << "index-"
+ << ( i_letter != '_'
+ ? int(i_letter)-'a'+1
+ : 27 )
+ << ".html"
+ << c_str );
+ StreamLock aCurFilePath(700);
+ io_env.Get_CurFilePath(aCurFilePath());
+
+ rClient.EmptyBody();
+ rClient.SetLocation( aCurFilePath().c_str() );
+ rClient.SetTitle( StreamLock(100)() << "Global Index "
+ << ( i_letter != '_'
+ ? char(i_letter-'a'+'A')
+ : '_' )
+ << c_str );
+}
+
+Guard_CurFile::~Guard_CurFile()
+{
+ rClient.CreateFile();
+}
+
+
+} // anonymous namespace
+
+
+
+
+MainDisplay_Idl::MainDisplay_Idl( HtmlEnvironment_Idl & io_rEnv )
+ : pEnv(&io_rEnv),
+ pMyFile(new DocuFile_Html),
+ pCurFactory(0)
+{
+ pMyFile->SetStyle( Env().Layout().CssStyle() );
+ pMyFile->SetCopyright( Env().Layout().CopyrightText() );
+}
+
+MainDisplay_Idl::~MainDisplay_Idl()
+{
+}
+
+
+void
+MainDisplay_Idl::WriteGlobalIndices()
+{
+ for ( const char * pLetter = "abcdefghijklmnopqrstuvwxyz_X"; *pLetter != 'X'; ++pLetter )
+ {
+ Guard_CurFile gFile( *pMyFile, Env(), *pLetter );
+
+ HF_IdlGlobalIndex aFactory( *pEnv, pMyFile->Body() );
+ Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
+
+ aFactory.Produce_Page( ary::idl::alphabetical_index::E_Letter(*pLetter) );
+ } // end for
+}
+
+
+void
+MainDisplay_Idl::do_Module( const ary::idl::CodeEntity & i_ce )
+{
+ Guard_CurFile gFile( *pMyFile,
+ Env() );
+ HF_IdlModule aFactory( *pEnv, pMyFile->Body() );
+ Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
+
+ aFactory.Produce_byData(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Interface( const ary::idl::CodeEntity & i_ce )
+{
+ do_InterfaceDescr(i_ce);
+ do_Interface2s(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Service( const ary::idl::CodeEntity & i_ce )
+{
+ do_ServiceDescr(i_ce);
+ do_Service2s(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Struct( const ary::idl::CodeEntity & i_ce )
+{
+ do_StructDescr(i_ce);
+ do_Struct2s(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Exception( const ary::idl::CodeEntity & i_ce )
+{
+ do_ExceptionDescr(i_ce);
+ do_Exception2s(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Enum( const ary::idl::CodeEntity & i_ce )
+{
+ do_EnumDescr(i_ce);
+ do_Enum2s(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Typedef( const ary::idl::CodeEntity & i_ce )
+{
+ do_TypedefDescr(i_ce);
+ do_Typedef2s(i_ce);
+}
+
+void
+MainDisplay_Idl::do_ConstantsGroup( const ary::idl::CodeEntity & i_ce )
+{
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ i_ce.LocalName(),
+ "Constants' Group" );
+ HF_IdlConstGroup aFactory( *pEnv, pMyFile->Body() );
+ Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
+
+ aFactory.Produce_byData(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Singleton( const ary::idl::CodeEntity & i_ce )
+{
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ i_ce.LocalName(),
+ "Singleton" );
+ HF_IdlSingleton aFactory( *pEnv, pMyFile->Body() );
+ Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
+
+ aFactory.Produce_byData(i_ce);
+}
+
+
+void
+MainDisplay_Idl::do_InterfaceDescr( const ary::idl::CodeEntity & i_ce )
+{
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ i_ce.LocalName(),
+ "Interface" );
+ HF_IdlInterface aInterface( *pEnv, pMyFile->Body() );
+ Guard_CurFactoryPtr gFactory(pCurFactory,aInterface);
+
+ aInterface.Produce_byData(i_ce);
+}
+
+void
+MainDisplay_Idl::do_ServiceDescr( const ary::idl::CodeEntity & i_ce )
+{
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ i_ce.LocalName(),
+ "Service" );
+ HF_IdlService aFactory( *pEnv, pMyFile->Body() );
+ Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
+
+ aFactory.Produce_byData(i_ce);
+}
+
+void
+MainDisplay_Idl::do_StructDescr( const ary::idl::CodeEntity & i_ce )
+{
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ i_ce.LocalName(),
+ "Struct" );
+ HF_IdlStruct aFactory( *pEnv, pMyFile->Body(), false );
+ Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
+
+ aFactory.Produce_byData(i_ce);
+}
+
+void
+MainDisplay_Idl::do_ExceptionDescr( const ary::idl::CodeEntity & i_ce )
+{
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ i_ce.LocalName(),
+ "Exception" );
+ HF_IdlStruct aFactory( *pEnv, pMyFile->Body(), true );
+ Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
+
+ aFactory.Produce_byData(i_ce);
+}
+
+void
+MainDisplay_Idl::do_EnumDescr( const ary::idl::CodeEntity & i_ce )
+{
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ i_ce.LocalName(),
+ "Enum" );
+ HF_IdlEnum aFactory( *pEnv, pMyFile->Body() );
+ Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
+
+ aFactory.Produce_byData(i_ce);
+}
+
+void
+MainDisplay_Idl::do_TypedefDescr( const ary::idl::CodeEntity & i_ce )
+{
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ i_ce.LocalName(),
+ "Typedef" );
+ HF_IdlTypedef aFactory( *pEnv, pMyFile->Body() );
+ Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
+
+ aFactory.Produce_byData(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Interface2s( const ary::idl::CodeEntity & i_ce )
+{
+ String sUsesFileName(
+ StreamLock(100)()
+ << i_ce.LocalName()
+ << Env().Linker().XrefsSuffix()
+ << c_str );
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ sUsesFileName,
+ "Uses of Interface" );
+ HF_IdlXrefs aUses( *pEnv,
+ pMyFile->Body(),
+ C_sCePrefix_Interface,
+ i_ce );
+
+ Dyn_CeIterator pXrefList;
+ ary::idl::ifc_interface::xref::Get_Derivations(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Derived Interfaces",
+ "#Deriveds",
+ *pXrefList );
+ ary::idl::ifc_interface::xref::Get_SynonymTypedefs(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Synonym Typedefs",
+ "#Synonyms",
+ *pXrefList );
+ ary::idl::ifc_interface::xref::Get_ExportingServices(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Services which Support this Interface",
+ "#SupportingServices",
+ *pXrefList );
+ ary::idl::ifc_interface::xref::Get_AsReturns(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Uses as Return Type",
+ "#Returns",
+ *pXrefList );
+ ary::idl::ifc_interface::xref::Get_AsParameters(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Uses as Parameter",
+ "#Parameters",
+ *pXrefList );
+ aUses.Write_ManualLinks(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Service2s( const ary::idl::CodeEntity & i_ce )
+{
+ String sUsesFileName(
+ StreamLock(100)()
+ << i_ce.LocalName()
+ << Env().Linker().XrefsSuffix()
+ << c_str );
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ sUsesFileName,
+ "Uses of Service" );
+ HF_IdlXrefs aUses( *pEnv,
+ pMyFile->Body(),
+ C_sCePrefix_Service,
+ i_ce );
+ Dyn_CeIterator pXrefList;
+ ary::idl::ifc_service::xref::Get_IncludingServices(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Services which Include this Service",
+ "#IncludingServices",
+ *pXrefList );
+
+ ary::idl::ifc_service::xref::Get_InstantiatingSingletons(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Singletons which Instantiate this Service",
+ "#Singletons",
+ *pXrefList );
+ aUses.Write_ManualLinks(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Struct2s( const ary::idl::CodeEntity & i_ce )
+{
+ String sUsesFileName(
+ StreamLock(100)()
+ << i_ce.LocalName()
+ << Env().Linker().XrefsSuffix()
+ << c_str );
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ sUsesFileName,
+ "Uses of Struct" );
+ HF_IdlXrefs aUses( *pEnv,
+ pMyFile->Body(),
+ C_sCePrefix_Struct,
+ i_ce );
+ Dyn_CeIterator pXrefList;
+ ary::idl::ifc_struct::xref::Get_Derivations(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Derived Structs",
+ "#Deriveds",
+ *pXrefList );
+ ary::idl::ifc_struct::xref::Get_SynonymTypedefs(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Synonym Typedefs",
+ "#Synonyms",
+ *pXrefList );
+ ary::idl::ifc_struct::xref::Get_AsReturns(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Uses as Return Type",
+ "#Returns",
+ *pXrefList );
+ ary::idl::ifc_struct::xref::Get_AsParameters(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Uses as Parameter",
+ "#Parameters",
+ *pXrefList );
+ aUses.Write_ManualLinks(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Exception2s( const ary::idl::CodeEntity & i_ce )
+{
+ String sUsesFileName(
+ StreamLock(100)()
+ << i_ce.LocalName()
+ << Env().Linker().XrefsSuffix()
+ << c_str );
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ sUsesFileName,
+ "Uses of Exception" );
+ HF_IdlXrefs aUses( *pEnv,
+ pMyFile->Body(),
+ C_sCePrefix_Exception,
+ i_ce );
+ Dyn_CeIterator pXrefList;
+ ary::idl::ifc_exception::xref::Get_Derivations(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Derived Exceptions",
+ "#Deriveds",
+ *pXrefList );
+ ary::idl::ifc_exception::xref::Get_RaisingFunctions(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Raising Functions",
+ "#Raisers",
+ *pXrefList );
+ aUses.Write_ManualLinks(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Enum2s( const ary::idl::CodeEntity & i_ce )
+{
+ String sUsesFileName(
+ StreamLock(100)()
+ << i_ce.LocalName()
+ << Env().Linker().XrefsSuffix()
+ << c_str );
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ sUsesFileName,
+ "Uses of Enum" );
+ HF_IdlXrefs aUses( *pEnv,
+ pMyFile->Body(),
+ C_sCePrefix_Enum,
+ i_ce );
+ Dyn_CeIterator pXrefList;
+ ary::idl::ifc_enum::xref::Get_SynonymTypedefs(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Synonym Typedefs",
+ "#Synonyms",
+ *pXrefList );
+ ary::idl::ifc_enum::xref::Get_AsReturns(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Uses as Return Type",
+ "#Returns",
+ *pXrefList );
+ ary::idl::ifc_enum::xref::Get_AsParameters(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Uses as Parameter",
+ "#Parameters",
+ *pXrefList );
+ aUses.Write_ManualLinks(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Typedef2s( const ary::idl::CodeEntity & i_ce )
+{
+ String sUsesFileName(
+ StreamLock(100)()
+ << i_ce.LocalName()
+ << Env().Linker().XrefsSuffix()
+ << c_str );
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ sUsesFileName,
+ "Uses of Typedef" );
+ HF_IdlXrefs aUses( *pEnv,
+ pMyFile->Body(),
+ C_sCePrefix_Typedef,
+ i_ce );
+ Dyn_CeIterator pXrefList;
+ ary::idl::ifc_typedef::xref::Get_SynonymTypedefs(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Synonym Typedefs",
+ "#Synonyms",
+ *pXrefList );
+ ary::idl::ifc_typedef::xref::Get_AsReturns(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Uses as Return Type",
+ "#Returns",
+ *pXrefList );
+ ary::idl::ifc_typedef::xref::Get_AsParameters(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Uses as Parameter",
+ "#Parameters",
+ *pXrefList );
+ aUses.Write_ManualLinks(i_ce);
+}
diff --git a/autodoc/source/display/idl/hi_main.hxx b/autodoc/source/display/idl/hi_main.hxx
new file mode 100644
index 000000000000..d561723f3a2c
--- /dev/null
+++ b/autodoc/source/display/idl/hi_main.hxx
@@ -0,0 +1,178 @@
+/*************************************************************************
+ *
+ * $RCSfile: hi_main.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:00 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFIDMAIN_HXX
+#define ADC_DISPLAY_HFIDMAIN_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ihost_ce.hxx>
+ // COMPONENTS
+#include "hi_factory.hxx"
+ // PARAMETERS
+
+
+class HtmlEnvironment_Idl;
+class HtmlFactory_Idl;
+class DocuFile_Html;
+
+
+class MainDisplay_Idl : public ary::idl::CeHost
+{
+ public:
+ MainDisplay_Idl(
+ HtmlEnvironment_Idl &
+ io_rEnv );
+ virtual ~MainDisplay_Idl();
+
+ void WriteGlobalIndices();
+
+ private:
+ // Interface ary::idl::CeHost:
+ virtual void do_Module(
+ const ary::idl::CodeEntity &
+ i_rData );
+ virtual void do_Service(
+ const ary::idl::CodeEntity &
+ i_rData );
+ virtual void do_Interface(
+ const ary::idl::CodeEntity &
+ i_rData );
+ virtual void do_Struct(
+ const ary::idl::CodeEntity &
+ i_rData );
+ virtual void do_Exception(
+ const ary::idl::CodeEntity &
+ i_rData );
+ virtual void do_Enum(
+ const ary::idl::CodeEntity &
+ i_rData );
+ virtual void do_Typedef(
+ const ary::idl::CodeEntity &
+ i_rData );
+ virtual void do_ConstantsGroup(
+ const ary::idl::CodeEntity &
+ i_rData );
+ virtual void do_Singleton(
+ const ary::idl::CodeEntity &
+ i_rData );
+ // Locals
+ void do_ServiceDescr(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_InterfaceDescr(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_StructDescr(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_ExceptionDescr(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_EnumDescr(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_TypedefDescr(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_SingletonDescr(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_Service2s(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_Interface2s(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_Struct2s(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_Exception2s(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_Enum2s(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_Typedef2s(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_Singleton2s(
+ const ary::idl::CodeEntity &
+ i_rData );
+
+ const HtmlEnvironment_Idl &
+ Env() const { return *pEnv; }
+ HtmlEnvironment_Idl &
+ Env() { return *pEnv; }
+ Xml::Element & CurHtmlOut() { return pCurFactory->CurOut(); }
+
+ // DATA
+ HtmlEnvironment_Idl *
+ pEnv;
+ Dyn<DocuFile_Html> pMyFile;
+ HtmlFactory_Idl * pCurFactory;
+};
+
+
+
+#endif
diff --git a/autodoc/source/display/idl/makefile.mk b/autodoc/source/display/idl/makefile.mk
new file mode 100644
index 000000000000..a693866c16df
--- /dev/null
+++ b/autodoc/source/display/idl/makefile.mk
@@ -0,0 +1,110 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.1 $
+#
+# last change: $Author: np $ $Date: 2002-11-01 17:15:01 $
+#
+# The Contents of this file are made available subject to the terms of
+# either of the following licenses
+#
+# - GNU Lesser General Public License Version 2.1
+# - Sun Industry Standards Source License Version 1.1
+#
+# Sun Microsystems Inc., October, 2000
+#
+# GNU Lesser General Public License Version 2.1
+# =============================================
+# Copyright 2000 by Sun Microsystems, Inc.
+# 901 San Antonio Road, Palo Alto, CA 94303, USA
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License version 2.1, as published by the Free Software Foundation.
+#
+# This library 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 for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+#
+# Sun Industry Standards Source License Version 1.1
+# =================================================
+# The contents of this file are subject to the Sun Industry Standards
+# Source License Version 1.1 (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.openoffice.org/license.html.
+#
+# Software provided under this License is provided on an "AS IS" basis,
+# WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+# See the License for the specific provisions governing your rights and
+# obligations concerning the Software.
+#
+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+#
+# Copyright: 2000 by Sun Microsystems, Inc.
+#
+# All Rights Reserved.
+#
+# Contributor(s): _______________________________________
+#
+#
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=autodoc
+TARGET=display_idl
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+# --- Files --------------------------------------------------------
+
+OBJFILES= \
+ $(OBJ)$/hfi_constgroup.obj \
+ $(OBJ)$/hfi_doc.obj \
+ $(OBJ)$/hfi_enum.obj \
+ $(OBJ)$/hfi_globalindex.obj \
+ $(OBJ)$/hfi_interface.obj \
+ $(OBJ)$/hfi_method.obj \
+ $(OBJ)$/hfi_module.obj \
+ $(OBJ)$/hfi_navibar.obj \
+ $(OBJ)$/hfi_property.obj \
+ $(OBJ)$/hfi_service.obj \
+ $(OBJ)$/hfi_singleton.obj \
+ $(OBJ)$/hfi_struct.obj \
+ $(OBJ)$/hfi_tag.obj \
+ $(OBJ)$/hfi_typedef.obj \
+ $(OBJ)$/hfi_typetext.obj \
+ $(OBJ)$/hfi_xrefpage.obj \
+ $(OBJ)$/hi_ary.obj \
+ $(OBJ)$/hi_display.obj \
+ $(OBJ)$/hi_env.obj \
+ $(OBJ)$/hi_factory.obj \
+ $(OBJ)$/hi_linkhelper.obj \
+ $(OBJ)$/hi_main.obj
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/autodoc/source/display/inc/cfrstd.hxx b/autodoc/source/display/inc/cfrstd.hxx
new file mode 100644
index 000000000000..6cdef02724c4
--- /dev/null
+++ b/autodoc/source/display/inc/cfrstd.hxx
@@ -0,0 +1,96 @@
+/*************************************************************************
+ *
+ * $RCSfile: cfrstd.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:12 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_CFRSTD_HXX
+#define ADC_CFRSTD_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <display/corframe.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+
+class StdFrame : public display::CorporateFrame
+{
+ public:
+ virtual DYN Html_Image *
+ LogoSrc() const;
+ virtual const char *
+ LogoLink() const;
+ virtual const char *
+ CopyrightText() const;
+ virtual const char *
+ CssStyle() const;
+};
+
+
+
+// IMPLEMENTATION
+
+
+
+
+#endif
+
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..4e3a292280f4
--- /dev/null
+++ b/autodoc/source/display/inc/idl/hi_display.hxx
@@ -0,0 +1,144 @@
+/*************************************************************************
+ *
+ * $RCSfile: hi_display.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:13 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#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();
+
+ /** @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
+
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..f3a593650234
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/hf_docentry.hxx
@@ -0,0 +1,93 @@
+/*************************************************************************
+ *
+ * $RCSfile: hf_docentry.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:15 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#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_Definition();
+};
+
+
+
+#endif
+
+
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..a99f3f625294
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/hf_funcdecl.hxx
@@ -0,0 +1,109 @@
+/*************************************************************************
+ *
+ * $RCSfile: hf_funcdecl.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:15 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HF_FUNCDECL_HXX
+#define ADC_DISPLAY_HF_FUNCDECL_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <toolkit/htmlfactory.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+/** @resp
+ Provides three cells to put in a function declaration.
+*/
+class HF_FunctionDeclaration : public HtmlMaker
+{
+ public:
+ HF_FunctionDeclaration(
+ Xml::Element & o_rParent );
+ virtual ~HF_FunctionDeclaration();
+
+ /// Inserts empty line in 2nd and 3rd cell and returns first.
+ Xml::Element & Add_ReturnLine();
+
+ /** Inserts empty line in 1st cell, "raises (" in 2nd
+ and returns 3rd.
+ */
+ Xml::Element & Add_RaisesLine(
+ const char * i_sRaisesText,
+ bool i_bSuppressExtraLine = false );
+
+ Xml::Element & Front() { return *pFront; }
+ Xml::Element & Types() { return *pTypes; }
+ Xml::Element & Names() { return *pNames; }
+
+ private:
+ Xml::Element * pFront;
+ Xml::Element * pTypes;
+ Xml::Element * pNames;
+};
+
+
+
+// IMPLEMENTATION
+
+
+
+#endif
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..3867472755e2
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/hf_linachain.hxx
@@ -0,0 +1,104 @@
+/*************************************************************************
+ *
+ * $RCSfile: hf_linachain.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:16 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of7 the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HF_LINACHAIN_HXX
+#define ADC_DISPLAY_HF_LINACHAIN_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "htmlfactory.hxx"
+#include "out_position.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+
+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(
+ output::Position & i_curPosition,
+ F_LinkMaker i_linkMaker ) const;
+ void Produce_CompleteChain_forModule(
+ output::Position & i_curPosition, /// current Module's node
+ F_LinkMaker i_linkMaker ) const;
+ private:
+ void produce_Level(
+ output::Node & i_levelNode,
+ output::Position & i_startPosition,
+ F_LinkMaker i_linkMaker ) const;
+};
+
+#endif
+
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..9fc56427f38f
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/hf_navi_main.hxx
@@ -0,0 +1,126 @@
+/*************************************************************************
+ *
+ * $RCSfile: hf_navi_main.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:17 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#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
+
+
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..5ada8f2ed7cc
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/hf_navi_sub.hxx
@@ -0,0 +1,115 @@
+/*************************************************************************
+ *
+ * $RCSfile: hf_navi_sub.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:17 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#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
+
+
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..c568bfa9a853
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/hf_title.hxx
@@ -0,0 +1,108 @@
+/*************************************************************************
+ *
+ * $RCSfile: hf_title.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:18 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#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 );
+ /// @return a Html::TableCell reference.
+ Xml::Element & Add_Row();
+};
+
+
+class HF_SubTitleTable : public HtmlMaker
+{
+ public:
+ /// @param i_nColumns [1 .. n]
+ HF_SubTitleTable(
+ Xml::Element & o_rOut,
+ const String & i_label,
+ const String & i_title,
+ int i_nColumns );
+ virtual ~HF_SubTitleTable();
+
+ /// @return an Html::TableRow reference.
+ Xml::Element & Add_Row();
+};
+
+
+// IMPLEMENTATION
+
+
+
+#endif
diff --git a/autodoc/source/display/inc/toolkit/htmlfactory.hxx b/autodoc/source/display/inc/toolkit/htmlfactory.hxx
new file mode 100644
index 000000000000..ef1f4fe62856
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/htmlfactory.hxx
@@ -0,0 +1,135 @@
+/*************************************************************************
+ *
+ * $RCSfile: htmlfactory.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:18 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#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); }
+ 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
+
+
diff --git a/autodoc/source/display/inc/toolkit/htmlfile.hxx b/autodoc/source/display/inc/toolkit/htmlfile.hxx
new file mode 100644
index 000000000000..0973c928b834
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/htmlfile.hxx
@@ -0,0 +1,119 @@
+/*************************************************************************
+ *
+ * $RCSfile: htmlfile.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:18 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#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;
+}
+
+class DocuFile_Html
+{
+ public:
+ // LIFECYCLE
+ DocuFile_Html();
+
+ void SetLocation(
+ const csv::ploc::Path &
+ i_rFilePath );
+ void SetTitle(
+ const char * i_sTitle );
+ void SetStyle(
+ const char * i_sStyle );
+ void SetBodyAttr(
+ const char * i_sAttrName,
+ const char * i_sAttrValue );
+ 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
+ udmstri sFilePath;
+ udmstri sTitle;
+ udmstri sLocation;
+ udmstri sStyle;
+ udmstri sCopyright;
+
+ Html::Body aBodyData;
+};
+
+
+
+#endif
+
+
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..e82c17cd55cc
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/out_node.hxx
@@ -0,0 +1,162 @@
+/*************************************************************************
+ *
+ * $RCSfile: out_node.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:19 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_OUT_NODE_HXX
+#define ADC_DISPLAY_OUT_NODE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+
+namespace output
+{
+
+
+/** @resp
+
+ @descr
+*/
+class Node
+{
+ public:
+ typedef std::vector< Node* > List;
+ typedef UINT32 relative_id;
+
+ // LIFECYCLE
+ enum E_NullObject { null_object };
+
+ Node();
+ explicit Node(
+ E_NullObject );
+ Node(
+ const String & i_name,
+ Node & i_parent );
+ ~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
+ Node & Provide_Child(
+ const String & i_name );
+ 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; }
+ 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 * 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
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..b4bfcbe082d2
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/out_position.hxx
@@ -0,0 +1,154 @@
+/*************************************************************************
+ *
+ * $RCSfile: out_position.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:19 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#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(
+ 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 LinkTo(
+ Position & i_destination,
+ const String & i_localLabel = String::Null_() ) const;
+ String LinkToRoot(
+ const String & i_localLabel = String::Null_() ) const;
+
+ void Get_LinkTo(
+ StreamStr & o_result,
+ 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() { 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(
+ intt i_depth );
+
+
+// IMPLEMENTATION
+
+inline void
+Position::Set_File( const String & i_file )
+ { sFile = i_file; }
+
+} // namespace output
+
+#endif
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..112598d6c34d
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/out_tree.hxx
@@ -0,0 +1,170 @@
+/*************************************************************************
+ *
+ * $RCSfile: out_tree.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:20 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#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
diff --git a/autodoc/source/display/inc/toolkit/outputstack.hxx b/autodoc/source/display/inc/toolkit/outputstack.hxx
new file mode 100644
index 000000000000..ebb669186be1
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/outputstack.hxx
@@ -0,0 +1,107 @@
+/*************************************************************************
+ *
+ * $RCSfile: outputstack.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:20 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#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
+
+
diff --git a/autodoc/source/display/kernel/displfct.cxx b/autodoc/source/display/kernel/displfct.cxx
index 6cf5491e6062..c4665d517d49 100644
--- a/autodoc/source/display/kernel/displfct.cxx
+++ b/autodoc/source/display/kernel/displfct.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: displfct.cxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: np $ $Date: 2002-05-14 09:02:12 $
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:22 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -65,8 +65,8 @@
// NOT FULLY DECLARED SERVICES
#include <html/chd_udk2.hxx>
-#include <html/hd_udk2.hxx>
-#include <html/cfrstd.hxx>
+#include <idl/hi_display.hxx>
+#include <cfrstd.hxx>
DYN DisplayToolsFactory * DisplayToolsFactory::dpTheInstance_ = 0;
@@ -110,7 +110,7 @@ DisplayToolsFactory::Create_HtmlDisplay_UdkStd() const
DYN autodoc::HtmlDisplay_Idl_Ifc *
DisplayToolsFactory::Create_HtmlDisplay_Idl() const
{
- return new IdlHtmlDisplay_Udk2;
+ return new HtmlDisplay_Idl;
}
const display::CorporateFrame &
diff --git a/autodoc/source/display/toolkit/hf_docentry.cxx b/autodoc/source/display/toolkit/hf_docentry.cxx
new file mode 100644
index 000000000000..c0fcb01a54b4
--- /dev/null
+++ b/autodoc/source/display/toolkit/hf_docentry.cxx
@@ -0,0 +1,99 @@
+/*************************************************************************
+ *
+ * $RCSfile: hf_docentry.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:23 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include <toolkit/hf_docentry.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+
+
+HF_DocEntryList::HF_DocEntryList( Xml::Element & o_out )
+ : HtmlMaker( o_out >>* new Html::DefList )
+{
+}
+
+HF_DocEntryList::~HF_DocEntryList()
+{
+}
+
+Xml::Element &
+HF_DocEntryList::Produce_Term(const char * i_sTerm )
+{
+ Xml::Element &
+ ret = CurOut()
+ >> *new Html::DefListTerm
+ >> *new Html::Bold;
+ if ( NOT csv::no_str(i_sTerm))
+ ret
+ << i_sTerm;
+ return ret;
+}
+
+Xml::Element &
+HF_DocEntryList::Produce_Definition()
+{
+ return CurOut()
+ >> *new Html::DefListDefinition;
+}
+
+
diff --git a/autodoc/source/display/toolkit/hf_funcdecl.cxx b/autodoc/source/display/toolkit/hf_funcdecl.cxx
new file mode 100644
index 000000000000..f48bbe1cd3d4
--- /dev/null
+++ b/autodoc/source/display/toolkit/hf_funcdecl.cxx
@@ -0,0 +1,116 @@
+/*************************************************************************
+ *
+ * $RCSfile: hf_funcdecl.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:23 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include <toolkit/hf_funcdecl.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+
+const String C_sValignTop("top");
+
+
+HF_FunctionDeclaration::HF_FunctionDeclaration( Xml::Element & o_rParent )
+ : HtmlMaker(o_rParent),
+ pFront(0),
+ pTypes(0),
+ pNames(0)
+{
+ Xml::Element &
+ rRow = CurOut()
+ >> *new Html::Table
+ << new Xml::AnAttribute("border","0")
+ >> *new Html::TableRow;
+ pFront = &(rRow >> *new Html::TableCell << new Html::VAlignAttr(C_sValignTop));
+ pTypes = &(rRow >> *new Html::TableCell << new Html::VAlignAttr(C_sValignTop));
+ pNames = &(rRow >> *new Html::TableCell << new Html::VAlignAttr(C_sValignTop));
+}
+
+HF_FunctionDeclaration::~HF_FunctionDeclaration()
+{
+}
+
+Xml::Element &
+HF_FunctionDeclaration::Add_ReturnLine()
+{
+ (*pTypes) << new Xml::XmlCode("&nbsp;<br>\n");
+ (*pNames) << new Xml::XmlCode("&nbsp;<br>\n");
+ return *pFront;
+}
+
+Xml::Element &
+HF_FunctionDeclaration::Add_RaisesLine( const char * i_sRaisesText,
+ bool i_bSuppressExtraLine )
+{
+ if (NOT i_bSuppressExtraLine)
+ {
+ (*pTypes) << new Xml::XmlCode("&nbsp;<br>");
+ (*pNames) << new Xml::XmlCode("&nbsp;<br>\n");
+ }
+ (*pTypes)
+ << new Xml::XmlCode("<p class=\"raise\">")
+ << i_sRaisesText
+ << new Xml::XmlCode("( </p>\n");
+ return *pNames;
+}
+
+ \ No newline at end of file
diff --git a/autodoc/source/display/toolkit/hf_linachain.cxx b/autodoc/source/display/toolkit/hf_linachain.cxx
new file mode 100644
index 000000000000..e9a8bd9d93cc
--- /dev/null
+++ b/autodoc/source/display/toolkit/hf_linachain.cxx
@@ -0,0 +1,145 @@
+/*************************************************************************
+ *
+ * $RCSfile: hf_linachain.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:24 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include <toolkit/hf_linachain.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <toolkit/out_position.hxx>
+
+
+
+HF_LinkedNameChain::HF_LinkedNameChain( Xml::Element & o_rOut )
+ : HtmlMaker( o_rOut
+ >> *new Html::Paragraph
+ << new Html::ClassAttr("namechain") )
+{
+}
+
+HF_LinkedNameChain::~HF_LinkedNameChain()
+{
+}
+
+void
+HF_LinkedNameChain::Produce_CompleteChain( output::Position & i_curPosition,
+ F_LinkMaker i_linkMaker ) const
+{
+ produce_Level(i_curPosition.RelatedNode(), i_curPosition, i_linkMaker);
+}
+
+void
+HF_LinkedNameChain::Produce_CompleteChain_forModule( output::Position & i_curPosition,
+ F_LinkMaker i_linkMaker ) const
+{
+ if (i_curPosition.Depth() == 0)
+ return;
+ produce_Level(*i_curPosition.RelatedNode().Parent(), i_curPosition, i_linkMaker);
+}
+
+
+
+namespace
+{
+
+StreamStr aLinkBuf(200);
+
+}
+
+void
+HF_LinkedNameChain::produce_Level( output::Node & i_levelNode,
+ output::Position & i_startPosition,
+ F_LinkMaker i_linkMaker ) const
+{
+ if ( i_levelNode.Depth() > 0 )
+ {
+ produce_Level( *i_levelNode.Parent(),
+ i_startPosition,
+ i_linkMaker );
+ }
+
+ aLinkBuf.reset();
+
+ String
+ sFileName = (*i_linkMaker)(i_levelNode.Name());
+ output::Position
+ aLevelPos(i_levelNode, sFileName);
+
+ i_startPosition.Get_LinkTo(aLinkBuf, aLevelPos);
+
+ if ( i_levelNode.Depth() > 0 )
+ {
+ CurOut()
+ >> *new Html::Link(aLinkBuf.c_str())
+ << new Html::ClassAttr("namechain")
+ << i_levelNode.Name();
+ CurOut() << " :: ";
+ }
+ else
+ {
+ CurOut()
+ >> *new Html::Link(aLinkBuf.c_str())
+ << new Html::ClassAttr("namechain")
+ << "::";
+ CurOut() << " ";
+ }
+}
diff --git a/autodoc/source/display/toolkit/hf_navi_main.cxx b/autodoc/source/display/toolkit/hf_navi_main.cxx
new file mode 100644
index 000000000000..cfad07db9050
--- /dev/null
+++ b/autodoc/source/display/toolkit/hf_navi_main.cxx
@@ -0,0 +1,273 @@
+/*************************************************************************
+ *
+ * $RCSfile: hf_navi_main.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:24 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include <toolkit/hf_navi_main.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/template/tpltools.hxx>
+
+
+
+//******************** MainItem and derived ones ***************//
+class HF_MainItem : public HtmlMaker
+{
+ public:
+ virtual ~HF_MainItem() {}
+ void Produce_Item() const { do_ProduceItem(); }
+ protected:
+ HF_MainItem(
+ Xml::Element & o_out )
+ : HtmlMaker(o_out) {}
+ private:
+ virtual void do_ProduceItem() const = 0;
+};
+
+
+namespace
+{
+
+class StdItem : public HF_MainItem
+{
+ public:
+ StdItem(
+ Xml::Element & o_out,
+ const char * i_sText,
+ const char * i_sLink );
+
+ ~StdItem();
+ private:
+ virtual void do_ProduceItem() const;
+
+ // DATA
+ udmstri sText;
+ udmstri sLink;
+};
+
+class SelfItem : public HF_MainItem
+{
+ public:
+ SelfItem(
+ Xml::Element & o_out,
+ const char * i_sText );
+ ~SelfItem();
+ private:
+ virtual void do_ProduceItem() const;
+
+ // DATA
+ udmstri sText;
+};
+
+class NoneItem : public HF_MainItem
+{
+ public:
+ NoneItem(
+ Xml::Element & o_out,
+ const char * i_sText );
+ ~NoneItem();
+ private:
+ virtual void do_ProduceItem() const;
+
+ // DATA
+ udmstri sText;
+};
+
+} // anonymous namespace
+
+
+
+//******************** HF_NaviMainRow ***************//
+
+
+
+HF_NaviMainRow::HF_NaviMainRow( Xml::Element & o_out )
+ : HtmlMaker(o_out),
+ aItems(),
+ pRow(0)
+{
+ aItems.reserve(5);
+
+ pRow =
+ &( CurOut()
+ >> *new Html::Table
+ << new Xml::AnAttribute( "border", "0" )
+ << new Xml::AnAttribute( "cellpadding", "3" )
+ << new Html::ClassAttr("lightbg")
+ >> *new Html::TableRow
+ );
+}
+
+HF_NaviMainRow::~HF_NaviMainRow()
+{
+ csv::erase_container_of_heap_ptrs(aItems);
+}
+
+void
+HF_NaviMainRow::Add_StdItem( const char * i_sText,
+ const char * i_sLink )
+{
+ aItems.push_back(new StdItem( *pRow,i_sText,i_sLink ));
+}
+
+void
+HF_NaviMainRow::Add_SelfItem( const char * i_sText )
+{
+ aItems.push_back(new SelfItem( *pRow,i_sText ));
+}
+
+void
+HF_NaviMainRow::Add_NoneItem( const char * i_sText )
+{
+ aItems.push_back(new NoneItem( *pRow,i_sText ));
+}
+
+void
+HF_NaviMainRow::Produce_Row()
+{
+ ItemList::iterator itEnd = aItems.end();
+ for ( ItemList::iterator iter = aItems.begin();
+ iter != itEnd;
+ ++iter )
+ {
+ (*iter)->Produce_Item();
+ }
+}
+
+
+
+
+//******************** MainItem and derived ones ***************//
+
+namespace
+{
+
+StdItem::StdItem( Xml::Element & o_out,
+ const char * i_sText,
+ const char * i_sLink )
+ : HF_MainItem(o_out),
+ sText(i_sText),
+ sLink(i_sLink)
+{
+}
+
+StdItem::~StdItem()
+{
+}
+
+void
+StdItem::do_ProduceItem() const
+{
+ Xml::Element &
+ rCell = CurOut() >>* new Html::TableCell;
+ rCell
+ << new Html::ClassAttr( "navimain" )
+ >> *new Html::Link(sLink.c_str())
+ << new Html::ClassAttr( "navimain" )
+ << sText.c_str();
+}
+
+SelfItem::SelfItem( Xml::Element & o_out,
+ const char * i_sText )
+ : HF_MainItem(o_out),
+ sText(i_sText)
+{
+}
+
+SelfItem::~SelfItem()
+{
+}
+
+void
+SelfItem::do_ProduceItem() const
+{
+ Xml::Element &
+ rCell = CurOut() >>* new Html::TableCell;
+ rCell
+ << new Html::ClassAttr( "navimainself" )
+ << sText.c_str();
+}
+
+NoneItem::NoneItem( Xml::Element & o_out,
+ const char * i_sText )
+ : HF_MainItem(o_out),
+ sText(i_sText)
+{
+}
+
+NoneItem::~NoneItem()
+{
+}
+
+void
+NoneItem::do_ProduceItem() const
+{
+ Xml::Element &
+ rCell = CurOut() >>* new Html::TableCell;
+ rCell
+ << new Html::ClassAttr( "navimainnone" )
+ << sText.c_str();
+}
+
+} // anonymous namespace
+
+
diff --git a/autodoc/source/display/toolkit/hf_navi_sub.cxx b/autodoc/source/display/toolkit/hf_navi_sub.cxx
new file mode 100644
index 000000000000..da8deff16ae9
--- /dev/null
+++ b/autodoc/source/display/toolkit/hf_navi_sub.cxx
@@ -0,0 +1,136 @@
+/*************************************************************************
+ *
+ * $RCSfile: hf_navi_sub.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:25 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include <toolkit/hf_navi_sub.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+
+
+HF_NaviSubRow::HF_NaviSubRow( Xml::Element & o_rOut )
+ : HtmlMaker(o_rOut),
+ aRow(),
+ pMyRow(0)
+{
+ Setup_Row();
+}
+
+HF_NaviSubRow::~HF_NaviSubRow()
+{
+}
+
+void
+HF_NaviSubRow::AddItem( const String & i_sText,
+ const String & i_sLink,
+ bool i_bSwitchOn )
+{
+ aRow.push_back( SubRow_Item( SubRow_Data(i_sText,i_sLink),
+ i_bSwitchOn ));
+}
+
+void
+HF_NaviSubRow::SwitchOn( int i_nIndex )
+{
+ if ( i_nIndex < int(aRow.size()) )
+ aRow[i_nIndex].second = true;
+}
+
+void
+HF_NaviSubRow::Setup_Row()
+{
+ Html::Table *
+ pTable = new Html::Table;
+ CurOut()
+ >> *pTable
+ << new Xml::AnAttribute( "border", "0" )
+ << new Xml::AnAttribute( "cellpadding", "0" );
+ pMyRow = &pTable->AddRow();
+}
+
+void
+HF_NaviSubRow::Produce_Row()
+{
+ for ( SubRow::const_iterator it = aRow.begin();
+ it != aRow.end();
+ ++it )
+ {
+ Xml::Element &
+ rCell = *pMyRow
+ >> *new Html::TableCell
+ << new Html::ClassAttr("navisub");
+ Xml::Element &
+ rGoon = (*it).second
+ ? ( rCell
+ >> *new Html::Link( StreamLock(100)()
+ << "#"
+ << (*it).first.second
+ << c_str )
+ << new Html::ClassAttr("navisub")
+ )
+ : rCell;
+ rGoon
+ << (*it).first.first;
+ }
+}
+
+
diff --git a/autodoc/source/display/toolkit/hf_title.cxx b/autodoc/source/display/toolkit/hf_title.cxx
new file mode 100644
index 000000000000..2afde9960da2
--- /dev/null
+++ b/autodoc/source/display/toolkit/hf_title.cxx
@@ -0,0 +1,155 @@
+/*************************************************************************
+ *
+ * $RCSfile: hf_title.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:25 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include <toolkit/hf_title.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <stdlib.h>
+
+
+const String C_sTitleBorder("0");
+const String C_sTitleWidth("100%");
+const String C_sTitlePadding("5");
+const String C_sTitleSpacing("3");
+
+const String C_sSubTitleBorder("1");
+const String C_sSubTitleWidth("100%");
+const String C_sSubTitlePadding("5");
+const String C_sSubTitleSpacing("0");
+const String C_sColSpan("colspan");
+
+
+HF_TitleTable::HF_TitleTable( Xml::Element & o_rOut )
+ : HtmlMaker(o_rOut >> *new Html::Table( C_sTitleBorder,
+ C_sTitleWidth,
+ C_sTitlePadding,
+ C_sTitleSpacing )
+ << new Html::StyleAttr("margin-bottom:6pt;") )
+{
+}
+
+HF_TitleTable::~HF_TitleTable()
+{
+}
+
+
+void
+HF_TitleTable::Produce_Title( const char * i_title )
+{
+ Add_Row()
+ << new Html::ClassAttr("title")
+ << i_title;
+}
+
+Xml::Element &
+HF_TitleTable::Add_Row()
+{
+ return CurOut()
+ >> *new Html::TableRow
+ >> *new Html::TableCell;
+}
+
+
+
+
+
+HF_SubTitleTable::HF_SubTitleTable( Xml::Element & o_rOut,
+ const String & i_label,
+ const String & i_title,
+ int i_nColumns )
+ : HtmlMaker( o_rOut
+ << new Html::Label(i_label)
+ >> *new Html::Table( C_sSubTitleBorder,
+ C_sSubTitleWidth,
+ C_sSubTitlePadding,
+ C_sSubTitleSpacing )
+ << new Html::ClassAttr("subtitle") )
+{
+ csv_assert(i_nColumns > 0);
+
+ Xml::Element &
+ rCell = CurOut()
+ >> *new Html::TableRow
+ >> *new Html::TableCell
+ << new Html::ClassAttr("subtitle") ;
+
+ if (i_nColumns > 1)
+ {
+ String sColumns = StreamLock(20)() << i_nColumns << c_str;
+ rCell
+ << new Xml::AnAttribute(C_sColSpan, sColumns);
+ }
+ rCell
+ << i_title;
+}
+
+HF_SubTitleTable::~HF_SubTitleTable()
+{
+}
+
+Xml::Element &
+HF_SubTitleTable::Add_Row()
+{
+ return CurOut() >> *new Html::TableRow;
+}
diff --git a/autodoc/source/display/toolkit/htmlfile.cxx b/autodoc/source/display/toolkit/htmlfile.cxx
new file mode 100644
index 000000000000..2e141475797f
--- /dev/null
+++ b/autodoc/source/display/toolkit/htmlfile.cxx
@@ -0,0 +1,194 @@
+/*************************************************************************
+ *
+ * $RCSfile: htmlfile.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:26 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <toolkit/htmlfile.hxx>
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/file.hxx>
+#include <udm/html/htmlitem.hxx>
+
+
+using namespace csi;
+using csi::xml::AnAttribute;
+
+DocuFile_Html::DocuFile_Html()
+ : sFilePath(),
+ sTitle(),
+ sLocation(),
+ sStyle(),
+ sCopyright(),
+ aBodyData()
+{
+ SetBodyAttr( "bgcolor", "#ffffff" );
+}
+
+void
+DocuFile_Html::SetLocation( const csv::ploc::Path & i_rFilePath )
+{
+ StreamLock sPath(1000);
+ i_rFilePath.Get( sPath() );
+
+ sFilePath = sPath().c_str();
+}
+
+void
+DocuFile_Html::SetTitle( const char * i_sTitle )
+{
+ sTitle = i_sTitle;
+}
+
+void
+DocuFile_Html::SetStyle( const char * i_sStyle )
+{
+ sStyle = i_sStyle;
+}
+
+void
+DocuFile_Html::SetBodyAttr( const char * i_sAttrName,
+ const char * i_sAttrValue )
+{
+ aBodyData << new AnAttribute( i_sAttrName, i_sAttrValue );
+}
+
+void
+DocuFile_Html::SetCopyright( const char * i_sCopyright )
+{
+ sCopyright = i_sCopyright;
+}
+
+void
+DocuFile_Html::EmptyBody()
+{
+ aBodyData.SetContent(0);
+ aBodyData
+ >> *new html::Label( "_top_" )
+ << " ";
+
+}
+
+bool
+DocuFile_Html::CreateFile()
+{
+ csv::File aFile(sFilePath, csv::CFM_CREATE);
+ if (NOT aFile.open())
+ {
+ Cerr() << "Can't create file " << sFilePath << "." << Endl();
+ return false;
+ }
+
+ WriteHeader(aFile);
+ WriteBody(aFile);
+
+ // Write end
+ static const char sCompletion[] = "\n</html>\n";
+ aFile.write( sCompletion );
+
+ aFile.close();
+ Cout() << '.' << Flush();
+ return true;
+}
+
+
+void
+DocuFile_Html::WriteHeader( csv::File & io_aFile )
+{
+ static const char s1[] =
+ "<html>\n<head>\n<title>";
+ static const char s2[] =
+ "</title>\n<style>";
+ static const char s3[] =
+ "</style>\n</head>\n";
+
+ io_aFile.write( s1 );
+ io_aFile.write( sTitle );
+ io_aFile.write( s2 );
+ io_aFile.write( sStyle );
+ io_aFile.write( s3 );
+}
+
+void
+DocuFile_Html::WriteBody( csv::File & io_aFile )
+{
+ aBodyData
+ >> *new html::Link( "#_top_" )
+ << "Top of Page";
+
+ if ( sCopyright.length() > 0 )
+ {
+ aBodyData
+ << new xml::XmlCode("<hr size=\"3\">");
+
+ aBodyData
+ >> *new html::Paragraph
+ << new html::ClassAttr( "copyright" )
+ << new xml::AnAttribute( "align", "center" )
+ << new xml::XmlCode(sCopyright);
+ }
+ aBodyData.WriteOut(io_aFile);
+}
+
+
+
+
+
+
+
diff --git a/autodoc/source/display/toolkit/makefile.mk b/autodoc/source/display/toolkit/makefile.mk
new file mode 100644
index 000000000000..7b5abd6d6a0c
--- /dev/null
+++ b/autodoc/source/display/toolkit/makefile.mk
@@ -0,0 +1,99 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.1 $
+#
+# last change: $Author: np $ $Date: 2002-11-01 17:15:26 $
+#
+# The Contents of this file are made available subject to the terms of
+# either of the following licenses
+#
+# - GNU Lesser General Public License Version 2.1
+# - Sun Industry Standards Source License Version 1.1
+#
+# Sun Microsystems Inc., October, 2000
+#
+# GNU Lesser General Public License Version 2.1
+# =============================================
+# Copyright 2000 by Sun Microsystems, Inc.
+# 901 San Antonio Road, Palo Alto, CA 94303, USA
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License version 2.1, as published by the Free Software Foundation.
+#
+# This library 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 for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+#
+# Sun Industry Standards Source License Version 1.1
+# =================================================
+# The contents of this file are subject to the Sun Industry Standards
+# Source License Version 1.1 (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.openoffice.org/license.html.
+#
+# Software provided under this License is provided on an "AS IS" basis,
+# WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+# See the License for the specific provisions governing your rights and
+# obligations concerning the Software.
+#
+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+#
+# Copyright: 2000 by Sun Microsystems, Inc.
+#
+# All Rights Reserved.
+#
+# Contributor(s): _______________________________________
+#
+#
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=autodoc
+TARGET=display_toolkit
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+# --- Files --------------------------------------------------------
+
+OBJFILES= \
+ $(OBJ)$/hf_docentry.obj \
+ $(OBJ)$/hf_funcdecl.obj \
+ $(OBJ)$/hf_linachain.obj \
+ $(OBJ)$/hf_navi_main.obj \
+ $(OBJ)$/hf_navi_sub.obj \
+ $(OBJ)$/hf_title.obj \
+ $(OBJ)$/htmlfile.obj \
+ $(OBJ)$/out_node.obj \
+ $(OBJ)$/out_position.obj \
+ $(OBJ)$/out_tree.obj \
+ $(OBJ)$/outputstack.obj
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/autodoc/source/display/toolkit/out_node.cxx b/autodoc/source/display/toolkit/out_node.cxx
new file mode 100644
index 000000000000..fd65e8479def
--- /dev/null
+++ b/autodoc/source/display/toolkit/out_node.cxx
@@ -0,0 +1,265 @@
+/*************************************************************************
+ *
+ * $RCSfile: out_node.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:27 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include <toolkit/out_node.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <algorithm>
+
+
+namespace output
+{
+
+
+namespace
+{
+
+struct Less_NodePtr
+{
+ bool operator()(
+ Node * p1,
+ Node * p2 ) const
+ { return p1->Name() < p2->Name(); }
+};
+
+struct Less_NodePtr C_Less_NodePtr;
+
+
+Node C_aNullNode(Node::null_object);
+
+
+} // namepace anonymous
+
+
+//********************** Node ***************************//
+
+
+Node::Node()
+ : sName(),
+ pParent(0),
+ aChildren(),
+ nDepth(0),
+ nNameRoomId(0)
+{
+}
+
+Node::Node( E_NullObject )
+ : sName(),
+ pParent(0),
+ aChildren(),
+ nDepth(-1),
+ nNameRoomId(0)
+{
+}
+
+Node::Node( const String & i_name,
+ Node & i_parent )
+ : sName(i_name),
+ pParent(&i_parent),
+ aChildren(),
+ nDepth(i_parent.Depth()+1),
+ nNameRoomId(0)
+{
+}
+
+Node::~Node()
+{
+ for ( List::iterator it = aChildren.begin();
+ it != aChildren.end();
+ ++it )
+ {
+ delete *it;
+ }
+}
+
+Node &
+Node::Provide_Child( const String & i_name )
+{
+ Node * ret = find_Child(i_name);
+ if (ret != 0)
+ return *ret;
+ return add_Child(i_name);
+}
+
+void
+Node::Get_Path( StreamStr & o_result,
+ intt i_maxDepth ) const
+{
+ // Intentionally 'i_maxDepth != 0', so max_Depth == -1 sets no limit:
+ if (i_maxDepth != 0)
+ {
+ if (pParent != 0)
+ pParent->Get_Path(o_result, i_maxDepth-1);
+ o_result << sName << '/';
+ }
+}
+
+void
+Node::Get_Chain( StringVector & o_result,
+ intt i_maxDepth ) const
+{
+ if (i_maxDepth != 0)
+ {
+ // This is called also for the toplevel Node,
+ // but there happens nothing:
+ if (pParent != 0)
+ {
+ pParent->Get_Chain(o_result, i_maxDepth-1);
+ o_result.push_back(sName);
+ }
+ }
+}
+
+Node *
+Node::find_Child( const String & i_name )
+{
+ // Trying to optimise search in a vector:
+
+ uintt nSize = aChildren.size();
+ if ( nSize > 0 AND nSize < 20 )
+ {
+ List::const_iterator it = aChildren.begin();
+ List::const_iterator itMiddle = it + nSize/2;
+ int comp = 0;
+
+ if ( i_name < (*itMiddle)->Name() )
+ {
+ for ( ;
+ it != itMiddle
+ ? (comp = csv::compare(i_name, (*it)->Name())) <= 0
+ : false;
+ ++it )
+ {
+ if ( comp == 0 )
+ return *it;
+ } // end for
+ }
+ else
+ {
+ List::const_iterator itEnd = aChildren.end();
+ for ( it = itMiddle;
+ it != itEnd
+ ? (comp = csv::compare(i_name, (*it)->Name())) <= 0
+ : false;
+ ++it )
+ {
+ if ( comp == 0 )
+ return *it;
+ } // end for
+ }
+ }
+ else if (nSize > 0)
+ {
+ Node aSearch;
+ aSearch.sName = i_name;
+
+ List::const_iterator
+ ret = std::lower_bound( aChildren.begin(),
+ aChildren.end(),
+ &aSearch,
+ C_Less_NodePtr );
+ if ( ret != aChildren.end() ? (*ret)->Name() == i_name : false )
+ return *ret;
+ }
+
+ return 0;
+}
+
+Node &
+Node::add_Child( const String & i_name )
+{
+ Dyn<Node> pNew( new Node(i_name,*this) );
+ Node * pSearch = pNew.Ptr(); // Necessary, because Release() invalidates pNew.
+
+ List::iterator
+ itNew = aChildren.insert( std::upper_bound( aChildren.begin(),
+ aChildren.end(),
+ pSearch,
+ C_Less_NodePtr ),
+ pSearch );
+ return *pNew.Release(); // Release, because it is hold by aChildren now.
+}
+
+Node &
+Node::provide_Child( StringVector::const_iterator i_next,
+ StringVector::const_iterator i_end )
+{
+ if (i_next == i_end)
+ return *this;
+ return Provide_Child(*i_next).provide_Child(i_next+1,i_end);
+}
+
+
+
+
+Node &
+Node::Null_()
+{
+ return C_aNullNode;
+}
+
+
+
+
+} // namespace output
diff --git a/autodoc/source/display/toolkit/out_position.cxx b/autodoc/source/display/toolkit/out_position.cxx
new file mode 100644
index 000000000000..54ecd107254b
--- /dev/null
+++ b/autodoc/source/display/toolkit/out_position.cxx
@@ -0,0 +1,260 @@
+/*************************************************************************
+ *
+ * $RCSfile: out_position.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:27 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include <toolkit/out_position.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+
+
+
+namespace output
+{
+
+
+
+namespace
+{
+
+const int C_nAssumedMaxLinkLength = 500;
+
+const int C_nMaxDepth = 30;
+char C_sUpLinkArray[3*C_nMaxDepth+1] =
+ "../../../../../../../../../../"
+ "../../../../../../../../../../"
+ "../../../../../../../../../../";
+
+const char * C_sUpLink = &C_sUpLinkArray[0];
+
+
+void move_ToParent(
+ Node * & io_node,
+ intt i_levels = 1 );
+
+void
+move_ToParent( Node * & io_node,
+ intt i_levels )
+{
+ for ( intt n = 0; n < i_levels; ++n )
+ {
+ csv_assert(io_node != 0);
+ io_node = io_node->Parent();
+ }
+}
+
+
+
+} // namepace anonymous
+
+
+
+Position::Position()
+ : sFile(),
+ pDirectory(&Node::Null_())
+{
+}
+
+
+Position::Position( Node & i_directory,
+ const String & i_file )
+ : sFile(i_file),
+ pDirectory(&i_directory)
+{
+}
+
+Position::Position( Position & i_directory,
+ const String & i_sDifferentFile )
+ : sFile(i_sDifferentFile),
+ pDirectory(i_directory.pDirectory)
+{
+}
+
+
+Position::~Position()
+{
+}
+
+
+Position &
+Position::operator=( Node & i_node )
+{
+ pDirectory = &i_node;
+ sFile.clear();
+ return *this;
+}
+
+Position &
+Position::operator+=( const String & i_nodeName )
+{
+ csv_assert(pDirectory != 0);
+
+ pDirectory = &pDirectory->Provide_Child(i_nodeName);
+ sFile.clear();
+
+ return *this;
+}
+
+Position &
+Position::operator-=( intt i_levels )
+{
+ csv_assert(pDirectory != 0);
+
+ pDirectory = pDirectory->Parent();
+ if (pDirectory == 0)
+ pDirectory = &Node::Null_();
+ sFile.clear();
+
+ return *this;
+}
+
+String
+Position::LinkTo( Position & i_destination,
+ const String & i_localLabel ) const
+{
+ StreamLock aLink(C_nAssumedMaxLinkLength);
+ StreamStr & rLink = aLink();
+ Get_LinkTo(rLink, i_destination, i_localLabel);
+ return rLink.c_str();
+}
+
+String
+Position::LinkToRoot( const String & i_localLabel ) const
+{
+ return StreamLock(C_nAssumedMaxLinkLength)() << get_UpLink(Depth()) << c_str;
+}
+
+void
+Position::Get_LinkTo( StreamStr & o_result,
+ Position & i_destination,
+ const String & i_localLabel ) const
+{
+ Node * p1 = pDirectory;
+ Node * p2 = i_destination.pDirectory;
+ intt diff = Depth() - i_destination.Depth();
+ intt pathLength1 = 0;
+ intt pathLength2 = 0;
+
+ if ( diff > 0 )
+ {
+ pathLength1 = diff;
+ move_ToParent(p1,pathLength1);
+ }
+ else if ( diff < 0 )
+ {
+ pathLength2 = -diff;
+ move_ToParent(p2,pathLength2);
+ }
+
+ while ( p1 != p2 )
+ {
+ move_ToParent(p1);
+ move_ToParent(p2);
+ ++pathLength1;
+ ++pathLength2;
+ }
+
+ o_result << get_UpLink(pathLength1);
+ i_destination.pDirectory->Get_Path(o_result, pathLength2);
+ o_result << i_destination.sFile;
+ if (i_localLabel.length())
+ o_result << "#" << i_localLabel;
+}
+
+void
+Position::Get_LinkToRoot( StreamStr & o_result,
+ const String & i_localLabel ) const
+{
+ o_result << get_UpLink(Depth());
+}
+
+void
+Position::Set( Node & i_node,
+ const String & i_file )
+{
+ sFile = i_file;
+ pDirectory = &i_node;
+}
+
+
+
+
+const char *
+get_UpLink(intt i_depth)
+{
+ if ( i_depth <= C_nMaxDepth )
+ return C_sUpLink + 3*(C_nMaxDepth - i_depth);
+
+
+ StreamLock aRet(i_depth*3 + 1);
+ StreamStr & rRet = aRet();
+ for ( intt nDepth = i_depth; nDepth > C_nMaxDepth; nDepth -= C_nMaxDepth )
+ {
+ rRet << C_sUpLink;
+ }
+ rRet << C_sUpLink + 3*(C_nMaxDepth - nDepth);
+ return rRet.c_str();
+}
+
+
+
+} // namespace output
diff --git a/autodoc/source/display/toolkit/out_tree.cxx b/autodoc/source/display/toolkit/out_tree.cxx
new file mode 100644
index 000000000000..af87503bcc54
--- /dev/null
+++ b/autodoc/source/display/toolkit/out_tree.cxx
@@ -0,0 +1,88 @@
+/*************************************************************************
+ *
+ * $RCSfile: out_tree.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:28 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include <toolkit/out_tree.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+
+
+namespace output
+{
+
+Tree::Tree()
+ : pRoot(new Node),
+ pNamesRoot(pRoot.Ptr()),
+ pIndexRoot(pRoot.Ptr()),
+ pProjectsRoot(pRoot.Ptr()),
+ aOverview()
+{
+}
+
+Tree::~Tree()
+{
+}
+
+
+
+} // namespace output
diff --git a/autodoc/source/display/toolkit/outputstack.cxx b/autodoc/source/display/toolkit/outputstack.cxx
new file mode 100644
index 000000000000..622c67178e4f
--- /dev/null
+++ b/autodoc/source/display/toolkit/outputstack.cxx
@@ -0,0 +1,93 @@
+/*************************************************************************
+ *
+ * $RCSfile: outputstack.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: np $ $Date: 2002-11-01 17:15:28 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include <toolkit/outputstack.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+
+
+
+OutputStack::OutputStack()
+{
+}
+
+OutputStack::~OutputStack()
+{
+}
+
+void
+OutputStack::Enter( csi::xml::Element & io_rDestination )
+{
+ aCurDestination.push(&io_rDestination);
+}
+
+void
+OutputStack::Leave()
+{
+ csv_assert( NOT aCurDestination.empty() );
+ aCurDestination.pop();
+}
+
+
+