X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fnetradiant.git;a=blobdiff_plain;f=libs%2Fgtkutil%2Fmessagebox.cpp;h=56b401318e169d747674c2a4213bbf76e392cbd1;hp=8930145b25a639008e1bed9e9193874b523d366a;hb=a9e5bfdf2a458e89978ee52ebbd3711884b54b29;hpb=2c07c3a2aaa0b9b16a8fcd50259ebbf28d9f9dc9 diff --git a/libs/gtkutil/messagebox.cpp b/libs/gtkutil/messagebox.cpp index 8930145b..56b40131 100644 --- a/libs/gtkutil/messagebox.cpp +++ b/libs/gtkutil/messagebox.cpp @@ -27,10 +27,10 @@ #include "dialog.h" #include "widget.h" -GtkWidget* create_padding( int width, int height ){ +ui::Widget create_padding( int width, int height ){ ui::Alignment widget = ui::Alignment( 0.0, 0.0, 0.0, 0.0 ); - gtk_widget_show( widget ); - gtk_widget_set_size_request( widget, width, height ); + widget.show(); + widget.dimensions(width, height); return widget; } @@ -51,122 +51,120 @@ const char* messagebox_stock_icon( EMessageBoxIcon type ){ } } -EMessageBoxReturn gtk_MessageBox( ui::Widget parent, const char* text, const char* title, EMessageBoxType type, EMessageBoxIcon icon ){ +EMessageBoxReturn gtk_MessageBox( ui::Window parentWindow, const char* text, const char* title, EMessageBoxType type, EMessageBoxIcon icon ){ ModalDialog dialog; ModalDialogButton ok_button( dialog, eIDOK ); ModalDialogButton cancel_button( dialog, eIDCANCEL ); ModalDialogButton yes_button( dialog, eIDYES ); ModalDialogButton no_button( dialog, eIDNO ); - ui::Window parentWindow = ui::Window(parent ? GTK_WINDOW( parent ) : 0); - ui::Window window = create_fixedsize_modal_dialog_window( parentWindow, title, dialog, 400, 100 ); if ( parentWindow ) { - //g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(floating_window_delete_present), parent); + //window.connect( "delete_event", G_CALLBACK(floating_window_delete_present), parent); gtk_window_deiconify( parentWindow ); } - auto accel = ui::AccelGroup(); + auto accel = ui::AccelGroup(ui::New); window.add_accel_group( accel ); - GtkVBox* vbox = create_dialog_vbox( 8, 8 ); - gtk_container_add( GTK_CONTAINER( window ), GTK_WIDGET( vbox ) ); + auto vbox = create_dialog_vbox( 8, 8 ); + window.add(vbox); - GtkHBox* hboxDummy = create_dialog_hbox( 0, 0 ); - gtk_box_pack_start( GTK_BOX( vbox ), GTK_WIDGET( hboxDummy ), FALSE, FALSE, 0 ); + auto hboxDummy = create_dialog_hbox( 0, 0 ); + vbox.pack_start( hboxDummy, FALSE, FALSE, 0 ); - gtk_box_pack_start( GTK_BOX( hboxDummy ), create_padding( 0, 50 ), FALSE, FALSE, 0 ); // HACK to force minimum height + hboxDummy.pack_start( create_padding( 0, 50 ), FALSE, FALSE, 0 ); // HACK to force minimum height - GtkHBox* iconBox = create_dialog_hbox( 16, 0 ); - gtk_box_pack_start( GTK_BOX( hboxDummy ), GTK_WIDGET( iconBox ), FALSE, FALSE, 0 ); + auto iconBox = create_dialog_hbox( 16, 0 ); + hboxDummy.pack_start( iconBox, FALSE, FALSE, 0 ); - GtkImage* image = GTK_IMAGE( gtk_image_new_from_stock( messagebox_stock_icon( icon ), GTK_ICON_SIZE_DIALOG ) ); - gtk_widget_show( GTK_WIDGET( image ) ); - gtk_box_pack_start( GTK_BOX( iconBox ), GTK_WIDGET( image ), FALSE, FALSE, 0 ); + auto image = ui::Image(GTK_IMAGE( gtk_image_new_from_stock( messagebox_stock_icon( icon ), GTK_ICON_SIZE_DIALOG ) )); + image.show(); + iconBox.pack_start( image, FALSE, FALSE, 0 ); - GtkLabel* label = GTK_LABEL( ui::Label( text ) ); - gtk_widget_show( GTK_WIDGET( label ) ); + auto label = ui::Label( text ); + label.show(); gtk_misc_set_alignment( GTK_MISC( label ), 0, 0.5 ); gtk_label_set_justify( label, GTK_JUSTIFY_LEFT ); gtk_label_set_line_wrap( label, TRUE ); - gtk_box_pack_start( GTK_BOX( iconBox ), GTK_WIDGET( label ), TRUE, TRUE, 0 ); + iconBox.pack_start( label, TRUE, TRUE, 0 ); - GtkVBox* vboxDummy = create_dialog_vbox( 0, 0 ); - gtk_box_pack_start( GTK_BOX( vbox ), GTK_WIDGET( vboxDummy ), FALSE, FALSE, 0 ); + auto vboxDummy = create_dialog_vbox( 0, 0 ); + vbox.pack_start( vboxDummy, FALSE, FALSE, 0 ); - GtkAlignment* alignment = ui::Alignment( 0.5, 0.0, 0.0, 0.0 ); - gtk_widget_show( GTK_WIDGET( alignment ) ); - gtk_box_pack_start( GTK_BOX( vboxDummy ), GTK_WIDGET( alignment ), FALSE, FALSE, 0 ); + auto alignment = ui::Alignment( 0.5, 0.0, 0.0, 0.0 ); + alignment.show(); + vboxDummy.pack_start( alignment, FALSE, FALSE, 0 ); - GtkHBox* hbox = create_dialog_hbox( 8, 0 ); - gtk_container_add( GTK_CONTAINER( alignment ), GTK_WIDGET( hbox ) ); + auto hbox = create_dialog_hbox( 8, 0 ); + alignment.add(hbox); - gtk_box_pack_start( GTK_BOX( vboxDummy ), create_padding( 400, 0 ), FALSE, FALSE, 0 ); // HACK to force minimum width + vboxDummy.pack_start( create_padding( 400, 0 ), FALSE, FALSE, 0 ); // HACK to force minimum width if ( type == eMB_OK ) { - GtkButton* button = create_modal_dialog_button( "OK", ok_button ); - gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( button ), TRUE, FALSE, 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_Return, (GdkModifierType)0, (GtkAccelFlags)0 ); - widget_make_default( GTK_WIDGET( button ) ); - gtk_widget_show( GTK_WIDGET( button ) ); + auto button = create_modal_dialog_button( "OK", ok_button ); + hbox.pack_start( button, TRUE, FALSE, 0 ); + gtk_widget_add_accelerator( button , "clicked", accel, GDK_KEY_Escape, (GdkModifierType)0, (GtkAccelFlags)0 ); + gtk_widget_add_accelerator( button , "clicked", accel, GDK_KEY_Return, (GdkModifierType)0, (GtkAccelFlags)0 ); + widget_make_default( button ); + button.show(); dialog.ret = eIDOK; } else if ( type == eMB_OKCANCEL ) { { - GtkButton* button = create_modal_dialog_button( "OK", ok_button ); - gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( button ), TRUE, FALSE, 0 ); - gtk_widget_add_accelerator( GTK_WIDGET( button ), "clicked", accel, GDK_Return, (GdkModifierType)0, (GtkAccelFlags)0 ); - widget_make_default( GTK_WIDGET( button ) ); - gtk_widget_show( GTK_WIDGET( button ) ); + auto button = create_modal_dialog_button( "OK", ok_button ); + hbox.pack_start( button, TRUE, FALSE, 0 ); + gtk_widget_add_accelerator( button , "clicked", accel, GDK_KEY_Return, (GdkModifierType)0, (GtkAccelFlags)0 ); + widget_make_default( button ); + button.show(); } { - GtkButton* button = create_modal_dialog_button( "OK", cancel_button ); - gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( button ), TRUE, FALSE, 0 ); - gtk_widget_add_accelerator( GTK_WIDGET( button ), "clicked", accel, GDK_Escape, (GdkModifierType)0, (GtkAccelFlags)0 ); - gtk_widget_show( GTK_WIDGET( button ) ); + auto button = create_modal_dialog_button( "OK", cancel_button ); + hbox.pack_start( button, TRUE, FALSE, 0 ); + gtk_widget_add_accelerator( button , "clicked", accel, GDK_KEY_Escape, (GdkModifierType)0, (GtkAccelFlags)0 ); + button.show(); } dialog.ret = eIDCANCEL; } else if ( type == eMB_YESNOCANCEL ) { { - GtkButton* button = create_modal_dialog_button( "Yes", yes_button ); - gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( button ), TRUE, FALSE, 0 ); - widget_make_default( GTK_WIDGET( button ) ); - gtk_widget_show( GTK_WIDGET( button ) ); + auto button = create_modal_dialog_button( "Yes", yes_button ); + hbox.pack_start( button, TRUE, FALSE, 0 ); + widget_make_default( button ); + button.show(); } { - GtkButton* button = create_modal_dialog_button( "No", no_button ); - gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( button ), TRUE, FALSE, 0 ); - gtk_widget_show( GTK_WIDGET( button ) ); + auto button = create_modal_dialog_button( "No", no_button ); + hbox.pack_start( button, TRUE, FALSE, 0 ); + button.show(); } { - GtkButton* button = create_modal_dialog_button( "Cancel", cancel_button ); - gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( button ), TRUE, FALSE, 0 ); - gtk_widget_show( GTK_WIDGET( button ) ); + auto button = create_modal_dialog_button( "Cancel", cancel_button ); + hbox.pack_start( button, TRUE, FALSE, 0 ); + button.show(); } dialog.ret = eIDCANCEL; } else if ( type == eMB_NOYES ) { { - GtkButton* button = create_modal_dialog_button( "No", no_button ); - gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( button ), TRUE, FALSE, 0 ); - widget_make_default( GTK_WIDGET( button ) ); - gtk_widget_show( GTK_WIDGET( button ) ); + auto button = create_modal_dialog_button( "No", no_button ); + hbox.pack_start( button, TRUE, FALSE, 0 ); + widget_make_default( button ); + button.show(); } { - GtkButton* button = create_modal_dialog_button( "Yes", yes_button ); - gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( button ), TRUE, FALSE, 0 ); - gtk_widget_show( GTK_WIDGET( button ) ); + auto button = create_modal_dialog_button( "Yes", yes_button ); + hbox.pack_start( button, TRUE, FALSE, 0 ); + button.show(); } dialog.ret = eIDNO; @@ -174,23 +172,23 @@ EMessageBoxReturn gtk_MessageBox( ui::Widget parent, const char* text, const cha else /* if (type == eMB_YESNO) */ { { - GtkButton* button = create_modal_dialog_button( "Yes", yes_button ); - gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( button ), TRUE, FALSE, 0 ); - widget_make_default( GTK_WIDGET( button ) ); - gtk_widget_show( GTK_WIDGET( button ) ); + auto button = create_modal_dialog_button( "Yes", yes_button ); + hbox.pack_start( button, TRUE, FALSE, 0 ); + widget_make_default( button ); + button.show(); } { - GtkButton* button = create_modal_dialog_button( "No", no_button ); - gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( button ), TRUE, FALSE, 0 ); - gtk_widget_show( GTK_WIDGET( button ) ); + auto button = create_modal_dialog_button( "No", no_button ); + hbox.pack_start( button, TRUE, FALSE, 0 ); + button.show(); } dialog.ret = eIDNO; } modal_dialog_show( window, dialog ); - gtk_widget_destroy( GTK_WIDGET( window ) ); + window.destroy(); return dialog.ret; }