summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorMichi Henning <michi@zeroc.com>2007-01-24 06:42:18 +0000
committerMichi Henning <michi@zeroc.com>2007-01-24 06:42:18 +0000
commit0a8b6ce2325aff3ecb50386b74e7aa8227b50efe (patch)
treef38f38afba31e9c7cbe835a9907f34a1962b90e1 /cpp/src
parent*** empty log message *** (diff)
downloadice-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.cpp44
-rw-r--r--cpp/src/slice2html/Gen.h7
-rw-r--r--cpp/src/slice2html/Main.cpp6
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)
{