]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/hyperlink.h
activating DrawRectangle optimization
[wxWidgets.git] / include / wx / hyperlink.h
index 6f9db016ca133af25b98415efb08b5e3ace5319e..7ff25b3f4e220824e5484e536baee75167c37e6f 100644 (file)
@@ -9,8 +9,8 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef _WX_HYPERLINK_H__
-#define _WX_HYPERLINK_H__
+#ifndef _WX_HYPERLINK_H_
+#define _WX_HYPERLINK_H_
 
 #include "wx/defs.h"
 
@@ -28,7 +28,7 @@
 #define wxHL_ALIGN_CENTRE       0x0008
 #define wxHL_DEFAULT_STYLE      (wxHL_CONTEXTMENU|wxNO_BORDER|wxHL_ALIGN_CENTRE)
 
-extern WXDLLIMPEXP_DATA_ADV(const wxChar) wxHyperlinkCtrlNameStr[];
+extern WXDLLIMPEXP_DATA_ADV(const char) wxHyperlinkCtrlNameStr[];
 
 
 // ----------------------------------------------------------------------------
@@ -68,7 +68,11 @@ public:
     // NOTE: also wxWindow::Set/GetLabel, wxWindow::Set/GetBackgroundColour,
     //       wxWindow::Get/SetFont, wxWindow::Get/SetCursor are important !
 
+    virtual bool HasTransparentBackground() { return true; }
+
 protected:
+    virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
+
     // checks for validity some of the ctor/Create() function parameters
     void CheckParams(const wxString& label, const wxString& url, long style);
 
@@ -78,18 +82,13 @@ public:
     void SendEvent();
 };
 
-#ifndef __WXDEBUG__
-inline void wxHyperlinkCtrlBase::CheckParams(const wxString&, const wxString&, long) { }
-#endif
-
 // ----------------------------------------------------------------------------
 // wxHyperlinkEvent
 // ----------------------------------------------------------------------------
 
-// Declare an event identifier.
-BEGIN_DECLARE_EVENT_TYPES()
-    DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_COMMAND_HYPERLINK, 3700)
-END_DECLARE_EVENT_TYPES()
+class WXDLLIMPEXP_FWD_ADV wxHyperlinkEvent;
+
+wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_COMMAND_HYPERLINK, wxHyperlinkEvent );
 
 //
 // An event fired when the user clicks on the label in a hyperlink control.
@@ -130,27 +129,44 @@ private:
 typedef void (wxEvtHandler::*wxHyperlinkEventFunction)(wxHyperlinkEvent&);
 
 #define wxHyperlinkEventHandler(func) \
-    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxHyperlinkEventFunction, &func)
+    wxEVENT_HANDLER_CAST(wxHyperlinkEventFunction, func)
 
 #define EVT_HYPERLINK(id, fn) \
     wx__DECLARE_EVT1(wxEVT_COMMAND_HYPERLINK, id, wxHyperlinkEventHandler(fn))
 
-#ifdef _WX_DEFINE_DATE_EVENTS_
-    DEFINE_EVENT_TYPE(wxEVT_COMMAND_HYPERLINK)
 
-    IMPLEMENT_DYNAMIC_CLASS(wxHyperlinkEvent, wxCommandEvent)
-#endif
-
-
-
-#if defined(__WXGTK210__)
+#if defined(__WXGTK210__) && !defined(__WXUNIVERSAL__)
     #include "wx/gtk/hyperlink.h"
+// Note that the native control is only available in Unicode version under MSW.
+#elif defined(__WXMSW__) && wxUSE_UNICODE && !defined(__WXUNIVERSAL__)
+    #include "wx/msw/hyperlink.h"
 #else
     #include "wx/generic/hyperlink.h"
-    #define wxHyperlinkCtrl     wxGenericHyperlinkCtrl
+
+    class WXDLLIMPEXP_ADV wxHyperlinkCtrl : public wxGenericHyperlinkCtrl
+    {
+    public:
+        wxHyperlinkCtrl() { }
+
+        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)
+            : wxGenericHyperlinkCtrl(parent, id, label, url, pos, size,
+                                     style, name)
+        {
+        }
+
+    private:
+        wxDECLARE_DYNAMIC_CLASS_NO_COPY( wxHyperlinkCtrl );
+    };
 #endif
 
 
 #endif // wxUSE_HYPERLINKCTRL
 
-#endif // _WX_HYPERLINK_H__
+#endif // _WX_HYPERLINK_H_