// Name: wx/generic/srchctlg.h
// Purpose: generic wxSearchCtrl class
// Author: Vince Harron
-// Modified by:
// Created: 2006-02-19
-// RCS-ID:
+// RCS-ID: $Id$
// Copyright: Vince Harron
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#if wxUSE_SEARCHCTRL
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma interface "srchctlg.h"
-#endif
-
-class WXDLLEXPORT wxSearchButton;
-class WXDLLEXPORT wxSearchTextCtrl;
-
-class WXDLLEXPORT wxSearchCtrlBase : public wxTextCtrlBase
-{
-public:
- wxSearchCtrlBase() {}
- virtual ~wxSearchCtrlBase() {}
-
- // search control
- virtual void SetMenu( wxMenu* menu ) = 0;
- virtual wxMenu* GetMenu() = 0;
+#include "wx/bitmap.h"
-
- // get/set options
- virtual void SetSearchButtonVisible( bool show ) = 0;
- virtual bool GetSearchButtonVisible() const = 0;
-
- virtual void SetCancelButtonVisible( bool show ) = 0;
- virtual bool GetCancelButtonVisible() const = 0;
-protected:
-};
+class WXDLLIMPEXP_FWD_CORE wxSearchButton;
+class WXDLLIMPEXP_FWD_CORE wxSearchTextCtrl;
// ----------------------------------------------------------------------------
// wxSearchCtrl is a combination of wxTextCtrl and wxSearchButton
// ----------------------------------------------------------------------------
-class WXDLLEXPORT wxSearchCtrl : public wxSearchCtrlBase
+class WXDLLIMPEXP_CORE wxSearchCtrl : public wxSearchCtrlBase
{
public:
// creation
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxSearchCtrlNameStr);
- ~wxSearchCtrl();
+ virtual ~wxSearchCtrl();
bool Create(wxWindow *parent, wxWindowID id,
const wxString& value = wxEmptyString,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxSearchCtrlNameStr);
+#if wxUSE_MENUS
// get/set search button menu
// --------------------------
virtual void SetMenu( wxMenu* menu );
virtual wxMenu* GetMenu();
-
+#endif // wxUSE_MENUS
+
// get/set search options
// ----------------------
- virtual void SetSearchButtonVisible( bool show );
- virtual bool GetSearchButtonVisible() const;
+ virtual void ShowSearchButton( bool show );
+ virtual bool IsSearchButtonVisible() const;
+
+ virtual void ShowCancelButton( bool show );
+ virtual bool IsCancelButtonVisible() const;
- virtual void SetCancelButtonVisible( bool show );
- virtual bool GetCancelButtonVisible() const;
+ // TODO: In 2.9 these should probably be virtual, and declared in the base class...
+ void SetDescriptiveText(const wxString& text);
+ wxString GetDescriptiveText() const;
// accessors
// ---------
- virtual wxString GetValue() const;
- virtual void SetValue(const wxString& value);
-
virtual wxString GetRange(long from, long to) const;
virtual int GetLineLength(long lineNo) const;
// search control generic only
void SetSearchBitmap( const wxBitmap& bitmap );
- void SetSearchMenuBitmap( const wxBitmap& bitmap );
void SetCancelBitmap( const wxBitmap& bitmap );
+#if wxUSE_MENUS
+ void SetSearchMenuBitmap( const wxBitmap& bitmap );
+#endif // wxUSE_MENUS
protected:
- virtual void DoSetValue(const wxString& value, int flags = 0);
+ virtual void DoSetValue(const wxString& value, int flags);
+ virtual wxString DoGetValue() const;
+
+ virtual bool DoLoadFile(const wxString& file, int fileType);
+ virtual bool DoSaveFile(const wxString& file, int fileType);
// override the base class virtuals involved into geometry calculations
virtual wxSize DoGetBestSize() const;
virtual void OnSearchButton( wxCommandEvent& event );
void OnSetFocus( wxFocusEvent& event );
+ void OnSize( wxSizeEvent& event );
+
+ bool HasMenu() const
+ {
+#if wxUSE_MENUS
+ return m_menu != NULL;
+#else // !wxUSE_MENUS
+ return false;
+#endif // wxUSE_MENUS/!wxUSE_MENUS
+ }
private:
friend class wxSearchButton;
+#if wxUSE_MENUS
void PopupSearchMenu();
+#endif // wxUSE_MENUS
// the subcontrols
wxSearchTextCtrl *m_text;
wxSearchButton *m_searchButton;
wxSearchButton *m_cancelButton;
+#if wxUSE_MENUS
wxMenu *m_menu;
+#endif // wxUSE_MENUS
bool m_searchButtonVisible;
bool m_cancelButtonVisible;
bool m_searchBitmapUser;
- bool m_searchMenuBitmapUser;
bool m_cancelBitmapUser;
+#if wxUSE_MENUS
+ bool m_searchMenuBitmapUser;
+#endif // wxUSE_MENUS
+
wxBitmap m_searchBitmap;
- wxBitmap m_searchMenuBitmap;
wxBitmap m_cancelBitmap;
+#if wxUSE_MENUS
+ wxBitmap m_searchMenuBitmap;
+#endif // wxUSE_MENUS
+
private:
DECLARE_DYNAMIC_CLASS(wxSearchCtrl)