]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/select.cpp
GTK: wrap gtk_box_pack_start
[xonotic/netradiant.git] / radiant / select.cpp
index d2cfed61039fea935fe7dac8458dc561521224dd..33813fdb64af933aaafdf7d19417af9226eea0ad 100644 (file)
@@ -21,6 +21,8 @@
 
 #include "select.h"
 
+#include <gtk/gtk.h>
+
 #include "debugging/debugging.h"
 
 #include "ientity.h"
@@ -866,7 +868,7 @@ struct RotateDialog
        GtkSpinButton* x;
        GtkSpinButton* y;
        GtkSpinButton* z;
-       ui::Window window;
+       ui::Window window{ui::null};
 };
 
 static gboolean rotatedlg_apply( ui::Widget widget, RotateDialog* rotateDialog ){
@@ -885,7 +887,7 @@ static gboolean rotatedlg_apply( ui::Widget widget, RotateDialog* rotateDialog )
 }
 
 static gboolean rotatedlg_cancel( ui::Widget widget, RotateDialog* rotateDialog ){
-       gtk_widget_hide( GTK_WIDGET( rotateDialog->window ) );
+       rotateDialog->window.hide();
 
        gtk_spin_button_set_value( rotateDialog->x, 0.0f ); // reset to 0 on close
        gtk_spin_button_set_value( rotateDialog->y, 0.0f );
@@ -896,7 +898,7 @@ static gboolean rotatedlg_cancel( ui::Widget widget, RotateDialog* rotateDialog
 
 static gboolean rotatedlg_ok( ui::Widget widget, RotateDialog* rotateDialog ){
        rotatedlg_apply( widget, rotateDialog );
-       gtk_widget_hide( GTK_WIDGET( rotateDialog->window ) );
+       rotateDialog->window.hide();
        return TRUE;
 }
 
@@ -910,15 +912,15 @@ void DoRotateDlg(){
        if ( !g_rotate_dialog.window ) {
                g_rotate_dialog.window = MainFrame_getWindow().create_dialog_window("Arbitrary rotation", G_CALLBACK(rotatedlg_delete ), &g_rotate_dialog );
 
-               auto accel = ui::AccelGroup();
+               auto accel = ui::AccelGroup(ui::New);
                g_rotate_dialog.window.add_accel_group( accel );
 
                {
-                       GtkHBox* hbox = create_dialog_hbox( 4, 4 );
-                       gtk_container_add( GTK_CONTAINER( g_rotate_dialog.window ), GTK_WIDGET( hbox ) );
+                       auto hbox = create_dialog_hbox( 4, 4 );
+                       g_rotate_dialog.window.add(hbox);
                        {
-                               GtkTable* table = create_dialog_table( 3, 2, 4, 4 );
-                               gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( table ), TRUE, TRUE, 0 );
+                               auto table = create_dialog_table( 3, 2, 4, 4 );
+                               hbox.pack_start( table, TRUE, TRUE, 0 );
                                {
                                        ui::Widget label = ui::Label( "  X  " );
                                        label.show();
@@ -980,22 +982,22 @@ void DoRotateDlg(){
                                }
                        }
                        {
-                               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 );
                                {
                                        auto button = create_dialog_button( "OK", G_CALLBACK( rotatedlg_ok ), &g_rotate_dialog );
-                                       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_add_accelerator( GTK_WIDGET( button ), "clicked", accel, GDK_Return, (GdkModifierType)0, (GtkAccelFlags)0 );
+                                       gtk_widget_add_accelerator( GTK_WIDGET( button ), "clicked", accel, GDK_KEY_Return, (GdkModifierType)0, (GtkAccelFlags)0 );
                                }
                                {
-                                       GtkButton* button = create_dialog_button( "Cancel", G_CALLBACK( rotatedlg_cancel ), &g_rotate_dialog );
-                                       gtk_box_pack_start( GTK_BOX( vbox ), GTK_WIDGET( button ), FALSE, FALSE, 0 );
-                                       gtk_widget_add_accelerator( GTK_WIDGET( button ), "clicked", accel, GDK_Escape, (GdkModifierType)0, (GtkAccelFlags)0 );
+                                       auto button = create_dialog_button( "Cancel", G_CALLBACK( rotatedlg_cancel ), &g_rotate_dialog );
+                                       vbox.pack_start( button, FALSE, FALSE, 0 );
+                                       gtk_widget_add_accelerator( GTK_WIDGET( button ), "clicked", accel, GDK_KEY_Escape, (GdkModifierType)0, (GtkAccelFlags)0 );
                                }
                                {
-                                       GtkButton* button = create_dialog_button( "Apply", G_CALLBACK( rotatedlg_apply ), &g_rotate_dialog );
-                                       gtk_box_pack_start( GTK_BOX( vbox ), GTK_WIDGET( button ), FALSE, FALSE, 0 );
+                                       auto button = create_dialog_button( "Apply", G_CALLBACK( rotatedlg_apply ), &g_rotate_dialog );
+                                       vbox.pack_start( button, FALSE, FALSE, 0 );
                                }
                        }
                }
@@ -1014,10 +1016,10 @@ void DoRotateDlg(){
 
 struct ScaleDialog
 {
-       ui::Widget x;
-       ui::Widget y;
-       ui::Widget z;
-       ui::Window window;
+       ui::Entry x{ui::null};
+       ui::Entry y{ui::null};
+       ui::Entry z{ui::null};
+       ui::Window window{ui::null};
 };
 
 static gboolean scaledlg_apply( ui::Widget widget, ScaleDialog* scaleDialog ){
@@ -1037,18 +1039,18 @@ static gboolean scaledlg_apply( ui::Widget widget, ScaleDialog* scaleDialog ){
 }
 
 static gboolean scaledlg_cancel( ui::Widget widget, ScaleDialog* scaleDialog ){
-       gtk_widget_hide( GTK_WIDGET( scaleDialog->window ) );
+       scaleDialog->window.hide();
 
-       gtk_entry_set_text( GTK_ENTRY( scaleDialog->x ), "1.0" );
-       gtk_entry_set_text( GTK_ENTRY( scaleDialog->y ), "1.0" );
-       gtk_entry_set_text( GTK_ENTRY( scaleDialog->z ), "1.0" );
+       scaleDialog->x.text("1.0");
+       scaleDialog->y.text("1.0");
+       scaleDialog->z.text("1.0");
 
        return TRUE;
 }
 
 static gboolean scaledlg_ok( ui::Widget widget, ScaleDialog* scaleDialog ){
        scaledlg_apply( widget, scaleDialog );
-       gtk_widget_hide( GTK_WIDGET( scaleDialog->window ) );
+       scaleDialog->window.hide();
        return TRUE;
 }
 
@@ -1063,15 +1065,15 @@ void DoScaleDlg(){
        if ( !g_scale_dialog.window ) {
                g_scale_dialog.window = MainFrame_getWindow().create_dialog_window("Arbitrary scale", G_CALLBACK(scaledlg_delete ), &g_scale_dialog );
 
-               auto accel = ui::AccelGroup();
+               auto accel = ui::AccelGroup(ui::New);
                g_scale_dialog.window.add_accel_group( accel );
 
                {
-                       GtkHBox* hbox = create_dialog_hbox( 4, 4 );
-                       gtk_container_add( GTK_CONTAINER( g_scale_dialog.window ), GTK_WIDGET( hbox ) );
+                       auto hbox = create_dialog_hbox( 4, 4 );
+                       g_scale_dialog.window.add(hbox);
                        {
-                               GtkTable* table = create_dialog_table( 3, 2, 4, 4 );
-                               gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( table ), TRUE, TRUE, 0 );
+                               auto table = create_dialog_table( 3, 2, 4, 4 );
+                               hbox.pack_start( table, TRUE, TRUE, 0 );
                                {
                                        ui::Widget label = ui::Label( "  X  " );
                                        label.show();
@@ -1094,8 +1096,8 @@ void DoScaleDlg(){
                                                                          (GtkAttachOptions) ( 0 ), 0, 0 );
                                }
                                {
-                                       ui::Widget entry = ui::Entry();
-                                       gtk_entry_set_text( GTK_ENTRY( entry ), "1.0" );
+                                       auto entry = ui::Entry(ui::New);
+                                       entry.text("1.0");
                                        entry.show();
                                        gtk_table_attach( table, entry, 1, 2, 0, 1,
                                                                          (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
@@ -1104,8 +1106,8 @@ void DoScaleDlg(){
                                        g_scale_dialog.x = entry;
                                }
                                {
-                                       ui::Widget entry = ui::Entry();
-                                       gtk_entry_set_text( GTK_ENTRY( entry ), "1.0" );
+                                       auto entry = ui::Entry(ui::New);
+                                       entry.text("1.0");
                                        entry.show();
                                        gtk_table_attach( table, entry, 1, 2, 1, 2,
                                                                          (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
@@ -1114,8 +1116,8 @@ void DoScaleDlg(){
                                        g_scale_dialog.y = entry;
                                }
                                {
-                                       ui::Widget entry = ui::Entry();
-                                       gtk_entry_set_text( GTK_ENTRY( entry ), "1.0" );
+                                       auto entry = ui::Entry(ui::New);
+                                       entry.text("1.0");
                                        entry.show();
                                        gtk_table_attach( table, entry, 1, 2, 2, 3,
                                                                          (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
@@ -1125,22 +1127,22 @@ void DoScaleDlg(){
                                }
                        }
                        {
-                               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 );
                                {
                                        auto button = create_dialog_button( "OK", G_CALLBACK( scaledlg_ok ), &g_scale_dialog );
-                                       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_add_accelerator( GTK_WIDGET( button ), "clicked", accel, GDK_Return, (GdkModifierType)0, (GtkAccelFlags)0 );
+                                       gtk_widget_add_accelerator( GTK_WIDGET( button ), "clicked", accel, GDK_KEY_Return, (GdkModifierType)0, (GtkAccelFlags)0 );
                                }
                                {
-                                       GtkButton* button = create_dialog_button( "Cancel", G_CALLBACK( scaledlg_cancel ), &g_scale_dialog );
-                                       gtk_box_pack_start( GTK_BOX( vbox ), GTK_WIDGET( button ), FALSE, FALSE, 0 );
-                                       gtk_widget_add_accelerator( GTK_WIDGET( button ), "clicked", accel, GDK_Escape, (GdkModifierType)0, (GtkAccelFlags)0 );
+                                       auto button = create_dialog_button( "Cancel", G_CALLBACK( scaledlg_cancel ), &g_scale_dialog );
+                                       vbox.pack_start( button, FALSE, FALSE, 0 );
+                                       gtk_widget_add_accelerator( GTK_WIDGET( button ), "clicked", accel, GDK_KEY_Escape, (GdkModifierType)0, (GtkAccelFlags)0 );
                                }
                                {
-                                       GtkButton* button = create_dialog_button( "Apply", G_CALLBACK( scaledlg_apply ), &g_scale_dialog );
-                                       gtk_box_pack_start( GTK_BOX( vbox ), GTK_WIDGET( button ), FALSE, FALSE, 0 );
+                                       auto button = create_dialog_button( "Apply", G_CALLBACK( scaledlg_apply ), &g_scale_dialog );
+                                       vbox.pack_start( button, FALSE, FALSE, 0 );
                                }
                        }
                }