]> git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/pluginmenu.cpp
Merge branch 'master' into master-merge
[xonotic/netradiant.git] / radiant / pluginmenu.cpp
index d463aea73c88221468cb90e1f6545be9f3d2887b..8155d0a92d7d7bbe01c011111d9a9260c0854860 100644 (file)
@@ -43,8 +43,8 @@ void plugin_activated( ui::Widget widget, gpointer data ){
 #include <stack>
 
 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<ui::Menu> menuStack;
 
@@ -54,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 );
                }
@@ -65,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, ">" ) ) {
@@ -80,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;
@@ -125,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
@@ -146,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 );
        }
@@ -166,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<Restart>() );
+       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 );