/** * adg_dim_set_ref2_from_pair: * @dim: an #AdgDim * @ref2: the coordinates pair of the second reference point * * Convenient function to set the #AdgDim:ref2 property using a * pair instead of explicit coordinates. * * Since: 1.0 **/ void adg_dim_set_ref2_from_pair(AdgDim *dim, const CpmlPair *ref2) { g_return_if_fail(ref2 != NULL); adg_dim_set_ref2_explicit(dim, ref2->x, ref2->y); }
static void _adg_property_ref2(void) { AdgDim *dim; AdgModel *model; AdgPoint *origin, *explicit_point, *model_point; AdgPoint *ref2; dim = ADG_DIM(adg_rdim_new()); model = ADG_MODEL(adg_path_new()); origin = adg_point_new(); explicit_point = adg_point_new(); model_point = adg_point_new(); adg_point_set_pair_explicit(origin, 0, 0); adg_point_set_pair_explicit(explicit_point, 123, 321); adg_model_set_named_pair(model, "named-pair", (CpmlPair *) explicit_point); adg_point_set_pair_from_model(model_point, model, "named-pair"); /* Ensure ADG does not consider an explicit point equals to * a point bound to a named pair with the same coordinates */ g_assert_false(adg_point_equal(explicit_point, model_point)); ref2 = adg_dim_get_ref2(dim); g_assert_null(ref2); /* Using the public APIs */ adg_dim_set_ref2_explicit(dim, 0, 0); ref2 = adg_dim_get_ref2(dim); g_assert_true(adg_point_equal(ref2, origin)); adg_dim_set_ref2(dim, NULL); ref2 = adg_dim_get_ref2(dim); g_assert_null(ref2); adg_dim_set_ref2(dim, explicit_point); ref2 = adg_dim_get_ref2(dim); g_assert_true(adg_point_equal(ref2, explicit_point)); adg_dim_set_ref2_from_model(dim, model, "dummy"); ref2 = adg_dim_get_ref2(dim); g_assert_nonnull(ref2); adg_dim_set_ref2_from_model(dim, model, "named-pair"); ref2 = adg_dim_get_ref2(dim); g_assert_true(adg_point_equal(ref2, model_point)); /* Using GObject property methods */ g_object_set(dim, "ref2", origin, NULL); g_object_get(dim, "ref2", &ref2, NULL); g_assert_true(adg_point_equal(ref2, origin)); adg_point_destroy(ref2); g_object_set(dim, "ref2", NULL, NULL); g_object_get(dim, "ref2", &ref2, NULL); g_assert_null(ref2); g_object_set(dim, "ref2", explicit_point, NULL); g_object_get(dim, "ref2", &ref2, NULL); g_assert_true(adg_point_equal(ref2, explicit_point)); adg_point_destroy(ref2); adg_dim_set_ref2_from_model(dim, model, "dummy"); g_object_get(dim, "ref2", &ref2, NULL); g_assert_nonnull(ref2); adg_point_destroy(ref2); g_object_set(dim, "ref2", model_point, NULL); g_object_get(dim, "ref2", &ref2, NULL); g_assert_true(adg_point_equal(ref2, model_point)); adg_point_destroy(ref2); adg_point_destroy(origin); adg_point_destroy(explicit_point); adg_point_destroy(model_point); adg_entity_destroy(ADG_ENTITY(dim)); g_object_unref(model); }