X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/efba2b89f15ba8757a722fc56c67f434cf960482..f31bbefd1070af6162b9deeda9d4e528efbc1b31:/src/html/m_links.cpp?ds=inline diff --git a/src/html/m_links.cpp b/src/html/m_links.cpp index c4a7107d89..cfb4d5b32c 100644 --- a/src/html/m_links.cpp +++ b/src/html/m_links.cpp @@ -1,84 +1,96 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: mod_links.cpp +// Name: src/html/m_links.cpp // Purpose: wxHtml module for links & anchors // Author: Vaclav Slavik // RCS-ID: $Id$ // Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation -#endif - -#include +#include "wx/wxprec.h" -#if wxUSE_HTML - -#ifdef __BORDLANDC__ -#pragma hdrstop +#ifdef __BORLANDC__ + #pragma hdrstop #endif -#ifndef WXPRECOMP -#include -#endif +#if wxUSE_HTML && wxUSE_STREAMS +#ifndef WX_PRECOMP +#endif #include "wx/html/forcelnk.h" #include "wx/html/m_templ.h" -FORCE_LINK_ME(mod_links) +FORCE_LINK_ME(m_links) class wxHtmlAnchorCell : public wxHtmlCell { - private: - wxString m_AnchorName; - - public: - wxHtmlAnchorCell(const wxString& name) : wxHtmlCell() {m_AnchorName = name;} - virtual const wxHtmlCell* Find(int condition, const void* param) const +private: + wxString m_AnchorName; + +public: + wxHtmlAnchorCell(const wxString& name) : wxHtmlCell() + { m_AnchorName = name; } + void Draw(wxDC& WXUNUSED(dc), + int WXUNUSED(x), int WXUNUSED(y), + int WXUNUSED(view_y1), int WXUNUSED(view_y2), + wxHtmlRenderingInfo& WXUNUSED(info)) {} + + virtual const wxHtmlCell* Find(int condition, const void* param) const + { + if ((condition == wxHTML_COND_ISANCHOR) && + (m_AnchorName == (*((const wxString*)param)))) { - if ((condition == wxHTML_COND_ISANCHOR) && (m_AnchorName == (*((const wxString*)param)))) - return this; - else - return wxHtmlCell::Find(condition, param); + return this; } + else + { + return wxHtmlCell::Find(condition, param); + } + } + + DECLARE_NO_COPY_CLASS(wxHtmlAnchorCell) }; TAG_HANDLER_BEGIN(A, "A") + TAG_HANDLER_CONSTR(A) { } TAG_HANDLER_PROC(tag) { - if (tag.HasParam("NAME")) { - m_WParser -> GetContainer() -> InsertCell(new wxHtmlAnchorCell(tag.GetParam("NAME"))); + if (tag.HasParam( wxT("NAME") )) + { + m_WParser->GetContainer()->InsertCell(new wxHtmlAnchorCell(tag.GetParam( wxT("NAME") ))); } - if (tag.HasParam("HREF")) { - wxString oldlnk = m_WParser -> GetLink(); - wxColour oldclr = m_WParser -> GetActualColor(); - int oldund = m_WParser -> GetFontUnderlined(); - - m_WParser -> SetActualColor(m_WParser -> GetLinkColor()); - m_WParser -> GetContainer() -> InsertCell(new wxHtmlColourCell(m_WParser -> GetLinkColor())); - m_WParser -> SetFontUnderlined(TRUE); - m_WParser -> GetContainer() -> InsertCell(new wxHtmlFontCell(m_WParser -> CreateCurrentFont())); - m_WParser -> SetLink(tag.GetParam("HREF")); + if (tag.HasParam( wxT("HREF") )) + { + wxHtmlLinkInfo oldlnk = m_WParser->GetLink(); + wxColour oldclr = m_WParser->GetActualColor(); + int oldund = m_WParser->GetFontUnderlined(); + wxString name(tag.GetParam( wxT("HREF") )), target; + + if (tag.HasParam( wxT("TARGET") )) target = tag.GetParam( wxT("TARGET") ); + m_WParser->SetActualColor(m_WParser->GetLinkColor()); + m_WParser->GetContainer()->InsertCell(new wxHtmlColourCell(m_WParser->GetLinkColor())); + m_WParser->SetFontUnderlined(true); + m_WParser->GetContainer()->InsertCell(new wxHtmlFontCell(m_WParser->CreateCurrentFont())); + m_WParser->SetLink(wxHtmlLinkInfo(name, target)); ParseInner(tag); - m_WParser -> SetLink(oldlnk); - m_WParser -> SetFontUnderlined(oldund); - m_WParser -> GetContainer() -> InsertCell(new wxHtmlFontCell(m_WParser -> CreateCurrentFont())); - m_WParser -> SetActualColor(oldclr); - m_WParser -> GetContainer() -> InsertCell(new wxHtmlColourCell(oldclr)); + m_WParser->SetLink(oldlnk); + m_WParser->SetFontUnderlined(oldund); + m_WParser->GetContainer()->InsertCell(new wxHtmlFontCell(m_WParser->CreateCurrentFont())); + m_WParser->SetActualColor(oldclr); + m_WParser->GetContainer()->InsertCell(new wxHtmlColourCell(oldclr)); - return TRUE; + return true; } - else return FALSE; + else return false; } TAG_HANDLER_END(A)