// License: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
-// ============================================================================
-// declarations
-// ============================================================================
-
-// ----------------------------------------------------------------------------
-// headers
-// ----------------------------------------------------------------------------
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#pragma hdrstop
#endif
-#ifndef WX_PRECOMP
- #include "wx/menu.h"
-#endif //WX_PRECOMP
-
#if wxUSE_SEARCHCTRL
#include "wx/srchctrl.h"
+#ifndef WX_PRECOMP
+ #include "wx/menu.h"
+#endif //WX_PRECOMP
+
#if wxUSE_NATIVE_SEARCH_CONTROL
#include "wx/mac/uma.h"
// wxMacSearchFieldControl
// ============================================================================
-#if MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_2
-
-
static const EventTypeSpec eventList[] =
{
{ kEventClassSearchField, kEventSearchFieldCancelClicked } ,
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 );
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 ( UMAGetSystemVersion() >= 0x1040 )
- {
- attributes = kHISearchFieldAttributesSearchIcon;
- }
+ OptionBits attributes = kHISearchFieldAttributesSearchIcon;
+
HIRect hibounds = { { bounds->left, bounds->top }, { bounds->right-bounds->left, bounds->bottom-bounds->top } };
verify_noerr( HISearchFieldCreate(
&hibounds,
// search field options
void wxMacSearchFieldControl::ShowSearchButton( bool show )
{
- if ( UMAGetSystemVersion() >= 0x1040 )
+ OptionBits set = 0;
+ OptionBits clear = 0;
+ if ( show )
+ {
+ set |= kHISearchFieldAttributesSearchIcon;
+ }
+ else
{
- OptionBits set = 0;
- OptionBits clear = 0;
- if ( show )
- {
- set |= kHISearchFieldAttributesSearchIcon;
- }
- else
- {
- clear |= kHISearchFieldAttributesSearchIcon;
- }
- HISearchFieldChangeAttributes( m_controlRef, set, clear );
+ clear |= kHISearchFieldAttributesSearchIcon;
}
+ HISearchFieldChangeAttributes( m_controlRef, set, clear );
}
bool wxMacSearchFieldControl::IsSearchButtonVisible() const
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
GetEventTypeCount(eventList), eventList, this,
(EventHandlerRef *)&searchEventHandler);
+ SetValue(value);
+
return true;
}
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, m_windowId );
+ wxCommandEvent event(wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN, m_windowId );
event.SetEventObject(this);
ProcessCommand(event);
return eventNotHandledErr ;
wxInt32 wxSearchCtrl::MacSearchFieldCancelHit(WXEVENTHANDLERREF WXUNUSED(handler) , WXEVENTREF WXUNUSED(event) )
{
- wxCommandEvent event(wxEVT_COMMAND_SEARCHCTRL_CANCEL, m_windowId );
+ wxCommandEvent event(wxEVT_COMMAND_SEARCHCTRL_CANCEL_BTN, m_windowId );
event.SetEventObject(this);
ProcessCommand(event);
return eventNotHandledErr ;
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