From 880b47e7fc109c21e9591778e475000027d6b81b Mon Sep 17 00:00:00 2001 From: Jeremy Sowden Date: Tue, 21 May 2024 18:46:04 +0100 Subject: [PATCH] wmclockmon: replace deprecated `GtkCombo` Signed-off-by: Jeremy Sowden --- wmclockmon/wmclockmon-config/edit.c | 73 +++++++++++++++++++++---------------- 1 file changed, 41 insertions(+), 32 deletions(-) diff --git a/wmclockmon/wmclockmon-config/edit.c b/wmclockmon/wmclockmon-config/edit.c index 2a4a051..c1a774f 100644 --- a/wmclockmon/wmclockmon-config/edit.c +++ b/wmclockmon/wmclockmon-config/edit.c @@ -19,13 +19,15 @@ static GtkWidget *wid_date; static GtkWidget *wid_mesg; void set_data(GtkWidget *widget UNUSED, GtkWidget *data UNUSED) { - const char *wstat = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(wid_status)->entry)); + + const char *wstat = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(wid_status)); const char *wtime = gtk_entry_get_text(GTK_ENTRY(wid_time)); - const char *wdate = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(wid_date)->entry)); + const char *wdate = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(wid_date)); const char *wmesg = gtk_entry_get_text(GTK_ENTRY(wid_mesg)); - int has_day = (strcmp(wdate, "ALL") != 0); - int has_msg = (strcmp(wdate, "") != 0); - int len = strlen(wstat) + 1 + strlen(wtime) + 1; + + int has_day = (strcmp(wdate, "ALL") != 0); + int has_msg = (strcmp(wdate, "") != 0); + int len = strlen(wstat) + 1 + strlen(wtime) + 1; len += has_day ? strlen(wdate) + 1 : 0; len += has_msg ? strlen(wmesg) + 1 : 0; @@ -38,9 +40,27 @@ void set_data(GtkWidget *widget UNUSED, GtkWidget *data UNUSED) { has_day ? wdate : "", has_msg ? "." : "", has_msg ? wmesg : ""); + } +static gboolean set_active_date(GtkTreeModel *model, GtkTreePath *path, + GtkTreeIter *iter, gpointer user_data) +{ + const char *date1 = user_data; + const char *date2; + + (void) path; + + gtk_tree_model_get(model, iter, 0, (gpointer) &date2, -1); + if (strcmp(date1, date2) == 0) { + gtk_combo_box_set_active_iter(GTK_COMBO_BOX(wid_date), iter); + return TRUE; + } + + return FALSE; +} + void edit_dialog(const char *title, int on, const char *atime, @@ -53,7 +73,6 @@ void edit_dialog(const char *title, GtkWidget *label; GtkWidget *hbox; GtkWidget *vbox; - GList *items = NULL; FREE(newalarm); dialog = gtk_dialog_new(); @@ -99,19 +118,12 @@ void edit_dialog(const char *title, gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 6); gtk_widget_show(label); - items = g_list_append(items, "On"); - items = g_list_append(items, "Off"); - wid_status = gtk_combo_new(); - gtk_combo_set_popdown_strings(GTK_COMBO(wid_status), items); - gtk_combo_set_value_in_list(GTK_COMBO(wid_status), TRUE, FALSE); - gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(wid_status)->entry), FALSE); + wid_status = gtk_combo_box_text_new(); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(wid_status), "On"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(wid_status), "Off"); gtk_box_pack_start(GTK_BOX(vbox), wid_status, FALSE, TRUE, 6); gtk_widget_show(wid_status); - if (on) - gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(wid_status)->entry), "On"); - else - gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(wid_status)->entry), "Off"); - + gtk_combo_box_set_active(GTK_COMBO_BOX(wid_status), on ? 0 : 1); /* HOUR */ vbox = gtk_vbox_new(FALSE, 1); @@ -139,24 +151,21 @@ void edit_dialog(const char *title, gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 6); gtk_widget_show(label); - items = NULL; - items = g_list_append(items, "ALL"); - items = g_list_append(items, "1"); - items = g_list_append(items, "2"); - items = g_list_append(items, "3"); - items = g_list_append(items, "4"); - items = g_list_append(items, "5"); - items = g_list_append(items, "6"); - items = g_list_append(items, "7"); - wid_date = gtk_combo_new(); - gtk_combo_set_popdown_strings(GTK_COMBO(wid_date), items); - gtk_combo_set_value_in_list(GTK_COMBO(wid_date), TRUE, TRUE); - gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(wid_date)->entry), FALSE); + wid_date = gtk_combo_box_text_new(); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(wid_date), "ALL"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(wid_date), "1"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(wid_date), "2"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(wid_date), "3"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(wid_date), "4"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(wid_date), "5"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(wid_date), "6"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(wid_date), "7"); gtk_box_pack_start(GTK_BOX(vbox), wid_date, FALSE, TRUE, 6); gtk_widget_show(wid_date); + gtk_combo_box_set_active(GTK_COMBO_BOX(wid_date), 0); if (adate) - gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(wid_date)->entry), adate); - + gtk_tree_model_foreach(gtk_combo_box_get_model(GTK_COMBO_BOX(wid_date)), + set_active_date, (void *) adate); /* MESSAGE */ vbox = gtk_vbox_new(FALSE, 1); -- 2.11.4.GIT