added wxTextEntry::AutoComplete() and implemented it for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49633 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
5fe302ef74
commit
ecaed0bcda
@ -185,6 +185,7 @@ All (Unix):
|
||||
|
||||
All (GUI):
|
||||
|
||||
- Added wxTextCtrl::AutoComplete()
|
||||
- Added wxH[V]ScrolledWindow (Brad Anderson, Bryan Petty).
|
||||
- Added wxDC::StretchBlit() for wxMac and wxMSW (Vince Harron).
|
||||
- Added support for drop down toolbar buttons (Tim Kosse).
|
||||
|
@ -328,6 +328,19 @@ the programmer should use \helpref{GetInsertionPoint}{wxtextctrlgetinsertionpoin
|
||||
\helpref{wxTextCtrl::WriteText}{wxtextctrlwritetext}
|
||||
|
||||
|
||||
\membersection{wxTextCtrl::AutoComplete}\label{wxtextctrlautocomplete}
|
||||
|
||||
\func{bool}{AutoComplete}{\param{const wxArrayString\& }{choices}}
|
||||
|
||||
Call this function to enable auto-completion of the text typed in a single-line
|
||||
text control using the given \arg{choices}.
|
||||
|
||||
Notice that currently this function is only implemented in wxGTK2 port and does
|
||||
nothing under the other platforms.
|
||||
|
||||
\newsince{2.9.0}
|
||||
|
||||
|
||||
\membersection{wxTextCtrl::CanCopy}\label{wxtextctrlcancopy}
|
||||
|
||||
\func{virtual bool}{CanCopy}{\void}
|
||||
|
@ -43,15 +43,13 @@ public:
|
||||
virtual void SetSelection(long from, long to);
|
||||
virtual void GetSelection(long *from, long *to) const;
|
||||
|
||||
// status
|
||||
virtual void AutoComplete(const wxArrayString& choices);
|
||||
|
||||
virtual bool IsEditable() const;
|
||||
virtual void SetEditable(bool editable);
|
||||
|
||||
// set the max number of characters which may be entered in a single line
|
||||
// text control
|
||||
virtual void SetMaxLength(unsigned long len);
|
||||
|
||||
|
||||
// implementation only from now on
|
||||
void SendMaxLenEvent();
|
||||
|
||||
|
@ -94,9 +94,16 @@ public:
|
||||
bool HasSelection() const;
|
||||
virtual wxString GetStringSelection() const;
|
||||
|
||||
|
||||
// auto-completion
|
||||
// ---------------
|
||||
|
||||
virtual void AutoComplete(const wxArrayString& WXUNUSED(choices)) { }
|
||||
|
||||
|
||||
// status
|
||||
// ------
|
||||
|
||||
virtual bool IsEditable() const = 0;
|
||||
virtual void SetEditable(bool editable) = 0;
|
||||
|
||||
|
@ -217,6 +217,35 @@ void wxTextEntry::GetSelection(long *from, long *to) const
|
||||
*to = end;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// auto completion
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
void wxTextEntry::AutoComplete(const wxArrayString& choices)
|
||||
{
|
||||
GtkEntry * const entry = GTK_ENTRY(GetEditable());
|
||||
wxCHECK_RET( entry, "auto completion doesn't work with this control" );
|
||||
|
||||
GtkListStore * const store = gtk_list_store_new(1, G_TYPE_STRING);
|
||||
GtkTreeIter iter;
|
||||
|
||||
for ( wxArrayString::const_iterator i = choices.begin();
|
||||
i != choices.end();
|
||||
++i )
|
||||
{
|
||||
gtk_list_store_append(store, &iter);
|
||||
gtk_list_store_set(store, &iter,
|
||||
0, (const gchar *)i->utf8_str(),
|
||||
-1);
|
||||
}
|
||||
|
||||
GtkEntryCompletion * const completion = gtk_entry_completion_new();
|
||||
gtk_entry_completion_set_model(completion, GTK_TREE_MODEL(store));
|
||||
gtk_entry_completion_set_text_column(completion, 0);
|
||||
gtk_entry_set_completion(entry, completion);
|
||||
g_object_unref(completion);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// editable status
|
||||
// ----------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user