/////////////////////////////////////////////////////////////////////////////
-// 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:
// Copyright: (c) Markus Greither
#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
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
// 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; }
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;
+ DECLARE_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()
+extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_FIND;
+extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_FIND_NEXT;
+extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_FIND_REPLACE;
+extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_FIND_REPLACE_ALL;
+extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_FIND_CLOSE;
typedef void (wxEvtHandler::*wxFindDialogEventFunction)(wxFindDialogEvent&);
+#define wxFindDialogEventHandler(func) \
+ (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(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