]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/commands.cpp
GTK: wrap GTK_WIDGET
[xonotic/netradiant.git] / radiant / commands.cpp
index b3def079e8642c4fee4c78b840d33b47d869a9f0..02ad4447274eb5003779d7e14ad5dabdb1695957 100644 (file)
@@ -165,7 +165,7 @@ struct command_list_dialog_t : public ModalDialog
        }
        ModalDialogButton m_close_button;
 
-       GtkTreeView *m_list;
+       ui::TreeView m_list;
        GtkTreeIter m_command_iter;
        GtkTreeModel *m_model;
        bool m_waiting_for_key;
@@ -178,7 +178,7 @@ void accelerator_clear_button_clicked( GtkButton *btn, gpointer dialogptr ){
                // just unhighlight, user wanted to cancel
                dialog.m_waiting_for_key = false;
                gtk_list_store_set( GTK_LIST_STORE( dialog.m_model ), &dialog.m_command_iter, 2, false, -1 );
-               gtk_widget_set_sensitive( GTK_WIDGET( dialog.m_list ), true );
+               gtk_widget_set_sensitive( dialog.m_list , true );
                dialog.m_model = NULL;
                return;
        }
@@ -223,7 +223,7 @@ void accelerator_edit_button_clicked( GtkButton *btn, gpointer dialogptr ){
        dialog.m_model = model;
 
        // 2. disallow changing the row
-       //gtk_widget_set_sensitive(GTK_WIDGET(dialog.m_list), false);
+       //gtk_widget_set_sensitive(dialog.m_list, false);
 
        // 3. highlight the row
        gtk_list_store_set( GTK_LIST_STORE( model ), &iter, 2, true, -1 );
@@ -274,7 +274,7 @@ bool accelerator_window_key_press( ui::Widget widget, GdkEventKey *event, gpoint
        Shortcuts::iterator thisShortcutIterator = g_shortcuts.find( commandName );
        if ( thisShortcutIterator == g_shortcuts.end() ) {
                gtk_list_store_set( GTK_LIST_STORE( dialog.m_model ), &dialog.m_command_iter, 2, false, -1 );
-               gtk_widget_set_sensitive( GTK_WIDGET( dialog.m_list ), true );
+               gtk_widget_set_sensitive( dialog.m_list , true );
                return true;
        }
 
@@ -341,7 +341,7 @@ public:
        GlobalShortcuts_foreach( verify_visitor );
 
        gtk_list_store_set( GTK_LIST_STORE( dialog.m_model ), &dialog.m_command_iter, 2, false, -1 );
-       gtk_widget_set_sensitive( GTK_WIDGET( dialog.m_list ), true );
+       gtk_widget_set_sensitive( dialog.m_list , true );
 
        if ( verify_visitor.allow ) {
                // clear the ACTUAL accelerator first
@@ -392,7 +392,7 @@ void DoCommandListDlg(){
                return accelerator_window_key_press(widget, event, dialogptr);
        }, &dialog);
 
-       auto accel = ui::AccelGroup();
+       auto accel = ui::AccelGroup(ui::New);
        window.add_accel_group( accel );
 
        auto hbox = create_dialog_hbox( 4, 4 );
@@ -400,24 +400,24 @@ void DoCommandListDlg(){
 
        {
                auto scr = create_scrolled_window( ui::Policy::NEVER, ui::Policy::AUTOMATIC );
-               gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( scr ), TRUE, TRUE, 0 );
+               hbox.pack_start( scr, TRUE, TRUE, 0 );
 
                {
                        ui::ListStore store = ui::ListStore(gtk_list_store_new( 4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_INT ));
 
-                       ui::Widget view = ui::TreeView(ui::TreeModel(GTK_TREE_MODEL(store)));
-                       dialog.m_list = GTK_TREE_VIEW( view );
+                       auto view = ui::TreeView(ui::TreeModel(GTK_TREE_MODEL(store)));
+                       dialog.m_list = view;
 
                        gtk_tree_view_set_enable_search( GTK_TREE_VIEW( view ), false ); // annoying
 
                        {
-                               auto renderer = ui::CellRendererText();
+                               auto renderer = ui::CellRendererText(ui::New);
                                GtkTreeViewColumn* column = ui::TreeViewColumn( "Command", renderer, {{"text", 0}, {"weight-set", 2}, {"weight", 3}} );
                                gtk_tree_view_append_column( GTK_TREE_VIEW( view ), column );
                        }
 
                        {
-                               auto renderer = ui::CellRendererText();
+                               auto renderer = ui::CellRendererText(ui::New);
                                GtkTreeViewColumn* column = ui::TreeViewColumn( "Key", renderer, {{"text", 1}, {"weight-set", 2}, {"weight", 3}} );
                                gtk_tree_view_append_column( GTK_TREE_VIEW( view ), column );
                        }
@@ -441,11 +441,7 @@ public:
                                        StringOutputStream modifiers;
                                        modifiers << accelerator;
 
-                                       {
-                                               GtkTreeIter iter;
-                                               gtk_list_store_append( m_store, &iter );
-                                               gtk_list_store_set( m_store, &iter, 0, name, 1, modifiers.c_str(), 2, false, 3, 800, -1 );
-                                       }
+                                       m_store.append(0, name, 1, modifiers.c_str(), 2, false, 3, 800);
 
                                        if ( !m_commandList.failed() ) {
                                                int l = strlen( name );
@@ -460,33 +456,33 @@ public:
                                GlobalShortcuts_foreach( visitor );
                        }
 
-                       g_object_unref( G_OBJECT( store ) );
+                       store.unref();
                }
        }
 
-       GtkVBox* vbox = create_dialog_vbox( 4 );
-       gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( vbox ), TRUE, TRUE, 0 );
+       auto vbox = create_dialog_vbox( 4 );
+       hbox.pack_start( vbox, TRUE, TRUE, 0 );
        {
-               GtkButton* editbutton = create_dialog_button( "Edit", (GCallback) accelerator_edit_button_clicked, &dialog );
-               gtk_box_pack_start( GTK_BOX( vbox ), GTK_WIDGET( editbutton ), FALSE, FALSE, 0 );
+               auto editbutton = create_dialog_button( "Edit", (GCallback) accelerator_edit_button_clicked, &dialog );
+               vbox.pack_start( editbutton, FALSE, FALSE, 0 );
 
-               GtkButton* clearbutton = create_dialog_button( "Clear", (GCallback) accelerator_clear_button_clicked, &dialog );
-               gtk_box_pack_start( GTK_BOX( vbox ), GTK_WIDGET( clearbutton ), FALSE, FALSE, 0 );
+               auto clearbutton = create_dialog_button( "Clear", (GCallback) accelerator_clear_button_clicked, &dialog );
+               vbox.pack_start( clearbutton, FALSE, FALSE, 0 );
 
-               ui::Widget spacer = ui::Image();
+               ui::Widget spacer = ui::Image(ui::New);
                spacer.show();
-               gtk_box_pack_start( GTK_BOX( vbox ), GTK_WIDGET( spacer ), TRUE, TRUE, 0 );
+               vbox.pack_start( spacer, TRUE, TRUE, 0 );
 
                auto button = create_modal_dialog_button( "Close", dialog.m_close_button );
-               gtk_box_pack_start( GTK_BOX( vbox ), GTK_WIDGET( button ), FALSE, FALSE, 0 );
+               vbox.pack_start( button, FALSE, FALSE, 0 );
                widget_make_default( button );
-               gtk_widget_grab_default( GTK_WIDGET( button ) );
-               gtk_widget_add_accelerator( GTK_WIDGET( button ), "clicked", accel, GDK_Return, (GdkModifierType)0, (GtkAccelFlags)0 );
-               gtk_widget_add_accelerator( GTK_WIDGET( button ), "clicked", accel, GDK_Escape, (GdkModifierType)0, (GtkAccelFlags)0 );
+               gtk_widget_grab_default( button  );
+               gtk_widget_add_accelerator( button , "clicked", accel, GDK_KEY_Return, (GdkModifierType)0, (GtkAccelFlags)0 );
+               gtk_widget_add_accelerator( button , "clicked", accel, GDK_KEY_Escape, (GdkModifierType)0, (GtkAccelFlags)0 );
        }
 
        modal_dialog_show( window, dialog );
-       gtk_widget_destroy( GTK_WIDGET( window ) );
+       window.destroy();
 }
 
 #include "profile/profile.h"