]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/srchctrl.h
Support using GetTextExtent() with empty string to get descent in wxOSX.
[wxWidgets.git] / include / wx / srchctrl.h
index 5ec9336f3f13cbfb554320431c5d643c5a2a2bbf..acb7b4796eb6d1177732e28e0151ce0f746fc513 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        srchctrl.h
+// Name:        wx/srchctrl.h
 // Purpose:     wxSearchCtrlBase class
 // Author:      Vince Harron
 // Created:     2006-02-18
 // Purpose:     wxSearchCtrlBase class
 // Author:      Vince Harron
 // Created:     2006-02-18
@@ -17,8 +17,7 @@
 
 #include "wx/textctrl.h"
 
 
 #include "wx/textctrl.h"
 
-#if !defined(__WXUNIVERSAL__) && defined(__WXMAC__) && defined(__WXMAC_OSX__) \
-        && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3)
+#if !defined(__WXUNIVERSAL__) && defined(__WXMAC__)
     // search control was introduced in Mac OS X 10.3 Panther
     #define wxUSE_NATIVE_SEARCH_CONTROL 1
 
     // search control was introduced in Mac OS X 10.3 Panther
     #define wxUSE_NATIVE_SEARCH_CONTROL 1
 
     // no native version, use the generic one
     #define wxUSE_NATIVE_SEARCH_CONTROL 0
 
     // no native version, use the generic one
     #define wxUSE_NATIVE_SEARCH_CONTROL 0
 
-    #define wxSearchCtrlBaseBaseClass wxTextCtrlBase
+    #include "wx/compositewin.h"
+    #include "wx/containr.h"
+
+    class WXDLLIMPEXP_CORE wxSearchCtrlBaseBaseClass
+        : public wxCompositeWindow< wxNavigationEnabled<wxControl> >,
+          public wxTextCtrlIface
+    {
+    };
 #endif
 
 // ----------------------------------------------------------------------------
 // constants
 // ----------------------------------------------------------------------------
 
 #endif
 
 // ----------------------------------------------------------------------------
 // constants
 // ----------------------------------------------------------------------------
 
-extern WXDLLEXPORT_DATA(const wxChar) wxSearchCtrlNameStr[];
+extern WXDLLIMPEXP_DATA_CORE(const char) wxSearchCtrlNameStr[];
 
 
-BEGIN_DECLARE_EVENT_TYPES()
-    DECLARE_EVENT_TYPE(wxEVT_COMMAND_SEARCHCTRL_CANCEL_BTN, 1119)
-    DECLARE_EVENT_TYPE(wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN, 1120)
-END_DECLARE_EVENT_TYPES()
+wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SEARCHCTRL_CANCEL_BTN, wxCommandEvent);
+wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SEARCHCTRL_SEARCH_BTN, wxCommandEvent);
 
 // ----------------------------------------------------------------------------
 // a search ctrl is a text control with a search button and a cancel button
 // it is based on the MacOSX 10.3 control HISearchFieldCreate
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 // a search ctrl is a text control with a search button and a cancel button
 // it is based on the MacOSX 10.3 control HISearchFieldCreate
 // ----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxSearchCtrlBase : public wxSearchCtrlBaseBaseClass
+class WXDLLIMPEXP_CORE wxSearchCtrlBase : public wxSearchCtrlBaseBaseClass
 {
 public:
     wxSearchCtrlBase() { }
     virtual ~wxSearchCtrlBase() { }
 
 {
 public:
     wxSearchCtrlBase() { }
     virtual ~wxSearchCtrlBase() { }
 
-    // search control 
+    // search control
+#if wxUSE_MENUS
     virtual void SetMenu(wxMenu *menu) = 0;
     virtual wxMenu *GetMenu() = 0;
     virtual void SetMenu(wxMenu *menu) = 0;
     virtual wxMenu *GetMenu() = 0;
+#endif // wxUSE_MENUS
 
     // get/set options
     virtual void ShowSearchButton( bool show ) = 0;
 
     // get/set options
     virtual void ShowSearchButton( bool show ) = 0;
@@ -62,13 +68,17 @@ public:
 
     virtual void ShowCancelButton( bool show ) = 0;
     virtual bool IsCancelButtonVisible() const = 0;
 
     virtual void ShowCancelButton( bool show ) = 0;
     virtual bool IsCancelButtonVisible() const = 0;
+
+private:
+    // implement wxTextEntry pure virtual method
+    virtual wxWindow *GetEditableWindow() { return this; }
 };
 
 
 // include the platform-dependent class implementation
 #if wxUSE_NATIVE_SEARCH_CONTROL
     #if defined(__WXMAC__)
 };
 
 
 // include the platform-dependent class implementation
 #if wxUSE_NATIVE_SEARCH_CONTROL
     #if defined(__WXMAC__)
-        #include "wx/mac/srchctrl.h"
+        #include "wx/osx/srchctrl.h"
     #endif
 #else
     #include "wx/generic/srchctlg.h"
     #endif
 #else
     #include "wx/generic/srchctlg.h"
@@ -79,10 +89,14 @@ public:
 // ----------------------------------------------------------------------------
 
 #define EVT_SEARCHCTRL_CANCEL_BTN(id, fn) \
 // ----------------------------------------------------------------------------
 
 #define EVT_SEARCHCTRL_CANCEL_BTN(id, fn) \
-    wx__DECLARE_EVT1(wxEVT_COMMAND_SEARCHCTRL_CANCEL_BTN, id, wxCommandEventHandler(fn))
+    wx__DECLARE_EVT1(wxEVT_SEARCHCTRL_CANCEL_BTN, id, wxCommandEventHandler(fn))
 
 #define EVT_SEARCHCTRL_SEARCH_BTN(id, fn) \
 
 #define EVT_SEARCHCTRL_SEARCH_BTN(id, fn) \
-    wx__DECLARE_EVT1(wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN, id, wxCommandEventHandler(fn))
+    wx__DECLARE_EVT1(wxEVT_SEARCHCTRL_SEARCH_BTN, id, wxCommandEventHandler(fn))
+
+// old wxEVT_COMMAND_* constants
+#define wxEVT_COMMAND_SEARCHCTRL_CANCEL_BTN   wxEVT_SEARCHCTRL_CANCEL_BTN
+#define wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN   wxEVT_SEARCHCTRL_SEARCH_BTN
 
 #endif // wxUSE_SEARCHCTRL
 
 
 #endif // wxUSE_SEARCHCTRL