Allow the routing window to be resized and give it scrollbars
This commit is contained in:
@@ -429,6 +429,24 @@ static gboolean window_levels_close_request(GtkWindow *w, gpointer data) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// wrap a scrolled window around the controls
|
||||||
|
static void create_scrollable_window(GtkWidget *window, GtkWidget *controls) {
|
||||||
|
GtkWidget *scrolled_window = gtk_scrolled_window_new();
|
||||||
|
|
||||||
|
gtk_scrolled_window_set_policy(
|
||||||
|
GTK_SCROLLED_WINDOW(scrolled_window),
|
||||||
|
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC
|
||||||
|
);
|
||||||
|
gtk_scrolled_window_set_child(
|
||||||
|
GTK_SCROLLED_WINDOW(scrolled_window), controls
|
||||||
|
);
|
||||||
|
gtk_scrolled_window_set_propagate_natural_height(GTK_SCROLLED_WINDOW(scrolled_window), TRUE);
|
||||||
|
gtk_scrolled_window_set_propagate_natural_width(GTK_SCROLLED_WINDOW(scrolled_window), TRUE);
|
||||||
|
|
||||||
|
gtk_window_set_child(GTK_WINDOW(window), scrolled_window);
|
||||||
|
gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
GtkWidget *create_iface_mixer_main(struct alsa_card *card) {
|
GtkWidget *create_iface_mixer_main(struct alsa_card *card) {
|
||||||
card->has_speaker_switching =
|
card->has_speaker_switching =
|
||||||
!!get_elem_by_name(card->elems, "Speaker Switching Playback Enum");
|
!!get_elem_by_name(card->elems, "Speaker Switching Playback Enum");
|
||||||
@@ -445,7 +463,7 @@ GtkWidget *create_iface_mixer_main(struct alsa_card *card) {
|
|||||||
card, "Routing", G_CALLBACK(window_routing_close_request)
|
card, "Routing", G_CALLBACK(window_routing_close_request)
|
||||||
);
|
);
|
||||||
|
|
||||||
gtk_window_set_child(GTK_WINDOW(card->window_routing), routing_top);
|
create_scrollable_window(card->window_routing, routing_top);
|
||||||
|
|
||||||
GtkWidget *mixer_top = create_mixer_controls(card);
|
GtkWidget *mixer_top = create_mixer_controls(card);
|
||||||
|
|
||||||
|
|||||||
@@ -256,6 +256,9 @@ static GtkWidget *make_preset_menu_button(struct alsa_card *card) {
|
|||||||
static void create_routing_grid(struct alsa_card *card) {
|
static void create_routing_grid(struct alsa_card *card) {
|
||||||
GtkWidget *routing_grid = card->routing_grid = gtk_grid_new();
|
GtkWidget *routing_grid = card->routing_grid = gtk_grid_new();
|
||||||
|
|
||||||
|
gtk_widget_set_halign(routing_grid, GTK_ALIGN_CENTER);
|
||||||
|
gtk_widget_set_valign(routing_grid, GTK_ALIGN_CENTER);
|
||||||
|
|
||||||
GtkWidget *preset_menu_button = make_preset_menu_button(card);
|
GtkWidget *preset_menu_button = make_preset_menu_button(card);
|
||||||
gtk_grid_attach(
|
gtk_grid_attach(
|
||||||
GTK_GRID(routing_grid), preset_menu_button, 0, 0, 1, 1
|
GTK_GRID(routing_grid), preset_menu_button, 0, 0, 1, 1
|
||||||
|
|||||||
Reference in New Issue
Block a user