]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/textctrl.h
routing native events first to the wx class and only if skipped call native handler
[wxWidgets.git] / include / wx / textctrl.h
index fa14d7a4a1ea14ebc8441ad11084bb3598ab25ff..a3ad96f2d8b3cc63aa7ec8c36833fd9563890114 100644 (file)
@@ -719,19 +719,26 @@ protected:
 // wxTextCtrl events
 // ----------------------------------------------------------------------------
 
-extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_TEXT_UPDATED;
-extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_TEXT_ENTER;
-extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_TEXT_URL;
-extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_TEXT_MAXLEN;
+class WXDLLIMPEXP_FWD_CORE wxTextUrlEvent;
+
+wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEvent)
+wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_COMMAND_TEXT_ENTER, wxCommandEvent)
+wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_COMMAND_TEXT_URL, wxTextUrlEvent)
+wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_COMMAND_TEXT_MAXLEN, wxCommandEvent)
 
 class WXDLLIMPEXP_CORE wxTextUrlEvent : public wxCommandEvent
 {
 public:
     wxTextUrlEvent(int winid, const wxMouseEvent& evtMouse,
                    long start, long end)
-        : wxCommandEvent(wxEVT_COMMAND_TEXT_URL, winid)
-        , m_evtMouse(evtMouse), m_start(start), m_end(end)
+        : wxCommandEvent(wxEVT_COMMAND_TEXT_URL, winid),
+          m_evtMouse(evtMouse), m_start(start), m_end(end)
         { }
+    wxTextUrlEvent(const wxTextUrlEvent& event)
+        : wxCommandEvent(event),
+          m_evtMouse(event.m_evtMouse),
+          m_start(event.m_start),
+          m_end(event.m_end) { }
 
     // get the mouse event which happend over the URL
     const wxMouseEvent& GetMouseEvent() const { return m_evtMouse; }
@@ -742,6 +749,8 @@ public:
     // get the end of the URL
     long GetURLEnd() const { return m_end; }
 
+    virtual wxEvent *Clone() const { return new wxTextUrlEvent(*this); }
+
 protected:
     // the corresponding mouse event
     wxMouseEvent m_evtMouse;
@@ -751,7 +760,7 @@ protected:
          m_end;
 
 private:
-    DECLARE_DYNAMIC_CLASS_NO_COPY(wxTextUrlEvent)
+    DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxTextUrlEvent)
 
 public:
     // for wxWin RTTI only, don't use
@@ -762,7 +771,7 @@ typedef void (wxEvtHandler::*wxTextUrlEventFunction)(wxTextUrlEvent&);
 
 #define wxTextEventHandler(func) wxCommandEventHandler(func)
 #define wxTextUrlEventHandler(func) \
-    (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxTextUrlEventFunction, &func)
+    wxEVENT_HANDLER_CAST(wxTextUrlEventFunction, func)
 
 #define wx__DECLARE_TEXTEVT(evt, id, fn) \
     wx__DECLARE_EVT1(wxEVT_COMMAND_TEXT_ ## evt, id, wxTextEventHandler(fn))