From 8eeeb939aab82a903cb0734b8796b654577f91b9 Mon Sep 17 00:00:00 2001 From: tasn Date: Thu, 23 Feb 2012 13:58:35 +0000 Subject: [PATCH] elementary: Updated test_grid.c to do API testing Signed-off-by: Aharon Hillel git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@68331 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/bin/test_grid.c | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 94 insertions(+), 1 deletion(-) diff --git a/src/bin/test_grid.c b/src/bin/test_grid.c index 4262ccc..1c7c580 100644 --- a/src/bin/test_grid.c +++ b/src/bin/test_grid.c @@ -1,8 +1,84 @@ #include +#include "test.h" #ifdef HAVE_CONFIG_H # include "elementary_config.h" #endif -#ifndef ELM_LIB_QUICKLAUNCH +# ifndef ELM_LIB_QUICKLAUNCH +struct _Api_Data +{ + Evas_Object *grid; + Evas_Object *child; +}; +typedef struct _Api_Data Api_Data; + +struct _api_data +{ + unsigned int state; /* What state we are testing */ + Api_Data data; +}; +typedef struct _api_data api_data; + +enum _api_state +{ + GRID_PACK_SET, + GRID_UNPACK, + GRID_SIZE, + GRID_CLEAR, + API_STATE_LAST +}; +typedef enum _api_state api_state; + +static void +set_api_state(api_data *api) +{ + Api_Data *dt = &api->data; + int w, h; + + switch(api->state) + { /* Put all api-changes under switch */ + case GRID_PACK_SET: /* 0 */ + elm_grid_pack_set(dt->child, 5, 15, 60, 40); + break; + + case GRID_UNPACK: /* 1 */ + elm_grid_unpack(dt->grid, dt->child); + evas_object_del(dt->child); + break; + + case GRID_SIZE: /* 2 */ + elm_grid_size_get(dt->grid, &w, &h); + printf("size w=<%d> h=<%d>\n", w, h); + w = h = 100; /* grid size returns wrong values */ + w += 30; + h += 10; + + elm_grid_size_set(dt->grid, w, h); + break; + + case GRID_CLEAR: /* 3 */ + elm_grid_clear(dt->grid, EINA_TRUE); + break; + + default: + return; + } +} + +static void +_api_bt_clicked(void *data, Evas_Object *obj, void *event_info __UNUSED__) +{ /* Will add here a SWITCH command containing code to modify test-object */ + /* in accordance a->state value. */ + api_data *a = data; + char str[128]; + + printf("clicked event on API Button: api_state=<%d>\n", a->state); + set_api_state(a); + a->state++; + sprintf(str, "Next API function (%u)", a->state); + elm_object_text_set(obj, str); + elm_object_disabled_set(obj, a->state == API_STATE_LAST); +} + static void _ch_grid(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__) { @@ -12,6 +88,12 @@ _ch_grid(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__) elm_grid_pack_set(obj, x - 1, y - 1, w + 2, h + 2); } +static void +_cleanup_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) +{ + free(data); +} + void test_grid(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { @@ -20,16 +102,19 @@ test_grid(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info _ win = elm_win_add(NULL, "grid", ELM_WIN_BASIC); elm_win_title_set(win, "Grid"); elm_win_autodel_set(win, EINA_TRUE); + api_data *api = calloc(1, sizeof(api_data)); bg = elm_bg_add(win); evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, bg); evas_object_show(bg); + evas_object_event_callback_add(win, EVAS_CALLBACK_FREE, _cleanup_cb, api); gd = elm_grid_add(win); elm_grid_size_set(gd, 100, 100); elm_win_resize_object_add(win, gd); evas_object_size_hint_weight_set(gd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + api->data.grid = gd; evas_object_show(gd); en = elm_entry_add(win); @@ -47,6 +132,13 @@ test_grid(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info _ evas_object_show(en); bt = elm_button_add(win); + elm_object_text_set(bt, "Next API function"); + evas_object_smart_callback_add(bt, "clicked", _api_bt_clicked, (void *) api); + elm_grid_pack(gd, bt, 30, 0, 40, 10); + elm_object_disabled_set(bt, api->state == API_STATE_LAST); + evas_object_show(bt); + + bt = elm_button_add(win); elm_object_text_set(bt, "Button"); elm_grid_pack(gd, bt, 0, 0, 20, 20); evas_object_show(bt); @@ -54,6 +146,7 @@ test_grid(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info _ bt = elm_button_add(win); elm_object_text_set(bt, "Button"); elm_grid_pack(gd, bt, 10, 10, 40, 20); + api->data.child = bt; evas_object_show(bt); bt = elm_button_add(win); -- 2.7.4