diff --git a/src/lay/lay/doc/about/custom_queries.xml b/src/lay/lay/doc/about/custom_queries.xml index 406456754..605c16457 100644 --- a/src/lay/lay/doc/about/custom_queries.xml +++ b/src/lay/lay/doc/about/custom_queries.xml @@ -600,22 +600,22 @@ delete shapes on layer 6 of cell TOP bbox - + The cell's bounding box. dbbox - + The cell's bounding box in micrometer units. cell_bbox - + Same as "bbox" (disambiguator from shape and instance bounding boxes). cell_dbbox - + Same as "dbbox" (disambiguator from shape and instance bounding boxes). diff --git a/src/lay/lay/doc/about/macro_in_menu.xml b/src/lay/lay/doc/about/macro_in_menu.xml index ce78eda0b..e97ff27b8 100644 --- a/src/lay/lay/doc/about/macro_in_menu.xml +++ b/src/lay/lay/doc/about/macro_in_menu.xml @@ -22,10 +22,10 @@ sequence of symbolic names separated by a dot. For example:

-
  • -
      edit_menu.end is the end of the "Edit" menu
    -
      edit_menu.undo is the "Undo" entry in the "Edit" menu
    -
  • +
      +
    • edit_menu.end is the end of the "Edit" menu
    • +
    • edit_menu.undo is the "Undo" entry in the "Edit" menu
    • +

    To obtain a list of the paths available, have a look at the "Key Bindings" page in the "Application" diff --git a/src/lay/lay/doc/manual/lvs_intro.xml b/src/lay/lay/doc/manual/lvs_intro.xml index ebd4cd94e..513c6c729 100644 --- a/src/lay/lay/doc/manual/lvs_intro.xml +++ b/src/lay/lay/doc/manual/lvs_intro.xml @@ -425,7 +425,7 @@ M$2 2 1 4 6 NMOS L=0.25U W=0.9U AS=0.405P AD=0.405P PS=2.7U PD=2.7U

    - +

    @@ -433,7 +433,7 @@ M$2 2 1 4 6 NMOS L=0.25U W=0.9U AS=0.405P AD=0.405P PS=2.7U PD=2.7U

    - +

    diff --git a/src/lay/lay/doc/manual/lvs_tweaks.xml b/src/lay/lay/doc/manual/lvs_tweaks.xml index af5550532..f07092760 100644 --- a/src/lay/lay/doc/manual/lvs_tweaks.xml +++ b/src/lay/lay/doc/manual/lvs_tweaks.xml @@ -226,7 +226,7 @@ schematic.blank_circuit("CIRCUIT_NAME")

    - +

    diff --git a/src/lay/lay/doc/manual/tiling.xml b/src/lay/lay/doc/manual/tiling.xml index 1c363eaba..4eb38a857 100644 --- a/src/lay/lay/doc/manual/tiling.xml +++ b/src/lay/lay/doc/manual/tiling.xml @@ -54,9 +54,9 @@

    - - - + + +

    Default:

    Enhanced:

    Enhanced plus
    second order:

    Default:
    Enhanced:
    Enhanced plus
    second order:
    diff --git a/src/lay/lay/doc/programming/database_api.xml b/src/lay/lay/doc/programming/database_api.xml index 07fe4b06a..dc208daf8 100644 --- a/src/lay/lay/doc/programming/database_api.xml +++ b/src/lay/lay/doc/programming/database_api.xml @@ -1139,9 +1139,9 @@ end

    A Shape object represents a box if it returns true on . The only specific methods that are provided for box type shapes are the - getter and setter. , - , , , - and get or modify individual aspects of the + getter and setter. , + , , , + and get or modify individual aspects of the box.

    diff --git a/src/lay/lay/gsiDeclLayHelpDialog.cc b/src/lay/lay/gsiDeclLayHelpDialog.cc index a40d7777d..e4210ef99 100644 --- a/src/lay/lay/gsiDeclLayHelpDialog.cc +++ b/src/lay/lay/gsiDeclLayHelpDialog.cc @@ -84,10 +84,19 @@ Class decl_HelpDialog (QT_EXTERNAL_BASE (QDialog) "lay", "HelpD LAYBASIC_PUBLIC Class &laybasicdecl_BrowserSource (); +static lay::HelpSource *plain_help_source () +{ + return new lay::HelpSource (false); +} + Class decl_HelpSource (laybasicdecl_BrowserSource (), "lay", "HelpSource", + gsi::constructor ("plain", &plain_help_source, "@brief Reserved for internal use") + + gsi::method ("scan", static_cast (&lay::HelpSource::scan), "@brief Reserved internal use") + #if defined(HAVE_QTBINDINGS) && defined(HAVE_QT_XML) - gsi::method ("get_dom", &lay::HelpSource::get_dom, "@brief For internal use") + + gsi::method ("get_dom", &lay::HelpSource::get_dom, gsi::arg ("path"), "@brief Reserved for internal use") + #endif + gsi::method ("set_option", &lay::HelpSource::set_option, gsi::arg ("key"), gsi::arg ("value"), "@brief Reserved for internal use") + + gsi::method ("get_option", &lay::HelpSource::get_option, gsi::arg ("key"), "@brief Reserved for internal use") + gsi::method ("urls", &lay::HelpSource::urls, "@brief Reserved for internal use") + gsi::method ("title_for", &lay::HelpSource::title_for, gsi::arg ("path"), "@brief Reserved internal use") + gsi::method ("parent_of", &lay::HelpSource::parent_of, gsi::arg ("path"), "@brief Reserved internal use") + diff --git a/src/lay/lay/layGSIHelpProvider.cc b/src/lay/lay/layGSIHelpProvider.cc index 5b5ea5019..280220dc8 100644 --- a/src/lay/lay/layGSIHelpProvider.cc +++ b/src/lay/lay/layGSIHelpProvider.cc @@ -460,14 +460,19 @@ replace_references (const std::string &t, const gsi::ClassBase *cls_base) // -------------------------------------------------------------------------------------- // Implementation +GSIHelpProvider::GSIHelpProvider () +{ + // .. nothing yet .. +} + std::string -GSIHelpProvider::folder () const +GSIHelpProvider::folder (lay::HelpSource * /*src*/) const { return "code"; } std::string -GSIHelpProvider::title () const +GSIHelpProvider::title (lay::HelpSource * /*src*/) const { return tl::to_string (QObject::tr ("API Reference")); } @@ -485,7 +490,7 @@ void produce_toc (const gsi::ClassBase *cls, std::vector &toc) } void -GSIHelpProvider::toc (std::vector &t) +GSIHelpProvider::toc (lay::HelpSource * /*src*/, std::vector &t) { std::set mod_names; for (gsi::ClassBase::class_iterator c = gsi::ClassBase::begin_classes (); c != gsi::ClassBase::end_classes (); ++c) { @@ -499,7 +504,7 @@ GSIHelpProvider::toc (std::vector &t) } QDomDocument -GSIHelpProvider::get (const std::string &path) const +GSIHelpProvider::get (lay::HelpSource *src, const std::string &path) const { QUrl url = QUrl::fromEncoded (path.c_str ()); QString url_path = url.path (); @@ -508,9 +513,9 @@ GSIHelpProvider::get (const std::string &path) const std::string text; if (url_path == QString::fromUtf8 ("/code/index.xml")) { - text = produce_class_index (0); + text = produce_class_index (src, 0); } else if (module_index_url.indexIn (url_path) == 0) { - text = produce_class_index (from_encoded_class_name (tl::to_string (module_index_url.cap (1))).c_str ()); + text = produce_class_index (src, from_encoded_class_name (tl::to_string (module_index_url.cap (1))).c_str ()); } else if (class_doc_url.indexIn (url_path) == 0) { text = produce_class_doc (from_encoded_class_name (tl::to_string (class_doc_url.cap (1)))); } else { @@ -539,23 +544,6 @@ GSIHelpProvider::get (const std::string &path) const return doc; } -static -void produce_doc_index (const gsi::ClassBase *cls, std::ostringstream &os) -{ - DocumentationParser &doc = cls_documentation (cls); - std::string qname = make_qualified_name (cls); - - // Only list the name if the class is not hidden, it's a top-level class or the path is an expanded one - // (the last criterion avoids generating classes such as A::B_C) - if (! doc.hidden) { - os << "" << std::endl; - } - - for (tl::weak_collection::const_iterator cc = cls->begin_child_classes (); cc != cls->end_child_classes (); ++cc) { - produce_doc_index (cc.operator-> (), os); - } -} - static void collect_class_info (const gsi::ClassBase *cls, const std::string &module, std::vector > > &class_names, std::vector > > &qt_class_names) { @@ -578,8 +566,9 @@ void collect_class_info (const gsi::ClassBase *cls, const std::string &module, s } std::string -GSIHelpProvider::produce_class_index (const char *module_name) const +GSIHelpProvider::produce_class_index (lay::HelpSource *src, const char *module_name) const { + bool skip_qt_classes = src->get_option ("skip-qt-classes").to_bool (); std::ostringstream os; os << "" << std::endl @@ -605,10 +594,17 @@ GSIHelpProvider::produce_class_index (const char *module_name) const } } + if (skip_qt_classes) { + qt_class_names.clear (); + } + if (! module_name) { - for (gsi::ClassBase::class_iterator c = gsi::ClassBase::begin_classes (); c != gsi::ClassBase::end_classes (); ++c) { - produce_doc_index (c.operator-> (), os); + for (class_index_t::const_iterator i = class_names.begin (); i != class_names.end (); ++i) { + os << "first)) << "\"/>" << std::endl; + } + for (class_index_t::const_iterator i = qt_class_names.begin (); i != qt_class_names.end (); ++i) { + os << "first)) << "\"/>" << std::endl; } std::set mod_names; @@ -643,7 +639,7 @@ GSIHelpProvider::produce_class_index (const char *module_name) const } if (! qt_class_names.empty ()) { - os << tl::to_string (QObject::tr ("Find Qt class documentation")) << " " << tl::to_string (QObject::tr ("here")) << "" << std::endl; + os << "

    " << tl::to_string (QObject::tr ("Find Qt class documentation")) << " " << tl::to_string (QObject::tr ("here")) << "

    " << std::endl; } if (! class_names.empty ()) { @@ -657,9 +653,9 @@ GSIHelpProvider::produce_class_index (const char *module_name) const os << "" << std::endl; os << "first)) << "\">" << escape_xml (cc->first) << ""; if (! module_name) { - os << "   second.first) << "\">" << escape_xml (cc->second.first) << ""; + os << "second.first) << "\">" << escape_xml (cc->second.first) << ""; } - os << "   " << escape_xml (cc->second.second) << "" << std::endl; + os << "" << escape_xml (cc->second.second) << "" << std::endl; } os << "" << std::endl; @@ -676,9 +672,9 @@ GSIHelpProvider::produce_class_index (const char *module_name) const os << "" << std::endl; os << "first)) << "\">" << escape_xml (cc->first) << ""; if (! module_name) { - os << "   second.first) << "\">" << escape_xml (cc->second.first) << ""; + os << "second.first) << "\">" << escape_xml (cc->second.first) << ""; } - os << "   " << escape_xml (cc->second.second) << "" << std::endl; + os << "" << escape_xml (cc->second.second) << "" << std::endl; } os << "" << std::endl; @@ -992,6 +988,7 @@ GSIHelpProvider::produce_class_doc (const std::string &cls) const << std::endl; os << "" << tl::to_string (QObject::tr ("API reference - Class")) << " " << escape_xml (cls) << "" << std::endl; + os << "module ()) << "\"/>" << std::endl; os << "" << std::endl; @@ -1328,6 +1325,9 @@ GSIHelpProvider::produce_class_doc (const std::string &cls) const os << ""; + int rowindex = -1; + int sigindex = -1; + for (std::multimap >::const_iterator i = mm.begin (); i != mm.end (); ++i, ++n) { const gsi::MethodBase::MethodSynonym &syn = i->second.first->begin_synonyms () [i->second.second]; @@ -1335,13 +1335,23 @@ GSIHelpProvider::produce_class_doc (const std::string &cls) const DocumentationParser method_doc (i->second.first); std::string pydoc = pya::PythonInterpreter::python_doc (i->second.first); - os << ""; + if (i->first != prev_title) { + rowindex += 1; + } + os << ""; + if (i->first != prev_title) { int rows = 0; for (std::multimap >::const_iterator j = i; j != mm.end () && j->first == i->first; ++j) { ++rows; } - os << ""; @@ -1352,7 +1362,12 @@ GSIHelpProvider::produce_class_doc (const std::string &cls) const << "first) << "\"/>" << "first) << "\" name=\"" << escape_xml (cls) << "#" << escape_xml (i->first) << "\"/>" << std::endl; - os << "

    " << tl::to_string (QObject::tr ("Signature")) << ": "; + os << "

    "; + if (sigindex >= 0) { + ++sigindex; + os << "(" << sigindex << ") "; + } + os << tl::to_string (QObject::tr ("Signature")) << ": "; std::string attr = method_attributes (i->second.first, method_doc); if (! attr.empty ()) { os << "[" << escape_xml (attr) << "] "; @@ -1395,7 +1410,7 @@ GSIHelpProvider::produce_class_doc (const std::string &cls) const if (! pydoc.empty ()) { os << "

    "; - os << tl::to_string (QObject::tr ("Python specific notes:")); + os << tl::to_string (QObject::tr ("Python specific notes: ")); os << "
    " << escape_xml (pydoc) << "

    " << std::endl; } diff --git a/src/lay/lay/layGSIHelpProvider.h b/src/lay/lay/layGSIHelpProvider.h index 02537e2f6..bfe399df9 100644 --- a/src/lay/lay/layGSIHelpProvider.h +++ b/src/lay/lay/layGSIHelpProvider.h @@ -38,14 +38,16 @@ class GSIHelpProvider : public HelpProvider { public: - virtual std::string folder () const; - virtual std::string title () const; - virtual void toc (std::vector &t); - virtual QDomDocument get (const std::string &u) const; + GSIHelpProvider (); + + virtual std::string folder (lay::HelpSource *src) const; + virtual std::string title (lay::HelpSource *src) const; + virtual void toc (lay::HelpSource *src, std::vector &t); + virtual QDomDocument get (lay::HelpSource *src, const std::string &u) const; private: std::string produce_class_doc (const std::string &cls) const; - std::string produce_class_index (const char *module_name) const; + std::string produce_class_index (HelpSource *src, const char *module_name) const; }; } diff --git a/src/lay/lay/layHelpProvider.h b/src/lay/lay/layHelpProvider.h index 5d4a4b64d..d7f241b81 100644 --- a/src/lay/lay/layHelpProvider.h +++ b/src/lay/lay/layHelpProvider.h @@ -30,6 +30,8 @@ namespace lay { +class HelpSource; + /** * @brief A provider for documentation in the help system * @@ -58,9 +60,9 @@ public: * * @return The documentation path for the main entry point for this provider. */ - virtual std::string index () const + virtual std::string index (lay::HelpSource *src) const { - return "/" + folder () + "/index.xml"; + return "/" + folder (src) + "/index.xml"; } /** @@ -69,7 +71,7 @@ public: * The DOM is the document in XML form which can be converted to HTML form for example * or scanned for keywords. */ - virtual QDomDocument get (const std::string & /*path*/) const + virtual QDomDocument get (lay::HelpSource * /*src*/, const std::string & /*path*/) const { return QDomDocument (); } @@ -80,12 +82,12 @@ public: * If this string is "doc" for example, all help documents will be looked up under * "doc/...". */ - virtual std::string folder () const = 0; + virtual std::string folder (lay::HelpSource * /*src*/) const = 0; /** * @brief Gets the title for this category */ - virtual std::string title () const = 0; + virtual std::string title (lay::HelpSource * /*src*/) const = 0; }; } diff --git a/src/lay/lay/layHelpSource.cc b/src/lay/lay/layHelpSource.cc index 2d83f291d..beb1aa7c0 100644 --- a/src/lay/lay/layHelpSource.cc +++ b/src/lay/lay/layHelpSource.cc @@ -54,6 +54,9 @@ namespace lay { +static const std::string index_url ("/index.xml"); +static const std::string search_url ("/search.xml"); + // -------------------------------------------------------------------------------------- // Some utilities @@ -285,7 +288,14 @@ HelpSource::initialize_index () tl::XMLFileSource in (*c); help_index_structure.parse (in, *this); if (m_klayout_version == lay::ApplicationBase::version ()) { + if (tl::verbosity () >= 10) { + tl::info << tl::to_string (tr ("Help index initialized from ")) << *c; + } ok = true; + } else { + if (tl::verbosity () >= 10) { + tl::warn << tl::to_string (tr ("Help index ignored (wrong version) from ")) << *c; + } } } catch (tl::Exception &ex) { tl::warn << ex.msg (); @@ -322,13 +332,8 @@ HelpSource::~HelpSource() void HelpSource::produce_index_file (const std::string &path) { - m_index.clear (); - m_titles.clear (); - m_title_map.clear (); - m_parent_of.clear (); + scan (); - tl::AbsoluteProgress progress (tl::to_string (QObject::tr ("Initializing help index")), 1, false /*can't cancel*/); - scan ("/index.xml", progress); try { tl::OutputStream os (path, tl::OutputStream::OM_Plain); @@ -350,6 +355,18 @@ HelpSource::create_index_file (const std::string &path) source.produce_index_file (path); } +void +HelpSource::scan () +{ + m_index.clear (); + m_titles.clear (); + m_title_map.clear (); + m_parent_of.clear (); + + tl::AbsoluteProgress progress (tl::to_string (QObject::tr ("Initializing help index")), 1); + scan (index_url, progress); +} + std::string HelpSource::klayout_version () const { @@ -461,21 +478,21 @@ HelpSource::get_dom (const std::string &u) QString path = url.path (); for (tl::Registrar::iterator cls = tl::Registrar::begin (); cls != tl::Registrar::end (); ++cls) { - if (path.startsWith (tl::to_qstring ("/" + cls->folder () + "/"))) { + if (path.startsWith (tl::to_qstring ("/" + cls->folder (this) + "/"))) { if (tl::verbosity () >= 20) { tl::info << "Help provider: create content for " << u; } - return cls->get (u); + return cls->get (this, u); } } - if (path == QString::fromUtf8 ("/search.xml")) { + if (path == tl::to_qstring (search_url)) { #if QT_VERSION >= 0x050000 return produce_search (tl::to_string (QUrlQuery (url.query ()).queryItemValue (QString::fromUtf8 ("string")).toLower ())); #else return produce_search (tl::to_string (url.queryItemValue (QString::fromUtf8 ("string")).toLower ())); #endif - } else if (path == QString::fromUtf8 ("/index.xml")) { + } else if (path == tl::to_qstring (index_url)) { if (tl::verbosity () >= 20) { tl::info << "Help provider: create content for " << u; } @@ -581,9 +598,14 @@ std::string HelpSource::next_topic (const std::string &url) { std::string u = tl::to_string (QUrl::fromEncoded (url.c_str ()).path ()); - for (size_t t = 0; t + 1 < m_titles.size (); ++t) { + for (size_t t = m_titles.size (); t > 0; ) { + --t; if (m_titles [t].first == u) { - return "int:" + m_titles [t + 1].first; + if (t + 1 >= m_titles.size ()) { + return std::string (); + } else { + return "int:" + m_titles [t + 1].first; + } } } return std::string (); @@ -618,7 +640,7 @@ HelpSource::produce_main_index () os << "" << std::endl; for (tl::Registrar::iterator cls = tl::Registrar::begin (); cls != tl::Registrar::end (); ++cls) { - os << "index () << "\"/>" << std::endl; + os << "index (this) << "\"/>" << std::endl; } os << "" << std::endl; @@ -1056,12 +1078,30 @@ std::vector HelpSource::urls () { std::vector u; - u.push_back ("/index.xml"); + u.push_back (index_url); for (std::map::const_iterator p = m_parent_of.begin (); p != m_parent_of.end (); ++p) { u.push_back (p->first); } return u; } +void +HelpSource::set_option (const std::string &key, const tl::Variant &value) +{ + s_global_options[key] = value; +} + +const tl::Variant & +HelpSource::get_option (const std::string &key) const +{ + auto i = s_global_options.find (key); + if (i != s_global_options.end ()) { + return i->second; + } else { + static tl::Variant nil; + return nil; + } +} + } diff --git a/src/lay/lay/layHelpSource.h b/src/lay/lay/layHelpSource.h index 93d98396d..222a85cd5 100644 --- a/src/lay/lay/layHelpSource.h +++ b/src/lay/lay/layHelpSource.h @@ -75,6 +75,8 @@ class HelpSource { public: HelpSource (); + HelpSource (bool make_index); + ~HelpSource(); virtual std::string get (const std::string &url); @@ -152,6 +154,22 @@ public: */ static void create_index_file (const std::string &path); + /** + * @brief Scans the help providers and produce the index + */ + void scan (); + + /** + * @brief Sets a global options for tailoring the help output + */ + void set_option (const std::string &key, const tl::Variant &value); + + /** + * @brief Sets a global options for tailoring the help output + * A null variant is returned if the option is not present. + */ + const tl::Variant &get_option (const std::string &key) const; + private: std::vector m_index; std::map m_parent_of; @@ -159,8 +177,8 @@ private: std::map m_title_map; std::string m_klayout_version; int m_kindex; + std::map s_global_options; - HelpSource (bool make_index); QDomDocument produce_search (const std::string &index); QDomDocument produce_main_index (); void produce_index_file (const std::string &path); diff --git a/src/lay/lay/layResourceHelpProvider.cc b/src/lay/lay/layResourceHelpProvider.cc index 684aefa39..18da8067e 100644 --- a/src/lay/lay/layResourceHelpProvider.cc +++ b/src/lay/lay/layResourceHelpProvider.cc @@ -49,7 +49,7 @@ ResourceHelpProvider::ResourceHelpProvider (const char *folder, const std::strin } QDomDocument -ResourceHelpProvider::get (const std::string &path) const +ResourceHelpProvider::get (lay::HelpSource * /*src*/, const std::string &path) const { QString qpath = tl::to_qstring (path); QResource res (resource_url (qpath)); diff --git a/src/lay/lay/layResourceHelpProvider.h b/src/lay/lay/layResourceHelpProvider.h index 034089b29..427591fae 100644 --- a/src/lay/lay/layResourceHelpProvider.h +++ b/src/lay/lay/layResourceHelpProvider.h @@ -40,17 +40,17 @@ class ResourceHelpProvider public: ResourceHelpProvider (const char *folder, const std::string &title); - std::string folder () const + std::string folder (lay::HelpSource * /*src*/) const { return m_folder; } - std::string title () const + std::string title (lay::HelpSource * /*src*/) const { return m_title; } - virtual QDomDocument get (const std::string &path) const; + virtual QDomDocument get (lay::HelpSource *src, const std::string &path) const; private: std::string m_folder, m_title; diff --git a/src/laybasic/laybasic/gsiDeclLayDialogs.cc b/src/laybasic/laybasic/gsiDeclLayDialogs.cc index e9e9609db..5b230f11c 100644 --- a/src/laybasic/laybasic/gsiDeclLayDialogs.cc +++ b/src/laybasic/laybasic/gsiDeclLayDialogs.cc @@ -379,6 +379,11 @@ static BrowserSource_Stub *new_html (const std::string &html) } Class decl_BrowserSource ("lay", "BrowserSource_Native", +#if defined(HAVE_QTBINDINGS) + gsi::method ("get_image", &lay::BrowserSource::get_image, gsi::arg ("url")) + +#endif + gsi::method ("next_topic", &lay::BrowserSource::next_topic, gsi::arg ("url")) + + gsi::method ("prev_topic", &lay::BrowserSource::prev_topic, gsi::arg ("url")) + gsi::method ("get", &lay::BrowserSource::get), "@hide\n@alias BrowserSource" ); @@ -391,12 +396,31 @@ Class &laybasicdecl_BrowserSource () Class decl_BrowserSourceStub ("lay", "BrowserSource", gsi::constructor ("new|#new_html", &new_html, - "@brief construct a BrowserSource object with a default HTML string\n" + "@brief Constructs a BrowserSource object with a default HTML string\n" "\n" "The default HTML string is sent when no specific implementation is provided.\n" ) + +#if defined(HAVE_QTBINDINGS) + gsi::method ("get_image", &lay::BrowserSource::get_image, gsi::arg ("url"), + "@brief Gets the image object for a specific URL\n" + "\n" + "This method has been introduced in version 0.28." + ) + +#endif + gsi::method ("next_topic", &lay::BrowserSource::next_topic, gsi::arg ("url"), + "@brief Gets the next topic URL from a given URL\n" + "An empty string will be returned if no next topic is available.\n" + "\n" + "This method has been introduced in version 0.28." + ) + + gsi::method ("prev_topic", &lay::BrowserSource::prev_topic, gsi::arg ("url"), + "@brief Gets the previous topic URL from a given URL\n" + "An empty string will be returned if no previous topic is available.\n" + "\n" + "This method has been introduced in version 0.28." + ) + gsi::callback ("get", &BrowserSource_Stub::get, &BrowserSource_Stub::get_cb, gsi::arg ("url"), - "@brief Get the HTML code for a given \"int\" URL.\n" + "@brief Gets the HTML code for a given \"int\" URL.\n" "\n" "If this method returns an empty string, the browser will not be set to \n" "a new location. This allows implementing any functionality behind such links.\n" diff --git a/src/plugins/streamers/lefdef/db_plugin/gsiDeclDbLEFDEF.cc b/src/plugins/streamers/lefdef/db_plugin/gsiDeclDbLEFDEF.cc index 25587d6c9..c39b26753 100644 --- a/src/plugins/streamers/lefdef/db_plugin/gsiDeclDbLEFDEF.cc +++ b/src/plugins/streamers/lefdef/db_plugin/gsiDeclDbLEFDEF.cc @@ -262,13 +262,13 @@ gsi::Class decl_lefdef_config ("db", "LEFDEFReaderConfi "\n" "For example: the via layer is 'V1', \\via_geometry_suffix is 'GEO' and \\via_geometry_datatype is 1. Then:\n" "\n" - "@li\n" - "@ul If there is a mapping for 'V1.GEO', the layer and datatype will be taken from there. @/ul\n" - "@ul If there is a mapping for 'V1', the layer will be taken from there and the datatype will be taken from \\via_geometry_datatype. " - " The name of the produced layer will be 'V1.GEO'. @/ul\n" - "@ul If there is no mapping for both, the layer number will be a unique value, the datatype will be taken from \\via_geometry_datatype " - " and the layer name will be 'V1.GEO'. @/ul" - "@/li\n" + "@ul\n" + "@li If there is a mapping for 'V1.GEO', the layer and datatype will be taken from there. @/li\n" + "@li If there is a mapping for 'V1', the layer will be taken from there and the datatype will be taken from \\via_geometry_datatype. " + " The name of the produced layer will be 'V1.GEO'. @/li\n" + "@li If there is no mapping for both, the layer number will be a unique value, the datatype will be taken from \\via_geometry_datatype " + " and the layer name will be 'V1.GEO'. @/li" + "@/ul\n" ) + gsi::method ("produce_via_geometry=", &db::LEFDEFReaderOptions::set_produce_via_geometry, gsi::arg ("produce"), "@brief Sets a value indicating whether via geometries shall be produced.\n" diff --git a/src/rba/rba/rba.cc b/src/rba/rba/rba.cc index be64ce1a9..2a0c1b8f5 100644 --- a/src/rba/rba/rba.cc +++ b/src/rba/rba/rba.cc @@ -1558,7 +1558,7 @@ public: if (as_static) { if (tl::verbosity () >= 20) { - tl::log << tl::to_string (tr ("Registering class as Ruby module:) ")) << cls->name (); + tl::log << tl::to_string (tr ("Registering class as Ruby module: ")) << cls->name (); } std::string mixin_name = cls->name () + "_Mixin";
    "; + if (rows > 1) { + os << ""; + sigindex = 0; + } else { + os << ""; + sigindex = -1; + } os << "

    " << escape_xml (i->first) << "

    " << std::endl; prev_title = i->first; os << "