From 258b2ca6819988c73a953bb8c2760b91c78d520c Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Thu, 8 Jun 2006 18:27:44 +0000 Subject: [PATCH] Applied Patch #1502801: Missing Clone() functions from some events git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39637 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/clrpicker.h | 6 +++++- include/wx/dateevt.h | 5 ++++- include/wx/filepicker.h | 5 ++++- include/wx/fontpicker.h | 5 ++++- include/wx/hyperlink.h | 35 +++++++++++++++++++++++++---------- src/generic/hyperlink.cpp | 1 + 6 files changed, 43 insertions(+), 14 deletions(-) diff --git a/include/wx/clrpicker.h b/include/wx/clrpicker.h index 1742257d00..d3a2b509d3 100644 --- a/include/wx/clrpicker.h +++ b/include/wx/clrpicker.h @@ -170,10 +170,14 @@ public: wxColour GetColour() const { return m_colour; } void SetColour(const wxColour &c) { m_colour = c; } + + // default copy ctor, assignment operator and dtor are ok + virtual wxEvent *Clone() const { return new wxColourPickerEvent(*this); } + private: wxColour m_colour; - DECLARE_DYNAMIC_CLASS_NO_COPY(wxColourPickerEvent) + DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxColourPickerEvent) }; // ---------------------------------------------------------------------------- diff --git a/include/wx/dateevt.h b/include/wx/dateevt.h index b37340c5cd..f1f4f60d67 100644 --- a/include/wx/dateevt.h +++ b/include/wx/dateevt.h @@ -34,10 +34,13 @@ public: const wxDateTime& GetDate() const { return m_date; } void SetDate(const wxDateTime &date) { m_date = date; } + // default copy ctor, assignment operator and dtor are ok + virtual wxEvent *Clone() const { return new wxDateEvent(*this); } + private: wxDateTime m_date; - DECLARE_DYNAMIC_CLASS_NO_COPY(wxDateEvent) + DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxDateEvent) }; // ---------------------------------------------------------------------------- diff --git a/include/wx/filepicker.h b/include/wx/filepicker.h index d82fecb82a..e94746736b 100644 --- a/include/wx/filepicker.h +++ b/include/wx/filepicker.h @@ -343,10 +343,13 @@ public: wxString GetPath() const { return m_path; } void SetPath(const wxString &p) { m_path = p; } + // default copy ctor, assignment operator and dtor are ok + virtual wxEvent *Clone() const { return new wxFileDirPickerEvent(*this); } + private: wxString m_path; - DECLARE_DYNAMIC_CLASS_NO_COPY(wxFileDirPickerEvent) + DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxFileDirPickerEvent) }; // ---------------------------------------------------------------------------- diff --git a/include/wx/fontpicker.h b/include/wx/fontpicker.h index 4175ba3f05..1137228e00 100644 --- a/include/wx/fontpicker.h +++ b/include/wx/fontpicker.h @@ -194,10 +194,13 @@ public: wxFont GetFont() const { return m_font; } void SetFont(const wxFont &c) { m_font = c; } + // default copy ctor, assignment operator and dtor are ok + virtual wxEvent *Clone() const { return new wxFontPickerEvent(*this); } + private: wxFont m_font; - DECLARE_DYNAMIC_CLASS_NO_COPY(wxFontPickerEvent) + DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxFontPickerEvent) }; // ---------------------------------------------------------------------------- diff --git a/include/wx/hyperlink.h b/include/wx/hyperlink.h index 442c22a01b..cfbed46e96 100644 --- a/include/wx/hyperlink.h +++ b/include/wx/hyperlink.h @@ -171,35 +171,50 @@ END_DECLARE_EVENT_TYPES() class WXDLLIMPEXP_ADV wxHyperlinkEvent : public wxCommandEvent { public: - wxHyperlinkEvent() {} wxHyperlinkEvent(wxObject *generator, wxWindowID id, const wxString& url) - : wxCommandEvent(wxEVT_COMMAND_HYPERLINK, id), m_url(url) - { SetEventObject(generator); } + : wxCommandEvent(wxEVT_COMMAND_HYPERLINK, id), + m_url(url) + { + SetEventObject(generator); + } // Returns the URL associated with the hyperlink control // that the user clicked on. wxString GetURL() const { return m_url; } void SetURL(const wxString &url) { m_url=url; } + // default copy ctor, assignment operator and dtor are ok + virtual wxEvent *Clone() const { return new wxHyperlinkEvent(*this); } + private: // URL associated with the hyperlink control that the used clicked on. wxString m_url; + + DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxHyperlinkEvent) }; -// Define a typedef for event handler functions. -typedef void (wxEvtHandler::*wxHyperlinkEventFunction)(wxHyperlinkEvent&); -// Define an event table macro. -#define EVT_HYPERLINK(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_COMMAND_HYPERLINK, \ - id, id, (wxObjectEventFunction) (wxEventFunction) \ - wxStaticCastEvent(wxHyperlinkEventFunction, &fn), (wxObject *) NULL), +// ---------------------------------------------------------------------------- +// event types and macros +// ---------------------------------------------------------------------------- + +typedef void (wxEvtHandler::*wxHyperlinkEventFunction)(wxHyperlinkEvent&); -// Newer event macro #define wxHyperlinkEventHandler(func) \ (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(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 + + #endif // wxUSE_HYPERLINKCTRL #endif // _WX_HYPERLINK_H__ diff --git a/src/generic/hyperlink.cpp b/src/generic/hyperlink.cpp index 50693dd9d0..4288e4c303 100644 --- a/src/generic/hyperlink.cpp +++ b/src/generic/hyperlink.cpp @@ -47,6 +47,7 @@ // ============================================================================ IMPLEMENT_DYNAMIC_CLASS(wxHyperlinkCtrl, wxControl) +IMPLEMENT_DYNAMIC_CLASS(wxHyperlinkEvent, wxCommandEvent) DEFINE_EVENT_TYPE(wxEVT_COMMAND_HYPERLINK) // reserved for internal use only -- 2.45.2