1/////////////////////////////////////////////////////////////////////////////
2// Name:        wx/mac/carbon/srchctrl.h
3// Purpose:     mac carbon wxSearchCtrl class
4// Author:      Vince Harron
5// Created:     2006-02-19
6// RCS-ID:      $Id: srchctrl.h 44257 2007-01-19 05:27:16Z RD $
7// Copyright:   Vince Harron
8// Licence:     wxWindows licence
9/////////////////////////////////////////////////////////////////////////////
10
11#ifndef _WX_SEARCHCTRL_H_
12#define _WX_SEARCHCTRL_H_
13
14#if wxUSE_SEARCHCTRL
15
16class wxMacSearchFieldControl;
17
18class WXDLLEXPORT wxSearchCtrl : public wxSearchCtrlBase
19{
20public:
21    // creation
22    // --------
23
24    wxSearchCtrl();
25    wxSearchCtrl(wxWindow *parent, wxWindowID id,
26               const wxString& value = wxEmptyString,
27               const wxPoint& pos = wxDefaultPosition,
28               const wxSize& size = wxDefaultSize,
29               long style = 0,
30               const wxValidator& validator = wxDefaultValidator,
31               const wxString& name = wxSearchCtrlNameStr);
32
33    virtual ~wxSearchCtrl();
34
35    bool Create(wxWindow *parent, wxWindowID id,
36                const wxString& value = wxEmptyString,
37                const wxPoint& pos = wxDefaultPosition,
38                const wxSize& size = wxDefaultSize,
39                long style = 0,
40                const wxValidator& validator = wxDefaultValidator,
41                const wxString& name = wxSearchCtrlNameStr);
42
43    // get/set search button menu
44    // --------------------------
45    virtual void SetMenu( wxMenu* menu );
46    virtual wxMenu* GetMenu();
47
48    // get/set search options
49    // ----------------------
50    virtual void ShowSearchButton( bool show );
51    virtual bool IsSearchButtonVisible() const;
52
53    virtual void ShowCancelButton( bool show );
54    virtual bool IsCancelButtonVisible() const;
55
56#if wxABI_VERSION >= 20802
57    // TODO: In 2.9 these should probably be virtual, and declared in the base class...
58    void SetDescriptiveText(const wxString& text);
59    wxString GetDescriptiveText() const;
60#endif
61
62    virtual wxInt32     MacSearchFieldSearchHit( WXEVENTHANDLERREF handler , WXEVENTREF event ) ;
63    virtual wxInt32     MacSearchFieldCancelHit( WXEVENTHANDLERREF handler , WXEVENTREF event ) ;
64
65    wxMacSearchFieldControl * GetPeer() const
66    { return (wxMacSearchFieldControl*) m_peer; }
67
68    virtual void SetFocus();
69
70protected:
71
72    wxSize DoGetBestSize() const;
73
74    void Init();
75
76    virtual void CreatePeer(
77           const wxString& str,
78           const wxPoint& pos,
79           const wxSize& size, long style );
80
81    wxMenu *m_menu;
82
83private:
84    DECLARE_DYNAMIC_CLASS(wxSearchCtrl)
85
86    DECLARE_EVENT_TABLE()
87};
88
89#endif // wxUSE_SEARCHCTRL
90
91#endif // _WX_SEARCHCTRL_H_
92
93