static void _adg_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { AdgADimPrivate *data = ((AdgADim *) object)->data; switch (prop_id) { case PROP_VALUE: g_value_set_string(value, adg_dim_get_value((AdgDim *) object)); break; case PROP_ORG1: g_value_set_boxed(value, data->org1); break; case PROP_ORG2: g_value_set_boxed(value, data->org2); break; case PROP_HAS_EXTENSION1: g_value_set_boolean(value, data->has_extension1); break; case PROP_HAS_EXTENSION2: g_value_set_boolean(value, data->has_extension2); 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)); }