static GtkBuilder *
builder_new_from_string (const gchar *buffer,
gsize length,
- gchar *domain)
+ const gchar *domain)
{
GtkBuilder *builder;
+ GError *error = NULL;
+
builder = gtk_builder_new ();
if (domain)
gtk_builder_set_translation_domain (builder, domain);
- gtk_builder_add_from_string (builder, buffer, length, NULL);
+ gtk_builder_add_from_string (builder, buffer, length, &error);
+ if (error)
+ {
+ g_print ("ERROR: %s", error->message);
+ g_error_free (error);
+ }
+
return builder;
}
error = NULL;
gtk_builder_add_from_string (builder, "<xxx/>", -1, &error);
- g_assert (error != NULL);
- g_assert (error->domain == GTK_BUILDER_ERROR);
- g_assert (error->code == GTK_BUILDER_ERROR_UNHANDLED_TAG);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_UNHANDLED_TAG));
g_error_free (error);
error = NULL;
gtk_builder_add_from_string (builder, "<interface invalid=\"X\"/>", -1, &error);
- g_assert (error != NULL);
- g_assert (error->domain == GTK_BUILDER_ERROR);
- g_assert (error->code == GTK_BUILDER_ERROR_INVALID_ATTRIBUTE);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_INVALID_ATTRIBUTE));
g_error_free (error);
error = NULL;
gtk_builder_add_from_string (builder, "<interface><child/></interface>", -1, &error);
- g_assert (error != NULL);
- g_assert (error->domain == GTK_BUILDER_ERROR);
- g_assert (error->code == GTK_BUILDER_ERROR_INVALID_TAG);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_INVALID_TAG));
g_error_free (error);
error = NULL;
gtk_builder_add_from_string (builder, "<interface><object class=\"GtkVBox\" id=\"a\"><object class=\"GtkHBox\" id=\"b\"/></object></interface>", -1, &error);
- g_assert (error != NULL);
- g_assert (error->domain == GTK_BUILDER_ERROR);
- g_assert (error->code == GTK_BUILDER_ERROR_INVALID_TAG);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_INVALID_TAG));
g_error_free (error);
error = NULL;
gtk_builder_add_from_string (builder, "<interface><object class=\"Unknown\" id=\"a\"></object></interface>", -1, &error);
- g_assert (error != NULL);
- g_assert (error->domain == GTK_BUILDER_ERROR);
- g_assert (error->code == GTK_BUILDER_ERROR_INVALID_VALUE);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_INVALID_VALUE));
g_error_free (error);
error = NULL;
gtk_builder_add_from_string (builder, "<interface><object class=\"GtkWidget\" id=\"a\" constructor=\"none\"></object></interface>", -1, &error);
- g_assert (error != NULL);
- g_assert (error->domain == GTK_BUILDER_ERROR);
- g_assert (error->code == GTK_BUILDER_ERROR_INVALID_VALUE);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_INVALID_VALUE));
g_error_free (error);
error = NULL;
gtk_builder_add_from_string (builder, "<interface><object class=\"GtkButton\" id=\"a\"><child internal-child=\"foobar\"><object class=\"GtkButton\" id=\"int\"/></child></object></interface>", -1, &error);
- g_assert (error != NULL);
- g_assert (error->domain == GTK_BUILDER_ERROR);
- g_assert (error->code == GTK_BUILDER_ERROR_INVALID_VALUE);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_INVALID_VALUE));
+ g_error_free (error);
+
+ error = NULL;
+ gtk_builder_add_from_string (builder, "<interface><object class=\"GtkButton\" id=\"a\"></object><object class=\"GtkButton\" id=\"a\"/></object></interface>", -1, &error);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_DUPLICATE_ID));
g_error_free (error);
g_object_unref (builder);
static int object = 0;
static int object_after = 0;
-void // exported for GtkBuilder
+void /* exported for GtkBuilder */
signal_normal (GtkWindow *window, GParamSpec spec)
{
g_assert (GTK_IS_WINDOW (window));
normal++;
}
-void // exported for GtkBuilder
+void /* exported for GtkBuilder */
signal_after (GtkWindow *window, GParamSpec spec)
{
g_assert (GTK_IS_WINDOW (window));
after++;
}
-void // exported for GtkBuilder
+void /* exported for GtkBuilder */
signal_object (GtkButton *button, GParamSpec spec)
{
g_assert (GTK_IS_BUTTON (button));
object++;
}
-void // exported for GtkBuilder
+void /* exported for GtkBuilder */
signal_object_after (GtkButton *button, GParamSpec spec)
{
g_assert (GTK_IS_BUTTON (button));
object_after++;
}
-void // exported for GtkBuilder
+void /* exported for GtkBuilder */
signal_first (GtkButton *button, GParamSpec spec)
{
g_assert (normal == 0);
normal = 10;
}
-void // exported for GtkBuilder
+void /* exported for GtkBuilder */
signal_second (GtkButton *button, GParamSpec spec)
{
g_assert (normal == 10);
normal = 20;
}
-void // exported for GtkBuilder
+void /* exported for GtkBuilder */
signal_extra (GtkButton *button, GParamSpec spec)
{
g_assert (normal == 20);
normal = 30;
}
-void // exported for GtkBuilder
+void /* exported for GtkBuilder */
signal_extra2 (GtkButton *button, GParamSpec spec)
{
g_assert (normal == 30);
builder = builder_new_from_string (buffer, -1, NULL);
uimgr = gtk_builder_get_object (builder, "uimgr1");
- g_assert (uimgr != NULL);
g_assert (GTK_IS_UI_MANAGER (uimgr));
g_object_unref (builder);
builder = builder_new_from_string (buffer2, -1, NULL);
menubar = gtk_builder_get_object (builder, "menubar1");
- g_assert (menubar != NULL);
g_assert (GTK_IS_MENU_BAR (menubar));
children = gtk_container_get_children (GTK_CONTAINER (menubar));
menu = children->data;
- g_assert (menu != NULL);
g_assert (GTK_IS_MENU_ITEM (menu));
- g_assert (strcmp (GTK_WIDGET (menu)->name, "file") == 0);
+ g_assert (strcmp (gtk_widget_get_name (GTK_WIDGET (menu)), "file") == 0);
g_list_free (children);
- label = G_OBJECT (GTK_BIN (menu)->child);
- g_assert (label != NULL);
+ label = G_OBJECT (gtk_bin_get_child (GTK_BIN (menu)));
g_assert (GTK_IS_LABEL (label));
g_assert (strcmp (gtk_label_get_text (GTK_LABEL (label)), "File") == 0);
g_assert (domain);
g_assert (strcmp (domain, "domain-1") == 0);
g_object_unref (builder);
-
+
builder = builder_new_from_string (buffer2, -1, NULL);
domain = gtk_builder_get_translation_domain (builder);
g_assert (domain == NULL);
g_object_unref (builder);
-
- builder = builder_new_from_string (buffer2, -1, "domain-1");
- domain = gtk_builder_get_translation_domain (builder);
- g_assert (domain);
- g_assert (strcmp (domain, "domain-1") == 0);
- g_object_unref (builder);
}
#if 0
" <object class=\"GtkHButtonBox\" id=\"hbuttonbox\"/>"
" <object class=\"GtkHBox\" id=\"hbox\"/>"
" <object class=\"GtkHPaned\" id=\"hpaned\"/>"
- " <object class=\"GtkHRuler\" id=\"hruler\"/>"
" <object class=\"GtkHScale\" id=\"hscale\"/>"
" <object class=\"GtkHScrollbar\" id=\"hscrollbar\"/>"
" <object class=\"GtkHSeparator\" id=\"hseparator\"/>"
" <object class=\"GtkVScrollbar\" id=\"vscrollbar\"/>"
" <object class=\"GtkVSeparator\" id=\"vseparator\"/>"
" <object class=\"GtkViewport\" id=\"viewport\"/>"
- " <object class=\"GtkVRuler\" id=\"vruler\"/>"
" <object class=\"GtkVPaned\" id=\"vpaned\"/>"
" <object class=\"GtkVScale\" id=\"vscale\"/>"
" <object class=\"GtkWindow\" id=\"window\"/>"
builder = builder_new_from_string (buffer2, -1, NULL);
window = gtk_builder_get_object (builder, "window");
- g_assert (window != NULL);
g_assert (GTK_IS_WINDOW (window));
gtk_widget_destroy (GTK_WIDGET (window));
g_object_unref (builder);
error = NULL;
builder = gtk_builder_new ();
gtk_builder_add_from_string (builder, buffer3, -1, &error);
- g_assert (error != NULL);
- g_assert (error->domain == GTK_BUILDER_ERROR);
- g_assert (error->code == GTK_BUILDER_ERROR_INVALID_TYPE_FUNCTION);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_INVALID_TYPE_FUNCTION));
g_error_free (error);
g_object_unref (builder);
}
"<property name=\"upper\">10</property>"
"<property name=\"step-increment\">2</property>"
"<property name=\"page-increment\">3</property>"
- "<property name=\"page-size\">5</property>"
+ "<property name=\"page-size\">0</property>"
"<property name=\"value\">1</property>"
"</object>"
"<object class=\"GtkSpinButton\" id=\"spinbutton1\">"
"<property name=\"adjustment\">adjustment1</property>"
"</object>"
"</interface>";
- GObject *object;
+ GObject *obj;
GtkAdjustment *adjustment;
gdouble value;
builder = builder_new_from_string (buffer, -1, NULL);
- object = gtk_builder_get_object (builder, "spinbutton1");
- g_assert (GTK_IS_SPIN_BUTTON (object));
- adjustment = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (object));
+ obj = gtk_builder_get_object (builder, "spinbutton1");
+ g_assert (GTK_IS_SPIN_BUTTON (obj));
+ adjustment = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (obj));
g_assert (GTK_IS_ADJUSTMENT (adjustment));
g_object_get (adjustment, "value", &value, NULL);
g_assert (value == 1);
g_object_get (adjustment, "page-increment", &value, NULL);
g_assert (value == 3);
g_object_get (adjustment, "page-size", &value, NULL);
- g_assert (value == 5);
+ g_assert (value == 0);
g_object_unref (builder);
}
test_children (void)
{
GtkBuilder * builder;
+ GtkWidget *content_area, *dialog_action_area;
GList *children;
const gchar buffer1[] =
"<interface>"
button = gtk_builder_get_object (builder, "button1");
g_assert (button != NULL);
g_assert (GTK_IS_BUTTON (button));
- g_assert (strcmp (GTK_WIDGET (GTK_WIDGET (button)->parent)->name, "window1") == 0);
+ g_assert (gtk_widget_get_parent (GTK_WIDGET(button)) != NULL);
+ g_assert (strcmp (gtk_buildable_get_name (GTK_BUILDABLE (gtk_widget_get_parent (GTK_WIDGET (button)))), "window1") == 0);
gtk_widget_destroy (GTK_WIDGET (window));
g_object_unref (builder);
g_list_free (children);
vbox = gtk_builder_get_object (builder, "dialog1-vbox");
+ content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
g_assert (vbox != NULL);
- g_assert (GTK_IS_VBOX (vbox));
- g_assert (GTK_WIDGET (vbox)->parent != NULL);
- g_assert (strcmp (GTK_WIDGET (GTK_WIDGET (vbox)->parent)->name, "dialog1") == 0);
- g_assert (GTK_CONTAINER (vbox)->border_width == 10);
- g_assert (strcmp (GTK_WIDGET (GTK_DIALOG (dialog)->vbox)->name, "dialog1-vbox") == 0);
+ g_assert (GTK_IS_BOX (vbox));
+ g_assert (gtk_orientable_get_orientation (GTK_ORIENTABLE (vbox)) == GTK_ORIENTATION_VERTICAL);
+ g_assert (strcmp (gtk_buildable_get_name (GTK_BUILDABLE (gtk_widget_get_parent (GTK_WIDGET (vbox)))), "dialog1") == 0);
+ g_assert (gtk_container_get_border_width (GTK_CONTAINER (vbox)) == 10);
+ g_assert (strcmp (gtk_buildable_get_name (GTK_BUILDABLE (content_area)), "dialog1-vbox") == 0);
action_area = gtk_builder_get_object (builder, "dialog1-action_area");
+ dialog_action_area = gtk_dialog_get_action_area (GTK_DIALOG (dialog));
g_assert (action_area != NULL);
- g_assert (GTK_IS_HBUTTON_BOX (action_area));
- g_assert (GTK_WIDGET (action_area)->parent != NULL);
- g_assert (GTK_CONTAINER (action_area)->border_width == 20);
- g_assert (GTK_DIALOG (dialog)->action_area != NULL);
- g_assert (GTK_WIDGET (GTK_DIALOG (dialog)->action_area)->name != NULL);
- g_assert (strcmp (GTK_WIDGET (GTK_DIALOG (dialog)->action_area)->name, "dialog1-action_area") == 0);
+ g_assert (GTK_IS_BUTTON_BOX (action_area));
+ g_assert (gtk_orientable_get_orientation (GTK_ORIENTABLE (action_area)) == GTK_ORIENTATION_HORIZONTAL);
+ g_assert (gtk_widget_get_parent (GTK_WIDGET (action_area)) != NULL);
+ g_assert (gtk_container_get_border_width (GTK_CONTAINER (action_area)) == 20);
+ g_assert (dialog_action_area != NULL);
+ g_assert (gtk_buildable_get_name (GTK_BUILDABLE (action_area)) != NULL);
+ g_assert (strcmp (gtk_buildable_get_name (GTK_BUILDABLE (dialog_action_area)), "dialog1-action_area") == 0);
gtk_widget_destroy (GTK_WIDGET (dialog));
g_object_unref (builder);
}
GtkBuilder * builder;
const gchar buffer1[] =
"<interface>"
- " <object class=\"GtkVBox\" id=\"vbox1\">"
+ " <object class=\"GtkBox\" id=\"vbox1\">"
" <child>"
" <object class=\"GtkLabel\" id=\"label1\"/>"
" <packing>"
builder = builder_new_from_string (buffer1, -1, NULL);
vbox = gtk_builder_get_object (builder, "vbox1");
- g_assert (GTK_IS_VBOX (vbox));
+ g_assert (GTK_IS_BOX (vbox));
label = gtk_builder_get_object (builder, "label1");
g_assert (GTK_IS_LABEL (label));
g_assert (GTK_IS_TREE_VIEW_COLUMN (column));
g_assert (strcmp (gtk_tree_view_column_get_title (column), "Test") == 0);
- renderers = gtk_tree_view_column_get_cell_renderers (column);
+ renderers = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (column));
g_assert (g_list_length (renderers) == 1);
renderer = g_list_nth_data (renderers, 0);
g_assert (renderer);
g_object_unref (builder);
}
+#if 0
static void
test_combo_box_entry (void)
{
" </object>"
" <object class=\"GtkWindow\" id=\"window1\">"
" <child>"
- " <object class=\"GtkComboBoxEntry\" id=\"comboboxentry1\">"
+ " <object class=\"GtkComboBox\" id=\"comboboxentry1\">"
" <property name=\"model\">liststore1</property>"
+ " <property name=\"has-entry\">True</property>"
" <property name=\"visible\">True</property>"
" <child>"
" <object class=\"GtkCellRendererText\" id=\"renderer1\"/>"
g_object_unref (builder);
}
+#endif
static void
test_cell_view (void)
{
GtkBuilder *builder;
- gchar *buffer =
+ const gchar *buffer =
"<interface>"
" <object class=\"GtkListStore\" id=\"liststore1\">"
" <columns>"
path = gtk_tree_path_new_first ();
gtk_cell_view_set_displayed_row (GTK_CELL_VIEW (cellview), path);
- renderers = gtk_cell_view_get_cell_renderers (GTK_CELL_VIEW (cellview));
+ renderers = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (cellview));
g_assert (renderers);
g_assert (g_list_length (renderers) == 1);
g_object_unref (builder);
}
+static void
+test_message_dialog (void)
+{
+ GtkBuilder * builder;
+ const gchar buffer1[] =
+ "<interface>"
+ " <object class=\"GtkMessageDialog\" id=\"dialog1\">"
+ " <child internal-child=\"message_area\">"
+ " <object class=\"GtkVBox\" id=\"dialog-message-area\">"
+ " <child>"
+ " <object class=\"GtkExpander\" id=\"expander\"/>"
+ " </child>"
+ " </object>"
+ " </child>"
+ " </object>"
+ "</interface>";
+
+ GObject *dialog1;
+ GObject *expander;
+
+ builder = builder_new_from_string (buffer1, -1, NULL);
+ dialog1 = gtk_builder_get_object (builder, "dialog1");
+ expander = gtk_builder_get_object (builder, "expander");
+ g_assert (GTK_IS_EXPANDER (expander));
+ g_assert (gtk_widget_get_parent (GTK_WIDGET (expander)) == gtk_message_dialog_get_message_area (GTK_MESSAGE_DIALOG (dialog1)));
+
+ gtk_widget_destroy (GTK_WIDGET (dialog1));
+ g_object_unref (builder);
+}
+
static void
test_accelerators (void)
{
GtkBuilder *builder;
- gchar *buffer =
+ const gchar *buffer =
"<interface>"
" <object class=\"GtkWindow\" id=\"window1\">"
" <child>"
" </child>"
" </object>"
"</interface>";
- gchar *buffer2 =
+ const gchar *buffer2 =
"<interface>"
" <object class=\"GtkWindow\" id=\"window1\">"
" <child>"
static void
test_widget (void)
{
- gchar *buffer =
+ const gchar *buffer =
"<interface>"
" <object class=\"GtkWindow\" id=\"window1\">"
" <child>"
" </child>"
" </object>"
"</interface>";
- gchar *buffer2 =
+ const gchar *buffer2 =
"<interface>"
" <object class=\"GtkWindow\" id=\"window1\">"
" <child>"
" </child>"
" </object>"
"</interface>";
- gchar *buffer3 =
+ const gchar *buffer3 =
"<interface>"
" <object class=\"GtkWindow\" id=\"window1\">"
" <child>"
" <object class=\"GtkButton\" id=\"button1\">"
" <accessibility>"
" <action action_name=\"click\" description=\"Sliff\"/>"
+ " <action action_name=\"clack\" translatable=\"yes\">Sniff</action>"
" </accessibility>"
" </object>"
" </child>"
button1 = gtk_builder_get_object (builder, "button1");
#if 0
- g_assert (GTK_WIDGET_HAS_FOCUS (GTK_WIDGET (button1)));
+ g_assert (gtk_widget_has_focus (GTK_WIDGET (button1)));
#endif
window1 = gtk_builder_get_object (builder, "window1");
gtk_widget_destroy (GTK_WIDGET (window1));
builder = builder_new_from_string (buffer2, -1, NULL);
button1 = gtk_builder_get_object (builder, "button1");
- g_assert (GTK_WIDGET_RECEIVES_DEFAULT (GTK_WIDGET (button1)));
+ g_assert (gtk_widget_get_receives_default (GTK_WIDGET (button1)));
g_object_unref (builder);
static void
test_window (void)
{
- gchar *buffer1 =
+ const gchar *buffer1 =
"<interface>"
" <object class=\"GtkWindow\" id=\"window1\">"
" <property name=\"title\"></property>"
" </object>"
"</interface>";
- gchar *buffer2 =
+ const gchar *buffer2 =
"<interface>"
" <object class=\"GtkWindow\" id=\"window1\">"
" </object>"
static void
test_value_from_string (void)
{
- GValue value = { 0 };
+ GValue value = G_VALUE_INIT;
GError *error = NULL;
GtkBuilder *builder;
g_value_unset (&value);
g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_BOOLEAN, "blaurgh", &value, &error) == FALSE);
- g_assert (error != NULL);
g_value_unset (&value);
- g_assert (error->domain == GTK_BUILDER_ERROR);
- g_assert (error->code == GTK_BUILDER_ERROR_INVALID_VALUE);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_INVALID_VALUE));
g_error_free (error);
error = NULL;
g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_BOOLEAN, "yess", &value, &error) == FALSE);
g_value_unset (&value);
- g_assert (error->domain == GTK_BUILDER_ERROR);
- g_assert (error->code == GTK_BUILDER_ERROR_INVALID_VALUE);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_INVALID_VALUE));
g_error_free (error);
error = NULL;
g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_BOOLEAN, "trueee", &value, &error) == FALSE);
g_value_unset (&value);
- g_assert (error->domain == GTK_BUILDER_ERROR);
- g_assert (error->code == GTK_BUILDER_ERROR_INVALID_VALUE);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_INVALID_VALUE));
g_error_free (error);
error = NULL;
g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_BOOLEAN, "", &value, &error) == FALSE);
g_value_unset (&value);
- g_assert (error->domain == GTK_BUILDER_ERROR);
- g_assert (error->code == GTK_BUILDER_ERROR_INVALID_VALUE);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_INVALID_VALUE));
g_error_free (error);
error = NULL;
g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_FLOAT, "abc", &value, &error) == FALSE);
g_value_unset (&value);
- g_assert (error->domain == GTK_BUILDER_ERROR);
- g_assert (error->code == GTK_BUILDER_ERROR_INVALID_VALUE);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_INVALID_VALUE));
g_error_free (error);
error = NULL;
g_assert (gtk_builder_value_from_string_type (builder, G_TYPE_INT, "/-+,abc", &value, &error) == FALSE);
g_value_unset (&value);
- g_assert (error->domain == GTK_BUILDER_ERROR);
- g_assert (error->code == GTK_BUILDER_ERROR_INVALID_VALUE);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_INVALID_VALUE));
g_error_free (error);
error = NULL;
g_assert (gtk_builder_value_from_string_type (builder, GTK_TYPE_WINDOW_TYPE, "sliff", &value, &error) == FALSE);
g_value_unset (&value);
- g_assert (error->domain == GTK_BUILDER_ERROR);
- g_assert (error->code == GTK_BUILDER_ERROR_INVALID_VALUE);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_INVALID_VALUE));
g_error_free (error);
error = NULL;
-
- g_assert (gtk_builder_value_from_string_type (builder, GTK_TYPE_WIDGET_FLAGS, "mapped", &value, &error) == TRUE);
- g_assert (G_VALUE_HOLDS_FLAGS (&value));
- g_assert (g_value_get_flags (&value) == GTK_MAPPED);
- g_value_unset (&value);
- g_assert (gtk_builder_value_from_string_type (builder, GTK_TYPE_WIDGET_FLAGS, "GTK_VISIBLE | GTK_REALIZED", &value, &error) == TRUE);
- g_assert (G_VALUE_HOLDS_FLAGS (&value));
- g_assert (g_value_get_flags (&value) == (GTK_VISIBLE | GTK_REALIZED));
- g_value_unset (&value);
-
g_assert (gtk_builder_value_from_string_type (builder, GTK_TYPE_WINDOW_TYPE, "foobar", &value, &error) == FALSE);
g_value_unset (&value);
- g_assert (error->domain == GTK_BUILDER_ERROR);
- g_assert (error->code == GTK_BUILDER_ERROR_INVALID_VALUE);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_INVALID_VALUE));
g_error_free (error);
error = NULL;
gtk_icon_factory_add_default (GTK_ICON_FACTORY (factory));
image = gtk_image_new_from_stock ("apple-red", GTK_ICON_SIZE_BUTTON);
g_assert (image != NULL);
+ g_object_ref_sink (image);
+ g_object_unref (image);
g_object_unref (builder);
#if 0
error = NULL;
gtk_builder_add_from_string (builder, buffer3, -1, &error);
- g_assert (error != NULL);
- g_assert (error->domain == GTK_BUILDER_ERROR);
- g_assert (error->code == GTK_BUILDER_ERROR_INVALID_TAG);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_INVALID_TAG));
g_error_free (error);
error = NULL;
gtk_builder_add_from_string (builder, buffer4, -1, &error);
- g_assert (error != NULL);
- g_assert (error->domain == GTK_BUILDER_ERROR);
- g_assert (error->code == GTK_BUILDER_ERROR_INVALID_TAG);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_INVALID_TAG));
g_error_free (error);
error = NULL;
gtk_builder_add_from_string (builder, buffer5, -1, &error);
- g_assert (error != NULL);
- g_assert (error->domain == GTK_BUILDER_ERROR);
- g_assert (error->code == GTK_BUILDER_ERROR_INVALID_ATTRIBUTE);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_INVALID_ATTRIBUTE));
g_error_free (error);
#endif
builder = gtk_builder_new ();
gtk_builder_add_from_string (builder, err_buffer1, -1, &error);
label = gtk_builder_get_object (builder, "label1");
- g_assert (error);
- g_assert (error->domain == GTK_BUILDER_ERROR);
- g_assert (error->code == GTK_BUILDER_ERROR_MISSING_ATTRIBUTE);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_MISSING_ATTRIBUTE));
g_object_unref (builder);
g_error_free (error);
error = NULL;
gtk_builder_add_from_string (builder, err_buffer2, -1, &error);
label = gtk_builder_get_object (builder, "label1");
- g_assert (error);
- g_assert (error->domain == GTK_BUILDER_ERROR);
- g_assert (error->code == GTK_BUILDER_ERROR_INVALID_ATTRIBUTE);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_INVALID_ATTRIBUTE));
g_object_unref (builder);
g_error_free (error);
}
buffer = g_strdup_printf (buffer_fmt, GTK_MAJOR_VERSION, GTK_MINOR_VERSION + 1);
builder = gtk_builder_new ();
gtk_builder_add_from_string (builder, buffer, -1, &error);
- g_assert (error);
- g_assert (error->domain == GTK_BUILDER_ERROR);
- g_assert (error->code == GTK_BUILDER_ERROR_VERSION_MISMATCH);
+ g_assert (g_error_matches (error,
+ GTK_BUILDER_ERROR,
+ GTK_BUILDER_ERROR_VERSION_MISMATCH));
g_object_unref (builder);
g_error_free (error);
+ g_free (buffer);
}
static void
" </object>"
" <object class=\"GtkWindow\" id=\"window2\">"
" <child>"
- " <object class=\"GtkLabel\" id=\"label1\">"
+ " <object class=\"GtkLabel\" id=\"label3\">"
" <property name=\"label\" translatable=\"no\">second label</property>"
" </object>"
" </child>"
menu = children->data;
g_assert (menu != NULL);
g_assert (GTK_IS_MENU_ITEM (menu));
- g_assert (strcmp (GTK_WIDGET (menu)->name, "file") == 0);
+ g_assert (strcmp (gtk_widget_get_name (GTK_WIDGET (menu)), "file") == 0);
g_list_free (children);
- label = G_OBJECT (GTK_BIN (menu)->child);
+ label = G_OBJECT (gtk_bin_get_child (GTK_BIN (menu)));
g_assert (label != NULL);
g_assert (GTK_IS_LABEL (label));
g_assert (strcmp (gtk_label_get_text (GTK_LABEL (label)), "File") == 0);
menu = children->data;
g_assert (menu != NULL);
g_assert (GTK_IS_MENU_ITEM (menu));
- g_assert (strcmp (GTK_WIDGET (menu)->name, "file") == 0);
+ g_assert (strcmp (gtk_widget_get_name (GTK_WIDGET (menu)), "file") == 0);
g_list_free (children);
- label = G_OBJECT (GTK_BIN (menu)->child);
+ label = G_OBJECT (gtk_bin_get_child (GTK_BIN (menu)));
g_assert (label != NULL);
g_assert (GTK_IS_LABEL (label));
g_assert (strcmp (gtk_label_get_text (GTK_LABEL (label)), "File") == 0);
g_object_unref (builder);
}
-GtkWidget *
+static GtkWidget *
get_parent_menubar (GtkWidget *menuitem)
{
- GtkMenuShell *menu_shell = (GtkMenuShell *)menuitem->parent;
+ GtkMenuShell *menu_shell;
GtkWidget *attach = NULL;
+ menu_shell = GTK_MENU_SHELL (gtk_widget_get_parent (menuitem));
+
g_assert (GTK_IS_MENU_SHELL (menu_shell));
while (menu_shell && !GTK_IS_MENU_BAR (menu_shell))
{
if (GTK_IS_MENU (menu_shell) &&
(attach = gtk_menu_get_attach_widget (GTK_MENU (menu_shell))) != NULL)
- menu_shell = (GtkMenuShell *)attach->parent;
+ menu_shell = GTK_MENU_SHELL (gtk_widget_get_parent (attach));
else
menu_shell = NULL;
}
static void
test_menus (void)
{
- gchar *buffer =
+ const gchar *buffer =
"<interface>"
" <object class=\"GtkWindow\" id=\"window1\">"
" <accel-groups>"
"<object class=\"GtkAccelGroup\" id=\"accelgroup1\"/>"
"</interface>";
- gchar *buffer1 =
+ const gchar *buffer1 =
"<interface>"
" <object class=\"GtkWindow\" id=\"window1\">"
" <accel-groups>"
"<object class=\"GtkAccelGroup\" id=\"accelgroup1\"/>"
"</interface>";
GtkBuilder *builder;
+ GtkWidget *child;
GtkWidget *window, *item;
GtkAccelGroup *accel_group;
GtkWidget *item_accel_label, *sample_accel_label, *sample_menu_item, *custom;
sample_menu_item = gtk_image_menu_item_new_from_stock (GTK_STOCK_NEW, accel_group);
- g_assert (GTK_BIN (sample_menu_item)->child);
- g_assert (GTK_IS_ACCEL_LABEL (GTK_BIN (sample_menu_item)->child));
- sample_accel_label = GTK_WIDGET (GTK_BIN (sample_menu_item)->child);
+ child = gtk_bin_get_child (GTK_BIN (sample_menu_item));
+ g_assert (child);
+ g_assert (GTK_IS_ACCEL_LABEL (child));
+ sample_accel_label = child;
gtk_widget_show (sample_accel_label);
- g_assert (GTK_BIN (item)->child);
- g_assert (GTK_IS_ACCEL_LABEL (GTK_BIN (item)->child));
- item_accel_label = GTK_WIDGET (GTK_BIN (item)->child);
+ child = gtk_bin_get_child (GTK_BIN (item));
+ g_assert (child);
+ g_assert (GTK_IS_ACCEL_LABEL (child));
+ item_accel_label = child;
gtk_accel_label_refetch (GTK_ACCEL_LABEL (sample_accel_label));
gtk_accel_label_refetch (GTK_ACCEL_LABEL (item_accel_label));
- g_assert (GTK_ACCEL_LABEL (sample_accel_label)->accel_string != NULL);
- g_assert (GTK_ACCEL_LABEL (item_accel_label)->accel_string != NULL);
- g_assert (strcmp (GTK_ACCEL_LABEL (item_accel_label)->accel_string,
- GTK_ACCEL_LABEL (sample_accel_label)->accel_string) == 0);
+ g_assert (gtk_label_get_text (GTK_LABEL (sample_accel_label)) != NULL);
+ g_assert (gtk_label_get_text (GTK_LABEL (item_accel_label)) != NULL);
+ g_assert (strcmp (gtk_label_get_text (GTK_LABEL (item_accel_label)),
+ gtk_label_get_text (GTK_LABEL (sample_accel_label))) == 0);
- /* Check the menu heirarchy worked here */
+ /* Check the menu hierarchy worked here */
g_assert (get_parent_menubar (item));
gtk_widget_destroy (GTK_WIDGET (window));
item = (GtkWidget *)gtk_builder_get_object (builder, "imagemenuitem1");
custom = (GtkWidget *)gtk_builder_get_object (builder, "custom1");
- g_assert (custom->parent == item);
+ g_assert (gtk_widget_get_parent (custom) == item);
gtk_widget_destroy (GTK_WIDGET (window));
g_object_unref (builder);
if (GTK_IS_DIALOG (obj))
{
- int response;
-
g_print ("Running dialog %s.\n",
gtk_widget_get_name (GTK_WIDGET (obj)));
- response = gtk_dialog_run (GTK_DIALOG (obj));
+ gtk_dialog_run (GTK_DIALOG (obj));
}
else if (GTK_IS_WINDOW (obj))
{
builder = NULL;
}
+static void
+test_message_area (void)
+{
+ GtkBuilder *builder;
+ GError *error;
+ GObject *obj, *obj1;
+ const gchar buffer[] =
+ "<interface>"
+ " <object class=\"GtkInfoBar\" id=\"infobar1\">"
+ " <child internal-child=\"content_area\">"
+ " <object class=\"GtkHBox\" id=\"contentarea1\">"
+ " <child>"
+ " <object class=\"GtkLabel\" id=\"content\">"
+ " <property name=\"label\" translatable=\"yes\">Message</property>"
+ " </object>"
+ " </child>"
+ " </object>"
+ " </child>"
+ " <child internal-child=\"action_area\">"
+ " <object class=\"GtkVButtonBox\" id=\"actionarea1\">"
+ " <child>"
+ " <object class=\"GtkButton\" id=\"button_ok\">"
+ " <property name=\"label\">gtk-ok</property>"
+ " <property name=\"use-stock\">yes</property>"
+ " </object>"
+ " </child>"
+ " </object>"
+ " </child>"
+ " <action-widgets>"
+ " <action-widget response=\"1\">button_ok</action-widget>"
+ " </action-widgets>"
+ " </object>"
+ "</interface>";
+
+ error = NULL;
+ builder = builder_new_from_string (buffer, -1, NULL);
+ g_assert (error == NULL);
+ obj = gtk_builder_get_object (builder, "infobar1");
+ g_assert (GTK_IS_INFO_BAR (obj));
+ obj1 = gtk_builder_get_object (builder, "content");
+ g_assert (GTK_IS_LABEL (obj1));
+ g_assert (gtk_widget_get_parent (gtk_widget_get_parent (GTK_WIDGET (obj1))) == GTK_WIDGET (obj));
+
+ obj1 = gtk_builder_get_object (builder, "button_ok");
+ g_assert (GTK_IS_BUTTON (obj1));
+ g_assert (gtk_widget_get_parent (gtk_widget_get_parent (GTK_WIDGET (obj1))) == GTK_WIDGET (obj));
+
+ g_object_unref (builder);
+}
+
int
main (int argc, char **argv)
{
g_test_add_func ("/Builder/TreeView Column", test_treeview_column);
g_test_add_func ("/Builder/IconView", test_icon_view);
g_test_add_func ("/Builder/ComboBox", test_combo_box);
+#if 0
g_test_add_func ("/Builder/ComboBox Entry", test_combo_box_entry);
+#endif
g_test_add_func ("/Builder/CellView", test_cell_view);
g_test_add_func ("/Builder/Dialog", test_dialog);
g_test_add_func ("/Builder/Accelerators", test_accelerators);
g_test_add_func ("/Builder/Requires", test_requires);
g_test_add_func ("/Builder/AddObjects", test_add_objects);
g_test_add_func ("/Builder/Menus", test_menus);
+ g_test_add_func ("/Builder/MessageArea", test_message_area);
+ g_test_add_func ("/Builder/MessageDialog", test_message_dialog);
return g_test_run();
}