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):
|
All (GUI):
|
||||||
|
|
||||||
|
- Added wxTextCtrl::AutoComplete()
|
||||||
- Added wxH[V]ScrolledWindow (Brad Anderson, Bryan Petty).
|
- Added wxH[V]ScrolledWindow (Brad Anderson, Bryan Petty).
|
||||||
- Added wxDC::StretchBlit() for wxMac and wxMSW (Vince Harron).
|
- Added wxDC::StretchBlit() for wxMac and wxMSW (Vince Harron).
|
||||||
- Added support for drop down toolbar buttons (Tim Kosse).
|
- Added support for drop down toolbar buttons (Tim Kosse).
|
||||||
|
@ -328,6 +328,19 @@ the programmer should use \helpref{GetInsertionPoint}{wxtextctrlgetinsertionpoin
|
|||||||
\helpref{wxTextCtrl::WriteText}{wxtextctrlwritetext}
|
\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}
|
\membersection{wxTextCtrl::CanCopy}\label{wxtextctrlcancopy}
|
||||||
|
|
||||||
\func{virtual bool}{CanCopy}{\void}
|
\func{virtual bool}{CanCopy}{\void}
|
||||||
|
@ -43,15 +43,13 @@ public:
|
|||||||
virtual void SetSelection(long from, long to);
|
virtual void SetSelection(long from, long to);
|
||||||
virtual void GetSelection(long *from, long *to) const;
|
virtual void GetSelection(long *from, long *to) const;
|
||||||
|
|
||||||
// status
|
virtual void AutoComplete(const wxArrayString& choices);
|
||||||
|
|
||||||
virtual bool IsEditable() const;
|
virtual bool IsEditable() const;
|
||||||
virtual void SetEditable(bool editable);
|
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);
|
virtual void SetMaxLength(unsigned long len);
|
||||||
|
|
||||||
|
|
||||||
// implementation only from now on
|
// implementation only from now on
|
||||||
void SendMaxLenEvent();
|
void SendMaxLenEvent();
|
||||||
|
|
||||||
|
@ -94,9 +94,16 @@ public:
|
|||||||
bool HasSelection() const;
|
bool HasSelection() const;
|
||||||
virtual wxString GetStringSelection() const;
|
virtual wxString GetStringSelection() const;
|
||||||
|
|
||||||
|
|
||||||
|
// auto-completion
|
||||||
|
// ---------------
|
||||||
|
|
||||||
|
virtual void AutoComplete(const wxArrayString& WXUNUSED(choices)) { }
|
||||||
|
|
||||||
|
|
||||||
// status
|
// status
|
||||||
// ------
|
// ------
|
||||||
|
|
||||||
virtual bool IsEditable() const = 0;
|
virtual bool IsEditable() const = 0;
|
||||||
virtual void SetEditable(bool editable) = 0;
|
virtual void SetEditable(bool editable) = 0;
|
||||||
|
|
||||||
|
@ -217,6 +217,35 @@ void wxTextEntry::GetSelection(long *from, long *to) const
|
|||||||
*to = end;
|
*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
|
// editable status
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user