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:
@@ -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];
|
||||
|
Reference in New Issue
Block a user