X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c41b00c9f51e5b06420b8522dc4de38e83bb1488..cde23b64b5194f0d71cf16c85ea33d28419c815f:/include/wx/fdrepdlg.h diff --git a/include/wx/fdrepdlg.h b/include/wx/fdrepdlg.h index 0d2da818e6..cbca13b294 100644 --- a/include/wx/fdrepdlg.h +++ b/include/wx/fdrepdlg.h @@ -1,10 +1,10 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/fdrepdlg.h +// Name: wx/fdrepdlg.h // Purpose: wxFindReplaceDialog class -// Author: Markus Greither -// Modified by: 31.07.01: VZ: integrated into wxWindows +// Author: Markus Greither and Vadim Zeitlin +// Modified by: // Created: 23/03/2001 -// RCS-ID: +// RCS-ID: $Id$ // Copyright: (c) Markus Greither // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -12,19 +12,16 @@ #ifndef _WX_FINDREPLACEDLG_H_ #define _WX_FINDREPLACEDLG_H_ -#ifdef __GNUG__ - #pragma interface "fdrepdlg.h" -#endif - #include "wx/defs.h" #if wxUSE_FINDREPLDLG #include "wx/dialog.h" -class WXDLLEXPORT wxFindReplaceDialog; -class WXDLLEXPORT wxFindReplaceData; -class WXDLLEXPORT wxFindReplaceDialogImpl; +class WXDLLIMPEXP_FWD_CORE wxFindDialogEvent; +class WXDLLIMPEXP_FWD_CORE wxFindReplaceDialog; +class WXDLLIMPEXP_FWD_CORE wxFindReplaceData; +class WXDLLIMPEXP_FWD_CORE wxFindReplaceDialogImpl; // ---------------------------------------------------------------------------- // Flags for wxFindReplaceData.Flags @@ -37,7 +34,7 @@ enum wxFindReplaceFlags wxFR_DOWN = 1, // whole word search/replace selected - wxFR_WHOLEWORD = 2, + wxFR_WHOLEWORD = 2, // case sensitive search/replace selected (otherwise - case insensitive) wxFR_MATCHCASE = 4 @@ -63,11 +60,11 @@ enum wxFindReplaceDialogStyles // wxFindReplaceData: holds Setup Data/Feedback Data for wxFindReplaceDialog // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxFindReplaceData : public wxObject +class WXDLLIMPEXP_CORE wxFindReplaceData : public wxObject { public: - wxFindReplaceData() { } - wxFindReplaceData(wxUint32 flags) { SetFlags(flags); } + wxFindReplaceData() { Init(); } + wxFindReplaceData(wxUint32 flags) { Init(); SetFlags(flags); } // accessors const wxString& GetFindString() { return m_FindWhat; } @@ -81,128 +78,118 @@ public: void SetFindString(const wxString& str) { m_FindWhat = str; } void SetReplaceString(const wxString& str) { m_ReplaceWith = str; } +protected: + void Init(); + private: wxUint32 m_Flags; wxString m_FindWhat, m_ReplaceWith; - friend class wxFindReplaceDialog; + friend class wxFindReplaceDialogBase; }; // ---------------------------------------------------------------------------- -// wxFindReplaceDialog: dialog for searching / replacing text +// wxFindReplaceDialogBase // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxFindReplaceDialog : public wxDialog +class WXDLLIMPEXP_CORE wxFindReplaceDialogBase : public wxDialog { public: // ctors and such - wxFindReplaceDialog() { Init(); } - wxFindReplaceDialog(wxWindow *parent, - wxFindReplaceData *data, - const wxString &title); + wxFindReplaceDialogBase() { m_FindReplaceData = NULL; } + wxFindReplaceDialogBase(wxWindow * WXUNUSED(parent), + wxFindReplaceData *data, + const wxString& WXUNUSED(title), + int WXUNUSED(style) = 0) + { + m_FindReplaceData = data; + } - bool Create(wxWindow *parent, - wxFindReplaceData *data, - const wxString &title); - - virtual ~wxFindReplaceDialog(); + virtual ~wxFindReplaceDialogBase(); // find dialog data access const wxFindReplaceData *GetData() const { return m_FindReplaceData; } - void SetData(wxFindReplaceData *data); - - // implementation only from now on + void SetData(wxFindReplaceData *data) { m_FindReplaceData = data; } - wxFindReplaceDialogImpl *GetImpl() const { return m_impl; } - - // override some base class virtuals - virtual bool Show(bool show); - virtual void SetTitle( const wxString& title); - virtual wxString GetTitle() const; + // implementation only, don't use + void Send(wxFindDialogEvent& event); protected: - virtual void DoGetSize(int *width, int *height) const; - virtual void DoGetClientSize(int *width, int *height) const; - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); + wxFindReplaceData *m_FindReplaceData; - void Init(); + // the last string we searched for + wxString m_lastSearch; - wxFindReplaceData *m_FindReplaceData; - wxString m_title; + wxDECLARE_NO_COPY_CLASS(wxFindReplaceDialogBase); +}; - wxFindReplaceDialogImpl *m_impl; +// include wxFindReplaceDialog declaration +#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) && !defined(__WXWINCE__) + #include "wx/msw/fdrepdlg.h" +#else + #define wxGenericFindReplaceDialog wxFindReplaceDialog - DECLARE_DYNAMIC_CLASS(wxFindReplaceDialog) -}; + #include "wx/generic/fdrepdlg.h" +#endif // ---------------------------------------------------------------------------- // wxFindReplaceDialog events // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxFindDialogEvent : public wxCommandEvent +class WXDLLIMPEXP_CORE wxFindDialogEvent : public wxCommandEvent { public: wxFindDialogEvent(wxEventType commandType = wxEVT_NULL, int id = 0) : wxCommandEvent(commandType, id) { } + wxFindDialogEvent(const wxFindDialogEvent& event) + : wxCommandEvent(event), m_strReplace(event.m_strReplace) { } int GetFlags() const { return GetInt(); } wxString GetFindString() const { return GetString(); } const wxString& GetReplaceString() const { return m_strReplace; } + wxFindReplaceDialog *GetDialog() const + { return wxStaticCast(GetEventObject(), wxFindReplaceDialog); } + // implementation only void SetFlags(int flags) { SetInt(flags); } void SetFindString(const wxString& str) { SetString(str); } void SetReplaceString(const wxString& str) { m_strReplace = str; } + virtual wxEvent *Clone() const { return new wxFindDialogEvent(*this); } + private: wxString m_strReplace; - DECLARE_DYNAMIC_CLASS(wxFindDialogEvent) + DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxFindDialogEvent) }; -BEGIN_DECLARE_EVENT_TYPES() - DECLARE_EVENT_TYPE(wxEVT_COMMAND_FIND_NEXT, 510) - DECLARE_EVENT_TYPE(wxEVT_COMMAND_REPLACE, 511) - DECLARE_EVENT_TYPE(wxEVT_COMMAND_REPLACE_ALL, 512) - DECLARE_EVENT_TYPE(wxEVT_COMMAND_FIND_CLOSE, 513) -END_DECLARE_EVENT_TYPES() +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_FIND, wxFindDialogEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_FIND_NEXT, wxFindDialogEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_FIND_REPLACE, wxFindDialogEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_FIND_REPLACE_ALL, wxFindDialogEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_FIND_CLOSE, wxFindDialogEvent ); typedef void (wxEvtHandler::*wxFindDialogEventFunction)(wxFindDialogEvent&); +#define wxFindDialogEventHandler(func) \ + wxEVENT_HANDLER_CAST(wxFindDialogEventFunction, func) + +#define EVT_FIND(id, fn) \ + wx__DECLARE_EVT1(wxEVT_COMMAND_FIND, id, wxFindDialogEventHandler(fn)) + #define EVT_FIND_NEXT(id, fn) \ - DECLARE_EVENT_TABLE_ENTRY( \ - wxEVT_COMMAND_FIND_NEXT, id, -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxFindDialogEventFunction) \ - & fn, \ - (wxObject *) NULL \ - ), - -#define EVT_REPLACE(id, fn) \ - DECLARE_EVENT_TABLE_ENTRY( \ - wxEVT_COMMAND_REPLACE, id, -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxFindDialogEventFunction) \ - & fn, \ - (wxObject *) NULL \ - ), + wx__DECLARE_EVT1(wxEVT_COMMAND_FIND_NEXT, id, wxFindDialogEventHandler(fn)) + +#define EVT_FIND_REPLACE(id, fn) \ + wx__DECLARE_EVT1(wxEVT_COMMAND_FIND_REPLACE, id, wxFindDialogEventHandler(fn)) #define EVT_FIND_REPLACE_ALL(id, fn) \ - DECLARE_EVENT_TABLE_ENTRY( \ - wxEVT_COMMAND_REPLACE_ALL, id, -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxFindDialogEventFunction) \ - & fn, \ - (wxObject *) NULL \ - ), - -#define EVT_FIND_FIND_CLOSE(id, fn) \ - DECLARE_EVENT_TABLE_ENTRY( \ - wxEVT_COMMAND_FIND_CLOSE, id, -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxFindDialogEventFunction) \ - & fn, \ - (wxObject *) NULL \ - ), + wx__DECLARE_EVT1(wxEVT_COMMAND_FIND_REPLACE_ALL, id, wxFindDialogEventHandler(fn)) + +#define EVT_FIND_CLOSE(id, fn) \ + wx__DECLARE_EVT1(wxEVT_COMMAND_FIND_CLOSE, id, wxFindDialogEventHandler(fn)) #endif // wxUSE_FINDREPLDLG