]> git.saurik.com Git - wxWidgets.git/blame - include/wx/srchctrl.h
Don't define __STRICT_ANSI__, we should build both with and without it.
[wxWidgets.git] / include / wx / srchctrl.h
CommitLineData
3f7f284d 1/////////////////////////////////////////////////////////////////////////////
80fdcdb9 2// Name: wx/srchctrl.h
3f7f284d
RD
3// Purpose: wxSearchCtrlBase class
4// Author: Vince Harron
3f7f284d 5// Created: 2006-02-18
3f7f284d
RD
6// Copyright: (c) Vince Harron
7// Licence: wxWindows licence
8/////////////////////////////////////////////////////////////////////////////
9
10#ifndef _WX_SEARCHCTRL_H_BASE_
11#define _WX_SEARCHCTRL_H_BASE_
12
13#include "wx/defs.h"
14
15#if wxUSE_SEARCHCTRL
16
17#include "wx/textctrl.h"
18
03647350 19#if !defined(__WXUNIVERSAL__) && defined(__WXMAC__)
ec184e32
VZ
20 // search control was introduced in Mac OS X 10.3 Panther
21 #define wxUSE_NATIVE_SEARCH_CONTROL 1
22
23 #define wxSearchCtrlBaseBaseClass wxTextCtrl
24#else
25 // no native version, use the generic one
26 #define wxUSE_NATIVE_SEARCH_CONTROL 0
27
35368572 28 #include "wx/compositewin.h"
e7c9d913
VZ
29 #include "wx/containr.h"
30
31 class WXDLLIMPEXP_CORE wxSearchCtrlBaseBaseClass
35368572 32 : public wxCompositeWindow< wxNavigationEnabled<wxControl> >,
e7c9d913 33 public wxTextCtrlIface
0ec1179b
VZ
34 {
35 };
ec184e32
VZ
36#endif
37
3f7f284d
RD
38// ----------------------------------------------------------------------------
39// constants
40// ----------------------------------------------------------------------------
41
53a2db12 42extern WXDLLIMPEXP_DATA_CORE(const char) wxSearchCtrlNameStr[];
3f7f284d 43
ce7fe42e
VZ
44wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SEARCHCTRL_CANCEL_BTN, wxCommandEvent);
45wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SEARCHCTRL_SEARCH_BTN, wxCommandEvent);
3f7f284d
RD
46
47// ----------------------------------------------------------------------------
48// a search ctrl is a text control with a search button and a cancel button
49// it is based on the MacOSX 10.3 control HISearchFieldCreate
50// ----------------------------------------------------------------------------
51
53a2db12 52class WXDLLIMPEXP_CORE wxSearchCtrlBase : public wxSearchCtrlBaseBaseClass
ec184e32
VZ
53{
54public:
55 wxSearchCtrlBase() { }
56 virtual ~wxSearchCtrlBase() { }
57
cfddeb10
VZ
58 // search control
59#if wxUSE_MENUS
ec184e32
VZ
60 virtual void SetMenu(wxMenu *menu) = 0;
61 virtual wxMenu *GetMenu() = 0;
cfddeb10 62#endif // wxUSE_MENUS
ec184e32
VZ
63
64 // get/set options
65 virtual void ShowSearchButton( bool show ) = 0;
66 virtual bool IsSearchButtonVisible() const = 0;
3f7f284d 67
ec184e32
VZ
68 virtual void ShowCancelButton( bool show ) = 0;
69 virtual bool IsCancelButtonVisible() const = 0;
63f7d502
VZ
70
71private:
72 // implement wxTextEntry pure virtual method
73 virtual wxWindow *GetEditableWindow() { return this; }
ec184e32
VZ
74};
75
76
77// include the platform-dependent class implementation
7a71ffc1 78#if wxUSE_NATIVE_SEARCH_CONTROL
3f7f284d 79 #if defined(__WXMAC__)
ef0e9220 80 #include "wx/osx/srchctrl.h"
3f7f284d
RD
81 #endif
82#else
83 #include "wx/generic/srchctlg.h"
84#endif
85
7a71ffc1 86// ----------------------------------------------------------------------------
3f7f284d 87// macros for handling search events
7a71ffc1
VZ
88// ----------------------------------------------------------------------------
89
c60122bf 90#define EVT_SEARCHCTRL_CANCEL_BTN(id, fn) \
ce7fe42e 91 wx__DECLARE_EVT1(wxEVT_SEARCHCTRL_CANCEL_BTN, id, wxCommandEventHandler(fn))
3f7f284d 92
c60122bf 93#define EVT_SEARCHCTRL_SEARCH_BTN(id, fn) \
ce7fe42e
VZ
94 wx__DECLARE_EVT1(wxEVT_SEARCHCTRL_SEARCH_BTN, id, wxCommandEventHandler(fn))
95
96// old wxEVT_COMMAND_* constants
97#define wxEVT_COMMAND_SEARCHCTRL_CANCEL_BTN wxEVT_SEARCHCTRL_CANCEL_BTN
98#define wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN wxEVT_SEARCHCTRL_SEARCH_BTN
3f7f284d
RD
99
100#endif // wxUSE_SEARCHCTRL
101
102#endif // _WX_SEARCHCTRL_H_BASE_