I have this UI description:
...
<child>
<object class="GtkStack" id="stack_projects_setup">
<property name="visible-child-name">page_project_create</property>
...
<child>
<object class="GtkBox" id="page_projects_list">
...
<packing>
<property name="name">page_projects_list</property>
<property name="title" translatable="yes">Projects List</property>
</packing
...
<child>
<object class="GtkGrid" id="page_project_create">
...
<packing>
<property name="name">page_project_create</property>
<property name="title" translatable="yes">Create Project</property>
</packing
...
And in the C source code, this:
struct _MemoAppProjects
{
GtkWindow parent;
GtkButton *btn_ok;
GtkButton *btn_cancel;
GtkButton *btn_add_project;
gboolean btn_ok_clicked;
gboolean btn_cancel_clicked;
// GtkListStore *store_projects;
GtkWidget *treeview;
GtkWidget *stack_projects_setup;
GtkWidget *page_projects_list;
GtkWidget *page_project_create;
};
static void
memoapp_projects_class_init (MemoAppProjectsClass *class)
{
g_print ("%s\n", "memoapp projects class init");
gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (class),
"/org/gtk/memoapp/ui/memoapp-projects.ui");
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), MemoAppProjects, btn_ok);
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), MemoAppProjects, btn_cancel);
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), MemoAppProjects, btn_add_project);
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), MemoAppProjects, treeview);
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), MemoAppProjects, stack_projects_setup);
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), MemoAppProjects, page_projects_list);
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), MemoAppProjects, page_project_create);
}
And when I try to use *self->stack_projects_setup
in some method, I get an assertion error:
gtk_stack_get_visible_child_name: assertion ‘GTK_IS_STACK (stack)’ failed
Same if I use GTK_STACK
macro.
The builder UI description itself generates a warning just by running the application:
Child name ‘page_project_create’ not found in GtkStack
The stack and the pages of the stack are named with the id
and name
attribute. Not sure what I am missing.
So, these are the two problems I am facing in attempting to use GtkStack
. Is there any documentation I failed to read that would clarify things on this?
Here are the two files (work in progress) related to this problem, in case it helps: UI xml file, and the C file.
Any help would be appreciated!