wxHtmlWindow::OnLinkClicked and wxHtmlCell::Get/SetLink and wxHtmlWinParser::GetSetLink now work with wxHtmlLinkInfo instead of wxString (making it ready for frames)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5092 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
f2c2fa4d62
commit
846914d18d
@ -103,6 +103,7 @@
|
||||
\input hthelpct.tex
|
||||
\input hthlpdat.tex
|
||||
\input hthlpfrm.tex
|
||||
\input htlnkinf.tex
|
||||
\input htparser.tex
|
||||
\input htprint.tex
|
||||
\input httag.tex
|
||||
|
@ -129,9 +129,10 @@ Returns height of the cell (m_Height member).
|
||||
|
||||
\membersection{wxHtmlCell::GetLink}\label{wxhtmlcellgetlink}
|
||||
|
||||
\constfunc{virtual wxString}{GetLink}{\param{int }{x = 0}, \param{int }{y = 0}}
|
||||
\constfunc{virtual wxHtmlLinkInfo*}{GetLink}{\param{int }{x = 0}, \param{int }{y = 0}}
|
||||
|
||||
Returns hypertext link if associated with this cell or empty string otherwise.
|
||||
Returns hypertext link if associated with this cell or NULL otherwise.
|
||||
See \helpref{wxHtmlLinkInfo}{wxhtmllinkinfo}.
|
||||
(Note: this makes sense only for visible tags).
|
||||
|
||||
\wxheading{Parameters}
|
||||
@ -216,10 +217,10 @@ button is pressed, FALSE otherwise}
|
||||
|
||||
\membersection{wxHtmlCell::SetLink}\label{wxhtmlcellsetlink}
|
||||
|
||||
\func{void}{SetLink}{\param{const wxString\& }{link}}
|
||||
\func{void}{SetLink}{\param{const wxHtmlLinkInfo\& }{link}}
|
||||
|
||||
Sets the hypertext link asocciated with this cell. (Default value
|
||||
is wxEmptyString (no link))
|
||||
is \helpref{wxHtmlLinkInfo}{wxhtmllinkinfo}("", "") (no link))
|
||||
|
||||
\membersection{wxHtmlCell::SetNext}\label{wxhtmlcellsetnext}
|
||||
|
||||
|
48
docs/latex/wx/htlnkinf.tex
Normal file
48
docs/latex/wx/htlnkinf.tex
Normal file
@ -0,0 +1,48 @@
|
||||
%
|
||||
% automatically generated by HelpGen from
|
||||
% x.h at 23/Dec/99 21:30:20
|
||||
%
|
||||
|
||||
|
||||
\section{\class{wxHtmlLinkInfo}}\label{wxhtmllinkinfo}
|
||||
|
||||
This class stores all neccessary information about hypertext
|
||||
links (as represented by {\tt <A>} tag in HTML documents). In
|
||||
current implementation it stores URL and target frame name.
|
||||
{\it Note that frames are not currently supported by wxHTML!}
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
|
||||
\membersection{wxHtmlLinkInfo::wxHtmlLinkInfo}\label{wxhtmllinkinfowxhtmllinkinfo}
|
||||
|
||||
\func{}{wxHtmlLinkInfo}{\void}
|
||||
|
||||
Default ctor.
|
||||
|
||||
\membersection{wxHtmlLinkInfo::wxHtmlLinkInfo}\label{wxhtmllinkinfowxhtmllinkinfo}
|
||||
|
||||
\func{}{wxHtmlLinkInfo}{\param{const wxString\& }{href}, \param{const wxString\& }{target = wxEmptyString}}
|
||||
|
||||
Construct hypertext link from HREF (aka URL) and TARGET (name of target
|
||||
frame).
|
||||
|
||||
|
||||
\membersection{wxHtmlLinkInfo::GetHref}\label{wxhtmllinkinfogethref}
|
||||
|
||||
\func{wxString}{GetHref}{\void}
|
||||
|
||||
Returns {\it HREF} value of the {\tt <A>} tag.
|
||||
|
||||
\membersection{wxHtmlLinkInfo::GetTarget}\label{wxhtmllinkinfogettarget}
|
||||
|
||||
\func{wxString}{GetTarget}{\void}
|
||||
|
||||
Returns {\it TARGET} value of the {\tt <A>} tag (this value
|
||||
is used to specify in which frame should be the page pointed
|
||||
by {\helpref{Href}{wxhtmllinkinfogethref} opened).
|
@ -121,11 +121,13 @@ FALSE if an error occured, TRUE otherwise
|
||||
|
||||
\membersection{wxHtmlWindow::OnLinkClicked}\label{wxhtmlwindowonlinkclicked}
|
||||
|
||||
\func{virtual void}{OnLinkClicked}{\param{const wxString\& }{link}}
|
||||
\func{virtual void}{OnLinkClicked}{\param{wxHtmlLinkInfo* }{link}}
|
||||
|
||||
Called when user clicks on hypertext link. Default behaviour is to call
|
||||
\helpref{LoadPage}{wxhtmlwindowloadpage} and do nothing else.
|
||||
|
||||
Also see \helpref{wxHtmlLinkInfo}{wxhtmllinkinfo}.
|
||||
|
||||
|
||||
\membersection{wxHtmlWindow::OnSetTitle}\label{wxhtmlwindowonsettitle}
|
||||
|
||||
|
@ -147,9 +147,10 @@ Returns TRUE if actual font is underlined, FALSE otherwise.
|
||||
|
||||
\membersection{wxHtmlWinParser::GetLink}\label{wxhtmlwinparsergetlink}
|
||||
|
||||
\constfunc{const wxString\&}{GetLink}{\void}
|
||||
\constfunc{const wxHtmlLinkInfo\&}{GetLink}{\void}
|
||||
|
||||
Returns actual hypertext link. (This value is non-empty string
|
||||
Returns actual hypertext link. (This value has non-empty
|
||||
\helpref{Href}{wxhtmllinkinfogethref}} string
|
||||
if the parser is between {\tt <A>} and {\tt </A>} tags,
|
||||
wxEmptyString otherwise.
|
||||
|
||||
@ -229,7 +230,7 @@ Sets italic flag of actualfont. {\it x} is either TRUE of FALSE.
|
||||
|
||||
\func{void}{SetFontSize}{\param{int }{s}}
|
||||
|
||||
Sets actual font size (HTML size varies from -2 to +4)
|
||||
Sets actual font size (HTML size varies from 1 to 7)
|
||||
|
||||
\membersection{wxHtmlWinParser::SetFontUnderlined}\label{wxhtmlwinparsersetfontunderlined}
|
||||
|
||||
@ -245,9 +246,11 @@ Sets fonts. This method is identical to \helpref{wxHtmlWindow::SetFonts}{wxhtmlw
|
||||
|
||||
\membersection{wxHtmlWinParser::SetLink}\label{wxhtmlwinparsersetlink}
|
||||
|
||||
\func{void}{SetLink}{\param{const wxString\& }{link}}
|
||||
\func{void}{SetLink}{\param{const wxHtmlLinkInfo\& }{link}}
|
||||
|
||||
Sets actual hypertext link. wxEmptyString means no link.
|
||||
Sets actual hypertext link. Empty link is represented
|
||||
by \helpref{wxHtmlLinkInfo}{wxhtmllinkinfo} with {\it Href} equal
|
||||
to wxEmptyString.
|
||||
|
||||
\membersection{wxHtmlWinParser::SetLinkColor}\label{wxhtmlwinparsersetlinkcolor}
|
||||
|
||||
|
@ -24,6 +24,8 @@
|
||||
#include "wx/html/htmldefs.h"
|
||||
#include "wx/window.h"
|
||||
|
||||
|
||||
class wxHtmlLinkInfo;
|
||||
class wxHtmlCell;
|
||||
class wxHtmlContainerCell;
|
||||
|
||||
@ -38,8 +40,8 @@ class wxHtmlContainerCell;
|
||||
class WXDLLEXPORT wxHtmlCell : public wxObject
|
||||
{
|
||||
public:
|
||||
wxHtmlCell() : wxObject() {m_Next = NULL; m_Parent = NULL; m_Width = m_Height = m_Descent = 0; m_CanLiveOnPagebreak = TRUE;}
|
||||
virtual ~wxHtmlCell() {if (m_Next) delete m_Next;};
|
||||
wxHtmlCell();
|
||||
virtual ~wxHtmlCell();
|
||||
|
||||
void SetParent(wxHtmlContainerCell *p) {m_Parent = p;}
|
||||
wxHtmlContainerCell *GetParent() const {return m_Parent;}
|
||||
@ -49,7 +51,7 @@ class WXDLLEXPORT wxHtmlCell : public wxObject
|
||||
int GetWidth() const {return m_Width;}
|
||||
int GetHeight() const {return m_Height;}
|
||||
int GetDescent() const {return m_Descent;}
|
||||
virtual wxString GetLink(int WXUNUSED(x) = 0,
|
||||
virtual wxHtmlLinkInfo* GetLink(int WXUNUSED(x) = 0,
|
||||
int WXUNUSED(y) = 0) const
|
||||
{ return m_Link; }
|
||||
// returns the link associated with this cell. The position is position within
|
||||
@ -58,7 +60,7 @@ class WXDLLEXPORT wxHtmlCell : public wxObject
|
||||
// members access methods
|
||||
|
||||
virtual void SetPos(int x, int y) {m_PosX = x, m_PosY = y;}
|
||||
void SetLink(const wxString& link) {m_Link = link;}
|
||||
void SetLink(const wxHtmlLinkInfo& link);
|
||||
void SetNext(wxHtmlCell *cell) {m_Next = cell;}
|
||||
// members writin methods
|
||||
|
||||
@ -120,7 +122,7 @@ class WXDLLEXPORT wxHtmlCell : public wxObject
|
||||
// m_Descent is used to position text&images..
|
||||
long m_PosX, m_PosY;
|
||||
// position where the fragment is drawn
|
||||
wxString m_Link;
|
||||
wxHtmlLinkInfo *m_Link;
|
||||
// destination address if this fragment is hypertext link, "" otherwise
|
||||
bool m_CanLiveOnPagebreak;
|
||||
// true if this cell can be placed on pagebreak, false otherwise
|
||||
@ -222,7 +224,7 @@ class WXDLLEXPORT wxHtmlContainerCell : public wxHtmlCell
|
||||
// Layout()
|
||||
void SetBackgroundColour(const wxColour& clr) {m_UseBkColour = TRUE; m_BkColour = clr;}
|
||||
void SetBorder(const wxColour& clr1, const wxColour& clr2) {m_UseBorder = TRUE; m_BorderColour1 = clr1, m_BorderColour2 = clr2;}
|
||||
virtual wxString GetLink(int x = 0, int y = 0) const;
|
||||
virtual wxHtmlLinkInfo* GetLink(int x = 0, int y = 0) const;
|
||||
virtual const wxHtmlCell* Find(int condition, const void* param) const;
|
||||
virtual void OnMouseClick(wxWindow *parent, int x, int y, bool left, bool middle, bool right);
|
||||
|
||||
@ -301,7 +303,34 @@ class WXDLLEXPORT wxHtmlWidgetCell : public wxHtmlCell
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
//--------------------------------------------------------------------------------
|
||||
// wxHtmlLinkInfo
|
||||
// Internal data structure. It represents hypertext link
|
||||
//--------------------------------------------------------------------------------
|
||||
|
||||
class wxHtmlLinkInfo : public wxObject
|
||||
{
|
||||
public:
|
||||
wxHtmlLinkInfo() : wxObject()
|
||||
{ m_Href = m_Target = wxEmptyString; }
|
||||
wxHtmlLinkInfo(const wxString& href, const wxString& target = wxEmptyString) : wxObject()
|
||||
{ m_Href = href; m_Target = target; }
|
||||
wxHtmlLinkInfo(const wxHtmlLinkInfo& l)
|
||||
{ m_Href = l.m_Href, m_Target = l.m_Target; }
|
||||
wxHtmlLinkInfo& operator=(const wxHtmlLinkInfo& l)
|
||||
{ m_Href = l.m_Href, m_Target = l.m_Target; return *this; }
|
||||
|
||||
wxString GetHref() const { return m_Href; }
|
||||
wxString GetTarget() const { return m_Target; }
|
||||
|
||||
private:
|
||||
wxString m_Href, m_Target;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // wxUSE_HTML
|
||||
|
||||
#endif // _WX_HTMLCELL_H_
|
||||
|
||||
|
@ -136,7 +136,7 @@ class WXDLLEXPORT wxHtmlWindow : public wxScrolledWindow
|
||||
static void AddFilter(wxHtmlFilter *filter);
|
||||
// Adds input filter
|
||||
|
||||
virtual void OnLinkClicked(const wxString& link);
|
||||
virtual void OnLinkClicked(wxHtmlLinkInfo *link);
|
||||
// called when users clicked on hypertext link. Default behavior is to
|
||||
// call LoadPage(loc)
|
||||
|
||||
@ -200,7 +200,7 @@ class WXDLLEXPORT wxHtmlWindow : public wxScrolledWindow
|
||||
bool m_tmpMouseMoved;
|
||||
// a flag indicated if mouse moved
|
||||
// (if TRUE we will try to change cursor in last call to OnIdle)
|
||||
wxString m_tmpLastLink;
|
||||
wxHtmlLinkInfo *m_tmpLastLink;
|
||||
// contains last link name
|
||||
int m_tmpCanDrawLocks;
|
||||
// if >0 contents of the window is not redrawn
|
||||
|
@ -51,7 +51,7 @@ class WXDLLEXPORT wxHtmlWinParser : public wxHtmlParser
|
||||
double GetPixelScale() {return m_PixelScale;}
|
||||
int GetCharHeight() const {return m_CharHeight;}
|
||||
int GetCharWidth() const {return m_CharWidth;}
|
||||
// NOTE : these functions do _not_ return _actual_
|
||||
// NOTE : these functions do _not_ return _actual_
|
||||
// height/width. They return h/w of default font
|
||||
// for this DC. If you want actual values, call
|
||||
// GetDC() -> GetChar...()
|
||||
@ -82,7 +82,7 @@ class WXDLLEXPORT wxHtmlWinParser : public wxHtmlParser
|
||||
// container
|
||||
|
||||
int GetFontSize() const {return m_FontSize;}
|
||||
void SetFontSize(int s) {m_FontSize = s;}
|
||||
void SetFontSize(int s);
|
||||
int GetFontBold() const {return m_FontBold;}
|
||||
void SetFontBold(int x) {m_FontBold = x;}
|
||||
int GetFontItalic() const {return m_FontItalic;}
|
||||
@ -98,12 +98,11 @@ class WXDLLEXPORT wxHtmlWinParser : public wxHtmlParser
|
||||
void SetLinkColor(const wxColour& clr) {m_LinkColor = clr;}
|
||||
const wxColour& GetActualColor() const {return m_ActualColor;}
|
||||
void SetActualColor(const wxColour& clr) {m_ActualColor = clr;}
|
||||
const wxString& GetLink() const {return m_Link;}
|
||||
void SetLink(const wxString& link) {m_Link = link; m_UseLink = link.Length() > 0;}
|
||||
const wxHtmlLinkInfo& GetLink() const {return m_Link;}
|
||||
void SetLink(const wxHtmlLinkInfo& link);
|
||||
|
||||
virtual wxFont* CreateCurrentFont();
|
||||
// creates font depending on m_Font* members.
|
||||
// (note : it calls wxHtmlWindow's CreateCurrentFont...)
|
||||
|
||||
protected:
|
||||
virtual void AddText(const char *txt);
|
||||
@ -128,7 +127,7 @@ class WXDLLEXPORT wxHtmlWinParser : public wxHtmlParser
|
||||
wxColour m_LinkColor;
|
||||
wxColour m_ActualColor;
|
||||
// basic font parameters.
|
||||
wxString m_Link;
|
||||
wxHtmlLinkInfo m_Link;
|
||||
// actual hypertext link or empty string
|
||||
bool m_UseLink;
|
||||
// TRUE if m_Link is not empty
|
||||
@ -141,7 +140,7 @@ class WXDLLEXPORT wxHtmlWinParser : public wxHtmlParser
|
||||
// table of loaded fonts. 1st four indexes are 0 or 1, depending on on/off
|
||||
// state of these flags (from left to right):
|
||||
// [bold][italic][underlined][fixed_size]
|
||||
// last index is font size : from 0 to 7 (remapped from html sizes -2 to +4)
|
||||
// last index is font size : from 0 to 6 (remapped from html sizes 1 to 7)
|
||||
// Note : this table covers all possible combinations of fonts, but not
|
||||
// all of them are used, so many items in table are usually NULL.
|
||||
int m_FontsSizes[7];
|
||||
|
@ -33,14 +33,29 @@
|
||||
// wxHtmlCell
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
wxHtmlCell::wxHtmlCell() : wxObject()
|
||||
{
|
||||
m_Next = NULL;
|
||||
m_Parent = NULL;
|
||||
m_Width = m_Height = m_Descent = 0;
|
||||
m_CanLiveOnPagebreak = TRUE;
|
||||
m_Link = NULL;
|
||||
}
|
||||
|
||||
wxHtmlCell::~wxHtmlCell()
|
||||
{
|
||||
if (m_Link) delete m_Link;
|
||||
if (m_Next) delete m_Next;
|
||||
}
|
||||
|
||||
|
||||
void wxHtmlCell::OnMouseClick(wxWindow *parent, int x, int y,
|
||||
bool WXUNUSED(left),
|
||||
bool WXUNUSED(middle),
|
||||
bool WXUNUSED(right))
|
||||
{
|
||||
wxString lnk = GetLink(x, y);
|
||||
if (lnk != wxEmptyString)
|
||||
wxHtmlLinkInfo *lnk = GetLink(x, y);
|
||||
if (lnk != NULL)
|
||||
((wxHtmlWindow*)parent) -> OnLinkClicked(lnk);
|
||||
// note : this overcasting is legal because parent is *always* wxHtmlWindow
|
||||
}
|
||||
@ -49,7 +64,6 @@ void wxHtmlCell::OnMouseClick(wxWindow *parent, int x, int y,
|
||||
|
||||
bool wxHtmlCell::AdjustPagebreak(int *pagebreak)
|
||||
{
|
||||
|
||||
if ((!m_CanLiveOnPagebreak) &&
|
||||
m_PosY < *pagebreak && m_PosY + m_Height > *pagebreak) {
|
||||
*pagebreak = m_PosY;
|
||||
@ -65,6 +79,13 @@ bool wxHtmlCell::AdjustPagebreak(int *pagebreak)
|
||||
|
||||
|
||||
|
||||
void wxHtmlCell::SetLink(const wxHtmlLinkInfo& link)
|
||||
{
|
||||
if (m_Link) delete m_Link;
|
||||
m_Link = new wxHtmlLinkInfo(link);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxHtmlWordCell
|
||||
@ -344,7 +365,7 @@ void wxHtmlContainerCell::DrawInvisible(wxDC& dc, int x, int y)
|
||||
|
||||
|
||||
|
||||
wxString wxHtmlContainerCell::GetLink(int x, int y) const
|
||||
wxHtmlLinkInfo *wxHtmlContainerCell::GetLink(int x, int y) const
|
||||
{
|
||||
wxHtmlCell *c = m_Cells;
|
||||
int cx, cy, cw, ch;
|
||||
@ -356,7 +377,7 @@ wxString wxHtmlContainerCell::GetLink(int x, int y) const
|
||||
return c -> GetLink(x - cx, y - cy);
|
||||
c = c -> GetNext();
|
||||
}
|
||||
return wxEmptyString;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
|
@ -44,7 +44,7 @@ wxHtmlWindow::wxHtmlWindow(wxWindow *parent, wxWindowID id, const wxPoint& pos,
|
||||
long style, const wxString& name) : wxScrolledWindow(parent, id, pos, size, wxVSCROLL, name)
|
||||
{
|
||||
m_tmpMouseMoved = FALSE;
|
||||
m_tmpLastLink = wxEmptyString;
|
||||
m_tmpLastLink = NULL;
|
||||
m_tmpCanDrawLocks = 0;
|
||||
m_FS = new wxFileSystem();
|
||||
m_RelatedStatusBar = -1;
|
||||
@ -421,9 +421,9 @@ void wxHtmlWindow::AddFilter(wxHtmlFilter *filter)
|
||||
|
||||
|
||||
|
||||
void wxHtmlWindow::OnLinkClicked(const wxString& link)
|
||||
void wxHtmlWindow::OnLinkClicked(wxHtmlLinkInfo *link)
|
||||
{
|
||||
LoadPage(link);
|
||||
LoadPage(link -> GetHref());
|
||||
}
|
||||
|
||||
|
||||
@ -522,7 +522,7 @@ void wxHtmlWindow::OnIdle(wxIdleEvent& event)
|
||||
if (m_tmpMouseMoved && (m_Cell != NULL)) {
|
||||
int sx, sy;
|
||||
int x, y;
|
||||
wxString lnk;
|
||||
wxHtmlLinkInfo *lnk;
|
||||
|
||||
ViewStart(&sx, &sy); sx *= wxHTML_SCROLL_STEP; sy *= wxHTML_SCROLL_STEP;
|
||||
wxGetMousePosition(&x, &y);
|
||||
@ -530,13 +530,14 @@ void wxHtmlWindow::OnIdle(wxIdleEvent& event)
|
||||
lnk = m_Cell -> GetLink(sx + x, sy + y);
|
||||
|
||||
if (lnk != m_tmpLastLink) {
|
||||
if (lnk == wxEmptyString) {
|
||||
if (lnk == NULL) {
|
||||
SetCursor(cur_arrow);
|
||||
if (m_RelatedStatusBar != -1) m_RelatedFrame -> SetStatusText(wxEmptyString, m_RelatedStatusBar);
|
||||
}
|
||||
else {
|
||||
SetCursor(cur_hand);
|
||||
if (m_RelatedStatusBar != -1) m_RelatedFrame -> SetStatusText(lnk, m_RelatedStatusBar);
|
||||
if (m_RelatedStatusBar != -1)
|
||||
m_RelatedFrame -> SetStatusText(lnk -> GetHref(), m_RelatedStatusBar);
|
||||
}
|
||||
m_tmpLastLink = lnk;
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ class wxHtmlImageMapAreaCell : public wxHtmlCell
|
||||
int radius;
|
||||
public:
|
||||
wxHtmlImageMapAreaCell( celltype t, wxString &coords, double pixel_scale = 1.0);
|
||||
virtual wxString GetLink( int x = 0, int y = 0 ) const;
|
||||
virtual wxHtmlLinkInfo *GetLink( int x = 0, int y = 0 ) const;
|
||||
};
|
||||
|
||||
|
||||
@ -80,7 +80,7 @@ wxHtmlImageMapAreaCell::wxHtmlImageMapAreaCell( wxHtmlImageMapAreaCell::celltype
|
||||
coords.Add( (int)(pixel_scale * (double)wxAtoi( x.c_str())) );
|
||||
}
|
||||
|
||||
wxString wxHtmlImageMapAreaCell::GetLink( int x, int y ) const
|
||||
wxHtmlLinkInfo *wxHtmlImageMapAreaCell::GetLink( int x, int y ) const
|
||||
{
|
||||
switch (type) {
|
||||
case RECT:
|
||||
@ -181,7 +181,7 @@ wxString wxHtmlImageMapAreaCell::GetLink( int x, int y ) const
|
||||
wxHtmlImageMapAreaCell *a = (wxHtmlImageMapAreaCell*)m_Next;
|
||||
return a->GetLink( x, y );
|
||||
}
|
||||
return wxEmptyString;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
@ -206,7 +206,7 @@ class wxHtmlImageMapCell : public wxHtmlCell
|
||||
protected:
|
||||
wxString m_Name;
|
||||
public:
|
||||
virtual wxString GetLink( int x = 0, int y = 0 ) const;
|
||||
virtual wxHtmlLinkInfo *GetLink( int x = 0, int y = 0 ) const;
|
||||
virtual const wxHtmlCell *Find( int cond, const void *param ) const;
|
||||
};
|
||||
|
||||
@ -216,7 +216,7 @@ wxHtmlImageMapCell::wxHtmlImageMapCell( wxString &name )
|
||||
m_Name = name ;
|
||||
}
|
||||
|
||||
wxString wxHtmlImageMapCell::GetLink( int x, int y ) const
|
||||
wxHtmlLinkInfo *wxHtmlImageMapCell::GetLink( int x, int y ) const
|
||||
{
|
||||
wxHtmlImageMapAreaCell *a = (wxHtmlImageMapAreaCell*)m_Next;
|
||||
if (a)
|
||||
@ -252,7 +252,7 @@ class wxHtmlImageCell : public wxHtmlCell
|
||||
wxHtmlImageCell(wxFSFile *input, int w = -1, int h = -1, int align = wxHTML_ALIGN_BOTTOM, wxString mapname = wxEmptyString);
|
||||
~wxHtmlImageCell() {if (m_Image) delete m_Image; }
|
||||
void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2);
|
||||
virtual wxString GetLink( int x = 0, int y = 0 ) const;
|
||||
virtual wxHtmlLinkInfo *GetLink( int x = 0, int y = 0 ) const;
|
||||
};
|
||||
|
||||
|
||||
@ -310,7 +310,7 @@ void wxHtmlImageCell::Draw(wxDC& dc, int x, int y, int view_y1, int view_y2)
|
||||
wxHtmlCell::Draw(dc, x, y, view_y1, view_y2);
|
||||
}
|
||||
|
||||
wxString wxHtmlImageCell::GetLink( int x, int y ) const
|
||||
wxHtmlLinkInfo *wxHtmlImageCell::GetLink( int x, int y ) const
|
||||
{
|
||||
if (m_MapName.IsEmpty())
|
||||
return wxHtmlCell::GetLink( x, y );
|
||||
@ -412,7 +412,9 @@ TAG_HANDLER_BEGIN(IMG, "IMG,MAP,AREA")
|
||||
}
|
||||
if (cel != NULL && tag.HasParam("HREF")) {
|
||||
wxString tmp = tag.GetParam("HREF");
|
||||
cel->SetLink( tmp );
|
||||
wxString target = wxEmptyString;
|
||||
if (tag.HasParam("TARGET")) target = tag.GetParam("TARGET");
|
||||
cel->SetLink( wxHtmlLinkInfo(tmp, target));
|
||||
}
|
||||
if (cel != NULL) m_WParser->GetContainer()->InsertCell( cel );
|
||||
}
|
||||
|
@ -59,15 +59,17 @@ TAG_HANDLER_BEGIN(A, "A")
|
||||
}
|
||||
|
||||
if (tag.HasParam("HREF")) {
|
||||
wxString oldlnk = m_WParser -> GetLink();
|
||||
wxHtmlLinkInfo oldlnk = m_WParser -> GetLink();
|
||||
wxColour oldclr = m_WParser -> GetActualColor();
|
||||
int oldund = m_WParser -> GetFontUnderlined();
|
||||
wxString name(tag.GetParam("HREF")), target;
|
||||
|
||||
if (tag.HasParam("TARGET")) target = tag.GetParam("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(tag.GetParam("HREF"));
|
||||
m_WParser -> SetLink(wxHtmlLinkInfo(name, target));
|
||||
|
||||
ParseInner(tag);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user