]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/srchctrl.h
replace 5 copies of size constraining code with one function
[wxWidgets.git] / include / wx / srchctrl.h
index 8623207cfa64943e2482d6d9799672eab8cf1dfe..5ec9336f3f13cbfb554320431c5d643c5a2a2bbf 100644 (file)
@@ -2,9 +2,8 @@
 // Name:        srchctrl.h
 // Purpose:     wxSearchCtrlBase class
 // Author:      Vince Harron
-// Modified by:
 // Created:     2006-02-18
-// RCS-ID:      
+// RCS-ID:      $Id$
 // Copyright:   (c) Vince Harron
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #include "wx/textctrl.h"
 
+#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
+
+    #define wxSearchCtrlBaseBaseClass wxTextCtrl
+#else
+    // no native version, use the generic one
+    #define wxUSE_NATIVE_SEARCH_CONTROL 0
+
+    #define wxSearchCtrlBaseBaseClass wxTextCtrlBase
+#endif
+
 // ----------------------------------------------------------------------------
 // constants
 // ----------------------------------------------------------------------------
@@ -25,8 +37,8 @@
 extern WXDLLEXPORT_DATA(const wxChar) wxSearchCtrlNameStr[];
 
 BEGIN_DECLARE_EVENT_TYPES()
-    DECLARE_EVENT_TYPE(wxEVT_COMMAND_SEARCHCTRL_CANCEL, 1119)
-    DECLARE_EVENT_TYPE(wxEVT_COMMAND_SEARCHCTRL_SEARCH, 1120)
+    DECLARE_EVENT_TYPE(wxEVT_COMMAND_SEARCHCTRL_CANCEL_BTN, 1119)
+    DECLARE_EVENT_TYPE(wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN, 1120)
 END_DECLARE_EVENT_TYPES()
 
 // ----------------------------------------------------------------------------
@@ -34,19 +46,27 @@ END_DECLARE_EVENT_TYPES()
 // it is based on the MacOSX 10.3 control HISearchFieldCreate
 // ----------------------------------------------------------------------------
 
-// ----------------------------------------------------------------------------
-// include the platform-dependent class implementation
-// ----------------------------------------------------------------------------
+class WXDLLEXPORT wxSearchCtrlBase : public wxSearchCtrlBaseBaseClass
+{
+public:
+    wxSearchCtrlBase() { }
+    virtual ~wxSearchCtrlBase() { }
+
+    // search control 
+    virtual void SetMenu(wxMenu *menu) = 0;
+    virtual wxMenu *GetMenu() = 0;
+
+    // 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;
+};
 
-#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 USE_NATIVE_SEARCH_CONTROL 1
-#else
-    //not supported on these platforms, leave 0
-    #define USE_NATIVE_SEARCH_CONTROL 0
-#endif
 
-#if USE_NATIVE_SEARCH_CONTROL
+// include the platform-dependent class implementation
+#if wxUSE_NATIVE_SEARCH_CONTROL
     #if defined(__WXMAC__)
         #include "wx/mac/srchctrl.h"
     #endif
@@ -54,12 +74,15 @@ END_DECLARE_EVENT_TYPES()
     #include "wx/generic/srchctlg.h"
 #endif
 
+// ----------------------------------------------------------------------------
 // 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_COMMAND_SEARCHCTRL_CANCEL_BTN, id, wxCommandEventHandler(fn))
 
-#define EVT_SEARCHCTRL_SEARCH(id, fn) \
-    wx__DECLARE_EVT1(wxEVT_COMMAND_SEARCHCTRL_SEARCH, id, wxCommandEventHandler(fn))
+#define EVT_SEARCHCTRL_SEARCH_BTN(id, fn) \
+    wx__DECLARE_EVT1(wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN, id, wxCommandEventHandler(fn))
 
 #endif // wxUSE_SEARCHCTRL