X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f23e92e72ae94e775a9931ba3a9f40cbdf774c71..217f9d07673020ad2f995f269552dad27950a6e4:/src/html/winpars.cpp diff --git a/src/html/winpars.cpp b/src/html/winpars.cpp index fc5ddff815..479401d392 100644 --- a/src/html/winpars.cpp +++ b/src/html/winpars.cpp @@ -40,7 +40,7 @@ wxList wxHtmlWinParser::m_Modules; -wxHtmlWinParser::wxHtmlWinParser(wxWindow *wnd) : wxHtmlParser() +wxHtmlWinParser::wxHtmlWinParser(wxHtmlWindow *wnd) : wxHtmlParser() { m_tmpStrBuf = NULL; m_tmpStrBufSize = 0; @@ -84,7 +84,6 @@ wxHtmlWinParser::wxHtmlWinParser(wxWindow *wnd) : wxHtmlParser() } } - wxHtmlWinParser::~wxHtmlWinParser() { int i, j, k, l, m; @@ -102,21 +101,16 @@ wxHtmlWinParser::~wxHtmlWinParser() delete[] m_tmpStrBuf; } - void wxHtmlWinParser::AddModule(wxHtmlTagsModule *module) { m_Modules.Append(module); } - - void wxHtmlWinParser::RemoveModule(wxHtmlTagsModule *module) { m_Modules.DeleteObject(module); } - - void wxHtmlWinParser::SetFonts(wxString normal_face, wxString fixed_face, const int *sizes) { int i, j, k, l, m; @@ -140,8 +134,6 @@ void wxHtmlWinParser::SetFonts(wxString normal_face, wxString fixed_face, const } } - - void wxHtmlWinParser::InitParser(const wxString& source) { wxHtmlParser::InitParser(source); @@ -169,8 +161,6 @@ void wxHtmlWinParser::InitParser(const wxString& source) m_Container->InsertCell(new wxHtmlFontCell(CreateCurrentFont())); } - - void wxHtmlWinParser::DoneParser() { m_Container = NULL; @@ -178,8 +168,6 @@ void wxHtmlWinParser::DoneParser() wxHtmlParser::DoneParser(); } - - wxObject* wxHtmlWinParser::GetProduct() { wxHtmlContainerCell *top; @@ -192,6 +180,15 @@ wxObject* wxHtmlWinParser::GetProduct() return top; } +bool wxHtmlWinParser::CanOpenURL(const wxString& url) const +{ + // FIXME - normalize the URL to full path before passing to + // OnOpeningURL!! + if ( m_Window ) + return m_Window->OnOpeningURL(url); + else + return TRUE; +} void wxHtmlWinParser::AddText(const wxChar* txt) { @@ -234,32 +231,32 @@ void wxHtmlWinParser::AddText(const wxChar* txt) { temp[templen-1] = wxT(' '); temp[templen] = 0; + if (templen == 1) continue; templen = 0; if (m_EncConv) m_EncConv->Convert(temp); - wxString str = GetEntitiesParser()->Parse(temp); - size_t len = str.Len(); + size_t len = wxStrlen(temp); for (size_t j = 0; j < len; j++) - if (str.GetChar(j) == nbsp) - str[j] = wxT(' '); - c = new wxHtmlWordCell(str, *(GetDC())); + if (temp[j] == nbsp) + temp[j] = wxT(' '); + c = new wxHtmlWordCell(temp, *(GetDC())); if (m_UseLink) c->SetLink(m_Link); m_Container->InsertCell(c); m_tmpLastWasSpace = TRUE; } } - if (templen) + + if (templen && (templen > 1 || temp[0] != wxT(' '))) { temp[templen] = 0; if (m_EncConv) m_EncConv->Convert(temp); - wxString str = GetEntitiesParser()->Parse(temp); - size_t len = str.Len(); + size_t len = wxStrlen(temp); for (size_t j = 0; j < len; j++) - if (str.GetChar(j) == nbsp) - str[j] = wxT(' '); - c = new wxHtmlWordCell(str, *(GetDC())); + if (temp[j] == nbsp) + temp[j] = wxT(' '); + c = new wxHtmlWordCell(temp, *(GetDC())); if (m_UseLink) c->SetLink(m_Link); m_Container->InsertCell(c);