]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/commands.cpp
Wrap more GTK
[xonotic/netradiant.git] / radiant / commands.cpp
index 968d5c55f7357994db3926c29c31ef87c328dd01..6b42e65a785627af0a755c205e0370e1d2139e07 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "commands.h"
 
+#include "gtk/gtk.h"
 #include "debugging/debugging.h"
 #include "warnings.h"
 
@@ -28,7 +29,6 @@
 #include "string/string.h"
 #include "versionlib.h"
 #include "gtkutil/messagebox.h"
-#include <gtk/gtk.h>
 #include "gtkmisc.h"
 
 typedef std::pair<Accelerator, int> ShortcutValue; // accelerator, isRegistered
@@ -392,18 +392,18 @@ 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 );
 
-       GtkHBox* hbox = create_dialog_hbox( 4, 4 );
-       gtk_container_add( GTK_CONTAINER( window ), GTK_WIDGET( hbox ) );
+       auto hbox = create_dialog_hbox( 4, 4 );
+       window.add(hbox);
 
        {
-               GtkScrolledWindow* scr = create_scrolled_window( GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC );
+               auto scr = create_scrolled_window( ui::Policy::NEVER, ui::Policy::AUTOMATIC );
                gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( scr ), TRUE, TRUE, 0 );
 
                {
-                       GtkListStore* store = gtk_list_store_new( 4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_INT );
+                       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 );
@@ -411,19 +411,19 @@ void DoCommandListDlg(){
                        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 );
                        }
 
-                       gtk_widget_show( view );
-                       gtk_container_add( GTK_CONTAINER( scr ), view );
+                       view.show();
+                       scr.add(view);
 
                        {
                                // Initialize dialog
@@ -433,19 +433,15 @@ void DoCommandListDlg(){
                                class BuildCommandList : public CommandVisitor
                                {
                                TextFileOutputStream m_commandList;
-                               GtkListStore* m_store;
+                               ui::ListStore m_store;
 public:
-                               BuildCommandList( const char* filename, GtkListStore* store ) : m_commandList( filename ), m_store( store ){
+                               BuildCommandList( const char* filename, ui::ListStore store ) : m_commandList( filename ), m_store( store ){
                                }
                                void visit( const char* name, Accelerator& accelerator ){
                                        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,7 +456,7 @@ public:
                                GlobalShortcuts_foreach( visitor );
                        }
 
-                       g_object_unref( G_OBJECT( store ) );
+                       store.unref();
                }
        }
 
@@ -473,20 +469,20 @@ public:
                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 );
 
-               ui::Widget spacer = ui::Image();
-               gtk_widget_show( spacer );
+               ui::Widget spacer = ui::Image(ui::New);
+               spacer.show();
                gtk_box_pack_start( GTK_BOX( vbox ), GTK_WIDGET( spacer ), TRUE, TRUE, 0 );
 
-               GtkButton* button = create_modal_dialog_button( "Close", dialog.m_close_button );
+               auto button = create_modal_dialog_button( "Close", dialog.m_close_button );
                gtk_box_pack_start( GTK_BOX( vbox ), GTK_WIDGET( button ), FALSE, FALSE, 0 );
-               widget_make_default( GTK_WIDGET( button ) );
+               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_add_accelerator( GTK_WIDGET( button ), "clicked", accel, GDK_KEY_Return, (GdkModifierType)0, (GtkAccelFlags)0 );
+               gtk_widget_add_accelerator( GTK_WIDGET( 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"