<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
+ <property name="active">True</property>
<property name="draw-indicator">True</property>
</object>
<packing>
</packing>
</child>
<child>
- <placeholder/>
+ <object class="GtkLabel" id="l">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">label</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
</child>
</object>
</child>
}
void a_listbox_add(GtkListBox *w, char *arg) {
- char *label = malloc(strlen(arg) + 1);
- strcpy(label, arg);
- GtkWidget *glabel = gtk_button_new_with_label(label);
- gtk_list_box_insert(w, glabel, -1);
- gtk_widget_set_visible(glabel, TRUE);
+ 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);
+ } 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;
GSList *widgets; GError *gerr = NULL;
if ( ! gtk_builder_add_from_file(builder, file, &gerr) ) {
- dprintf(STDERR_FILENO, "%s\n", gerr->message);
+ dprintf(STDERR_FILENO, "Error during \"load\": %s\n", gerr->message);
+ free(gerr);
+ } else {
+ widgets = gtk_builder_get_objects(builder);
+ g_slist_foreach(widgets, *init_widgets, NULL);
+ g_slist_free(widgets);
+ }
+}
+
+void a_builder_add(char *xml) {
+ GSList *widgets; GError *gerr = NULL;
+
+ if ( ! gtk_builder_add_from_string(builder, xml, -1, &gerr) ) {
+ dprintf(STDERR_FILENO, "Error during \"add\": %s\n", gerr->message);
free(gerr);
} else {
widgets = gtk_builder_get_objects(builder);
int a_builder(char *cmd, char *args) {
if (!cmd || !cmd[0]) return 0;
else if (!strcmp(cmd, "load")) a_builder_load(args);
+ else if (!strcmp(cmd, "add")) a_builder_add(args);
else return 0;
return 1;
}
if ( !wid || !wid[0] ) return 0;
else if ( wid[0] == ':' && !wid[1] ) return a_builder(cmd, args);
- else if (!(wdg = GTK_WIDGET(gtk_builder_get_object(builder, wid)))) return 0;
- else if (0
+ else if (!(wdg = GTK_WIDGET(gtk_builder_get_object(builder, wid)))) {
+ dprintf(STDERR_FILENO, "Unknown Widget-ID: %s\n", wid);
+ return 0;
+ } else if (0
|| (GTK_IS_TOGGLE_BUTTON(wdg) && a_tb(GTK_TOGGLE_BUTTON(wdg), cmd, args))
|| (GTK_IS_CHECK_MENU_ITEM(wdg) && a_cmi(GTK_CHECK_MENU_ITEM(wdg), cmd, args))
|| (GTK_IS_TOGGLE_TOOL_BUTTON(wdg) && a_ttb(GTK_TOGGLE_TOOL_BUTTON(wdg), cmd, args))