diff options
author | RĂ¼diger Timm <rt@openoffice.org> | 2004-07-12 14:30:13 +0000 |
---|---|---|
committer | RĂ¼diger Timm <rt@openoffice.org> | 2004-07-12 14:30:13 +0000 |
commit | 88a2f4b810dc2d836d9d2fba20ef609d9b2d1077 (patch) | |
tree | c9fe1d41ee972b5d369343a39de58e066ec8fa57 /autodoc/source/display/idl/hfi_xrefpage.cxx | |
parent | f7354d34a21c3ad903b9af0fdefbf4b1527cd7d7 (diff) |
INTEGRATION: CWS adc8 (1.4.4); FILE MERGED
2004/07/02 11:04:12 np 1.4.4.1: #i26261#
Diffstat (limited to 'autodoc/source/display/idl/hfi_xrefpage.cxx')
-rw-r--r-- | autodoc/source/display/idl/hfi_xrefpage.cxx | 85 |
1 files changed, 80 insertions, 5 deletions
diff --git a/autodoc/source/display/idl/hfi_xrefpage.cxx b/autodoc/source/display/idl/hfi_xrefpage.cxx index 7b7daf12174d..7a1899426dfc 100644 --- a/autodoc/source/display/idl/hfi_xrefpage.cxx +++ b/autodoc/source/display/idl/hfi_xrefpage.cxx @@ -2,9 +2,9 @@ * * $RCSfile: hfi_xrefpage.cxx,v $ * - * $Revision: 1.4 $ + * $Revision: 1.5 $ * - * last change: $Author: obo $ $Date: 2004-02-20 09:41:23 $ + * last change: $Author: rt $ $Date: 2004-07-12 15:30:13 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -66,6 +66,8 @@ // NOT FULLY DEFINED SERVICES #include <ary/idl/i_ce.hxx> +#include <ary/idl/i_gate.hxx> +#include <ary/idl/ip_ce.hxx> #include <toolkit/hf_title.hxx> #include "hfi_navibar.hxx" #include "hfi_typetext.hxx" @@ -148,8 +150,6 @@ HF_IdlXrefs::Write_ManualLinks( const client & i_ce ) const << C_sCRLF; ++it; } // end for - - CurOut() << new Html::HorizontalLine(); } void @@ -185,7 +185,47 @@ HF_IdlXrefs::Produce_List( const char * i_title, aTypeWriter.Produce_byData(*it); rOutCell << new Html::LineBreak; } // end for - CurOut() << new Html::HorizontalLine(); +} + +void +HF_IdlXrefs::Produce_Tree( const char * i_title, + const char * i_label, + const client & i_ce, + F_GET_SUBLIST i_sublistcreator ) const +{ + dyn_ce_list pResult; + (*i_sublistcreator)(pResult, i_ce); + + if (NOT (*pResult).operator bool()) + { + 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 & + rOut = aList.Add_Row() + >>* new Html::TableCell + >> *new csi::xml::AnElement("pre") + << new csi::html::StyleAttr("font-family:monospace;"); + + recursive_make_ListInTree( rOut, + 0, + i_ce, + *pResult, + i_sublistcreator ); } void @@ -230,3 +270,38 @@ HF_IdlXrefs::make_Navibar( const client & i_ce ) const aNaviBar.Produce_CeXrefsMainRow(i_ce); CurOut() << new Html::HorizontalLine(); } + +void +HF_IdlXrefs::recursive_make_ListInTree( Xml::Element & o_rDisplay, + uintt i_level, + const client & i_ce, + ce_list & i_iterator, + F_GET_SUBLIST i_sublistcreator ) const +{ + const char * sLevelIndentation = " "; + + HF_IdlTypeText + aTypeWriter(Env(), o_rDisplay, true, &i_ce); + for ( ; i_iterator.operator bool(); ++i_iterator ) + { + for (uintt i = 0; i < i_level; ++i) + { + o_rDisplay << sLevelIndentation; + } // end for + + aTypeWriter.Produce_byData(*i_iterator); + o_rDisplay << C_sCRLF; + + dyn_ce_list pResult; + const client & rCe = Env().Gate().Ces().Find_Ce(*i_iterator); + (*i_sublistcreator)(pResult, rCe); + if ( (*pResult).operator bool() ) + { + recursive_make_ListInTree( o_rDisplay, + i_level + 1, + rCe, + *pResult, + i_sublistcreator ); + } + } // end for +} |