X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fnetradiant.git;a=blobdiff_plain;f=radiant%2Ftextureentry.h;h=7045b29aef0d4a8c55d9e991d1a2bbd87bbe2d8c;hp=67238a60a8bd82f985fef76ecaf3ea5f02db3f37;hb=a4ccfdcc0fce0db232082538344483d325f980fc;hpb=846e726a53c564fc3765bc1c175877e497c2a10b diff --git a/radiant/textureentry.h b/radiant/textureentry.h index 67238a60..7045b29a 100644 --- a/radiant/textureentry.h +++ b/radiant/textureentry.h @@ -22,8 +22,6 @@ #if !defined( INCLUDED_TEXTUREENTRY_H ) #define INCLUDED_TEXTUREENTRY_H - -#include #include "gtkutil/idledraw.h" #include "generic/static.h" @@ -33,84 +31,65 @@ #include "texwindow.h" template -class EntryCompletion -{ -ui::ListStore m_store; -IdleDraw m_idleUpdate; +class EntryCompletion { + ui::ListStore m_store; + IdleDraw m_idleUpdate; public: -EntryCompletion() : m_store( 0 ), m_idleUpdate( UpdateCaller( *this ) ){ -} - -void connect( ui::Entry entry ){ - if ( !m_store ) { - m_store = ui::ListStore(gtk_list_store_new( 1, G_TYPE_STRING )); - - fill(); - - StringList().connect( IdleDraw::QueueDrawCaller( m_idleUpdate ) ); - } - - auto completion = ui::EntryCompletion(gtk_entry_completion_new()); - gtk_entry_set_completion( entry, completion ); - gtk_entry_completion_set_model( completion, GTK_TREE_MODEL( m_store ) ); - gtk_entry_completion_set_text_column( completion, 0 ); -} - -void append( const char* string ){ - GtkTreeIter iter; - gtk_list_store_append( m_store, &iter ); - gtk_list_store_set( m_store, &iter, 0, string, -1 ); -} -typedef MemberCaller1 AppendCaller; - -void fill(){ - StringList().forEach( AppendCaller( *this ) ); -} - -void clear(){ - gtk_list_store_clear( m_store ); -} - -void update(){ - clear(); - fill(); -} -typedef MemberCaller UpdateCaller; + EntryCompletion() : m_store(0), m_idleUpdate(UpdateCaller(*this)) + { + } + + void connect(ui::Entry entry); + + void append(const char *string); + + typedef MemberCaller1 AppendCaller; + + void fill(); + + void clear(); + + void update(); + + typedef MemberCaller UpdateCaller; }; -class TextureNameList -{ +class TextureNameList { public: -void forEach( const ShaderNameCallback& callback ) const { - for ( QERApp_ActiveShaders_IteratorBegin(); !QERApp_ActiveShaders_IteratorAtEnd(); QERApp_ActiveShaders_IteratorIncrement() ) - { - IShader *shader = QERApp_ActiveShaders_IteratorCurrent(); - - if ( shader_equal_prefix( shader->getName(), "textures/" ) ) { - callback( shader->getName() + 9 ); - } - } -} -void connect( const SignalHandler& update ) const { - TextureBrowser_addActiveShadersChangedCallback( update ); -} + void forEach(const ShaderNameCallback &callback) const + { + for (QERApp_ActiveShaders_IteratorBegin(); !QERApp_ActiveShaders_IteratorAtEnd(); QERApp_ActiveShaders_IteratorIncrement()) { + IShader *shader = QERApp_ActiveShaders_IteratorCurrent(); + + if (shader_equal_prefix(shader->getName(), "textures/")) { + callback(shader->getName() + 9); + } + } + } + + void connect(const SignalHandler &update) const + { + TextureBrowser_addActiveShadersChangedCallback(update); + } }; -typedef Static< EntryCompletion > GlobalTextureEntryCompletion; +typedef Static > GlobalTextureEntryCompletion; -class ShaderList -{ +class ShaderList { public: -void forEach( const ShaderNameCallback& callback ) const { - GlobalShaderSystem().foreachShaderName( callback ); -} -void connect( const SignalHandler& update ) const { - TextureBrowser_addShadersRealiseCallback( update ); -} + void forEach(const ShaderNameCallback &callback) const + { + GlobalShaderSystem().foreachShaderName(callback); + } + + void connect(const SignalHandler &update) const + { + TextureBrowser_addShadersRealiseCallback(update); + } }; -typedef Static< EntryCompletion > GlobalShaderEntryCompletion; +typedef Static > GlobalShaderEntryCompletion; #endif