diff options
author | Michi Henning <michi@zeroc.com> | 2007-01-24 06:42:18 +0000 |
---|---|---|
committer | Michi Henning <michi@zeroc.com> | 2007-01-24 06:42:18 +0000 |
commit | 0a8b6ce2325aff3ecb50386b74e7aa8227b50efe (patch) | |
tree | f38f38afba31e9c7cbe835a9907f34a1962b90e1 /cpp/src | |
parent | *** empty log message *** (diff) | |
download | ice-0a8b6ce2325aff3ecb50386b74e7aa8227b50efe.tar.bz2 ice-0a8b6ce2325aff3ecb50386b74e7aa8227b50efe.tar.xz ice-0a8b6ce2325aff3ecb50386b74e7aa8227b50efe.zip |
*** empty log message ***
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/slice2html/Gen.cpp | 44 | ||||
-rw-r--r-- | cpp/src/slice2html/Gen.h | 7 | ||||
-rw-r--r-- | cpp/src/slice2html/Main.cpp | 6 |
3 files changed, 53 insertions, 4 deletions
diff --git a/cpp/src/slice2html/Gen.cpp b/cpp/src/slice2html/Gen.cpp index 9182d73e3f4..3c694561ec7 100644 --- a/cpp/src/slice2html/Gen.cpp +++ b/cpp/src/slice2html/Gen.cpp @@ -35,7 +35,7 @@ void generate(const UnitPtr& unit, const string& dir, const string& header, const string& footer, const string& indexHeader, const string& indexFooter, - const string& imageDir, const string& logoURL, unsigned indexCount, unsigned warnSummary) + const string& imageDir, const string& logoURL, const string& searchAction, unsigned indexCount, unsigned warnSummary) { unit->mergeModules(); @@ -50,6 +50,7 @@ generate(const UnitPtr& unit, const string& dir, GeneratorBase::setFooter(footer); GeneratorBase::setImageDir(imageDir); GeneratorBase::setLogoURL(logoURL); + GeneratorBase::setSearchAction(searchAction); GeneratorBase::setIndexCount(indexCount); GeneratorBase::warnSummary(warnSummary); @@ -95,6 +96,7 @@ string Slice::GeneratorBase::_header2; string Slice::GeneratorBase::_footer; string Slice::GeneratorBase::_imageDir; string Slice::GeneratorBase::_logoURL; +string Slice::GeneratorBase::_searchAction; unsigned Slice::GeneratorBase::_indexCount = 0; unsigned Slice::GeneratorBase::_warnSummary = 0; ContainedList Slice::GeneratorBase::_symbols; @@ -155,6 +157,15 @@ Slice::GeneratorBase::setLogoURL(const string& logoURL) } // +// Set search action, if any. +// +void +Slice::GeneratorBase::setSearchAction(const string& searchAction) +{ + _searchAction = searchAction; +} + +// // Set the threshold at which we start generating sub-indexes. // If a page has fewer entries than this, we don't generate a // sub-index. (For example, with "ic" set to 3, we generate @@ -728,12 +739,41 @@ Slice::GeneratorBase::printHeaderFooter(const ContainedPtr& c) end(); end(); + printSearch(); + printLogo(c, container, onEnumPage); end(); } void +Slice::GeneratorBase::printSearch() +{ + if(!_searchAction.empty()) + { + _out << nl << "<div style=\"text-align: center;\">"; + _out.inc(); + start("table", "SearchTable"); + start("tr"); + start("td"); + _out << nl << "<form method=\"get\" action=\"" << _searchAction << "\"" + << " enctype=\"application/x-www-form-urlencoded\" class=\"form\">"; + _out.inc(); + start("div"); + _out << nl << "<input maxlength=\"100\" value=\"\" type=\"text\" name=\"query\">"; + _out << nl << "<input type=\"submit\" value=\"Search\" name=\"submit\">"; + end(); + _out.dec(); + _out << nl << "</form>"; + end(); + end(); + end(); + _out.dec(); + _out << nl << "</div>"; + } +} + +void Slice::GeneratorBase::printLogo(const ContainedPtr& c, const ContainerPtr& container, bool forEnum) { string imageDir = getImageDir(); @@ -1544,6 +1584,8 @@ Slice::StartPageGenerator::printHeaderFooter() end(); end(); + printSearch(); + if(!imageDir.empty()) { start("table", "LogoTable"); diff --git a/cpp/src/slice2html/Gen.h b/cpp/src/slice2html/Gen.h index d48405e71b5..408ee5772ed 100644 --- a/cpp/src/slice2html/Gen.h +++ b/cpp/src/slice2html/Gen.h @@ -17,7 +17,8 @@ namespace Slice { void generate(const UnitPtr&, const ::std::string&, const ::std::string&, const ::std::string&, const std::string&, - const ::std::string&, const ::std::string&, const ::std::string&, unsigned, unsigned); + const ::std::string&, const ::std::string&, const ::std::string&, const ::std::string&, + unsigned, unsigned); typedef ::std::set< ::std::string> Files; @@ -30,6 +31,7 @@ public: static void setFooter(const ::std::string&); static void setImageDir(const ::std::string&); static void setLogoURL(const ::std::string&); + static void setSearchAction(const ::std::string&); static void setIndexCount(int); static void warnSummary(int); static void setSymbols(const ContainedList&); @@ -51,6 +53,7 @@ protected: void printSummary(const ContainedPtr&, const ContainerPtr&, bool); void printHeaderFooter(const ContainedPtr&); + void printSearch(); void printLogo(const ContainedPtr&, const ContainerPtr&, bool); ::std::string toString(const SyntaxTreeBasePtr&, const ContainerPtr&, bool = true, bool = false, @@ -70,7 +73,6 @@ protected: static unsigned _indexCount; static unsigned _warnSummary; - private: void openStream(const ::std::string&); @@ -96,6 +98,7 @@ private: static ::std::string _footer; static ::std::string _imageDir; static ::std::string _logoURL; + static ::std::string _searchAction; static ContainedList _symbols; }; diff --git a/cpp/src/slice2html/Main.cpp b/cpp/src/slice2html/Main.cpp index d7480475873..4befc462ca3 100644 --- a/cpp/src/slice2html/Main.cpp +++ b/cpp/src/slice2html/Main.cpp @@ -36,6 +36,7 @@ usage(const char* n) "--indexftr FILE Use the contents of FILE as the footer of the index/toc page (default=--ftr).\n" "--image-dir DIR Directory containing images for style sheets.\n" "--logo-url URL Link to URL from logo image (requires --image-dir).\n" + "--search ACTION Generate search box with specified ACTION.\n" "--index NUM Generate subindex if it has at least NUM entries (0 for no index, default=1).\n" "--summary NUM Print a warning if a summary sentence exceeds NUM characters.\n" "-d, --debug Print debug messages.\n" @@ -61,6 +62,7 @@ main(int argc, char* argv[]) opts.addOpt("", "index", IceUtil::Options::NeedArg, "1"); opts.addOpt("", "image-dir", IceUtil::Options::NeedArg); opts.addOpt("", "logo-url", IceUtil::Options::NeedArg); + opts.addOpt("", "search", IceUtil::Options::NeedArg); opts.addOpt("", "summary", IceUtil::Options::NeedArg, "0"); opts.addOpt("d", "debug"); opts.addOpt("", "ice"); @@ -139,6 +141,8 @@ main(int argc, char* argv[]) string logoURL = opts.optArg("logo-url"); + string searchAction = opts.optArg("search"); + string warnSummary = opts.optArg("summary"); unsigned summaryCount; if(!warnSummary.empty()) @@ -207,7 +211,7 @@ main(int argc, char* argv[]) try { Slice::generate(p, output, header, footer, indexHeader, indexFooter, imageDir, logoURL, - indexCount, summaryCount); + searchAction, indexCount, summaryCount); } catch(const string& err) { |