Implement auto-completion support for wxTextEntry in wxOSX/Cocoa.
Both completing a set of fixed strings and dynamic completion using a custom completer are supported, although completing the file names remains MSW-only for now. Note that, unlike under MSW, auto-completion under Mac is not automatic and has to be triggered manually by calling complete: method. This is done by pressing F5 key by default. In the future we should call it automatically on a timer event to make it more obviously discoverable. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67526 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -45,9 +45,22 @@
|
||||
#include "wx/filefn.h"
|
||||
#include "wx/sysopt.h"
|
||||
#include "wx/thread.h"
|
||||
#include "wx/textcompleter.h"
|
||||
|
||||
#include "wx/osx/private.h"
|
||||
|
||||
wxTextEntry::wxTextEntry()
|
||||
{
|
||||
m_completer = NULL;
|
||||
m_editable = true;
|
||||
m_maxLength = 0;
|
||||
}
|
||||
|
||||
wxTextEntry::~wxTextEntry()
|
||||
{
|
||||
delete m_completer;
|
||||
}
|
||||
|
||||
wxString wxTextEntry::DoGetValue() const
|
||||
{
|
||||
return GetTextPeer()->GetStringValue() ;
|
||||
@@ -224,4 +237,23 @@ wxTextWidgetImpl * wxTextEntry::GetTextPeer() const
|
||||
return win ? dynamic_cast<wxTextWidgetImpl *>(win->GetPeer()) : NULL;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Auto-completion
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
bool wxTextEntry::DoAutoCompleteStrings(const wxArrayString& choices)
|
||||
{
|
||||
wxTextCompleterFixed * const completer = new wxTextCompleterFixed;
|
||||
completer->SetCompletions(choices);
|
||||
|
||||
return DoAutoCompleteCustom(completer);
|
||||
}
|
||||
|
||||
bool wxTextEntry::DoAutoCompleteCustom(wxTextCompleter *completer)
|
||||
{
|
||||
m_completer = completer;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif // wxUSE_TEXTCTRL
|
||||
|
||||
Reference in New Issue
Block a user