static void _adg_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { AdgEntity *entity; AdgADimPrivate *data; entity = (AdgEntity *) object; data = ((AdgADim *) object)->data; switch (prop_id) { case PROP_VALUE: adg_dim_set_value((AdgDim *) object, g_value_get_string(value)); break; case PROP_ORG1: data->org1 = adg_entity_point(entity, data->org1, g_value_get_boxed(value)); break; case PROP_ORG2: data->org2 = adg_entity_point(entity, data->org2, g_value_get_boxed(value)); break; case PROP_HAS_EXTENSION1: data->has_extension1 = g_value_get_boolean(value); break; case PROP_HAS_EXTENSION2: data->has_extension2 = g_value_get_boolean(value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; } }
static void _adg_property_value(void) { AdgDim *dim; const gchar *valid_text, *latin1_text; const gchar *value; gchar *value_dup; dim = ADG_DIM(adg_ldim_new()); valid_text = "This is some text..."; latin1_text = "This is some àèìòù Latin1 text..."; /* Using the public APIs */ adg_dim_set_value(dim, valid_text); value = adg_dim_get_value(dim); g_assert_cmpstr(value, ==, valid_text); adg_dim_set_value(dim, latin1_text); value = adg_dim_get_value(dim); g_assert_cmpstr(value, ==, latin1_text); adg_dim_set_value(dim, NULL); value = adg_dim_get_value(dim); g_assert_null(value); /* Using GObject property methods */ g_object_set(dim, "value", valid_text, NULL); g_object_get(dim, "value", &value_dup, NULL); g_assert_cmpstr(value_dup, ==, valid_text); g_free(value_dup); g_object_set(dim, "value", latin1_text, NULL); g_object_get(dim, "value", &value_dup, NULL); g_assert_cmpstr(value_dup, ==, latin1_text); g_free(value_dup); g_object_set(dim, "value", NULL, NULL); g_object_get(dim, "value", &value_dup, NULL); g_assert_null(value_dup); adg_entity_destroy(ADG_ENTITY(dim)); }