| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- /////////////////////////////////////////////////////////////////////////////
- // Name: hyperlink.h
- // Purpose: interface of wxHyperlinkEvent
- // Author: wxWidgets team
- // 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.
- @beginEventTable{wxHyperlinkEvent}
- @event{EVT_HYPERLINK(id, func)}
- User clicked on an hyperlink.
- @endEventTable
- @library{wxadv}
- @category{events}
- */
- class wxHyperlinkEvent : public wxCommandEvent
- {
- public:
- /**
- The constructor is not normally used by the user code.
- */
- wxHyperlinkEvent(wxObject* generator, int id, const wxString& url);
- /**
- Returns the URL of the hyperlink where the user has just clicked.
- */
- wxString GetURL() const;
- /**
- Sets the URL associated with the event.
- */
- void SetURL(const wxString& url);
- };
- 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.
- Note that standard wxWindow functions like wxWindow::SetBackgroundColour,
- 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. 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). 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
- handled by the hyperlink and which just copies in the clipboard the
- URL (not the label) of the control.
- @style{wxHL_DEFAULT_STYLE}
- The default style for wxHyperlinkCtrl:
- 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}
- @see wxURL, wxHyperlinkEvent
- */
- class wxHyperlinkCtrl : public wxControl
- {
- public:
- wxHyperlinkCtrl();
-
- /**
- Constructor. See Create() for more info.
- */
- 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 parent
- Parent window. Must not be @NULL.
- @param id
- Window identifier. A value of wxID_ANY indicates a default value.
- @param label
- The label of the hyperlink.
- @param url
- The URL associated with the given label.
- @param pos
- Window position.
- @param size
- Window size.
- If the wxDefaultSize is specified then the window is sized appropriately.
- @param style
- Window style. See wxHyperlinkCtrl.
- @param name
- Window name.
- */
- 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 = wxHyperlinkCtrlNameStr);
- /**
- Returns the colour used to print the label of the hyperlink when the mouse is
- over the control.
- */
- 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.
- */
- virtual wxColour GetNormalColour() const;
- /**
- Returns the URL associated with the hyperlink.
- */
- virtual wxString GetURL() const;
- /**
- Returns @true if the hyperlink has already been clicked by the user at least
- one time.
- */
- virtual bool GetVisited() const = 0;
- /**
- 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).
- */
- virtual wxColour GetVisitedColour() const;
- /**
- Sets the colour used to print the label of the hyperlink when the mouse is over
- the control.
- */
- virtual void SetHoverColour(const wxColour& colour);
- /**
- 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.
- */
- virtual void SetNormalColour(const wxColour& colour);
- /**
- Sets the URL associated with the hyperlink.
- */
- virtual void SetURL(const wxString& url);
- /**
- Marks the hyperlink as visited (see wxHyperlinkCtrl::SetVisitedColour).
- */
- virtual void SetVisited(bool visited = true) = 0;
- /**
- 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).
- */
- virtual void SetVisitedColour(const wxColour& colour);
- };
|