static void _adg_property_factor(void) { AdgAlignment *alignment; CpmlPair null_factor, identity_factor; const CpmlPair *factor; CpmlPair *factor_dup; alignment = adg_alignment_new(NULL); null_factor.x = 0; null_factor.y = 0; identity_factor.x = 1; identity_factor.y = 1; /* By default, the alignment should be initialized with a null factor */ factor = adg_alignment_get_factor(alignment); g_assert_true(cpml_pair_equal(factor, &null_factor)); /* Using the public APIs */ adg_alignment_set_factor(alignment, &identity_factor); factor = adg_alignment_get_factor(alignment); g_assert_true(cpml_pair_equal(factor, &identity_factor)); adg_alignment_set_factor_explicit(alignment, 0, 0); factor = adg_alignment_get_factor(alignment); g_assert_true(cpml_pair_equal(factor, &null_factor)); adg_alignment_set_factor(alignment, NULL); factor = adg_alignment_get_factor(alignment); g_assert_true(cpml_pair_equal(factor, &null_factor)); /* Using GObject property methods */ g_object_set(alignment, "factor", &identity_factor, NULL); g_object_get(alignment, "factor", &factor_dup, NULL); g_assert_true(cpml_pair_equal(factor_dup, &identity_factor)); g_free(factor_dup); g_object_set(alignment, "factor", NULL, NULL); g_object_get(alignment, "factor", &factor_dup, NULL); g_assert_true(cpml_pair_equal(factor_dup, &identity_factor)); g_free(factor_dup); g_object_set(alignment, "factor", &null_factor, NULL); g_object_get(alignment, "factor", &factor_dup, NULL); g_assert_true(cpml_pair_equal(factor_dup, &null_factor)); g_free(factor_dup); g_object_unref(alignment); }
/** * adg_alignment_set_factor_explicit: * @alignment: an #AdgAlignment container * @x_factor: x component of the factor * @y_factor: y component of the factor * * Convenient wrapper around adg_alignment_set_factor() that accepts * explicit factors instead of an #CpmlPair value. * * Since: 1.0 **/ void adg_alignment_set_factor_explicit(AdgAlignment *alignment, gdouble x_factor, gdouble y_factor) { CpmlPair factor; factor.x = x_factor; factor.y = y_factor; adg_alignment_set_factor(alignment, &factor); }
static void _adg_cell_set_value_pos(AdgTableCell *table_cell, const CpmlPair *from_factor, const CpmlPair *to_factor) { AdgAlignment *alignment; if (table_cell->value == NULL) return; alignment = (AdgAlignment *) adg_entity_get_parent(table_cell->value); if (from_factor) adg_alignment_set_factor(alignment, from_factor); if (to_factor) table_cell->value_factor = *to_factor; }