X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=radiant%2Fpluginmenu.cpp;h=e2af3b97100d8e584a0415813f51959b80da8332;hb=569c0d2b9f44331d0b9c0ae7594147efb9e632e1;hp=fb97825abbc39098d4fa31b7b3096f094c369e91;hpb=c52a4bd4da209e657018e8d799dcb488cd848e4c;p=xonotic%2Fnetradiant.git diff --git a/radiant/pluginmenu.cpp b/radiant/pluginmenu.cpp index fb97825a..e2af3b97 100644 --- a/radiant/pluginmenu.cpp +++ b/radiant/pluginmenu.cpp @@ -21,10 +21,10 @@ #include "pluginmenu.h" -#include "stream/textstream.h" - #include +#include "stream/textstream.h" + #include "gtkutil/pointer.h" #include "gtkutil/menu.h" @@ -41,22 +41,22 @@ void plugin_activated( ui::Widget widget, gpointer data ){ } #include -typedef std::stack WidgetStack; -void PlugInMenu_Add( GtkMenu* plugin_menu, IPlugIn* pPlugIn ){ - ui::Widget menu, item, parent, subMenu; +void PlugInMenu_Add( ui::Menu plugin_menu, IPlugIn* pPlugIn ){ + ui::Widget item, parent; + ui::Menu menu{ui::null}, subMenu{ui::null}; const char *menuText, *menuCommand; - WidgetStack menuStack; + std::stack menuStack; parent = ui::MenuItem( pPlugIn->getMenuName() ); - gtk_widget_show( parent ); - gtk_container_add( GTK_CONTAINER( plugin_menu ), parent ); + parent.show(); + plugin_menu.add(parent); std::size_t nCount = pPlugIn->getCommandCount(); if ( nCount > 0 ) { menu = ui::Menu(); if ( g_Layout_enableDetachableMenus.m_value ) { - menu_tearoff( GTK_MENU( menu ) ); + menu_tearoff( menu ); } while ( nCount > 0 ) { @@ -77,8 +77,8 @@ void PlugInMenu_Add( GtkMenu* plugin_menu, IPlugIn* pPlugIn ){ } item = ui::MenuItem( menuText ); - gtk_widget_show( item ); - gtk_container_add( GTK_CONTAINER( menu ), item ); + item.show(); + menu.add(item); subMenu = ui::Menu(); gtk_menu_item_set_submenu( GTK_MENU_ITEM( item ), subMenu ); @@ -101,10 +101,10 @@ void PlugInMenu_Add( GtkMenu* 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 ) ); } - gtk_widget_show( item ); - gtk_container_add( GTK_CONTAINER( menu ), item ); + item.show(); + menu.add(item); pPlugIn->addMenuID( m_nNextPlugInID++ ); } } @@ -124,15 +124,15 @@ void PlugInMenu_Add( GtkMenu* plugin_menu, IPlugIn* pPlugIn ){ } } -GtkMenu* g_plugins_menu = 0; +ui::Menu g_plugins_menu{ui::null}; GtkMenuItem* g_plugins_menu_separator = 0; void PluginsMenu_populate(){ class PluginsMenuConstructor : public PluginsVisitor { - GtkMenu* m_menu; + ui::Menu m_menu; public: - PluginsMenuConstructor( GtkMenu* menu ) : m_menu( menu ){ + PluginsMenuConstructor( ui::Menu menu ) : m_menu( menu ){ } void visit( IPlugIn& plugin ){ PlugInMenu_Add( m_menu, &plugin ); @@ -154,10 +154,10 @@ void PluginsMenu_clear(){ } } -GtkMenuItem* create_plugins_menu(){ +ui::MenuItem create_plugins_menu(){ // Plugins menu - GtkMenuItem* plugins_menu_item = new_sub_menu_item_with_mnemonic( "_Plugins" ); - GtkMenu* menu = GTK_MENU( gtk_menu_item_get_submenu( plugins_menu_item ) ); + 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 ) )); if ( g_Layout_enableDetachableMenus.m_value ) { menu_tearoff( menu ); }