21#ifndef WX_DATA_VIEW_HYPERLINK_RENDERER_H
22#define WX_DATA_VIEW_HYPERLINK_RENDERER_H
25#include <wx/dataview.h>
40 bool SetValue(
const wxVariant& aValue )
override;
41 bool GetValue( wxVariant& aValue )
const override;
42 wxSize
GetSize()
const override;
43 bool Render( wxRect aCell, wxDC* aDC,
int aState )
override;
46 bool HitTestRunsForCell(
const wxString& aValue,
const wxRect& aCell,
const wxPoint& aPoint,
47 wxString* aHref )
const;
57 static void ParseRuns(
const wxString& aValue, std::vector<RUN>& aRuns );
60 static bool IsSafeUrl(
const wxString& aHref );
63 static wxString
StripMarkup(
const wxString& aValue );
wxSize GetSize() const override
static void ParseRuns(const wxString &aValue, std::vector< RUN > &aRuns)
Split aValue into plain text and link runs.
bool SetValue(const wxVariant &aValue) override
std::vector< RUN > m_runs
static wxString StripMarkup(const wxString &aValue)
Flatten [label](url) markup, keeping just the label.
bool Render(wxRect aCell, wxDC *aDC, int aState) override
bool GetValue(wxVariant &aValue) const override
static bool IsSafeUrl(const wxString &aHref)
Accept only schemes that wxLaunchDefaultBrowser cannot turn into program execution.
bool HitTestRunsForCell(const wxString &aValue, const wxRect &aCell, const wxPoint &aPoint, wxString *aHref) const
Hit-test aPoint against the link runs of aValue laid out in aCell.