X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=radiant%2Ftextureentry.cpp;h=04512f6f6887374ec735eaa4bc92a013c7f811b7;hb=27c45113f1053186ab5f7b5c0a80f052c4896a6d;hp=615143c1a7374e804b4e742460c4a6727402abdf;hpb=231225d6f97d0b926b2e896e5783cccfbc7c5619;p=xonotic%2Fnetradiant.git diff --git a/radiant/textureentry.cpp b/radiant/textureentry.cpp index 615143c1..04512f6f 100644 --- a/radiant/textureentry.cpp +++ b/radiant/textureentry.cpp @@ -1,23 +1,72 @@ /* -Copyright (C) 2001-2006, William Joseph. -All Rights Reserved. + Copyright (C) 2001-2006, William Joseph. + All Rights Reserved. -This file is part of GtkRadiant. + This file is part of GtkRadiant. -GtkRadiant is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. + GtkRadiant is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. -GtkRadiant is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + GtkRadiant is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with GtkRadiant; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ + You should have received a copy of the GNU General Public License + along with GtkRadiant; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ #include "textureentry.h" +#include + +template +void EntryCompletion::connect(ui::Entry entry) +{ + if (!m_store) { + m_store = ui::ListStore::from(gtk_list_store_new(1, G_TYPE_STRING)); + + fill(); + + StringList().connect(IdleDraw::QueueDrawCaller(m_idleUpdate)); + } + + auto completion = ui::EntryCompletion::from(gtk_entry_completion_new()); + gtk_entry_set_completion(entry, completion); + gtk_entry_completion_set_model(completion, m_store); + gtk_entry_completion_set_text_column(completion, 0); +} + +template +void EntryCompletion::append(const char *string) +{ + m_store.append(0, string); +} + +template +void EntryCompletion::fill() +{ + StringList().forEach(AppendCaller(*this)); +} + +template +void EntryCompletion::clear() +{ + m_store.clear(); +} + +template +void EntryCompletion::update() +{ + clear(); + fill(); +} + +template +class EntryCompletion; + +template +class EntryCompletion;