]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/pluginmenu.cpp
Wrap GTK
[xonotic/netradiant.git] / radiant / pluginmenu.cpp
index 4708a78ce42bd4b3441fff506fe00d96af66a8dc..fb97825abbc39098d4fa31b7b3096f094c369e91 100644 (file)
@@ -23,8 +23,7 @@
 
 #include "stream/textstream.h"
 
-#include <gtk/gtkmenu.h>
-#include <gtk/gtkmenuitem.h>
+#include <gtk/gtk.h>
 
 #include "gtkutil/pointer.h"
 #include "gtkutil/menu.h"
 
 int m_nNextPlugInID = 0;
 
-void plugin_activated( GtkWidget* widget, gpointer data ){
+void plugin_activated( ui::Widget widget, gpointer data ){
        const char* str = (const char*)g_object_get_data( G_OBJECT( widget ),"command" );
        GetPlugInMgr().Dispatch( gpointer_to_int( data ), str );
 }
 
 #include <stack>
-typedef std::stack<GtkWidget*> WidgetStack;
+typedef std::stack<ui::Widget> WidgetStack;
 
 void PlugInMenu_Add( GtkMenu* plugin_menu, IPlugIn* pPlugIn ){
-       GtkWidget *menu, *item, *parent, *subMenu;
+       ui::Widget menu, item, parent, subMenu;
        const char *menuText, *menuCommand;
        WidgetStack menuStack;
 
-       parent = gtk_menu_item_new_with_label( pPlugIn->getMenuName() );
+       parent = ui::MenuItem( pPlugIn->getMenuName() );
        gtk_widget_show( parent );
        gtk_container_add( GTK_CONTAINER( plugin_menu ), parent );
 
        std::size_t nCount = pPlugIn->getCommandCount();
        if ( nCount > 0 ) {
-               menu = gtk_menu_new();
+               menu = ui::Menu();
                if ( g_Layout_enableDetachableMenus.m_value ) {
                        menu_tearoff( GTK_MENU( menu ) );
                }
@@ -66,7 +65,7 @@ void PlugInMenu_Add( GtkMenu* plugin_menu, IPlugIn* pPlugIn ){
 
                        if ( menuText != 0 && strlen( menuText ) > 0 ) {
                                if ( !strcmp( menuText, "-" ) ) {
-                                       item = gtk_menu_item_new();
+                                       item = ui::Widget(gtk_menu_item_new());
                                        gtk_widget_set_sensitive( item, FALSE );
                                }
                                else if ( !strcmp( menuText, ">" ) ) {
@@ -77,11 +76,11 @@ void PlugInMenu_Add( GtkMenu* plugin_menu, IPlugIn* pPlugIn ){
                                                continue;
                                        }
 
-                                       item = gtk_menu_item_new_with_label( menuText );
+                                       item = ui::MenuItem( menuText );
                                        gtk_widget_show( item );
                                        gtk_container_add( GTK_CONTAINER( menu ), item );
 
-                                       subMenu = gtk_menu_new();
+                                       subMenu = ui::Menu();
                                        gtk_menu_item_set_submenu( GTK_MENU_ITEM( item ), subMenu );
                                        menuStack.push( menu );
                                        menu = subMenu;
@@ -100,7 +99,7 @@ void PlugInMenu_Add( GtkMenu* plugin_menu, IPlugIn* pPlugIn ){
                                }
                                else
                                {
-                                       item = gtk_menu_item_new_with_label( menuText );
+                                       item = ui::MenuItem( menuText );
                                        g_object_set_data( G_OBJECT( item ),"command", const_cast<gpointer>( static_cast<const void*>( menuCommand ) ) );
                                        g_signal_connect( G_OBJECT( item ), "activate", G_CALLBACK( plugin_activated ), gint_to_pointer( m_nNextPlugInID ) );
                                }
@@ -147,11 +146,11 @@ public:
 void PluginsMenu_clear(){
        m_nNextPlugInID = 0;
 
-       GList* lst = g_list_find( gtk_container_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 ) ), GTK_WIDGET( g_plugins_menu_separator ) );
        while ( lst->next )
        {
                gtk_container_remove( GTK_CONTAINER( g_plugins_menu ), GTK_WIDGET( lst->next->data ) );
-               lst = g_list_find( gtk_container_children( GTK_CONTAINER( g_plugins_menu ) ),  GTK_WIDGET( g_plugins_menu_separator ) );
+               lst = g_list_find( gtk_container_get_children( GTK_CONTAINER( g_plugins_menu ) ),  GTK_WIDGET( g_plugins_menu_separator ) );
        }
 }