return 0;
}
+void e_entry_activate(GtkWidget *wdg, gpointer user_data) {
+ GtkEntry *e = GTK_ENTRY(wdg);
+ printf(
+ "%s ACTIVATE %s\n",
+ gtk_buildable_get_name(GTK_BUILDABLE(wdg)),
+ gtk_entry_buffer_get_text(gtk_entry_get_buffer(e))
+ );
+}
+
void e_entry_changed(GtkWidget *wdg, gpointer user_data) {
GtkEntry *e = GTK_ENTRY(wdg);
printf(
GtkWidget *wdg;
if (wdg = GTK_WIDGET(gtk_builder_get_object(builder, arg))) {
gtk_list_box_insert(w, wdg, -1);
- gtk_widget_set_visible(wdg, TRUE);
+ //gtk_widget_set_visible(wdg, TRUE);
} else {
dprintf(STDERR_FILENO, "Unknown Widget-ID: %s\n", arg);
}
}
+
+void a_listbox_remove(GtkListBox *w, char *arg) {
+ // ListBox children are silently wrapped into a GtkListBoxRow
+ // so we really detroy that wrapper after removing the child
+ GtkWidget *wdg, *p;
+ if (wdg = GTK_WIDGET(gtk_builder_get_object(builder, arg))) {
+ p = gtk_widget_get_parent(wdg);
+ gtk_container_remove(GTK_CONTAINER(p), wdg);
+ gtk_widget_destroy(p);
+ } else {
+ dprintf(STDERR_FILENO, "Unknown Widget-ID: %s\n", arg);
+ }
+}
+
int a_listbox(GtkListBox *w, char *cmd, char *args) {
if (!w || !cmd || !cmd[0]) return 0;
- else if (!strcmp(cmd, "add")) a_listbox_add(w, args);
+ else if (!strcmp(cmd, "add")) a_listbox_add(w, args);
+ else if (!strcmp(cmd, "remove")) a_listbox_remove(w, args);
else return 0;
return 1;
}
else if (GTK_IS_TOGGLE_BUTTON(wdg)) g_signal_connect(wdg, "toggled", G_CALLBACK(e_tb_toggled), NULL);
else if (GTK_IS_CHECK_MENU_ITEM(wdg)) g_signal_connect(wdg, "toggled", G_CALLBACK(e_cmi_toggled), NULL);
else if (GTK_IS_TOGGLE_TOOL_BUTTON(wdg)) g_signal_connect(wdg, "toggled", G_CALLBACK(e_ttb_toggled), NULL);
- else if (GTK_IS_MENU_ITEM(wdg)) g_signal_connect(wdg, "activate",G_CALLBACK(e_mi_activate), NULL);
- else if (GTK_IS_ENTRY(wdg) ) g_signal_connect(wdg, "changed", G_CALLBACK(e_entry_changed), NULL);
- else if (GTK_IS_TOOL_BUTTON(wdg)) g_signal_connect(wdg, "clicked", G_CALLBACK(e_widget_clicked), NULL);
- else if (GTK_IS_BUTTON(wdg)) g_signal_connect(wdg, "clicked", G_CALLBACK(e_widget_clicked), NULL);
+ else if (GTK_IS_MENU_ITEM(wdg)) g_signal_connect(wdg, "activate", G_CALLBACK(e_mi_activate), NULL);
+ else if (GTK_IS_ENTRY(wdg) ) { g_signal_connect(wdg, "changed", G_CALLBACK(e_entry_changed), NULL);
+ g_signal_connect(wdg, "activate", G_CALLBACK(e_entry_activate), NULL);}
+ else if (GTK_IS_TOOL_BUTTON(wdg)) g_signal_connect(wdg, "clicked", G_CALLBACK(e_widget_clicked), NULL);
+ else if (GTK_IS_BUTTON(wdg)) g_signal_connect(wdg, "clicked", G_CALLBACK(e_widget_clicked), NULL);
else if (GTK_IS_WINDOW(wdg)) g_signal_connect(wdg, "delete-event", G_CALLBACK(e_window_close), NULL);
else { printf("%s unknown\n", name); return; }
printf("%s loaded\n", name);