- gtk_box_pack_start( GTK_BOX( vbox2 ), zlist, TRUE, FALSE, 0 );
-
- menu = gtk_menu_new();
- gtk_widget_show( menu );
- gtk_option_menu_set_menu( GTK_OPTION_MENU( zlist ), menu );
-
- item = gtk_menu_item_new_with_label( "Z-Buffer Test and Write (recommended for solid or no polygons)" );
- gtk_widget_show( item );
- gtk_signal_connect( GTK_OBJECT( item ), "activate",
- GTK_SIGNAL_FUNC( OnSelchangeZbuffer ), GINT_TO_POINTER( 0 ) );
- gtk_menu_append( GTK_MENU( menu ), item );
-
- item = gtk_menu_item_new_with_label( "Z-Buffer Test Only (recommended for transparent polygons)" );
- gtk_widget_show( item );
- gtk_signal_connect( GTK_OBJECT( item ), "activate",
- GTK_SIGNAL_FUNC( OnSelchangeZbuffer ), GINT_TO_POINTER( 1 ) );
- gtk_menu_append( GTK_MENU( menu ), item );
-
- item = gtk_menu_item_new_with_label( "Z-Buffer Off" );
- gtk_widget_show( item );
- gtk_signal_connect( GTK_OBJECT( item ), "activate",
- GTK_SIGNAL_FUNC( OnSelchangeZbuffer ), GINT_TO_POINTER( 2 ) );
- gtk_menu_append( GTK_MENU( menu ), item );
-
- table = gtk_table_new( 2, 2, FALSE );
+ vbox2.pack_start( zlist, TRUE, FALSE, 0 );
+
+ gtk_combo_box_text_append_text(zlist, "Z-Buffer Test and Write (recommended for solid or no polygons)");
+ gtk_combo_box_text_append_text(zlist, "Z-Buffer Test Only (recommended for transparent polygons)");
+ gtk_combo_box_text_append_text(zlist, "Z-Buffer Off");
+
+ zlist.connect("changed", G_CALLBACK(+[](GtkComboBox *self, void *) {
+ OnSelchangeZbuffer(GTK_WIDGET(self), GINT_TO_POINTER(gtk_combo_box_get_active(self)));
+ }), nullptr);
+
+ table = ui::Table( 2, 2, FALSE );