X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=radiant%2Fmru.cpp;h=640fd3914ca94e1f3f9ec7a77d3f9c5e9c1d66af;hb=9b94ff18c880814ba57370489857de3a4d813bad;hp=37fd9a17a734933c9437363324eb40bedf83f029;hpb=0203ac024e9396ebc180d9721da40b90b7c33dc6;p=xonotic%2Fnetradiant.git diff --git a/radiant/mru.cpp b/radiant/mru.cpp index 37fd9a17..640fd391 100644 --- a/radiant/mru.cpp +++ b/radiant/mru.cpp @@ -27,7 +27,6 @@ #include "os/file.h" #include "generic/callback.h" -#include "stream/stringstream.h" #include "convert.h" #include "gtkutil/menu.h" @@ -36,12 +35,12 @@ const int MRU_MAX = 4; namespace { -GtkMenuItem *MRU_items[MRU_MAX]; -std::size_t MRU_used; -typedef CopiedString MRU_filename_t; -MRU_filename_t MRU_filenames[MRU_MAX]; -typedef const char* MRU_key_t; -MRU_key_t MRU_keys[MRU_MAX] = { "File0", "File1", "File2", "File3" }; + GtkMenuItem *MRU_items[MRU_MAX]; + std::size_t MRU_used; + typedef CopiedString MRU_filename_t; + MRU_filename_t MRU_filenames[MRU_MAX]; + typedef const char* MRU_key_t; + MRU_key_t MRU_keys[MRU_MAX] = { "File0", "File1", "File2", "File3" }; } inline const char* MRU_GetText( std::size_t index ){ @@ -50,28 +49,30 @@ inline const char* MRU_GetText( std::size_t index ){ class EscapedMnemonic { -StringBuffer m_buffer; +private: + std::string m_buffer; + public: -EscapedMnemonic( std::size_t capacity ) : m_buffer( capacity ){ - m_buffer.push_back( '_' ); -} -const char* c_str() const { - return m_buffer.c_str(); -} -void push_back( char c ){ // not escaped - m_buffer.push_back( c ); -} -std::size_t write( const char* buffer, std::size_t length ){ - for ( const char* end = buffer + length; buffer != end; ++buffer ) - { - if ( *buffer == '_' ) { - m_buffer.push_back( '_' ); - } + EscapedMnemonic() : m_buffer(){ + m_buffer.push_back( '_' ); + } + const char* c_str() const { + return m_buffer.c_str(); + } + void push_back( char c ){ // not escaped + m_buffer.push_back( c ); + } + std::size_t write( const char* buffer, std::size_t length ){ + for ( const char* end = buffer + length; buffer != end; ++buffer ) + { + if ( *buffer == '_' ) { + m_buffer.push_back( '_' ); + } - m_buffer.push_back( *buffer ); + m_buffer.push_back( *buffer ); + } + return length; } - return length; -} }; template @@ -81,7 +82,7 @@ inline EscapedMnemonic& operator<<( EscapedMnemonic& ostream, const T& t ){ void MRU_updateWidget( std::size_t index, const char *filename ){ - EscapedMnemonic mnemonic( 64 ); + EscapedMnemonic mnemonic; mnemonic << Unsigned( index + 1 ) << "- " << filename; gtk_label_set_text_with_mnemonic( GTK_LABEL( gtk_bin_get_child( GTK_BIN( MRU_items[index] ) ) ), mnemonic.c_str() ); } @@ -173,16 +174,18 @@ void MRU_Activate( std::size_t index ){ class LoadMRU { -std::size_t m_number; +private: + std::size_t m_number; + public: -LoadMRU( std::size_t number ) - : m_number( number ){ -} -void load(){ - if ( ConfirmModified( "Open Map" ) ) { - MRU_Activate( m_number - 1 ); + LoadMRU( std::size_t number ) + : m_number( number ){ + } + void load(){ + if ( ConfirmModified( "Open Map" ) ) { + MRU_Activate( m_number - 1 ); + } } -} }; typedef MemberCaller LoadMRUCaller;