diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index 55f6267..0d3f875 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -29,6 +29,14 @@ widgets_file_icons_2_same.c \ widgets_file_icons_2_same_grouped.c \ widgets_file_icons_3.c \ widgets_file_icons_4.c \ +widgets_list_1.c \ +widgets_list_1_grouped.c \ +widgets_list_2.c \ +widgets_list_2_grouped.c \ +widgets_list_3.c \ +widgets_list_3_grouped.c \ +widgets_list_4.c \ +widgets_list_4_grouped.c \ image_blend_unscaled.c \ image_blend_solid_middle_unscaled.c \ image_blend_fade_unscaled.c \ diff --git a/src/bin/tests.h b/src/bin/tests.h index 3b09e26..ec8402c 100644 --- a/src/bin/tests.h +++ b/src/bin/tests.h @@ -5,6 +5,14 @@ #include "widgets_file_icons_2_same_grouped.c" #include "widgets_file_icons_3.c" #include "widgets_file_icons_4.c" +#include "widgets_list_1.c" +#include "widgets_list_1_grouped.c" +#include "widgets_list_2.c" +#include "widgets_list_2_grouped.c" +#include "widgets_list_3.c" +#include "widgets_list_3_grouped.c" +#include "widgets_list_4.c" +#include "widgets_list_4_grouped.c" #include "image_blend_unscaled.c" #include "image_blend_solid_middle_unscaled.c" #include "image_blend_fade_unscaled.c" diff --git a/src/bin/ui.c b/src/bin/ui.c index 6b2ca92..98c44e1 100644 --- a/src/bin/ui.c +++ b/src/bin/ui.c @@ -53,11 +53,19 @@ static double weights[] = 0.0, // no test 0 50.4851, // test 1 - 37.3703, // test 2 - 37.3703, // test 3 - 27.3703, // test 4 - 27.3703, // test 5 - 10.6493, // ... + 97.3703, // test 2 + 10.0000, // test 3 + 87.3703, // ... + 10.0000, + 150.0000, + 10.0000, + 150.0000, + 10.0000, + 150.0000, + 10.0000, + 150.0000, + 10.0000, + 10.6493, 38.4818, 40.7314, 32.0866, diff --git a/src/bin/widgets_list_1.c b/src/bin/widgets_list_1.c new file mode 100644 index 0000000..64cd2a1 --- /dev/null +++ b/src/bin/widgets_list_1.c @@ -0,0 +1,150 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME widgets_list_1_start +#define NAME "Widgets List" +#define ICON "widgets.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +/* standard var */ +static int done = 0; +/* private data */ +#define NUM 512 +#define ICON_SIZE 64 +static Evas_Object *o_images[NUM]; +static Evas_Object *o_texts[NUM]; + +static const char *labels[] = +{ + "Andrew", + "Alex", + "Amanda", + "Arthur", + "Astrid", + "Avery", + + "Beethoven", + "Billy", + "Bob", + "Bundy", + + "Candy", + "Carsten", + + "Danny", + "Dennis", + "Dirk", + "Doug", + + "Edmond", + "Erik", + + "Fernando", + "Frank", + "Frederick", + + "Gabby", + "George", + "Gilroy", + "Goodrich", + "Gumby", +}; + +/* setup */ +static void _setup(void) +{ + int i; + Evas_Object *o; + for (i = 0; i < NUM; i++) + { + o = evas_object_image_filled_add(evas); + o_images[i] = o; + evas_object_image_border_set(o, 2, 2, 2, 2); + evas_object_image_file_set(o, build_path("pan.png"), NULL); + evas_object_resize(o, win_w, ICON_SIZE); + evas_object_show(o); + + o = evas_object_text_add(evas); + o_texts[i] = o; + evas_object_text_font_set(o, "Vera-Bold", 10); + evas_object_text_text_set(o, labels[i % 26]); + evas_object_color_set(o, 0, 0, 0, 255); + evas_object_show(o); + } + done = 0; +} + +/* cleanup */ +static void _cleanup(void) +{ + int i; + for (i = 0; i < NUM; i++) evas_object_del(o_images[i]); + for (i = 0; i < NUM; i++) evas_object_del(o_texts[i]); +} + +/* loop - do things */ +static void _loop(double t, int f) +{ + int i; + Evas_Coord x, y, w, h, tw, th, cent; + x = 0; + y = 0 - f; + w = win_w; + h = ICON_SIZE; + for (i = 0; i < NUM; i++) + { + evas_object_move(o_images[i], x, y); + evas_object_geometry_get(o_texts[i], NULL, NULL, &tw, &th); + cent = (ICON_SIZE - th) / 2; + evas_object_move(o_texts[i], x + 8, y + cent); + y += ICON_SIZE; + } + FPS_STD(NAME); +} + +/* prepend special key handlers if interactive (before STD) */ +static void _key(char *key) +{ + KEY_STD; +} + + + + + + + + + + + + +/* template stuff - ignore */ +# endif +#endif + +#ifdef UI +_ui_menu_item_add(ICON, NAME, FNAME); +#endif + +#ifdef PROTO +void FNAME(void); +#endif + +#ifndef PROTO +# ifndef UI +void FNAME(void) +{ + ui_func_set(_key, _loop); + _setup(); +} +# endif +#endif +#undef FNAME +#undef NAME +#undef ICON diff --git a/src/bin/widgets_list_1_grouped.c b/src/bin/widgets_list_1_grouped.c new file mode 100644 index 0000000..b327efb --- /dev/null +++ b/src/bin/widgets_list_1_grouped.c @@ -0,0 +1,158 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME widgets_list_1_grouped_start +#define NAME "Widgets List Grouped" +#define ICON "widgets.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +/* standard var */ +static int done = 0; +/* private data */ +#define NUM 512 +#define ICON_SIZE 64 +static Evas_Object *o_images[NUM]; +static Evas_Object *o_texts[NUM]; + +static const char *labels[] = +{ + "Andrew", + "Alex", + "Amanda", + "Arthur", + "Astrid", + "Avery", + + "Beethoven", + "Billy", + "Bob", + "Bundy", + + "Candy", + "Carsten", + + "Danny", + "Dennis", + "Dirk", + "Doug", + + "Edmond", + "Erik", + + "Fernando", + "Frank", + "Frederick", + + "Gabby", + "George", + "Gilroy", + "Goodrich", + "Gumby", +}; + +/* setup */ +static void _setup(void) +{ + int i; + Evas_Object *o; + for (i = 0; i < NUM; i++) + { + o = evas_object_image_filled_add(evas); + o_images[i] = o; + evas_object_image_border_set(o, 2, 2, 2, 2); + evas_object_image_file_set(o, build_path("pan.png"), NULL); + evas_object_resize(o, win_w, ICON_SIZE); + evas_object_show(o); + + o = evas_object_text_add(evas); + o_texts[i] = o; + evas_object_text_font_set(o, "Vera-Bold", 10); + evas_object_text_text_set(o, labels[i % 26]); + evas_object_color_set(o, 0, 0, 0, 255); + evas_object_show(o); + } + for (i = 0; i < NUM; i++) + { + evas_object_raise(o_images[i]); + } + for (i = 0; i < NUM; i++) + { + evas_object_raise(o_texts[i]); + } + done = 0; +} + +/* cleanup */ +static void _cleanup(void) +{ + int i; + for (i = 0; i < NUM; i++) evas_object_del(o_images[i]); + for (i = 0; i < NUM; i++) evas_object_del(o_texts[i]); +} + +/* loop - do things */ +static void _loop(double t, int f) +{ + int i; + Evas_Coord x, y, w, h, tw, th, cent; + x = 0; + y = 0 - f; + w = win_w; + h = ICON_SIZE; + for (i = 0; i < NUM; i++) + { + evas_object_move(o_images[i], x, y); + evas_object_geometry_get(o_texts[i], NULL, NULL, &tw, &th); + cent = (ICON_SIZE - th) / 2; + evas_object_move(o_texts[i], x + 8, y + cent); + y += ICON_SIZE; + } + FPS_STD(NAME); +} + +/* prepend special key handlers if interactive (before STD) */ +static void _key(char *key) +{ + KEY_STD; +} + + + + + + + + + + + + +/* template stuff - ignore */ +# endif +#endif + +#ifdef UI +_ui_menu_item_add(ICON, NAME, FNAME); +#endif + +#ifdef PROTO +void FNAME(void); +#endif + +#ifndef PROTO +# ifndef UI +void FNAME(void) +{ + ui_func_set(_key, _loop); + _setup(); +} +# endif +#endif +#undef FNAME +#undef NAME +#undef ICON diff --git a/src/bin/widgets_list_2.c b/src/bin/widgets_list_2.c new file mode 100644 index 0000000..56dff92 --- /dev/null +++ b/src/bin/widgets_list_2.c @@ -0,0 +1,150 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME widgets_list_2_start +#define NAME "Widgets List 2" +#define ICON "widgets.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +/* standard var */ +static int done = 0; +/* private data */ +#define NUM 512 +#define ICON_SIZE 32 +static Evas_Object *o_images[NUM]; +static Evas_Object *o_texts[NUM]; + +static const char *labels[] = +{ + "Andrew", + "Alex", + "Amanda", + "Arthur", + "Astrid", + "Avery", + + "Beethoven", + "Billy", + "Bob", + "Bundy", + + "Candy", + "Carsten", + + "Danny", + "Dennis", + "Dirk", + "Doug", + + "Edmond", + "Erik", + + "Fernando", + "Frank", + "Frederick", + + "Gabby", + "George", + "Gilroy", + "Goodrich", + "Gumby", +}; + +/* setup */ +static void _setup(void) +{ + int i; + Evas_Object *o; + for (i = 0; i < NUM; i++) + { + o = evas_object_image_filled_add(evas); + o_images[i] = o; + evas_object_image_border_set(o, 2, 2, 2, 2); + evas_object_image_file_set(o, build_path("pan.png"), NULL); + evas_object_resize(o, win_w, ICON_SIZE); + evas_object_show(o); + + o = evas_object_text_add(evas); + o_texts[i] = o; + evas_object_text_font_set(o, "Vera-Bold", 10); + evas_object_text_text_set(o, labels[i % 26]); + evas_object_color_set(o, 0, 0, 0, 255); + evas_object_show(o); + } + done = 0; +} + +/* cleanup */ +static void _cleanup(void) +{ + int i; + for (i = 0; i < NUM; i++) evas_object_del(o_images[i]); + for (i = 0; i < NUM; i++) evas_object_del(o_texts[i]); +} + +/* loop - do things */ +static void _loop(double t, int f) +{ + int i; + Evas_Coord x, y, w, h, tw, th, cent; + x = 0; + y = 0 - f; + w = win_w; + h = ICON_SIZE; + for (i = 0; i < NUM; i++) + { + evas_object_move(o_images[i], x, y); + evas_object_geometry_get(o_texts[i], NULL, NULL, &tw, &th); + cent = (ICON_SIZE - th) / 2; + evas_object_move(o_texts[i], x + 8, y + cent); + y += ICON_SIZE; + } + FPS_STD(NAME); +} + +/* prepend special key handlers if interactive (before STD) */ +static void _key(char *key) +{ + KEY_STD; +} + + + + + + + + + + + + +/* template stuff - ignore */ +# endif +#endif + +#ifdef UI +_ui_menu_item_add(ICON, NAME, FNAME); +#endif + +#ifdef PROTO +void FNAME(void); +#endif + +#ifndef PROTO +# ifndef UI +void FNAME(void) +{ + ui_func_set(_key, _loop); + _setup(); +} +# endif +#endif +#undef FNAME +#undef NAME +#undef ICON diff --git a/src/bin/widgets_list_2_grouped.c b/src/bin/widgets_list_2_grouped.c new file mode 100644 index 0000000..fae8011 --- /dev/null +++ b/src/bin/widgets_list_2_grouped.c @@ -0,0 +1,158 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME widgets_list_2_grouped_start +#define NAME "Widgets List 2 Grouped" +#define ICON "widgets.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +/* standard var */ +static int done = 0; +/* private data */ +#define NUM 512 +#define ICON_SIZE 64 +static Evas_Object *o_images[NUM]; +static Evas_Object *o_texts[NUM]; + +static const char *labels[] = +{ + "Andrew", + "Alex", + "Amanda", + "Arthur", + "Astrid", + "Avery", + + "Beethoven", + "Billy", + "Bob", + "Bundy", + + "Candy", + "Carsten", + + "Danny", + "Dennis", + "Dirk", + "Doug", + + "Edmond", + "Erik", + + "Fernando", + "Frank", + "Frederick", + + "Gabby", + "George", + "Gilroy", + "Goodrich", + "Gumby", +}; + +/* setup */ +static void _setup(void) +{ + int i; + Evas_Object *o; + for (i = 0; i < NUM; i++) + { + o = evas_object_image_filled_add(evas); + o_images[i] = o; + evas_object_image_border_set(o, 2, 2, 2, 2); + evas_object_image_file_set(o, build_path("pan.png"), NULL); + evas_object_resize(o, win_w, ICON_SIZE); + evas_object_show(o); + + o = evas_object_text_add(evas); + o_texts[i] = o; + evas_object_text_font_set(o, "Vera-Bold", 10); + evas_object_text_text_set(o, labels[i % 26]); + evas_object_color_set(o, 0, 0, 0, 255); + evas_object_show(o); + } + for (i = 0; i < NUM; i++) + { + evas_object_raise(o_images[i]); + } + for (i = 0; i < NUM; i++) + { + evas_object_raise(o_texts[i]); + } + done = 0; +} + +/* cleanup */ +static void _cleanup(void) +{ + int i; + for (i = 0; i < NUM; i++) evas_object_del(o_images[i]); + for (i = 0; i < NUM; i++) evas_object_del(o_texts[i]); +} + +/* loop - do things */ +static void _loop(double t, int f) +{ + int i; + Evas_Coord x, y, w, h, tw, th, cent; + x = 0; + y = 0 - f; + w = win_w; + h = ICON_SIZE; + for (i = 0; i < NUM; i++) + { + evas_object_move(o_images[i], x, y); + evas_object_geometry_get(o_texts[i], NULL, NULL, &tw, &th); + cent = (ICON_SIZE - th) / 2; + evas_object_move(o_texts[i], x + 8, y + cent); + y += ICON_SIZE; + } + FPS_STD(NAME); +} + +/* prepend special key handlers if interactive (before STD) */ +static void _key(char *key) +{ + KEY_STD; +} + + + + + + + + + + + + +/* template stuff - ignore */ +# endif +#endif + +#ifdef UI +_ui_menu_item_add(ICON, NAME, FNAME); +#endif + +#ifdef PROTO +void FNAME(void); +#endif + +#ifndef PROTO +# ifndef UI +void FNAME(void) +{ + ui_func_set(_key, _loop); + _setup(); +} +# endif +#endif +#undef FNAME +#undef NAME +#undef ICON diff --git a/src/bin/widgets_list_3.c b/src/bin/widgets_list_3.c new file mode 100644 index 0000000..ae022cd --- /dev/null +++ b/src/bin/widgets_list_3.c @@ -0,0 +1,180 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME widgets_list_3_start +#define NAME "Widgets List 3" +#define ICON "widgets.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +/* standard var */ +static int done = 0; +/* private data */ +#define NUM 512 +#define ICON_SIZE 64 +static Evas_Object *o_images[NUM]; +static Evas_Object *o_icons[NUM]; +static Evas_Object *o_texts[NUM]; + +static const char *icons[] = +{ + "bug.png", + "bulb.png", + "camera.png", + "colorbox.png", + + "e.png", + "error.png", + "flower.png", + "house.png", + + "mushroom.png", + "pulse.png", + "typewriter.png", + "warning.png", + + "watch.png" +}; + +static const char *labels[] = +{ + "Andrew", + "Alex", + "Amanda", + "Arthur", + "Astrid", + "Avery", + + "Beethoven", + "Billy", + "Bob", + "Bundy", + + "Candy", + "Carsten", + + "Danny", + "Dennis", + "Dirk", + "Doug", + + "Edmond", + "Erik", + + "Fernando", + "Frank", + "Frederick", + + "Gabby", + "George", + "Gilroy", + "Goodrich", + "Gumby", +}; + +/* setup */ +static void _setup(void) +{ + int i; + Evas_Object *o; + for (i = 0; i < NUM; i++) + { + o = evas_object_image_filled_add(evas); + o_images[i] = o; + evas_object_image_border_set(o, 2, 2, 2, 2); + evas_object_image_file_set(o, build_path("pan.png"), NULL); + evas_object_resize(o, win_w, ICON_SIZE); + evas_object_show(o); + + o = evas_object_image_filled_add(evas); + o_icons[i] = o; + evas_object_image_border_set(o, 2, 2, 2, 2); + evas_object_image_file_set(o, build_path(icons[i % 13]), NULL); + evas_object_resize(o, ICON_SIZE - 8, ICON_SIZE - 8); + evas_object_show(o); + + o = evas_object_text_add(evas); + o_texts[i] = o; + evas_object_text_font_set(o, "Vera-Bold", 10); + evas_object_text_text_set(o, labels[i % 26]); + evas_object_color_set(o, 0, 0, 0, 255); + evas_object_show(o); + } + done = 0; +} + +/* cleanup */ +static void _cleanup(void) +{ + int i; + for (i = 0; i < NUM; i++) evas_object_del(o_images[i]); + for (i = 0; i < NUM; i++) evas_object_del(o_icons[i]); + for (i = 0; i < NUM; i++) evas_object_del(o_texts[i]); +} + +/* loop - do things */ +static void _loop(double t, int f) +{ + int i; + Evas_Coord x, y, w, h, tw, th, cent; + x = 0; + y = 0 - f; + w = win_w; + h = ICON_SIZE; + for (i = 0; i < NUM; i++) + { + evas_object_move(o_images[i], x, y); + evas_object_move(o_icons[i], x + 4, y + 4); + evas_object_geometry_get(o_texts[i], NULL, NULL, &tw, &th); + cent = (ICON_SIZE - th) / 2; + evas_object_move(o_texts[i], x + 8 + ICON_SIZE + 8, y + cent); + y += ICON_SIZE; + } + FPS_STD(NAME); +} + +/* prepend special key handlers if interactive (before STD) */ +static void _key(char *key) +{ + KEY_STD; +} + + + + + + + + + + + + +/* template stuff - ignore */ +# endif +#endif + +#ifdef UI +_ui_menu_item_add(ICON, NAME, FNAME); +#endif + +#ifdef PROTO +void FNAME(void); +#endif + +#ifndef PROTO +# ifndef UI +void FNAME(void) +{ + ui_func_set(_key, _loop); + _setup(); +} +# endif +#endif +#undef FNAME +#undef NAME +#undef ICON diff --git a/src/bin/widgets_list_3_grouped.c b/src/bin/widgets_list_3_grouped.c new file mode 100644 index 0000000..d545f0f --- /dev/null +++ b/src/bin/widgets_list_3_grouped.c @@ -0,0 +1,196 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME widgets_list_3_grouped_start +#define NAME "Widgets List 3 Grouped" +#define ICON "widgets.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +/* standard var */ +static int done = 0; +/* private data */ +#define NUM 512 +#define ICON_SIZE 64 +static Evas_Object *o_images[NUM]; +static Evas_Object *o_icons[NUM]; +static Evas_Object *o_texts[NUM]; + +static const char *icons[] = +{ + "bug.png", + "bulb.png", + "camera.png", + "colorbox.png", + + "e.png", + "error.png", + "flower.png", + "house.png", + + "mushroom.png", + "pulse.png", + "typewriter.png", + "warning.png", + + "watch.png" +}; + +static const char *labels[] = +{ + "Andrew", + "Alex", + "Amanda", + "Arthur", + "Astrid", + "Avery", + + "Beethoven", + "Billy", + "Bob", + "Bundy", + + "Candy", + "Carsten", + + "Danny", + "Dennis", + "Dirk", + "Doug", + + "Edmond", + "Erik", + + "Fernando", + "Frank", + "Frederick", + + "Gabby", + "George", + "Gilroy", + "Goodrich", + "Gumby", +}; + +/* setup */ +static void _setup(void) +{ + int i; + Evas_Object *o; + for (i = 0; i < NUM; i++) + { + o = evas_object_image_filled_add(evas); + o_images[i] = o; + evas_object_image_border_set(o, 2, 2, 2, 2); + evas_object_image_file_set(o, build_path("pan.png"), NULL); + evas_object_resize(o, win_w, ICON_SIZE); + evas_object_show(o); + + o = evas_object_image_filled_add(evas); + o_icons[i] = o; + evas_object_image_border_set(o, 2, 2, 2, 2); + evas_object_image_file_set(o, build_path(icons[i % 13]), NULL); + evas_object_resize(o, ICON_SIZE - 8, ICON_SIZE - 8); + evas_object_show(o); + + o = evas_object_text_add(evas); + o_texts[i] = o; + evas_object_text_font_set(o, "Vera-Bold", 10); + evas_object_text_text_set(o, labels[i % 26]); + evas_object_color_set(o, 0, 0, 0, 255); + evas_object_show(o); + } + for (i = 0; i < NUM; i++) + { + evas_object_raise(o_images[i]); + } + for (i = 0; i < NUM; i++) + { + evas_object_raise(o_icons[i]); + } + for (i = 0; i < NUM; i++) + { + if (i > 13) evas_object_stack_above(o_icons[i], o_icons[i - 13]); + } + for (i = 0; i < NUM; i++) + { + evas_object_raise(o_texts[i]); + } + done = 0; +} + +/* cleanup */ +static void _cleanup(void) +{ + int i; + for (i = 0; i < NUM; i++) evas_object_del(o_images[i]); + for (i = 0; i < NUM; i++) evas_object_del(o_icons[i]); + for (i = 0; i < NUM; i++) evas_object_del(o_texts[i]); +} + +/* loop - do things */ +static void _loop(double t, int f) +{ + int i; + Evas_Coord x, y, w, h, tw, th, cent; + x = 0; + y = 0 - f; + w = win_w; + h = ICON_SIZE; + for (i = 0; i < NUM; i++) + { + evas_object_move(o_images[i], x, y); + evas_object_move(o_icons[i], x + 4, y + 4); + evas_object_geometry_get(o_texts[i], NULL, NULL, &tw, &th); + cent = (ICON_SIZE - th) / 2; + evas_object_move(o_texts[i], x + 8 + ICON_SIZE + 8, y + cent); + y += ICON_SIZE; + } + FPS_STD(NAME); +} + +/* prepend special key handlers if interactive (before STD) */ +static void _key(char *key) +{ + KEY_STD; +} + + + + + + + + + + + + +/* template stuff - ignore */ +# endif +#endif + +#ifdef UI +_ui_menu_item_add(ICON, NAME, FNAME); +#endif + +#ifdef PROTO +void FNAME(void); +#endif + +#ifndef PROTO +# ifndef UI +void FNAME(void) +{ + ui_func_set(_key, _loop); + _setup(); +} +# endif +#endif +#undef FNAME +#undef NAME +#undef ICON diff --git a/src/bin/widgets_list_4.c b/src/bin/widgets_list_4.c new file mode 100644 index 0000000..4291b29 --- /dev/null +++ b/src/bin/widgets_list_4.c @@ -0,0 +1,180 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME widgets_list_4_start +#define NAME "Widgets List 4" +#define ICON "widgets.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +/* standard var */ +static int done = 0; +/* private data */ +#define NUM 512 +#define ICON_SIZE 32 +static Evas_Object *o_images[NUM]; +static Evas_Object *o_icons[NUM]; +static Evas_Object *o_texts[NUM]; + +static const char *icons[] = +{ + "bug.png", + "bulb.png", + "camera.png", + "colorbox.png", + + "e.png", + "error.png", + "flower.png", + "house.png", + + "mushroom.png", + "pulse.png", + "typewriter.png", + "warning.png", + + "watch.png" +}; + +static const char *labels[] = +{ + "Andrew", + "Alex", + "Amanda", + "Arthur", + "Astrid", + "Avery", + + "Beethoven", + "Billy", + "Bob", + "Bundy", + + "Candy", + "Carsten", + + "Danny", + "Dennis", + "Dirk", + "Doug", + + "Edmond", + "Erik", + + "Fernando", + "Frank", + "Frederick", + + "Gabby", + "George", + "Gilroy", + "Goodrich", + "Gumby", +}; + +/* setup */ +static void _setup(void) +{ + int i; + Evas_Object *o; + for (i = 0; i < NUM; i++) + { + o = evas_object_image_filled_add(evas); + o_images[i] = o; + evas_object_image_border_set(o, 2, 2, 2, 2); + evas_object_image_file_set(o, build_path("pan.png"), NULL); + evas_object_resize(o, win_w, ICON_SIZE); + evas_object_show(o); + + o = evas_object_image_filled_add(evas); + o_icons[i] = o; + evas_object_image_border_set(o, 2, 2, 2, 2); + evas_object_image_file_set(o, build_path(icons[i % 13]), NULL); + evas_object_resize(o, ICON_SIZE - 8, ICON_SIZE - 8); + evas_object_show(o); + + o = evas_object_text_add(evas); + o_texts[i] = o; + evas_object_text_font_set(o, "Vera-Bold", 10); + evas_object_text_text_set(o, labels[i % 26]); + evas_object_color_set(o, 0, 0, 0, 255); + evas_object_show(o); + } + done = 0; +} + +/* cleanup */ +static void _cleanup(void) +{ + int i; + for (i = 0; i < NUM; i++) evas_object_del(o_images[i]); + for (i = 0; i < NUM; i++) evas_object_del(o_icons[i]); + for (i = 0; i < NUM; i++) evas_object_del(o_texts[i]); +} + +/* loop - do things */ +static void _loop(double t, int f) +{ + int i; + Evas_Coord x, y, w, h, tw, th, cent; + x = 0; + y = 0 - f; + w = win_w; + h = ICON_SIZE; + for (i = 0; i < NUM; i++) + { + evas_object_move(o_images[i], x, y); + evas_object_move(o_icons[i], x + 4, y + 4); + evas_object_geometry_get(o_texts[i], NULL, NULL, &tw, &th); + cent = (ICON_SIZE - th) / 2; + evas_object_move(o_texts[i], x + 8 + ICON_SIZE + 8, y + cent); + y += ICON_SIZE; + } + FPS_STD(NAME); +} + +/* prepend special key handlers if interactive (before STD) */ +static void _key(char *key) +{ + KEY_STD; +} + + + + + + + + + + + + +/* template stuff - ignore */ +# endif +#endif + +#ifdef UI +_ui_menu_item_add(ICON, NAME, FNAME); +#endif + +#ifdef PROTO +void FNAME(void); +#endif + +#ifndef PROTO +# ifndef UI +void FNAME(void) +{ + ui_func_set(_key, _loop); + _setup(); +} +# endif +#endif +#undef FNAME +#undef NAME +#undef ICON diff --git a/src/bin/widgets_list_4_grouped.c b/src/bin/widgets_list_4_grouped.c new file mode 100644 index 0000000..2cb9aae --- /dev/null +++ b/src/bin/widgets_list_4_grouped.c @@ -0,0 +1,196 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME widgets_list_4_grouped_start +#define NAME "Widgets List 4 Grouped" +#define ICON "widgets.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +/* standard var */ +static int done = 0; +/* private data */ +#define NUM 512 +#define ICON_SIZE 32 +static Evas_Object *o_images[NUM]; +static Evas_Object *o_icons[NUM]; +static Evas_Object *o_texts[NUM]; + +static const char *icons[] = +{ + "bug.png", + "bulb.png", + "camera.png", + "colorbox.png", + + "e.png", + "error.png", + "flower.png", + "house.png", + + "mushroom.png", + "pulse.png", + "typewriter.png", + "warning.png", + + "watch.png" +}; + +static const char *labels[] = +{ + "Andrew", + "Alex", + "Amanda", + "Arthur", + "Astrid", + "Avery", + + "Beethoven", + "Billy", + "Bob", + "Bundy", + + "Candy", + "Carsten", + + "Danny", + "Dennis", + "Dirk", + "Doug", + + "Edmond", + "Erik", + + "Fernando", + "Frank", + "Frederick", + + "Gabby", + "George", + "Gilroy", + "Goodrich", + "Gumby", +}; + +/* setup */ +static void _setup(void) +{ + int i; + Evas_Object *o; + for (i = 0; i < NUM; i++) + { + o = evas_object_image_filled_add(evas); + o_images[i] = o; + evas_object_image_border_set(o, 2, 2, 2, 2); + evas_object_image_file_set(o, build_path("pan.png"), NULL); + evas_object_resize(o, win_w, ICON_SIZE); + evas_object_show(o); + + o = evas_object_image_filled_add(evas); + o_icons[i] = o; + evas_object_image_border_set(o, 2, 2, 2, 2); + evas_object_image_file_set(o, build_path(icons[i % 13]), NULL); + evas_object_resize(o, ICON_SIZE - 8, ICON_SIZE - 8); + evas_object_show(o); + + o = evas_object_text_add(evas); + o_texts[i] = o; + evas_object_text_font_set(o, "Vera-Bold", 10); + evas_object_text_text_set(o, labels[i % 26]); + evas_object_color_set(o, 0, 0, 0, 255); + evas_object_show(o); + } + for (i = 0; i < NUM; i++) + { + evas_object_raise(o_images[i]); + } + for (i = 0; i < NUM; i++) + { + evas_object_raise(o_icons[i]); + } + for (i = 0; i < NUM; i++) + { + if (i > 13) evas_object_stack_above(o_icons[i], o_icons[i - 13]); + } + for (i = 0; i < NUM; i++) + { + evas_object_raise(o_texts[i]); + } + done = 0; +} + +/* cleanup */ +static void _cleanup(void) +{ + int i; + for (i = 0; i < NUM; i++) evas_object_del(o_images[i]); + for (i = 0; i < NUM; i++) evas_object_del(o_icons[i]); + for (i = 0; i < NUM; i++) evas_object_del(o_texts[i]); +} + +/* loop - do things */ +static void _loop(double t, int f) +{ + int i; + Evas_Coord x, y, w, h, tw, th, cent; + x = 0; + y = 0 - f; + w = win_w; + h = ICON_SIZE; + for (i = 0; i < NUM; i++) + { + evas_object_move(o_images[i], x, y); + evas_object_move(o_icons[i], x + 4, y + 4); + evas_object_geometry_get(o_texts[i], NULL, NULL, &tw, &th); + cent = (ICON_SIZE - th) / 2; + evas_object_move(o_texts[i], x + 8 + ICON_SIZE + 8, y + cent); + y += ICON_SIZE; + } + FPS_STD(NAME); +} + +/* prepend special key handlers if interactive (before STD) */ +static void _key(char *key) +{ + KEY_STD; +} + + + + + + + + + + + + +/* template stuff - ignore */ +# endif +#endif + +#ifdef UI +_ui_menu_item_add(ICON, NAME, FNAME); +#endif + +#ifdef PROTO +void FNAME(void); +#endif + +#ifndef PROTO +# ifndef UI +void FNAME(void) +{ + ui_func_set(_key, _loop); + _setup(); +} +# endif +#endif +#undef FNAME +#undef NAME +#undef ICON