diff --git a/src/alsa.h b/src/alsa.h index 11315fa..00ad3e6 100644 --- a/src/alsa.h +++ b/src/alsa.h @@ -140,10 +140,6 @@ struct alsa_elem { // the callback functions for this ALSA control element GList *callbacks; - // for boolean buttons, the two possible texts - // for dual buttons, the four possible texts - const char *bool_text[4]; - // for simulated elements, the current state int writable; long value; diff --git a/src/widget-boolean.c b/src/widget-boolean.c index 93cbb53..1029acf 100644 --- a/src/widget-boolean.c +++ b/src/widget-boolean.c @@ -6,6 +6,7 @@ struct boolean { struct alsa_elem *elem; GtkWidget *button; + const char *text[2]; }; static void button_clicked(GtkWidget *widget, struct alsa_elem *elem) { @@ -38,7 +39,7 @@ static void toggle_button_updated( int value = !!alsa_get_elem_value(elem); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->button), value); - toggle_button_set_text(data->button, elem->bool_text[value]); + toggle_button_set_text(data->button, data->text[value]); } GtkWidget *make_boolean_alsa_elem( @@ -54,13 +55,13 @@ GtkWidget *make_boolean_alsa_elem( data->button, "clicked", G_CALLBACK(button_clicked), elem ); alsa_elem_add_callback(elem, toggle_button_updated, data); - elem->bool_text[0] = disabled_text; - elem->bool_text[1] = enabled_text; + data->text[0] = disabled_text; + data->text[1] = enabled_text; // find the maximum width and height of both possible labels int max_width = 0, max_height = 0; for (int i = 0; i < 2; i++) { - toggle_button_set_text(data->button, elem->bool_text[i]); + toggle_button_set_text(data->button, data->text[i]); GtkRequisition *size = gtk_requisition_new(); gtk_widget_get_preferred_size(data->button, size, NULL); diff --git a/src/widget-dual.c b/src/widget-dual.c index 80e5fbd..35a2066 100644 --- a/src/widget-dual.c +++ b/src/widget-dual.c @@ -7,6 +7,7 @@ struct dual_button { struct alsa_elem *elem; GtkWidget *button1; GtkWidget *button2; + const char *text[4]; }; static void dual_button_clicked(GtkWidget *widget, struct dual_button *data) { @@ -33,13 +34,13 @@ static void dual_button_updated( int value1 = !!value; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->button1), value1); - gtk_button_set_label(GTK_BUTTON(data->button1), elem->bool_text[value1]); + gtk_button_set_label(GTK_BUTTON(data->button1), data->text[value1]); gtk_widget_set_sensitive(data->button2, value1); if (value1) { int value2 = value - 1; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->button2), value2); gtk_button_set_label( - GTK_BUTTON(data->button2), elem->bool_text[value2 + 2] + GTK_BUTTON(data->button2), data->text[value2 + 2] ); } } @@ -68,10 +69,10 @@ GtkWidget *make_dual_boolean_alsa_elems( data->button2, "clicked", G_CALLBACK(dual_button_clicked), data ); alsa_elem_add_callback(elem, dual_button_updated, data); - elem->bool_text[0] = disabled_text_1; - elem->bool_text[1] = enabled_text_1; - elem->bool_text[2] = disabled_text_2; - elem->bool_text[3] = enabled_text_2; + data->text[0] = disabled_text_1; + data->text[1] = enabled_text_1; + data->text[2] = disabled_text_2; + data->text[3] = enabled_text_2; gtk_button_set_label(GTK_BUTTON(data->button2), disabled_text_2);