]> git.saurik.com Git - wxWidgets.git/blobdiff - src/html/m_layout.cpp
merged 2 overloaded functions into a single membersections
[wxWidgets.git] / src / html / m_layout.cpp
index e3f8ec8c3f6e095cbf22a515cd933bb94934ef03..e042da6e6a584bb9747eb548a5434151019b7200 100644 (file)
 
 #include "wx/defs.h"
 #if wxUSE_HTML && wxUSE_STREAMS
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
 #ifndef WXPRECOMP
-#include "wx/wx.h"
 #endif
 
 
@@ -37,7 +36,7 @@ TAG_HANDLER_BEGIN(P, "P")
     TAG_HANDLER_PROC(tag)
     {
         if (m_WParser->GetContainer()->GetFirstCell() != NULL)
-           {
+        {
             m_WParser->CloseContainer();
             m_WParser->OpenContainer();
         }
@@ -78,7 +77,7 @@ TAG_HANDLER_BEGIN(CENTER, "CENTER")
 
         m_WParser->SetAlign(wxHTML_ALIGN_CENTER);
         if (c->GetFirstCell() != NULL)
-           {
+        {
             m_WParser->CloseContainer();
             m_WParser->OpenContainer();
         }
@@ -86,12 +85,12 @@ TAG_HANDLER_BEGIN(CENTER, "CENTER")
             c->SetAlignHor(wxHTML_ALIGN_CENTER);
 
         if (tag.HasEnding())
-           {
+        {
             ParseInner(tag);
 
             m_WParser->SetAlign(old);
             if (c->GetFirstCell() != NULL)
-               {
+            {
                 m_WParser->CloseContainer();
                 m_WParser->OpenContainer();
             }
@@ -114,7 +113,7 @@ TAG_HANDLER_BEGIN(DIV, "DIV")
         int old = m_WParser->GetAlign();
         wxHtmlContainerCell *c = m_WParser->GetContainer();
         if (c->GetFirstCell() != NULL)
-           {
+        {
             m_WParser->CloseContainer();
             m_WParser->OpenContainer();
             c = m_WParser->GetContainer();
@@ -122,7 +121,7 @@ TAG_HANDLER_BEGIN(DIV, "DIV")
             m_WParser->SetAlign(c->GetAlignHor());
         }
         else
-           {
+        {
             c->SetAlign(tag);
             m_WParser->SetAlign(c->GetAlignHor());
         }
@@ -131,7 +130,7 @@ TAG_HANDLER_BEGIN(DIV, "DIV")
 
         m_WParser->SetAlign(old);
         if (c->GetFirstCell() != NULL)
-           {
+        {
             m_WParser->CloseContainer();
             m_WParser->OpenContainer();
         }
@@ -151,15 +150,13 @@ TAG_HANDLER_BEGIN(TITLE, "TITLE")
     TAG_HANDLER_PROC(tag)
     {
         if (m_WParser->GetWindow())
-           {
+        {
             wxHtmlWindow *wfr = (wxHtmlWindow*)(m_WParser->GetWindow());
             if (wfr)
-               {
-                wxString title = "";
-                wxString *src = m_WParser->GetSource();
-
-                for (int i = tag.GetBeginPos(); i < tag.GetEndPos1(); i++) title += (*src)[(unsigned int) i];
-                wfr->OnSetTitle(title);
+            {
+                const wxString& src = *m_WParser->GetSource();
+                wfr->OnSetTitle(src.Mid(tag.GetBeginPos(), 
+                                        tag.GetEndPos1()-tag.GetBeginPos()));
             }
         }
         return TRUE;
@@ -174,43 +171,23 @@ TAG_HANDLER_BEGIN(BODY, "BODY")
 
     TAG_HANDLER_PROC(tag)
     {
-        unsigned long tmp;
         wxColour clr;
 
-        if (tag.HasParam(wxT("TEXT")))
-           {
-            if (tag.ScanParam(wxT("TEXT"), wxT("#%lX"), &tmp) == 1)
-               {
-                clr = wxColour((unsigned char)((tmp & 0xFF0000) >> 16),
-                                                          (unsigned char)((tmp & 0x00FF00) >> 8),
-                                                          (unsigned char)(tmp & 0x0000FF));
-                m_WParser->SetActualColor(clr);
-                m_WParser->GetContainer()->InsertCell(new wxHtmlColourCell(clr));
-            }
-       }
-
-        if (tag.HasParam(wxT("LINK")))
-           {
-            if (tag.ScanParam(wxT("LINK"), wxT("#%lX"), &tmp) == 1)
-               {
-                clr = wxColour((unsigned char)((tmp & 0xFF0000) >> 16),
-                                                          (unsigned char)((tmp & 0x00FF00) >> 8),
-                                                          (unsigned char)(tmp & 0x0000FF));
-                m_WParser->SetLinkColor(clr);
-           }
+        if (tag.GetParamAsColour(wxT("TEXT"), &clr))
+        {
+            m_WParser->SetActualColor(clr);
+            m_WParser->GetContainer()->InsertCell(new wxHtmlColourCell(clr));
         }
 
-        if (tag.HasParam(wxT("BGCOLOR")))
-           {
-            if (tag.ScanParam(wxT("BGCOLOR"), wxT("#%lX"), &tmp) == 1)
-               {
-                clr = wxColour((unsigned char)((tmp & 0xFF0000) >> 16),
-                                                          (unsigned char)((tmp & 0x00FF00) >> 8),
-                                                          (unsigned char)(tmp & 0x0000FF));
-                m_WParser->GetContainer()->InsertCell(new wxHtmlColourCell(clr, wxHTML_CLR_BACKGROUND));
-                if (m_WParser->GetWindow() != NULL)
-                    m_WParser->GetWindow()->SetBackgroundColour(clr);
-           }
+        if (tag.GetParamAsColour(wxT("LINK"), &clr))
+            m_WParser->SetLinkColor(clr);
+
+        if (tag.GetParamAsColour(wxT("BGCOLOR"), &clr))
+        {
+            m_WParser->GetContainer()->InsertCell(
+                new wxHtmlColourCell(clr, wxHTML_CLR_BACKGROUND));
+            if (m_WParser->GetWindow() != NULL)
+                m_WParser->GetWindow()->SetBackgroundColour(clr);
         }
         return FALSE;
     }
@@ -228,12 +205,12 @@ TAG_HANDLER_BEGIN(BLOCKQUOTE, "BLOCKQUOTE")
         m_WParser->CloseContainer();
         c = m_WParser->OpenContainer();
 
-           if (c->GetAlignHor() == wxHTML_ALIGN_RIGHT)
+        if (c->GetAlignHor() == wxHTML_ALIGN_RIGHT)
             c->SetIndent(5 * m_WParser->GetCharWidth(), wxHTML_INDENT_RIGHT);
         else
             c->SetIndent(5 * m_WParser->GetCharWidth(), wxHTML_INDENT_LEFT);
 
-           c->SetIndent(m_WParser->GetCharHeight(), wxHTML_INDENT_TOP);
+        c->SetIndent(m_WParser->GetCharHeight(), wxHTML_INDENT_TOP);
         m_WParser->OpenContainer();
         ParseInner(tag);
         c = m_WParser->CloseContainer();
@@ -247,6 +224,14 @@ TAG_HANDLER_END(BLOCKQUOTE)
 
 
 
+// Tag handler for tags that we have to ignore, otherwise non-text data
+// would show up as text:
+TAG_HANDLER_BEGIN(DoNothing, "SCRIPT")
+    TAG_HANDLER_PROC(tag)
+    {
+        return true;
+    }
+TAG_HANDLER_END(DoNothing)
 
 
 
@@ -259,6 +244,7 @@ TAGS_MODULE_BEGIN(Layout)
     TAGS_MODULE_ADD(TITLE)
     TAGS_MODULE_ADD(BODY)
     TAGS_MODULE_ADD(BLOCKQUOTE)
+    TAGS_MODULE_ADD(DoNothing)
 
 TAGS_MODULE_END(Layout)