- GtkWidget* vbox, *hbox, *table, *label;
- GtkWidget* button, *check, *entry;
-
- GtkWindow* dlg = create_floating_window("Find / Replace Texture(s)", m_parent);
-
- hbox = gtk_hbox_new (FALSE, 5);
- gtk_widget_show (hbox);
- gtk_container_add(GTK_CONTAINER(dlg), GTK_WIDGET(hbox));
- gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);
-
- vbox = gtk_vbox_new (FALSE, 5);
- gtk_widget_show (vbox);
- gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(vbox), TRUE, TRUE, 0);
-
- table = gtk_table_new (2, 2, FALSE);
- gtk_widget_show (table);
- gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(table), TRUE, TRUE, 0);
- gtk_table_set_row_spacings (GTK_TABLE (table), 5);
- gtk_table_set_col_spacings (GTK_TABLE (table), 5);
-
- label = gtk_label_new ("Find:");
- gtk_widget_show (label);
- gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1,
- (GtkAttachOptions) (GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
- gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
-
- label = gtk_label_new ("Replace:");
- gtk_widget_show (label);
- gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2,
- (GtkAttachOptions) (GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
- gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
-
- entry = gtk_entry_new();
- gtk_widget_show (entry);
- gtk_table_attach (GTK_TABLE (table), entry, 1, 2, 0, 1,
- (GtkAttachOptions) (GTK_EXPAND|GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
- g_signal_connect(G_OBJECT(entry), "focus_in_event",
- G_CALLBACK(find_focus_in), 0);
- AddDialogData(*GTK_ENTRY(entry), m_strFind);
- GlobalTextureEntryCompletion::instance().connect(GTK_ENTRY(entry));
-
- entry = gtk_entry_new();
- gtk_widget_show (entry);
- gtk_table_attach (GTK_TABLE (table), entry, 1, 2, 1, 2,
- (GtkAttachOptions) (GTK_EXPAND|GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
- g_signal_connect(G_OBJECT(entry), "focus_in_event",
- G_CALLBACK(replace_focus_in), 0);
- AddDialogData(*GTK_ENTRY(entry), m_strReplace);
- GlobalTextureEntryCompletion::instance().connect(GTK_ENTRY(entry));
-
- check = gtk_check_button_new_with_label ("Within selected brushes only");
- gtk_widget_show (check);
- gtk_box_pack_start(GTK_BOX(vbox), check, TRUE, TRUE, 0);
- AddDialogData(*GTK_TOGGLE_BUTTON(check), m_bSelectedOnly);
-
- vbox = gtk_vbox_new (FALSE, 5);
- gtk_widget_show (vbox);
- gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(vbox), FALSE, FALSE, 0);
-
- button = gtk_button_new_with_label ("Apply");
- gtk_widget_show (button);
- gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 0);
- g_signal_connect(G_OBJECT(button), "clicked",
- G_CALLBACK(OnApply), 0);
- gtk_widget_set_usize (button, 60, -2);
-
- button = gtk_button_new_with_label ("Close");
- gtk_widget_show (button);
- gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 0);
- g_signal_connect(G_OBJECT(button), "clicked",
- G_CALLBACK(OnClose), 0);
- gtk_widget_set_usize (button, 60, -2);
-
- return dlg;
+ ui::Widget label{ui::null};
+ ui::Widget button{ui::null};
+ ui::Entry entry{ui::null};
+
+ auto dlg = ui::Window(create_floating_window("Find / Replace Texture(s)", m_parent));
+
+ auto hbox = ui::HBox(FALSE, 5);
+ hbox.show();
+ dlg.add(hbox);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
+
+ auto vbox = ui::VBox(FALSE, 5);
+ vbox.show();
+ hbox.pack_start(vbox, TRUE, TRUE, 0);
+
+ auto table = ui::Table(2, 2, FALSE);
+ table.show();
+ vbox.pack_start(table, TRUE, TRUE, 0);
+ gtk_table_set_row_spacings(table, 5);
+ gtk_table_set_col_spacings(table, 5);
+
+ label = ui::Label("Find:");
+ label.show();
+ table.attach(label, {0, 1, 0, 1}, {GTK_FILL, 0});
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
+
+ label = ui::Label("Replace:");
+ label.show();
+ table.attach(label, {0, 1, 1, 2}, {GTK_FILL, 0});
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
+
+ entry = ui::Entry(ui::New);
+ entry.show();
+ table.attach(entry, {1, 2, 0, 1}, {GTK_EXPAND | GTK_FILL, 0});
+ entry.connect("focus_in_event",
+ G_CALLBACK(find_focus_in), 0);
+ AddDialogData(entry, m_strFind);
+ GlobalTextureEntryCompletion::instance().connect(entry);
+
+ entry = ui::Entry(ui::New);
+ entry.show();
+ table.attach(entry, {1, 2, 1, 2}, {GTK_EXPAND | GTK_FILL, 0});
+ entry.connect("focus_in_event",
+ G_CALLBACK(replace_focus_in), 0);
+ AddDialogData(entry, m_strReplace);
+ GlobalTextureEntryCompletion::instance().connect(entry);
+
+ auto check = ui::CheckButton("Within selected brushes only");
+ check.show();
+ vbox.pack_start(check, TRUE, TRUE, 0);
+ AddDialogData(check, m_bSelectedOnly);
+
+ vbox = ui::VBox(FALSE, 5);
+ vbox.show();
+ hbox.pack_start(vbox, FALSE, FALSE, 0);
+
+ button = ui::Button("Apply");
+ button.show();
+ vbox.pack_start(button, FALSE, FALSE, 0);
+ button.connect("clicked",
+ G_CALLBACK(OnApply), 0);
+ button.dimensions(60, -1);
+
+ button = ui::Button("Close");
+ button.show();
+ vbox.pack_start(button, FALSE, FALSE, 0);
+ button.connect("clicked",
+ G_CALLBACK(OnClose), 0);
+ button.dimensions(60, -1);
+
+ return dlg;