]>
git.saurik.com Git - wxWidgets.git/blob - src/html/m_links.cpp
1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxHtml module for links & anchors
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
28 #include "wx/html/forcelnk.h"
29 #include "wx/html/m_templ.h"
32 FORCE_LINK_ME(m_links
)
35 class wxHtmlAnchorCell
: public wxHtmlCell
38 wxString m_AnchorName
;
41 wxHtmlAnchorCell(const wxString
& name
) : wxHtmlCell() {m_AnchorName
= name
;}
42 virtual const wxHtmlCell
* Find(int condition
, const void* param
) const
44 if ((condition
== wxHTML_COND_ISANCHOR
) && (m_AnchorName
== (*((const wxString
*)param
))))
47 return wxHtmlCell::Find(condition
, param
);
53 TAG_HANDLER_BEGIN(A
, "A")
57 if (tag
.HasParam("NAME"))
59 m_WParser
->GetContainer()->InsertCell(new wxHtmlAnchorCell(tag
.GetParam("NAME")));
62 if (tag
.HasParam("HREF"))
64 wxHtmlLinkInfo oldlnk
= m_WParser
->GetLink();
65 wxColour oldclr
= m_WParser
->GetActualColor();
66 int oldund
= m_WParser
->GetFontUnderlined();
67 wxString
name(tag
.GetParam("HREF")), target
;
69 if (tag
.HasParam("TARGET")) target
= tag
.GetParam("TARGET");
70 m_WParser
->SetActualColor(m_WParser
->GetLinkColor());
71 m_WParser
->GetContainer()->InsertCell(new wxHtmlColourCell(m_WParser
->GetLinkColor()));
72 m_WParser
->SetFontUnderlined(TRUE
);
73 m_WParser
->GetContainer()->InsertCell(new wxHtmlFontCell(m_WParser
->CreateCurrentFont()));
74 m_WParser
->SetLink(wxHtmlLinkInfo(name
, target
));
78 m_WParser
->SetLink(oldlnk
);
79 m_WParser
->SetFontUnderlined(oldund
);
80 m_WParser
->GetContainer()->InsertCell(new wxHtmlFontCell(m_WParser
->CreateCurrentFont()));
81 m_WParser
->SetActualColor(oldclr
);
82 m_WParser
->GetContainer()->InsertCell(new wxHtmlColourCell(oldclr
));
93 TAGS_MODULE_BEGIN(Links
)
97 TAGS_MODULE_END(Links
)