void wxHtmlParser::AddTag(const wxHtmlTag& tag) { bool inner = false; wxHtmlTagHandlersHash::const_iterator h = m_HandlersHash.find(tag.GetName()); if (h != m_HandlersHash.end()) { inner = h->second->HandleTag(tag); if (m_stopParsing) return; } if (!inner) { if (tag.HasEnding()) DoParsing(tag.GetBeginIter(), tag.GetEndIter1()); } }
void wxHtmlParser::AddTag(const wxHtmlTag& tag) { wxHtmlTagHandler *h; bool inner = false; h = (wxHtmlTagHandler*) m_HandlersHash.Get(tag.GetName()); if (h) { inner = h->HandleTag(tag); if (m_stopParsing) return; } if (!inner) { if (tag.HasEnding()) DoParsing(tag.GetBeginPos(), tag.GetEndPos1()); } }
bool wxMetaTagHandler::HandleTag(const wxHtmlTag& tag) { if (tag.GetName() == wxT("BODY")) { m_Parser->StopParsing(); return false; } if (tag.HasParam(wxT("HTTP-EQUIV")) && tag.GetParam(wxT("HTTP-EQUIV")).IsSameAs(wxT("Content-Type"), false) && tag.HasParam(wxT("CONTENT"))) { wxString content = tag.GetParam(wxT("CONTENT")).Lower(); if (content.Left(19) == wxT("text/html; charset=")) { *m_retval = content.Mid(19); m_Parser->StopParsing(); } } return false; }
bool wxMetaTagHandler::HandleTag(const wxHtmlTag& tag) { if (tag.GetName() == wxT("BODY")) { m_Parser->StopParsing(); return false; } wxString httpEquiv, content; if (tag.GetParamAsString(wxT("HTTP-EQUIV"), &httpEquiv) && httpEquiv.IsSameAs(wxT("Content-Type"), false) && tag.GetParamAsString(wxT("CONTENT"), &content)) { content.MakeLower(); if (content.Left(19) == wxT("text/html; charset=")) { *m_retval = content.Mid(19); m_Parser->StopParsing(); } } return false; }
void wxHtmlParser::AddTag(const wxHtmlTag& tag) { bool inner = false; wxHtmlTagHandlersHash::const_iterator h = m_HandlersHash.find(tag.GetName()); if (h != m_HandlersHash.end()) { inner = h->second->HandleTag(tag); if (m_stopParsing) return; } #if wxDEBUG_LEVEL else if (m_HandlersHash.empty()) { wxFAIL_MSG( "No HTML tag handlers registered, is your program linked " "correctly (you might need to use FORCE_WXHTML_MODULES)?" ); } #endif // wxDEBUG_LEVEL if (!inner) { if (tag.HasEnding()) DoParsing(tag.GetBeginIter(), tag.GetEndIter1()); } }
bool HP_TagHandler::HandleTag(const wxHtmlTag& tag) { if (tag.GetName() == wxT("UL")) { wxHtmlHelpDataItem *oldparent = m_parentItem; m_level++; m_parentItem = (m_count > 0) ? &(*m_data)[m_data->size()-1] : NULL; ParseInner(tag); m_level--; m_parentItem = oldparent; return true; } else if (tag.GetName() == wxT("OBJECT")) { m_name = m_page = wxEmptyString; ParseInner(tag); #if 0 if (!page.IsEmpty()) /* Valid HHW's file may contain only two object tags: <OBJECT type="text/site properties"> <param name="ImageType" value="Folder"> </OBJECT> or <OBJECT type="text/sitemap"> <param name="Name" value="main page"> <param name="Local" value="another.htm"> </OBJECT> We're interested in the latter. !page.IsEmpty() is valid condition because text/site properties does not contain Local param */ #endif if (tag.GetParam(wxT("TYPE")) == wxT("text/sitemap")) { wxHtmlHelpDataItem *item = new wxHtmlHelpDataItem(); item->parent = m_parentItem; item->level = m_level; item->id = m_id; item->page = m_page; item->name = m_name; item->book = m_book; m_data->Add(item); m_count++; } return true; } else { // "PARAM" if (m_name.empty() && tag.GetParam(wxT("NAME")) == wxT("Name")) m_name = tag.GetParam(wxT("VALUE")); if (tag.GetParam(wxT("NAME")) == wxT("Local")) m_page = tag.GetParam(wxT("VALUE")); if (tag.GetParam(wxT("NAME")) == wxT("ID")) tag.GetParamAsInt(wxT("VALUE"), &m_id); return false; } }