Remove repeated group by code in create_routing_grid()

Create create_routing_group_grid() to remove repeated code from
create_routing_grid().
This commit is contained in:
Geoffrey D. Bennett
2023-11-30 00:43:01 +10:30
parent 9890b4939b
commit aba34f0648
2 changed files with 50 additions and 38 deletions

View File

@@ -1,3 +1,10 @@
.routing-group {
background: #EEE;
padding: 5px;
border: 1px solid #DDD;
border-radius: 5px;
}
.route-label { .route-label {
font-size: smaller; font-size: smaller;
border-radius: 3px; border-radius: 3px;

View File

@@ -253,6 +253,30 @@ static GtkWidget *make_preset_menu_button(struct alsa_card *card) {
return button; return button;
} }
static GtkWidget *create_routing_group_grid(
struct alsa_card *card,
char *name,
GtkOrientation orientation
) {
GtkWidget *grid = gtk_grid_new();
gtk_widget_set_name(grid, name);
gtk_widget_add_css_class(grid, "routing-group");
gtk_grid_set_spacing(GTK_GRID(grid), 2);
if (orientation == GTK_ORIENTATION_HORIZONTAL) {
gtk_widget_set_halign(grid, GTK_ALIGN_CENTER);
gtk_widget_set_valign(grid, GTK_ALIGN_FILL);
gtk_widget_set_hexpand(grid, TRUE);
} else {
gtk_widget_set_halign(grid, GTK_ALIGN_FILL);
gtk_widget_set_valign(grid, GTK_ALIGN_CENTER);
gtk_widget_set_vexpand(grid, TRUE);
}
return grid;
}
static void create_routing_grid(struct alsa_card *card) { static void create_routing_grid(struct alsa_card *card) {
GtkGrid *routing_grid = GTK_GRID(card->routing_grid = gtk_grid_new()); GtkGrid *routing_grid = GTK_GRID(card->routing_grid = gtk_grid_new());
@@ -264,12 +288,25 @@ static void create_routing_grid(struct alsa_card *card) {
routing_grid, preset_menu_button, 0, 0, 1, 1 routing_grid, preset_menu_button, 0, 0, 1, 1
); );
card->routing_hw_in_grid = gtk_grid_new(); card->routing_hw_in_grid = create_routing_group_grid(
card->routing_pcm_in_grid = gtk_grid_new(); card, "routing_hw_in_grid", GTK_ORIENTATION_VERTICAL
card->routing_pcm_out_grid = gtk_grid_new(); );
card->routing_hw_out_grid = gtk_grid_new(); card->routing_pcm_in_grid = create_routing_group_grid(
card->routing_mixer_in_grid = gtk_grid_new(); card, "routing_pcm_in_grid", GTK_ORIENTATION_VERTICAL
card->routing_mixer_out_grid = gtk_grid_new(); );
card->routing_pcm_out_grid = create_routing_group_grid(
card, "routing_pcm_out_grid", GTK_ORIENTATION_VERTICAL
);
card->routing_hw_out_grid = create_routing_group_grid(
card, "routing_hw_out_grid", GTK_ORIENTATION_VERTICAL
);
card->routing_mixer_in_grid = create_routing_group_grid(
card, "routing_mixer_in_grid", GTK_ORIENTATION_HORIZONTAL
);
card->routing_mixer_out_grid = create_routing_group_grid(
card, "routing_mixer_out_grid", GTK_ORIENTATION_HORIZONTAL
);
gtk_grid_attach( gtk_grid_attach(
routing_grid, card->routing_hw_in_grid, 0, 1, 1, 1 routing_grid, card->routing_hw_in_grid, 0, 1, 1, 1
); );
@@ -290,38 +327,6 @@ static void create_routing_grid(struct alsa_card *card) {
); );
gtk_widget_set_margin(card->routing_grid, 10); gtk_widget_set_margin(card->routing_grid, 10);
gtk_grid_set_spacing(routing_grid, 10); gtk_grid_set_spacing(routing_grid, 10);
gtk_grid_set_spacing(GTK_GRID(card->routing_hw_in_grid), 2);
gtk_grid_set_spacing(GTK_GRID(card->routing_pcm_in_grid), 2);
gtk_grid_set_spacing(GTK_GRID(card->routing_pcm_out_grid), 2);
gtk_grid_set_spacing(GTK_GRID(card->routing_hw_out_grid), 2);
gtk_grid_set_spacing(GTK_GRID(card->routing_mixer_in_grid), 2);
gtk_grid_set_spacing(GTK_GRID(card->routing_mixer_out_grid), 10);
gtk_grid_set_row_spacing(GTK_GRID(card->routing_mixer_out_grid), 2);
gtk_grid_set_column_spacing(GTK_GRID(card->routing_mixer_out_grid), 10);
gtk_widget_set_vexpand(card->routing_hw_in_grid, TRUE);
gtk_widget_set_vexpand(card->routing_pcm_in_grid, TRUE);
gtk_widget_set_vexpand(card->routing_pcm_out_grid, TRUE);
gtk_widget_set_vexpand(card->routing_hw_out_grid, TRUE);
gtk_widget_set_hexpand(card->routing_mixer_in_grid, TRUE);
gtk_widget_set_hexpand(card->routing_mixer_out_grid, TRUE);
gtk_widget_set_align(
card->routing_hw_in_grid, GTK_ALIGN_FILL, GTK_ALIGN_CENTER
);
gtk_widget_set_align(
card->routing_pcm_in_grid, GTK_ALIGN_FILL, GTK_ALIGN_CENTER
);
gtk_widget_set_align(
card->routing_hw_out_grid, GTK_ALIGN_FILL, GTK_ALIGN_CENTER
);
gtk_widget_set_align(
card->routing_pcm_out_grid, GTK_ALIGN_FILL, GTK_ALIGN_CENTER
);
gtk_widget_set_align(
card->routing_mixer_in_grid, GTK_ALIGN_CENTER, GTK_ALIGN_END
);
gtk_widget_set_align(
card->routing_mixer_out_grid, GTK_ALIGN_CENTER, GTK_ALIGN_START
);
routing_grid_label( routing_grid_label(
"Hardware Inputs", GTK_GRID(card->routing_hw_in_grid), GTK_ALIGN_END "Hardware Inputs", GTK_GRID(card->routing_hw_in_grid), GTK_ALIGN_END