forked from enlightenment/efl
elm test_gengrid.c: Added a 'GenGrid Item Styles' sample to check all the gengrid item styles.
SVN revision: 79502
This commit is contained in:
parent
a96f0f2a13
commit
dddfb6585a
|
@ -111,6 +111,7 @@ void test_table7(void *data, Evas_Object *obj, void *event_info);
|
||||||
void test_gengrid(void *data, Evas_Object *obj, void *event_info);
|
void test_gengrid(void *data, Evas_Object *obj, void *event_info);
|
||||||
void test_gengrid2(void *data, Evas_Object *obj, void *event_info);
|
void test_gengrid2(void *data, Evas_Object *obj, void *event_info);
|
||||||
void test_gengrid3(void *data, Evas_Object *obj, void *event_info);
|
void test_gengrid3(void *data, Evas_Object *obj, void *event_info);
|
||||||
|
void test_gengrid_item_styles(void *data, Evas_Object *obj, void *event_info);
|
||||||
void test_win_state(void *data, Evas_Object *obj, void *event_info);
|
void test_win_state(void *data, Evas_Object *obj, void *event_info);
|
||||||
void test_win_state2(void *data, Evas_Object *obj, void *event_info);
|
void test_win_state2(void *data, Evas_Object *obj, void *event_info);
|
||||||
void test_progressbar(void *data, Evas_Object *obj, void *event_info);
|
void test_progressbar(void *data, Evas_Object *obj, void *event_info);
|
||||||
|
@ -592,6 +593,7 @@ add_tests:
|
||||||
ADD_TEST(NULL, "Lists", "GenGrid", test_gengrid);
|
ADD_TEST(NULL, "Lists", "GenGrid", test_gengrid);
|
||||||
ADD_TEST(NULL, "Lists", "GenGrid 2", test_gengrid2);
|
ADD_TEST(NULL, "Lists", "GenGrid 2", test_gengrid2);
|
||||||
ADD_TEST(NULL, "Lists", "GenGrid Group", test_gengrid3);
|
ADD_TEST(NULL, "Lists", "GenGrid Group", test_gengrid3);
|
||||||
|
ADD_TEST(NULL, "Lists", "GenGrid Item Styles", test_gengrid_item_styles);
|
||||||
|
|
||||||
//------------------------------//
|
//------------------------------//
|
||||||
ADD_TEST(NULL, "General", "Scaling", test_scaling);
|
ADD_TEST(NULL, "General", "Scaling", test_scaling);
|
||||||
|
|
|
@ -6,6 +6,11 @@
|
||||||
#include <Elementary.h>
|
#include <Elementary.h>
|
||||||
#ifndef ELM_LIB_QUICKLAUNCH
|
#ifndef ELM_LIB_QUICKLAUNCH
|
||||||
|
|
||||||
|
#define WEIGHT evas_object_size_hint_weight_set
|
||||||
|
#define ALIGN_ evas_object_size_hint_align_set
|
||||||
|
#define EXPAND(X) WEIGHT((X), EVAS_HINT_EXPAND, EVAS_HINT_EXPAND)
|
||||||
|
#define FILL(X) ALIGN_((X), EVAS_HINT_FILL, EVAS_HINT_FILL)
|
||||||
|
|
||||||
static Elm_Gengrid_Item_Class *gic;
|
static Elm_Gengrid_Item_Class *gic;
|
||||||
static Elm_Gengrid_Item_Class ggic;
|
static Elm_Gengrid_Item_Class ggic;
|
||||||
|
|
||||||
|
@ -853,4 +858,136 @@ test_gengrid3(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
|
||||||
evas_object_show(win);
|
evas_object_show(win);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* test gengrid item styles */
|
||||||
|
|
||||||
|
static void
|
||||||
|
_del_cb(void *data, Evas_Object *obj __UNUSED__)
|
||||||
|
{
|
||||||
|
free(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Evas_Object *
|
||||||
|
_gengrid_create(Evas_Object *obj, int items, const char *style)
|
||||||
|
{
|
||||||
|
static Evas_Object *grid = NULL;
|
||||||
|
Elm_Gengrid_Item_Class *ic;
|
||||||
|
Testitem *ti;
|
||||||
|
int i, n;
|
||||||
|
char buf[PATH_MAX];
|
||||||
|
|
||||||
|
if (grid)
|
||||||
|
elm_gengrid_clear(grid);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!obj) return NULL;
|
||||||
|
grid = elm_gengrid_add(obj);
|
||||||
|
elm_gengrid_item_size_set(grid, 150, 150);
|
||||||
|
EXPAND(grid); FILL(grid);
|
||||||
|
}
|
||||||
|
|
||||||
|
ic = elm_gengrid_item_class_new();
|
||||||
|
if (style) ic->item_style = style;
|
||||||
|
else ic->item_style = "default";
|
||||||
|
ic->func.text_get = grid_text_get;
|
||||||
|
ic->func.content_get = grid_content_get;
|
||||||
|
ic->func.state_get = NULL;
|
||||||
|
ic->func.del = _del_cb;
|
||||||
|
|
||||||
|
n = 0;
|
||||||
|
for (i = 0; i < items; i++)
|
||||||
|
{
|
||||||
|
ti = calloc(1, sizeof(Testitem));
|
||||||
|
snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), img[n]);
|
||||||
|
n = (n + 1) % 9;
|
||||||
|
ti->mode = i;
|
||||||
|
ti->path = eina_stringshare_add(buf);
|
||||||
|
ti->item = elm_gengrid_item_append(grid, ic, ti, NULL, NULL);
|
||||||
|
}
|
||||||
|
elm_gengrid_item_class_free(ic);
|
||||||
|
|
||||||
|
return grid;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_item_style_sel_cb(void *data, Evas_Object *obj __UNUSED__,
|
||||||
|
void *event_info __UNUSED__)
|
||||||
|
{
|
||||||
|
_gengrid_create(NULL, (12*12), data);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Evas_Object *
|
||||||
|
_item_styles_list_create(Evas_Object *parent)
|
||||||
|
{
|
||||||
|
Evas_Object *list;
|
||||||
|
|
||||||
|
list = elm_list_add(parent);
|
||||||
|
EXPAND(list); FILL(list);
|
||||||
|
elm_list_item_append(list, "default", NULL, NULL,
|
||||||
|
_item_style_sel_cb, "default");
|
||||||
|
elm_list_item_append(list, "default_style", NULL, NULL,
|
||||||
|
_item_style_sel_cb, "default_style");
|
||||||
|
elm_list_item_append(list, "up", NULL, NULL,
|
||||||
|
_item_style_sel_cb, "up");
|
||||||
|
elm_list_item_append(list, "album-preview", NULL, NULL,
|
||||||
|
_item_style_sel_cb, "album-preview");
|
||||||
|
elm_list_item_append(list, "thumb", NULL, NULL,
|
||||||
|
_item_style_sel_cb, "thumb");
|
||||||
|
elm_list_go(list);
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set elementary widget's min size.
|
||||||
|
* We should not set min size hint to elementary widgets because elementary has
|
||||||
|
* its own size policy/logic. This is an official trick from raster
|
||||||
|
*/
|
||||||
|
static Evas_Object *
|
||||||
|
_elm_min_set(Evas_Object *obj, Evas_Object *parent, Evas_Coord w, Evas_Coord h)
|
||||||
|
{
|
||||||
|
Evas_Object *table, *rect;
|
||||||
|
|
||||||
|
table = elm_table_add(parent);
|
||||||
|
|
||||||
|
rect = evas_object_rectangle_add(evas_object_evas_get(table));
|
||||||
|
evas_object_size_hint_min_set(rect, w, h);
|
||||||
|
EXPAND(rect); FILL(rect);
|
||||||
|
elm_table_pack(table, rect, 0, 0, 1, 1);
|
||||||
|
|
||||||
|
EXPAND(obj); FILL(obj);
|
||||||
|
elm_table_pack(table, obj, 0, 0, 1, 1);
|
||||||
|
|
||||||
|
return table;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
test_gengrid_item_styles(void *data __UNUSED__, Evas_Object *obj __UNUSED__,
|
||||||
|
void *event_info __UNUSED__)
|
||||||
|
{
|
||||||
|
Evas_Object *win, *box, *gengrid, *list, *table;
|
||||||
|
|
||||||
|
win = elm_win_util_standard_add("gengrid-styles", "Gengrid Item Styles");
|
||||||
|
elm_win_autodel_set(win, EINA_TRUE);
|
||||||
|
evas_object_resize(win, 600, 600);
|
||||||
|
evas_object_show(win);
|
||||||
|
|
||||||
|
box = elm_box_add(win);
|
||||||
|
elm_box_horizontal_set(box, EINA_TRUE);
|
||||||
|
EXPAND(box);
|
||||||
|
elm_win_resize_object_add(win, box);
|
||||||
|
evas_object_show(box);
|
||||||
|
|
||||||
|
list = _item_styles_list_create(box);
|
||||||
|
evas_object_show(list);
|
||||||
|
|
||||||
|
table = _elm_min_set(list, box, 100, 0);
|
||||||
|
WEIGHT(table, 0, EVAS_HINT_EXPAND);
|
||||||
|
FILL(table);
|
||||||
|
elm_box_pack_end(box, table);
|
||||||
|
evas_object_show(table);
|
||||||
|
|
||||||
|
gengrid = _gengrid_create(win, (12 * 12), NULL);
|
||||||
|
elm_box_pack_end(box, gengrid);
|
||||||
|
evas_object_show(gengrid);
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue