X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=radiant%2Fpluginmenu.cpp;h=8155d0a92d7d7bbe01c011111d9a9260c0854860;hb=946ec330342cc9806d85af3f84d015a1715f3159;hp=e3b278c5fede6e64c406616333b0e5289d4871fc;hpb=225950494a606af9aac2bc2f06ece70cb2146481;p=xonotic%2Fnetradiant.git diff --git a/radiant/pluginmenu.cpp b/radiant/pluginmenu.cpp index e3b278c5..8155d0a9 100644 --- a/radiant/pluginmenu.cpp +++ b/radiant/pluginmenu.cpp @@ -21,6 +21,8 @@ #include "pluginmenu.h" +#include + #include "stream/textstream.h" #include "gtkutil/pointer.h" @@ -41,8 +43,8 @@ void plugin_activated( ui::Widget widget, gpointer data ){ #include void PlugInMenu_Add( ui::Menu plugin_menu, IPlugIn* pPlugIn ){ - ui::Widget item, parent; - ui::Menu menu{nullptr}, subMenu{nullptr}; + ui::Widget item{ui::null}, parent{ui::null}; + ui::Menu menu{ui::null}, subMenu{ui::null}; const char *menuText, *menuCommand; std::stack menuStack; @@ -52,7 +54,7 @@ void PlugInMenu_Add( ui::Menu plugin_menu, IPlugIn* pPlugIn ){ std::size_t nCount = pPlugIn->getCommandCount(); if ( nCount > 0 ) { - menu = ui::Menu(); + menu = ui::Menu(ui::New); if ( g_Layout_enableDetachableMenus.m_value ) { menu_tearoff( menu ); } @@ -63,7 +65,7 @@ void PlugInMenu_Add( ui::Menu plugin_menu, IPlugIn* pPlugIn ){ if ( menuText != 0 && strlen( menuText ) > 0 ) { if ( !strcmp( menuText, "-" ) ) { - item = ui::Widget(gtk_menu_item_new()); + item = ui::Widget::from(gtk_menu_item_new()); gtk_widget_set_sensitive( item, FALSE ); } else if ( !strcmp( menuText, ">" ) ) { @@ -78,7 +80,7 @@ void PlugInMenu_Add( ui::Menu plugin_menu, IPlugIn* pPlugIn ){ item.show(); menu.add(item); - subMenu = ui::Menu(); + subMenu = ui::Menu(ui::New); gtk_menu_item_set_submenu( GTK_MENU_ITEM( item ), subMenu ); menuStack.push( menu ); menu = subMenu; @@ -99,7 +101,7 @@ void PlugInMenu_Add( ui::Menu plugin_menu, IPlugIn* pPlugIn ){ { item = ui::MenuItem( menuText ); g_object_set_data( G_OBJECT( item ),"command", const_cast( static_cast( menuCommand ) ) ); - g_signal_connect( G_OBJECT( item ), "activate", G_CALLBACK( plugin_activated ), gint_to_pointer( m_nNextPlugInID ) ); + item.connect( "activate", G_CALLBACK( plugin_activated ), gint_to_pointer( m_nNextPlugInID ) ); } item.show(); menu.add(item); @@ -123,7 +125,7 @@ void PlugInMenu_Add( ui::Menu plugin_menu, IPlugIn* pPlugIn ){ } ui::Menu g_plugins_menu{ui::null}; -GtkMenuItem* g_plugins_menu_separator = 0; +ui::MenuItem g_plugins_menu_separator{ui::null}; void PluginsMenu_populate(){ class PluginsMenuConstructor : public PluginsVisitor @@ -144,18 +146,18 @@ public: void PluginsMenu_clear(){ m_nNextPlugInID = 0; - GList* lst = g_list_find( gtk_container_get_children( GTK_CONTAINER( g_plugins_menu ) ), GTK_WIDGET( g_plugins_menu_separator ) ); + GList* lst = g_list_find( gtk_container_get_children( GTK_CONTAINER( g_plugins_menu ) ), g_plugins_menu_separator._handle ); while ( lst->next ) { - gtk_container_remove( GTK_CONTAINER( g_plugins_menu ), GTK_WIDGET( lst->next->data ) ); - lst = g_list_find( gtk_container_get_children( GTK_CONTAINER( g_plugins_menu ) ), GTK_WIDGET( g_plugins_menu_separator ) ); + g_plugins_menu.remove(ui::Widget::from(lst->next->data)); + lst = g_list_find( gtk_container_get_children( GTK_CONTAINER( g_plugins_menu ) ), g_plugins_menu_separator._handle ); } } ui::MenuItem create_plugins_menu(){ // Plugins menu auto plugins_menu_item = new_sub_menu_item_with_mnemonic( "_Plugins" ); - auto menu = ui::Menu(GTK_MENU( gtk_menu_item_get_submenu( plugins_menu_item ) )); + auto menu = ui::Menu::from( gtk_menu_item_get_submenu( plugins_menu_item ) ); if ( g_Layout_enableDetachableMenus.m_value ) { menu_tearoff( menu ); } @@ -164,7 +166,7 @@ ui::MenuItem create_plugins_menu(){ //TODO: some modules/plugins do not yet support refresh #if 0 - create_menu_item_with_mnemonic( menu, "Refresh", FreeCaller() ); + create_menu_item_with_mnemonic( menu, "Refresh", makeCallbackF(Restart) ); // NOTE: the seperator is used when doing a refresh of the list, everything past the seperator is removed g_plugins_menu_separator = menu_separator( menu );