]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/srchctrl.cpp
check that the version of __sync_sub_and_fetch that returns a value is supported...
[wxWidgets.git] / src / mac / carbon / srchctrl.cpp
index 223ed8fcb137d013fc56cf9abd807aeb745f707c..24da3d7f70a895977e1e0b285c223de2aa20b83d 100644 (file)
@@ -37,15 +37,10 @@ IMPLEMENT_DYNAMIC_CLASS(wxSearchCtrl, wxSearchCtrlBase)
 // wxMacSearchFieldControl
 // ============================================================================
 
 // wxMacSearchFieldControl
 // ============================================================================
 
-#if MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_2
-
-
 static const EventTypeSpec eventList[] =
 {
     { kEventClassSearchField, kEventSearchFieldCancelClicked } ,
 static const EventTypeSpec eventList[] =
 {
     { kEventClassSearchField, kEventSearchFieldCancelClicked } ,
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
     { kEventClassSearchField, kEventSearchFieldSearchClicked } ,
     { kEventClassSearchField, kEventSearchFieldSearchClicked } ,
-#endif
 };
 
 class wxMacSearchFieldControl : public wxMacUnicodeTextControl
 };
 
 class wxMacSearchFieldControl : public wxMacUnicodeTextControl
@@ -68,6 +63,10 @@ public :
 
     virtual void SetSearchMenu( wxMenu* menu );
     virtual wxMenu* GetSearchMenu() const;
 
     virtual void SetSearchMenu( wxMenu* menu );
     virtual wxMenu* GetSearchMenu() const;
+
+    virtual void SetDescriptiveText(const wxString& text);
+    virtual wxString GetDescriptiveText() const;
+
 protected :
     virtual void CreateControl( wxTextCtrl* peer, const Rect* bounds, CFStringRef crf );
 
 protected :
     virtual void CreateControl( wxTextCtrl* peer, const Rect* bounds, CFStringRef crf );
 
@@ -75,15 +74,12 @@ private:
     wxMenu* m_menu;
 } ;
 
     wxMenu* m_menu;
 } ;
 
-void wxMacSearchFieldControl::CreateControl( wxTextCtrl* /*peer*/, const Rect* bounds, CFStringRef crf )
+void wxMacSearchFieldControl::CreateControl(wxTextCtrl* WXUNUSED(peer),
+                                            const Rect* bounds,
+                                            CFStringRef WXUNUSED(crf))
 {
 {
-    OptionBits attributes = 0;
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
-    if ( UMAGetSystemVersion() >= 0x1040 )
-    {
-        attributes = kHISearchFieldAttributesSearchIcon;
-    }
-#endif
+    OptionBits attributes = kHISearchFieldAttributesSearchIcon;
+
     HIRect hibounds = { { bounds->left, bounds->top }, { bounds->right-bounds->left, bounds->bottom-bounds->top } };
     verify_noerr( HISearchFieldCreate(
         &hibounds,
     HIRect hibounds = { { bounds->left, bounds->top }, { bounds->right-bounds->left, bounds->bottom-bounds->top } };
     verify_noerr( HISearchFieldCreate(
         &hibounds,
@@ -98,33 +94,24 @@ void wxMacSearchFieldControl::CreateControl( wxTextCtrl* /*peer*/, const Rect* b
 // search field options
 void wxMacSearchFieldControl::ShowSearchButton( bool show )
 {
 // search field options
 void wxMacSearchFieldControl::ShowSearchButton( bool show )
 {
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
-    if ( UMAGetSystemVersion() >= 0x1040 )
+    OptionBits set = 0;
+    OptionBits clear = 0;
+    if ( show )
     {
     {
-        OptionBits set = 0;
-        OptionBits clear = 0;
-        if ( show )
-        {
-            set |= kHISearchFieldAttributesSearchIcon;
-        }
-        else
-        {
-            clear |= kHISearchFieldAttributesSearchIcon;
-        }
-        HISearchFieldChangeAttributes( m_controlRef, set, clear );
+        set |= kHISearchFieldAttributesSearchIcon;
     }
     }
-#endif
+    else
+    {
+        clear |= kHISearchFieldAttributesSearchIcon;
+    }
+    HISearchFieldChangeAttributes( m_controlRef, set, clear );
 }
 
 bool wxMacSearchFieldControl::IsSearchButtonVisible() const
 {
 }
 
 bool wxMacSearchFieldControl::IsSearchButtonVisible() const
 {
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
     OptionBits attributes = 0;
     verify_noerr( HISearchFieldGetAttributes( m_controlRef, &attributes ) );
     return ( attributes & kHISearchFieldAttributesSearchIcon ) != 0;
     OptionBits attributes = 0;
     verify_noerr( HISearchFieldGetAttributes( m_controlRef, &attributes ) );
     return ( attributes & kHISearchFieldAttributesSearchIcon ) != 0;
-#else
-    return false;
-#endif
 }
 
 void wxMacSearchFieldControl::ShowCancelButton( bool show )
 }
 
 void wxMacSearchFieldControl::ShowCancelButton( bool show )
@@ -167,7 +154,27 @@ wxMenu* wxMacSearchFieldControl::GetSearchMenu() const
     return m_menu;
 }
 
     return m_menu;
 }
 
-#endif
+
+void wxMacSearchFieldControl::SetDescriptiveText(const wxString& text)
+{
+    verify_noerr( HISearchFieldSetDescriptiveText(
+                      m_controlRef,
+                      wxMacCFStringHolder( text, wxFont::GetDefaultEncoding() )));
+}
+
+wxString wxMacSearchFieldControl::GetDescriptiveText() const
+{
+    CFStringRef cfStr;
+    verify_noerr( HISearchFieldCopyDescriptiveText( m_controlRef, &cfStr ));
+    if ( cfStr )
+    {
+        return wxMacCFStringHolder(cfStr).AsString();
+    }
+    else
+    {
+        return wxEmptyString;
+    }
+}
 
 // ============================================================================
 // implementation
 
 // ============================================================================
 // implementation
@@ -188,11 +195,9 @@ static pascal OSStatus wxMacSearchControlEventHandler( EventHandlerCallRef handl
         case kEventSearchFieldCancelClicked :
             thisWindow->MacSearchFieldCancelHit( handler , event ) ;
             break ;
         case kEventSearchFieldCancelClicked :
             thisWindow->MacSearchFieldCancelHit( handler , event ) ;
             break ;
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
         case kEventSearchFieldSearchClicked :
             thisWindow->MacSearchFieldSearchHit( handler , event ) ;
             break ;
         case kEventSearchFieldSearchClicked :
             thisWindow->MacSearchFieldSearchHit( handler , event ) ;
             break ;
-#endif
     }
 
     return result ;
     }
 
     return result ;
@@ -249,6 +254,8 @@ bool wxSearchCtrl::Create(wxWindow *parent, wxWindowID id,
         GetEventTypeCount(eventList), eventList, this,
         (EventHandlerRef *)&searchEventHandler);
 
         GetEventTypeCount(eventList), eventList, this,
         (EventHandlerRef *)&searchEventHandler);
 
+    SetValue(value);
+
     return true;
 }
 
     return true;
 }
 
@@ -351,6 +358,16 @@ bool wxSearchCtrl::IsCancelButtonVisible() const
     return GetPeer()->IsCancelButtonVisible();
 }
 
     return GetPeer()->IsCancelButtonVisible();
 }
 
+void wxSearchCtrl::SetDescriptiveText(const wxString& text)
+{
+    GetPeer()->SetDescriptiveText(text);
+}
+
+wxString wxSearchCtrl::GetDescriptiveText() const
+{
+    return GetPeer()->GetDescriptiveText();
+}
+
 wxInt32 wxSearchCtrl::MacSearchFieldSearchHit(WXEVENTHANDLERREF WXUNUSED(handler) , WXEVENTREF WXUNUSED(event) )
 {
     wxCommandEvent event(wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN, m_windowId );
 wxInt32 wxSearchCtrl::MacSearchFieldSearchHit(WXEVENTHANDLERREF WXUNUSED(handler) , WXEVENTREF WXUNUSED(event) )
 {
     wxCommandEvent event(wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN, m_windowId );
@@ -373,18 +390,7 @@ void wxSearchCtrl::CreatePeer(
            const wxPoint& pos,
            const wxSize& size, long style )
 {
            const wxPoint& pos,
            const wxSize& size, long style )
 {
-#ifdef __WXMAC_OSX__
-#if MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_2
-    if ( UMAGetSystemVersion() >= 0x1030 )
-    {
-        m_peer = new wxMacSearchFieldControl( this , str , pos , size , style );
-    }
-#endif
-#endif
-    if ( !m_peer )
-    {
-        wxTextCtrl::CreatePeer( str, pos, size, style );
-    }
+    m_peer = new wxMacSearchFieldControl( this , str , pos , size , style );
 }
 
 #endif // wxUSE_NATIVE_SEARCH_CONTROL
 }
 
 #endif // wxUSE_NATIVE_SEARCH_CONTROL