]> git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/mru.cpp
Merge commit '3a78d902017a780e65f21f12c709aa746dfcab84' into garux-merge
[xonotic/netradiant.git] / radiant / mru.cpp
index 9a4a1d755edcbea11d8e29db23b25688a8790160..dc0525029b1d87ffd28b797fc5ac218e1ba72008 100644 (file)
 #include "map.h"
 #include "qe3.h"
 
-const int MRU_MAX = 4;
+#define MRU_MAX 9
 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" };
+MRU_key_t MRU_keys[MRU_MAX] = { "File0", "File1", "File2", "File3", "File4", "File5", "File6", "File7", "File8" };
 }
 
 inline const char* MRU_GetText( std::size_t index ){
@@ -120,8 +120,8 @@ void MRU_AddFile( const char *str ){
                MRU_SetText( i, MRU_GetText( i - 1 ) );
 
        MRU_SetText( 0, str );
-       gtk_widget_set_sensitive( ui::MenuItem(MRU_items[0]) , TRUE );
-       ui::MenuItem(MRU_items[MRU_used - 1] ).show();
+       gtk_widget_set_sensitive( ui::MenuItem::from(MRU_items[0]) , TRUE );
+       ui::MenuItem::from(MRU_items[MRU_used - 1] ).show();
 }
 
 void MRU_Init(){
@@ -135,8 +135,8 @@ void MRU_AddWidget( ui::MenuItem widget, std::size_t pos ){
                MRU_items[pos] = widget;
                if ( pos < MRU_used ) {
                        MRU_updateWidget( pos, MRU_GetText( pos ) );
-                       gtk_widget_set_sensitive( ui::MenuItem(MRU_items[0]) , TRUE );
-                       ui::MenuItem(MRU_items[pos]).show();
+                       gtk_widget_set_sensitive( ui::MenuItem::from(MRU_items[0]) , TRUE );
+                       ui::MenuItem::from(MRU_items[pos]).show();
                }
        }
 }
@@ -159,13 +159,13 @@ void MRU_Activate( std::size_t index ){
                        MRU_SetText( i, MRU_GetText( i + 1 ) );
 
                if ( MRU_used == 0 ) {
-                       auto label = ui::Label(GTK_LABEL(gtk_bin_get_child(GTK_BIN(MRU_items[0] )) ));
+                       auto label = ui::Label::from(gtk_bin_get_child(GTK_BIN(MRU_items[0] )) );
                        label.text("Recent Files");
-                       gtk_widget_set_sensitive( ui::MenuItem(MRU_items[0]), FALSE );
+                       gtk_widget_set_sensitive( ui::MenuItem::from(MRU_items[0]), FALSE );
                }
                else
                {
-                       ui::MenuItem(MRU_items[MRU_used]).hide();
+                       ui::MenuItem::from(MRU_items[MRU_used]).hide();
                }
        }
 }
@@ -191,6 +191,11 @@ LoadMRU g_load_mru1( 1 );
 LoadMRU g_load_mru2( 2 );
 LoadMRU g_load_mru3( 3 );
 LoadMRU g_load_mru4( 4 );
+LoadMRU g_load_mru5( 5 );
+LoadMRU g_load_mru6( 6 );
+LoadMRU g_load_mru7( 7 );
+LoadMRU g_load_mru8( 8 );
+LoadMRU g_load_mru9( 9 );
 
 void MRU_constructMenu( ui::Menu menu ){
        {
@@ -213,6 +218,31 @@ void MRU_constructMenu( ui::Menu menu ){
                item.hide();
                MRU_AddWidget( item, 3 );
        }
+       {
+               auto item = create_menu_item_with_mnemonic( menu, "_5", LoadMRUCaller( g_load_mru5 ) );
+               item.hide();
+               MRU_AddWidget( item, 4 );
+       }
+       {
+               auto item = create_menu_item_with_mnemonic( menu, "_6", LoadMRUCaller( g_load_mru6 ) );
+               item.hide();
+               MRU_AddWidget( item, 5 );
+       }
+       {
+               auto item = create_menu_item_with_mnemonic( menu, "_7", LoadMRUCaller( g_load_mru7 ) );
+               item.hide();
+               MRU_AddWidget( item, 6 );
+       }
+       {
+               auto item = create_menu_item_with_mnemonic( menu, "_8", LoadMRUCaller( g_load_mru8 ) );
+               item.hide();
+               MRU_AddWidget( item, 7 );
+       }
+       {
+               auto item = create_menu_item_with_mnemonic( menu, "_9", LoadMRUCaller( g_load_mru9 ) );
+               item.hide();
+               MRU_AddWidget( item, 8 );
+       }
 }
 
 #include "preferencesystem.h"