1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxSearchCtrlBase class
4 // Author: Vince Harron
7 // Copyright: (c) Vince Harron
8 // Licence: wxWindows licence
9 /////////////////////////////////////////////////////////////////////////////
11 #ifndef _WX_SEARCHCTRL_H_BASE_
12 #define _WX_SEARCHCTRL_H_BASE_
18 #include "wx/textctrl.h"
20 #if !defined(__WXUNIVERSAL__) && defined(__WXMAC__)
21 // search control was introduced in Mac OS X 10.3 Panther
22 #define wxUSE_NATIVE_SEARCH_CONTROL 1
24 #define wxSearchCtrlBaseBaseClass wxTextCtrl
26 // no native version, use the generic one
27 #define wxUSE_NATIVE_SEARCH_CONTROL 0
29 class WXDLLIMPEXP_CORE wxSearchCtrlBaseBaseClass
: public wxControl
,
30 public wxTextCtrlIface
35 // ----------------------------------------------------------------------------
37 // ----------------------------------------------------------------------------
39 extern WXDLLIMPEXP_DATA_CORE(const char) wxSearchCtrlNameStr
[];
41 wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE
, wxEVT_COMMAND_SEARCHCTRL_CANCEL_BTN
, wxCommandEvent
);
42 wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE
, wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN
, wxCommandEvent
);
44 // ----------------------------------------------------------------------------
45 // a search ctrl is a text control with a search button and a cancel button
46 // it is based on the MacOSX 10.3 control HISearchFieldCreate
47 // ----------------------------------------------------------------------------
49 class WXDLLIMPEXP_CORE wxSearchCtrlBase
: public wxSearchCtrlBaseBaseClass
52 wxSearchCtrlBase() { }
53 virtual ~wxSearchCtrlBase() { }
57 virtual void SetMenu(wxMenu
*menu
) = 0;
58 virtual wxMenu
*GetMenu() = 0;
62 virtual void ShowSearchButton( bool show
) = 0;
63 virtual bool IsSearchButtonVisible() const = 0;
65 virtual void ShowCancelButton( bool show
) = 0;
66 virtual bool IsCancelButtonVisible() const = 0;
69 // implement wxTextEntry pure virtual method
70 virtual wxWindow
*GetEditableWindow() { return this; }
74 // include the platform-dependent class implementation
75 #if wxUSE_NATIVE_SEARCH_CONTROL
76 #if defined(__WXMAC__)
77 #include "wx/osx/srchctrl.h"
80 #include "wx/generic/srchctlg.h"
83 // ----------------------------------------------------------------------------
84 // macros for handling search events
85 // ----------------------------------------------------------------------------
87 #define EVT_SEARCHCTRL_CANCEL_BTN(id, fn) \
88 wx__DECLARE_EVT1(wxEVT_COMMAND_SEARCHCTRL_CANCEL_BTN, id, wxCommandEventHandler(fn))
90 #define EVT_SEARCHCTRL_SEARCH_BTN(id, fn) \
91 wx__DECLARE_EVT1(wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN, id, wxCommandEventHandler(fn))
93 #endif // wxUSE_SEARCHCTRL
95 #endif // _WX_SEARCHCTRL_H_BASE_