// Name: hyperlink.h
// Purpose: interface of wxHyperlinkEvent
// Author: wxWidgets team
-// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
+#define wxHL_CONTEXTMENU 0x0001
+#define wxHL_ALIGN_LEFT 0x0002
+#define wxHL_ALIGN_RIGHT 0x0004
+#define wxHL_ALIGN_CENTRE 0x0008
+#define wxHL_DEFAULT_STYLE (wxHL_CONTEXTMENU|wxNO_BORDER|wxHL_ALIGN_CENTRE)
+
/**
@class wxHyperlinkEvent
- This event class is used for the events generated by
- wxHyperlinkCtrl.
+ This event class is used for the events generated by wxHyperlinkCtrl.
+
+ @beginEventTable{wxHyperlinkEvent}
+ @event{EVT_HYPERLINK(id, func)}
+ User clicked on an hyperlink.
+ @endEventTable
@library{wxadv}
- @category{FIXME}
+ @category{events}
*/
class wxHyperlinkEvent : public wxCommandEvent
{
/**
The constructor is not normally used by the user code.
*/
- wxHyperlinkEvent(wxObject* generator, int id,
- const wxString& url);
+ wxHyperlinkEvent(wxObject* generator, int id, const wxString& url);
/**
Returns the URL of the hyperlink where the user has just clicked.
};
+wxEventType wxEVT_HYPERLINK;
/**
@class wxHyperlinkCtrl
This class shows a static text element which links to an URL.
- Appearance and behaviour is completely customizable. In fact, when the user
- clicks on the hyperlink, a wxHyperlinkEvent is
- sent but if that event is not handled (or it's skipped; see
- wxEvent::Skip), then a call to
- wxLaunchDefaultBrowser() is done with the
- hyperlink's URL.
+
+ Appearance and behaviour is completely customizable.
+
+ In fact, when the user clicks on the hyperlink, a wxHyperlinkEvent is
+ sent but if that event is not handled (or it's skipped; see wxEvent::Skip),
+ then a call to wxLaunchDefaultBrowser() is done with the hyperlink's URL.
Note that standard wxWindow functions like wxWindow::SetBackgroundColour,
- wxWindow::SetFont, wxWindow::SetCursor, wxWindow::SetLabel can be used to customize appearance of the hyperlink.
+ wxWindow::SetFont, wxWindow::SetCursor, wxWindow::SetLabel can be used to
+ customize appearance of the hyperlink.
@beginStyleTable
@style{wxHL_ALIGN_LEFT}
Align the text to the left.
@style{wxHL_ALIGN_RIGHT}
- Align the text to the right.
+ Align the text to the right. This style is not supported under
+ Windows XP but is supported under all the other Windows versions.
@style{wxHL_ALIGN_CENTRE}
- Center the text (horizontally).
+ Center the text (horizontally). This style is not supported by the
+ native MSW implementation used under Windows XP and later.
@style{wxHL_CONTEXTMENU}
Pop up a context menu when the hyperlink is right-clicked. The
context menu contains a "Copy URL" menu item which is automatically
wxBORDER_NONE|wxHL_CONTEXTMENU|wxHL_ALIGN_CENTRE.
@endStyleTable
+ @beginEventEmissionTable{wxHyperlinkEvent}
+ @event{EVT_HYPERLINK(id, func)}
+ The hyperlink was (left) clicked. If this event is not handled in user's
+ code (or it's skipped; see wxEvent::Skip), then a call to wxLaunchDefaultBrowser
+ is done with the hyperlink's URL.
+ @endEventTable
+
+ Currently this class is implemented using native support in wxGTK and wxMSW
+ (under Windows XP and later only) and a generic version is used by the
+ other ports.
+
@library{wxadv}
@category{ctrl}
- <!-- @appearance{hyperlinkctrl.png} -->
+ @appearance{hyperlinkctrl}
@see wxURL, wxHyperlinkEvent
*/
class wxHyperlinkCtrl : public wxControl
{
public:
+ wxHyperlinkCtrl();
+
/**
Constructor. See Create() for more info.
*/
- wxHyperLink(wxWindow* parent, wxWindowID id,
- const wxString& label,
- const wxString& url,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxHL_DEFAULT_STYLE,
- const wxString& name = "hyperlink");
+ wxHyperlinkCtrl(wxWindow* parent, wxWindowID id,
+ const wxString& label,
+ const wxString& url,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxHL_DEFAULT_STYLE,
+ const wxString& name = wxHyperlinkCtrlNameStr);
/**
Creates the hyperlink control.
@param pos
Window position.
@param size
- Window size. If the wxDefaultSize is specified then the window is sized
- appropriately.
+ Window size.
+ If the wxDefaultSize is specified then the window is sized appropriately.
@param style
Window style. See wxHyperlinkCtrl.
- @param validator
- Window validator.
@param name
Window name.
*/
- bool Create(wxWindow* parent, wxWindowID id,
- const wxString& label,
- const wxString& url,
- const wxPoint& pos = wxDefaultPosition,
+ bool Create(wxWindow* parent, wxWindowID id, const wxString& label,
+ const wxString& url, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxHL_DEFAULT_STYLE,
- const wxString& name = "hyperlink");
+ const wxString& name = wxHyperlinkCtrlNameStr);
/**
Returns the colour used to print the label of the hyperlink when the mouse is
over the control.
*/
- wxColour GetHoverColour() const;
+ virtual wxColour GetHoverColour() const;
/**
Returns the colour used to print the label when the link has never been clicked
- before
- (i.e. the link has not been @e visited) and the mouse is not over the control.
+ before (i.e. the link has not been @e visited) and the mouse is not over the control.
*/
- wxColour GetNormalColour() const;
+ virtual wxColour GetNormalColour() const;
/**
Returns the URL associated with the hyperlink.
*/
- wxString GetURL() const;
+ virtual wxString GetURL() const;
/**
Returns @true if the hyperlink has already been clicked by the user at least
/**
Returns the colour used to print the label when the mouse is not over the
- control
- and the link has already been clicked before (i.e. the link has been @e
- visited).
+ control and the link has already been clicked before (i.e. the link has
+ been @e visited).
*/
- wxColour GetVisitedColour() const;
+ virtual wxColour GetVisitedColour() const;
/**
Sets the colour used to print the label of the hyperlink when the mouse is over
the control.
*/
- void SetHoverColour(const wxColour& colour);
+ virtual void SetHoverColour(const wxColour& colour);
/**
- Sets the colour used to print the label when the link has never been clicked
- before
+ Sets the colour used to print the label when the link has never been clicked before
(i.e. the link has not been @e visited) and the mouse is not over the control.
*/
- void SetNormalColour(const wxColour& colour);
+ virtual void SetNormalColour(const wxColour& colour);
/**
Sets the URL associated with the hyperlink.
*/
- void SetURL(const wxString& url);
+ virtual void SetURL(const wxString& url);
/**
Marks the hyperlink as visited (see wxHyperlinkCtrl::SetVisitedColour).
/**
Sets the colour used to print the label when the mouse is not over the control
- and the link has already been clicked before (i.e. the link has been @e
- visited).
+ and the link has already been clicked before (i.e. the link has been @e visited).
*/
- void SetVisitedColour(const wxColour& colour);
+ virtual void SetVisitedColour(const wxColour& colour);
};