]> git.saurik.com Git - wxWidgets.git/blob - src/html/m_meta.cpp
added <meta http-equiv> handler
[wxWidgets.git] / src / html / m_meta.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: m_meta.cpp
3 // Purpose: wxHtml module for parsing <meta> tag
4 // Author: Vaclav Slavik
5 // RCS-ID: $Id$
6 // Copyright: (c) 2000 Vaclav Slavik
7 // Licence: wxWindows Licence
8 /////////////////////////////////////////////////////////////////////////////
9
10 #ifdef __GNUG__
11 #pragma implementation
12 #endif
13
14 #include "wx/wxprec.h"
15
16
17 #include "wx/defs.h"
18 #if wxUSE_HTML
19
20 #ifdef __BORDLANDC__
21 #pragma hdrstop
22 #endif
23
24 #ifndef WXPRECOMP
25 #include "wx/wx.h"
26 #endif
27
28 #include "wx/fontmap.h"
29 #include "wx/html/forcelnk.h"
30 #include "wx/html/m_templ.h"
31 #include "wx/html/htmlcell.h"
32
33 FORCE_LINK_ME(m_meta)
34
35
36
37
38 TAG_HANDLER_BEGIN(META, "META")
39
40 TAG_HANDLER_PROC(tag)
41 {
42 if (tag.HasParam(_T("HTTP-EQUIV")) &&
43 tag.GetParam(_T("HTTP-EQUIV")) == _T("Content-Type") &&
44 tag.HasParam(_T("CONTENT")))
45 {
46 wxString content = tag.GetParam(_T("CONTENT"));
47 if (content.Left(19) == _T("text/html; charset="))
48 {
49 wxFontEncoding enc =
50 wxTheFontMapper -> CharsetToEncoding(content.Mid(19));
51 if (enc == wxFONTENCODING_SYSTEM) return FALSE;
52 if (enc == m_WParser -> GetInputEncoding()) return FALSE;
53
54 m_WParser -> SetInputEncoding(enc);
55 m_WParser -> GetContainer() -> InsertCell(
56 new wxHtmlFontCell(m_WParser -> CreateCurrentFont()));
57 }
58 }
59 return FALSE;
60 }
61
62 TAG_HANDLER_END(META)
63
64
65 TAGS_MODULE_BEGIN(MetaTag)
66
67 TAGS_MODULE_ADD(META)
68
69 TAGS_MODULE_END(MetaTag)
70
71 #endif