]>
git.saurik.com Git - wxWidgets.git/blob - src/html/m_links.cpp
   1 ///////////////////////////////////////////////////////////////////////////// 
   2 // Name:        src/html/m_links.cpp 
   3 // Purpose:     wxHtml module for links & anchors 
   4 // Author:      Vaclav Slavik 
   6 // Copyright:   (c) 1999 Vaclav Slavik 
   7 // Licence:     wxWindows licence 
   8 ///////////////////////////////////////////////////////////////////////////// 
  10 #include "wx/wxprec.h" 
  16 #if wxUSE_HTML && wxUSE_STREAMS 
  21 #include "wx/html/forcelnk.h" 
  22 #include "wx/html/m_templ.h" 
  25 FORCE_LINK_ME(m_links
) 
  28 class wxHtmlAnchorCell 
: public wxHtmlCell
 
  31     wxString m_AnchorName
; 
  34     wxHtmlAnchorCell(const wxString
& name
) : wxHtmlCell() 
  35         { m_AnchorName 
= name
; } 
  36     void Draw(wxDC
& WXUNUSED(dc
), 
  37               int WXUNUSED(x
), int WXUNUSED(y
), 
  38               int WXUNUSED(view_y1
), int WXUNUSED(view_y2
), 
  39               wxHtmlRenderingInfo
& WXUNUSED(info
)) {} 
  41     virtual const wxHtmlCell
* Find(int condition
, const void* param
) const 
  43         if ((condition 
== wxHTML_COND_ISANCHOR
) && 
  44             (m_AnchorName 
== (*((const wxString
*)param
)))) 
  50             return wxHtmlCell::Find(condition
, param
); 
  54     DECLARE_NO_COPY_CLASS(wxHtmlAnchorCell
) 
  59 TAG_HANDLER_BEGIN(A
, "A") 
  60     TAG_HANDLER_CONSTR(A
) { } 
  64         if (tag
.HasParam( wxT("NAME") )) 
  66             m_WParser
->GetContainer()->InsertCell(new wxHtmlAnchorCell(tag
.GetParam( wxT("NAME") ))); 
  69         if (tag
.HasParam( wxT("HREF") )) 
  71             wxHtmlLinkInfo oldlnk 
= m_WParser
->GetLink(); 
  72             wxColour oldclr 
= m_WParser
->GetActualColor(); 
  73             int oldund 
= m_WParser
->GetFontUnderlined(); 
  74             wxString 
name(tag
.GetParam( wxT("HREF") )), target
; 
  76             if (tag
.HasParam( wxT("TARGET") )) target 
= tag
.GetParam( wxT("TARGET") ); 
  77             m_WParser
->SetActualColor(m_WParser
->GetLinkColor()); 
  78             m_WParser
->GetContainer()->InsertCell(new wxHtmlColourCell(m_WParser
->GetLinkColor())); 
  79             m_WParser
->SetFontUnderlined(true); 
  80             m_WParser
->GetContainer()->InsertCell(new wxHtmlFontCell(m_WParser
->CreateCurrentFont())); 
  81             m_WParser
->SetLink(wxHtmlLinkInfo(name
, target
)); 
  85             m_WParser
->SetLink(oldlnk
); 
  86             m_WParser
->SetFontUnderlined(oldund
); 
  87             m_WParser
->GetContainer()->InsertCell(new wxHtmlFontCell(m_WParser
->CreateCurrentFont())); 
  88             m_WParser
->SetActualColor(oldclr
); 
  89             m_WParser
->GetContainer()->InsertCell(new wxHtmlColourCell(oldclr
)); 
 100 TAGS_MODULE_BEGIN(Links
) 
 104 TAGS_MODULE_END(Links
)