]>
git.saurik.com Git - wxWidgets.git/blob - src/html/m_pre.cpp
1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxHtml module for <PRE> ... </PRE> tag (code citation)
4 // Author: Vaclav Slavik
6 // Copyright: (c) 1999 Vaclav Slavik
7 // Licence: wxWindows Licence
8 /////////////////////////////////////////////////////////////////////////////
11 #pragma implementation
14 #include "wx/wxprec.h"
17 #if wxUSE_HTML && wxUSE_STREAMS
27 #include "wx/html/forcelnk.h"
28 #include "wx/html/m_templ.h"
30 #include "wx/html/htmlcell.h"
31 #include "wx/tokenzr.h"
32 #include "wx/encconv.h"
36 //-----------------------------------------------------------------------------
38 //-----------------------------------------------------------------------------
41 TAG_HANDLER_BEGIN(PRE
, "PRE")
45 wxHtmlContainerCell
*c
;
47 int fixed
= m_WParser
->GetFontFixed(),
48 italic
= m_WParser
->GetFontItalic(),
49 underlined
= m_WParser
->GetFontUnderlined(),
50 bold
= m_WParser
->GetFontBold(),
51 fsize
= m_WParser
->GetFontSize();
53 c
= m_WParser
->GetContainer();
54 m_WParser
->SetFontUnderlined(FALSE
);
55 m_WParser
->SetFontBold(FALSE
);
56 m_WParser
->SetFontItalic(FALSE
);
57 m_WParser
->SetFontFixed(TRUE
);
58 m_WParser
->SetFontSize(3);
59 c
->InsertCell(new wxHtmlFontCell(m_WParser
->CreateCurrentFont()));
61 m_WParser
->CloseContainer();
62 c
= m_WParser
->OpenContainer();
63 c
->SetAlignHor(wxHTML_ALIGN_LEFT
);
67 src
= *m_WParser
->GetSource();
68 srcMid
= src
.Mid(tag
.GetBeginPos(),
69 tag
.GetEndPos1() - tag
.GetBeginPos());
70 srcMid
.Replace(wxT("\t"), wxT(" "));
71 srcMid
.Replace(wxT(" "), wxT(" "));
72 srcMid
.Replace(wxT("\n"), wxT("<br>"));
74 // It is safe to temporarily change the source being parsed,
75 // provided we restore the state back after parsing
76 m_Parser
->SetSource(srcMid
);
77 m_Parser
->DoParsing();
78 m_Parser
->SetSource(src
);
80 m_WParser
->CloseContainer();
81 c
= m_WParser
->OpenContainer();
83 m_WParser
->SetFontUnderlined(underlined
);
84 m_WParser
->SetFontBold(bold
);
85 m_WParser
->SetFontItalic(italic
);
86 m_WParser
->SetFontFixed(fixed
);
87 m_WParser
->SetFontSize(fsize
);
88 c
->InsertCell(new wxHtmlFontCell(m_WParser
->CreateCurrentFont()));
99 TAGS_MODULE_BEGIN(Pre
)