]> git.saurik.com Git - wxWidgets.git/blobdiff - src/html/m_pre.cpp
fix for assert when setting tooltip for a readonly combo
[wxWidgets.git] / src / html / m_pre.cpp
index 25e24cf402e34c440050131f63d0d09350cb4632..df51c4246ab75b92b95f783e5782a5639e7689e8 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        mod_pre.cpp
+// Name:        m_pre.cpp
 // Purpose:     wxHtml module for <PRE> ... </PRE> tag (code citation)
 // Author:      Vaclav Slavik
 // RCS-ID:      $Id$
 #pragma implementation
 #endif
 
-#include <wx/wxprec.h>
+#include "wx/wxprec.h"
 
-#if wxUSE_HTML
+#include "wx/defs.h"
+#if wxUSE_HTML && wxUSE_STREAMS
 #ifdef __BORDLANDC__
 #pragma hdrstop
 #endif
 
 #ifndef WXPRECOMP
-#include <wx/wx.h>
+#include "wx/wx.h"
 #endif
 
 
 #include "wx/html/m_templ.h"
 
 #include "wx/html/htmlcell.h"
-#include <wx/tokenzr.h>
+#include "wx/tokenzr.h"
+#include "wx/encconv.h"
 
-FORCE_LINK_ME(mod_pre)
+FORCE_LINK_ME(m_pre)
 
 
 //-----------------------------------------------------------------------------
@@ -66,20 +68,17 @@ wxHtmlPRECell::wxHtmlPRECell(const wxString& s, wxDC& dc) : wxHtmlCell()
     m_Width = m_Height = 0;
 
     i = 0;
-#if (wxVERSION_NUMBER < 2100)
-    while (tokenizer.HasMoreToken()) {
-#else
     while (tokenizer.HasMoreTokens()) {
-#endif
         if (i % 10 == 0) m_Text = (wxString**) realloc(m_Text, sizeof(wxString*) * (i + 10));
         tmp = tokenizer.NextToken();
-        tmp.Replace("&nbsp;", " ", TRUE);
-        tmp.Replace("&quot;", "\"", TRUE);
-        tmp.Replace("&lt;", "<", TRUE);
-        tmp.Replace("&gt;", ">", TRUE);
-        tmp.Replace("&amp;", "&", TRUE);
-        tmp.Replace("\t", "        ", TRUE);
-        tmp.Replace("\r", "", TRUE);
+        tmp.Replace(wxT("&copy;"), wxT("(c)"), TRUE);
+        tmp.Replace(wxT("&nbsp;"), wxT(" "), TRUE);
+        tmp.Replace(wxT("&quot;"), wxT("\""), TRUE);
+        tmp.Replace(wxT("&lt;"), wxT("<"), TRUE);
+        tmp.Replace(wxT("&gt;"), wxT(">"), TRUE);
+        tmp.Replace(wxT("&amp;"), wxT("&"), TRUE);
+        tmp.Replace(wxT("\t"), wxT("        "), TRUE);
+        tmp.Replace(wxT("\r"), wxT(""), TRUE);
         m_Text[i++] = new wxString(tmp);
 
         dc.GetTextExtent(tmp, &x, &z, &z);
@@ -128,20 +127,27 @@ TAG_HANDLER_BEGIN(PRE, "PRE")
 
         m_WParser -> CloseContainer();
         c = m_WParser -> OpenContainer();
-        c -> SetAlignHor(HTML_ALIGN_LEFT);
-        c -> SetIndent(m_WParser -> GetCharHeight(), HTML_INDENT_VERTICAL);
+        c -> SetAlignHor(wxHTML_ALIGN_LEFT);
+        c -> SetIndent(m_WParser -> GetCharHeight(), wxHTML_INDENT_VERTICAL);
 
         m_WParser -> SetFontUnderlined(FALSE);
         m_WParser -> SetFontBold(FALSE);
         m_WParser -> SetFontItalic(FALSE);
         m_WParser -> SetFontFixed(TRUE);
-        m_WParser -> SetFontSize(0);
+        m_WParser -> SetFontSize(3);
         c -> InsertCell(new wxHtmlFontCell(m_WParser -> CreateCurrentFont()));
 
         {
             wxString cit;
-            cit = m_WParser -> GetSource() -> Mid(tag.GetBeginPos(), tag.GetEndPos1() - tag.GetBeginPos());
-            c -> InsertCell(new wxHtmlPRECell(cit, *(m_WParser -> GetDC())));
+            wxEncodingConverter *encconv = m_WParser -> GetEncodingConverter();
+            cit = m_WParser -> GetSource() -> Mid(tag.GetBeginPos(), 
+                                       tag.GetEndPos1() - tag.GetBeginPos());
+            if (encconv)
+                c -> InsertCell(new wxHtmlPRECell(encconv -> Convert(cit), 
+                                                  *(m_WParser -> GetDC())));
+            else
+                c -> InsertCell(new wxHtmlPRECell(cit, 
+                                                  *(m_WParser -> GetDC())));
         }
 
         m_WParser -> SetFontUnderlined(underlined);