]> git.saurik.com Git - wxWidgets.git/blob - interface/wx/hyperlink.h
fix parsing of IP literals in URIs, added test for it
[wxWidgets.git] / interface / wx / hyperlink.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: hyperlink.h
3 // Purpose: interface of wxHyperlinkEvent
4 // Author: wxWidgets team
5 // RCS-ID: $Id$
6 // Licence: wxWindows license
7 /////////////////////////////////////////////////////////////////////////////
8
9 /**
10 @class wxHyperlinkEvent
11
12 This event class is used for the events generated by
13 wxHyperlinkCtrl.
14
15 @library{wxadv}
16 @category{FIXME}
17 */
18 class wxHyperlinkEvent : public wxCommandEvent
19 {
20 public:
21 /**
22 The constructor is not normally used by the user code.
23 */
24 wxHyperlinkEvent(wxObject* generator, int id,
25 const wxString& url);
26
27 /**
28 Returns the URL of the hyperlink where the user has just clicked.
29 */
30 wxString GetURL() const;
31
32 /**
33 Sets the URL associated with the event.
34 */
35 void SetURL(const wxString& url);
36 };
37
38
39
40 /**
41 @class wxHyperlinkCtrl
42
43 This class shows a static text element which links to an URL.
44 Appearance and behaviour is completely customizable. In fact, when the user
45 clicks on the hyperlink, a wxHyperlinkEvent is
46 sent but if that event is not handled (or it's skipped; see
47 wxEvent::Skip), then a call to
48 wxLaunchDefaultBrowser() is done with the
49 hyperlink's URL.
50
51 Note that standard wxWindow functions like wxWindow::SetBackgroundColour,
52 wxWindow::SetFont, wxWindow::SetCursor, wxWindow::SetLabel can be used to customize appearance of the hyperlink.
53
54 @beginStyleTable
55 @style{wxHL_ALIGN_LEFT}
56 Align the text to the left.
57 @style{wxHL_ALIGN_RIGHT}
58 Align the text to the right.
59 @style{wxHL_ALIGN_CENTRE}
60 Center the text (horizontally).
61 @style{wxHL_CONTEXTMENU}
62 Pop up a context menu when the hyperlink is right-clicked. The
63 context menu contains a "Copy URL" menu item which is automatically
64 handled by the hyperlink and which just copies in the clipboard the
65 URL (not the label) of the control.
66 @style{wxHL_DEFAULT_STYLE}
67 The default style for wxHyperlinkCtrl:
68 wxBORDER_NONE|wxHL_CONTEXTMENU|wxHL_ALIGN_CENTRE.
69 @endStyleTable
70
71 @library{wxadv}
72 @category{ctrl}
73 <!-- @appearance{hyperlinkctrl.png} -->
74
75 @see wxURL, wxHyperlinkEvent
76 */
77 class wxHyperlinkCtrl : public wxControl
78 {
79 public:
80 /**
81 Constructor. See Create() for more info.
82 */
83 wxHyperLink(wxWindow* parent, wxWindowID id,
84 const wxString& label,
85 const wxString& url,
86 const wxPoint& pos = wxDefaultPosition,
87 const wxSize& size = wxDefaultSize,
88 long style = wxHL_DEFAULT_STYLE,
89 const wxString& name = "hyperlink");
90
91 /**
92 Creates the hyperlink control.
93
94 @param parent
95 Parent window. Must not be @NULL.
96 @param id
97 Window identifier. A value of wxID_ANY indicates a default value.
98 @param label
99 The label of the hyperlink.
100 @param url
101 The URL associated with the given label.
102 @param pos
103 Window position.
104 @param size
105 Window size. If the wxDefaultSize is specified then the window is sized
106 appropriately.
107 @param style
108 Window style. See wxHyperlinkCtrl.
109 @param validator
110 Window validator.
111 @param name
112 Window name.
113 */
114 bool Create(wxWindow* parent, wxWindowID id,
115 const wxString& label,
116 const wxString& url,
117 const wxPoint& pos = wxDefaultPosition,
118 const wxSize& size = wxDefaultSize,
119 long style = wxHL_DEFAULT_STYLE,
120 const wxString& name = "hyperlink");
121
122 /**
123 Returns the colour used to print the label of the hyperlink when the mouse is
124 over the control.
125 */
126 wxColour GetHoverColour() const;
127
128 /**
129 Returns the colour used to print the label when the link has never been clicked
130 before
131 (i.e. the link has not been @e visited) and the mouse is not over the control.
132 */
133 wxColour GetNormalColour() const;
134
135 /**
136 Returns the URL associated with the hyperlink.
137 */
138 wxString GetURL() const;
139
140 /**
141 Returns @true if the hyperlink has already been clicked by the user at least
142 one time.
143 */
144 virtual bool GetVisited() const = 0;
145
146 /**
147 Returns the colour used to print the label when the mouse is not over the
148 control
149 and the link has already been clicked before (i.e. the link has been @e
150 visited).
151 */
152 wxColour GetVisitedColour() const;
153
154 /**
155 Sets the colour used to print the label of the hyperlink when the mouse is over
156 the control.
157 */
158 void SetHoverColour(const wxColour& colour);
159
160 /**
161 Sets the colour used to print the label when the link has never been clicked
162 before
163 (i.e. the link has not been @e visited) and the mouse is not over the control.
164 */
165 void SetNormalColour(const wxColour& colour);
166
167 /**
168 Sets the URL associated with the hyperlink.
169 */
170 void SetURL(const wxString& url);
171
172 /**
173 Marks the hyperlink as visited (see wxHyperlinkCtrl::SetVisitedColour).
174 */
175 virtual void SetVisited(bool visited = true) = 0;
176
177 /**
178 Sets the colour used to print the label when the mouse is not over the control
179 and the link has already been clicked before (i.e. the link has been @e
180 visited).
181 */
182 void SetVisitedColour(const wxColour& colour);
183 };
184