// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation "winpars.h"
-#endif
-
#include "wx/wxprec.h"
#include "wx/defs.h"
#include "wx/fontmap.h"
#include "wx/log.h"
#include "wx/settings.h"
-#include "wx/url.h"
+#include "wx/uri.h"
//-----------------------------------------------------------------------------
m_Modules.DeleteObject(module);
}
-void wxHtmlWinParser::SetFonts(wxString normal_face, wxString fixed_face,
+void wxHtmlWinParser::SetFonts(const wxString& normal_face, const wxString& fixed_face,
const int *sizes)
{
static int default_sizes[7] =
*/
m_UseLink = false;
- m_Link = wxHtmlLinkInfo( wxT(""), wxT("") );
+ m_Link = wxHtmlLinkInfo( wxEmptyString );
m_LinkColor.Set(0, 0, 0xFF);
m_ActualColor.Set(0, 0, 0);
m_Align = wxHTML_ALIGN_LEFT;
{
wxString myfullurl(myurl);
-#if wxUSE_URL
// consider url as absolute path first
- wxURL current(wxURL::Unescape(myurl));
- myfullurl = current.GetURL();
+ wxURI current(myurl);
+ myfullurl = current.BuildUnescapedURI();
// if not absolute then ...
if( current.IsReference() )
{
wxString basepath = GetFS()->GetPath();
- wxURI base(wxURL::Unescape(basepath));
+ wxURI base(basepath);
- // try to apply base path if valid ...
+ // ... try to apply base path if valid ...
if( !base.IsReference() )
{
wxURI path(myfullurl);
path.Resolve( base );
- myfullurl = path.BuildURI();
+ myfullurl = path.BuildUnescapedURI();
}
else
{
// ... or force such addition if not included already
- if( !current.GetURL().Contains(basepath) )
+ if( !current.GetPath().Contains(base.GetPath()) )
{
basepath += myurl;
- wxURL connected( wxURL::Unescape(basepath) );
- myfullurl = connected.GetURL();
+ wxURI connected( basepath );
+ myfullurl = connected.BuildUnescapedURI();
}
}
}
-#endif
wxString redirect;
status = m_Window->OnOpeningURL(type, myfullurl, &redirect);
void wxHtmlWinParser::AddText(const wxChar* txt)
{
- wxHtmlCell *c;
size_t i = 0,
x,
lng = wxStrlen(txt);
if (x)
{
temp[templen-1] = wxT(' ');
- temp[templen] = 0;
- templen = 0;
-#if !wxUSE_UNICODE
- if (m_EncConv)
- m_EncConv->Convert(temp);
-#endif
- size_t len = wxStrlen(temp);
- for (size_t j = 0; j < len; j++)
- if (temp[j] == nbsp)
- temp[j] = wxT(' ');
- c = new wxHtmlWordCell(temp, *(GetDC()));
- if (m_UseLink)
- c->SetLink(m_Link);
- m_Container->InsertCell(c);
- ((wxHtmlWordCell*)c)->SetPreviousWord(m_lastWordCell);
- m_lastWordCell = (wxHtmlWordCell*)c;
+ DoAddText(temp, templen, nbsp);
m_tmpLastWasSpace = true;
}
}
if (templen && (templen > 1 || temp[0] != wxT(' ')))
{
- temp[templen] = 0;
+ DoAddText(temp, templen, nbsp);
+ m_tmpLastWasSpace = false;
+ }
+}
+
+void wxHtmlWinParser::DoAddText(wxChar *temp, int& templen, wxChar nbsp)
+{
+ temp[templen] = 0;
+ templen = 0;
#if !wxUSE_UNICODE
- if (m_EncConv)
- m_EncConv->Convert(temp);
+ if (m_EncConv)
+ m_EncConv->Convert(temp);
#endif
- size_t len = wxStrlen(temp);
- for (size_t j = 0; j < len; j++)
- if (temp[j] == nbsp)
- temp[j] = wxT(' ');
- c = new wxHtmlWordCell(temp, *(GetDC()));
- if (m_UseLink)
- c->SetLink(m_Link);
- m_Container->InsertCell(c);
- ((wxHtmlWordCell*)c)->SetPreviousWord(m_lastWordCell);
- m_lastWordCell = (wxHtmlWordCell*)c;
- m_tmpLastWasSpace = false;
+ size_t len = wxStrlen(temp);
+ for (size_t j = 0; j < len; j++)
+ {
+ if (temp[j] == nbsp)
+ temp[j] = wxT(' ');
}
+
+ wxHtmlCell *c = new wxHtmlWordCell(temp, *(GetDC()));
+
+ if (m_UseLink)
+ c->SetLink(m_Link);
+ m_Container->InsertCell(c);
+ ((wxHtmlWordCell*)c)->SetPreviousWord(m_lastWordCell);
+ m_lastWordCell = (wxHtmlWordCell*)c;
}