예제 #1
0
파일: test-container.c 프로젝트: bert/adg
static void
_adg_behavior_misc(void)
{
    AdgContainer *container;
    AdgEntity *entity1, *entity2;
    GSList *children;

    container = adg_container_new();
    entity1 = ADG_ENTITY(adg_toy_text_new("Testing..."));
    entity2 = ADG_ENTITY(adg_title_block_new());

    children = adg_container_children(container);
    g_assert_null(children);

    adg_container_add(container, entity1);
    children = adg_container_children(container);
    g_assert_nonnull(children);
    g_assert_cmpint(g_slist_length(children), ==, 1);
    g_slist_free(children);

    adg_container_add(container, entity2);
    children = adg_container_children(container);
    g_assert_nonnull(children);
    g_assert_cmpint(g_slist_length(children), ==, 2);
    g_slist_free(children);

    adg_entity_destroy(entity1);
    children = adg_container_children(container);
    g_assert_nonnull(children);
    g_assert_cmpint(g_slist_length(children), ==, 1);
    g_slist_free(children);

    adg_entity_destroy(entity2);
    children = adg_container_children(container);
    g_assert_null(children);

    adg_entity_destroy(ADG_ENTITY(container));
}
예제 #2
0
파일: test-canvas.c 프로젝트: ntd/adg
static void
_adg_behavior_entity(void)
{
    AdgCanvas *canvas;
    const CpmlExtents *extents;
    AdgTitleBlock *title_block;

    canvas = ADG_CANVAS(adg_test_canvas());

    adg_entity_arrange(ADG_ENTITY(canvas));
    extents = adg_entity_get_extents(ADG_ENTITY(canvas));
    g_assert_true(extents->is_defined);
    adg_assert_isapprox(extents->size.x, 1);
    adg_assert_isapprox(extents->size.y, 1);

    adg_entity_invalidate(ADG_ENTITY(canvas));
    extents = adg_entity_get_extents(ADG_ENTITY(canvas));
    g_assert_false(extents->is_defined);

    title_block = adg_title_block_new();
    adg_canvas_set_title_block(canvas, title_block);
    adg_entity_arrange(ADG_ENTITY(canvas));
    extents = adg_entity_get_extents(ADG_ENTITY(canvas));
    g_assert_true(extents->is_defined);
    g_assert_cmpfloat(extents->size.x, >, 1);
    g_assert_cmpfloat(extents->size.y, >, 1);
    g_assert_cmpfloat(extents->size.x, <, 5000);
    g_assert_cmpfloat(extents->size.y, <, 5000);

    adg_canvas_set_size_explicit(canvas, 5000, 5000);
    adg_entity_arrange(ADG_ENTITY(canvas));
    extents = adg_entity_get_extents(ADG_ENTITY(canvas));
    g_assert_true(extents->is_defined);
    adg_assert_isapprox(extents->size.x, 5000);
    adg_assert_isapprox(extents->size.y, 5000);

    adg_entity_destroy(ADG_ENTITY(canvas));
}