0f1d1d2ae9
Fix the state of the check/radio items in the menu by updating the template used by macOS to create the actual menu after showing it and possibly changing the items state. This is not ideal because changing the state from the program, e.g. using wxMenuItem::Check(), still doesn't work correctly, i.e. isn't reflected in the menu when it's shown, but better than nothing until a better solution (which ideally would update the menu just before showing it, but it's not clear how exactly can we do it, knowing that we don't get wxEVT_MENU_OPEN for this menu neither) can be found.
91 lines
2.5 KiB
C++
91 lines
2.5 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/osx/srchctrl.h
|
|
// Purpose: mac carbon wxSearchCtrl class
|
|
// Author: Vince Harron
|
|
// Created: 2006-02-19
|
|
// Copyright: Vince Harron
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_SEARCHCTRL_H_
|
|
#define _WX_SEARCHCTRL_H_
|
|
|
|
#if wxUSE_SEARCHCTRL
|
|
|
|
class wxSearchWidgetImpl;
|
|
|
|
class WXDLLIMPEXP_CORE wxSearchCtrl : public wxSearchCtrlBase
|
|
{
|
|
public:
|
|
// creation
|
|
// --------
|
|
|
|
wxSearchCtrl();
|
|
wxSearchCtrl(wxWindow *parent, wxWindowID id,
|
|
const wxString& value = wxEmptyString,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = 0,
|
|
const wxValidator& validator = wxDefaultValidator,
|
|
const wxString& name = wxASCII_STR(wxSearchCtrlNameStr));
|
|
|
|
virtual ~wxSearchCtrl();
|
|
|
|
bool Create(wxWindow *parent, wxWindowID id,
|
|
const wxString& value = wxEmptyString,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = 0,
|
|
const wxValidator& validator = wxDefaultValidator,
|
|
const wxString& name = wxASCII_STR(wxSearchCtrlNameStr));
|
|
|
|
#if wxUSE_MENUS
|
|
// get/set search button menu
|
|
// --------------------------
|
|
virtual void SetMenu( wxMenu* menu ) wxOVERRIDE;
|
|
virtual wxMenu* GetMenu() wxOVERRIDE;
|
|
#endif // wxUSE_MENUS
|
|
|
|
// get/set search options
|
|
// ----------------------
|
|
virtual void ShowSearchButton( bool show ) wxOVERRIDE;
|
|
virtual bool IsSearchButtonVisible() const wxOVERRIDE;
|
|
|
|
virtual void ShowCancelButton( bool show ) wxOVERRIDE;
|
|
virtual bool IsCancelButtonVisible() const wxOVERRIDE;
|
|
|
|
virtual void SetDescriptiveText(const wxString& text) wxOVERRIDE;
|
|
virtual wxString GetDescriptiveText() const wxOVERRIDE;
|
|
|
|
virtual bool HandleSearchFieldSearchHit() ;
|
|
virtual bool HandleSearchFieldCancelHit() ;
|
|
|
|
wxSearchWidgetImpl * GetSearchPeer() const;
|
|
|
|
#if wxUSE_MENUS
|
|
virtual void OSXAfterMenuEvent() wxOVERRIDE;
|
|
#endif // wxUSE_MENUS
|
|
|
|
protected:
|
|
|
|
wxSize DoGetBestSize() const wxOVERRIDE;
|
|
|
|
void Init();
|
|
|
|
#if wxUSE_MENUS
|
|
wxMenu *m_menu;
|
|
#endif // wxUSE_MENUS
|
|
|
|
wxString m_descriptiveText;
|
|
|
|
private:
|
|
wxDECLARE_DYNAMIC_CLASS(wxSearchCtrl);
|
|
|
|
wxDECLARE_EVENT_TABLE();
|
|
};
|
|
|
|
#endif // wxUSE_SEARCHCTRL
|
|
|
|
#endif // _WX_SEARCHCTRL_H_
|
|
|