2007-04-11 04:58:32 -07:00
|
|
|
#include "main.h"
|
|
|
|
|
|
|
|
#define PROTO
|
|
|
|
#include "tests.h"
|
|
|
|
#undef PROTO
|
|
|
|
|
|
|
|
static double start = 0.0;
|
|
|
|
|
|
|
|
static double t_start = 0.0;
|
|
|
|
static double t_loop = 0.0;
|
|
|
|
static int f_start = 0;
|
|
|
|
static int f_loop = 0;
|
2007-10-17 04:07:13 -07:00
|
|
|
static char data_dir[4096];
|
2007-04-11 04:58:32 -07:00
|
|
|
|
|
|
|
typedef struct _Menu_Item Menu_Item;
|
|
|
|
|
|
|
|
struct _Menu_Item
|
|
|
|
{
|
|
|
|
Evas_Object *o_icon;
|
|
|
|
char *icon;
|
|
|
|
char *text;
|
|
|
|
void (*func) (void);
|
|
|
|
};
|
|
|
|
|
2012-12-27 19:24:07 -08:00
|
|
|
int async_render = 0;
|
|
|
|
|
2007-04-11 04:58:32 -07:00
|
|
|
static Evas_Object *o_bg = NULL;
|
|
|
|
static Evas_Object *o_wallpaper = NULL;
|
|
|
|
static Evas_Object *o_title = NULL;
|
|
|
|
static Evas_Object *o_byline = NULL;
|
|
|
|
static Evas_Object *o_menu_logo = NULL;
|
|
|
|
static Evas_Object *o_menu_icon = NULL;
|
|
|
|
static Evas_Object *o_menu_icon_sel = NULL;
|
|
|
|
static Evas_Object *o_menu_icon_sel2 = NULL;
|
|
|
|
static Evas_Object *o_menu_text_sel = NULL;
|
|
|
|
static Evas_Object *o_menu_title = NULL;
|
2008-10-22 05:00:44 -07:00
|
|
|
static Eina_List *menu = NULL;
|
2007-04-11 04:58:32 -07:00
|
|
|
static int menu_sel = 0;
|
|
|
|
static int menu_active = 0;
|
|
|
|
static double menu_anim = 0.0;
|
|
|
|
static double menu_anim_sel = 0.0;
|
|
|
|
|
|
|
|
static double p_fps = 0.0;
|
|
|
|
|
|
|
|
static void (*key_func) (char *key) = NULL;
|
|
|
|
static void (*loop_func) (double t, int f) = NULL;
|
|
|
|
|
2007-11-08 13:00:35 -08:00
|
|
|
static int run_all = 0;
|
2009-01-21 15:01:51 -08:00
|
|
|
static int run_test = 0;
|
|
|
|
static int list_test = 0;
|
2009-03-13 04:50:30 -07:00
|
|
|
static int exit_after_test = 0;
|
2007-11-08 13:00:35 -08:00
|
|
|
|
2010-03-23 02:58:38 -07:00
|
|
|
static double weights[] =
|
|
|
|
{
|
|
|
|
0.0, // no test 0
|
2012-11-01 22:15:34 -07:00
|
|
|
|
|
|
|
50.4851, // test 1
|
|
|
|
97.3703, // test 2
|
|
|
|
10.0000, // test 3
|
|
|
|
87.3703, // ...
|
|
|
|
10.0000,
|
|
|
|
|
|
|
|
150.0000, // test 6
|
|
|
|
10.0000,
|
|
|
|
150.0000,
|
|
|
|
10.0000,
|
|
|
|
150.0000,
|
|
|
|
|
|
|
|
10.0000, // test 11
|
|
|
|
150.0000,
|
|
|
|
10.0000,
|
|
|
|
10.6493,
|
|
|
|
38.4818,
|
|
|
|
|
|
|
|
40.7314, // test 16
|
|
|
|
32.0866,
|
|
|
|
21.3337,
|
|
|
|
21.2167,
|
|
|
|
71.6141,
|
|
|
|
|
|
|
|
64.8893, // test 21
|
|
|
|
95.0880,
|
|
|
|
121.0438,
|
|
|
|
41.2646,
|
|
|
|
162.7149,
|
|
|
|
|
|
|
|
89.1650, // test 26
|
|
|
|
105.3571,
|
|
|
|
40.9657,
|
|
|
|
98.4671,
|
|
|
|
28.4322,
|
|
|
|
|
|
|
|
60.000, // test 31
|
|
|
|
75.5507,
|
|
|
|
51.6601,
|
|
|
|
135.4753,
|
|
|
|
38.2705,
|
|
|
|
|
|
|
|
35.9915, // test 36
|
|
|
|
31.9500,
|
|
|
|
22.6752,
|
|
|
|
38.2702,
|
|
|
|
37.4459,
|
|
|
|
|
|
|
|
37.2009, // test 41
|
|
|
|
34.5459,
|
|
|
|
38.5043,
|
|
|
|
50.0000,
|
|
|
|
37.0282,
|
|
|
|
|
|
|
|
55.8886, // test 46
|
|
|
|
17.2535,
|
|
|
|
23.1457,
|
|
|
|
36.9874,
|
|
|
|
37.9336,
|
|
|
|
|
|
|
|
17.1830, // test 51
|
|
|
|
20.7521,
|
|
|
|
29.0141,
|
|
|
|
131.6784,
|
|
|
|
13.6851,
|
|
|
|
|
|
|
|
23.4462, // test 56
|
|
|
|
14.7573,
|
|
|
|
36.5261,
|
|
|
|
5.0000,
|
|
|
|
5.0000,
|
|
|
|
|
|
|
|
24.3482, // test 61
|
|
|
|
10.4611,
|
|
|
|
86.0290,
|
|
|
|
82.0735,
|
|
|
|
18.6459,
|
|
|
|
|
|
|
|
37.4608, // test 66
|
|
|
|
32.4417,
|
|
|
|
11.5449,
|
|
|
|
5.0000,
|
|
|
|
11.4172,
|
|
|
|
|
|
|
|
13.3682, // test 71
|
|
|
|
10.0324,
|
|
|
|
10.0584,
|
|
|
|
10.0170,
|
|
|
|
5.4029,
|
|
|
|
|
|
|
|
10.6349, // test 76
|
|
|
|
21.7728,
|
|
|
|
12.7933,
|
|
|
|
19.4177,
|
|
|
|
34.4192,
|
|
|
|
|
|
|
|
23.9110, // test 81
|
|
|
|
22.8287,
|
|
|
|
41.2399,
|
|
|
|
30.1383,
|
|
|
|
22.0342,
|
|
|
|
|
|
|
|
38.2952, // test 86
|
|
|
|
5.5560,
|
|
|
|
0.5000,
|
|
|
|
1.000,
|
|
|
|
10.000,
|
|
|
|
|
|
|
|
5.000, // test 91
|
|
|
|
20.000, // MASK
|
|
|
|
20.000, // MASK 2
|
|
|
|
20.000, // MASK 3
|
|
|
|
20.000, // MASK 4
|
|
|
|
|
|
|
|
20.000, // test 96
|
|
|
|
20.000, // MASK 6
|
|
|
|
20.000, // MASK 7
|
|
|
|
20.000, // MASK 8
|
|
|
|
20.000, // MASK 9
|
|
|
|
|
|
|
|
20.000, // test 101
|
|
|
|
20.000, // MASK 11
|
|
|
|
20.000, // MASK 12
|
|
|
|
20.000, // MASK 13
|
|
|
|
20.000, // MASK 14
|
|
|
|
|
|
|
|
20.000, // test 106 MASK 15
|
|
|
|
1.000,
|
|
|
|
2.000,
|
|
|
|
1.000,
|
|
|
|
2.000,
|
|
|
|
|
|
|
|
1.000, // test 111
|
|
|
|
2.000,
|
|
|
|
1.000,
|
|
|
|
2.000,
|
|
|
|
1.000,
|
|
|
|
|
|
|
|
2.000, // test 116
|
|
|
|
10.000,
|
|
|
|
10.000,
|
|
|
|
|
|
|
|
0.0, // Exit
|
|
|
|
|
|
|
|
0.0, // no final test - add a 0 at the end anyway to pad
|
|
|
|
0.0,
|
|
|
|
0.0,
|
|
|
|
0.0,
|
|
|
|
0.0
|
2010-03-23 02:58:38 -07:00
|
|
|
};
|
|
|
|
|
2007-04-11 04:58:32 -07:00
|
|
|
static void
|
|
|
|
_ui_exit(void)
|
|
|
|
{
|
2009-06-20 00:37:26 -07:00
|
|
|
Menu_Item *mi;
|
2009-02-15 02:48:09 -08:00
|
|
|
|
2009-06-20 00:37:26 -07:00
|
|
|
EINA_LIST_FREE(menu, mi)
|
|
|
|
{
|
2009-02-15 02:48:09 -08:00
|
|
|
free(mi->icon);
|
|
|
|
free(mi->text);
|
|
|
|
free(mi);
|
|
|
|
}
|
2007-04-11 04:58:32 -07:00
|
|
|
engine_abort();
|
|
|
|
}
|
|
|
|
|
2010-08-06 17:19:12 -07:00
|
|
|
extern const char *profile;
|
|
|
|
extern int win_w, win_h;
|
|
|
|
extern const char *engine;
|
|
|
|
extern int loops;
|
|
|
|
extern int fullscreen;
|
2012-11-28 23:01:54 -08:00
|
|
|
static int cmp_report = 0;
|
2010-08-06 17:19:12 -07:00
|
|
|
|
2007-04-11 04:58:32 -07:00
|
|
|
static void
|
|
|
|
_ui_all(void)
|
|
|
|
{
|
2008-10-22 05:00:44 -07:00
|
|
|
Eina_List *l;
|
2007-04-11 04:58:32 -07:00
|
|
|
double fps = 0.0;
|
2010-03-23 02:58:38 -07:00
|
|
|
double wfps = 0.0;
|
2012-08-10 02:18:52 -07:00
|
|
|
unsigned int t_count = 0;
|
2011-04-24 10:14:34 -07:00
|
|
|
unsigned int i;
|
2010-03-23 02:58:38 -07:00
|
|
|
double avgw = 0.0;
|
2012-11-03 02:43:56 -07:00
|
|
|
Menu_Item *mi;
|
2007-10-17 04:55:47 -07:00
|
|
|
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o_menu_logo, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_menu_title, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_menu_icon, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_menu_icon_sel, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
/* FIXME: ask if it's ok o_menu_icon_sel2 == NULL */
|
|
|
|
eo_do(o_menu_icon_sel2, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_menu_text_sel, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_title, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_byline, evas_obj_visibility_set(EINA_FALSE));
|
2012-11-01 22:15:34 -07:00
|
|
|
|
2012-11-03 02:43:56 -07:00
|
|
|
EINA_LIST_FOREACH(menu, l, mi)
|
|
|
|
{
|
2012-11-01 22:15:34 -07:00
|
|
|
if ((mi->func == about_start) ||
|
|
|
|
(mi->func == _ui_exit) ||
|
|
|
|
(mi->func == _ui_all))
|
|
|
|
continue;
|
|
|
|
if (mi->func) mi->func();
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o_title, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_byline, evas_obj_visibility_set(EINA_FALSE));
|
2012-11-01 22:15:34 -07:00
|
|
|
while (p_fps == 0.0)
|
|
|
|
{
|
|
|
|
engine_loop();
|
|
|
|
ui_loop();
|
2012-12-27 19:24:07 -08:00
|
|
|
if (async_render)
|
|
|
|
{
|
|
|
|
Eina_Bool ret = EINA_FALSE;
|
|
|
|
|
|
|
|
eo_do(evas,
|
|
|
|
evas_canvas_sync(),
|
|
|
|
evas_canvas_render_async(NULL, NULL, &ret));
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
evas_render(evas);
|
|
|
|
}
|
2012-11-01 22:15:34 -07:00
|
|
|
}
|
|
|
|
/* This give time to delete the objects of the previous test and make
|
|
|
|
the result of next test more accurate. Draw back, some time is not
|
|
|
|
counted at all. */
|
2012-12-27 19:24:07 -08:00
|
|
|
if (async_render)
|
|
|
|
{
|
|
|
|
Eina_Bool ret = EINA_FALSE;
|
|
|
|
|
|
|
|
eo_do(evas,
|
|
|
|
evas_canvas_sync(),
|
|
|
|
evas_canvas_render_async(NULL, NULL, &ret));
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
evas_render(evas);
|
|
|
|
}
|
2012-11-01 22:15:34 -07:00
|
|
|
t_count++;
|
|
|
|
fps += p_fps;
|
2010-03-23 02:58:38 -07:00
|
|
|
wfps += (p_fps * weights[t_count]);
|
2012-11-01 22:15:34 -07:00
|
|
|
key_func("Escape");
|
2007-04-11 04:58:32 -07:00
|
|
|
}
|
2012-11-03 02:39:59 -07:00
|
|
|
for (i = 1; i < t_count + 1; i++)
|
2010-03-23 02:58:38 -07:00
|
|
|
avgw += weights[i];
|
2012-11-03 02:39:59 -07:00
|
|
|
avgw /= t_count;
|
2010-03-23 02:58:38 -07:00
|
|
|
if (t_count > 0)
|
|
|
|
{
|
2010-08-06 17:19:12 -07:00
|
|
|
char datestr[1024];
|
|
|
|
struct tm *tim;
|
|
|
|
time_t now;
|
2012-11-01 22:15:34 -07:00
|
|
|
|
2010-08-06 17:19:12 -07:00
|
|
|
now = time(NULL);
|
|
|
|
tim = localtime(&now);
|
2011-04-24 03:32:54 -07:00
|
|
|
if (tim) strftime(datestr, sizeof(datestr), "%Y-%m-%d %H:%M:%S", tim);
|
2010-08-06 17:19:12 -07:00
|
|
|
else snprintf(datestr, sizeof(datestr), "unknown");
|
2012-11-28 23:01:54 -08:00
|
|
|
// printf("%5.2f , EVAS SPEED\n", fps / t_count);
|
|
|
|
if (cmp_report)
|
|
|
|
printf("%5.2f , EVAS SPEED (WEIGHTED), "
|
|
|
|
"tn, %i , "
|
|
|
|
"t, %s , "
|
|
|
|
"ev , %i.%i.%i.%i , "
|
|
|
|
"p , %s , "
|
|
|
|
"sz , %i , %i , "
|
|
|
|
"c , %i , "
|
|
|
|
"e , %s , "
|
|
|
|
"fs , %i\n"
|
|
|
|
,
|
|
|
|
wfps / (t_count * avgw),
|
|
|
|
// fps / t_count,
|
|
|
|
t_count,
|
|
|
|
datestr,
|
|
|
|
evas_version->major, evas_version->minor, evas_version->micro, evas_version->revision,
|
|
|
|
profile,
|
|
|
|
win_w, win_h,
|
|
|
|
loops,
|
|
|
|
engine,
|
|
|
|
fullscreen);
|
|
|
|
else
|
|
|
|
printf("\n#####Test Result#####\n"
|
|
|
|
"evas fps speed: %5.2f\n"
|
|
|
|
"evas fps speed(weighted): %5.2f\n"
|
|
|
|
"testcase count: %i\n"
|
|
|
|
"date: %s\n"
|
|
|
|
"evas version: %i.%i.%i.%i\n"
|
|
|
|
"profile: %s\n"
|
|
|
|
"window size: %i, %i\n"
|
|
|
|
"loop count: %i\n"
|
|
|
|
"engine: %s\n"
|
|
|
|
"full screen: %i\n",
|
|
|
|
(fps / t_count),
|
|
|
|
(wfps / avgw) / t_count,
|
|
|
|
t_count,
|
|
|
|
datestr,
|
|
|
|
evas_version->major, evas_version->minor, evas_version->micro,
|
|
|
|
evas_version->revision,
|
|
|
|
profile,
|
|
|
|
win_w, win_h,
|
|
|
|
loops,
|
|
|
|
engine,
|
|
|
|
fullscreen);
|
2010-03-23 02:58:38 -07:00
|
|
|
}
|
2007-04-11 04:58:32 -07:00
|
|
|
}
|
|
|
|
|
2009-01-21 15:01:51 -08:00
|
|
|
|
|
|
|
static void
|
|
|
|
_ui_num(int n)
|
|
|
|
{
|
|
|
|
double fps = 0.0;
|
2010-03-23 02:58:38 -07:00
|
|
|
double wfps = 0.0;
|
2009-01-21 15:01:51 -08:00
|
|
|
int t_count = 0;
|
|
|
|
Menu_Item *mi;
|
2011-04-24 10:14:34 -07:00
|
|
|
unsigned int i;
|
2010-03-23 02:58:38 -07:00
|
|
|
double avgw = 0.0;
|
2009-01-21 15:01:51 -08:00
|
|
|
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o_menu_logo, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_menu_title, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_menu_icon, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_menu_icon_sel, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_menu_icon_sel2, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_menu_text_sel, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_title, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_byline, evas_obj_visibility_set(EINA_FALSE));
|
2009-01-21 15:01:51 -08:00
|
|
|
mi = eina_list_nth(menu, n);
|
|
|
|
if (mi)
|
|
|
|
{
|
2012-11-01 22:15:34 -07:00
|
|
|
if ((mi->func == about_start) ||
|
|
|
|
(mi->func == _ui_exit) ||
|
|
|
|
(mi->func == _ui_all))
|
|
|
|
goto done;
|
|
|
|
if (mi->func) mi->func();
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o_title, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_byline, evas_obj_visibility_set(EINA_FALSE));
|
2012-11-01 22:15:34 -07:00
|
|
|
while (p_fps == 0.0)
|
|
|
|
{
|
|
|
|
ui_loop();
|
|
|
|
engine_loop();
|
2012-12-27 19:24:07 -08:00
|
|
|
if (async_render)
|
|
|
|
{
|
|
|
|
Eina_Bool ret = EINA_FALSE;
|
|
|
|
|
|
|
|
eo_do(evas,
|
|
|
|
evas_canvas_sync(),
|
|
|
|
evas_canvas_render_async(NULL, NULL, &ret));
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
evas_render(evas);
|
|
|
|
}
|
2012-11-01 22:15:34 -07:00
|
|
|
}
|
|
|
|
/* This give time to delete the objects of the previous test and make
|
|
|
|
the result of next test more accurate. Draw back, some time is not
|
|
|
|
counted at all. */
|
2012-12-27 19:24:07 -08:00
|
|
|
if (async_render)
|
|
|
|
{
|
|
|
|
Eina_Bool ret = EINA_FALSE;
|
|
|
|
|
|
|
|
eo_do(evas,
|
|
|
|
evas_canvas_sync(),
|
|
|
|
evas_canvas_render_async(NULL, NULL, &ret));
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
evas_render(evas);
|
|
|
|
}
|
2012-11-01 22:15:34 -07:00
|
|
|
t_count++;
|
|
|
|
fps += p_fps;
|
2010-03-23 02:58:38 -07:00
|
|
|
wfps += (p_fps * weights[n]);
|
2012-11-01 22:15:34 -07:00
|
|
|
key_func("Escape");
|
2009-01-21 15:01:51 -08:00
|
|
|
}
|
2012-11-01 22:15:34 -07:00
|
|
|
done:
|
2010-03-23 02:58:38 -07:00
|
|
|
for (i = 1; i < ((sizeof(weights) / sizeof(double)) - 1); i++)
|
|
|
|
avgw += weights[i];
|
2012-11-01 22:15:34 -07:00
|
|
|
avgw /= (i - 1);
|
2010-03-23 02:58:38 -07:00
|
|
|
if (t_count > 0)
|
|
|
|
{
|
2012-11-01 22:15:34 -07:00
|
|
|
// printf("%5.2f , EVAS SPEED\n", fps / t_count);
|
2010-03-23 20:19:45 -07:00
|
|
|
printf("%5.2f , EVAS SPEED (WEIGHTED)\n", wfps / (t_count * avgw));
|
2010-03-23 02:58:38 -07:00
|
|
|
}
|
2009-01-21 15:01:51 -08:00
|
|
|
}
|
|
|
|
|
2007-04-11 04:58:32 -07:00
|
|
|
static void
|
|
|
|
_ui_select(void)
|
|
|
|
{
|
2008-10-22 05:00:44 -07:00
|
|
|
Eina_List *l;
|
2007-04-11 04:58:32 -07:00
|
|
|
int i;
|
|
|
|
void (*func) (void) = NULL;
|
2007-10-17 04:55:47 -07:00
|
|
|
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o_menu_logo, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_menu_title, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_menu_icon, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_menu_icon_sel, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_menu_icon_sel2, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_menu_text_sel, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_title, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_byline, evas_obj_visibility_set(EINA_FALSE));
|
2007-04-11 04:58:32 -07:00
|
|
|
for (i = 0, l = menu; l; l = l->next, i++)
|
|
|
|
{
|
2012-11-01 22:15:34 -07:00
|
|
|
Menu_Item *mi;
|
2007-10-17 04:55:47 -07:00
|
|
|
|
2012-11-01 22:15:34 -07:00
|
|
|
mi = l->data;
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(mi->o_icon, evas_obj_visibility_set(EINA_FALSE));
|
2012-11-01 22:15:34 -07:00
|
|
|
if (i == menu_sel)
|
|
|
|
func = mi->func;
|
2007-04-11 04:58:32 -07:00
|
|
|
}
|
|
|
|
menu_active = 0;
|
|
|
|
if (func) func();
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o_title, evas_obj_visibility_set(EINA_FALSE));
|
|
|
|
eo_do(o_byline, evas_obj_visibility_set(EINA_FALSE));
|
2007-04-11 04:58:32 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2011-04-24 10:14:34 -07:00
|
|
|
_ui_key(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
2007-04-11 04:58:32 -07:00
|
|
|
{
|
|
|
|
Evas_Event_Key_Down *ev;
|
2007-10-17 04:55:47 -07:00
|
|
|
|
2007-04-11 04:58:32 -07:00
|
|
|
ev = event_info;
|
|
|
|
if (key_func)
|
|
|
|
{
|
2012-11-01 22:15:34 -07:00
|
|
|
key_func(ev->keyname);
|
|
|
|
return;
|
2007-04-11 04:58:32 -07:00
|
|
|
}
|
|
|
|
if ((!strcmp(ev->keyname, "Escape")) ||
|
|
|
|
(!strcmp(ev->keyname, "q")) ||
|
|
|
|
(!strcmp(ev->keyname, "Q")))
|
|
|
|
{
|
2012-11-01 22:15:34 -07:00
|
|
|
_ui_exit();
|
2007-04-11 04:58:32 -07:00
|
|
|
}
|
|
|
|
if (menu_active)
|
|
|
|
{
|
2012-11-01 22:15:34 -07:00
|
|
|
if (!strcmp(ev->keyname, "Left")) menu_sel++;
|
|
|
|
if (!strcmp(ev->keyname, "Right")) menu_sel--;
|
|
|
|
if (menu_sel < 0) menu_sel = 0;
|
|
|
|
else if ((unsigned int)menu_sel >= eina_list_count(menu)) menu_sel = eina_list_count(menu) - 1;
|
|
|
|
menu_anim_sel = menu_sel;
|
|
|
|
if (!strcmp(ev->keyname, "Return")) _ui_select();
|
2007-04-11 04:58:32 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
static Evas_Coord down_x, down_y;
|
2007-04-11 05:36:32 -07:00
|
|
|
static int down_menu_sel = 0;
|
2007-04-11 04:58:32 -07:00
|
|
|
|
|
|
|
static void
|
2011-04-24 10:14:34 -07:00
|
|
|
_ui_mouse_down(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
2007-04-11 04:58:32 -07:00
|
|
|
{
|
|
|
|
Evas_Event_Mouse_Down *ev;
|
2007-10-17 04:55:47 -07:00
|
|
|
|
2007-04-11 04:58:32 -07:00
|
|
|
ev = event_info;
|
|
|
|
if (ev->button != 1) return;
|
|
|
|
if (menu_active)
|
|
|
|
{
|
2012-06-05 05:21:17 -07:00
|
|
|
down_x = ev->canvas.x;
|
|
|
|
down_y = ev->canvas.y;
|
|
|
|
down_menu_sel = menu_sel;
|
2007-04-11 04:58:32 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2011-04-24 10:14:34 -07:00
|
|
|
_ui_mouse_up(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
2007-04-11 04:58:32 -07:00
|
|
|
{
|
|
|
|
Evas_Event_Mouse_Up *ev;
|
2007-10-17 04:55:47 -07:00
|
|
|
|
2007-04-11 04:58:32 -07:00
|
|
|
ev = event_info;
|
|
|
|
if (ev->button != 1) return;
|
|
|
|
if (menu_active)
|
|
|
|
{
|
2012-06-05 05:21:17 -07:00
|
|
|
Evas_Coord dx, dy;
|
|
|
|
|
|
|
|
dx = ev->canvas.x - down_x;
|
|
|
|
dy = ev->canvas.y - down_y;
|
|
|
|
if ((((dx * dx) + (dy * dy)) < (20 * 20)) &&
|
|
|
|
(menu_sel == down_menu_sel))
|
|
|
|
_ui_select();
|
2007-04-11 04:58:32 -07:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2012-06-05 05:21:17 -07:00
|
|
|
evas_event_feed_key_down(evas, "Escape", "Escape", NULL, NULL, 0, NULL);
|
|
|
|
evas_event_feed_key_up(evas, "Escape", "Escape", NULL, NULL, 0, NULL);
|
2007-04-11 04:58:32 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2011-04-24 10:14:34 -07:00
|
|
|
_ui_mouse_move(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
2007-04-11 04:58:32 -07:00
|
|
|
{
|
|
|
|
Evas_Event_Mouse_Move *ev;
|
2007-10-17 04:55:47 -07:00
|
|
|
|
2007-04-11 04:58:32 -07:00
|
|
|
ev = event_info;
|
2012-06-05 05:25:59 -07:00
|
|
|
if (ev->buttons != 1) return;
|
2007-04-11 04:58:32 -07:00
|
|
|
if (menu_active)
|
|
|
|
{
|
2012-06-05 05:21:17 -07:00
|
|
|
menu_sel = down_menu_sel + ((ev->cur.canvas.x - down_x) / 25);
|
|
|
|
/* scroll */
|
|
|
|
if (menu_sel < 0) menu_sel = 0;
|
|
|
|
else if ((unsigned int)menu_sel >= eina_list_count(menu))
|
|
|
|
menu_sel = eina_list_count(menu) - 1;
|
|
|
|
menu_anim_sel = menu_sel;
|
2007-04-11 04:58:32 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
_ui_menu_item_add(char *icon, char *text, void (*func) (void))
|
|
|
|
{
|
2007-10-17 04:07:13 -07:00
|
|
|
Menu_Item *mi;
|
2007-10-17 04:55:47 -07:00
|
|
|
|
2007-04-11 04:58:32 -07:00
|
|
|
mi = malloc(sizeof(Menu_Item));
|
2013-01-23 07:05:09 -08:00
|
|
|
mi->o_icon = eo_add(EVAS_OBJ_IMAGE_CLASS, evas);
|
|
|
|
eo_unref(mi->o_icon);
|
|
|
|
eo_do(mi->o_icon, evas_obj_image_file_set(build_path(icon), NULL),
|
|
|
|
evas_obj_size_set(32, 32),
|
|
|
|
evas_obj_image_fill_set(0, 0, 32, 32));
|
2007-04-11 04:58:32 -07:00
|
|
|
mi->icon = strdup(icon);
|
|
|
|
mi->text = strdup(text);
|
|
|
|
mi->func = func;
|
2008-10-22 05:00:44 -07:00
|
|
|
menu = eina_list_append(menu, mi);
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o_menu_icon_sel2, evas_obj_raise());
|
2007-04-11 04:58:32 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
_ui_setup(void)
|
|
|
|
{
|
|
|
|
Evas_Object *o;
|
|
|
|
Evas_Coord x, y, w, h;
|
2010-11-08 07:02:58 -08:00
|
|
|
time_t t0, t;
|
2007-10-17 04:55:47 -07:00
|
|
|
|
2013-01-23 07:05:09 -08:00
|
|
|
o = eo_add(EVAS_OBJ_RECTANGLE_CLASS, evas);
|
|
|
|
eo_unref(o);
|
|
|
|
eo_do(o, evas_obj_position_set(0, 0),
|
|
|
|
evas_obj_size_set(win_w, win_h),
|
|
|
|
evas_obj_color_set(0, 0, 0, 0),
|
|
|
|
evas_obj_layer_set(1000),
|
|
|
|
evas_obj_focus_set(1),
|
|
|
|
evas_obj_visibility_set(EINA_TRUE));
|
2007-04-11 04:58:32 -07:00
|
|
|
evas_object_event_callback_add(o, EVAS_CALLBACK_KEY_DOWN, _ui_key, NULL);
|
|
|
|
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _ui_mouse_down, NULL);
|
|
|
|
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, _ui_mouse_up, NULL);
|
|
|
|
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_MOVE, _ui_mouse_move, NULL);
|
|
|
|
o_bg = o;
|
|
|
|
|
2013-01-23 07:05:09 -08:00
|
|
|
o = eo_add(EVAS_OBJ_RECTANGLE_CLASS, evas);
|
|
|
|
eo_unref(o);
|
|
|
|
eo_do(o, evas_obj_position_set(0, 0),
|
|
|
|
evas_obj_size_set(win_w, win_h),
|
|
|
|
evas_obj_color_set(255, 255, 255, 255),
|
|
|
|
evas_obj_layer_set(-99),
|
|
|
|
evas_obj_visibility_set(EINA_TRUE));
|
2007-10-03 01:55:25 -07:00
|
|
|
o_wallpaper = o;
|
|
|
|
|
2013-01-23 07:05:09 -08:00
|
|
|
o = eo_add(EVAS_OBJ_TEXT_CLASS, evas);
|
|
|
|
eo_unref(o);
|
|
|
|
eo_do(o, evas_obj_text_font_set("Vera-Bold", 10),
|
|
|
|
evas_obj_text_text_set("EXPEDITE"),
|
|
|
|
evas_obj_layer_set(100),
|
|
|
|
evas_obj_color_set(0, 0, 0, 100),
|
|
|
|
evas_obj_pass_events_set(1),
|
|
|
|
evas_obj_size_get(&w, &h));
|
2007-04-11 04:58:32 -07:00
|
|
|
x = (win_w - w) / 2;
|
|
|
|
y = 0;
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o, evas_obj_position_set(x, y),
|
|
|
|
evas_obj_visibility_set(EINA_TRUE));
|
2007-04-11 04:58:32 -07:00
|
|
|
o_title = o;
|
|
|
|
|
2013-01-23 07:05:09 -08:00
|
|
|
o = eo_add(EVAS_OBJ_TEXT_CLASS, evas);
|
|
|
|
eo_unref(o);
|
|
|
|
eo_do(o, evas_obj_text_font_set("Vera", 9),
|
|
|
|
evas_obj_text_text_set("LEFT/RIGHT - select, ENTER - select, ESCAPE - exit."),
|
|
|
|
evas_obj_layer_set(100),
|
|
|
|
evas_obj_color_set(0, 0, 0, 60),
|
|
|
|
evas_obj_pass_events_set(1),
|
|
|
|
evas_obj_size_get(&w, NULL));
|
2007-04-11 04:58:32 -07:00
|
|
|
x = (win_w - w) / 2;
|
|
|
|
y = h + 2;
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o, evas_obj_position_set(x, y),
|
|
|
|
evas_obj_visibility_set(EINA_TRUE));
|
2007-04-11 04:58:32 -07:00
|
|
|
o_byline = o;
|
2007-10-17 04:55:47 -07:00
|
|
|
|
2013-01-23 07:05:09 -08:00
|
|
|
o = eo_add(EVAS_OBJ_IMAGE_CLASS, evas);
|
|
|
|
eo_unref(o);
|
|
|
|
eo_do(o, evas_obj_position_set((win_w - 120) / 2, ((win_h - 160) / 2)),
|
|
|
|
evas_obj_image_file_set(build_path("e-logo.png"), NULL),
|
|
|
|
evas_obj_image_fill_set(0, 0, 120, 160),
|
|
|
|
evas_obj_size_set(120, 160),
|
|
|
|
evas_obj_layer_set(-98),
|
|
|
|
evas_obj_color_set(255, 255, 255, 255),
|
|
|
|
evas_obj_visibility_set(EINA_TRUE));
|
2007-04-11 04:58:32 -07:00
|
|
|
o_menu_logo = o;
|
2007-10-17 04:55:47 -07:00
|
|
|
|
2013-01-23 07:05:09 -08:00
|
|
|
o = eo_add(EVAS_OBJ_IMAGE_CLASS, evas);
|
|
|
|
eo_unref(o);
|
|
|
|
eo_do(o, evas_obj_position_set(win_w - 128, - 128),
|
|
|
|
evas_obj_image_fill_set(0, 0, 256, 256),
|
|
|
|
evas_obj_size_set(256, 256),
|
|
|
|
evas_obj_visibility_set(EINA_TRUE));
|
2007-04-11 04:58:32 -07:00
|
|
|
o_menu_icon = o;
|
2007-10-17 04:55:47 -07:00
|
|
|
|
2013-01-23 07:05:09 -08:00
|
|
|
o = eo_add(EVAS_OBJ_IMAGE_CLASS, evas);
|
|
|
|
eo_unref(o);
|
|
|
|
eo_do(o, evas_obj_position_set(0, 0),
|
|
|
|
evas_obj_image_file_set(build_path("icon_sel.png"), NULL),
|
|
|
|
evas_obj_size_set(48, 48),
|
|
|
|
evas_obj_image_fill_set(0, 0, 48, 48));
|
2007-04-11 04:58:32 -07:00
|
|
|
o_menu_icon_sel = o;
|
|
|
|
|
2013-01-23 07:05:09 -08:00
|
|
|
o = eo_add(EVAS_OBJ_IMAGE_CLASS, evas);
|
|
|
|
eo_unref(o);
|
|
|
|
eo_do(o, evas_obj_position_set(0, 0),
|
|
|
|
evas_obj_image_file_set(build_path("text_sel.png"), NULL),
|
|
|
|
evas_obj_size_set(96, 32),
|
|
|
|
evas_obj_image_fill_set(0, 0, 96, 32),
|
|
|
|
evas_obj_image_border_set(7, 7, 7, 7));
|
2007-04-11 04:58:32 -07:00
|
|
|
o_menu_text_sel = o;
|
|
|
|
|
2013-01-23 07:05:09 -08:00
|
|
|
o = eo_add(EVAS_OBJ_TEXT_CLASS, evas);
|
|
|
|
eo_unref(o);
|
|
|
|
eo_do(o, evas_obj_text_font_set("Vera", 10),
|
|
|
|
evas_obj_text_text_set(""),
|
|
|
|
evas_obj_color_set(0, 0, 0, 100),
|
|
|
|
evas_obj_pass_events_set(1),
|
|
|
|
evas_obj_size_get(&w, &h));
|
2007-04-11 04:58:32 -07:00
|
|
|
x = (win_w - w) / 2;
|
|
|
|
y = (win_h - h) / 2;
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o, evas_obj_position_set(x, y));
|
2007-04-11 04:58:32 -07:00
|
|
|
o_menu_title = o;
|
2007-10-17 04:55:47 -07:00
|
|
|
|
2010-08-06 17:32:13 -07:00
|
|
|
_ui_menu_item_add("e.png", "About", about_start);
|
2007-04-11 04:58:32 -07:00
|
|
|
_ui_menu_item_add("e.png", "All Tests", _ui_all);
|
|
|
|
#define UI
|
|
|
|
#include "tests.h"
|
|
|
|
#undef UI
|
|
|
|
_ui_menu_item_add("exit.png", "Exit", _ui_exit);
|
|
|
|
|
2011-09-18 14:57:24 -07:00
|
|
|
#ifdef HAVE_SYNC
|
2010-11-08 07:02:58 -08:00
|
|
|
/* make sure disk io isn't going to turn up unexpectedly */
|
|
|
|
sync();
|
|
|
|
sync();
|
|
|
|
sync();
|
2011-01-07 10:08:42 -08:00
|
|
|
#endif
|
2010-11-08 07:02:58 -08:00
|
|
|
/* warm up the cpu with some spinning */
|
2011-03-02 01:33:47 -08:00
|
|
|
if (run_all)
|
2010-11-08 07:02:58 -08:00
|
|
|
{
|
2011-03-02 01:33:47 -08:00
|
|
|
t0 = time(NULL);
|
|
|
|
for (;;)
|
|
|
|
{
|
|
|
|
t = time(NULL);
|
|
|
|
if (t - t0 > 2) break;
|
|
|
|
}
|
2010-11-08 07:02:58 -08:00
|
|
|
}
|
|
|
|
|
2007-11-08 13:00:35 -08:00
|
|
|
if (run_all)
|
|
|
|
{
|
2012-11-01 22:15:34 -07:00
|
|
|
_ui_all();
|
2007-11-08 13:00:35 -08:00
|
|
|
}
|
2009-01-21 15:01:51 -08:00
|
|
|
else if (run_test > 0)
|
|
|
|
{
|
|
|
|
_ui_num(run_test);
|
|
|
|
}
|
|
|
|
else if (list_test > 0)
|
|
|
|
{
|
|
|
|
Eina_List *l;
|
|
|
|
int i;
|
2009-03-13 04:50:30 -07:00
|
|
|
|
2009-01-21 15:01:51 -08:00
|
|
|
for (l = menu, i = -1; l; l = l->next, i++)
|
|
|
|
{
|
|
|
|
Menu_Item *mi;
|
2009-03-13 04:50:30 -07:00
|
|
|
|
2009-01-21 15:01:51 -08:00
|
|
|
mi = l->data;
|
|
|
|
if (i > 0)
|
2010-03-25 00:58:40 -07:00
|
|
|
printf("%3i - %s (Weight %0.2lf)\n", i, mi->text, weights[i]);
|
2009-01-21 15:01:51 -08:00
|
|
|
}
|
|
|
|
}
|
2007-11-08 13:00:35 -08:00
|
|
|
else
|
|
|
|
{
|
2012-11-01 22:15:34 -07:00
|
|
|
menu_active = 1;
|
2007-11-08 13:00:35 -08:00
|
|
|
}
|
2009-03-13 04:50:30 -07:00
|
|
|
|
|
|
|
if (exit_after_test)
|
2012-11-01 22:15:34 -07:00
|
|
|
_ui_exit();
|
2009-03-13 04:50:30 -07:00
|
|
|
|
2007-04-11 04:58:32 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
ui_args(int argc, char **argv)
|
|
|
|
{
|
|
|
|
int i;
|
2007-10-17 04:55:47 -07:00
|
|
|
|
2007-04-11 04:58:32 -07:00
|
|
|
for (i = 1; i < argc; i++)
|
|
|
|
{
|
2012-11-01 22:15:34 -07:00
|
|
|
if (!strcmp(argv[i], "-a"))
|
|
|
|
{
|
|
|
|
run_all = 1;
|
2009-03-27 02:37:17 -07:00
|
|
|
exit_after_test = 1;
|
2012-11-01 22:15:34 -07:00
|
|
|
}
|
|
|
|
else if ((!strcmp(argv[i], "-t")) && (i < (argc - 1)))
|
|
|
|
{
|
2009-01-21 15:01:51 -08:00
|
|
|
run_test = atoi(argv[i + 1]) + 1;
|
2009-03-13 04:50:30 -07:00
|
|
|
exit_after_test = 1;
|
2009-01-21 15:01:51 -08:00
|
|
|
if (run_test < 2) run_test = 2;
|
2012-11-01 22:15:34 -07:00
|
|
|
}
|
|
|
|
else if (!strcmp(argv[i], "-l"))
|
|
|
|
{
|
2009-01-21 15:01:51 -08:00
|
|
|
list_test = 1;
|
2012-11-01 22:15:34 -07:00
|
|
|
}
|
2012-11-28 23:01:54 -08:00
|
|
|
else if (!strcmp(argv[i], "-m"))
|
|
|
|
{
|
|
|
|
cmp_report = 1;
|
|
|
|
}
|
2012-12-27 19:24:07 -08:00
|
|
|
else if (!strcmp(argv[i], "-y"))
|
|
|
|
{
|
|
|
|
async_render = 1;
|
|
|
|
}
|
2007-04-11 04:58:32 -07:00
|
|
|
}
|
|
|
|
_ui_setup();
|
|
|
|
start = get_time();
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
ui_loop(void)
|
|
|
|
{
|
|
|
|
static int first = 1;
|
|
|
|
static double pt = 0.0;
|
|
|
|
double t, t2;
|
|
|
|
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o_bg, evas_obj_size_set(win_w, win_h));
|
|
|
|
eo_do(o_wallpaper, evas_obj_size_set(win_w, win_h));
|
2007-04-11 04:58:32 -07:00
|
|
|
if (loop_func)
|
|
|
|
{
|
2012-11-01 22:15:34 -07:00
|
|
|
t = get_time();
|
|
|
|
f_loop++;
|
|
|
|
f_start++;
|
|
|
|
if ((t - t_loop) >= 1.0)
|
|
|
|
{
|
|
|
|
// ui_fps((double)f_loop / (t - t_loop));
|
|
|
|
t_loop = t;
|
|
|
|
f_loop = 0;
|
|
|
|
}
|
|
|
|
loop_func(t - t_start, f_start);
|
|
|
|
return;
|
2007-04-11 04:58:32 -07:00
|
|
|
}
|
|
|
|
t2 = get_time();
|
|
|
|
if (first)
|
|
|
|
{
|
2012-11-01 22:15:34 -07:00
|
|
|
t = 0.1;
|
|
|
|
pt = t2;
|
2007-04-11 04:58:32 -07:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2012-11-01 22:15:34 -07:00
|
|
|
t = t2 - pt;
|
|
|
|
pt = t2;
|
2007-04-11 04:58:32 -07:00
|
|
|
}
|
|
|
|
first = 0;
|
2007-10-17 04:55:47 -07:00
|
|
|
|
2007-04-11 04:58:32 -07:00
|
|
|
/* menu layout */
|
|
|
|
if (menu_active)
|
|
|
|
{
|
2012-11-01 22:15:34 -07:00
|
|
|
Eina_List *l;
|
|
|
|
int i;
|
|
|
|
static double tr = 0.0;
|
|
|
|
double tt;
|
|
|
|
|
|
|
|
tt = t;
|
|
|
|
tt += tr;
|
|
|
|
while (tt > 0.001)
|
|
|
|
{
|
|
|
|
menu_anim = (menu_anim * 0.995) + (menu_anim_sel * 0.005);
|
|
|
|
tt -= 0.001;
|
|
|
|
}
|
|
|
|
tr = tt;
|
|
|
|
for (i = 0, l = menu; l; l = l->next, i++)
|
|
|
|
{
|
|
|
|
char buf[4096];
|
|
|
|
Menu_Item *mi;
|
|
|
|
Evas_Coord x, y, w, h, tw, th;
|
|
|
|
Evas_Coord len;
|
|
|
|
double a;
|
|
|
|
Evas_Object *o;
|
|
|
|
|
|
|
|
mi = l->data;
|
|
|
|
o = mi->o_icon;
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o_menu_logo, evas_obj_size_get(&w, &h));
|
2012-11-01 22:15:34 -07:00
|
|
|
len = ((w * 3) + 10) / 4;
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o, evas_obj_size_get(&w, &h));
|
2012-11-01 22:15:34 -07:00
|
|
|
x = (win_w / 2)
|
|
|
|
+ (sin((menu_anim - (double)i) * 0.33) * len)
|
|
|
|
- (w / 2);
|
|
|
|
y = (win_h / 2)
|
|
|
|
+ (cos((menu_anim - (double)i) * 0.33) * len)
|
|
|
|
- (h / 2);
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o, evas_obj_position_set(x, y));
|
2012-11-01 22:15:34 -07:00
|
|
|
a = menu_anim - (double)i;
|
|
|
|
if (a < 0) a = -a;
|
|
|
|
a = 255 - (30 * a);
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o, evas_obj_color_set(a, a, a, a),
|
|
|
|
evas_obj_visibility_set(EINA_TRUE));
|
2012-11-01 22:15:34 -07:00
|
|
|
|
|
|
|
if (i == menu_sel)
|
|
|
|
{
|
|
|
|
a = menu_anim - (double)i;
|
|
|
|
if (a < 0) a = -a;
|
|
|
|
a = 255 - (255 * a);
|
|
|
|
|
|
|
|
o = o_menu_icon_sel;
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o, evas_obj_position_set(x - ((48 - w) / 2), y - ((48 - h) / 2)),
|
|
|
|
evas_obj_color_set(a, a, a, a));
|
2012-11-01 22:15:34 -07:00
|
|
|
|
|
|
|
o = o_menu_title;
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o, evas_obj_color_set(a, a, a, a),
|
|
|
|
evas_obj_text_text_set(mi->text),
|
|
|
|
evas_obj_size_get(&tw, &th));
|
2012-11-01 22:15:34 -07:00
|
|
|
x = (win_w - tw) / 2;
|
|
|
|
y = (win_h / 2) + len + 48;
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o, evas_obj_position_set(x, y));
|
2012-11-01 22:15:34 -07:00
|
|
|
|
|
|
|
|
|
|
|
o = o_menu_text_sel;
|
|
|
|
w = tw + 24;
|
|
|
|
h = 28;
|
|
|
|
x = x - 12;
|
|
|
|
y = y + ((th - h) / 2);
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o, evas_obj_position_set(x, y),
|
|
|
|
evas_obj_size_set(w, h),
|
|
|
|
evas_obj_image_fill_set(0, 0, w, h),
|
|
|
|
evas_obj_color_set(a, a, a, a));
|
2012-11-01 22:15:34 -07:00
|
|
|
|
|
|
|
o = o_menu_icon;
|
|
|
|
snprintf(buf, 4096, "%s%s", data_dir, mi->icon);
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o, evas_obj_image_file_set(buf, NULL),
|
|
|
|
evas_obj_color_set(a / 2, a / 2, a / 2, a / 2));
|
2012-11-01 22:15:34 -07:00
|
|
|
}
|
|
|
|
}
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o_menu_logo, evas_obj_position_set((win_w - 120) / 2, ((win_h - 160) / 2)),
|
|
|
|
evas_obj_visibility_set(EINA_TRUE));
|
|
|
|
eo_do(o_menu_title, evas_obj_visibility_set(EINA_TRUE));
|
|
|
|
eo_do(o_menu_icon, evas_obj_visibility_set(EINA_TRUE));
|
|
|
|
eo_do(o_menu_icon_sel, evas_obj_visibility_set(EINA_TRUE));
|
|
|
|
eo_do(o_menu_icon_sel2, evas_obj_visibility_set(EINA_TRUE));
|
|
|
|
eo_do(o_menu_text_sel, evas_obj_visibility_set(EINA_TRUE));
|
2007-04-11 04:58:32 -07:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
ui_menu(void)
|
|
|
|
{
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o_title, evas_obj_visibility_set(EINA_TRUE));
|
|
|
|
eo_do(o_byline, evas_obj_visibility_set(EINA_TRUE),
|
|
|
|
evas_obj_text_text_set
|
|
|
|
("LEFT/RIGHT - select, ENTER - select, ESCAPE - exit."));
|
2007-04-11 04:58:32 -07:00
|
|
|
menu_active = 1;
|
|
|
|
key_func = NULL;
|
|
|
|
loop_func = NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
ui_func_set(void (*kfunc) (char *key), void (*lfunc) (double t, int f))
|
|
|
|
{
|
|
|
|
key_func = kfunc;
|
|
|
|
loop_func = lfunc;
|
|
|
|
t_loop = t_start = get_time();
|
|
|
|
f_loop = f_start = 0;
|
|
|
|
ui_fps(0.0);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
ui_fps(double fps)
|
|
|
|
{
|
2009-10-14 18:11:17 -07:00
|
|
|
/*
|
2012-11-01 22:15:34 -07:00
|
|
|
char buf[256];
|
2007-10-17 04:55:47 -07:00
|
|
|
|
2012-11-01 22:15:34 -07:00
|
|
|
snprintf(buf, sizeof(buf), "ESCAPE - exit, FPS: %4.3f", fps);
|
2013-01-23 07:05:09 -08:00
|
|
|
eo_do(o_byline, evas_obj_text_text_set(buf));
|
2009-10-14 18:11:17 -07:00
|
|
|
*/
|
2007-04-11 04:58:32 -07:00
|
|
|
p_fps = fps;
|
|
|
|
}
|