gui/builder: Get a widget from the GTK builder

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
Anna Schumaker 2015-12-23 21:54:19 -05:00
parent d4b27316c0
commit 0eb8521094
3 changed files with 19 additions and 0 deletions

View File

@ -24,6 +24,11 @@ GObject *gui_builder_object(const char *name)
return NULL;
}
GtkWidget *gui_builder_widget(const char *name)
{
return GTK_WIDGET(gui_builder_object(name));
}
#ifdef CONFIG_TESTING
GtkBuilder *test_get_gui_builder()
{

View File

@ -14,6 +14,9 @@ void gui_builder_deinit();
/* Called to get an object from the GTK builder. */
GObject *gui_builder_object(const char *);
/* Called to get a widget from the GTK builder. */
GtkWidget *gui_builder_widget(const char *);
#ifdef CONFIG_TESTING
GtkBuilder *test_get_gui_builder();
#endif /* CONFIG_TESTING */

View File

@ -15,9 +15,11 @@ static void test_builder()
{
int argc = 0;
GObject *object;
GtkWidget *widget;
test_equal((void *)test_get_gui_builder(), NULL);
test_equal((void *)gui_builder_object("button1"), NULL);
test_equal((void *)gui_builder_widget("button1"), NULL);
gtk_init(&argc, NULL);
gui_builder_init("tests/gui/builder.ui");
@ -27,9 +29,18 @@ static void test_builder()
test_not_equal((void *)object, NULL);
test_equal(G_IS_OBJECT(object), true);
widget = gui_builder_widget("button1");
test_not_equal((void *)widget, NULL);
test_equal(GTK_IS_WIDGET(widget), true);
test_equal(GTK_IS_BUTTON(widget), true);
gtk_button_clicked(GTK_BUTTON(widget));
test_equal(gui_clicked, 1);
gtk_widget_destroy(gui_builder_widget("window1"));
gui_builder_deinit();
test_equal((void *)test_get_gui_builder(), NULL);
test_equal((void *)gui_builder_object("button1"), NULL);
test_equal((void *)gui_builder_widget("button1"), NULL);
}
DECLARE_UNIT_TESTS(