Tue, 19 Aug 2025 21:14:00 +0200
implement sourcelist item badge (GTK)
| ui/gtk/list.c | file | annotate | diff | comparison | revisions | |
| ui/gtk/toolkit.c | file | annotate | diff | comparison | revisions |
--- a/ui/gtk/list.c Tue Aug 19 14:13:43 2025 +0200 +++ b/ui/gtk/list.c Tue Aug 19 21:14:00 2025 +0200 @@ -2031,7 +2031,19 @@ g_object_set_data(G_OBJECT(row), "ui-listbox-row-eventdata", event); - // TODO: badge + // badge + if(item->badge) { + GtkWidget *badge = gtk_label_new(item->badge); + WIDGET_ADD_CSS_CLASS(badge, "ui-badge"); +#if GTK_CHECK_VERSION(4, 0, 0) + gtk_widget_set_valign(badge, GTK_ALIGN_CENTER); + BOX_ADD(hbox, badge); +#else + GtkWidget *align = gtk_alignment_new(0.5, 0.5, 0, 0); + gtk_container_add(GTK_CONTAINER(align), badge); + BOX_ADD(hbox, align); +#endif + } // button if(item->button_icon || item->button_label) { GtkWidget *button = gtk_button_new();
--- a/ui/gtk/toolkit.c Tue Aug 19 14:13:43 2025 +0200 +++ b/ui/gtk/toolkit.c Tue Aug 19 21:14:00 2025 +0200 @@ -395,6 +395,15 @@ " margin-top: 4px;\n" " margin-bottom: 10px;\n" "}\n" +".ui-badge {\n" +" background-color: #e53935;\n" +" color: white;\n" +" border-radius: 9999px;\n" +" padding: 0px 10px 0px 10px;\n" +" font-weight: bold;\n" +" margin-left: 4px;" +" margin-right: 4px;" +"}\n" ; #elif GTK_MAJOR_VERSION == 3 @@ -428,6 +437,15 @@ " margin-top: 4px;\n" " margin-bottom: 10px;\n" "}\n" +".ui-badge {\n" +" background-color: #e53935;\n" +" color: white;\n" +" border-radius: 9999px;\n" +" padding: 0px 10px 0px 10px;\n" +" font-weight: bold;\n" +" margin-left: 4px;" +" margin-right: 4px;" +"}\n" ; #endif