]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/hyperlink.h
Fix fatal bug with deleting the old contents in wxScopedArray::reset().
[wxWidgets.git] / include / wx / hyperlink.h
index 9e0f90ddc16577a15d6cad9fb7317fee1e719592..7ff25b3f4e220824e5484e536baee75167c37e6f 100644 (file)
@@ -28,7 +28,7 @@
 #define wxHL_ALIGN_CENTRE       0x0008
 #define wxHL_DEFAULT_STYLE      (wxHL_CONTEXTMENU|wxNO_BORDER|wxHL_ALIGN_CENTRE)
 
 #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 !
 
     // NOTE: also wxWindow::Set/GetLabel, wxWindow::Set/GetBackgroundColour,
     //       wxWindow::Get/SetFont, wxWindow::Get/SetCursor are important !
 
+    virtual bool HasTransparentBackground() { return true; }
+
 protected:
 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);
 
     // 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();
 };
 
     void SendEvent();
 };
 
-#ifndef __WXDEBUG__
-inline void wxHyperlinkCtrlBase::CheckParams(const wxString&, const wxString&, long) { }
-#endif
-
 // ----------------------------------------------------------------------------
 // wxHyperlinkEvent
 // ----------------------------------------------------------------------------
 
 // ----------------------------------------------------------------------------
 // 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.
 
 //
 // An event fired when the user clicks on the label in a hyperlink control.
@@ -130,24 +129,41 @@ private:
 typedef void (wxEvtHandler::*wxHyperlinkEventFunction)(wxHyperlinkEvent&);
 
 #define wxHyperlinkEventHandler(func) \
 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))
 
 
 #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__) && !defined(__WXUNIVERSAL__)
     #include "wx/gtk/hyperlink.h"
 
 #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"
 #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