/////////////////////////////////////////////////////////////////////////////
-// Name: srchctrl.h
+// Name: wx/srchctrl.h
// Purpose: wxSearchCtrlBase class
// Author: Vince Harron
-// Modified by:
// Created: 2006-02-18
-// RCS-ID:
// Copyright: (c) Vince Harron
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#include "wx/textctrl.h"
+#if !defined(__WXUNIVERSAL__) && defined(__WXMAC__)
+ // search control was introduced in Mac OS X 10.3 Panther
+ #define wxUSE_NATIVE_SEARCH_CONTROL 1
+
+ #define wxSearchCtrlBaseBaseClass wxTextCtrl
+#else
+ // no native version, use the generic one
+ #define wxUSE_NATIVE_SEARCH_CONTROL 0
+
+ #include "wx/compositewin.h"
+ #include "wx/containr.h"
+
+ class WXDLLIMPEXP_CORE wxSearchCtrlBaseBaseClass
+ : public wxCompositeWindow< wxNavigationEnabled<wxControl> >,
+ public wxTextCtrlIface
+ {
+ };
+#endif
+
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
-extern WXDLLEXPORT_DATA(const wxChar) wxSearchCtrlNameStr[];
+extern WXDLLIMPEXP_DATA_CORE(const char) wxSearchCtrlNameStr[];
-BEGIN_DECLARE_EVENT_TYPES()
- DECLARE_EVENT_TYPE(wxEVT_COMMAND_SEARCHCTRL_CANCEL, 1119)
- DECLARE_EVENT_TYPE(wxEVT_COMMAND_SEARCHCTRL_SEARCH, 1120)
-END_DECLARE_EVENT_TYPES()
+wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SEARCHCTRL_CANCEL_BTN, wxCommandEvent);
+wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SEARCHCTRL_SEARCH_BTN, wxCommandEvent);
// ----------------------------------------------------------------------------
// a search ctrl is a text control with a search button and a cancel button
// it is based on the MacOSX 10.3 control HISearchFieldCreate
// ----------------------------------------------------------------------------
-// include the platform-dependent class implementation
-#if !defined(__WXUNIVERSAL__) && defined(__WXMAC__) && defined(__WXMAC_OSX__) \
- && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3)
- // search control was introduced in Mac OS X 10.3 Panther
- #define wxUSE_NATIVE_SEARCH_CONTROL 1
-#else
- // no native version, use the generic one
- #define wxUSE_NATIVE_SEARCH_CONTROL 0
-#endif
+class WXDLLIMPEXP_CORE wxSearchCtrlBase : public wxSearchCtrlBaseBaseClass
+{
+public:
+ wxSearchCtrlBase() { }
+ virtual ~wxSearchCtrlBase() { }
+
+ // search control
+#if wxUSE_MENUS
+ virtual void SetMenu(wxMenu *menu) = 0;
+ virtual wxMenu *GetMenu() = 0;
+#endif // wxUSE_MENUS
+ // get/set options
+ virtual void ShowSearchButton( bool show ) = 0;
+ virtual bool IsSearchButtonVisible() const = 0;
+
+ virtual void ShowCancelButton( bool show ) = 0;
+ virtual bool IsCancelButtonVisible() const = 0;
+
+private:
+ // implement wxTextEntry pure virtual method
+ virtual wxWindow *GetEditableWindow() { return this; }
+};
+
+
+// include the platform-dependent class implementation
#if wxUSE_NATIVE_SEARCH_CONTROL
#if defined(__WXMAC__)
- #include "wx/mac/srchctrl.h"
+ #include "wx/osx/srchctrl.h"
#endif
#else
#include "wx/generic/srchctlg.h"
// macros for handling search events
// ----------------------------------------------------------------------------
-#define EVT_SEARCHCTRL_CANCEL(id, fn) \
- wx__DECLARE_EVT1(wxEVT_COMMAND_SEARCHCTRL_CANCEL, id, wxCommandEventHandler(fn))
+#define EVT_SEARCHCTRL_CANCEL_BTN(id, fn) \
+ wx__DECLARE_EVT1(wxEVT_SEARCHCTRL_CANCEL_BTN, id, wxCommandEventHandler(fn))
+
+#define EVT_SEARCHCTRL_SEARCH_BTN(id, fn) \
+ wx__DECLARE_EVT1(wxEVT_SEARCHCTRL_SEARCH_BTN, id, wxCommandEventHandler(fn))
-#define EVT_SEARCHCTRL_SEARCH(id, fn) \
- wx__DECLARE_EVT1(wxEVT_COMMAND_SEARCHCTRL_SEARCH, id, wxCommandEventHandler(fn))
+// old wxEVT_COMMAND_* constants
+#define wxEVT_COMMAND_SEARCHCTRL_CANCEL_BTN wxEVT_SEARCHCTRL_CANCEL_BTN
+#define wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN wxEVT_SEARCHCTRL_SEARCH_BTN
#endif // wxUSE_SEARCHCTRL