Exactness: Removed useless bin dir. Merging that into elm_test.
SVN revision: 67934
This commit is contained in:
parent
bb8a3bfc46
commit
f51a7e4835
|
@ -42,7 +42,6 @@ PKG_CHECK_MODULES([EFL],
|
|||
AC_OUTPUT([
|
||||
Makefile
|
||||
src/Makefile
|
||||
src/bin/Makefile
|
||||
src/lib/Makefile
|
||||
src/scripts/Makefile
|
||||
data/Makefile
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
SUBDIRS = bin lib scripts
|
||||
SUBDIRS = lib scripts
|
||||
|
|
|
@ -1,69 +0,0 @@
|
|||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
AM_CPPFLAGS = \
|
||||
-I$(top_srcdir)/src/lib \
|
||||
-DPACKAGE_BIN_DIR=\"$(bindir)\" \
|
||||
-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
|
||||
-DLOCALE_DIR=\"$(datadir)/locale\" \
|
||||
@EFL_CFLAGS@
|
||||
|
||||
bin_PROGRAMS = exactness_raw
|
||||
|
||||
exactness_raw_SOURCES = \
|
||||
tsuite.c \
|
||||
../lib/tsuite_file_data.c \
|
||||
test_3d.c \
|
||||
test_actionslider.c \
|
||||
test_panel.c \
|
||||
test_anchorblock.c \
|
||||
test_panes.c \
|
||||
test_anchorview.c \
|
||||
test_focus.c \
|
||||
test_bg.c \
|
||||
test_gengrid.c \
|
||||
test_box.c \
|
||||
test_genlist.c \
|
||||
test_progressbar.c \
|
||||
test_bubble.c \
|
||||
test_radio.c \
|
||||
test_button.c \
|
||||
test_scaling.c \
|
||||
test_calendar.c \
|
||||
test_grid.c \
|
||||
test_segment_control.c \
|
||||
test_check.c \
|
||||
test_hover.c \
|
||||
test_separator.c \
|
||||
test_hoversel.c \
|
||||
test_slider.c \
|
||||
test_colorselector.c \
|
||||
test_conform.c \
|
||||
test_spinner.c \
|
||||
test_ctxpopup.c \
|
||||
test_index.c \
|
||||
test_table.c \
|
||||
test_inwin.c \
|
||||
test_diskselector.c \
|
||||
test_label.c \
|
||||
test_toggle.c \
|
||||
test_entry.c \
|
||||
test_toolbar.c \
|
||||
test_fileselector_button.c \
|
||||
test_tooltip.c \
|
||||
test_fileselector.c \
|
||||
test_list.c \
|
||||
test_fileselector_entry.c \
|
||||
test_menu.c \
|
||||
test_naviframe.c \
|
||||
test_notify.c \
|
||||
test_scroller.c \
|
||||
test_pager.c
|
||||
|
||||
|
||||
|
||||
exactness_raw_LDADD = @EFL_LIBS@
|
||||
|
||||
EXTRA_DIST = \
|
||||
tsuite.h
|
||||
|
|
@ -1,338 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
typedef struct _Point
|
||||
{
|
||||
Evas_Coord x, y, z, u, v;
|
||||
} Point;
|
||||
|
||||
typedef struct _Side
|
||||
{
|
||||
Evas_Object *o;
|
||||
Point pt[4];
|
||||
} Side;
|
||||
|
||||
typedef struct _Cube
|
||||
{
|
||||
Side side[6];
|
||||
} Cube;
|
||||
|
||||
static Cube *cube;
|
||||
static double rotx = 0.0, roty = 0.0, rotz = 0.0;
|
||||
static double cxo = 0.0, cyo = 0.0, focv = 256.0, z0v = 0.0;
|
||||
#define POINT(n, p, xx, yy, zz, uu, vv) \
|
||||
c->side[n].pt[p].x = xx; \
|
||||
c->side[n].pt[p].y = yy; \
|
||||
c->side[n].pt[p].z = zz; \
|
||||
c->side[n].pt[p].u = uu; \
|
||||
c->side[n].pt[p].v = vv
|
||||
|
||||
static Cube *
|
||||
_cube_new(Evas *evas, Evas_Coord w, Evas_Coord h, Evas_Coord d)
|
||||
{
|
||||
Cube *c;
|
||||
int i;
|
||||
|
||||
w -= (w / 2);
|
||||
h -= (h / 2);
|
||||
d -= (d / 2);
|
||||
c = calloc(1, sizeof(Cube));
|
||||
for (i = 0; i < 6; i++)
|
||||
{
|
||||
Evas_Object *o;
|
||||
char buf[PATH_MAX];
|
||||
o = evas_object_image_add(evas);
|
||||
c->side[i].o = o;
|
||||
snprintf(buf, sizeof(buf), "%s/images/%s",
|
||||
elm_app_data_dir_get(), "twofish.jpg");
|
||||
evas_object_image_file_set(o, buf, NULL);
|
||||
evas_object_image_fill_set(o, 0, 0, 256, 256);
|
||||
evas_object_resize(o, 256, 256);
|
||||
evas_object_image_smooth_scale_set(o, 0);
|
||||
evas_object_show(o);
|
||||
}
|
||||
POINT(0, 0, -w, -h, -d, 0, 0);
|
||||
POINT(0, 1, w, -h, -d, 256, 0);
|
||||
POINT(0, 2, w, h, -d, 256, 256);
|
||||
POINT(0, 3, -w, h, -d, 0, 256);
|
||||
|
||||
POINT(1, 0, w, -h, -d, 0, 0);
|
||||
POINT(1, 1, w, -h, d, 256, 0);
|
||||
POINT(1, 2, w, h, d, 256, 256);
|
||||
POINT(1, 3, w, h, -d, 0, 256);
|
||||
|
||||
POINT(2, 0, w, -h, d, 0, 0);
|
||||
POINT(2, 1, -w, -h, d, 256, 0);
|
||||
POINT(2, 2, -w, h, d, 256, 256);
|
||||
POINT(2, 3, w, h, d, 0, 256);
|
||||
|
||||
POINT(3, 0, -w, -h, d, 0, 0);
|
||||
POINT(3, 1, -w, -h, -d, 256, 0);
|
||||
POINT(3, 2, -w, h, -d, 256, 256);
|
||||
POINT(3, 3, -w, h, d, 0, 256);
|
||||
|
||||
POINT(4, 0, -w, -h, d, 0, 0);
|
||||
POINT(4, 1, w, -h, d, 256, 0);
|
||||
POINT(4, 2, w, -h, -d, 256, 256);
|
||||
POINT(4, 3, -w, -h, -d, 0, 256);
|
||||
|
||||
POINT(5, 0, -w, h, -d, 0, 0);
|
||||
POINT(5, 1, w, h, -d, 256, 0);
|
||||
POINT(5, 2, w, h, d, 256, 256);
|
||||
POINT(5, 3, -w, h, d, 0, 256);
|
||||
|
||||
return c;
|
||||
}
|
||||
|
||||
static void
|
||||
_cube_pos(Cube *c,
|
||||
Evas_Coord x, Evas_Coord y, Evas_Coord z,
|
||||
double dx, double dy, double dz,
|
||||
Evas_Coord cx, Evas_Coord cy, Evas_Coord foc, Evas_Coord z0)
|
||||
{
|
||||
Evas_Map *m;
|
||||
int i, j, order[6], sorted;
|
||||
Evas_Coord mz[6];
|
||||
|
||||
m = evas_map_new(4);
|
||||
evas_map_smooth_set(m, 0);
|
||||
|
||||
for (i = 0; i < 6; i++)
|
||||
{
|
||||
Evas_Coord tz[4];
|
||||
|
||||
for (j = 0; j < 4; j++)
|
||||
{
|
||||
evas_map_point_coord_set(m, j,
|
||||
c->side[i].pt[j].x + x,
|
||||
c->side[i].pt[j].y + y,
|
||||
c->side[i].pt[j].z + z);
|
||||
evas_map_point_image_uv_set(m, j,
|
||||
c->side[i].pt[j].u,
|
||||
c->side[i].pt[j].v);
|
||||
evas_map_point_color_set(m, j, 255, 255, 255, 255);
|
||||
}
|
||||
evas_map_util_3d_rotate(m, dx, dy, dz, x, y, z);
|
||||
evas_map_util_3d_lighting(m, -1000, -1000, -1000,
|
||||
255, 255, 255,
|
||||
20, 20, 20);
|
||||
evas_map_util_3d_perspective(m, cx, cy, foc, z0);
|
||||
if (evas_map_util_clockwise_get(m))
|
||||
{
|
||||
evas_object_map_enable_set(c->side[i].o, 1);
|
||||
evas_object_map_set(c->side[i].o, m);
|
||||
evas_object_show(c->side[i].o);
|
||||
}
|
||||
else
|
||||
evas_object_hide(c->side[i].o);
|
||||
|
||||
order[i] = i;
|
||||
for (j = 0; j < 4; j++)
|
||||
evas_map_point_coord_get(m, j, NULL, NULL, &(tz[j]));
|
||||
mz[i] = (tz[0] + tz[1] + tz[2] + tz[3]) / 4;
|
||||
}
|
||||
sorted = 0;
|
||||
do
|
||||
{
|
||||
sorted = 1;
|
||||
for (i = 0; i < 5; i++)
|
||||
{
|
||||
if (mz[order[i]] > mz[order[i + 1]])
|
||||
{
|
||||
j = order[i];
|
||||
order[i] = order[i + 1];
|
||||
order[i + 1] = j;
|
||||
sorted = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
while (!sorted);
|
||||
|
||||
evas_object_raise(c->side[order[0]].o);
|
||||
for (i = 1; i < 6; i++)
|
||||
evas_object_stack_below(c->side[order[i]].o, c->side[order[i - 1]].o);
|
||||
evas_map_free(m);
|
||||
}
|
||||
|
||||
/*
|
||||
static void
|
||||
_cube_free(Cube *c)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 6; i++) evas_object_del(c->side[i].o);
|
||||
free(c);
|
||||
}
|
||||
*/
|
||||
|
||||
static void
|
||||
_cube_update(Evas_Object *win, Cube *c)
|
||||
{
|
||||
Evas_Coord w, h;
|
||||
|
||||
evas_object_geometry_get(win, NULL, NULL, &w, &h);
|
||||
_cube_pos(c,
|
||||
(w / 2), (h / 2), 512,
|
||||
rotx, roty, rotz,
|
||||
(w / 2) + cxo, (h / 2) + cyo, z0v, focv);
|
||||
}
|
||||
|
||||
void
|
||||
_ch_rot_x(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *win = data;
|
||||
rotx = elm_slider_value_get(obj);
|
||||
_cube_update(win, cube);
|
||||
}
|
||||
|
||||
void
|
||||
_ch_rot_y(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *win = data;
|
||||
roty = elm_slider_value_get(obj);
|
||||
_cube_update(win, cube);
|
||||
}
|
||||
|
||||
void
|
||||
_ch_rot_z(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *win = data;
|
||||
rotz = elm_slider_value_get(obj);
|
||||
_cube_update(win, cube);
|
||||
}
|
||||
|
||||
void
|
||||
_ch_cx(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *win = data;
|
||||
cxo = elm_slider_value_get(obj);
|
||||
_cube_update(win, cube);
|
||||
}
|
||||
|
||||
void
|
||||
_ch_cy(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *win = data;
|
||||
cyo = elm_slider_value_get(obj);
|
||||
_cube_update(win, cube);
|
||||
}
|
||||
|
||||
void
|
||||
_ch_foc(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *win = data;
|
||||
focv = elm_slider_value_get(obj);
|
||||
_cube_update(win, cube);
|
||||
}
|
||||
|
||||
void
|
||||
_ch_z0(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *win = data;
|
||||
z0v = elm_slider_value_get(obj);
|
||||
_cube_update(win, cube);
|
||||
}
|
||||
|
||||
TEST_START(test_3d)
|
||||
{
|
||||
Evas_Object *bg, *bx, *sl;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
cube = _cube_new(evas_object_evas_get(win), 240, 240, 240);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_layer_set(bx, 10);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
sl = elm_slider_add(win);
|
||||
elm_object_text_set(sl, "Rot X");
|
||||
elm_slider_unit_format_set(sl, "%1.0f units");
|
||||
elm_slider_span_size_set(sl, 360);
|
||||
elm_slider_min_max_set(sl, 0, 360);
|
||||
evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, sl);
|
||||
evas_object_smart_callback_add(sl, "changed", _ch_rot_x, win);
|
||||
evas_object_show(sl);
|
||||
|
||||
sl = elm_slider_add(win);
|
||||
elm_object_text_set(sl, "Rot Y");
|
||||
elm_slider_unit_format_set(sl, "%1.0f units");
|
||||
elm_slider_span_size_set(sl, 360);
|
||||
elm_slider_min_max_set(sl, 0, 360);
|
||||
evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, sl);
|
||||
evas_object_smart_callback_add(sl, "changed", _ch_rot_y, win);
|
||||
evas_object_show(sl);
|
||||
|
||||
sl = elm_slider_add(win);
|
||||
elm_object_text_set(sl, "Rot Z");
|
||||
elm_slider_unit_format_set(sl, "%1.0f units");
|
||||
elm_slider_span_size_set(sl, 360);
|
||||
elm_slider_min_max_set(sl, 0, 360);
|
||||
evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, sl);
|
||||
evas_object_smart_callback_add(sl, "changed", _ch_rot_z, win);
|
||||
evas_object_show(sl);
|
||||
|
||||
sl = elm_slider_add(win);
|
||||
elm_object_text_set(sl, "CX Off");
|
||||
elm_slider_unit_format_set(sl, "%1.0f units");
|
||||
elm_slider_span_size_set(sl, 360);
|
||||
elm_slider_min_max_set(sl, -320, 320);
|
||||
elm_slider_value_set(sl, cxo);
|
||||
evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, sl);
|
||||
evas_object_smart_callback_add(sl, "changed", _ch_cx, win);
|
||||
evas_object_show(sl);
|
||||
|
||||
sl = elm_slider_add(win);
|
||||
elm_object_text_set(sl, "CY Off");
|
||||
elm_slider_unit_format_set(sl, "%1.0f units");
|
||||
elm_slider_span_size_set(sl, 360);
|
||||
elm_slider_min_max_set(sl, -320, 320);
|
||||
elm_slider_value_set(sl, cyo);
|
||||
evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, sl);
|
||||
evas_object_smart_callback_add(sl, "changed", _ch_cy, win);
|
||||
evas_object_show(sl);
|
||||
|
||||
sl = elm_slider_add(win);
|
||||
elm_object_text_set(sl, "Foc");
|
||||
elm_slider_unit_format_set(sl, "%1.0f units");
|
||||
elm_slider_span_size_set(sl, 360);
|
||||
elm_slider_min_max_set(sl, 1, 2000);
|
||||
elm_slider_value_set(sl, focv);
|
||||
evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, sl);
|
||||
evas_object_smart_callback_add(sl, "changed", _ch_foc, win);
|
||||
evas_object_show(sl);
|
||||
|
||||
sl = elm_slider_add(win);
|
||||
elm_object_text_set(sl, "Z0");
|
||||
elm_slider_unit_format_set(sl, "%1.0f units");
|
||||
elm_slider_span_size_set(sl, 360);
|
||||
elm_slider_min_max_set(sl, -2000, 2000);
|
||||
elm_slider_value_set(sl, z0v);
|
||||
evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, sl);
|
||||
evas_object_smart_callback_add(sl, "changed", _ch_z0, win);
|
||||
evas_object_show(sl);
|
||||
|
||||
evas_object_resize(win, 480, 480);
|
||||
_cube_update(win, cube);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,175 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
static void _pos_selected_cb(void *data __UNUSED__, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
printf("Selection: %s\n", (char *)event_info);
|
||||
printf("Label selected: %s\n", elm_actionslider_selected_label_get(obj));
|
||||
}
|
||||
|
||||
static void
|
||||
_position_change_magnetic_cb(void *data __UNUSED__, Evas_Object * obj, void *event_info)
|
||||
{
|
||||
if (!strcmp((char *)event_info, "left"))
|
||||
elm_actionslider_magnet_pos_set(obj, ELM_ACTIONSLIDER_LEFT);
|
||||
else if (!strcmp((char *)event_info, "right"))
|
||||
elm_actionslider_magnet_pos_set(obj, ELM_ACTIONSLIDER_RIGHT);
|
||||
}
|
||||
|
||||
static void
|
||||
_magnet_enable_disable_cb(void *data __UNUSED__, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
if (!strcmp((char *)event_info, "left"))
|
||||
elm_actionslider_magnet_pos_set(obj, ELM_ACTIONSLIDER_CENTER);
|
||||
else if (!strcmp((char *)event_info, "right"))
|
||||
elm_actionslider_magnet_pos_set(obj, ELM_ACTIONSLIDER_NONE);
|
||||
}
|
||||
|
||||
enum _api_state
|
||||
{
|
||||
API_STATE_LAST
|
||||
};
|
||||
typedef enum _api_state api_state;
|
||||
|
||||
static void
|
||||
set_api_state(api_data *api)
|
||||
{
|
||||
switch(api->state)
|
||||
{ /* Put all api-changes under switch */
|
||||
case API_STATE_LAST:
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_api_bt_clicked(void *data, Evas_Object *obj __UNUSED__, 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);
|
||||
a->state++;
|
||||
set_api_state(a);
|
||||
sprintf(str, "Next API function (%u)", a->state);
|
||||
elm_object_text_set(a->bt, str);
|
||||
elm_object_disabled_set(a->bt, a->state == API_STATE_LAST);
|
||||
}
|
||||
|
||||
TEST_START(test_actionslider)
|
||||
{
|
||||
Evas_Object *bg, *bx, *as;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, 0);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
api->bt = elm_button_add(win);
|
||||
elm_object_text_set(api->bt, "Next API function");
|
||||
evas_object_smart_callback_add(api->bt, "clicked", _api_bt_clicked, (void *) api);
|
||||
elm_box_pack_end(bx, api->bt);
|
||||
elm_object_disabled_set(api->bt, api->state == API_STATE_LAST);
|
||||
evas_object_show(api->bt);
|
||||
|
||||
as = elm_actionslider_add(win);
|
||||
evas_object_size_hint_weight_set(as, EVAS_HINT_EXPAND, 0);
|
||||
evas_object_size_hint_align_set(as, EVAS_HINT_FILL, 0);
|
||||
elm_actionslider_indicator_pos_set(as, ELM_ACTIONSLIDER_RIGHT);
|
||||
elm_actionslider_magnet_pos_set(as, ELM_ACTIONSLIDER_RIGHT);
|
||||
elm_object_part_text_set(as, "left", "Snooze");
|
||||
elm_object_part_text_set(as, "center", NULL);
|
||||
elm_object_part_text_set(as, "right", "Stop");
|
||||
elm_actionslider_enabled_pos_set(as, ELM_ACTIONSLIDER_LEFT |
|
||||
ELM_ACTIONSLIDER_RIGHT);
|
||||
evas_object_smart_callback_add(as, "pos_changed",
|
||||
_position_change_magnetic_cb, NULL);
|
||||
evas_object_smart_callback_add(as, "selected", _pos_selected_cb, NULL);
|
||||
evas_object_show(as);
|
||||
elm_box_pack_end(bx, as);
|
||||
|
||||
as = elm_actionslider_add(win);
|
||||
evas_object_size_hint_weight_set(as, EVAS_HINT_EXPAND, 0);
|
||||
evas_object_size_hint_align_set(as, EVAS_HINT_FILL, 0);
|
||||
elm_actionslider_indicator_pos_set(as, ELM_ACTIONSLIDER_CENTER);
|
||||
elm_actionslider_magnet_pos_set(as, ELM_ACTIONSLIDER_CENTER);
|
||||
elm_object_part_text_set(as, "left", "Snooze");
|
||||
elm_object_part_text_set(as, "center", NULL);
|
||||
elm_object_part_text_set(as, "right", "Stop");
|
||||
elm_actionslider_enabled_pos_set(as, ELM_ACTIONSLIDER_LEFT |
|
||||
ELM_ACTIONSLIDER_RIGHT);
|
||||
evas_object_smart_callback_add(as, "selected", _pos_selected_cb, NULL);
|
||||
evas_object_show(as);
|
||||
elm_box_pack_end(bx, as);
|
||||
|
||||
as = elm_actionslider_add(win);
|
||||
elm_object_style_set(as, "bar");
|
||||
evas_object_size_hint_weight_set(as, EVAS_HINT_EXPAND, 0);
|
||||
evas_object_size_hint_align_set(as, EVAS_HINT_FILL, 0);
|
||||
elm_actionslider_indicator_pos_set(as, ELM_ACTIONSLIDER_LEFT);
|
||||
elm_actionslider_magnet_pos_set(as, ELM_ACTIONSLIDER_CENTER|
|
||||
ELM_ACTIONSLIDER_RIGHT);
|
||||
elm_actionslider_enabled_pos_set(as, ELM_ACTIONSLIDER_CENTER |
|
||||
ELM_ACTIONSLIDER_RIGHT);
|
||||
elm_object_part_text_set(as, "left", NULL);
|
||||
elm_object_part_text_set(as, "center", "Accept");
|
||||
elm_object_part_text_set(as, "right", "Reject");
|
||||
evas_object_smart_callback_add(as, "selected", _pos_selected_cb, NULL);
|
||||
evas_object_show(as);
|
||||
elm_box_pack_end(bx, as);
|
||||
|
||||
as = elm_actionslider_add(win);
|
||||
elm_object_style_set(as, "bar");
|
||||
evas_object_size_hint_weight_set(as, EVAS_HINT_EXPAND, 0);
|
||||
evas_object_size_hint_align_set(as, EVAS_HINT_FILL, 0);
|
||||
elm_actionslider_indicator_pos_set(as, ELM_ACTIONSLIDER_LEFT);
|
||||
elm_actionslider_magnet_pos_set(as, ELM_ACTIONSLIDER_LEFT);
|
||||
elm_object_part_text_set(as, "left", NULL);
|
||||
elm_object_part_text_set(as, "center", "Accept");
|
||||
elm_object_part_text_set(as, "right", "Reject");
|
||||
elm_object_text_set(as, "Go");
|
||||
evas_object_smart_callback_add(as, "pos_changed",
|
||||
_position_change_magnetic_cb, NULL);
|
||||
evas_object_smart_callback_add(as, "selected", _pos_selected_cb, NULL);
|
||||
evas_object_show(as);
|
||||
elm_box_pack_end(bx, as);
|
||||
|
||||
|
||||
as = elm_actionslider_add(win);
|
||||
evas_object_size_hint_weight_set(as, EVAS_HINT_EXPAND, 0);
|
||||
evas_object_size_hint_align_set(as, EVAS_HINT_FILL, 0);
|
||||
elm_actionslider_indicator_pos_set(as, ELM_ACTIONSLIDER_LEFT);
|
||||
elm_actionslider_magnet_pos_set(as, ELM_ACTIONSLIDER_ALL);
|
||||
elm_object_part_text_set(as, "left", "Left");
|
||||
elm_object_part_text_set(as, "center", "Center");
|
||||
elm_object_part_text_set(as, "right", "Right");
|
||||
elm_object_text_set(as, "Go");
|
||||
evas_object_smart_callback_add(as, "selected", _pos_selected_cb, NULL);
|
||||
evas_object_show(as);
|
||||
elm_box_pack_end(bx, as);
|
||||
|
||||
as = elm_actionslider_add(win);
|
||||
evas_object_size_hint_weight_set(as, EVAS_HINT_EXPAND, 0);
|
||||
evas_object_size_hint_align_set(as, EVAS_HINT_FILL, 0);
|
||||
elm_actionslider_indicator_pos_set(as, ELM_ACTIONSLIDER_CENTER);
|
||||
elm_actionslider_magnet_pos_set(as, ELM_ACTIONSLIDER_CENTER);
|
||||
elm_object_part_text_set(as, "left", "Enable");
|
||||
elm_object_part_text_set(as, "center", "Magnet");
|
||||
elm_object_part_text_set(as, "right", "Disable");
|
||||
evas_object_smart_callback_add(as, "pos_changed",
|
||||
_magnet_enable_disable_cb, NULL);
|
||||
evas_object_smart_callback_add(as, "selected", _pos_selected_cb, NULL);
|
||||
evas_object_show(as);
|
||||
elm_box_pack_end(bx, as);
|
||||
|
||||
evas_object_resize(win, 320, 400);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,275 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
static void
|
||||
_print_clicked(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("bubble clicked\n");
|
||||
}
|
||||
|
||||
static void
|
||||
my_anchorblock_bt(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *av = data;
|
||||
elm_anchorblock_hover_end(av);
|
||||
}
|
||||
|
||||
static void
|
||||
my_anchorblock_anchor(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Evas_Object *av = data;
|
||||
Elm_Entry_Anchorblock_Info *ei = event_info;
|
||||
Evas_Object *bt, *bx;
|
||||
|
||||
bt = elm_button_add(obj);
|
||||
elm_object_text_set(bt, ei->name);
|
||||
elm_hover_content_set(ei->hover, "middle", bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
// hints as to where we probably should put hover contents (buttons etc.).
|
||||
if (ei->hover_top)
|
||||
{
|
||||
bx = elm_box_add(obj);
|
||||
bt = elm_button_add(obj);
|
||||
elm_object_text_set(bt, "Top 1");
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", my_anchorblock_bt, av);
|
||||
evas_object_show(bt);
|
||||
bt = elm_button_add(obj);
|
||||
elm_object_text_set(bt, "Top 2");
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", my_anchorblock_bt, av);
|
||||
evas_object_show(bt);
|
||||
bt = elm_button_add(obj);
|
||||
elm_object_text_set(bt, "Top 3");
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", my_anchorblock_bt, av);
|
||||
evas_object_show(bt);
|
||||
elm_hover_content_set(ei->hover, "top", bx);
|
||||
evas_object_show(bx);
|
||||
}
|
||||
if (ei->hover_bottom)
|
||||
{
|
||||
bt = elm_button_add(obj);
|
||||
elm_object_text_set(bt, "Bot");
|
||||
elm_hover_content_set(ei->hover, "bottom", bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", my_anchorblock_bt, av);
|
||||
evas_object_show(bt);
|
||||
}
|
||||
if (ei->hover_left)
|
||||
{
|
||||
bt = elm_button_add(obj);
|
||||
elm_object_text_set(bt, "Left");
|
||||
elm_hover_content_set(ei->hover, "left", bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", my_anchorblock_bt, av);
|
||||
evas_object_show(bt);
|
||||
}
|
||||
if (ei->hover_right)
|
||||
{
|
||||
bt = elm_button_add(obj);
|
||||
elm_object_text_set(bt, "Right");
|
||||
elm_hover_content_set(ei->hover, "right", bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", my_anchorblock_bt, av);
|
||||
evas_object_show(bt);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
my_anchorblock_edge_left(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("left\n");
|
||||
}
|
||||
|
||||
static void
|
||||
my_anchorblock_edge_right(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("right\n");
|
||||
}
|
||||
|
||||
static void
|
||||
my_anchorblock_edge_top(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("top\n");
|
||||
}
|
||||
|
||||
static void
|
||||
my_anchorblock_edge_bottom(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("bottom\n");
|
||||
}
|
||||
|
||||
static void
|
||||
my_anchorblock_scroll(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Coord x, y, w, h, vw, vh;
|
||||
|
||||
elm_scroller_region_get(obj, &x, &y, &w, &h);
|
||||
elm_scroller_child_size_get(obj, &vw, &vh);
|
||||
printf("scroll %ix%i +%i+%i in %ix%i\n", w, h, x, y, vw, vh);
|
||||
}
|
||||
|
||||
enum _api_state
|
||||
{
|
||||
API_STATE_LAST
|
||||
};
|
||||
typedef enum _api_state api_state;
|
||||
|
||||
static void
|
||||
set_api_state(api_data *api)
|
||||
{
|
||||
switch(api->state)
|
||||
{ /* Put all api-changes under switch */
|
||||
case API_STATE_LAST:
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_api_bt_clicked(void *data, Evas_Object *obj __UNUSED__, 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);
|
||||
a->state++;
|
||||
set_api_state(a);
|
||||
sprintf(str, "Next API function (%u)", a->state);
|
||||
elm_object_text_set(a->bt, str);
|
||||
elm_object_disabled_set(a->bt, a->state == API_STATE_LAST);
|
||||
}
|
||||
|
||||
TEST_START(test_anchorblock)
|
||||
{
|
||||
Evas_Object *bg, *av, *sc, *bx, *bb, *ic;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
sc = elm_scroller_add(win);
|
||||
evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, sc);
|
||||
|
||||
evas_object_smart_callback_add(sc, "edge_left", my_anchorblock_edge_left, NULL);
|
||||
evas_object_smart_callback_add(sc, "edge_right", my_anchorblock_edge_right, NULL);
|
||||
evas_object_smart_callback_add(sc, "edge_top", my_anchorblock_edge_top, NULL);
|
||||
evas_object_smart_callback_add(sc, "edge_bottom", my_anchorblock_edge_bottom, NULL);
|
||||
evas_object_smart_callback_add(sc, "scroll", my_anchorblock_scroll, NULL);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
api->bt = elm_button_add(win);
|
||||
elm_object_text_set(api->bt, "Next API function");
|
||||
evas_object_smart_callback_add(api->bt, "clicked", _api_bt_clicked, (void *) api);
|
||||
elm_box_pack_end(bx, api->bt);
|
||||
elm_object_disabled_set(api->bt, api->state == API_STATE_LAST);
|
||||
evas_object_show(api->bt);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_HORIZONTAL, 1, 1);
|
||||
|
||||
bb = elm_bubble_add(win);
|
||||
elm_object_text_set(bb, "Message 3");
|
||||
elm_object_part_text_set(bb, "info", "10:32 4/11/2008");
|
||||
elm_object_part_content_set(bb, "icon", ic);
|
||||
evas_object_smart_callback_add(bb, "clicked", _print_clicked, NULL);
|
||||
evas_object_show(ic);
|
||||
evas_object_size_hint_weight_set(bb, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(bb, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
av = elm_anchorblock_add(win);
|
||||
elm_anchorblock_hover_style_set(av, "popout");
|
||||
elm_anchorblock_hover_parent_set(av, win);
|
||||
elm_object_text_set(av,
|
||||
"Hi there. This is the most recent message in the "
|
||||
"list of messages. It has one <a href=tel:+614321234>+61 432 1234</a> "
|
||||
"(phone number) to click on.");
|
||||
evas_object_smart_callback_add(av, "anchor,clicked",
|
||||
my_anchorblock_anchor, av);
|
||||
elm_object_content_set(bb, av);
|
||||
evas_object_show(av);
|
||||
elm_box_pack_end(bx, bb);
|
||||
evas_object_show(bb);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
|
||||
bb = elm_bubble_add(win);
|
||||
elm_object_text_set(bb, "Message 2");
|
||||
elm_object_part_text_set(bb, "info", "7:16 27/10/2008");
|
||||
elm_object_part_content_set(bb, "icon", ic);
|
||||
evas_object_smart_callback_add(bb, "clicked", _print_clicked, NULL);
|
||||
evas_object_show(ic);
|
||||
evas_object_size_hint_weight_set(bb, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(bb, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
av = elm_anchorblock_add(win);
|
||||
elm_anchorblock_hover_style_set(av, "popout");
|
||||
elm_anchorblock_hover_parent_set(av, win);
|
||||
elm_object_text_set(av,
|
||||
"Hey what are you doing? This is the second last message "
|
||||
"Hi there. This is the most recent message in the "
|
||||
"list. It's a longer one so it can wrap more and "
|
||||
"contains a <a href=contact:john>John</a> contact "
|
||||
"link in it to test popups on links. The idea is that "
|
||||
"all SMS's are scanned for things that look like phone "
|
||||
"numbers or names that are in your contacts list, and "
|
||||
"if they are, they become clickable links that pop up "
|
||||
"a menus of obvious actions to perform on this piece "
|
||||
"of information. This of course can be later explicitly "
|
||||
"done by links maybe running local apps or even being "
|
||||
"web URL's too that launch the web browser and point it "
|
||||
"to that URL. <item relsize=16x16 vsize=full href=emoticon/omg></item>");
|
||||
evas_object_smart_callback_add(av, "anchor,clicked", my_anchorblock_anchor, av);
|
||||
elm_object_content_set(bb, av);
|
||||
evas_object_show(av);
|
||||
elm_box_pack_end(bx, bb);
|
||||
evas_object_show(bb);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_HORIZONTAL, 1, 1);
|
||||
|
||||
bb = elm_bubble_add(win);
|
||||
elm_object_text_set(bb, "Message 1");
|
||||
elm_object_part_text_set(bb, "info", "20:47 18/6/2008");
|
||||
elm_object_part_content_set(bb, "icon", ic);
|
||||
evas_object_smart_callback_add(bb, "clicked", _print_clicked, NULL);
|
||||
evas_object_show(ic);
|
||||
evas_object_size_hint_weight_set(bb, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(bb, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
av = elm_anchorblock_add(win);
|
||||
elm_anchorblock_hover_style_set(av, "popout");
|
||||
elm_anchorblock_hover_parent_set(av, win);
|
||||
elm_object_text_set(av, "This is a short message. <item relsize=16x16 vsize=full href=emoticon/haha></item>");
|
||||
evas_object_smart_callback_add(av, "anchor,clicked",
|
||||
my_anchorblock_anchor, av);
|
||||
elm_object_content_set(bb, av);
|
||||
evas_object_show(av);
|
||||
elm_box_pack_end(bx, bb);
|
||||
evas_object_show(bb);
|
||||
|
||||
elm_object_content_set(sc, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
evas_object_show(sc);
|
||||
|
||||
evas_object_resize(win, 320, 520);
|
||||
|
||||
elm_object_focus_set(win, EINA_TRUE);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,148 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
static void
|
||||
my_anchorview_bt(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *av = data;
|
||||
elm_anchorview_hover_end(av);
|
||||
}
|
||||
|
||||
static void
|
||||
my_anchorview_anchor(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Evas_Object *av = data;
|
||||
Elm_Entry_Anchorview_Info *ei = event_info;
|
||||
Evas_Object *bt, *bx;
|
||||
|
||||
bt = elm_button_add(obj);
|
||||
elm_object_text_set(bt, ei->name);
|
||||
elm_hover_content_set(ei->hover, "middle", bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
// hints as to where we probably should put hover contents (buttons etc.).
|
||||
if (ei->hover_top)
|
||||
{
|
||||
bx = elm_box_add(obj);
|
||||
bt = elm_button_add(obj);
|
||||
elm_object_text_set(bt, "Top 1");
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", my_anchorview_bt, av);
|
||||
evas_object_show(bt);
|
||||
bt = elm_button_add(obj);
|
||||
elm_object_text_set(bt, "Top 2");
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", my_anchorview_bt, av);
|
||||
evas_object_show(bt);
|
||||
bt = elm_button_add(obj);
|
||||
elm_object_text_set(bt, "Top 3");
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", my_anchorview_bt, av);
|
||||
evas_object_show(bt);
|
||||
elm_hover_content_set(ei->hover, "top", bx);
|
||||
evas_object_show(bx);
|
||||
}
|
||||
if (ei->hover_bottom)
|
||||
{
|
||||
bt = elm_button_add(obj);
|
||||
elm_object_text_set(bt, "Bot");
|
||||
elm_hover_content_set(ei->hover, "bottom", bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", my_anchorview_bt, av);
|
||||
evas_object_show(bt);
|
||||
}
|
||||
if (ei->hover_left)
|
||||
{
|
||||
bt = elm_button_add(obj);
|
||||
elm_object_text_set(bt, "Left");
|
||||
elm_hover_content_set(ei->hover, "left", bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", my_anchorview_bt, av);
|
||||
evas_object_show(bt);
|
||||
}
|
||||
if (ei->hover_right)
|
||||
{
|
||||
bt = elm_button_add(obj);
|
||||
elm_object_text_set(bt, "Right");
|
||||
elm_hover_content_set(ei->hover, "right", bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", my_anchorview_bt, av);
|
||||
evas_object_show(bt);
|
||||
}
|
||||
}
|
||||
|
||||
enum _api_state
|
||||
{
|
||||
API_STATE_LAST
|
||||
};
|
||||
typedef enum _api_state api_state;
|
||||
|
||||
static void
|
||||
set_api_state(api_data *api)
|
||||
{
|
||||
switch(api->state)
|
||||
{ /* Put all api-changes under switch */
|
||||
case API_STATE_LAST:
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_api_bt_clicked(void *data, Evas_Object *obj __UNUSED__, 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);
|
||||
a->state++;
|
||||
set_api_state(a);
|
||||
sprintf(str, "Next API function (%u)", a->state);
|
||||
elm_object_text_set(a->bt, str);
|
||||
elm_object_disabled_set(a->bt, a->state == API_STATE_LAST);
|
||||
}
|
||||
|
||||
TEST_START(test_anchorview)
|
||||
{
|
||||
Evas_Object *bg, *bx, *av;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bx); /* Resize BOX to size of window */
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
api->bt = elm_button_add(win);
|
||||
elm_object_text_set(api->bt, "Next API function");
|
||||
evas_object_smart_callback_add(api->bt, "clicked", _api_bt_clicked, (void *) api);
|
||||
elm_box_pack_end(bx, api->bt);
|
||||
elm_object_disabled_set(api->bt, api->state == API_STATE_LAST);
|
||||
evas_object_show(api->bt);
|
||||
|
||||
av = elm_anchorview_add(win);
|
||||
elm_anchorview_hover_style_set(av, "popout");
|
||||
elm_anchorview_hover_parent_set(av, win);
|
||||
elm_object_text_set(av,
|
||||
"This is an entry widget in this window that<br>"
|
||||
"uses markup <b>like this</> for styling and<br>"
|
||||
"formatting <em>like this</>, as well as<br>"
|
||||
"<a href=X><link>links in the text</></a>, so enter text<br>"
|
||||
"in here to edit it. By the way, links are<br>"
|
||||
"called <a href=anc-02>Anchors</a> so you will need<br>"
|
||||
"to refer to them this way. <item relsize=16x16 vsize=full href=emoticon/guilty-smile></item>");
|
||||
evas_object_size_hint_weight_set(av, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(av, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_smart_callback_add(av, "anchor,clicked", my_anchorview_anchor, av);
|
||||
elm_box_pack_end(bx, av);
|
||||
evas_object_show(av);
|
||||
evas_object_show(bx);
|
||||
|
||||
evas_object_resize(win, 320, 300);
|
||||
|
||||
elm_object_focus_set(win, EINA_TRUE);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,194 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
static void
|
||||
_cb_radio_changed(void *data, Evas_Object *obj, void *event __UNUSED__)
|
||||
{
|
||||
Evas_Object *o_bg = data;
|
||||
|
||||
elm_bg_option_set(o_bg, elm_radio_value_get((Evas_Object *)obj));
|
||||
}
|
||||
|
||||
static void
|
||||
_cb_overlay_changed(void *data, Evas_Object *obj, void *event __UNUSED__)
|
||||
{
|
||||
Evas_Object *o_bg = data;
|
||||
|
||||
if (elm_check_state_get(obj))
|
||||
{
|
||||
Evas_Object *parent, *over;
|
||||
char buff[PATH_MAX];
|
||||
|
||||
snprintf(buff, sizeof(buff), "%s/objects/test.edj", elm_app_data_dir_get());
|
||||
parent = elm_object_parent_widget_get(o_bg);
|
||||
over = edje_object_add(evas_object_evas_get(parent));
|
||||
edje_object_file_set(over, buff, "bg_overlay");
|
||||
elm_object_content_set(o_bg, over);
|
||||
}
|
||||
else
|
||||
elm_object_content_set(o_bg, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_cb_color_changed(void *data, Evas_Object *obj, void *event __UNUSED__)
|
||||
{
|
||||
Evas_Object *o_bg = data;
|
||||
double val = 0.0;
|
||||
|
||||
val = elm_spinner_value_get(obj);
|
||||
if (val == 1.0)
|
||||
elm_bg_color_set(o_bg, 255, 255, 255);
|
||||
else if (val == 2.0)
|
||||
elm_bg_color_set(o_bg, 255, 0, 0);
|
||||
else if (val == 3.0)
|
||||
elm_bg_color_set(o_bg, 0, 0, 255);
|
||||
else if (val == 4.0)
|
||||
elm_bg_color_set(o_bg, 0, 255, 0);
|
||||
}
|
||||
|
||||
TEST_START(test_bg_plain)
|
||||
{
|
||||
Evas_Object *bg;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
/* allow bg to expand in x & y */
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_show(bg);
|
||||
|
||||
/* set size hints. a minimum size for the bg. this should propagate back
|
||||
* to the window thus limiting its size based off the bg as the bg is one
|
||||
* of the window's resize objects. */
|
||||
evas_object_size_hint_min_set(bg, 160, 160);
|
||||
/* and set a maximum size. not needed very often. normally used together
|
||||
* with evas_object_size_hint_min_set() at the same size to make a
|
||||
* window not resizable */
|
||||
evas_object_size_hint_max_set(bg, 640, 640);
|
||||
/* and now just resize the window to a size you want. normally widgets
|
||||
* will determine the initial size though */
|
||||
evas_object_resize(win, 320, 320);
|
||||
/* and show the window */
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
TEST_START(test_bg_image)
|
||||
{
|
||||
Evas_Object *bg;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", elm_app_data_dir_get());
|
||||
elm_bg_file_set(bg, buf, NULL);
|
||||
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_size_hint_min_set(bg, 160, 160);
|
||||
evas_object_size_hint_max_set(bg, 640, 640);
|
||||
evas_object_resize(win, 320, 320);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
TEST_START(test_bg_options)
|
||||
{
|
||||
Evas_Object *bg;
|
||||
Evas_Object *box, *hbox, *o_bg;
|
||||
Evas_Object *rd, *rdg;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
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);
|
||||
|
||||
box = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, box);
|
||||
evas_object_show(box);
|
||||
|
||||
o_bg = elm_bg_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", elm_app_data_dir_get());
|
||||
elm_bg_file_set(o_bg, buf, NULL);
|
||||
evas_object_size_hint_weight_set(o_bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(o_bg, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_box_pack_end(box, o_bg);
|
||||
evas_object_show(o_bg);
|
||||
|
||||
hbox = elm_box_add(win);
|
||||
elm_box_horizontal_set(hbox, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(hbox, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_align_set(hbox, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
rd = elm_radio_add(win);
|
||||
elm_radio_state_value_set(rd, ELM_BG_OPTION_CENTER);
|
||||
elm_object_text_set(rd, "Center");
|
||||
evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
|
||||
evas_object_smart_callback_add(rd, "changed", _cb_radio_changed, o_bg);
|
||||
elm_box_pack_end(hbox, rd);
|
||||
evas_object_show(rd);
|
||||
rdg = rd;
|
||||
|
||||
rd = elm_radio_add(win);
|
||||
elm_radio_state_value_set(rd, ELM_BG_OPTION_SCALE);
|
||||
elm_radio_group_add(rd, rdg);
|
||||
elm_object_text_set(rd, "Scale");
|
||||
evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
|
||||
evas_object_smart_callback_add(rd, "changed", _cb_radio_changed, o_bg);
|
||||
elm_box_pack_end(hbox, rd);
|
||||
evas_object_show(rd);
|
||||
|
||||
rd = elm_radio_add(win);
|
||||
elm_radio_state_value_set(rd, ELM_BG_OPTION_STRETCH);
|
||||
elm_radio_group_add(rd, rdg);
|
||||
elm_object_text_set(rd, "Stretch");
|
||||
evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
|
||||
evas_object_smart_callback_add(rd, "changed", _cb_radio_changed, o_bg);
|
||||
elm_box_pack_end(hbox, rd);
|
||||
evas_object_show(rd);
|
||||
|
||||
rd = elm_radio_add(win);
|
||||
elm_radio_state_value_set(rd, ELM_BG_OPTION_TILE);
|
||||
elm_radio_group_add(rd, rdg);
|
||||
elm_object_text_set(rd, "Tile");
|
||||
evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
|
||||
evas_object_smart_callback_add(rd, "changed", _cb_radio_changed, o_bg);
|
||||
elm_box_pack_end(hbox, rd);
|
||||
evas_object_show(rd);
|
||||
|
||||
elm_radio_value_set(rdg, ELM_BG_OPTION_SCALE);
|
||||
|
||||
rd = elm_check_add(win);
|
||||
elm_object_text_set(rd, "Show Overlay");
|
||||
evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
|
||||
evas_object_smart_callback_add(rd, "changed", _cb_overlay_changed, o_bg);
|
||||
elm_box_pack_end(hbox, rd);
|
||||
evas_object_show(rd);
|
||||
|
||||
/* color choices ... this is ghetto, but we don't have a 'colorpicker'
|
||||
* widget yet :( */
|
||||
rd = elm_spinner_add(win);
|
||||
elm_object_style_set(rd, "vertical");
|
||||
elm_spinner_min_max_set(rd, 1, 4);
|
||||
elm_spinner_label_format_set(rd, "%.0f");
|
||||
elm_spinner_editable_set(rd, EINA_FALSE);
|
||||
elm_spinner_special_value_add(rd, 1, "White");
|
||||
elm_spinner_special_value_add(rd, 2, "Red");
|
||||
elm_spinner_special_value_add(rd, 3, "Blue");
|
||||
elm_spinner_special_value_add(rd, 4, "Green");
|
||||
evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(rd, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_smart_callback_add(rd, "changed", _cb_color_changed, o_bg);
|
||||
elm_box_pack_end(hbox, rd);
|
||||
evas_object_show(rd);
|
||||
|
||||
elm_box_pack_end(box, hbox);
|
||||
evas_object_show(hbox);
|
||||
|
||||
evas_object_size_hint_min_set(bg, 160, 160);
|
||||
evas_object_size_hint_max_set(bg, 640, 640);
|
||||
evas_object_resize(win, 320, 320);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,393 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
enum _api_state
|
||||
{
|
||||
BOX_PACK_START,
|
||||
BOX_PACK_BEFORE,
|
||||
BOX_PACK_AFTER,
|
||||
BOX_PADDING_SET,
|
||||
BOX_ALIGN_SET,
|
||||
BOX_HOMOGENEOUS_SET,
|
||||
BOX_UNPACK_ALL,
|
||||
BOX_CLEAR,
|
||||
API_STATE_LAST
|
||||
};
|
||||
typedef enum _api_state api_state;
|
||||
|
||||
static void
|
||||
set_api_state(api_data *api)
|
||||
{
|
||||
const Eina_List *items = elm_box_children_get(api->data);
|
||||
if(!eina_list_count(items))
|
||||
return;
|
||||
|
||||
/* use elm_box_children_get() to get list of children */
|
||||
switch(api->state)
|
||||
{ /* Put all api-changes under switch */
|
||||
case BOX_PACK_START: /* Move last item to begining */
|
||||
elm_box_unpack(api->data, eina_list_data_get(eina_list_last(items)));
|
||||
elm_box_pack_start(api->data, eina_list_data_get(eina_list_last(items)));
|
||||
break;
|
||||
|
||||
case BOX_PACK_BEFORE:
|
||||
if(eina_list_count(items) > 1)
|
||||
{ /* Put last item before the one preceeding it */
|
||||
elm_box_unpack(api->data, eina_list_data_get(eina_list_last(items)));
|
||||
elm_box_pack_before(api->data,
|
||||
eina_list_data_get(eina_list_last(items)),
|
||||
eina_list_nth(items, eina_list_count(items)-2));
|
||||
}
|
||||
break;
|
||||
|
||||
case BOX_PACK_AFTER:
|
||||
if(eina_list_count(items) > 1)
|
||||
{ /* Put item before last to last */
|
||||
elm_box_unpack(api->data, eina_list_nth(items,
|
||||
eina_list_count(items)-2));
|
||||
elm_box_pack_after(api->data,
|
||||
eina_list_nth(items, eina_list_count(items)-2),
|
||||
eina_list_data_get(eina_list_last(items)));
|
||||
}
|
||||
break;
|
||||
|
||||
case BOX_PADDING_SET:
|
||||
elm_box_padding_set(api->data, 30, 15);
|
||||
break;
|
||||
|
||||
case BOX_ALIGN_SET:
|
||||
elm_box_align_set(api->data, 0.25, 0.75);
|
||||
break;
|
||||
|
||||
case BOX_HOMOGENEOUS_SET:
|
||||
elm_box_homogeneous_set(api->data, EINA_TRUE);
|
||||
break;
|
||||
|
||||
case BOX_UNPACK_ALL:
|
||||
{
|
||||
Eina_List *l;
|
||||
Evas_Object *data;
|
||||
elm_box_unpack_all(api->data);
|
||||
EINA_LIST_REVERSE_FOREACH(items, l, data)
|
||||
elm_box_pack_end(api->data, data);
|
||||
}
|
||||
break;
|
||||
|
||||
case BOX_CLEAR:
|
||||
elm_box_clear(api->data);
|
||||
break;
|
||||
|
||||
case API_STATE_LAST:
|
||||
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_api_bt_clicked(void *data, Evas_Object *obj __UNUSED__, 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(a->bt, str);
|
||||
elm_object_disabled_set(a->bt, a->state == API_STATE_LAST);
|
||||
}
|
||||
|
||||
TEST_START(test_box_vert)
|
||||
{
|
||||
Evas_Object *bg, *bx, *bxx, *ic;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bxx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bxx);
|
||||
evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bxx);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
api->data = bx;
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bx);
|
||||
|
||||
api->bt = elm_button_add(win);
|
||||
elm_object_text_set(api->bt, "Next API function");
|
||||
evas_object_smart_callback_add(api->bt, "clicked", _api_bt_clicked, (void *) api);
|
||||
elm_box_pack_end(bxx, api->bt);
|
||||
elm_object_disabled_set(api->bt, api->state == API_STATE_LAST);
|
||||
evas_object_show(api->bt);
|
||||
|
||||
elm_box_pack_end(bxx, bx);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/icon_01.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
evas_object_size_hint_align_set(ic, 0.5, 0.5);
|
||||
elm_box_pack_end(bx, ic);
|
||||
evas_object_show(ic);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/icon_02.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
evas_object_size_hint_align_set(ic, 0.0, 0.5);
|
||||
elm_box_pack_end(bx, ic);
|
||||
evas_object_show(ic);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/icon_03.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
evas_object_size_hint_align_set(ic, EVAS_HINT_EXPAND, 0.5);
|
||||
elm_box_pack_end(bx, ic);
|
||||
evas_object_show(ic);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
static void
|
||||
_del_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_box_unpack(data, obj);
|
||||
evas_object_move(obj, 0, 0);
|
||||
evas_object_color_set(obj, 128, 64, 0, 128);
|
||||
// evas_object_del(obj);
|
||||
}
|
||||
|
||||
TEST_START(test_box_vert2)
|
||||
{
|
||||
Evas_Object *bg, *bx, *bt;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
elm_box_padding_set(bx, 10, 10);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bx);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 1");
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, 0.0, 0.0);
|
||||
evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 2");
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, 0.0, 0.0);
|
||||
evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 3");
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, 0.0, 0.0);
|
||||
evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 4");
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, 0.0, 0.0);
|
||||
evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 5");
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, 0.0, 0.0);
|
||||
evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
TEST_START(test_box_horiz)
|
||||
{
|
||||
Evas_Object *bg, *bx, *bxx, *ic;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bxx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bxx);
|
||||
evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bxx);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_box_horizontal_set(bx, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
api->data = bx;
|
||||
evas_object_show(bx);
|
||||
|
||||
api->bt = elm_button_add(win);
|
||||
elm_object_text_set(api->bt, "Next API function");
|
||||
evas_object_smart_callback_add(api->bt, "clicked", _api_bt_clicked, (void *) api);
|
||||
elm_box_pack_end(bxx, api->bt);
|
||||
elm_object_disabled_set(api->bt, api->state == API_STATE_LAST);
|
||||
evas_object_show(api->bt);
|
||||
|
||||
elm_box_pack_end(bxx, bx);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/icon_01.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
evas_object_size_hint_align_set(ic, 0.5, 0.5);
|
||||
elm_box_pack_end(bx, ic);
|
||||
evas_object_show(ic);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/icon_02.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
evas_object_size_hint_align_set(ic, 0.5, 0.0);
|
||||
elm_box_pack_end(bx, ic);
|
||||
evas_object_show(ic);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/icon_03.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
evas_object_size_hint_align_set(ic, 0.0, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, ic);
|
||||
evas_object_show(ic);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
typedef struct
|
||||
{
|
||||
Eina_List *transitions;
|
||||
Evas_Object *box;
|
||||
Evas_Object_Box_Layout last_layout;
|
||||
} Transitions_Data;
|
||||
|
||||
static void
|
||||
_test_box_transition_change(void *data)
|
||||
{
|
||||
Transitions_Data *tdata = data;
|
||||
Elm_Box_Transition *layout_data;
|
||||
Evas_Object_Box_Layout next_layout;
|
||||
|
||||
if (!data) return;
|
||||
next_layout = eina_list_data_get(tdata->transitions);
|
||||
layout_data = elm_box_transition_new(2.0, tdata->last_layout,
|
||||
NULL, NULL, next_layout, NULL, NULL,
|
||||
_test_box_transition_change, tdata);
|
||||
elm_box_layout_set(tdata->box, elm_box_layout_transition, layout_data, elm_box_transition_free);
|
||||
tdata->last_layout = next_layout;
|
||||
|
||||
tdata->transitions = eina_list_demote_list(tdata->transitions, tdata->transitions);
|
||||
}
|
||||
|
||||
static void
|
||||
_win_del(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Transitions_Data *tdata = data;
|
||||
if (!data) return;
|
||||
free(tdata);
|
||||
}
|
||||
|
||||
void
|
||||
test_box_transition(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *win, *bg, *bx, *bt;
|
||||
Transitions_Data *tdata;
|
||||
|
||||
win = elm_win_add(NULL, "box-transition", ELM_WIN_BASIC);
|
||||
elm_win_title_set(win, "Box Transition");
|
||||
elm_win_autodel_set(win, EINA_TRUE);
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, 1.0, 1.0);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_size_hint_weight_set(bx, 1.0, 1.0);
|
||||
|
||||
evas_object_show(bx);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 1");
|
||||
evas_object_size_hint_weight_set(bt, 1.0, 1.0);
|
||||
evas_object_size_hint_align_set(bt, -1.0, -1.0);
|
||||
evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_resize(bt, 100, 100);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 2");
|
||||
evas_object_size_hint_weight_set(bt, 1.0, 1.0);
|
||||
evas_object_size_hint_align_set(bt, -1.0, -1.0);
|
||||
evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_resize(bt, 100, 100);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 3");
|
||||
evas_object_size_hint_weight_set(bt, 1.0, 1.0);
|
||||
evas_object_size_hint_align_set(bt, -1.0, -1.0);
|
||||
evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_resize(bt, 100, 100);
|
||||
evas_object_show(bt);
|
||||
|
||||
tdata = calloc(1, sizeof(Transitions_Data));
|
||||
tdata->box = bx;
|
||||
tdata->last_layout = evas_object_box_layout_horizontal;
|
||||
tdata->transitions = eina_list_append(tdata->transitions,
|
||||
evas_object_box_layout_vertical);
|
||||
tdata->transitions = eina_list_append(tdata->transitions,
|
||||
evas_object_box_layout_horizontal);
|
||||
tdata->transitions = eina_list_append(tdata->transitions,
|
||||
evas_object_box_layout_stack);
|
||||
tdata->transitions = eina_list_append(tdata->transitions,
|
||||
evas_object_box_layout_homogeneous_vertical);
|
||||
tdata->transitions = eina_list_append(tdata->transitions,
|
||||
evas_object_box_layout_homogeneous_horizontal);
|
||||
tdata->transitions = eina_list_append(tdata->transitions,
|
||||
evas_object_box_layout_flow_vertical);
|
||||
tdata->transitions = eina_list_append(tdata->transitions,
|
||||
evas_object_box_layout_flow_horizontal);
|
||||
tdata->transitions = eina_list_append(tdata->transitions,
|
||||
evas_object_box_layout_stack);
|
||||
|
||||
evas_object_resize(win, 300, 300);
|
||||
evas_object_resize(bx, 300, 300);
|
||||
evas_object_smart_callback_add(win, "delete,request", _win_del, tdata);
|
||||
evas_object_show(win);
|
||||
elm_box_layout_set(bx, evas_object_box_layout_horizontal, NULL, NULL);
|
||||
_test_box_transition_change(tdata);
|
||||
}
|
|
@ -1,155 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
static void
|
||||
_print_clicked(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("bubble clicked\n");
|
||||
}
|
||||
|
||||
enum _api_state
|
||||
{
|
||||
BUBBLE_SET_CORNER_1,
|
||||
BUBBLE_SET_CORNER_2,
|
||||
BUBBLE_SET_ICON_CONTENT,
|
||||
API_STATE_LAST
|
||||
};
|
||||
typedef enum _api_state api_state;
|
||||
|
||||
static void
|
||||
set_api_state(api_data *api)
|
||||
{
|
||||
const Eina_List *items = elm_box_children_get(api->data);
|
||||
if(!eina_list_count(items))
|
||||
return;
|
||||
|
||||
switch(api->state)
|
||||
{ /* Put all api-changes under switch */
|
||||
case BUBBLE_SET_CORNER_1:
|
||||
elm_bubble_corner_set(eina_list_nth(items, 0), "bottom_left");
|
||||
elm_object_text_set(elm_object_content_get(eina_list_nth(items, 0)),
|
||||
"Corner: base (bottom-left) - with icon");
|
||||
elm_bubble_corner_set(eina_list_nth(items, 1), "top_right");
|
||||
elm_object_text_set(elm_object_content_get(eina_list_nth(items, 1)),
|
||||
"Corner: base (top-right) - no icon");
|
||||
break;
|
||||
|
||||
case BUBBLE_SET_CORNER_2:
|
||||
elm_bubble_corner_set(eina_list_nth(items, 0), "top_right");
|
||||
elm_object_text_set(elm_object_content_get(eina_list_nth(items, 0)),
|
||||
"Corner: base (top-right) - with icon");
|
||||
elm_bubble_corner_set(eina_list_nth(items, 1), "bottom_left");
|
||||
elm_object_text_set(elm_object_content_get(eina_list_nth(items, 1)),
|
||||
"Corner: base (bottom-left) - no icon");
|
||||
break;
|
||||
|
||||
case BUBBLE_SET_ICON_CONTENT:
|
||||
{
|
||||
char buf[PATH_MAX];
|
||||
Evas_Object *ct, *ic = elm_icon_add(api->win);
|
||||
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
elm_object_content_set(eina_list_nth(items, 0), ic);
|
||||
ct = elm_label_add(api->win);
|
||||
elm_object_text_set(ct, "Using icon as top-bubble content");
|
||||
elm_object_content_set(eina_list_nth(items, 1), ct);
|
||||
evas_object_size_hint_align_set(ic, 0.5, 0.5);
|
||||
evas_object_show(ic);
|
||||
}
|
||||
break;
|
||||
|
||||
case API_STATE_LAST:
|
||||
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_api_bt_clicked(void *data, Evas_Object *obj __UNUSED__, 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(a->bt, str);
|
||||
elm_object_disabled_set(a->bt, a->state == API_STATE_LAST);
|
||||
}
|
||||
|
||||
TEST_START(test_bubble)
|
||||
{
|
||||
Evas_Object *bg, *bx, *bxx, *ic, *bb, *ct;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bxx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bxx);
|
||||
evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bxx);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
api->data = bx;
|
||||
evas_object_show(bx);
|
||||
|
||||
api->bt = elm_button_add(win);
|
||||
elm_object_text_set(api->bt, "Next API function");
|
||||
evas_object_smart_callback_add(api->bt, "clicked", _api_bt_clicked, (void *) api);
|
||||
elm_box_pack_end(bxx, api->bt);
|
||||
elm_object_disabled_set(api->bt, api->state == API_STATE_LAST);
|
||||
evas_object_show(api->bt);
|
||||
|
||||
elm_box_pack_end(bxx, bx);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_HORIZONTAL, 1, 1);
|
||||
|
||||
bb = elm_bubble_add(win);
|
||||
elm_object_text_set(bb, "Message 1");
|
||||
elm_object_part_text_set(bb, "info", "Corner: bottom_right");
|
||||
elm_object_part_content_set(bb, "icon", ic);
|
||||
elm_bubble_corner_set(bb, "bottom_right");
|
||||
evas_object_smart_callback_add(bb, "clicked", _print_clicked, NULL);
|
||||
evas_object_show(ic);
|
||||
evas_object_size_hint_weight_set(bb, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(bb, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
ct = elm_label_add(win);
|
||||
elm_object_text_set(ct,
|
||||
"\"The future of the art: R or G or B?\", by Rusty");
|
||||
elm_object_content_set(bb, ct);
|
||||
|
||||
elm_box_pack_end(bx, bb);
|
||||
evas_object_show(bb);
|
||||
|
||||
bb = elm_bubble_add(win);
|
||||
elm_object_text_set(bb, "Message 2");
|
||||
elm_object_part_text_set(bb, "info", "10:32 4/11/2008");
|
||||
evas_object_smart_callback_add(bb, "clicked", _print_clicked, NULL);
|
||||
evas_object_size_hint_weight_set(bb, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(bb, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
ct = elm_label_add(win);
|
||||
elm_object_text_set(ct, "Corner: base (top-left) - no icon");
|
||||
elm_object_content_set(bb, ct);
|
||||
|
||||
elm_box_pack_end(bx, bb);
|
||||
evas_object_show(bb);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,206 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
static void
|
||||
_bt_repeated(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
static int count;
|
||||
char buf[16];
|
||||
|
||||
snprintf(buf, sizeof(buf), "count=%d", count++);
|
||||
if (count >= 10000)
|
||||
count = 0;
|
||||
elm_object_text_set(obj, buf);
|
||||
}
|
||||
|
||||
static void
|
||||
_bt_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
int param = (int)(data);
|
||||
|
||||
printf("clicked event on Button:%d\n", param);
|
||||
}
|
||||
|
||||
static void
|
||||
_bt_unpressed(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
int param = (int)(data);
|
||||
|
||||
printf("unpressed event on Button:%d\n", param);
|
||||
}
|
||||
|
||||
enum _api_state
|
||||
{
|
||||
API_STATE_LAST
|
||||
};
|
||||
typedef enum _api_state api_state;
|
||||
|
||||
static void
|
||||
set_api_state(api_data *api __UNUSED__)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static void
|
||||
_api_bt_clicked(void *data, Evas_Object *obj __UNUSED__, 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(a->bt, str);
|
||||
elm_object_disabled_set(a->bt, a->state == API_STATE_LAST);
|
||||
}
|
||||
|
||||
TEST_START(test_button)
|
||||
{
|
||||
Evas_Object *bg, *bx, *bxx, *scr,*ic, *bt;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bxx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bxx);
|
||||
evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bxx);
|
||||
scr = elm_scroller_add(win);
|
||||
elm_scroller_bounce_set(scr, EINA_FALSE, EINA_TRUE);
|
||||
elm_scroller_policy_set(scr, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
|
||||
evas_object_show(scr);
|
||||
evas_object_size_hint_weight_set(scr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_object_content_set(scr, bx);
|
||||
api->data = bx;
|
||||
evas_object_show(bx);
|
||||
|
||||
api->bt = elm_button_add(win);
|
||||
elm_object_text_set(api->bt, "Next API function");
|
||||
evas_object_smart_callback_add(api->bt, "clicked", _api_bt_clicked, (void *) api);
|
||||
elm_box_pack_end(bxx, api->bt);
|
||||
elm_object_disabled_set(api->bt, api->state == API_STATE_LAST);
|
||||
evas_object_show(api->bt);
|
||||
|
||||
elm_box_pack_end(bxx, bx);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Icon sized to button");
|
||||
elm_object_content_set(bt, ic);
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)1);
|
||||
evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)1);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
evas_object_show(ic);
|
||||
|
||||
ic = elm_icon_add(bx);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Icon no scale");
|
||||
elm_object_content_set(bt, ic);
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)2);
|
||||
evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)2);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
evas_object_show(ic);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Disabled Button");
|
||||
elm_object_content_set(bt, ic);
|
||||
elm_object_disabled_set(bt, 1);
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)3);
|
||||
evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)3);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
evas_object_show(ic);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
bt = elm_button_add(win);
|
||||
elm_object_content_set(bt, ic);
|
||||
elm_object_disabled_set(bt, 1);
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)4);
|
||||
evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)4);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
evas_object_show(ic);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Label Only");
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)5);
|
||||
evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)5);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_smart_callback_add(bt, "repeated", _bt_repeated, NULL);
|
||||
elm_button_autorepeat_set(bt, 1);
|
||||
elm_button_autorepeat_initial_timeout_set(bt, 2.0);
|
||||
elm_button_autorepeat_gap_timeout_set(bt, 0.5);
|
||||
evas_object_show(bt);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
bt = elm_button_add(win);
|
||||
elm_object_content_set(bt, ic);
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)6);
|
||||
evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)6);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
evas_object_show(ic);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_style_set(bt, "anchor");
|
||||
elm_object_text_set(bt, "Anchor style");
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)7);
|
||||
evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)7);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
bt = elm_button_add(win);
|
||||
elm_object_style_set(bt, "anchor");
|
||||
elm_object_content_set(bt, ic);
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)8);
|
||||
evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)8);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
evas_object_show(ic);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
bt = elm_button_add(win);
|
||||
elm_object_access_info_set(bt, "This is some custom text describing this widget");
|
||||
elm_object_style_set(bt, "anchor");
|
||||
elm_object_content_set(bt, ic);
|
||||
elm_object_disabled_set(bt, 1);
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)9);
|
||||
evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)9);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
evas_object_show(ic);
|
||||
}
|
||||
TEST_END
|
|
@ -1,144 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
enum _api_state
|
||||
{
|
||||
STATE_MARK_MONTHLY,
|
||||
STATE_MARK_WEEKLY,
|
||||
STATE_SUNDAY_HIGHLIGHT,
|
||||
STATE_SELECT_DATE_DISABLED_WITH_MARKS,
|
||||
STATE_SELECT_DATE_DISABLED_NO_MARKS,
|
||||
API_STATE_LAST
|
||||
};
|
||||
typedef enum _api_state api_state;
|
||||
|
||||
static void
|
||||
set_api_state(api_data *api)
|
||||
{
|
||||
const Eina_List *items = elm_box_children_get(api->data);
|
||||
static Elm_Calendar_Mark *m = NULL;
|
||||
if(!eina_list_count(items))
|
||||
return;
|
||||
|
||||
switch(api->state)
|
||||
{ /* Put all api-changes under switch */
|
||||
case STATE_MARK_MONTHLY:
|
||||
{
|
||||
Evas_Object *cal = eina_list_nth(items, 0);
|
||||
time_t sec_per_day = (60*60*24);
|
||||
time_t sec_per_year = sec_per_day * 365;
|
||||
time_t the_time = (sec_per_year * 41) + (sec_per_day * 9); /* Set date to DEC 31, 2010 */
|
||||
elm_calendar_min_max_year_set(cal, 2010, 2011);
|
||||
m = elm_calendar_mark_add(cal, "checked", gmtime(&the_time), ELM_CALENDAR_MONTHLY);
|
||||
elm_calendar_selected_time_set(cal, gmtime(&the_time));
|
||||
}
|
||||
break;
|
||||
case STATE_MARK_WEEKLY:
|
||||
{
|
||||
Evas_Object *cal = eina_list_nth(items, 0);
|
||||
time_t sec_per_day = (60*60*24);
|
||||
time_t sec_per_year = sec_per_day * 365;
|
||||
time_t the_time = (sec_per_year * 41) + (sec_per_day * 4); /* Set date to DEC 26, 2010 */
|
||||
elm_calendar_mark_del(m);
|
||||
m = elm_calendar_mark_add(cal, "checked", gmtime(&the_time), ELM_CALENDAR_WEEKLY);
|
||||
elm_calendar_selected_time_set(cal, gmtime(&the_time));
|
||||
}
|
||||
break;
|
||||
case STATE_SUNDAY_HIGHLIGHT:
|
||||
{
|
||||
Evas_Object *cal = eina_list_nth(items, 0);
|
||||
time_t sec_per_day = (60*60*24);
|
||||
time_t sec_per_year = sec_per_day * 365;
|
||||
time_t the_time = (sec_per_year * 41) + (sec_per_day * 3); /* Set date to DEC 25, 2010 */
|
||||
/* elm_calendar_mark_del(m); */
|
||||
m = elm_calendar_mark_add(cal, "holiday", gmtime(&the_time), ELM_CALENDAR_WEEKLY);
|
||||
elm_calendar_selected_time_set(cal, gmtime(&the_time));
|
||||
}
|
||||
break;
|
||||
case STATE_SELECT_DATE_DISABLED_WITH_MARKS:
|
||||
{
|
||||
Evas_Object *cal = eina_list_nth(items, 0);
|
||||
time_t sec_per_day = (60*60*24);
|
||||
time_t sec_per_year = sec_per_day * 365;
|
||||
time_t the_time = (sec_per_year * 41) + (sec_per_day * 10); /* Set date to JAN 01, 2011 */
|
||||
elm_calendar_day_selection_enabled_set(cal, EINA_FALSE);
|
||||
elm_calendar_selected_time_set(cal, gmtime(&the_time));
|
||||
}
|
||||
break;
|
||||
case STATE_SELECT_DATE_DISABLED_NO_MARKS:
|
||||
{
|
||||
Evas_Object *cal = eina_list_nth(items, 0);
|
||||
time_t sec_per_day = (60*60*24);
|
||||
time_t sec_per_year = sec_per_day * 365;
|
||||
time_t the_time = (sec_per_year * 41) + (sec_per_day * 40); /* Set date to FEB 01, 2011 */
|
||||
elm_calendar_marks_clear(cal);
|
||||
elm_calendar_day_selection_enabled_set(cal, EINA_FALSE);
|
||||
elm_calendar_selected_time_set(cal, gmtime(&the_time));
|
||||
}
|
||||
break;
|
||||
case API_STATE_LAST:
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_api_bt_clicked(void *data, Evas_Object *obj __UNUSED__, 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(a->bt, str);
|
||||
elm_object_disabled_set(a->bt, a->state == API_STATE_LAST);
|
||||
}
|
||||
|
||||
/* A simple test, just displaying calendar in it's default state */
|
||||
TEST_START(test_calendar)
|
||||
{
|
||||
Evas_Object *bg, *bx, *bxx, *cal;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bxx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bxx);
|
||||
evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bxx);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
api->data = bx;
|
||||
evas_object_show(bx);
|
||||
|
||||
api->bt = elm_button_add(win);
|
||||
elm_object_text_set(api->bt, "Next API function");
|
||||
evas_object_smart_callback_add(api->bt, "clicked", _api_bt_clicked, (void *) api);
|
||||
elm_box_pack_end(bxx, api->bt);
|
||||
elm_object_disabled_set(api->bt, api->state == API_STATE_LAST);
|
||||
evas_object_show(api->bt);
|
||||
|
||||
elm_box_pack_end(bxx, bx);
|
||||
|
||||
cal = elm_calendar_add(win);
|
||||
evas_object_size_hint_weight_set(cal, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, cal);
|
||||
|
||||
time_t sec_per_day = (60*60*24);
|
||||
time_t sec_per_year = sec_per_day * 365;
|
||||
time_t the_time = (sec_per_year * 41) + (sec_per_day * 9); /* Set date to DEC 31, 2010 */
|
||||
elm_calendar_selected_time_set(cal, gmtime(&the_time));
|
||||
elm_calendar_min_max_year_set(cal, 2010, 2010);
|
||||
|
||||
evas_object_show(cal);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,76 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
TEST_START(test_check)
|
||||
{
|
||||
Evas_Object *bg, *bx, *ic, *ck;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
ck = elm_check_add(win);
|
||||
evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ck, EVAS_HINT_FILL, 0.5);
|
||||
elm_object_text_set(ck, "Icon sized to check");
|
||||
elm_object_content_set(ck, ic);
|
||||
elm_check_state_set(ck, 1);
|
||||
elm_box_pack_end(bx, ck);
|
||||
evas_object_show(ck);
|
||||
evas_object_show(ic);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
ck = elm_check_add(win);
|
||||
elm_object_text_set(ck, "Icon no scale");
|
||||
elm_object_content_set(ck, ic);
|
||||
elm_box_pack_end(bx, ck);
|
||||
evas_object_show(ck);
|
||||
evas_object_show(ic);
|
||||
|
||||
ck = elm_check_add(win);
|
||||
elm_object_text_set(ck, "Label Only");
|
||||
elm_box_pack_end(bx, ck);
|
||||
evas_object_show(ck);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
ck = elm_check_add(win);
|
||||
evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ck, EVAS_HINT_FILL, 0.5);
|
||||
elm_object_text_set(ck, "Disabled check");
|
||||
elm_object_content_set(ck, ic);
|
||||
elm_check_state_set(ck, 1);
|
||||
elm_box_pack_end(bx, ck);
|
||||
elm_object_disabled_set(ck, 1);
|
||||
evas_object_show(ck);
|
||||
evas_object_show(ic);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
ck = elm_check_add(win);
|
||||
elm_object_content_set(ck, ic);
|
||||
elm_box_pack_end(bx, ck);
|
||||
evas_object_show(ck);
|
||||
evas_object_show(ic);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,239 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
enum _api_state
|
||||
{
|
||||
CLOCK_HIDE_SEC,
|
||||
CLOCK_SHOW_AM_PM,
|
||||
CLOCK_SHOW_SEC,
|
||||
CLOCK_EDIT_MIN,
|
||||
CLOCK_EDIT_HOUR,
|
||||
CLOCK_EDIT_ALL,
|
||||
CLOCK_EDIT_ALL_ARMY,
|
||||
API_STATE_LAST
|
||||
};
|
||||
typedef enum _api_state api_state;
|
||||
|
||||
static void
|
||||
set_api_state(api_data *api)
|
||||
{
|
||||
const Eina_List *items = elm_box_children_get(api->data);
|
||||
Evas_Object *ck = eina_list_nth(items, 0);
|
||||
if(!eina_list_count(items))
|
||||
return;
|
||||
|
||||
/* use elm_box_children_get() to get list of children */
|
||||
switch(api->state)
|
||||
{ /* Put all api-changes under switch */
|
||||
case CLOCK_HIDE_SEC:
|
||||
elm_clock_show_seconds_set(ck, EINA_FALSE);
|
||||
break;
|
||||
|
||||
case CLOCK_SHOW_AM_PM:
|
||||
elm_clock_show_am_pm_set(ck, EINA_TRUE);
|
||||
break;
|
||||
|
||||
case CLOCK_SHOW_SEC:
|
||||
elm_clock_show_seconds_set(ck, EINA_TRUE);
|
||||
break;
|
||||
|
||||
case CLOCK_EDIT_MIN:
|
||||
elm_clock_edit_set(ck, ELM_CLOCK_MIN_DECIMAL | ELM_CLOCK_MIN_UNIT);
|
||||
break;
|
||||
|
||||
case CLOCK_EDIT_HOUR:
|
||||
elm_clock_edit_set(ck, ELM_CLOCK_NONE);
|
||||
elm_clock_edit_set(ck, ELM_CLOCK_HOUR_DECIMAL | ELM_CLOCK_HOUR_UNIT);
|
||||
break;
|
||||
|
||||
case CLOCK_EDIT_ALL:
|
||||
elm_clock_edit_set(ck, ELM_CLOCK_ALL);
|
||||
break;
|
||||
|
||||
case CLOCK_EDIT_ALL_ARMY:
|
||||
elm_clock_show_am_pm_set(ck, EINA_FALSE);
|
||||
break;
|
||||
|
||||
case API_STATE_LAST:
|
||||
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_api_bt_clicked(void *data, Evas_Object *obj __UNUSED__, 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(a->bt, str);
|
||||
elm_object_disabled_set(a->bt, a->state == API_STATE_LAST);
|
||||
}
|
||||
|
||||
TEST_START(test_clock)
|
||||
{
|
||||
Evas_Object *bg, *bx, *bxx, *ck;
|
||||
unsigned int digedit;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bxx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bxx);
|
||||
evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bxx);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
api->data = bx;
|
||||
evas_object_show(bx);
|
||||
|
||||
api->bt = elm_button_add(win);
|
||||
elm_object_text_set(api->bt, "Next API function");
|
||||
evas_object_smart_callback_add(api->bt, "clicked", _api_bt_clicked, (void *) api);
|
||||
elm_box_pack_end(bxx, api->bt);
|
||||
elm_object_disabled_set(api->bt, EINA_TRUE);
|
||||
evas_object_show(api->bt);
|
||||
|
||||
elm_box_pack_end(bxx, bx);
|
||||
|
||||
ck = elm_clock_add(win);
|
||||
elm_box_pack_end(bx, ck);
|
||||
evas_object_show(ck);
|
||||
|
||||
ck = elm_clock_add(win);
|
||||
elm_clock_show_am_pm_set(ck, 1);
|
||||
elm_box_pack_end(bx, ck);
|
||||
evas_object_show(ck);
|
||||
|
||||
ck = elm_clock_add(win);
|
||||
elm_clock_show_seconds_set(ck, 1);
|
||||
elm_box_pack_end(bx, ck);
|
||||
evas_object_show(ck);
|
||||
|
||||
ck = elm_clock_add(win);
|
||||
elm_clock_show_seconds_set(ck, 1);
|
||||
elm_clock_show_am_pm_set(ck, 1);
|
||||
elm_box_pack_end(bx, ck);
|
||||
evas_object_show(ck);
|
||||
|
||||
ck = elm_clock_add(win);
|
||||
elm_clock_show_seconds_set(ck, 1);
|
||||
elm_clock_show_am_pm_set(ck, 0);
|
||||
elm_clock_time_set(ck, 23, 59, 57);
|
||||
elm_box_pack_end(bx, ck);
|
||||
evas_object_show(ck);
|
||||
|
||||
ck = elm_clock_add(win);
|
||||
elm_clock_edit_set(ck, 1);
|
||||
elm_clock_show_seconds_set(ck, 1);
|
||||
elm_clock_show_am_pm_set(ck, 1);
|
||||
elm_clock_time_set(ck, 10, 11, 12);
|
||||
elm_box_pack_end(bx, ck);
|
||||
evas_object_show(ck);
|
||||
|
||||
ck = elm_clock_add(win);
|
||||
elm_clock_show_seconds_set(ck, 1);
|
||||
elm_clock_edit_set(ck, 1);
|
||||
digedit = ELM_CLOCK_HOUR_UNIT | ELM_CLOCK_MIN_UNIT | ELM_CLOCK_SEC_UNIT;
|
||||
elm_clock_digit_edit_set(ck, digedit);
|
||||
elm_box_pack_end(bx, ck);
|
||||
evas_object_show(ck);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
static void
|
||||
_edit_bt_clicked(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *ck = data;
|
||||
|
||||
if (!elm_clock_edit_get(ck)) {
|
||||
elm_object_text_set(obj, "Done");
|
||||
elm_clock_edit_set(ck, 1);
|
||||
return;
|
||||
}
|
||||
elm_object_text_set(obj, "Edit");
|
||||
elm_clock_edit_set(ck, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
_hmode_bt_clicked(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *ck = data;
|
||||
|
||||
if (!elm_clock_show_am_pm_get(ck)) {
|
||||
elm_object_text_set(obj, "24h");
|
||||
elm_clock_show_am_pm_set(ck, 1);
|
||||
return;
|
||||
}
|
||||
elm_object_text_set(obj, "12h");
|
||||
elm_clock_show_am_pm_set(ck, 0);
|
||||
}
|
||||
|
||||
TEST_START(test_clock2)
|
||||
{
|
||||
Evas_Object *bg, *bx, *bxx, *hbx, *ck, *bt;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bxx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bxx);
|
||||
evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bxx);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
api->data = bx;
|
||||
evas_object_show(bx);
|
||||
|
||||
api->bt = elm_button_add(win);
|
||||
elm_object_text_set(api->bt, "Next API function");
|
||||
evas_object_smart_callback_add(api->bt, "clicked", _api_bt_clicked, (void *) api);
|
||||
elm_box_pack_end(bxx, api->bt);
|
||||
elm_object_disabled_set(api->bt, api->state == API_STATE_LAST);
|
||||
evas_object_show(api->bt);
|
||||
|
||||
elm_box_pack_end(bxx, bx);
|
||||
|
||||
ck = elm_clock_add(win);
|
||||
elm_clock_time_set(ck, 0, 15, 3);
|
||||
elm_clock_digit_edit_set(ck, ELM_CLOCK_NONE);
|
||||
elm_clock_show_seconds_set(ck, 1);
|
||||
elm_box_pack_end(bx, ck);
|
||||
evas_object_show(ck);
|
||||
|
||||
hbx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(hbx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_horizontal_set(hbx, EINA_TRUE);
|
||||
elm_box_pack_end(bx, hbx);
|
||||
evas_object_show(hbx);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Edit");
|
||||
evas_object_smart_callback_add(bt, "clicked", _edit_bt_clicked, ck);
|
||||
elm_box_pack_end(hbx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "24h");
|
||||
evas_object_smart_callback_add(bt, "clicked", _hmode_bt_clicked, ck);
|
||||
elm_box_pack_end(hbx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,89 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
static void
|
||||
_colorselector_clicked_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *re = data;
|
||||
int r, g, b, a;
|
||||
|
||||
elm_colorselector_color_get(obj, &r, &g, &b, &a);
|
||||
printf("Current Color [r=%d g=%d b=%d a=%d]\n",r, g, b, a);
|
||||
|
||||
/* Fix Alpha pre multiplication by edje */
|
||||
r = (r * a) / 255;
|
||||
g = (g * a) / 255;
|
||||
b = (b * a) / 255;
|
||||
|
||||
evas_object_color_set(re, r, g, b, a);
|
||||
}
|
||||
|
||||
TEST_START(test_colorselector)
|
||||
{
|
||||
Evas_Object *bg, *bx, *cp, *fr, *ly, *re;
|
||||
char buf[PATH_MAX];
|
||||
int r, g, b, a;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_color_set(bg, 255, 255, 255, 255);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
fr = elm_frame_add(win);
|
||||
evas_object_size_hint_weight_set(fr, 1.0, 0.5);
|
||||
evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_object_text_set(fr, "Color View");
|
||||
elm_box_pack_end(bx, fr);
|
||||
evas_object_show(fr);
|
||||
|
||||
ly = elm_layout_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/objects/colorpreview.edj", elm_app_data_dir_get());
|
||||
elm_layout_file_set(ly, buf, "main");
|
||||
evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_object_content_set(fr, ly);
|
||||
evas_object_show(ly);
|
||||
|
||||
re = evas_object_rectangle_add(evas_object_evas_get(win));
|
||||
evas_object_show(re);
|
||||
elm_object_part_content_set(ly, "ColorPreview", re);
|
||||
|
||||
fr = elm_frame_add(win);
|
||||
evas_object_size_hint_weight_set(fr, 1.0, 0);
|
||||
evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, 0);
|
||||
elm_object_text_set(fr, "Color Selector");
|
||||
elm_box_pack_end(bx, fr);
|
||||
evas_object_show(fr);
|
||||
|
||||
cp = elm_colorselector_add(win);
|
||||
|
||||
a = 180;
|
||||
r = 255;
|
||||
g = 160;
|
||||
b = 132;
|
||||
|
||||
elm_colorselector_color_set(cp, r, g, b, a);
|
||||
evas_object_size_hint_weight_set(cp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(cp, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_object_content_set(fr, cp);
|
||||
evas_object_show(cp);
|
||||
evas_object_smart_callback_add(cp, "changed", _colorselector_clicked_cb, re);
|
||||
|
||||
elm_colorselector_color_get(cp, &r, &g, &b, &a);
|
||||
/* Fix Alpha pre multiplication by edje */
|
||||
r = (r * a) / 255;
|
||||
g = (g * a) / 255;
|
||||
b = (b * a) / 255;
|
||||
evas_object_color_set(re, r, g, b, a);
|
||||
|
||||
evas_object_resize(win, 320, 480);
|
||||
evas_object_show(win);
|
||||
|
||||
}
|
||||
TEST_END
|
|
@ -1,200 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
TEST_START(test_conformant)
|
||||
{
|
||||
Evas_Object *bg, *conform, *btn, *bx, *en;
|
||||
|
||||
elm_win_conformant_set(win, 1);
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
conform = elm_conformant_add(win);
|
||||
elm_win_resize_object_add(win, conform);
|
||||
evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(conform);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
en = elm_entry_add(win);
|
||||
elm_entry_scrollable_set(en, EINA_TRUE);
|
||||
elm_entry_single_line_set(en, 1);
|
||||
elm_entry_bounce_set(en, 1, 0);
|
||||
elm_entry_entry_set(en, "This is the top entry here");
|
||||
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_show(en);
|
||||
elm_box_pack_end(bx, en);
|
||||
|
||||
btn = elm_button_add(win);
|
||||
elm_object_text_set(btn, "Test Conformant");
|
||||
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_box_pack_end(bx, btn);
|
||||
evas_object_show(btn);
|
||||
|
||||
en = elm_entry_add(win);
|
||||
elm_entry_scrollable_set(en, EINA_TRUE);
|
||||
elm_entry_single_line_set(en, 1);
|
||||
elm_entry_bounce_set(en, 1, 0);
|
||||
elm_entry_entry_set(en, "This is the middle entry here");
|
||||
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_show(en);
|
||||
elm_box_pack_end(bx, en);
|
||||
|
||||
btn = elm_button_add(win);
|
||||
elm_object_text_set(btn, "Test Conformant");
|
||||
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_box_pack_end(bx, btn);
|
||||
evas_object_show(btn);
|
||||
|
||||
en = elm_entry_add(win);
|
||||
elm_entry_scrollable_set(en, EINA_TRUE);
|
||||
elm_entry_bounce_set(en, 0, 1);
|
||||
elm_entry_entry_set(en,
|
||||
"This is a multi-line entry at the bottom<br>"
|
||||
"This can contain more than 1 line of text and be "
|
||||
"scrolled around to allow for entering of lots of "
|
||||
"content. It is also to test to see that autoscroll "
|
||||
"moves to the right part of a larger multi-line "
|
||||
"text entry that is inside of a scroller than can be "
|
||||
"scrolled around, thus changing the expected position "
|
||||
"as well as cursor changes updating auto-scroll when "
|
||||
"it is enabled.");
|
||||
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_show(en);
|
||||
elm_box_pack_end(bx, en);
|
||||
|
||||
elm_object_content_set(conform, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
evas_object_resize(win, 240, 240);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
static void
|
||||
popobj(void *data, Evas_Object *obj __UNUSED__, void *event __UNUSED__)
|
||||
{
|
||||
elm_pager_content_pop(data);
|
||||
}
|
||||
|
||||
TEST_START(test_conformant2)
|
||||
{
|
||||
Evas_Object *bg, *conform, *btn, *bx, *en, *pg;
|
||||
|
||||
elm_win_conformant_set(win, 1);
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
en = elm_entry_add(win);
|
||||
elm_entry_scrollable_set(en, EINA_TRUE);
|
||||
elm_entry_single_line_set(en, 1);
|
||||
elm_entry_bounce_set(en, 1, 0);
|
||||
elm_entry_entry_set(en, "This is the top entry here");
|
||||
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
|
||||
elm_box_pack_end(bx, en);
|
||||
evas_object_show(en);
|
||||
|
||||
btn = elm_button_add(win);
|
||||
elm_object_focus_allow_set(btn, 0);
|
||||
elm_object_text_set(btn, "Delete Below");
|
||||
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_box_pack_end(bx, btn);
|
||||
evas_object_show(btn);
|
||||
|
||||
pg = elm_pager_add(win);
|
||||
evas_object_size_hint_weight_set(pg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(pg, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_box_pack_end(bx, pg);
|
||||
evas_object_show(pg);
|
||||
|
||||
evas_object_smart_callback_add(btn, "clicked", popobj, pg);
|
||||
|
||||
conform = elm_conformant_add(win);
|
||||
evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(conform, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_pager_content_push(pg, conform);
|
||||
evas_object_show(conform);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
en = elm_entry_add(win);
|
||||
elm_entry_scrollable_set(en, EINA_TRUE);
|
||||
elm_entry_bounce_set(en, 0, 1);
|
||||
elm_entry_entry_set(en, "This entry and button below get deleted.");
|
||||
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_show(en);
|
||||
elm_box_pack_end(bx, en);
|
||||
|
||||
btn = elm_button_add(win);
|
||||
elm_object_focus_allow_set(btn, 0);
|
||||
elm_object_text_set(btn, "Delete this bottom bit 1");
|
||||
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_box_pack_end(bx, btn);
|
||||
evas_object_show(btn);
|
||||
|
||||
evas_object_smart_callback_add(btn, "clicked", popobj, pg);
|
||||
|
||||
elm_object_content_set(conform, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
conform = elm_conformant_add(win);
|
||||
evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(conform, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_pager_content_push(pg, conform);
|
||||
evas_object_show(conform);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
en = elm_entry_add(win);
|
||||
elm_entry_scrollable_set(en, EINA_TRUE);
|
||||
elm_entry_bounce_set(en, 0, 1);
|
||||
elm_entry_entry_set(en, "This entry and button below get deleted.");
|
||||
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_show(en);
|
||||
elm_box_pack_end(bx, en);
|
||||
|
||||
btn = elm_button_add(win);
|
||||
elm_object_focus_allow_set(btn, 0);
|
||||
elm_object_text_set(btn, "Delete this bottom bit 2");
|
||||
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_box_pack_end(bx, btn);
|
||||
evas_object_show(btn);
|
||||
|
||||
evas_object_smart_callback_add(btn, "clicked", popobj, pg);
|
||||
|
||||
elm_object_content_set(conform, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
evas_object_resize(win, 240, 480);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,240 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
static void
|
||||
_dismissed(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
evas_object_del(obj);
|
||||
}
|
||||
|
||||
static void
|
||||
_print_current_dir(Evas_Object *obj)
|
||||
{
|
||||
Elm_Ctxpopup_Direction dir;
|
||||
dir = elm_ctxpopup_direction_get(obj);
|
||||
|
||||
switch(dir)
|
||||
{
|
||||
case ELM_CTXPOPUP_DIRECTION_LEFT:
|
||||
printf("ctxpopup direction: left!\n");
|
||||
break;
|
||||
case ELM_CTXPOPUP_DIRECTION_RIGHT:
|
||||
printf("ctxpopup direction: right!\n");
|
||||
break;
|
||||
case ELM_CTXPOPUP_DIRECTION_UP:
|
||||
printf("ctxpopup direction: up!\n");
|
||||
break;
|
||||
case ELM_CTXPOPUP_DIRECTION_DOWN:
|
||||
printf("ctxpopup direction: down!\n");
|
||||
break;
|
||||
case ELM_CTXPOPUP_DIRECTION_UNKNOWN:
|
||||
printf("ctxpopup direction: unknow!\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_ctxpopup_item_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
||||
{
|
||||
printf("ctxpopup item selected: %s\n",
|
||||
elm_object_item_text_get(event_info));
|
||||
}
|
||||
|
||||
#define ITEM_NEW(_hov, _label, _icon) \
|
||||
if(_icon) \
|
||||
{ \
|
||||
ic = elm_icon_add(obj); \
|
||||
elm_icon_standard_set(ic, _icon); \
|
||||
elm_icon_scale_set(ic, EINA_FALSE, EINA_FALSE); \
|
||||
} \
|
||||
else \
|
||||
ic = NULL; \
|
||||
it = elm_ctxpopup_item_append(_hov, _label, ic, _ctxpopup_item_cb, NULL); \
|
||||
|
||||
static void
|
||||
_list_item_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *ctxpopup, *ic;
|
||||
Elm_Object_Item *it;
|
||||
Evas_Coord x,y;
|
||||
|
||||
ctxpopup = elm_ctxpopup_add(obj);
|
||||
evas_object_smart_callback_add(ctxpopup,
|
||||
"dismissed",
|
||||
_dismissed,
|
||||
NULL);
|
||||
|
||||
ITEM_NEW(ctxpopup, "Go to home folder", "home");
|
||||
ITEM_NEW(ctxpopup, "Save file", "file");
|
||||
ITEM_NEW(ctxpopup, "Delete file", "delete");
|
||||
ITEM_NEW(ctxpopup, "Navigate to folder", "folder");
|
||||
elm_object_item_disabled_set(it, EINA_TRUE);
|
||||
ITEM_NEW(ctxpopup, "Edit entry", "edit");
|
||||
ITEM_NEW(ctxpopup, "Set date and time", "clock");
|
||||
elm_object_item_disabled_set(it, EINA_TRUE);
|
||||
|
||||
evas_pointer_canvas_xy_get(evas_object_evas_get(obj), &x, &y);
|
||||
evas_object_size_hint_max_set(ctxpopup, 240, 240);
|
||||
evas_object_move(ctxpopup, x, y);
|
||||
evas_object_show(ctxpopup);
|
||||
_print_current_dir(ctxpopup);
|
||||
}
|
||||
|
||||
static void
|
||||
_list_item_cb2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *ctxpopup, *ic;
|
||||
Elm_Object_Item *it;
|
||||
Evas_Coord x,y;
|
||||
|
||||
ctxpopup = elm_ctxpopup_add(obj);
|
||||
evas_object_smart_callback_add(ctxpopup,
|
||||
"dismissed",
|
||||
_dismissed,
|
||||
NULL);
|
||||
|
||||
ITEM_NEW(ctxpopup, NULL, "home");
|
||||
ITEM_NEW(ctxpopup, NULL, "file");
|
||||
ITEM_NEW(ctxpopup, NULL, "delete");
|
||||
ITEM_NEW(ctxpopup, NULL, "folder");
|
||||
ITEM_NEW(ctxpopup, NULL, "edit");
|
||||
elm_object_item_disabled_set(it, EINA_TRUE);
|
||||
ITEM_NEW(ctxpopup, NULL, "clock");
|
||||
|
||||
evas_pointer_canvas_xy_get(evas_object_evas_get(obj), &x, &y);
|
||||
evas_object_size_hint_max_set(ctxpopup, 240, 240);
|
||||
evas_object_move(ctxpopup, x, y);
|
||||
evas_object_show(ctxpopup);
|
||||
_print_current_dir(ctxpopup);
|
||||
}
|
||||
|
||||
static void
|
||||
_list_item_cb3(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *ctxpopup, *ic;
|
||||
Elm_Object_Item *it;
|
||||
Evas_Coord x,y;
|
||||
|
||||
ctxpopup = elm_ctxpopup_add(obj);
|
||||
evas_object_smart_callback_add(ctxpopup,
|
||||
"dismissed",
|
||||
_dismissed,
|
||||
NULL);
|
||||
|
||||
ITEM_NEW(ctxpopup, "Eina", NULL);
|
||||
ITEM_NEW(ctxpopup, "Eet", NULL);
|
||||
ITEM_NEW(ctxpopup, "Evas", NULL);
|
||||
ITEM_NEW(ctxpopup, "Ecore", NULL);
|
||||
elm_object_item_disabled_set(it, EINA_TRUE);
|
||||
ITEM_NEW(ctxpopup, "Embryo", NULL);
|
||||
ITEM_NEW(ctxpopup, "Edje", NULL);
|
||||
|
||||
evas_pointer_canvas_xy_get(evas_object_evas_get(obj), &x, &y);
|
||||
evas_object_move(ctxpopup, x, y);
|
||||
evas_object_show(ctxpopup);
|
||||
_print_current_dir(ctxpopup);
|
||||
}
|
||||
|
||||
static void
|
||||
_list_item_cb4(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *ctxpopup, *ic;
|
||||
Elm_Object_Item *it;
|
||||
Evas_Coord x,y;
|
||||
|
||||
ctxpopup = elm_ctxpopup_add(obj);
|
||||
evas_object_smart_callback_add(ctxpopup,
|
||||
"dismissed",
|
||||
_dismissed,
|
||||
NULL);
|
||||
elm_ctxpopup_horizontal_set(ctxpopup, EINA_TRUE);
|
||||
|
||||
ITEM_NEW(ctxpopup, NULL, "home");
|
||||
ITEM_NEW(ctxpopup, NULL, "file");
|
||||
ITEM_NEW(ctxpopup, NULL, "delete");
|
||||
ITEM_NEW(ctxpopup, NULL, "folder");
|
||||
ITEM_NEW(ctxpopup, NULL, "edit");
|
||||
ITEM_NEW(ctxpopup, NULL, "clock");
|
||||
|
||||
evas_pointer_canvas_xy_get(evas_object_evas_get(obj), &x, &y);
|
||||
evas_object_size_hint_max_set(ctxpopup, 240, 240);
|
||||
evas_object_move(ctxpopup, x, y);
|
||||
evas_object_show(ctxpopup);
|
||||
_print_current_dir(ctxpopup);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
_list_item_cb5(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *ctxpopup, *btn, *sc, *bx;
|
||||
Evas_Coord x,y;
|
||||
|
||||
bx = elm_box_add(obj);
|
||||
evas_object_size_hint_min_set(bx, 150, 150);
|
||||
|
||||
sc = elm_scroller_add(bx);
|
||||
elm_scroller_bounce_set(sc, EINA_FALSE, EINA_TRUE);
|
||||
evas_object_size_hint_fill_set(sc, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(sc);
|
||||
|
||||
btn = elm_button_add(sc);
|
||||
elm_object_text_set(btn, "Enlightenment");
|
||||
evas_object_size_hint_min_set(btn, 140, 140);
|
||||
|
||||
elm_object_content_set(sc, btn);
|
||||
|
||||
elm_box_pack_end(bx, sc);
|
||||
|
||||
ctxpopup = elm_ctxpopup_add(obj);
|
||||
evas_object_smart_callback_add(ctxpopup,
|
||||
"dismissed",
|
||||
_dismissed,
|
||||
NULL);
|
||||
elm_object_content_set(ctxpopup, bx);
|
||||
|
||||
evas_pointer_canvas_xy_get(evas_object_evas_get(obj), &x, &y);
|
||||
evas_object_move(ctxpopup, x, y);
|
||||
evas_object_show(ctxpopup);
|
||||
_print_current_dir(ctxpopup);
|
||||
}
|
||||
|
||||
|
||||
static void _list_clicked(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
||||
{
|
||||
elm_list_item_selected_set(event_info, EINA_FALSE);
|
||||
}
|
||||
|
||||
TEST_START(test_ctxpopup)
|
||||
{
|
||||
Evas_Object *bg, *list;
|
||||
|
||||
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);
|
||||
|
||||
list = elm_list_add(win);
|
||||
elm_win_resize_object_add(win, list);
|
||||
evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_list_mode_set(list, ELM_LIST_COMPRESS);
|
||||
evas_object_smart_callback_add(list, "selected", _list_clicked, NULL);
|
||||
|
||||
#undef ITEM_NEW
|
||||
elm_list_item_append(list, "Ctxpopup with icons and labels", NULL, NULL,
|
||||
_list_item_cb, NULL);
|
||||
elm_list_item_append(list, "Ctxpopup with icons only", NULL, NULL,
|
||||
_list_item_cb2, NULL);
|
||||
elm_list_item_append(list, "Ctxpopup with labels only", NULL, NULL,
|
||||
_list_item_cb3, NULL);
|
||||
elm_list_item_append(list, "Ctxpopup at horizontal mode", NULL, NULL,
|
||||
_list_item_cb4, NULL);
|
||||
elm_list_item_append(list, "Ctxpopup with user content", NULL, NULL,
|
||||
_list_item_cb5, NULL);
|
||||
evas_object_show(list);
|
||||
elm_list_go(list);
|
||||
|
||||
evas_object_resize(win, 400, 400);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,335 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include <Elementary_Cursor.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
static void
|
||||
_disk_sel(void *data __UNUSED__, Evas_Object * obj __UNUSED__, void *event_info)
|
||||
{
|
||||
Elm_Object_Item *ds_it = event_info;
|
||||
printf("Equinox: %s\n", elm_diskselector_item_label_get(ds_it));
|
||||
}
|
||||
|
||||
static void
|
||||
_disk_next(void *data __UNUSED__, Evas_Object * obj __UNUSED__, void *event_info)
|
||||
{
|
||||
Elm_Object_Item *next_ds_it, *prev_ds_it, *ds_it = event_info;
|
||||
prev_ds_it = elm_diskselector_item_prev_get(ds_it);
|
||||
next_ds_it = elm_diskselector_item_next_get(ds_it);
|
||||
printf("Prev: %s, Next: %s\n",
|
||||
elm_diskselector_item_label_get(prev_ds_it),
|
||||
elm_diskselector_item_label_get(next_ds_it));
|
||||
}
|
||||
|
||||
static void
|
||||
_print_disk_info_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
||||
{
|
||||
Elm_Object_Item *ds_it = event_info;
|
||||
printf("Selected label: %s\n", elm_diskselector_item_label_get(ds_it));
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
_disk_create(Evas_Object *win, Eina_Bool round)
|
||||
{
|
||||
Elm_Object_Item *ds_it;
|
||||
Evas_Object *di;
|
||||
|
||||
di = elm_diskselector_add(win);
|
||||
|
||||
elm_diskselector_item_append(di, "January", NULL, NULL, NULL);
|
||||
elm_diskselector_item_append(di, "February", NULL, _disk_next, NULL);
|
||||
elm_diskselector_item_append(di, "March", NULL, _disk_sel, NULL);
|
||||
elm_diskselector_item_append(di, "April", NULL, NULL, NULL);
|
||||
elm_diskselector_item_append(di, "May", NULL, NULL, NULL);
|
||||
elm_diskselector_item_append(di, "June", NULL, NULL, NULL);
|
||||
elm_diskselector_item_append(di, "July", NULL, NULL, NULL);
|
||||
ds_it = elm_diskselector_item_append(di, "August", NULL, NULL, NULL);
|
||||
elm_diskselector_item_append(di, "September", NULL, _disk_sel, NULL);
|
||||
elm_diskselector_item_append(di, "October", NULL, NULL, NULL);
|
||||
elm_diskselector_item_append(di, "November", NULL, NULL, NULL);
|
||||
elm_diskselector_item_append(di, "December", NULL, NULL, NULL);
|
||||
|
||||
elm_diskselector_item_selected_set(ds_it, EINA_TRUE);
|
||||
elm_diskselector_round_set(di, round);
|
||||
|
||||
return di;
|
||||
}
|
||||
|
||||
enum _api_state
|
||||
{
|
||||
SCROLLER_POLICY_SET_ON,
|
||||
SCROLLER_POLICY_SET_OFF,
|
||||
BOUNCE_SET,
|
||||
ITEM_LABEL_SET,
|
||||
TOOLTIP_TEXT_SET,
|
||||
ITEM_TOOLTIP_UNSET,
|
||||
ITEM_CURSOR_SET,
|
||||
ITEM_CURSOR_UNSET,
|
||||
ITEM_ICON_SET,
|
||||
SELECTED_SET,
|
||||
ITEM_PREV_GET,
|
||||
ITEM_DEL_NOT_SELECTED,
|
||||
ITEM_DEL, /* delete when selected */
|
||||
CLEAR,
|
||||
API_STATE_LAST
|
||||
};
|
||||
typedef enum _api_state api_state;
|
||||
|
||||
static void
|
||||
set_api_state(api_data *api)
|
||||
{
|
||||
const Eina_List *disks = elm_box_children_get(api->data);
|
||||
if(!eina_list_count(disks))
|
||||
return;
|
||||
|
||||
switch(api->state)
|
||||
{ /* Put all api-changes under switch */
|
||||
case SCROLLER_POLICY_SET_ON: /* 0 */
|
||||
{ /* Get first disk */
|
||||
Evas_Object *disk = eina_list_nth(disks, 0);
|
||||
elm_diskselector_scroller_policy_set(disk, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_ON);
|
||||
}
|
||||
break;
|
||||
|
||||
case SCROLLER_POLICY_SET_OFF: /* 1 */
|
||||
{ /* Get first disk */
|
||||
Evas_Object *disk = eina_list_nth(disks, 0);
|
||||
elm_diskselector_scroller_policy_set(disk, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
|
||||
}
|
||||
break;
|
||||
|
||||
case BOUNCE_SET: /* 2 */
|
||||
{ /* Get second disk, cancel bounce */
|
||||
Evas_Object *disk = eina_list_nth(disks, 1);
|
||||
elm_diskselector_bounce_set(disk, EINA_FALSE, EINA_FALSE);
|
||||
}
|
||||
break;
|
||||
|
||||
case ITEM_LABEL_SET: /* 3 */
|
||||
elm_diskselector_item_label_set(elm_diskselector_selected_item_get(eina_list_nth(disks, 0)), "Label from API");
|
||||
break;
|
||||
|
||||
case TOOLTIP_TEXT_SET: /* 4 */
|
||||
elm_diskselector_item_tooltip_text_set(elm_diskselector_selected_item_get(eina_list_nth(disks, 0)), "Tooltip from API");
|
||||
break;
|
||||
|
||||
case ITEM_TOOLTIP_UNSET: /* 5 */
|
||||
elm_diskselector_item_tooltip_unset(elm_diskselector_selected_item_get(eina_list_nth(disks, 0)));
|
||||
break;
|
||||
|
||||
case ITEM_CURSOR_SET: /* 6 */
|
||||
elm_diskselector_item_cursor_set(elm_diskselector_selected_item_get(eina_list_nth(disks, 0)), ELM_CURSOR_HAND2);
|
||||
break;
|
||||
|
||||
case ITEM_CURSOR_UNSET: /* 7 */
|
||||
elm_diskselector_item_cursor_unset(elm_diskselector_selected_item_get(eina_list_nth(disks, 0)));
|
||||
break;
|
||||
|
||||
case ITEM_ICON_SET: /* 8 */
|
||||
{ /* Set icon of selected item in first disk */
|
||||
char buf[PATH_MAX];
|
||||
Evas_Object *ic = elm_icon_add(elm_object_parent_widget_get(eina_list_nth(disks, 0)));
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_diskselector_item_icon_set(elm_diskselector_selected_item_get(eina_list_nth(disks, 0)), ic);
|
||||
evas_object_show(ic);
|
||||
}
|
||||
break;
|
||||
|
||||
case SELECTED_SET: /* 9 */
|
||||
{ /* Select NEXT item of third disk */
|
||||
elm_diskselector_item_selected_set(elm_diskselector_item_next_get(elm_diskselector_selected_item_get(eina_list_nth(disks, 2))), EINA_TRUE);
|
||||
}
|
||||
break;
|
||||
|
||||
case ITEM_PREV_GET: /* 10 */
|
||||
{ /* Select PREV item of third disk */
|
||||
elm_diskselector_item_selected_set(elm_diskselector_item_prev_get(elm_diskselector_selected_item_get(eina_list_nth(disks, 2))), EINA_TRUE);
|
||||
}
|
||||
break;
|
||||
|
||||
case ITEM_DEL_NOT_SELECTED: /* 11 */
|
||||
{ /* Remove selected item of third disk */
|
||||
elm_diskselector_item_del(elm_diskselector_item_prev_get(elm_diskselector_selected_item_get(eina_list_nth(disks, 2))));
|
||||
}
|
||||
break;
|
||||
|
||||
case ITEM_DEL: /* 12 */
|
||||
{ /* Remove selected item of first disk */
|
||||
elm_diskselector_item_del(elm_diskselector_selected_item_get(eina_list_nth(disks, 1)));
|
||||
}
|
||||
break;
|
||||
|
||||
case CLEAR: /* 13 */
|
||||
elm_diskselector_clear(eina_list_nth(disks, 0));
|
||||
break;
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_api_bt_clicked(void *data, Evas_Object *obj __UNUSED__, 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(a->bt, str);
|
||||
elm_object_disabled_set(a->bt, a->state == API_STATE_LAST);
|
||||
}
|
||||
|
||||
TEST_START(test_diskselector)
|
||||
{
|
||||
Evas_Object *bg, *bx, *bxx, *disk, *ic;
|
||||
Elm_Object_Item *ds_it;
|
||||
char buf[PATH_MAX];
|
||||
int idx = 0;
|
||||
|
||||
char *month_list[] = {
|
||||
"Jan", "Feb", "Mar",
|
||||
"Apr", "May", "Jun",
|
||||
"Jul", "Aug", "Sep",
|
||||
"Oct", "Nov", "Dec"
|
||||
};
|
||||
char date[3];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bg, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_show(bg);
|
||||
|
||||
bxx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bxx);
|
||||
evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bxx);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
api->data = bx;
|
||||
evas_object_show(bx);
|
||||
|
||||
api->bt = elm_button_add(win);
|
||||
elm_object_text_set(api->bt, "Next API function");
|
||||
evas_object_smart_callback_add(api->bt, "clicked", _api_bt_clicked, (void *) api);
|
||||
elm_box_pack_end(bxx, api->bt);
|
||||
elm_object_disabled_set(api->bt, api->state == API_STATE_LAST);
|
||||
evas_object_show(api->bt);
|
||||
|
||||
elm_box_pack_end(bxx, bx);
|
||||
|
||||
disk = _disk_create(win, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(disk, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(disk, EVAS_HINT_FILL, 0.5);
|
||||
elm_box_pack_end(bx, disk);
|
||||
evas_object_show(disk);
|
||||
evas_object_smart_callback_add(disk, "selected", _print_disk_info_cb, NULL);
|
||||
ds_it = elm_diskselector_selected_item_get(disk);
|
||||
elm_diskselector_item_selected_set(ds_it, EINA_FALSE);
|
||||
|
||||
disk = _disk_create(win, EINA_FALSE);
|
||||
evas_object_size_hint_weight_set(disk, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(disk, EVAS_HINT_FILL, 0.5);
|
||||
elm_box_pack_end(bx, disk);
|
||||
evas_object_show(disk);
|
||||
evas_object_smart_callback_add(disk, "selected", _print_disk_info_cb, NULL);
|
||||
ds_it = elm_diskselector_first_item_get(disk);
|
||||
ds_it = elm_diskselector_item_next_get(ds_it);
|
||||
elm_diskselector_item_selected_set(ds_it, EINA_TRUE);
|
||||
|
||||
disk = _disk_create(win, EINA_FALSE);
|
||||
evas_object_size_hint_weight_set(disk, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(disk, EVAS_HINT_FILL, 0.5);
|
||||
elm_box_pack_end(bx, disk);
|
||||
evas_object_show(disk);
|
||||
evas_object_smart_callback_add(disk, "selected", _print_disk_info_cb, NULL);
|
||||
elm_diskselector_side_label_length_set(disk, 4);
|
||||
|
||||
disk = elm_diskselector_add(win);
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 1, 1);
|
||||
elm_diskselector_item_append(disk, "Sunday", ic, NULL, NULL);
|
||||
elm_diskselector_item_append(disk, "Monday", NULL, NULL, NULL);
|
||||
elm_diskselector_item_append(disk, "Tuesday", NULL, NULL, NULL);
|
||||
elm_diskselector_item_append(disk, "Wednesday", NULL, NULL, NULL);
|
||||
elm_diskselector_item_append(disk, "Thursday", NULL, NULL, NULL);
|
||||
elm_diskselector_item_append(disk, "Friday", NULL, NULL, NULL);
|
||||
elm_diskselector_item_append(disk, "Saturday", NULL, NULL, NULL);
|
||||
elm_diskselector_round_set(disk, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(disk, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(disk, EVAS_HINT_FILL, 0.5);
|
||||
elm_box_pack_end(bx, disk);
|
||||
evas_object_show(disk);
|
||||
evas_object_smart_callback_add(disk, "selected", _print_disk_info_cb, NULL);
|
||||
|
||||
disk = elm_diskselector_add(win);
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 1, 1);
|
||||
elm_diskselector_item_append(disk, "머리스타일", ic, NULL, NULL);
|
||||
elm_diskselector_item_append(disk, "プロが伝授する", NULL, NULL, NULL);
|
||||
elm_diskselector_item_append(disk, "生上访要求政府", NULL, NULL, NULL);
|
||||
elm_diskselector_item_append(disk, "English", NULL, NULL, NULL);
|
||||
elm_diskselector_item_append(disk, "والشريعة", NULL, NULL, NULL);
|
||||
elm_diskselector_item_append(disk, "עִבְרִית", NULL, NULL, NULL);
|
||||
elm_diskselector_item_append(disk, "Grüßen", NULL, NULL, NULL);
|
||||
elm_diskselector_round_set(disk, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(disk, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(disk, EVAS_HINT_FILL, 0.5);
|
||||
elm_box_pack_end(bx, disk);
|
||||
evas_object_show(disk);
|
||||
evas_object_smart_callback_add(disk, "selected", _print_disk_info_cb, NULL);
|
||||
|
||||
// displayed item number setting example
|
||||
disk = elm_diskselector_add(win);
|
||||
elm_diskselector_display_item_num_set(disk, 5);
|
||||
printf("Number of Items in DiskSelector : %d\n",
|
||||
elm_diskselector_display_item_num_get(disk));
|
||||
|
||||
for (idx = 0; idx < (int)(sizeof(month_list) / sizeof(month_list[0])); idx++)
|
||||
{
|
||||
ds_it = elm_diskselector_item_append(disk, month_list[idx], NULL, NULL,
|
||||
NULL);
|
||||
}
|
||||
|
||||
elm_diskselector_item_selected_set(ds_it, EINA_TRUE);
|
||||
elm_diskselector_round_set(disk, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(disk, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(disk, EVAS_HINT_FILL, 0.5);
|
||||
elm_box_pack_end(bx, disk);
|
||||
evas_object_show(disk);
|
||||
evas_object_smart_callback_add(disk, "selected", _print_disk_info_cb, NULL);
|
||||
|
||||
// displayed item number setting example
|
||||
disk = elm_diskselector_add(win);
|
||||
elm_diskselector_display_item_num_set(disk, 7);
|
||||
printf("Number of Items in DiskSelector : %d\n", elm_diskselector_display_item_num_get(disk));
|
||||
|
||||
for (idx = 1; idx < 31; idx++)
|
||||
{
|
||||
snprintf(date, sizeof(date), "%d", idx);
|
||||
ds_it = elm_diskselector_item_append(disk, date, NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
elm_diskselector_item_selected_set(ds_it, EINA_TRUE);
|
||||
elm_diskselector_round_set(disk, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(disk, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(disk, EVAS_HINT_FILL, 0.5);
|
||||
elm_box_pack_end(bx, disk);
|
||||
evas_object_show(disk);
|
||||
evas_object_smart_callback_add(disk, "selected", _print_disk_info_cb, NULL);
|
||||
|
||||
evas_object_resize(win, 320, 480);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
1673
src/bin/test_entry.c
1673
src/bin/test_entry.c
File diff suppressed because it is too large
Load Diff
|
@ -1,281 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
static void
|
||||
my_fileselector_done(void *data __UNUSED__,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info)
|
||||
{
|
||||
/* event_info conatin the full path of the selected file
|
||||
* or NULL if none is selected or cancel is pressed */
|
||||
const char *selected = event_info;
|
||||
|
||||
if (selected)
|
||||
printf("Selected file: %s\n", selected);
|
||||
/* else test window deleted in tsuite_cleanup
|
||||
evas_object_del(data); delete the test window */
|
||||
}
|
||||
|
||||
static void
|
||||
my_fileselector_selected(void *data __UNUSED__,
|
||||
Evas_Object *obj,
|
||||
void *event_info)
|
||||
{
|
||||
/* event_info conatin the full path of the selected file */
|
||||
const char *selected = event_info;
|
||||
printf("Selected file: %s\n", selected);
|
||||
|
||||
/* or you can query the selection */
|
||||
printf("or: %s\n", elm_fileselector_selected_get(obj));
|
||||
}
|
||||
|
||||
static void
|
||||
_is_save_clicked(void *data,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *fs = data;
|
||||
printf("Toggle Is save\n");
|
||||
if (elm_fileselector_is_save_get(fs))
|
||||
elm_fileselector_is_save_set(fs, EINA_FALSE);
|
||||
else
|
||||
elm_fileselector_is_save_set(fs, EINA_TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
_folder_only_clicked(void *data,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *fs = data;
|
||||
printf("Toggle Folder only\n");
|
||||
if (elm_fileselector_folder_only_get(fs))
|
||||
elm_fileselector_folder_only_set(fs, EINA_FALSE);
|
||||
else
|
||||
elm_fileselector_folder_only_set(fs, EINA_TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
_expandable_clicked(void *data,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *fs = data;
|
||||
printf("Toggle Expandable\n");
|
||||
if (elm_fileselector_expandable_get(fs))
|
||||
elm_fileselector_expandable_set(fs, EINA_FALSE);
|
||||
else
|
||||
elm_fileselector_expandable_set(fs, EINA_TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
_sel_get_clicked(void *data,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *fs = data;
|
||||
printf("Get Selected: %s\n", elm_fileselector_selected_get(fs));
|
||||
}
|
||||
|
||||
static void
|
||||
_path_get_clicked(void *data,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *fs = data;
|
||||
printf("Get Path: %s\n", elm_fileselector_path_get(fs));
|
||||
}
|
||||
|
||||
static void
|
||||
_mode_cycle_clicked(void *data,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *fs = data;
|
||||
Elm_Fileselector_Mode mode;
|
||||
|
||||
mode = (elm_fileselector_mode_get(fs) + 1) % ELM_FILESELECTOR_LAST;
|
||||
elm_fileselector_mode_set(fs, mode);
|
||||
|
||||
printf("Setting mode to: %d\n", mode);
|
||||
}
|
||||
|
||||
enum _api_state
|
||||
{
|
||||
API_STATE_LAST
|
||||
};
|
||||
typedef enum _api_state api_state;
|
||||
|
||||
static void
|
||||
set_api_state(api_data *api)
|
||||
{
|
||||
const Eina_List *items = elm_box_children_get(api->data);
|
||||
if(!eina_list_count(items))
|
||||
return;
|
||||
|
||||
/* Get first item of list of vbox children
|
||||
Evas_Object *fs_bt = eina_list_nth(items, 0); */
|
||||
|
||||
/* use elm_box_children_get() to get list of children */
|
||||
switch(api->state)
|
||||
{ /* Put all api-changes under switch */
|
||||
case API_STATE_LAST:
|
||||
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_api_bt_clicked(void *data, Evas_Object *obj __UNUSED__, 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(a->bt, str);
|
||||
elm_object_disabled_set(a->bt, a->state == API_STATE_LAST);
|
||||
}
|
||||
|
||||
static void
|
||||
create_dir_struct(void)
|
||||
{
|
||||
FILE *fp;
|
||||
mkdir("/tmp/test_fs_bt", S_IRWXU);
|
||||
fp = fopen("/tmp/test_fs_bt/a_file.txt", "w");
|
||||
if (fp) fclose(fp);
|
||||
fp = fopen("/tmp/test_fs_bt/k_file.txt", "w");
|
||||
if (fp) fclose(fp);
|
||||
fp = fopen("/tmp/test_fs_bt/m_file.txt", "w");
|
||||
if (fp) fclose(fp);
|
||||
|
||||
mkdir("/tmp/test_fs_bt/a_subdir", S_IRWXU);
|
||||
fp = fopen("/tmp/test_fs_bt/a_subdir/d_sub_file.txt", "w");
|
||||
if (fp) fclose(fp);
|
||||
fp = fopen("/tmp/test_fs_bt/a_subdir/j_sub_file.txt", "w");
|
||||
if (fp) fclose(fp);
|
||||
}
|
||||
|
||||
TEST_START(test_fileselector)
|
||||
{
|
||||
Evas_Object *fs, *bg, *vbox, *hbox, *bxx, *bt, *sep;
|
||||
|
||||
/* Set the locale according to the system pref.
|
||||
* If you dont do so the file selector will order the files list in
|
||||
* a case sensitive manner
|
||||
*/
|
||||
setlocale(LC_ALL, "");
|
||||
|
||||
elm_need_ethumb();
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bxx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bxx);
|
||||
evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bxx);
|
||||
|
||||
vbox = elm_box_add(win);
|
||||
api->data = vbox;
|
||||
// elm_win_resize_object_add(win, vbox);
|
||||
evas_object_size_hint_align_set(vbox, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(vbox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(vbox);
|
||||
|
||||
api->bt = elm_button_add(win);
|
||||
elm_object_text_set(api->bt, "Next API function");
|
||||
evas_object_smart_callback_add(api->bt, "clicked", _api_bt_clicked, (void *) api);
|
||||
elm_box_pack_end(bxx, api->bt);
|
||||
elm_object_disabled_set(api->bt, api->state == API_STATE_LAST);
|
||||
evas_object_show(api->bt);
|
||||
|
||||
elm_box_pack_end(bxx, vbox);
|
||||
|
||||
create_dir_struct(); /* Create a dir struct in /tmp */
|
||||
|
||||
fs = elm_fileselector_add(win);
|
||||
/* enable the fs file name entry */
|
||||
elm_fileselector_is_save_set(fs, EINA_TRUE);
|
||||
/* make the file list a tree with dir expandable in place */
|
||||
elm_fileselector_expandable_set(fs, EINA_FALSE);
|
||||
/* start the fileselector in the test dir */
|
||||
elm_fileselector_path_set(fs, "/tmp/test_fs_bt");
|
||||
/* allow fs to expand in x & y */
|
||||
evas_object_size_hint_weight_set(fs, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(fs, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_box_pack_end(vbox, fs);
|
||||
evas_object_show(fs); // TODO fix this is the widget
|
||||
|
||||
/* the 'done' cb is called when the user press ok/cancel */
|
||||
evas_object_smart_callback_add(fs, "done", my_fileselector_done, win);
|
||||
/* the 'selected' cb is called when the user click on a file/dir */
|
||||
evas_object_smart_callback_add(fs, "selected", my_fileselector_selected,
|
||||
win);
|
||||
|
||||
/* test buttons */
|
||||
sep = elm_separator_add(win);
|
||||
elm_separator_horizontal_set(sep, EINA_TRUE);
|
||||
elm_box_pack_end(vbox, sep);
|
||||
evas_object_show(sep);
|
||||
|
||||
hbox = elm_box_add(win);
|
||||
elm_box_horizontal_set(hbox, EINA_TRUE);
|
||||
elm_box_pack_end(vbox, hbox);
|
||||
evas_object_show(hbox);
|
||||
|
||||
bt = elm_check_add(win);
|
||||
elm_object_text_set(bt, "is save");
|
||||
elm_check_state_set(bt, elm_fileselector_is_save_get(fs));
|
||||
evas_object_smart_callback_add(bt, "changed", _is_save_clicked, fs);
|
||||
elm_box_pack_end(hbox, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_check_add(win);
|
||||
elm_object_text_set(bt, "folder only");
|
||||
elm_check_state_set(bt, elm_fileselector_folder_only_get(fs));
|
||||
evas_object_smart_callback_add(bt, "changed", _folder_only_clicked, fs);
|
||||
elm_box_pack_end(hbox, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_check_add(win);
|
||||
elm_object_text_set(bt, "expandable");
|
||||
elm_check_state_set(bt, elm_fileselector_expandable_get(fs));
|
||||
evas_object_smart_callback_add(bt, "changed", _expandable_clicked, fs);
|
||||
elm_box_pack_end(hbox, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
hbox = elm_box_add(win);
|
||||
elm_box_horizontal_set(hbox, EINA_TRUE);
|
||||
elm_box_pack_end(vbox, hbox);
|
||||
evas_object_show(hbox);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "selected get");
|
||||
evas_object_smart_callback_add(bt, "clicked", _sel_get_clicked, fs);
|
||||
elm_box_pack_end(hbox, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "path get");
|
||||
evas_object_smart_callback_add(bt, "clicked", _path_get_clicked, fs);
|
||||
elm_box_pack_end(hbox, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "mode cycle");
|
||||
evas_object_smart_callback_add(bt, "clicked", _mode_cycle_clicked, fs);
|
||||
elm_box_pack_end(hbox, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_resize(win, 240, 400);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,227 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
static void
|
||||
_file_chosen(void *data,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info)
|
||||
{
|
||||
Evas_Object *entry = data;
|
||||
const char *file = event_info;
|
||||
if (file)
|
||||
{
|
||||
elm_entry_entry_set(entry, file);
|
||||
printf("File chosen: %s\n", file);
|
||||
}
|
||||
else
|
||||
printf("File selection canceled.\n");
|
||||
}
|
||||
|
||||
static void
|
||||
_inwin_mode_toggle(void *data,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *fs_bt = data;
|
||||
Eina_Bool value = elm_fileselector_button_inwin_mode_get(fs_bt);
|
||||
elm_fileselector_button_inwin_mode_set(fs_bt, !value);
|
||||
printf("Inwin mode set to: %s\n", value ? "false" : "true");
|
||||
}
|
||||
|
||||
static void
|
||||
_current_sel_toggle(void *data,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *fs_bt = data;
|
||||
Eina_Bool value = elm_fileselector_button_is_save_get(fs_bt);
|
||||
elm_fileselector_button_is_save_set(fs_bt, !value);
|
||||
printf("Current selection editable entry set to: %s\n",
|
||||
value ? "false" : "true");
|
||||
}
|
||||
|
||||
static void
|
||||
_folder_only_toggle(void *data,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *fs_bt = data;
|
||||
Eina_Bool value = elm_fileselector_button_folder_only_get(fs_bt);
|
||||
elm_fileselector_button_folder_only_set(fs_bt, !value);
|
||||
printf("Folder only flag set to: %s\n", value ? "false" : "true");
|
||||
}
|
||||
|
||||
static void
|
||||
_expandable_toggle(void *data,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *fs_bt = data;
|
||||
Eina_Bool value = elm_fileselector_button_expandable_get(fs_bt);
|
||||
elm_fileselector_button_expandable_set(fs_bt, !value);
|
||||
printf("Expandable flag set to: %s\n", value ? "false" : "true");
|
||||
}
|
||||
|
||||
enum _api_state
|
||||
{
|
||||
ICON_UNSET,
|
||||
WINDOW_TITLE_SET,
|
||||
API_STATE_LAST
|
||||
};
|
||||
typedef enum _api_state api_state;
|
||||
|
||||
static void
|
||||
set_api_state(api_data *api)
|
||||
{
|
||||
const Eina_List *items = elm_box_children_get(api->data);
|
||||
if(!eina_list_count(items))
|
||||
return;
|
||||
|
||||
/* Get first item of list of vbox children */
|
||||
Evas_Object *fs_bt = eina_list_nth(items, 0);
|
||||
|
||||
/* use elm_box_children_get() to get list of children */
|
||||
switch(api->state)
|
||||
{ /* Put all api-changes under switch */
|
||||
case ICON_UNSET:
|
||||
elm_fileselector_button_icon_unset(fs_bt);
|
||||
break;
|
||||
|
||||
case WINDOW_TITLE_SET:
|
||||
elm_fileselector_button_window_title_set(fs_bt, "Custom title from API");
|
||||
break;
|
||||
|
||||
case API_STATE_LAST:
|
||||
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_api_bt_clicked(void *data, Evas_Object *obj __UNUSED__, 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(a->bt, str);
|
||||
elm_object_disabled_set(a->bt, a->state == API_STATE_LAST);
|
||||
}
|
||||
|
||||
static void
|
||||
create_dir_struct(void)
|
||||
{
|
||||
FILE *fp;
|
||||
mkdir("/tmp/test_fs_bt", S_IRWXU);
|
||||
fp = fopen("/tmp/test_fs_bt/a_file.txt", "w");
|
||||
if (fp) fclose(fp);
|
||||
fp = fopen("/tmp/test_fs_bt/k_file.txt", "w");
|
||||
if (fp) fclose(fp);
|
||||
fp = fopen("/tmp/test_fs_bt/m_file.txt", "w");
|
||||
if (fp) fclose(fp);
|
||||
|
||||
mkdir("/tmp/test_fs_bt/a_subdir", S_IRWXU);
|
||||
fp = fopen("/tmp/test_fs_bt/a_subdir/d_sub_file.txt", "w");
|
||||
if (fp) fclose(fp);
|
||||
fp = fopen("/tmp/test_fs_bt/a_subdir/j_sub_file.txt", "w");
|
||||
if (fp) fclose(fp);
|
||||
}
|
||||
|
||||
TEST_START(test_fileselector_button)
|
||||
{
|
||||
Evas_Object *bg, *vbox, *hbox, *bxx, *ic, *bt, *fs_bt, *en, *lb;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bxx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bxx);
|
||||
evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bxx);
|
||||
|
||||
vbox = elm_box_add(win);
|
||||
api->data = vbox;
|
||||
evas_object_show(vbox);
|
||||
|
||||
api->bt = elm_button_add(win);
|
||||
elm_object_text_set(api->bt, "Next API function");
|
||||
evas_object_smart_callback_add(api->bt, "clicked", _api_bt_clicked, (void *) api);
|
||||
elm_box_pack_end(bxx, api->bt);
|
||||
elm_object_disabled_set(api->bt, api->state == API_STATE_LAST);
|
||||
evas_object_show(api->bt);
|
||||
|
||||
elm_box_pack_end(bxx, vbox);
|
||||
|
||||
create_dir_struct(); /* Create a dir struct in /tmp */
|
||||
/* file selector button */
|
||||
ic = elm_icon_add(win);
|
||||
elm_icon_standard_set(ic, "file");
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
fs_bt = elm_fileselector_button_add(win);
|
||||
elm_object_text_set(fs_bt, "Select a file");
|
||||
elm_fileselector_button_icon_set(fs_bt, ic);
|
||||
elm_fileselector_button_path_set(fs_bt, "/tmp/test_fs_bt");
|
||||
|
||||
elm_box_pack_end(vbox, fs_bt);
|
||||
evas_object_show(fs_bt);
|
||||
evas_object_show(ic);
|
||||
|
||||
/* attribute setting buttons */
|
||||
hbox = elm_box_add(win);
|
||||
elm_box_horizontal_set(hbox, EINA_TRUE);
|
||||
elm_box_pack_end(vbox, hbox);
|
||||
evas_object_show(hbox);
|
||||
|
||||
bt = elm_check_add(win);
|
||||
elm_object_style_set(bt, "toggle");
|
||||
elm_object_text_set(bt, "current selection text entry");
|
||||
evas_object_smart_callback_add(bt, "changed", _current_sel_toggle, fs_bt);
|
||||
elm_box_pack_end(hbox, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_check_add(win);
|
||||
elm_object_style_set(bt, "toggle");
|
||||
elm_object_text_set(bt, "Inwin mode");
|
||||
elm_check_state_set (bt, EINA_TRUE);
|
||||
evas_object_smart_callback_add(bt, "changed", _inwin_mode_toggle, fs_bt);
|
||||
elm_box_pack_end(hbox, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_check_add(win);
|
||||
elm_object_style_set(bt, "toggle");
|
||||
elm_object_text_set(bt, "Folder only mode");
|
||||
evas_object_smart_callback_add(bt, "changed", _folder_only_toggle, fs_bt);
|
||||
elm_box_pack_end(hbox, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_check_add(win);
|
||||
elm_object_style_set(bt, "toggle");
|
||||
elm_object_text_set(bt, "Expandable mode");
|
||||
evas_object_smart_callback_add(bt, "changed", _expandable_toggle, fs_bt);
|
||||
elm_box_pack_end(hbox, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb, "Last selection:");
|
||||
elm_box_pack_end(vbox, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
en = elm_entry_add(win);
|
||||
elm_entry_line_wrap_set(en, ELM_WRAP_NONE);
|
||||
elm_entry_editable_set(en, EINA_FALSE);
|
||||
evas_object_smart_callback_add(fs_bt, "file,chosen", _file_chosen, en);
|
||||
elm_box_pack_end(vbox, en);
|
||||
evas_object_show(en);
|
||||
|
||||
evas_object_resize(win, 400, 400);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,236 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
static void
|
||||
_file_chosen(void *data,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info)
|
||||
{
|
||||
Evas_Object *entry = data;
|
||||
char *file = event_info;
|
||||
elm_entry_entry_set(entry, file);
|
||||
printf("File chosen: %s\n", file);
|
||||
}
|
||||
|
||||
static void
|
||||
_inwin_mode_toggle(void *data,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *fs_en = data;
|
||||
Eina_Bool value = elm_fileselector_entry_inwin_mode_get(fs_en);
|
||||
elm_fileselector_entry_inwin_mode_set(fs_en, !value);
|
||||
printf("Inwin mode set to: %s\n", value ? "false" : "true");
|
||||
}
|
||||
|
||||
static void
|
||||
_folder_only_toggle(void *data,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *fs_en = data;
|
||||
Evas_Object *ic = elm_fileselector_entry_button_icon_get(fs_en);
|
||||
Eina_Bool value = elm_fileselector_entry_folder_only_get(fs_en);
|
||||
elm_fileselector_entry_folder_only_set(fs_en, !value);
|
||||
printf("Folder only flag set to: %s\n", value ? "false" : "true");
|
||||
if (!value)
|
||||
{
|
||||
elm_icon_standard_set(ic, "folder");
|
||||
elm_object_text_set(fs_en, "Select a folder");
|
||||
}
|
||||
else
|
||||
{
|
||||
elm_icon_standard_set(ic, "file");
|
||||
elm_object_text_set(fs_en, "Select a file");
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_expandable_toggle(void *data,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *fs_en = data;
|
||||
Eina_Bool value = elm_fileselector_entry_expandable_get(fs_en);
|
||||
elm_fileselector_entry_expandable_set(fs_en, !value);
|
||||
printf("Expandable flag set to: %s\n", value ? "false" : "true");
|
||||
}
|
||||
|
||||
static void
|
||||
_disabled_toggle(void *data,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *fs_en = data;
|
||||
Eina_Bool value = elm_object_disabled_get(fs_en);
|
||||
elm_object_disabled_set(fs_en, !value);
|
||||
printf("Disabled flag set to: %s\n", value ? "false" : "true");
|
||||
}
|
||||
|
||||
enum _api_state
|
||||
{
|
||||
ICON_UNSET,
|
||||
WINDOW_TITLE_SET,
|
||||
API_STATE_LAST
|
||||
};
|
||||
typedef enum _api_state api_state;
|
||||
|
||||
static void
|
||||
set_api_state(api_data *api)
|
||||
{
|
||||
const Eina_List *items = elm_box_children_get(api->data);
|
||||
if(!eina_list_count(items))
|
||||
return;
|
||||
|
||||
/* Get first item of list of vbox children */
|
||||
Evas_Object *fs_bt = eina_list_nth(items, 0);
|
||||
|
||||
/* use elm_box_children_get() to get list of children */
|
||||
switch(api->state)
|
||||
{ /* Put all api-changes under switch */
|
||||
case ICON_UNSET:
|
||||
elm_fileselector_entry_button_icon_unset(fs_bt);
|
||||
break;
|
||||
|
||||
case WINDOW_TITLE_SET:
|
||||
elm_fileselector_entry_window_title_set(fs_bt, "Custom title from API");
|
||||
break;
|
||||
|
||||
case API_STATE_LAST:
|
||||
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_api_bt_clicked(void *data, Evas_Object *obj __UNUSED__, 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(a->bt, str);
|
||||
elm_object_disabled_set(a->bt, a->state == API_STATE_LAST);
|
||||
}
|
||||
|
||||
static void
|
||||
create_dir_struct(void)
|
||||
{
|
||||
FILE *fp;
|
||||
mkdir("/tmp/test_fs_bt", S_IRWXU);
|
||||
fp = fopen("/tmp/test_fs_bt/a_file.txt", "w");
|
||||
if (fp) fclose(fp);
|
||||
fp = fopen("/tmp/test_fs_bt/k_file.txt", "w");
|
||||
if (fp) fclose(fp);
|
||||
fp = fopen("/tmp/test_fs_bt/m_file.txt", "w");
|
||||
if (fp) fclose(fp);
|
||||
|
||||
mkdir("/tmp/test_fs_bt/a_subdir", S_IRWXU);
|
||||
fp = fopen("/tmp/test_fs_bt/a_subdir/d_sub_file.txt", "w");
|
||||
if (fp) fclose(fp);
|
||||
fp = fopen("/tmp/test_fs_bt/a_subdir/j_sub_file.txt", "w");
|
||||
if (fp) fclose(fp);
|
||||
}
|
||||
|
||||
TEST_START(test_fileselector_entry)
|
||||
{
|
||||
Evas_Object *bg, *vbox, *hbox, *bxx, *ic, *bt, *fs_en, *en, *lb;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bxx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bxx);
|
||||
evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bxx);
|
||||
|
||||
vbox = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(vbox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
api->data = vbox;
|
||||
evas_object_show(vbox);
|
||||
|
||||
api->bt = elm_button_add(win);
|
||||
elm_object_text_set(api->bt, "Next API function");
|
||||
evas_object_smart_callback_add(api->bt, "clicked", _api_bt_clicked, (void *) api);
|
||||
elm_box_pack_end(bxx, api->bt);
|
||||
elm_object_disabled_set(api->bt, api->state == API_STATE_LAST);
|
||||
evas_object_show(api->bt);
|
||||
|
||||
elm_box_pack_end(bxx, vbox);
|
||||
|
||||
create_dir_struct(); /* Create a dir struct in /tmp */
|
||||
|
||||
/* file selector entry */
|
||||
ic = elm_icon_add(win);
|
||||
elm_icon_standard_set(ic, "file");
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
fs_en = elm_fileselector_entry_add(win);
|
||||
elm_fileselector_entry_path_set(fs_en, "/tmp/test_fs_bt");
|
||||
elm_object_text_set(fs_en, "Select a file");
|
||||
elm_fileselector_entry_button_icon_set(fs_en, ic);
|
||||
evas_object_size_hint_weight_set(fs_en, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(fs_en, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
elm_box_pack_end(vbox, fs_en);
|
||||
evas_object_show(fs_en);
|
||||
evas_object_show(ic);
|
||||
|
||||
/* attribute setting buttons */
|
||||
hbox = elm_box_add(win);
|
||||
elm_box_horizontal_set(hbox, EINA_TRUE);
|
||||
elm_box_pack_end(vbox, hbox);
|
||||
evas_object_show(hbox);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Toggle inwin mode");
|
||||
evas_object_smart_callback_add(bt, "clicked", _inwin_mode_toggle, fs_en);
|
||||
elm_box_pack_end(hbox, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Toggle folder only mode");
|
||||
evas_object_smart_callback_add(bt, "clicked", _folder_only_toggle, fs_en);
|
||||
elm_box_pack_end(hbox, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Toggle expandable mode");
|
||||
evas_object_smart_callback_add(bt, "clicked", _expandable_toggle, fs_en);
|
||||
elm_box_pack_end(hbox, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb, "Last selection:");
|
||||
elm_box_pack_end(vbox, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
hbox = elm_box_add(win);
|
||||
elm_box_horizontal_set(hbox, EINA_TRUE);
|
||||
elm_box_pack_end(vbox, hbox);
|
||||
evas_object_show(hbox);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Toggle disabled");
|
||||
evas_object_smart_callback_add(bt, "clicked", _disabled_toggle, fs_en);
|
||||
elm_box_pack_end(hbox, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
en = elm_entry_add(win);
|
||||
elm_entry_line_wrap_set(en, ELM_WRAP_NONE);
|
||||
elm_entry_editable_set(en, EINA_FALSE);
|
||||
evas_object_smart_callback_add(fs_en, "file,chosen", _file_chosen, en);
|
||||
elm_box_pack_end(vbox, en);
|
||||
evas_object_show(en);
|
||||
|
||||
evas_object_resize(win, 400, 500);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,611 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
void
|
||||
my_fl_1(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *fl = data;
|
||||
elm_flip_go(fl, ELM_FLIP_ROTATE_Y_CENTER_AXIS);
|
||||
}
|
||||
|
||||
void
|
||||
my_fl_2(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *fl = data;
|
||||
elm_flip_go(fl, ELM_FLIP_ROTATE_X_CENTER_AXIS);
|
||||
}
|
||||
|
||||
void
|
||||
my_fl_3(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *fl = data;
|
||||
elm_flip_go(fl, ELM_FLIP_ROTATE_XZ_CENTER_AXIS);
|
||||
}
|
||||
|
||||
void
|
||||
my_fl_4(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *fl = data;
|
||||
elm_flip_go(fl, ELM_FLIP_ROTATE_YZ_CENTER_AXIS);
|
||||
}
|
||||
|
||||
void
|
||||
my_fl_5(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *fl = data;
|
||||
elm_flip_go(fl, ELM_FLIP_CUBE_LEFT);
|
||||
}
|
||||
|
||||
void
|
||||
my_fl_6(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *fl = data;
|
||||
elm_flip_go(fl, ELM_FLIP_CUBE_RIGHT);
|
||||
}
|
||||
|
||||
void
|
||||
my_fl_7(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *fl = data;
|
||||
elm_flip_go(fl, ELM_FLIP_CUBE_UP);
|
||||
}
|
||||
|
||||
void
|
||||
my_fl_8(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *fl = data;
|
||||
elm_flip_go(fl, ELM_FLIP_CUBE_DOWN);
|
||||
}
|
||||
|
||||
TEST_START(test_flip)
|
||||
{
|
||||
Evas_Object *bg, *bx, *bx2, *fl, *o, *bt, *ly;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
elm_win_focus_highlight_enabled_set(win, EINA_TRUE);
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
fl = elm_flip_add(win);
|
||||
evas_object_size_hint_align_set(fl, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(fl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, fl);
|
||||
|
||||
o = elm_bg_add(win);
|
||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), "sky_01.jpg");
|
||||
elm_bg_file_set(o, buf, NULL);
|
||||
elm_flip_content_front_set(fl, o);
|
||||
evas_object_show(o);
|
||||
|
||||
ly = elm_layout_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
|
||||
elm_layout_file_set(ly, buf, "layout");
|
||||
evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_flip_content_back_set(fl, ly);
|
||||
evas_object_show(ly);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 1");
|
||||
elm_object_part_content_set(ly, "element1", bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 2");
|
||||
elm_object_part_content_set(ly, "element2", bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 3");
|
||||
elm_object_part_content_set(ly, "element3", bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_show(fl);
|
||||
|
||||
bx2 = elm_box_add(win);
|
||||
elm_box_horizontal_set(bx2, EINA_TRUE);
|
||||
evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "1");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_fl_1, fl);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "2");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_fl_2, fl);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "3");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_fl_3, fl);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "4");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_fl_4, fl);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
elm_box_pack_end(bx, bx2);
|
||||
evas_object_show(bx2);
|
||||
|
||||
bx2 = elm_box_add(win);
|
||||
elm_box_horizontal_set(bx2, EINA_TRUE);
|
||||
evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "5");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_fl_5, fl);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "6");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_fl_6, fl);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "7");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_fl_7, fl);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "8");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_fl_8, fl);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
elm_box_pack_end(bx, bx2);
|
||||
evas_object_show(bx2);
|
||||
|
||||
evas_object_resize(win, 320, 480);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
TEST_START(test_flip2)
|
||||
{
|
||||
Evas_Object *bg, *bx, *bx2, *fl, *o, *bt, *tb, *li, *en;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), "sky_01.jpg");
|
||||
elm_bg_file_set(bg, buf, NULL);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
fl = elm_flip_add(win);
|
||||
evas_object_size_hint_align_set(fl, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(fl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, fl);
|
||||
|
||||
o = elm_box_add(win);
|
||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
|
||||
tb = elm_toolbar_add(win);
|
||||
elm_toolbar_homogeneous_set(tb, 0);
|
||||
evas_object_size_hint_weight_set(tb, 0.0, 0.0);
|
||||
evas_object_size_hint_align_set(tb, EVAS_HINT_FILL, 0.0);
|
||||
|
||||
elm_toolbar_item_append(tb, "arrow_left", "Hello", NULL, NULL);
|
||||
elm_toolbar_item_append(tb, "arrow_right", "Out", NULL, NULL);
|
||||
elm_toolbar_item_append(tb, "home", "There", NULL, NULL);
|
||||
elm_toolbar_item_append(tb, "refresh", "World", NULL, NULL);
|
||||
|
||||
elm_box_pack_end(o, tb);
|
||||
evas_object_show(tb);
|
||||
|
||||
li = elm_list_add(win);
|
||||
evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
|
||||
elm_list_item_append(li, "This is a list", NULL, NULL, NULL, NULL);
|
||||
elm_list_item_append(li, "Second item", NULL, NULL, NULL, NULL);
|
||||
elm_list_item_append(li, "3rd", NULL, NULL, NULL, NULL);
|
||||
elm_list_item_append(li, "Fourth", NULL, NULL, NULL, NULL);
|
||||
elm_list_item_append(li, "Number five is alive!", NULL, NULL, NULL, NULL);
|
||||
elm_list_item_append(li, "The quick brown fox jumps over the lazy dog", NULL, NULL, NULL, NULL);
|
||||
elm_list_item_append(li, "Booyah", NULL, NULL, NULL, NULL);
|
||||
elm_list_item_append(li, "And another item", NULL, NULL, NULL, NULL);
|
||||
elm_list_item_append(li, "More of them", NULL, NULL, NULL, NULL);
|
||||
elm_list_item_append(li, "Get with it", NULL, NULL, NULL, NULL);
|
||||
|
||||
elm_list_go(li);
|
||||
|
||||
elm_box_pack_end(o, li);
|
||||
evas_object_show(li);
|
||||
|
||||
elm_flip_content_front_set(fl, o);
|
||||
evas_object_show(o);
|
||||
|
||||
en = elm_entry_add(win);
|
||||
elm_entry_scrollable_set(en, EINA_TRUE);
|
||||
elm_entry_line_wrap_set(en, ELM_WRAP_NONE);
|
||||
snprintf(buf, sizeof(buf),
|
||||
"This is an entry widget in this window that<br>"
|
||||
"uses markup <b>like this</> for styling and<br>"
|
||||
"formatting <em>like this</>, as well as<br>"
|
||||
"<a href=X><link>links in the text</></a>, so enter text<br>"
|
||||
"in here to edit it. By the way, links are<br>"
|
||||
"called <a href=anc-02>Anchors</a> so you will need<br>"
|
||||
"to refer to them this way.<br>"
|
||||
"<br>"
|
||||
|
||||
"Also you can stick in items with (relsize + ascent): "
|
||||
"<item relsize=16x16 vsize=ascent href=emoticon/evil-laugh></item>"
|
||||
" (full) "
|
||||
"<item relsize=16x16 vsize=full href=emoticon/guilty-smile></item>"
|
||||
" (to the left)<br>"
|
||||
|
||||
"Also (size + ascent): "
|
||||
"<item size=16x16 vsize=ascent href=emoticon/haha></item>"
|
||||
" (full) "
|
||||
"<item size=16x16 vsize=full href=emoticon/happy-panting></item>"
|
||||
" (before this)<br>"
|
||||
|
||||
"And as well (absize + ascent): "
|
||||
"<item absize=64x64 vsize=ascent href=emoticon/knowing-grin></item>"
|
||||
" (full) "
|
||||
"<item absize=64x64 vsize=full href=emoticon/not-impressed></item>"
|
||||
" or even paths to image files on disk too like: "
|
||||
"<item absize=96x128 vsize=full href=file://%s/images/sky_01.jpg></item>"
|
||||
" ... end."
|
||||
, elm_app_data_dir_get()
|
||||
);
|
||||
elm_entry_entry_set(en, buf);
|
||||
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
|
||||
elm_flip_content_back_set(fl, en);
|
||||
evas_object_show(en);
|
||||
|
||||
evas_object_show(fl);
|
||||
|
||||
bx2 = elm_box_add(win);
|
||||
elm_box_horizontal_set(bx2, EINA_TRUE);
|
||||
evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "1");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_fl_1, fl);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "2");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_fl_2, fl);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "3");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_fl_3, fl);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "4");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_fl_4, fl);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "5");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_fl_5, fl);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "6");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_fl_6, fl);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
elm_box_pack_end(bx, bx2);
|
||||
evas_object_show(bx2);
|
||||
|
||||
evas_object_resize(win, 320, 480);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
TEST_START(test_flip3)
|
||||
{
|
||||
Evas_Object *bg, *bx, *bx2, *fl, *fl_f, *fl_b, *o, *bt, *fr;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
fl = elm_flip_add(win);
|
||||
evas_object_size_hint_align_set(fl, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(fl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, fl);
|
||||
evas_object_show(fl);
|
||||
|
||||
fr = elm_frame_add(win);
|
||||
elm_object_text_set(fr, "Front");
|
||||
evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_flip_content_front_set(fl, fr);
|
||||
evas_object_show(fr);
|
||||
|
||||
fl_f = elm_flip_add(win);
|
||||
evas_object_size_hint_align_set(fl_f, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(fl_f, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_object_content_set(fr, fl_f);
|
||||
evas_object_show(fl_f);
|
||||
|
||||
o = elm_bg_add(win);
|
||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), "sky_01.jpg");
|
||||
elm_bg_file_set(o, buf, NULL);
|
||||
elm_flip_content_front_set(fl_f, o);
|
||||
evas_object_show(o);
|
||||
|
||||
o = elm_bg_add(win);
|
||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), "sky_02.jpg");
|
||||
elm_bg_file_set(o, buf, NULL);
|
||||
elm_flip_content_back_set(fl_f, o);
|
||||
evas_object_show(o);
|
||||
|
||||
fr = elm_frame_add(win);
|
||||
elm_object_text_set(fr, "Back");
|
||||
evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_flip_content_back_set(fl, fr);
|
||||
evas_object_show(fr);
|
||||
|
||||
fl_b = elm_flip_add(win);
|
||||
evas_object_size_hint_align_set(fl_b, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(fl_b, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_object_content_set(fr, fl_b);
|
||||
evas_object_show(fl_b);
|
||||
|
||||
o = elm_bg_add(win);
|
||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), "sky_03.jpg");
|
||||
elm_bg_file_set(o, buf, NULL);
|
||||
elm_flip_content_front_set(fl_b, o);
|
||||
evas_object_show(o);
|
||||
|
||||
o = elm_bg_add(win);
|
||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), "sky_04.jpg");
|
||||
elm_bg_file_set(o, buf, NULL);
|
||||
elm_flip_content_back_set(fl_b, o);
|
||||
evas_object_show(o);
|
||||
|
||||
bx2 = elm_box_add(win);
|
||||
elm_box_horizontal_set(bx2, EINA_TRUE);
|
||||
evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Main Flip");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_fl_6, fl);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Front Flip");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_fl_6, fl_f);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Back Flip");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_fl_6, fl_b);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
elm_box_pack_end(bx, bx2);
|
||||
evas_object_show(bx2);
|
||||
|
||||
evas_object_resize(win, 320, 480);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
static void
|
||||
my_fl_go(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *win = data;
|
||||
Evas_Object *fl = evas_object_data_get(win, "fl");
|
||||
elm_flip_go(fl, ELM_FLIP_PAGE_LEFT);
|
||||
}
|
||||
|
||||
static void
|
||||
my_fl_ch(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *win = data;
|
||||
Evas_Object *fl = evas_object_data_get(win, "fl");
|
||||
Evas_Object *rdg = evas_object_data_get(win, "rdg");
|
||||
elm_flip_interaction_set(fl, elm_radio_value_get(rdg));
|
||||
}
|
||||
|
||||
TEST_START(test_flip4)
|
||||
{
|
||||
Evas_Object *bg, *bx, *fl, *im, *li, *bt, *rd, *rdg;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
fl = elm_flip_add(win);
|
||||
evas_object_size_hint_align_set(fl, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(fl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, fl);
|
||||
evas_object_data_set(win, "fl", fl);
|
||||
|
||||
elm_flip_interaction_set(fl, ELM_FLIP_INTERACTION_NONE);
|
||||
elm_flip_interacton_direction_enabled_set(fl, ELM_FLIP_DIRECTION_UP, EINA_TRUE);
|
||||
elm_flip_interacton_direction_enabled_set(fl, ELM_FLIP_DIRECTION_DOWN, EINA_TRUE);
|
||||
elm_flip_interacton_direction_enabled_set(fl, ELM_FLIP_DIRECTION_LEFT, EINA_TRUE);
|
||||
elm_flip_interacton_direction_enabled_set(fl, ELM_FLIP_DIRECTION_RIGHT, EINA_TRUE);
|
||||
elm_flip_interacton_direction_hitsize_set(fl, ELM_FLIP_DIRECTION_UP, 0.25);
|
||||
elm_flip_interacton_direction_hitsize_set(fl, ELM_FLIP_DIRECTION_DOWN, 0.25);
|
||||
elm_flip_interacton_direction_hitsize_set(fl, ELM_FLIP_DIRECTION_LEFT, 0.25);
|
||||
elm_flip_interacton_direction_hitsize_set(fl, ELM_FLIP_DIRECTION_RIGHT, 0.25);
|
||||
evas_object_show(fl);
|
||||
|
||||
im = evas_object_image_filled_add(evas_object_evas_get(win));
|
||||
evas_object_size_hint_weight_set(im, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
snprintf(buf, sizeof(buf), "%s/images/%s",
|
||||
elm_app_data_dir_get(), "twofish.jpg");
|
||||
evas_object_image_file_set(im, buf, NULL);
|
||||
elm_flip_content_front_set(fl, im);
|
||||
evas_object_show(im);
|
||||
|
||||
#if 0
|
||||
im = evas_object_image_filled_add(evas_object_evas_get(win));
|
||||
evas_object_size_hint_weight_set(im, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
snprintf(buf, sizeof(buf), "%s/images/%s",
|
||||
elm_app_data_dir_get(), "sky_04.jpg");
|
||||
evas_object_image_file_set(im, buf, NULL);
|
||||
elm_flip_content_back_set(fl, im);
|
||||
evas_object_show(im);
|
||||
#else
|
||||
li = elm_list_add(win);
|
||||
evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_list_item_append(li, "Item 0", NULL, NULL, NULL, NULL);
|
||||
elm_list_item_append(li, "Item 1", NULL, NULL, NULL, NULL);
|
||||
elm_list_item_append(li, "Item 2", NULL, NULL, NULL, NULL);
|
||||
elm_list_item_append(li, "Item 3 (Which is very long just for testing purposes)", NULL, NULL, NULL, NULL);
|
||||
elm_list_go(li);
|
||||
elm_flip_content_back_set(fl, li);
|
||||
evas_object_show(li);
|
||||
#endif
|
||||
|
||||
rd = elm_radio_add(win);
|
||||
evas_object_size_hint_align_set(rd, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_radio_state_value_set(rd, ELM_FLIP_INTERACTION_NONE);
|
||||
elm_object_text_set(rd, "None");
|
||||
elm_box_pack_end(bx, rd);
|
||||
evas_object_show(rd);
|
||||
evas_object_smart_callback_add(rd, "changed", my_fl_ch, win);
|
||||
rdg = rd;
|
||||
evas_object_data_set(win, "rdg", rdg);
|
||||
|
||||
rd = elm_radio_add(win);
|
||||
evas_object_size_hint_align_set(rd, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_radio_state_value_set(rd, ELM_FLIP_INTERACTION_ROTATE);
|
||||
elm_object_text_set(rd, "Rotate");
|
||||
elm_radio_group_add(rd, rdg);
|
||||
elm_box_pack_end(bx, rd);
|
||||
evas_object_show(rd);
|
||||
evas_object_smart_callback_add(rd, "changed", my_fl_ch, win);
|
||||
|
||||
rd = elm_radio_add(win);
|
||||
evas_object_size_hint_align_set(rd, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_radio_state_value_set(rd, ELM_FLIP_INTERACTION_CUBE);
|
||||
elm_object_text_set(rd, "Cube");
|
||||
elm_radio_group_add(rd, rdg);
|
||||
elm_box_pack_end(bx, rd);
|
||||
evas_object_show(rd);
|
||||
evas_object_smart_callback_add(rd, "changed", my_fl_ch, win);
|
||||
|
||||
rd = elm_radio_add(win);
|
||||
evas_object_size_hint_align_set(rd, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_radio_state_value_set(rd, ELM_FLIP_INTERACTION_PAGE);
|
||||
elm_object_text_set(rd, "Page");
|
||||
elm_radio_group_add(rd, rdg);
|
||||
elm_box_pack_end(bx, rd);
|
||||
evas_object_show(rd);
|
||||
evas_object_smart_callback_add(rd, "changed", my_fl_ch, win);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Go");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_fl_go, win);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_resize(win, 320, 480);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,914 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
typedef struct _State State;
|
||||
typedef struct _Slice Slice;
|
||||
|
||||
typedef struct _Vertex2 Vertex2;
|
||||
typedef struct _Vertex3 Vertex3;
|
||||
|
||||
struct _State
|
||||
{
|
||||
Evas_Object *front, *back;
|
||||
Evas_Coord down_x, down_y, x, y;
|
||||
Eina_Bool down : 1;
|
||||
Eina_Bool backflip : 1;
|
||||
|
||||
Ecore_Animator *anim;
|
||||
Ecore_Job *job;
|
||||
Evas_Coord ox, oy, w, h;
|
||||
int slices_w, slices_h;
|
||||
Slice **slices, **slices2;
|
||||
int dir; // 0 == left, 1 == right, 2 == up, 3 == down
|
||||
int finish;
|
||||
};
|
||||
|
||||
struct _Slice
|
||||
{
|
||||
Evas_Object *obj;
|
||||
// (0)---(1)
|
||||
// | |
|
||||
// | |
|
||||
// (3)---(2)
|
||||
double u[4], v[4], x[4], y[4], z[4];
|
||||
};
|
||||
|
||||
struct _Vertex2
|
||||
{
|
||||
double x, y;
|
||||
};
|
||||
|
||||
struct _Vertex3
|
||||
{
|
||||
double x, y, z;
|
||||
};
|
||||
|
||||
static State state =
|
||||
{
|
||||
NULL, NULL,
|
||||
0, 0, 0, 0,
|
||||
0,
|
||||
0,
|
||||
|
||||
NULL,
|
||||
NULL,
|
||||
0, 0, 0, 0,
|
||||
0, 0,
|
||||
NULL, NULL,
|
||||
-1,
|
||||
0
|
||||
};
|
||||
|
||||
static Slice *
|
||||
_slice_new(State *st __UNUSED__, Evas_Object *obj)
|
||||
{
|
||||
Slice *sl;
|
||||
|
||||
sl = calloc(1, sizeof(Slice));
|
||||
if (!sl) return NULL;
|
||||
sl->obj = evas_object_image_add(evas_object_evas_get(obj));
|
||||
evas_object_image_smooth_scale_set(sl->obj, 0);
|
||||
evas_object_pass_events_set(sl->obj, 1);
|
||||
evas_object_image_source_set(sl->obj, obj);
|
||||
return sl;
|
||||
}
|
||||
|
||||
static void
|
||||
_slice_free(Slice *sl)
|
||||
{
|
||||
evas_object_del(sl->obj);
|
||||
free(sl);
|
||||
}
|
||||
|
||||
static void
|
||||
_slice_apply(State *st, Slice *sl,
|
||||
Evas_Coord x __UNUSED__, Evas_Coord y __UNUSED__, Evas_Coord w, Evas_Coord h __UNUSED__,
|
||||
Evas_Coord ox, Evas_Coord oy, Evas_Coord ow, Evas_Coord oh)
|
||||
{
|
||||
Evas_Map *m;
|
||||
int i;
|
||||
|
||||
m = evas_map_new(4);
|
||||
if (!m) return;
|
||||
evas_map_smooth_set(m, 0);
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
evas_map_point_color_set(m, i, 255, 255, 255, 255);
|
||||
if (st->dir == 0)
|
||||
{
|
||||
int p[4] = { 0, 1, 2, 3 };
|
||||
evas_map_point_coord_set(m, i, ox + sl->x[p[i]], oy + sl->y[p[i]], sl->z[p[i]]);
|
||||
evas_map_point_image_uv_set(m, i, sl->u[p[i]] , sl->v[p[i]]);
|
||||
}
|
||||
else if (st->dir == 1)
|
||||
{
|
||||
int p[4] = { 1, 0, 3, 2 };
|
||||
evas_map_point_coord_set(m, i, ox + (w - sl->x[p[i]]), oy + sl->y[p[i]], sl->z[p[i]]);
|
||||
evas_map_point_image_uv_set(m, i, ow - sl->u[p[i]] , sl->v[p[i]]);
|
||||
}
|
||||
else if (st->dir == 2)
|
||||
{
|
||||
int p[4] = { 1, 0, 3, 2 };
|
||||
evas_map_point_coord_set(m, i, ox + sl->y[p[i]], oy + sl->x[p[i]], sl->z[p[i]]);
|
||||
evas_map_point_image_uv_set(m, i, sl->v[p[i]] , sl->u[p[i]]);
|
||||
}
|
||||
else if (st->dir == 3)
|
||||
{
|
||||
int p[4] = { 0, 1, 2, 3 };
|
||||
evas_map_point_coord_set(m, i, ox + sl->y[p[i]], oy + (w - sl->x[p[i]]), sl->z[p[i]]);
|
||||
evas_map_point_image_uv_set(m, i, sl->v[p[i]] , oh - sl->u[p[i]]);
|
||||
}
|
||||
}
|
||||
evas_object_map_enable_set(sl->obj, EINA_TRUE);
|
||||
evas_object_image_fill_set(sl->obj, 0, 0, ow, oh);
|
||||
evas_object_map_set(sl->obj, m);
|
||||
evas_map_free(m);
|
||||
}
|
||||
|
||||
static void
|
||||
_slice_3d(State *st __UNUSED__, Slice *sl, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h)
|
||||
{
|
||||
Evas_Map *m = (Evas_Map *)evas_object_map_get(sl->obj);
|
||||
int i;
|
||||
|
||||
if (!m) return;
|
||||
// vanishing point is center of page, and focal dist is 1024
|
||||
evas_map_util_3d_perspective(m, x + (w / 2), y + (h / 2), 0, 1024);
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
Evas_Coord x, y, z;
|
||||
evas_map_point_coord_get(m, i, &x, &y, &z);
|
||||
evas_map_point_coord_set(m, i, x, y, 0);
|
||||
}
|
||||
if (evas_map_util_clockwise_get(m)) evas_object_show(sl->obj);
|
||||
else evas_object_hide(sl->obj);
|
||||
evas_object_map_set(sl->obj, m);
|
||||
}
|
||||
|
||||
static void
|
||||
_slice_light(State *st __UNUSED__, Slice *sl, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h)
|
||||
{
|
||||
Evas_Map *m = (Evas_Map *)evas_object_map_get(sl->obj);
|
||||
int i;
|
||||
|
||||
if (!m) return;
|
||||
evas_map_util_3d_lighting(m,
|
||||
// light position
|
||||
// (centered over page 10 * h toward camera)
|
||||
x + (w / 2) , y + (h / 2) , -10000,
|
||||
255, 255, 255, // light color
|
||||
0 , 0 , 0); // ambient minimum
|
||||
// multiply brightness by 1.2 to make lightish bits all white so we dont
|
||||
// add shading where we could otherwise be pure white
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
int r, g, b, a;
|
||||
|
||||
evas_map_point_color_get(m, i, &r, &g, &b, &a);
|
||||
r = (double)r * 1.2; if (r > 255) r = 255;
|
||||
g = (double)g * 1.2; if (g > 255) g = 255;
|
||||
b = (double)b * 1.2; if (b > 255) b = 255;
|
||||
evas_map_point_color_set(m, i, r, g, b, a);
|
||||
}
|
||||
evas_object_map_set(sl->obj, m);
|
||||
}
|
||||
|
||||
static void
|
||||
_slice_xyz(State *st __UNUSED__, Slice *sl,
|
||||
double x1, double y1, double z1,
|
||||
double x2, double y2, double z2,
|
||||
double x3, double y3, double z3,
|
||||
double x4, double y4, double z4)
|
||||
{
|
||||
sl->x[0] = x1; sl->y[0] = y1; sl->z[0] = z1;
|
||||
sl->x[1] = x2; sl->y[1] = y2; sl->z[1] = z2;
|
||||
sl->x[2] = x3; sl->y[2] = y3; sl->z[2] = z3;
|
||||
sl->x[3] = x4; sl->y[3] = y4; sl->z[3] = z4;
|
||||
}
|
||||
|
||||
static void
|
||||
_slice_uv(State *st __UNUSED__, Slice *sl,
|
||||
double u1, double v1,
|
||||
double u2, double v2,
|
||||
double u3, double v3,
|
||||
double u4, double v4)
|
||||
{
|
||||
sl->u[0] = u1; sl->v[0] = v1;
|
||||
sl->u[1] = u2; sl->v[1] = v2;
|
||||
sl->u[2] = u3; sl->v[2] = v3;
|
||||
sl->u[3] = u4; sl->v[3] = v4;
|
||||
}
|
||||
|
||||
static void
|
||||
_deform_point(Vertex2 *vi, Vertex3 *vo, double rho, double theta, double A)
|
||||
{
|
||||
// ^Y
|
||||
// |
|
||||
// | X
|
||||
// +---->
|
||||
// theta == cone angle (0 -> PI/2)
|
||||
// A == distance of cone apex from origin
|
||||
// rho == angle of cone from vertical axis (...-PI/2 to PI/2...)
|
||||
Vertex3 v1;
|
||||
double d, r, b;
|
||||
|
||||
d = sqrt((vi->x * vi->x) + pow(vi->y - A, 2));
|
||||
r = d * sin(theta);
|
||||
b = asin(vi->x / d) / sin(theta);
|
||||
|
||||
v1.x = r * sin(b);
|
||||
v1.y = d + A - (r * (1 - cos(b)) * sin(theta));
|
||||
v1.z = r * (1 - cos(b)) * cos(theta);
|
||||
|
||||
vo->x = (v1.x * cos(rho)) - (v1.z * sin(rho));
|
||||
vo->y = v1.y;
|
||||
vo->z = (v1.x * sin(rho)) + (v1.z * cos(rho));
|
||||
}
|
||||
|
||||
static void
|
||||
_interp_point(Vertex3 *vi1, Vertex3 *vi2, Vertex3 *vo, double v)
|
||||
{
|
||||
vo->x = (v * vi2->x) + ((1.0 - v) * vi1->x);
|
||||
vo->y = (v * vi2->y) + ((1.0 - v) * vi1->y);
|
||||
vo->z = (v * vi2->z) + ((1.0 - v) * vi1->z);
|
||||
}
|
||||
|
||||
static void
|
||||
_state_slices_clear(State *st)
|
||||
{
|
||||
int i, j, num;
|
||||
|
||||
if (st->slices)
|
||||
{
|
||||
num = 0;
|
||||
for (j = 0; j < st->slices_h; j++)
|
||||
{
|
||||
for (i = 0; i < st->slices_w; i++)
|
||||
{
|
||||
if (st->slices[num]) _slice_free(st->slices[num]);
|
||||
if (st->slices2[num]) _slice_free(st->slices2[num]);
|
||||
num++;
|
||||
}
|
||||
}
|
||||
free(st->slices);
|
||||
free(st->slices2);
|
||||
st->slices = NULL;
|
||||
st->slices2 = NULL;
|
||||
}
|
||||
st->slices_w = 0;
|
||||
st->slices_h = 0;
|
||||
}
|
||||
|
||||
static int
|
||||
_slice_obj_color_sum(Slice *s, int p, int *r, int *g, int *b, int *a)
|
||||
{
|
||||
Evas_Map *m;
|
||||
int rr = 0, gg = 0, bb = 0, aa = 0;
|
||||
|
||||
if (!s) return 0;
|
||||
m = (Evas_Map *)evas_object_map_get(s->obj);
|
||||
if (!m) return 0;
|
||||
evas_map_point_color_get(m, p, &rr, &gg, &bb, &aa);
|
||||
*r += rr; *g += gg; *b += bb; *a += aa;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void
|
||||
_slice_obj_color_set(Slice *s, int p, int r, int g, int b, int a)
|
||||
{
|
||||
Evas_Map *m;
|
||||
|
||||
if (!s) return;
|
||||
m = (Evas_Map *)evas_object_map_get(s->obj);
|
||||
if (!m) return;
|
||||
evas_map_point_color_set(m, p, r, g, b, a);
|
||||
evas_object_map_set(s->obj, m);
|
||||
}
|
||||
|
||||
static void
|
||||
_slice_obj_vert_color_merge(Slice *s1, int p1, Slice *s2, int p2,
|
||||
Slice *s3, int p3, Slice *s4, int p4)
|
||||
{
|
||||
int r = 0, g = 0, b = 0, a = 0, n = 0;
|
||||
|
||||
n += _slice_obj_color_sum(s1, p1, &r, &g, &b, &a);
|
||||
n += _slice_obj_color_sum(s2, p2, &r, &g, &b, &a);
|
||||
n += _slice_obj_color_sum(s3, p3, &r, &g, &b, &a);
|
||||
n += _slice_obj_color_sum(s4, p4, &r, &g, &b, &a);
|
||||
|
||||
if (n < 1) return;
|
||||
r /= n; g /= n; b /= n; a /= n;
|
||||
|
||||
_slice_obj_color_set(s1, p1, r, g, b, a);
|
||||
_slice_obj_color_set(s2, p2, r, g, b, a);
|
||||
_slice_obj_color_set(s3, p3, r, g, b, a);
|
||||
_slice_obj_color_set(s4, p4, r, g, b, a);
|
||||
}
|
||||
|
||||
static int
|
||||
_state_update(State *st)
|
||||
{
|
||||
Evas_Coord x1, y1, x2, y2, mx, my, dst, dx, dy;
|
||||
Evas_Coord x, y, w, h, ox, oy, ow, oh;
|
||||
int i, j, num, nn, jump, num2;
|
||||
Slice *sl;
|
||||
double b, minv = 0.0, minva, mgrad;
|
||||
int gx, gy, gszw, gszh, gw, gh, col, row, nw, nh;
|
||||
double rho, A, theta, perc, percm, n, rhol, Al, thetal;
|
||||
Vertex3 *tvo, *tvol;
|
||||
|
||||
st->backflip = 0;
|
||||
|
||||
evas_object_geometry_get(st->front, &x, &y, &w, &h);
|
||||
ox = x; oy = y; ow = w; oh = h;
|
||||
x1 = st->down_x;
|
||||
y1 = st->down_y;
|
||||
x2 = st->x;
|
||||
y2 = st->y;
|
||||
|
||||
dx = x2 - x1;
|
||||
dy = y2 - y1;
|
||||
dst = sqrt((dx * dx) + (dy * dy));
|
||||
if (st->dir == -1)
|
||||
{
|
||||
if (dst < 20) // MAGIC: 20 == drag hysterisis
|
||||
return 0;
|
||||
}
|
||||
if (st->dir == -1)
|
||||
{
|
||||
if ((x1 > (w / 2)) && (dx < 0) && (abs(dx) > abs(dy))) st->dir = 0; // left
|
||||
else if ((x1 < (w / 2)) && (dx >= 0) && (abs(dx) > abs(dy))) st->dir = 1; // right
|
||||
else if ((y1 > (h / 2)) && (dy < 0) && (abs(dy) >= abs(dx))) st->dir = 2; // up
|
||||
else if ((y1 < (h / 2)) && (dy >= 0) && (abs(dy) >= abs(dx))) st->dir = 3; // down
|
||||
if (st->dir == -1) return 0;
|
||||
}
|
||||
if (st->dir == 0)
|
||||
{
|
||||
// no nothing. left drag is standard
|
||||
}
|
||||
else if (st->dir == 1)
|
||||
{
|
||||
x1 = (w - 1) - x1;
|
||||
x2 = (w - 1) - x2;
|
||||
}
|
||||
else if (st->dir == 2)
|
||||
{
|
||||
Evas_Coord tmp;
|
||||
|
||||
tmp = x1; x1 = y1; y1 = tmp;
|
||||
tmp = x2; x2 = y2; y2 = tmp;
|
||||
tmp = w; w = h; h = tmp;
|
||||
}
|
||||
else if (st->dir == 3)
|
||||
{
|
||||
Evas_Coord tmp;
|
||||
|
||||
tmp = x1; x1 = y1; y1 = tmp;
|
||||
tmp = x2; x2 = y2; y2 = tmp;
|
||||
tmp = w; w = h; h = tmp;
|
||||
x1 = (w - 1) - x1;
|
||||
x2 = (w - 1) - x2;
|
||||
}
|
||||
|
||||
if (x2 >= x1) x2 = x1 - 1;
|
||||
mx = (x1 + x2) / 2;
|
||||
my = (y1 + y2) / 2;
|
||||
|
||||
if (mx < 0) mx = 0;
|
||||
else if (mx >= w) mx = w - 1;
|
||||
if (my < 0) my = 0;
|
||||
else if (my >= h) my = h - 1;
|
||||
|
||||
mgrad = (double)(y1 - y2) / (double)(x1 - x2);
|
||||
|
||||
if (mx < 1) mx = 1; // quick hack to keep curl line visible
|
||||
|
||||
if (mgrad == 0.0) // special horizontal case
|
||||
mgrad = 0.001; // quick dirty hack for now
|
||||
// else
|
||||
{
|
||||
minv = 1.0 / mgrad;
|
||||
// y = (m * x) + b
|
||||
b = my + (minv * mx);
|
||||
}
|
||||
if ((b >= -5) && (b <= (h + 5)))
|
||||
{
|
||||
if (minv > 0.0) // clamp to h
|
||||
{
|
||||
minv = (double)(h + 5 - my) / (double)(mx);
|
||||
b = my + (minv * mx);
|
||||
}
|
||||
else // clamp to 0
|
||||
{
|
||||
minv = (double)(-5 - my) / (double)(mx);
|
||||
b = my + (minv * mx);
|
||||
}
|
||||
}
|
||||
|
||||
perc = (double)x2 / (double)x1;
|
||||
percm = (double)mx / (double)x1;
|
||||
if (perc < 0.0) perc = 0.0;
|
||||
else if (perc > 1.0) perc = 1.0;
|
||||
if (percm < 0.0) percm = 0.0;
|
||||
else if (percm > 1.0) percm = 1.0;
|
||||
|
||||
minva = atan(minv) / (M_PI / 2);
|
||||
if (minva < 0.0) minva = -minva;
|
||||
|
||||
// A = apex of cone
|
||||
if (b <= 0) A = b;
|
||||
else A = h - b;
|
||||
if (A < -(h * 20)) A = -h * 20;
|
||||
//--//
|
||||
Al = -5;
|
||||
|
||||
// rho = is how much the page is turned
|
||||
n = 1.0 - perc;
|
||||
n = 1.0 - cos(n * M_PI / 2.0);
|
||||
n = n * n;
|
||||
rho = -(n * M_PI);
|
||||
//--//
|
||||
rhol = -(n * M_PI);
|
||||
|
||||
// theta == curliness (how much page culrs in on itself
|
||||
n = sin((1.0 - perc) * M_PI);
|
||||
n = n * 1.2;
|
||||
theta = 7.86 + n;
|
||||
//--//
|
||||
n = sin((1.0 - perc) * M_PI);
|
||||
n = 1.0 - n;
|
||||
n = n * n;
|
||||
n = 1.0 - n;
|
||||
thetal = 7.86 + n;
|
||||
|
||||
nw = 16;
|
||||
nh = 16;
|
||||
if (nw < 1) nw = 1;
|
||||
if (nh < 1) nh = 1;
|
||||
gszw = w / nw;
|
||||
gszh = h / nh;
|
||||
if (gszw < 4) gszw = 4;
|
||||
if (gszh < 4) gszh = 4;
|
||||
|
||||
nw = (w + gszw - 1) / gszw;
|
||||
nh = (h + gszh - 1) / gszh;
|
||||
if ((st->slices_w != nw) || (st->slices_h != nh)) _state_slices_clear(st);
|
||||
st->slices_w = nw;
|
||||
st->slices_h = nh;
|
||||
if (!st->slices)
|
||||
{
|
||||
st->slices = calloc(st->slices_w * st->slices_h, sizeof(Slice *));
|
||||
if (!st->slices) return 0;
|
||||
st->slices2 = calloc(st->slices_w * st->slices_h, sizeof(Slice *));
|
||||
if (!st->slices2)
|
||||
{
|
||||
free(st->slices);
|
||||
st->slices = NULL;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
num = (st->slices_w + 1) * (st->slices_h + 1);
|
||||
|
||||
tvo = alloca(sizeof(Vertex3) * num);
|
||||
tvol = alloca(sizeof(Vertex3) * (st->slices_w + 1));
|
||||
|
||||
for (col = 0, gx = 0; gx <= (w + gszw - 1); gx += gszw, col++)
|
||||
{
|
||||
Vertex2 vil;
|
||||
|
||||
vil.x = gx;
|
||||
vil.y = h - gx;
|
||||
_deform_point(&vil, &(tvol[col]), rhol, thetal, Al);
|
||||
}
|
||||
|
||||
n = minva * sin(perc * M_PI);
|
||||
n = n * n;
|
||||
|
||||
num = 0;
|
||||
for (col = 0, gx = 0; gx <= (w + gszw - 1); gx += gszw, col++)
|
||||
{
|
||||
for (gy = 0; gy <= (h + gszh - 1); gy += gszh)
|
||||
{
|
||||
Vertex2 vi;
|
||||
Vertex3 vo, tvo1;
|
||||
|
||||
if (gx > w) vi.x = w;
|
||||
else vi.x = gx;
|
||||
if (gy > h) vi.y = h;
|
||||
else vi.y = gy;
|
||||
_deform_point(&vi, &vo, rho, theta, A);
|
||||
tvo1 = tvol[col];
|
||||
if (gy > h) tvo1.y = h;
|
||||
else tvo1.y = gy;
|
||||
_interp_point(&vo, &tvo1, &(tvo[num]), n);
|
||||
num++;
|
||||
}
|
||||
}
|
||||
|
||||
jump = st->slices_h + 1;
|
||||
for (col = 0, gx = 0; gx < w; gx += gszw, col++)
|
||||
{
|
||||
num = st->slices_h * col;
|
||||
num2 = jump * col;
|
||||
|
||||
gw = gszw;
|
||||
if ((gx + gw) > w) gw = w - gx;
|
||||
|
||||
for (row = 0, gy = 0; gy < h; gy += gszh, row++)
|
||||
{
|
||||
Vertex3 vo[4];
|
||||
|
||||
if (b > 0) nn = num + st->slices_h - row - 1;
|
||||
else nn = num + row;
|
||||
|
||||
gh = gszh;
|
||||
if ((gy + gh) > h) gh = h - gy;
|
||||
|
||||
vo[0] = tvo[num2 + row];
|
||||
vo[1] = tvo[num2 + row + jump];
|
||||
vo[2] = tvo[num2 + row + jump + 1];
|
||||
vo[3] = tvo[num2 + row + 1];
|
||||
#define SWP(a, b) do {typeof(a) vt; vt = (a); (a) = (b); (b) = vt;} while (0)
|
||||
if (b > 0)
|
||||
{
|
||||
SWP(vo[0], vo[3]);
|
||||
SWP(vo[1], vo[2]);
|
||||
vo[0].y = h - vo[0].y;
|
||||
vo[1].y = h - vo[1].y;
|
||||
vo[2].y = h - vo[2].y;
|
||||
vo[3].y = h - vo[3].y;
|
||||
}
|
||||
|
||||
// FRONT
|
||||
sl = st->slices[nn];
|
||||
if (!sl)
|
||||
{
|
||||
sl = _slice_new(st, st->front);
|
||||
st->slices[nn] = sl;
|
||||
}
|
||||
_slice_xyz(st, sl,
|
||||
vo[0].x, vo[0].y, vo[0].z,
|
||||
vo[1].x, vo[1].y, vo[1].z,
|
||||
vo[2].x, vo[2].y, vo[2].z,
|
||||
vo[3].x, vo[3].y, vo[3].z);
|
||||
if (b <= 0)
|
||||
_slice_uv(st, sl,
|
||||
gx, gy, gx + gw, gy,
|
||||
gx + gw, gy + gh, gx, gy + gh);
|
||||
else
|
||||
_slice_uv(st, sl,
|
||||
gx, h - (gy + gh), gx + gw, h - (gy + gh),
|
||||
gx + gw, h - gy, gx, h - gy);
|
||||
|
||||
// BACK
|
||||
sl = st->slices2[nn];
|
||||
if (!sl)
|
||||
{
|
||||
sl = _slice_new(st, st->back);
|
||||
st->slices2[nn] = sl;
|
||||
}
|
||||
|
||||
_slice_xyz(st, sl,
|
||||
vo[1].x, vo[1].y, vo[1].z,
|
||||
vo[0].x, vo[0].y, vo[0].z,
|
||||
vo[3].x, vo[3].y, vo[3].z,
|
||||
vo[2].x, vo[2].y, vo[2].z);
|
||||
if (st->backflip)
|
||||
{
|
||||
if (b <= 0)
|
||||
_slice_uv(st, sl,
|
||||
gx + gw, gy, gx, gy,
|
||||
gx, gy + gh, gx + gw, gy + gh);
|
||||
else
|
||||
_slice_uv(st, sl,
|
||||
gx + gw, h - (gy + gh), gx, h - (gy + gh),
|
||||
gx, h - gy, gx + gw, h - gy);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (b <= 0)
|
||||
_slice_uv(st, sl,
|
||||
w - (gx + gw), gy, w - (gx), gy,
|
||||
w - (gx), gy + gh, w - (gx + gw), gy + gh);
|
||||
else
|
||||
_slice_uv(st, sl,
|
||||
w - (gx + gw), h - (gy + gh), w - (gx), h - (gy + gh),
|
||||
w - (gx), h - gy, w - (gx + gw), h - gy);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
num = 0;
|
||||
for (j = 0; j < st->slices_h; j++)
|
||||
{
|
||||
for (i = 0; i < st->slices_w; i++)
|
||||
{
|
||||
_slice_apply(st, st->slices[num], x, y, w, h, ox, oy, ow, oh);
|
||||
_slice_apply(st, st->slices2[num], x, y, w, h, ox, oy, ow, oh);
|
||||
_slice_light(st, st->slices[num], ox, oy, ow, oh);
|
||||
_slice_light(st, st->slices2[num], ox, oy, ow, oh);
|
||||
num++;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i <= st->slices_w; i++)
|
||||
{
|
||||
num = i * st->slices_h;
|
||||
for (j = 0; j <= st->slices_h; j++)
|
||||
{
|
||||
Slice *s[4];
|
||||
|
||||
s[0] = s[1] = s[2] = s[3] = NULL;
|
||||
if ((i > 0) && (j > 0))
|
||||
s[0] = st->slices[num - 1 - st->slices_h];
|
||||
if ((i < st->slices_w) && (j > 0))
|
||||
s[1] = st->slices[num - 1];
|
||||
if ((i > 0) && (j < st->slices_h))
|
||||
s[2] = st->slices[num - st->slices_h];
|
||||
if ((i < st->slices_w) && (j < st->slices_h))
|
||||
s[3] = st->slices[num];
|
||||
if (st->dir == 0)
|
||||
_slice_obj_vert_color_merge(s[0], 2, s[1], 3,
|
||||
s[2], 1, s[3], 0);
|
||||
else if (st->dir == 1)
|
||||
_slice_obj_vert_color_merge(s[0], 3, s[1], 2,
|
||||
s[2], 0, s[3], 1);
|
||||
else if (st->dir == 2)
|
||||
_slice_obj_vert_color_merge(s[0], 3, s[1], 2,
|
||||
s[2], 0, s[3], 1);
|
||||
else if (st->dir == 3)
|
||||
_slice_obj_vert_color_merge(s[0], 2, s[1], 3,
|
||||
s[2], 1, s[3], 0);
|
||||
s[0] = s[1] = s[2] = s[3] = NULL;
|
||||
if ((i > 0) && (j > 0))
|
||||
s[0] = st->slices2[num - 1 - st->slices_h];
|
||||
if ((i < st->slices_w) && (j > 0))
|
||||
s[1] = st->slices2[num - 1];
|
||||
if ((i > 0) && (j < st->slices_h))
|
||||
s[2] = st->slices2[num - st->slices_h];
|
||||
if ((i < st->slices_w) && (j < st->slices_h))
|
||||
s[3] = st->slices2[num];
|
||||
if (st->dir == 0)
|
||||
_slice_obj_vert_color_merge(s[0], 3, s[1], 2,
|
||||
s[2], 0, s[3], 1);
|
||||
else if (st->dir == 1)
|
||||
_slice_obj_vert_color_merge(s[0], 2, s[1], 3,
|
||||
s[2], 1, s[3], 0);
|
||||
else if (st->dir == 2)
|
||||
_slice_obj_vert_color_merge(s[0], 2, s[1], 3,
|
||||
s[2], 1, s[3], 0);
|
||||
else if (st->dir == 3)
|
||||
_slice_obj_vert_color_merge(s[0], 3, s[1], 2,
|
||||
s[2], 0, s[3], 1);
|
||||
num++;
|
||||
}
|
||||
}
|
||||
|
||||
num = 0;
|
||||
for (i = 0; i < st->slices_w; i++)
|
||||
{
|
||||
for (j = 0; j < st->slices_h; j++)
|
||||
{
|
||||
_slice_3d(st, st->slices[num], ox, oy, ow, oh);
|
||||
_slice_3d(st, st->slices2[num], ox, oy, ow, oh);
|
||||
num++;
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void
|
||||
_state_end(State *st)
|
||||
{
|
||||
_state_slices_clear(st);
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
_state_anim(void *data, double pos)
|
||||
{
|
||||
State *st = data;
|
||||
double p;
|
||||
|
||||
p = ecore_animator_pos_map(pos, ECORE_POS_MAP_ACCELERATE, 0.0, 0.0);
|
||||
if (st->finish)
|
||||
{
|
||||
if (st->dir == 0)
|
||||
st->x = st->ox * (1.0 - p);
|
||||
else if (st->dir == 1)
|
||||
st->x = st->ox + ((st->w - st->ox) * p);
|
||||
else if (st->dir == 2)
|
||||
st->y = st->oy * (1.0 - p);
|
||||
else if (st->dir == 3)
|
||||
st->y = st->oy + ((st->h - st->oy) * p);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (st->dir == 0)
|
||||
st->x = st->ox + ((st->w - st->ox) * p);
|
||||
else if (st->dir == 1)
|
||||
st->x = st->ox * (1.0 - p);
|
||||
else if (st->dir == 2)
|
||||
st->y = st->oy + ((st->h - st->oy) * p);
|
||||
else if (st->dir == 3)
|
||||
st->y = st->oy * (1.0 - p);
|
||||
}
|
||||
_state_update(st);
|
||||
if (pos < 1.0) return EINA_TRUE;
|
||||
evas_object_show(st->front);
|
||||
evas_object_show(st->back);
|
||||
_state_end(st);
|
||||
st->anim = NULL;
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
_update_curl_job(void *data)
|
||||
{
|
||||
State *st = data;
|
||||
st->job = NULL;
|
||||
if (_state_update(st))
|
||||
{
|
||||
evas_object_hide(st->front);
|
||||
evas_object_hide(st->back);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
im_down_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
||||
{
|
||||
State *st = &state;
|
||||
Evas_Event_Mouse_Down *ev = event_info;
|
||||
Evas_Coord x, y, w, h;
|
||||
|
||||
if (ev->button != 1) return;
|
||||
st->front = data;
|
||||
st->back = evas_object_data_get(data, "im2");
|
||||
st->backflip = 1;
|
||||
st->down = 1;
|
||||
evas_object_geometry_get(st->front, &x, &y, &w, &h);
|
||||
st->x = ev->canvas.x - x;
|
||||
st->y = ev->canvas.y - y;
|
||||
st->w = w;
|
||||
st->h = h;
|
||||
st->down_x = st->x;
|
||||
st->down_y = st->y;
|
||||
st->dir = -1;
|
||||
if (_state_update(st))
|
||||
{
|
||||
evas_object_hide(st->front);
|
||||
evas_object_hide(st->back);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
im_up_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
||||
{
|
||||
State *st = &state;
|
||||
Evas_Event_Mouse_Up *ev = event_info;
|
||||
Evas_Coord x, y, w, h;
|
||||
double tm = 0.5;
|
||||
|
||||
if (ev->button != 1) return;
|
||||
st->down = 0;
|
||||
evas_object_geometry_get(st->front, &x, &y, &w, &h);
|
||||
st->x = ev->canvas.x - x;
|
||||
st->y = ev->canvas.y - y;
|
||||
st->w = w;
|
||||
st->h = h;
|
||||
st->ox = st->x;
|
||||
st->oy = st->y;
|
||||
if (st->job)
|
||||
{
|
||||
ecore_job_del(st->job);
|
||||
st->job = NULL;
|
||||
}
|
||||
if (st->anim) ecore_animator_del(st->anim);
|
||||
st->finish = 0;
|
||||
if (st->dir == 0)
|
||||
{
|
||||
tm = (double)st->x / (double)st->w;
|
||||
if (st->x < (st->w / 2)) st->finish = 1;
|
||||
}
|
||||
else if (st->dir == 1)
|
||||
{
|
||||
if (st->x > (st->w / 2)) st->finish = 1;
|
||||
tm = 1.0 - ((double)st->x / (double)st->w);
|
||||
}
|
||||
else if (st->dir == 2)
|
||||
{
|
||||
if (st->y < (st->h / 2)) st->finish = 1;
|
||||
tm = (double)st->y / (double)st->h;
|
||||
}
|
||||
else if (st->dir == 3)
|
||||
{
|
||||
if (st->y > (st->h / 2)) st->finish = 1;
|
||||
tm = 1.0 - ((double)st->y / (double)st->h);
|
||||
}
|
||||
if (tm < 0.01) tm = 0.01;
|
||||
else if (tm > 0.99) tm = 0.99;
|
||||
if (!st->finish) tm = 1.0 - tm;
|
||||
tm *= 0.5;
|
||||
st->anim = ecore_animator_timeline_add(tm, _state_anim, st);
|
||||
_state_anim(st, 0.0);
|
||||
}
|
||||
|
||||
static void
|
||||
im_move_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
||||
{
|
||||
State *st = &state;
|
||||
Evas_Event_Mouse_Move *ev = event_info;
|
||||
Evas_Coord x, y, w, h;
|
||||
|
||||
if (!st->down) return;
|
||||
evas_object_geometry_get(st->front, &x, &y, &w, &h);
|
||||
st->x = ev->cur.canvas.x - x;
|
||||
st->y = ev->cur.canvas.y - y;
|
||||
st->w = w;
|
||||
st->h = h;
|
||||
if (st->job) ecore_job_del(st->job);
|
||||
st->job = ecore_job_add(_update_curl_job, st);
|
||||
}
|
||||
|
||||
TEST_START(test_flip_page)
|
||||
{
|
||||
Evas_Object *bg, *im, *im2, *rc;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
elm_win_focus_highlight_enabled_set(win, EINA_TRUE);
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
im2 = evas_object_image_filled_add(evas_object_evas_get(win));
|
||||
snprintf(buf, sizeof(buf), "%s/images/%s",
|
||||
elm_app_data_dir_get(), "sky_04.jpg");
|
||||
evas_object_image_file_set(im2, buf, NULL);
|
||||
evas_object_move(im2, 40, 40);
|
||||
evas_object_resize(im2, 400, 400);
|
||||
evas_object_show(im2);
|
||||
|
||||
#if 0
|
||||
im = elm_layout_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
|
||||
elm_layout_file_set(im, buf, "layout");
|
||||
#else
|
||||
im = evas_object_image_filled_add(evas_object_evas_get(win));
|
||||
snprintf(buf, sizeof(buf), "%s/images/%s",
|
||||
elm_app_data_dir_get(), "twofish.jpg");
|
||||
evas_object_image_file_set(im, buf, NULL);
|
||||
#endif
|
||||
evas_object_move(im, 40, 40);
|
||||
evas_object_resize(im, 400, 400);
|
||||
evas_object_show(im);
|
||||
|
||||
evas_object_data_set(im, "im2", im2);
|
||||
|
||||
|
||||
rc = evas_object_rectangle_add(evas_object_evas_get(win));
|
||||
evas_object_color_set(rc, 0, 0, 0, 0);
|
||||
evas_object_move(rc, 40, 340);
|
||||
evas_object_resize(rc, 400, 100);
|
||||
evas_object_show(rc);
|
||||
|
||||
evas_object_event_callback_add(rc, EVAS_CALLBACK_MOUSE_DOWN, im_down_cb, im);
|
||||
evas_object_event_callback_add(rc, EVAS_CALLBACK_MOUSE_UP, im_up_cb, im);
|
||||
evas_object_event_callback_add(rc, EVAS_CALLBACK_MOUSE_MOVE, im_move_cb, im);
|
||||
|
||||
rc = evas_object_rectangle_add(evas_object_evas_get(win));
|
||||
evas_object_color_set(rc, 0, 0, 0, 0);
|
||||
evas_object_move(rc, 40, 40);
|
||||
evas_object_resize(rc, 400, 100);
|
||||
evas_object_show(rc);
|
||||
|
||||
evas_object_event_callback_add(rc, EVAS_CALLBACK_MOUSE_DOWN, im_down_cb, im);
|
||||
evas_object_event_callback_add(rc, EVAS_CALLBACK_MOUSE_UP, im_up_cb, im);
|
||||
evas_object_event_callback_add(rc, EVAS_CALLBACK_MOUSE_MOVE, im_move_cb, im);
|
||||
|
||||
rc = evas_object_rectangle_add(evas_object_evas_get(win));
|
||||
evas_object_color_set(rc, 0, 0, 0, 0);
|
||||
evas_object_move(rc, 340, 40);
|
||||
evas_object_resize(rc, 100, 400);
|
||||
evas_object_show(rc);
|
||||
|
||||
evas_object_event_callback_add(rc, EVAS_CALLBACK_MOUSE_DOWN, im_down_cb, im);
|
||||
evas_object_event_callback_add(rc, EVAS_CALLBACK_MOUSE_UP, im_up_cb, im);
|
||||
evas_object_event_callback_add(rc, EVAS_CALLBACK_MOUSE_MOVE, im_move_cb, im);
|
||||
|
||||
rc = evas_object_rectangle_add(evas_object_evas_get(win));
|
||||
evas_object_color_set(rc, 0, 0, 0, 0);
|
||||
evas_object_move(rc, 40, 40);
|
||||
evas_object_resize(rc, 100, 400);
|
||||
evas_object_show(rc);
|
||||
|
||||
evas_object_event_callback_add(rc, EVAS_CALLBACK_MOUSE_DOWN, im_down_cb, im);
|
||||
evas_object_event_callback_add(rc, EVAS_CALLBACK_MOUSE_UP, im_up_cb, im);
|
||||
evas_object_event_callback_add(rc, EVAS_CALLBACK_MOUSE_MOVE, im_move_cb, im);
|
||||
|
||||
evas_object_resize(win, 480, 480);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,107 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
void
|
||||
_sel_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
||||
{
|
||||
Elm_Flipselector_Item *it;
|
||||
|
||||
it = event_info;
|
||||
printf("label of selected item is: %s\n", elm_flipselector_item_label_get(it));
|
||||
}
|
||||
|
||||
void
|
||||
_unsel_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Elm_Flipselector_Item *it;
|
||||
Evas_Object *fp = data;
|
||||
it = elm_flipselector_selected_item_get(fp);
|
||||
elm_flipselector_item_selected_set(it, EINA_FALSE);
|
||||
}
|
||||
|
||||
void
|
||||
_third_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Elm_Flipselector_Item *it;
|
||||
Evas_Object *fp = data;
|
||||
it = elm_flipselector_first_item_get(fp);
|
||||
it = elm_flipselector_item_next_get(it);
|
||||
it = elm_flipselector_item_next_get(it);
|
||||
elm_flipselector_item_selected_set(it, EINA_TRUE);
|
||||
}
|
||||
|
||||
void
|
||||
_underflow_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("underflow!\n");
|
||||
}
|
||||
|
||||
void
|
||||
_overflow_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("overflow!\n");
|
||||
}
|
||||
|
||||
TEST_START(test_flipselector)
|
||||
{
|
||||
char buf[8];
|
||||
unsigned int i;
|
||||
Evas_Object *bg, *bx, *fp, *bt;
|
||||
static const char *lbl[] = {
|
||||
"Elementary",
|
||||
"Evas",
|
||||
"Eina",
|
||||
"Edje",
|
||||
"Eet",
|
||||
"Ecore",
|
||||
"Efreet",
|
||||
"Edbus"
|
||||
};
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
fp = elm_flipselector_add(win);
|
||||
evas_object_size_hint_weight_set(fp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_smart_callback_add(fp, "selected", _sel_cb, NULL);
|
||||
evas_object_smart_callback_add(fp, "underflowed", _overflow_cb, NULL);
|
||||
evas_object_smart_callback_add(fp, "overflowed", _underflow_cb, NULL);
|
||||
for (i = 0; i < sizeof(lbl)/sizeof(char *); i++)
|
||||
elm_flipselector_item_append(fp, lbl[i], NULL, NULL);
|
||||
elm_box_pack_end(bx, fp);
|
||||
evas_object_show(fp);
|
||||
|
||||
fp = elm_flipselector_add(win);
|
||||
evas_object_smart_callback_add(fp, "underflowed", _overflow_cb, NULL);
|
||||
evas_object_smart_callback_add(fp, "overflowed", _underflow_cb, NULL);
|
||||
evas_object_size_hint_weight_set(fp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
for (i = 2099; i >= 1990; i--)
|
||||
{
|
||||
snprintf(buf, 8, "%d", i);
|
||||
elm_flipselector_item_append(fp, buf, _sel_cb, NULL);
|
||||
}
|
||||
elm_box_pack_end(bx, fp);
|
||||
evas_object_show(fp);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Select 2097");
|
||||
evas_object_smart_callback_add(bt, "clicked", _third_cb, fp);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Unselect year");
|
||||
evas_object_smart_callback_add(bt, "clicked", _unsel_cb, fp);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,371 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
static Eina_Bool
|
||||
_event(void *data __UNUSED__, Evas_Object *obj __UNUSED__, Evas_Object *src __UNUSED__, Evas_Callback_Type type, void *event_info)
|
||||
{
|
||||
if (type == EVAS_CALLBACK_KEY_DOWN)
|
||||
printf ("Key Down:");
|
||||
else if (type == EVAS_CALLBACK_KEY_UP)
|
||||
printf ("Key Up:");
|
||||
else
|
||||
return EINA_FALSE;
|
||||
Evas_Event_Key_Down *ev = event_info;
|
||||
printf("%s\n", ev->key);
|
||||
|
||||
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
_on_key_down(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *einfo __UNUSED__)
|
||||
{
|
||||
//Evas_Event_Key_Down *event = einfo;
|
||||
//printf("%s %p Key %s Parent %p\n", evas_object_type_get(obj),
|
||||
// obj, event->keyname, evas_object_smart_parent_get(obj));
|
||||
}
|
||||
|
||||
static void
|
||||
_disable(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *bt = data;
|
||||
elm_object_disabled_set(bt, EINA_TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
_enable(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *bt = data;
|
||||
elm_object_disabled_set(bt, EINA_FALSE);
|
||||
}
|
||||
|
||||
static inline void
|
||||
my_show(Evas_Object *obj)
|
||||
{
|
||||
evas_object_event_callback_add(obj, EVAS_CALLBACK_KEY_DOWN,
|
||||
_on_key_down, NULL);
|
||||
evas_object_show(obj);
|
||||
}
|
||||
|
||||
TEST_START(test_focus)
|
||||
{
|
||||
unsigned int i, j;
|
||||
|
||||
elm_win_focus_highlight_enabled_set(win, EINA_TRUE);
|
||||
evas_object_resize(win, 800, 600);
|
||||
elm_object_event_callback_add(win, _event, NULL);
|
||||
my_show(win);
|
||||
|
||||
{
|
||||
Evas_Object *bg;
|
||||
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);
|
||||
my_show(bg);
|
||||
}
|
||||
|
||||
Evas_Object *mainbx = elm_box_add(win);
|
||||
elm_box_horizontal_set(mainbx, EINA_TRUE);
|
||||
elm_win_resize_object_add(win, mainbx);
|
||||
evas_object_size_hint_weight_set(mainbx, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
my_show(mainbx);
|
||||
|
||||
{ //First Col
|
||||
Evas_Object *bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(mainbx, bx);
|
||||
my_show(bx);
|
||||
|
||||
{
|
||||
Evas_Object *lb = elm_label_add(win);
|
||||
elm_object_text_set(lb,
|
||||
"<b>Use Tab, Shift+Tab, and<br>"
|
||||
"Arrow Keys</b>"
|
||||
);
|
||||
evas_object_size_hint_weight_set(lb, 0.0, 0.0);
|
||||
evas_object_size_hint_align_set(lb, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
elm_box_pack_end(bx, lb);
|
||||
my_show(lb);
|
||||
}
|
||||
|
||||
{
|
||||
Evas_Object *tg = elm_check_add(win);
|
||||
elm_object_style_set(tg, "toggle");
|
||||
elm_object_part_text_set(tg, "on", "Yes");
|
||||
elm_object_part_text_set(tg, "off", "No");
|
||||
elm_box_pack_end(bx, tg);
|
||||
my_show(tg);
|
||||
}
|
||||
|
||||
{
|
||||
Evas_Object *en = elm_entry_add(win);
|
||||
elm_entry_scrollable_set(en, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
|
||||
elm_entry_entry_set(en, "This is a single line");
|
||||
elm_entry_single_line_set(en, 1);
|
||||
elm_box_pack_end(bx, en);
|
||||
my_show(en);
|
||||
}
|
||||
|
||||
{
|
||||
Evas_Object *bx2 = elm_box_add(win);
|
||||
elm_box_horizontal_set(bx2, EINA_TRUE);
|
||||
evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bx2, 0.0, 0.0);
|
||||
elm_box_pack_end(bx, bx2);
|
||||
|
||||
for (i = 2; i; i--)
|
||||
{
|
||||
Evas_Object *bt;
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Box");
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, 0.0, 0.0);
|
||||
if (i%2)
|
||||
elm_object_disabled_set(bt, EINA_TRUE);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
my_show(bt);
|
||||
}
|
||||
|
||||
{
|
||||
Evas_Object *sc = elm_scroller_add(win);
|
||||
evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(sc, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
elm_scroller_bounce_set(sc, 1, 1);
|
||||
elm_scroller_content_min_limit(sc, 1, 1);
|
||||
elm_box_pack_end(bx2, sc);
|
||||
my_show(sc);
|
||||
|
||||
{
|
||||
Evas_Object *bt;
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Scroller");
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, 0.0, 0.0);
|
||||
elm_object_event_callback_add(bt, _event, NULL);
|
||||
elm_object_content_set(sc, bt);
|
||||
my_show(bt);
|
||||
elm_object_event_callback_del(bt, _event, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
my_show(bx2);
|
||||
}
|
||||
|
||||
{
|
||||
Evas_Object *bt;
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Box");
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, 0.0, 0.0);
|
||||
elm_box_pack_end(bx, bt);
|
||||
my_show(bt);
|
||||
}
|
||||
|
||||
{
|
||||
Evas_Object *bx2 = elm_box_add(win);
|
||||
elm_box_horizontal_set(bx2, EINA_TRUE);
|
||||
evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bx2, 0.0, 0.0);
|
||||
elm_box_pack_end(bx, bx2);
|
||||
my_show(bx2);
|
||||
|
||||
for (i = 2; i; i--)
|
||||
{
|
||||
Evas_Object *bx3 = elm_box_add(win);
|
||||
evas_object_size_hint_align_set(bx3, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bx3, 0.0, 0.0);
|
||||
elm_box_pack_end(bx2, bx3);
|
||||
my_show(bx3);
|
||||
|
||||
for (j = 3; j; j--)
|
||||
{
|
||||
Evas_Object *bt;
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Box");
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, 0.0, 0.0);
|
||||
elm_box_pack_end(bx3, bt);
|
||||
my_show(bt);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
Evas_Object *sc = elm_scroller_add(win);
|
||||
evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(sc, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
elm_scroller_bounce_set(sc, 0, 1);
|
||||
elm_scroller_content_min_limit(sc, 1, 0);
|
||||
elm_box_pack_end(bx2, sc);
|
||||
my_show(sc);
|
||||
|
||||
Evas_Object *bx3 = elm_box_add(win);
|
||||
evas_object_size_hint_align_set(bx3, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bx3, 0.0, 0.0);
|
||||
elm_object_content_set(sc, bx3);
|
||||
my_show(bx3);
|
||||
|
||||
for (i = 5; i; i--)
|
||||
{
|
||||
Evas_Object *bt;
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "BX Scroller");
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, 0.0, 0.0);
|
||||
elm_box_pack_end(bx3, bt);
|
||||
my_show(bt);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{//Second Col
|
||||
char buf[PATH_MAX];
|
||||
Evas_Object *ly = elm_layout_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
|
||||
elm_layout_file_set(ly, buf, "twolines");
|
||||
evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(mainbx, ly);
|
||||
my_show(ly);
|
||||
|
||||
{
|
||||
Evas_Object *bx2 = elm_box_add(win);
|
||||
elm_box_horizontal_set(bx2, EINA_TRUE);
|
||||
evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bx2, 0.0, 0.0);
|
||||
elm_object_part_content_set(ly, "element1", bx2);
|
||||
my_show(bx2);
|
||||
|
||||
for (i = 3; i; i--)
|
||||
{
|
||||
Evas_Object *bt;
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Layout");
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, 0.0, 0.0);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
my_show(bt);
|
||||
elm_object_focus_custom_chain_prepend(bx2, bt, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
Evas_Object *bx2 = elm_box_add(win);
|
||||
evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bx2, 0.0, 0.0);
|
||||
elm_object_part_content_set(ly, "element2", bx2);
|
||||
my_show(bx2);
|
||||
|
||||
{
|
||||
Evas_Object *bt;
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Disable");
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, 0.0, 0.0);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", _disable, bt);
|
||||
my_show(bt);
|
||||
elm_object_focus_custom_chain_prepend(bx2, bt, NULL);
|
||||
|
||||
Evas_Object *bt2;
|
||||
bt2 = elm_button_add(win);
|
||||
elm_object_text_set(bt2, "Enable");
|
||||
evas_object_size_hint_align_set(bt2, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt2, 0.0, 0.0);
|
||||
elm_box_pack_end(bx2, bt2);
|
||||
evas_object_smart_callback_add(bt2, "clicked", _enable, bt);
|
||||
my_show(bt2);
|
||||
elm_object_focus_custom_chain_append(bx2, bt2, NULL);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
{//Third Col
|
||||
Evas_Object *bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(mainbx, bx);
|
||||
my_show(bx);
|
||||
|
||||
{
|
||||
Evas_Object *fr = elm_frame_add(win);
|
||||
elm_object_text_set(fr, "Frame");
|
||||
elm_box_pack_end(bx, fr);
|
||||
evas_object_show(fr);
|
||||
|
||||
{
|
||||
Evas_Object *tb = elm_table_add(win);
|
||||
evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_object_content_set(fr, tb);
|
||||
my_show(tb);
|
||||
for (j = 0; j < 1; j++)
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
Evas_Object *bt;
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Table");
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_table_pack(tb, bt, i, j, 1, 1);
|
||||
my_show(bt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
Evas_Object *fr = elm_bubble_add(win);
|
||||
elm_object_text_set(fr, "Bubble");
|
||||
evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(fr, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
elm_box_pack_end(bx, fr);
|
||||
evas_object_show(fr);
|
||||
|
||||
{
|
||||
Evas_Object *tb = elm_table_add(win);
|
||||
evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_object_content_set(fr, tb);
|
||||
my_show(tb);
|
||||
for (j = 0; j < 2; j++)
|
||||
for (i = 0; i < 1; i++)
|
||||
{
|
||||
Evas_Object *bt;
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Table");
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_table_pack(tb, bt, i, j, 1, 1);
|
||||
my_show(bt);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
TEST_END
|
|
@ -1,472 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
typedef struct _Testitem
|
||||
{
|
||||
Elm_Gengrid_Item *item;
|
||||
const char *path;
|
||||
int mode;
|
||||
int onoff;
|
||||
} Testitem;
|
||||
|
||||
static const char *img[9] =
|
||||
{
|
||||
"panel_01.jpg",
|
||||
"plant_01.jpg",
|
||||
"rock_01.jpg",
|
||||
"rock_02.jpg",
|
||||
"sky_01.jpg",
|
||||
"sky_02.jpg",
|
||||
"sky_03.jpg",
|
||||
"sky_04.jpg",
|
||||
"wood_01.jpg",
|
||||
};
|
||||
|
||||
static Elm_Gengrid_Item_Class gic;
|
||||
static int photo_idx = 0;
|
||||
static void
|
||||
_horizontal_grid(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *grid = data;
|
||||
elm_gengrid_horizontal_set(grid, elm_check_state_get(obj));
|
||||
}
|
||||
|
||||
static void
|
||||
grid_drag_up(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
||||
{
|
||||
printf("Drag up: %p\n", event_info);
|
||||
}
|
||||
|
||||
static void
|
||||
grid_drag_right(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
||||
{
|
||||
printf("Drag right: %p\n", event_info);
|
||||
}
|
||||
|
||||
static void
|
||||
grid_drag_down(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
||||
{
|
||||
printf("Drag down: %p\n", event_info);
|
||||
}
|
||||
|
||||
static void
|
||||
grid_drag_left(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
||||
{
|
||||
printf("Drag left: %p\n", event_info);
|
||||
}
|
||||
|
||||
static void
|
||||
grid_drag_stop(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
||||
{
|
||||
printf("Drag stop: %p\n", event_info);
|
||||
}
|
||||
|
||||
static void
|
||||
grid_selected(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
||||
{
|
||||
printf("Selected: %p\n", event_info);
|
||||
}
|
||||
|
||||
static void
|
||||
grid_double_clicked(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
||||
{
|
||||
printf("Double clicked: %p\n", event_info);
|
||||
}
|
||||
|
||||
static void
|
||||
grid_longpress(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
||||
{
|
||||
printf("longpress %p\n", event_info);
|
||||
}
|
||||
|
||||
static void
|
||||
grid_moved(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
||||
{
|
||||
printf("moved %p\n", event_info);
|
||||
}
|
||||
|
||||
static void
|
||||
grid_item_check_changed(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Testitem *ti = data;
|
||||
ti->onoff = elm_check_state_get(obj);
|
||||
printf("item %p onoff = %i\n", ti, ti->onoff);
|
||||
}
|
||||
|
||||
char *
|
||||
grid_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
|
||||
{
|
||||
const Testitem *ti = data;
|
||||
char buf[256];
|
||||
snprintf(buf, sizeof(buf), "Photo %s", ti->path);
|
||||
return strdup(buf);
|
||||
}
|
||||
|
||||
Evas_Object *
|
||||
grid_content_get(void *data, Evas_Object *obj, const char *part)
|
||||
{
|
||||
const Testitem *ti = data;
|
||||
if (!strcmp(part, "elm.swallow.icon"))
|
||||
{
|
||||
|
||||
Evas_Object *icon = elm_bg_add(obj);
|
||||
elm_bg_file_set(icon, ti->path, NULL);
|
||||
evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
evas_object_show(icon);
|
||||
return icon;
|
||||
}
|
||||
else if (!strcmp(part, "elm.swallow.end"))
|
||||
{
|
||||
Evas_Object *ck;
|
||||
ck = elm_check_add(obj);
|
||||
evas_object_propagate_events_set(ck, 0);
|
||||
elm_check_state_set(ck, ti->onoff);
|
||||
evas_object_smart_callback_add(ck, "changed", grid_item_check_changed, data);
|
||||
evas_object_show(ck);
|
||||
return ck;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
grid_state_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
|
||||
{
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
void
|
||||
grid_del(void *data __UNUSED__, Evas_Object *obj __UNUSED__)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
grid_sel(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
printf("sel item data [%p] on grid obj [%p], pointer [%p]\n", data, obj, event_info);
|
||||
}
|
||||
|
||||
enum _api_state
|
||||
{
|
||||
GRID_ALIGN_SET,
|
||||
GRID_BRING_IN,
|
||||
GRID_NO_SELECT_MODE,
|
||||
GRID_NO_BOUNCE,
|
||||
GRID_PAGE_RELATIVE,
|
||||
GRID_PAGE_SIZE,
|
||||
GRID_TOOLTIP_SET_TEXT,
|
||||
GRID_TOOLTIP_UNSET,
|
||||
API_STATE_LAST
|
||||
};
|
||||
typedef enum _api_state api_state;
|
||||
|
||||
static void
|
||||
set_api_state(api_data *api)
|
||||
{
|
||||
Evas_Object *grid = api->data;
|
||||
|
||||
/* use elm_box_children_get() to get list of children */
|
||||
switch(api->state)
|
||||
{ /* Put all api-changes under switch */
|
||||
case GRID_ALIGN_SET: /* 0 */
|
||||
elm_gengrid_align_set(grid, 0.2, 0.8);
|
||||
break;
|
||||
|
||||
case GRID_BRING_IN: /* 1 */
|
||||
elm_gengrid_item_bring_in(elm_gengrid_first_item_get(grid));
|
||||
break;
|
||||
|
||||
case GRID_NO_SELECT_MODE: /* 2 */
|
||||
elm_gengrid_no_select_mode_set(grid, EINA_TRUE);
|
||||
break;
|
||||
|
||||
case GRID_NO_BOUNCE: /* 3 */
|
||||
elm_gengrid_bounce_set(grid, EINA_TRUE, EINA_FALSE);
|
||||
break;
|
||||
|
||||
case GRID_PAGE_RELATIVE: /* 4 */
|
||||
elm_gengrid_bounce_set(grid, EINA_TRUE, EINA_TRUE);
|
||||
elm_gengrid_page_relative_set(grid, 0.5, 0.5);
|
||||
break;
|
||||
|
||||
case GRID_PAGE_SIZE: /* 5 */
|
||||
elm_gengrid_page_size_set(grid, 50, 25);
|
||||
break;
|
||||
|
||||
case GRID_TOOLTIP_SET_TEXT: /* 6 */
|
||||
{
|
||||
Elm_Gengrid_Item *item = elm_gengrid_first_item_get(grid);
|
||||
elm_gengrid_item_tooltip_text_set(item, "This is the first item");
|
||||
}
|
||||
break;
|
||||
|
||||
case GRID_TOOLTIP_UNSET: /* 7 */
|
||||
{
|
||||
Elm_Gengrid_Item *item = elm_gengrid_first_item_get(grid);
|
||||
elm_gengrid_item_tooltip_unset(item);
|
||||
}
|
||||
break;
|
||||
|
||||
case API_STATE_LAST:
|
||||
break;
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_api_bt_clicked(void *data, Evas_Object *obj __UNUSED__, 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(a->bt, str);
|
||||
elm_object_disabled_set(a->bt, a->state == API_STATE_LAST);
|
||||
}
|
||||
|
||||
TEST_START(test_gengrid)
|
||||
{
|
||||
Evas_Object *bg, *bxx, *grid;
|
||||
static Testitem ti[144];
|
||||
int i, n;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
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);
|
||||
|
||||
bxx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bxx);
|
||||
evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bxx);
|
||||
|
||||
grid = elm_gengrid_add(win);
|
||||
elm_gengrid_item_size_set(grid, 150, 150);
|
||||
elm_gengrid_horizontal_set(grid, EINA_FALSE);
|
||||
elm_gengrid_multi_select_set(grid, EINA_TRUE);
|
||||
elm_gengrid_reorder_mode_set(grid, EINA_TRUE);
|
||||
evas_object_smart_callback_add(grid, "selected", grid_selected, NULL);
|
||||
evas_object_smart_callback_add(grid, "clicked,double", grid_double_clicked, NULL);
|
||||
evas_object_smart_callback_add(grid, "longpressed", grid_longpress, NULL);
|
||||
evas_object_smart_callback_add(grid, "moved", grid_moved, NULL);
|
||||
evas_object_smart_callback_add(grid, "drag,start,up", grid_drag_up, NULL);
|
||||
evas_object_smart_callback_add(grid, "drag,start,right", grid_drag_right, NULL);
|
||||
evas_object_smart_callback_add(grid, "drag,start,down", grid_drag_down, NULL);
|
||||
evas_object_smart_callback_add(grid, "drag,start,left", grid_drag_left, NULL);
|
||||
evas_object_smart_callback_add(grid, "drag,stop", grid_drag_stop, NULL);
|
||||
evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(grid, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
api->data = grid;
|
||||
api->bt = elm_button_add(win);
|
||||
elm_object_text_set(api->bt, "Next API function");
|
||||
evas_object_smart_callback_add(api->bt, "clicked", _api_bt_clicked, (void *) api);
|
||||
elm_box_pack_end(bxx, api->bt);
|
||||
elm_object_disabled_set(api->bt, api->state == API_STATE_LAST);
|
||||
evas_object_show(api->bt);
|
||||
|
||||
elm_box_pack_end(bxx, grid);
|
||||
|
||||
gic.item_style = "default";
|
||||
gic.func.text_get = grid_text_get;
|
||||
gic.func.content_get = grid_content_get;
|
||||
gic.func.state_get = grid_state_get;
|
||||
gic.func.del = grid_del;
|
||||
|
||||
n = 0;
|
||||
for (i = 0; i < 12 * 12; i++)
|
||||
{
|
||||
snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), img[n]);
|
||||
n = (n + 1) % 9;
|
||||
ti[i].mode = i;
|
||||
ti[i].path = eina_stringshare_add(buf);
|
||||
ti[i].item = elm_gengrid_item_append(grid, &gic, &(ti[i]), grid_sel, NULL);
|
||||
if (!(i % 5))
|
||||
elm_gengrid_item_selected_set(ti[i].item, EINA_TRUE);
|
||||
}
|
||||
|
||||
evas_object_show(grid);
|
||||
|
||||
evas_object_resize(win, 600, 600);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
static void
|
||||
_before_bt_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Testitem *ti;
|
||||
Evas_Object *grid = data;
|
||||
Elm_Gengrid_Item *sel;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
sel = elm_gengrid_selected_item_get(grid);
|
||||
if (!sel)
|
||||
return;
|
||||
snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), img[(photo_idx++) % 9]);
|
||||
ti = malloc(sizeof(*ti));
|
||||
ti->mode = 0;
|
||||
ti->path = eina_stringshare_add(buf);
|
||||
ti->item = elm_gengrid_item_insert_before(grid, &gic, ti, sel, grid_sel,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_after_bt_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Testitem *ti;
|
||||
Evas_Object *grid = data;
|
||||
Elm_Gengrid_Item *sel;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
sel = elm_gengrid_selected_item_get(grid);
|
||||
if (!sel)
|
||||
return;
|
||||
snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), img[(photo_idx++) % 9]);
|
||||
ti = malloc(sizeof(*ti));
|
||||
ti->mode = 0;
|
||||
ti->path = eina_stringshare_add(buf);
|
||||
ti->item = elm_gengrid_item_insert_after(grid, &gic, ti, sel, grid_sel,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_delete_bt_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *grid = data;
|
||||
Eina_List *l, *l2, *l3;
|
||||
Elm_Gengrid_Item *it;
|
||||
|
||||
l = (Eina_List*)elm_gengrid_selected_items_get(grid);
|
||||
if (!l) return;
|
||||
EINA_LIST_FOREACH_SAFE(l, l2, l3, it)
|
||||
elm_gengrid_item_del(it);
|
||||
}
|
||||
|
||||
static void
|
||||
_prepend_bt_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Testitem *ti;
|
||||
Evas_Object *grid = data;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), img[(photo_idx++) % 9]);
|
||||
ti = malloc(sizeof(*ti));
|
||||
ti->mode = 0;
|
||||
ti->path = eina_stringshare_add(buf);
|
||||
ti->item = elm_gengrid_item_prepend(grid, &gic, ti, grid_sel, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_append_bt_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Testitem *ti;
|
||||
Evas_Object *grid = data;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), img[(photo_idx++) % 9]);
|
||||
ti = malloc(sizeof(*ti));
|
||||
ti->mode = 0;
|
||||
ti->path = eina_stringshare_add(buf);
|
||||
ti->item = elm_gengrid_item_append(grid, &gic, ti, grid_sel, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_size_changed(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *grid = data;
|
||||
int size = elm_spinner_value_get(obj);
|
||||
elm_gengrid_item_size_set(grid, size, size);
|
||||
}
|
||||
|
||||
TEST_START(test_gengrid2)
|
||||
{
|
||||
Evas_Object *bg, *grid, *bx, *hbx, *bt, *ck;
|
||||
|
||||
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);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
grid = elm_gengrid_add(win);
|
||||
elm_gengrid_item_size_set(grid, 150, 150);
|
||||
elm_gengrid_horizontal_set(grid, EINA_FALSE);
|
||||
elm_gengrid_multi_select_set(grid, EINA_FALSE);
|
||||
evas_object_smart_callback_add(grid, "selected", grid_selected, NULL);
|
||||
evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_min_set(grid, 600, 500);
|
||||
elm_box_pack_end(bx, grid);
|
||||
evas_object_show(grid);
|
||||
|
||||
hbx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(hbx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_horizontal_set(hbx, EINA_TRUE);
|
||||
elm_box_pack_end(bx, hbx);
|
||||
evas_object_show(hbx);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Append");
|
||||
evas_object_smart_callback_add(bt, "clicked", _append_bt_clicked, grid);
|
||||
elm_box_pack_end(hbx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Prepend");
|
||||
evas_object_smart_callback_add(bt, "clicked", _prepend_bt_clicked, grid);
|
||||
elm_box_pack_end(hbx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Insert before");
|
||||
evas_object_smart_callback_add(bt, "clicked", _before_bt_clicked, grid);
|
||||
elm_box_pack_end(hbx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Insert after");
|
||||
evas_object_smart_callback_add(bt, "clicked", _after_bt_clicked, grid);
|
||||
elm_box_pack_end(hbx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Delete");
|
||||
evas_object_smart_callback_add(bt, "clicked", _delete_bt_clicked, grid);
|
||||
elm_box_pack_end(hbx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_spinner_add(win);
|
||||
elm_spinner_min_max_set(bt, 10, 1024);
|
||||
elm_spinner_value_set(bt, 150);
|
||||
elm_spinner_label_format_set(bt, "Item size: %.0f");
|
||||
evas_object_smart_callback_add(bt, "changed", _size_changed, grid);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(hbx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
ck = elm_check_add(win);
|
||||
elm_object_text_set(ck, "Horizontal Mode");
|
||||
evas_object_smart_callback_add(ck, "changed", _horizontal_grid, grid);
|
||||
elm_box_pack_end(hbx, ck);
|
||||
evas_object_show(ck);
|
||||
|
||||
gic.item_style = "default";
|
||||
gic.func.text_get = grid_text_get;
|
||||
gic.func.content_get = grid_content_get;
|
||||
gic.func.state_get = grid_state_get;
|
||||
gic.func.del = grid_del;
|
||||
|
||||
evas_object_resize(win, 600, 600);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
File diff suppressed because it is too large
Load Diff
|
@ -1,626 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
#ifndef M_PI
|
||||
#define M_PI 3.14159265
|
||||
#endif
|
||||
|
||||
typedef struct _Gear Gear;
|
||||
typedef struct _GLData GLData;
|
||||
struct _Gear
|
||||
{
|
||||
GLfloat *vertices;
|
||||
GLuint vbo;
|
||||
int count;
|
||||
};
|
||||
|
||||
// GL related data here..
|
||||
struct _GLData
|
||||
{
|
||||
Evas_GL_API *glapi;
|
||||
GLuint program;
|
||||
GLuint vtx_shader;
|
||||
GLuint fgmt_shader;
|
||||
int initialized : 1;
|
||||
int mouse_down : 1;
|
||||
|
||||
// Gear Stuff
|
||||
GLfloat view_rotx;
|
||||
GLfloat view_roty;
|
||||
GLfloat view_rotz;
|
||||
|
||||
Gear *gear1;
|
||||
Gear *gear2;
|
||||
Gear *gear3;
|
||||
|
||||
GLfloat angle;
|
||||
|
||||
GLuint proj_location;
|
||||
GLuint light_location;
|
||||
GLuint color_location;
|
||||
|
||||
GLfloat proj[16];
|
||||
GLfloat light[3];
|
||||
};
|
||||
|
||||
static void gears_init(GLData *gld);
|
||||
static void free_gear(Gear *gear);
|
||||
static void gears_reshape(GLData *gld, int width, int height);
|
||||
static void render_gears(GLData *gld);
|
||||
|
||||
//--------------------------------//
|
||||
// Gear Stuff....
|
||||
static GLfloat *
|
||||
vert(GLfloat *p, GLfloat x, GLfloat y, GLfloat z, GLfloat *n)
|
||||
{
|
||||
p[0] = x;
|
||||
p[1] = y;
|
||||
p[2] = z;
|
||||
p[3] = n[0];
|
||||
p[4] = n[1];
|
||||
p[5] = n[2];
|
||||
|
||||
return p + 6;
|
||||
}
|
||||
|
||||
/* Draw a gear wheel. You'll probably want to call this function when
|
||||
* building a display list since we do a lot of trig here.
|
||||
*
|
||||
* Input: inner_radius - radius of hole at center
|
||||
* outer_radius - radius at center of teeth
|
||||
* width - width of gear
|
||||
* teeth - number of teeth
|
||||
* tooth_depth - depth of tooth
|
||||
*/
|
||||
static Gear *
|
||||
make_gear(GLData *gld, GLfloat inner_radius, GLfloat outer_radius, GLfloat width,
|
||||
GLint teeth, GLfloat tooth_depth)
|
||||
{
|
||||
GLint i;
|
||||
GLfloat r0, r1, r2;
|
||||
GLfloat da;
|
||||
GLfloat *v;
|
||||
Gear *gear;
|
||||
double s[5], c[5];
|
||||
GLfloat normal[3];
|
||||
const int tris_per_tooth = 20;
|
||||
Evas_GL_API *gl = gld->glapi;
|
||||
|
||||
gear = (Gear*)malloc(sizeof(Gear));
|
||||
if (gear == NULL)
|
||||
return NULL;
|
||||
|
||||
r0 = inner_radius;
|
||||
r1 = outer_radius - tooth_depth / 2.0;
|
||||
r2 = outer_radius + tooth_depth / 2.0;
|
||||
|
||||
da = 2.0 * M_PI / teeth / 4.0;
|
||||
|
||||
gear->vertices = calloc(teeth * tris_per_tooth * 3 * 6,
|
||||
sizeof *gear->vertices);
|
||||
s[4] = 0;
|
||||
c[4] = 1;
|
||||
v = gear->vertices;
|
||||
for (i = 0; i < teeth; i++)
|
||||
{
|
||||
s[0] = s[4];
|
||||
c[0] = c[4];
|
||||
s[1] = sin(i * 2.0 * M_PI / teeth + da);
|
||||
c[1] = cos(i * 2.0 * M_PI / teeth + da);
|
||||
s[2] = sin(i * 2.0 * M_PI / teeth + da * 2);
|
||||
c[2] = cos(i * 2.0 * M_PI / teeth + da * 2);
|
||||
s[3] = sin(i * 2.0 * M_PI / teeth + da * 3);
|
||||
c[3] = cos(i * 2.0 * M_PI / teeth + da * 3);
|
||||
s[4] = sin(i * 2.0 * M_PI / teeth + da * 4);
|
||||
c[4] = cos(i * 2.0 * M_PI / teeth + da * 4);
|
||||
|
||||
normal[0] = 0.0;
|
||||
normal[1] = 0.0;
|
||||
normal[2] = 1.0;
|
||||
|
||||
v = vert(v, r2 * c[1], r2 * s[1], width * 0.5, normal);
|
||||
|
||||
v = vert(v, r2 * c[1], r2 * s[1], width * 0.5, normal);
|
||||
v = vert(v, r2 * c[2], r2 * s[2], width * 0.5, normal);
|
||||
v = vert(v, r1 * c[0], r1 * s[0], width * 0.5, normal);
|
||||
v = vert(v, r1 * c[3], r1 * s[3], width * 0.5, normal);
|
||||
v = vert(v, r0 * c[0], r0 * s[0], width * 0.5, normal);
|
||||
v = vert(v, r1 * c[4], r1 * s[4], width * 0.5, normal);
|
||||
v = vert(v, r0 * c[4], r0 * s[4], width * 0.5, normal);
|
||||
|
||||
v = vert(v, r0 * c[4], r0 * s[4], width * 0.5, normal);
|
||||
v = vert(v, r0 * c[0], r0 * s[0], width * 0.5, normal);
|
||||
v = vert(v, r0 * c[4], r0 * s[4], -width * 0.5, normal);
|
||||
v = vert(v, r0 * c[0], r0 * s[0], -width * 0.5, normal);
|
||||
|
||||
normal[0] = 0.0;
|
||||
normal[1] = 0.0;
|
||||
normal[2] = -1.0;
|
||||
|
||||
v = vert(v, r0 * c[4], r0 * s[4], -width * 0.5, normal);
|
||||
|
||||
v = vert(v, r0 * c[4], r0 * s[4], -width * 0.5, normal);
|
||||
v = vert(v, r1 * c[4], r1 * s[4], -width * 0.5, normal);
|
||||
v = vert(v, r0 * c[0], r0 * s[0], -width * 0.5, normal);
|
||||
v = vert(v, r1 * c[3], r1 * s[3], -width * 0.5, normal);
|
||||
v = vert(v, r1 * c[0], r1 * s[0], -width * 0.5, normal);
|
||||
v = vert(v, r2 * c[2], r2 * s[2], -width * 0.5, normal);
|
||||
v = vert(v, r2 * c[1], r2 * s[1], -width * 0.5, normal);
|
||||
|
||||
v = vert(v, r1 * c[0], r1 * s[0], width * 0.5, normal);
|
||||
|
||||
v = vert(v, r1 * c[0], r1 * s[0], width * 0.5, normal);
|
||||
v = vert(v, r1 * c[0], r1 * s[0], -width * 0.5, normal);
|
||||
v = vert(v, r2 * c[1], r2 * s[1], width * 0.5, normal);
|
||||
v = vert(v, r2 * c[1], r2 * s[1], -width * 0.5, normal);
|
||||
v = vert(v, r2 * c[2], r2 * s[2], width * 0.5, normal);
|
||||
v = vert(v, r2 * c[2], r2 * s[2], -width * 0.5, normal);
|
||||
v = vert(v, r1 * c[3], r1 * s[3], width * 0.5, normal);
|
||||
v = vert(v, r1 * c[3], r1 * s[3], -width * 0.5, normal);
|
||||
v = vert(v, r1 * c[4], r1 * s[4], width * 0.5, normal);
|
||||
v = vert(v, r1 * c[4], r1 * s[4], -width * 0.5, normal);
|
||||
|
||||
v = vert(v, r1 * c[4], r1 * s[4], -width * 0.5, normal);
|
||||
}
|
||||
|
||||
gear->count = (v - gear->vertices) / 6;
|
||||
|
||||
gl->glGenBuffers(1, &gear->vbo);
|
||||
gl->glBindBuffer(GL_ARRAY_BUFFER, gear->vbo);
|
||||
gl->glBufferData(GL_ARRAY_BUFFER, gear->count * 6 * 4,
|
||||
gear->vertices, GL_STATIC_DRAW);
|
||||
|
||||
|
||||
return gear;
|
||||
}
|
||||
|
||||
static void
|
||||
free_gear(Gear *gear)
|
||||
{
|
||||
free(gear->vertices);
|
||||
free(gear);
|
||||
gear = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
multiply(GLfloat *m, const GLfloat *n)
|
||||
{
|
||||
GLfloat tmp[16];
|
||||
const GLfloat *row, *column;
|
||||
div_t d;
|
||||
int i, j;
|
||||
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
tmp[i] = 0;
|
||||
d = div(i, 4);
|
||||
row = n + d.quot * 4;
|
||||
column = m + d.rem;
|
||||
for (j = 0; j < 4; j++)
|
||||
tmp[i] += row[j] * column[j * 4];
|
||||
}
|
||||
memcpy(m, &tmp, sizeof tmp);
|
||||
}
|
||||
|
||||
static void
|
||||
rotate(GLfloat *m, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
|
||||
{
|
||||
double s, c;
|
||||
|
||||
s = sin(angle);
|
||||
c = cos(angle);
|
||||
GLfloat r[16] =
|
||||
{
|
||||
x * x * (1 - c) + c, y * x * (1 - c) + z * s, x * z * (1 - c) - y * s, 0,
|
||||
x * y * (1 - c) - z * s, y * y * (1 - c) + c, y * z * (1 - c) + x * s, 0,
|
||||
x * z * (1 - c) + y * s, y * z * (1 - c) - x * s, z * z * (1 - c) + c, 0,
|
||||
0, 0, 0, 1
|
||||
};
|
||||
|
||||
multiply(m, r);
|
||||
}
|
||||
|
||||
static void
|
||||
translate(GLfloat *m, GLfloat x, GLfloat y, GLfloat z)
|
||||
{
|
||||
GLfloat t[16] = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, x, y, z, 1 };
|
||||
|
||||
multiply(m, t);
|
||||
}
|
||||
|
||||
static void
|
||||
draw_gear(GLData *gld, Gear *gear, GLfloat *m,
|
||||
GLfloat x, GLfloat y, GLfloat angle, const GLfloat *color)
|
||||
{
|
||||
Evas_GL_API *gl = gld->glapi;
|
||||
GLfloat tmp[16];
|
||||
|
||||
memcpy(tmp, m, sizeof tmp);
|
||||
translate(tmp, x, y, 0);
|
||||
rotate(tmp, 2 * M_PI * angle / 360.0, 0, 0, 1);
|
||||
gl->glUniformMatrix4fv(gld->proj_location, 1, GL_FALSE, tmp);
|
||||
gl->glUniform3fv(gld->light_location, 1, gld->light);
|
||||
gl->glUniform4fv(gld->color_location, 1, color);
|
||||
|
||||
gl->glBindBuffer(GL_ARRAY_BUFFER, gear->vbo);
|
||||
|
||||
gl->glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE,
|
||||
6 * sizeof(GLfloat), NULL);
|
||||
gl->glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE,
|
||||
6 * sizeof(GLfloat), (GLfloat *) 0 + 3);
|
||||
gl->glEnableVertexAttribArray(0);
|
||||
gl->glEnableVertexAttribArray(1);
|
||||
gl->glDrawArrays(GL_TRIANGLE_STRIP, 0, gear->count);
|
||||
}
|
||||
|
||||
static void
|
||||
gears_draw(GLData *gld)
|
||||
{
|
||||
Evas_GL_API *gl = gld->glapi;
|
||||
|
||||
static const GLfloat red[4] = { 0.8, 0.1, 0.0, 1.0 };
|
||||
static const GLfloat green[4] = { 0.0, 0.8, 0.2, 1.0 };
|
||||
static const GLfloat blue[4] = { 0.2, 0.2, 1.0, 1.0 };
|
||||
GLfloat m[16];
|
||||
|
||||
gl->glClearColor(0.8, 0.8, 0.1, 0.5);
|
||||
gl->glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
|
||||
memcpy(m, gld->proj, sizeof m);
|
||||
rotate(m, 2 * M_PI * gld->view_rotx / 360.0, 1, 0, 0);
|
||||
rotate(m, 2 * M_PI * gld->view_roty / 360.0, 0, 1, 0);
|
||||
rotate(m, 2 * M_PI * gld->view_rotz / 360.0, 0, 0, 1);
|
||||
|
||||
draw_gear(gld, gld->gear1, m, -3.0, -2.0, gld->angle, red);
|
||||
draw_gear(gld, gld->gear2, m, 3.1, -2.0, -2 * gld->angle - 9.0, green);
|
||||
draw_gear(gld, gld->gear3, m, -3.1, 4.2, -2 * gld->angle - 25.0, blue);
|
||||
}
|
||||
|
||||
static void render_gears(GLData *gld)
|
||||
{
|
||||
gears_draw(gld);
|
||||
|
||||
gld->angle += 2.0;
|
||||
}
|
||||
|
||||
/* new window size or exposure */
|
||||
static void
|
||||
gears_reshape(GLData *gld, int width, int height)
|
||||
{
|
||||
Evas_GL_API *gl = gld->glapi;
|
||||
|
||||
GLfloat ar, m[16] = {
|
||||
1.0, 0.0, 0.0, 0.0,
|
||||
0.0, 1.0, 0.0, 0.0,
|
||||
0.0, 0.0, 0.1, 0.0,
|
||||
0.0, 0.0, 0.0, 1.0
|
||||
};
|
||||
|
||||
if (width < height)
|
||||
ar = width;
|
||||
else
|
||||
ar = height;
|
||||
|
||||
m[0] = 0.1 * ar / width;
|
||||
m[5] = 0.1 * ar / height;
|
||||
memcpy(gld->proj, m, sizeof gld->proj);
|
||||
gl->glViewport(0, 0, (GLint) width, (GLint) height);
|
||||
}
|
||||
|
||||
static const char vertex_shader[] =
|
||||
"uniform mat4 proj;\n"
|
||||
"attribute vec4 position;\n"
|
||||
"attribute vec4 normal;\n"
|
||||
"varying vec3 rotated_normal;\n"
|
||||
"varying vec3 rotated_position;\n"
|
||||
"vec4 tmp;\n"
|
||||
"void main()\n"
|
||||
"{\n"
|
||||
" gl_Position = proj * position;\n"
|
||||
" rotated_position = gl_Position.xyz;\n"
|
||||
" tmp = proj * normal;\n"
|
||||
" rotated_normal = tmp.xyz;\n"
|
||||
"}\n";
|
||||
|
||||
static const char fragment_shader[] =
|
||||
"#ifdef GL_ES\n"
|
||||
"precision mediump float;\n"
|
||||
"#endif\n"
|
||||
"uniform vec4 color;\n"
|
||||
"uniform vec3 light;\n"
|
||||
"varying vec3 rotated_normal;\n"
|
||||
"varying vec3 rotated_position;\n"
|
||||
"vec3 light_direction;\n"
|
||||
"vec4 white = vec4(0.5, 0.5, 0.5, 1.0);\n"
|
||||
"void main()\n"
|
||||
"{\n"
|
||||
" light_direction = normalize(light - rotated_position);\n"
|
||||
" gl_FragColor = color + white * dot(light_direction, rotated_normal);\n"
|
||||
"}\n";
|
||||
|
||||
|
||||
static void
|
||||
gears_init(GLData *gld)
|
||||
{
|
||||
Evas_GL_API *gl = gld->glapi;
|
||||
|
||||
const char *p;
|
||||
char msg[512];
|
||||
|
||||
gl->glEnable(GL_CULL_FACE);
|
||||
gl->glEnable(GL_DEPTH_TEST);
|
||||
|
||||
p = vertex_shader;
|
||||
gld->vtx_shader = gl->glCreateShader(GL_VERTEX_SHADER);
|
||||
gl->glShaderSource(gld->vtx_shader, 1, &p, NULL);
|
||||
gl->glCompileShader(gld->vtx_shader);
|
||||
gl->glGetShaderInfoLog(gld->vtx_shader, sizeof msg, NULL, msg);
|
||||
printf("vertex shader info: %s\n", msg);
|
||||
|
||||
p = fragment_shader;
|
||||
gld->fgmt_shader = gl->glCreateShader(GL_FRAGMENT_SHADER);
|
||||
gl->glShaderSource(gld->fgmt_shader, 1, &p, NULL);
|
||||
gl->glCompileShader(gld->fgmt_shader);
|
||||
gl->glGetShaderInfoLog(gld->fgmt_shader, sizeof msg, NULL, msg);
|
||||
printf("fragment shader info: %s\n", msg);
|
||||
|
||||
gld->program = gl->glCreateProgram();
|
||||
gl->glAttachShader(gld->program, gld->vtx_shader);
|
||||
gl->glAttachShader(gld->program, gld->fgmt_shader);
|
||||
gl->glBindAttribLocation(gld->program, 0, "position");
|
||||
gl->glBindAttribLocation(gld->program, 1, "normal");
|
||||
|
||||
gl->glLinkProgram(gld->program);
|
||||
gl->glGetProgramInfoLog(gld->program, sizeof msg, NULL, msg);
|
||||
printf("info: %s\n", msg);
|
||||
|
||||
gl->glUseProgram(gld->program);
|
||||
gld->proj_location = gl->glGetUniformLocation(gld->program, "proj");
|
||||
gld->light_location = gl->glGetUniformLocation(gld->program, "light");
|
||||
gld->color_location = gl->glGetUniformLocation(gld->program, "color");
|
||||
|
||||
/* make the gears */
|
||||
gld->gear1 = make_gear(gld, 1.0, 4.0, 1.0, 20, 0.7);
|
||||
gld->gear2 = make_gear(gld, 0.5, 2.0, 2.0, 10, 0.7);
|
||||
gld->gear3 = make_gear(gld, 1.3, 2.0, 0.5, 10, 0.7);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
gldata_init(GLData *gld)
|
||||
{
|
||||
gld->initialized = 0;
|
||||
gld->mouse_down = 0;
|
||||
|
||||
gld->view_rotx = -20.0;
|
||||
gld->view_roty = -30.0;
|
||||
gld->view_rotz = 0.0;
|
||||
gld->angle = 0.0;
|
||||
|
||||
gld->light[0] = 1.0;
|
||||
gld->light[1] = 1.0;
|
||||
gld->light[2] = -5.0;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------//
|
||||
|
||||
static void
|
||||
_init_gl(Evas_Object *obj)
|
||||
{
|
||||
GLData *gld = evas_object_data_get(obj, "gld");
|
||||
|
||||
gears_init(gld);
|
||||
}
|
||||
|
||||
static void
|
||||
_del_gl(Evas_Object *obj)
|
||||
{
|
||||
GLData *gld = evas_object_data_get(obj, "gld");
|
||||
if (!gld)
|
||||
{
|
||||
printf("Unable to get GLData. \n");
|
||||
return;
|
||||
}
|
||||
Evas_GL_API *gl = gld->glapi;
|
||||
|
||||
gl->glDeleteShader(gld->vtx_shader);
|
||||
gl->glDeleteShader(gld->fgmt_shader);
|
||||
gl->glDeleteProgram(gld->program);
|
||||
gl->glDeleteBuffers(1, &gld->gear1->vbo);
|
||||
gl->glDeleteBuffers(1, &gld->gear2->vbo);
|
||||
gl->glDeleteBuffers(1, &gld->gear3->vbo);
|
||||
|
||||
free_gear(gld->gear1);
|
||||
free_gear(gld->gear2);
|
||||
free_gear(gld->gear3);
|
||||
|
||||
evas_object_data_del((Evas_Object*)obj, "..gld");
|
||||
free(gld);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
_resize_gl(Evas_Object *obj)
|
||||
{
|
||||
int w, h;
|
||||
GLData *gld = evas_object_data_get(obj, "gld");
|
||||
|
||||
elm_glview_size_get(obj, &w, &h);
|
||||
|
||||
// GL Viewport stuff. you can avoid doing this if viewport is all the
|
||||
// same as last frame if you want
|
||||
gears_reshape(gld, w,h);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void
|
||||
_draw_gl(Evas_Object *obj)
|
||||
{
|
||||
Evas_GL_API *gl = elm_glview_gl_api_get(obj);
|
||||
GLData *gld = evas_object_data_get(obj, "gld");
|
||||
if (!gld) return;
|
||||
|
||||
render_gears(gld);
|
||||
gl->glFinish();
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
_anim(void *data)
|
||||
{
|
||||
elm_glview_changed_set(data);
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
_on_done(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
evas_object_del((Evas_Object*)data);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
_del(void *data __UNUSED__, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Ecore_Animator *ani = evas_object_data_get(obj, "ani");
|
||||
ecore_animator_del(ani);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
_key_down(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Evas_Event_Key_Down *ev;
|
||||
ev = (Evas_Event_Key_Down *)event_info;
|
||||
GLData *gld = evas_object_data_get(obj, "gld");
|
||||
|
||||
if (strcmp(ev->keyname, "Left") == 0)
|
||||
{
|
||||
gld->view_roty += 5.0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (strcmp(ev->keyname, "Right") == 0)
|
||||
{
|
||||
gld->view_roty -= 5.0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (strcmp(ev->keyname, "Up") == 0)
|
||||
{
|
||||
gld->view_rotx += 5.0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (strcmp(ev->keyname, "Down") == 0)
|
||||
{
|
||||
gld->view_rotx -= 5.0;
|
||||
return;
|
||||
}
|
||||
if ((strcmp(ev->keyname, "Escape") == 0) ||
|
||||
(strcmp(ev->keyname, "Return") == 0))
|
||||
{
|
||||
//_on_done(data, obj, event_info);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_mouse_down(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
GLData *gld = evas_object_data_get(obj, "gld");
|
||||
gld->mouse_down = 1;
|
||||
}
|
||||
|
||||
static void
|
||||
_mouse_move(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Event_Mouse_Move *ev;
|
||||
ev = (Evas_Event_Mouse_Move *)event_info;
|
||||
GLData *gld = evas_object_data_get(obj, "gld");
|
||||
float dx = 0, dy = 0;
|
||||
|
||||
if (gld->mouse_down)
|
||||
{
|
||||
dx = ev->cur.canvas.x - ev->prev.canvas.x;
|
||||
dy = ev->cur.canvas.y - ev->prev.canvas.y;
|
||||
|
||||
gld->view_roty += -1.0 * dx;
|
||||
gld->view_rotx += -1.0 * dy;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_mouse_up(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
GLData *gld = evas_object_data_get(obj, "gld");
|
||||
gld->mouse_down = 0;
|
||||
}
|
||||
|
||||
TEST_START(test_glview)
|
||||
{
|
||||
Evas_Object *bg, *bx, *bt, *gl;
|
||||
Ecore_Animator *ani;
|
||||
GLData *gld = NULL;
|
||||
|
||||
// alloc a data struct to hold our relevant gl info in
|
||||
if (!(gld = calloc(1, sizeof(GLData)))) return;
|
||||
gldata_init(gld);
|
||||
|
||||
// new window - do the usual and give it a name, title and delete handler
|
||||
|
||||
// add a standard bg
|
||||
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);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
// Add a GLView
|
||||
gl = elm_glview_add(win);
|
||||
evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_glview_mode_set(gl, ELM_GLVIEW_ALPHA|ELM_GLVIEW_DEPTH);
|
||||
elm_glview_resize_policy_set(gl, ELM_GLVIEW_RESIZE_POLICY_RECREATE);
|
||||
elm_glview_render_policy_set(gl, ELM_GLVIEW_RENDER_POLICY_ALWAYS);
|
||||
elm_glview_init_func_set(gl, _init_gl);
|
||||
elm_glview_del_func_set(gl, _del_gl);
|
||||
elm_glview_resize_func_set(gl, _resize_gl);
|
||||
elm_glview_render_func_set(gl, (Elm_GLView_Func_Cb)_draw_gl);
|
||||
elm_box_pack_end(bx, gl);
|
||||
evas_object_show(gl);
|
||||
|
||||
// Add Mouse/Key Event Callbacks
|
||||
elm_object_focus_set(gl, EINA_TRUE);
|
||||
evas_object_event_callback_add(gl, EVAS_CALLBACK_KEY_DOWN, _key_down, gl);
|
||||
evas_object_event_callback_add(gl, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down, gl);
|
||||
evas_object_event_callback_add(gl, EVAS_CALLBACK_MOUSE_UP, _mouse_up, gl);
|
||||
evas_object_event_callback_add(gl, EVAS_CALLBACK_MOUSE_MOVE, _mouse_move, gl);
|
||||
|
||||
|
||||
// Animator and other vars
|
||||
ani = ecore_animator_add(_anim, gl);
|
||||
gld->glapi = elm_glview_gl_api_get(gl);
|
||||
evas_object_data_set(gl, "ani", ani);
|
||||
evas_object_data_set(gl, "gld", gld);
|
||||
evas_object_event_callback_add(gl, EVAS_CALLBACK_DEL, _del, gl);
|
||||
|
||||
|
||||
/* add an ok button */
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "OK");
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", _on_done, win);
|
||||
|
||||
evas_object_resize(win, 320, 480);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,282 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
typedef struct _GLData GLData;
|
||||
|
||||
// GL related data here..
|
||||
struct _GLData
|
||||
{
|
||||
Evas_GL_API *glapi;
|
||||
GLuint program;
|
||||
GLuint vtx_shader;
|
||||
GLuint fgmt_shader;
|
||||
GLuint vbo;
|
||||
int initialized : 1;
|
||||
};
|
||||
|
||||
|
||||
static float red = 1.0;
|
||||
|
||||
//--------------------------------//
|
||||
static GLuint
|
||||
load_shader( GLData *gld, GLenum type, const char *shader_src )
|
||||
{
|
||||
Evas_GL_API *gl = gld->glapi;
|
||||
GLuint shader;
|
||||
GLint compiled;
|
||||
|
||||
// Create the shader object
|
||||
shader = gl->glCreateShader(type);
|
||||
if (shader==0)
|
||||
return 0;
|
||||
|
||||
// Load/Compile shader source
|
||||
gl->glShaderSource(shader, 1, &shader_src, NULL);
|
||||
gl->glCompileShader(shader);
|
||||
gl->glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled);
|
||||
|
||||
if (!compiled)
|
||||
{
|
||||
GLint info_len = 0;
|
||||
gl->glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &info_len);
|
||||
if (info_len > 1)
|
||||
{
|
||||
char* info_log = malloc(sizeof(char) * info_len);
|
||||
|
||||
gl->glGetShaderInfoLog(shader, info_len, NULL, info_log);
|
||||
printf("Error compiling shader:\n%s\n======\n%s\n======\n", info_log, shader_src );
|
||||
free(info_log);
|
||||
}
|
||||
gl->glDeleteShader(shader);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return shader;
|
||||
}
|
||||
|
||||
// Initialize the shader and program object
|
||||
static int
|
||||
init_shaders(GLData *gld)
|
||||
{
|
||||
Evas_GL_API *gl = gld->glapi;
|
||||
GLbyte vShaderStr[] =
|
||||
"attribute vec4 vPosition; \n"
|
||||
"void main() \n"
|
||||
"{ \n"
|
||||
" gl_Position = vPosition; \n"
|
||||
"} \n";
|
||||
|
||||
GLbyte fShaderStr[] =
|
||||
"#ifdef GL_ES \n"
|
||||
"precision mediump float; \n"
|
||||
"#endif \n"
|
||||
"void main() \n"
|
||||
"{ \n"
|
||||
" gl_FragColor = vec4 ( 1.0, 0.0, 0.0, 1.0 );\n"
|
||||
"} \n";
|
||||
|
||||
GLint linked;
|
||||
|
||||
// Load the vertex/fragment shaders
|
||||
gld->vtx_shader = load_shader(gld, GL_VERTEX_SHADER, (const char*)vShaderStr);
|
||||
gld->fgmt_shader = load_shader(gld, GL_FRAGMENT_SHADER, (const char*)fShaderStr);
|
||||
|
||||
// Create the program object
|
||||
gld->program = gl->glCreateProgram( );
|
||||
if (gld->program==0)
|
||||
return 0;
|
||||
|
||||
gl->glAttachShader(gld->program, gld->vtx_shader);
|
||||
gl->glAttachShader(gld->program, gld->fgmt_shader);
|
||||
|
||||
gl->glBindAttribLocation(gld->program, 0, "vPosition");
|
||||
gl->glLinkProgram(gld->program);
|
||||
gl->glGetProgramiv(gld->program, GL_LINK_STATUS, &linked);
|
||||
|
||||
if (!linked)
|
||||
{
|
||||
GLint info_len = 0;
|
||||
gl->glGetProgramiv(gld->program, GL_INFO_LOG_LENGTH, &info_len);
|
||||
if (info_len > 1)
|
||||
{
|
||||
char* info_log = malloc(sizeof(char) * info_len);
|
||||
|
||||
gl->glGetProgramInfoLog(gld->program, info_len, NULL, info_log);
|
||||
printf("Error linking program:\n%s\n", info_log);
|
||||
free(info_log);
|
||||
}
|
||||
gl->glDeleteProgram(gld->program);
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Callbacks
|
||||
static void
|
||||
_init_gl(Evas_Object *obj)
|
||||
{
|
||||
GLData *gld = evas_object_data_get(obj, "gld");
|
||||
Evas_GL_API *gl = gld->glapi;
|
||||
GLfloat vVertices[] = { 0.0f, 0.5f, 0.0f,
|
||||
-0.5f, -0.5f, 0.0f,
|
||||
0.5f, -0.5f, 0.0f };
|
||||
|
||||
if (!init_shaders(gld))
|
||||
{
|
||||
printf("Error Initializing Shaders\n");
|
||||
return;
|
||||
}
|
||||
|
||||
gl->glGenBuffers(1, &gld->vbo);
|
||||
gl->glBindBuffer(GL_ARRAY_BUFFER, gld->vbo);
|
||||
gl->glBufferData(GL_ARRAY_BUFFER, 3 * 3 * 4, vVertices, GL_STATIC_DRAW);
|
||||
}
|
||||
|
||||
static void
|
||||
_del_gl(Evas_Object *obj)
|
||||
{
|
||||
GLData *gld = evas_object_data_get(obj, "gld");
|
||||
if (!gld)
|
||||
{
|
||||
printf("Unable to get GLData. \n");
|
||||
return;
|
||||
}
|
||||
Evas_GL_API *gl = gld->glapi;
|
||||
|
||||
gl->glDeleteShader(gld->vtx_shader);
|
||||
gl->glDeleteShader(gld->fgmt_shader);
|
||||
gl->glDeleteProgram(gld->program);
|
||||
gl->glDeleteBuffers(1, &gld->vbo);
|
||||
|
||||
evas_object_data_del((Evas_Object*)obj, "..gld");
|
||||
free(gld);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
_resize_gl(Evas_Object *obj)
|
||||
{
|
||||
int w, h;
|
||||
GLData *gld = evas_object_data_get(obj, "gld");
|
||||
Evas_GL_API *gl = gld->glapi;
|
||||
|
||||
elm_glview_size_get(obj, &w, &h);
|
||||
|
||||
// GL Viewport stuff. you can avoid doing this if viewport is all the
|
||||
// same as last frame if you want
|
||||
gl->glViewport(0, 0, w, h);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void
|
||||
_draw_gl(Evas_Object *obj)
|
||||
{
|
||||
Evas_GL_API *gl = elm_glview_gl_api_get(obj);
|
||||
GLData *gld = evas_object_data_get(obj, "gld");
|
||||
if (!gld) return;
|
||||
int w, h;
|
||||
|
||||
elm_glview_size_get(obj, &w, &h);
|
||||
|
||||
gl->glViewport(0, 0, w, h);
|
||||
gl->glClearColor(red,0.8,0.3,1);
|
||||
gl->glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
// Draw a Triangle
|
||||
gl->glEnable(GL_BLEND);
|
||||
|
||||
gl->glUseProgram(gld->program);
|
||||
|
||||
gl->glBindBuffer(GL_ARRAY_BUFFER, gld->vbo);
|
||||
gl->glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE,
|
||||
0, 0);
|
||||
gl->glEnableVertexAttribArray(0);
|
||||
|
||||
gl->glDrawArrays(GL_TRIANGLES, 0, 3);
|
||||
|
||||
// Optional - Flush the GL pipeline
|
||||
gl->glFinish();
|
||||
|
||||
red -= 0.1;
|
||||
if (red < 0.0) red = 1.0;
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
_anim(void *data)
|
||||
{
|
||||
elm_glview_changed_set(data);
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
_on_done(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
evas_object_del((Evas_Object*)data);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
_del(void *data __UNUSED__, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Ecore_Animator *ani = evas_object_data_get(obj, "ani");
|
||||
ecore_animator_del(ani);
|
||||
}
|
||||
|
||||
|
||||
TEST_START(test_glview_simple)
|
||||
{
|
||||
Evas_Object *bg, *bx, *bt, *gl;
|
||||
Ecore_Animator *ani;
|
||||
GLData *gld = NULL;
|
||||
|
||||
if (!(gld = calloc(1, sizeof(GLData)))) return;
|
||||
|
||||
// Set the engine to opengl_x11
|
||||
elm_engine_set("opengl_x11");
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
gl = elm_glview_add(win);
|
||||
evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_glview_mode_set(gl, ELM_GLVIEW_ALPHA | ELM_GLVIEW_DEPTH);
|
||||
elm_glview_resize_policy_set(gl, ELM_GLVIEW_RESIZE_POLICY_RECREATE);
|
||||
elm_glview_render_policy_set(gl, ELM_GLVIEW_RENDER_POLICY_ON_DEMAND);
|
||||
elm_glview_init_func_set(gl, _init_gl);
|
||||
elm_glview_del_func_set(gl, _del_gl);
|
||||
elm_glview_resize_func_set(gl, _resize_gl);
|
||||
elm_glview_render_func_set(gl, _draw_gl);
|
||||
elm_box_pack_end(bx, gl);
|
||||
evas_object_show(gl);
|
||||
|
||||
elm_object_focus_set(gl, EINA_TRUE);
|
||||
|
||||
ani = ecore_animator_add(_anim, gl);
|
||||
gld->glapi = elm_glview_gl_api_get(gl);
|
||||
evas_object_data_set(gl, "ani", ani);
|
||||
evas_object_data_set(gl, "gld", gld);
|
||||
evas_object_event_callback_add(gl, EVAS_CALLBACK_DEL, _del, gl);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "OK");
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", _on_done, win);
|
||||
|
||||
evas_object_resize(win, 320, 480);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,176 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
static void
|
||||
_ch_grid(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
int x, y, w, h;
|
||||
|
||||
elm_grid_pack_get(obj, &x, &y, &w, &h);
|
||||
elm_grid_pack_set(obj, x - 1, y - 1, w + 2, h + 2);
|
||||
}
|
||||
|
||||
struct _Api_Data
|
||||
{
|
||||
Evas_Object *grid;
|
||||
Evas_Object *child;
|
||||
};
|
||||
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 __UNUSED__, 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(a->bt, str);
|
||||
elm_object_disabled_set(a->bt, a->state == API_STATE_LAST);
|
||||
}
|
||||
|
||||
TEST_START(test_grid)
|
||||
{
|
||||
Evas_Object *bg, *gd, *bt, *rc, *en;
|
||||
Api_Data *dt = malloc(sizeof(Api_Data));
|
||||
api->data = dt;
|
||||
api->free_data = EINA_TRUE;
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
dt->grid = gd;
|
||||
evas_object_show(gd);
|
||||
|
||||
en = elm_entry_add(win);
|
||||
elm_entry_scrollable_set(en, EINA_TRUE);
|
||||
elm_entry_entry_set(en, "Entry text");
|
||||
elm_entry_single_line_set(en, 1);
|
||||
elm_grid_pack(gd, en, 50, 10, 40, 10);
|
||||
evas_object_show(en);
|
||||
|
||||
en = elm_entry_add(win);
|
||||
elm_entry_scrollable_set(en, EINA_TRUE);
|
||||
elm_entry_entry_set(en, "Entry text 2");
|
||||
elm_entry_single_line_set(en, 1);
|
||||
elm_grid_pack(gd, en, 60, 20, 30, 10);
|
||||
evas_object_show(en);
|
||||
|
||||
api->bt = elm_button_add(win);
|
||||
elm_object_text_set(api->bt, "Next API function");
|
||||
evas_object_smart_callback_add(api->bt, "clicked", _api_bt_clicked, (void *) api);
|
||||
elm_grid_pack(gd, api->bt, 30, 0, 40, 10);
|
||||
elm_object_disabled_set(api->bt, api->state == API_STATE_LAST);
|
||||
evas_object_show(api->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);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button");
|
||||
elm_grid_pack(gd, bt, 10, 10, 40, 20);
|
||||
dt->child = bt;
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button");
|
||||
elm_grid_pack(gd, bt, 10, 30, 20, 50);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button");
|
||||
elm_grid_pack(gd, bt, 80, 80, 20, 20);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Change");
|
||||
elm_grid_pack(gd, bt, 40, 40, 20, 20);
|
||||
evas_object_smart_callback_add(bt, "clicked", _ch_grid, gd);
|
||||
evas_object_show(bt);
|
||||
|
||||
rc = evas_object_rectangle_add(evas_object_evas_get(win));
|
||||
evas_object_color_set(rc, 128, 0, 0, 128);
|
||||
elm_grid_pack(gd, rc, 40, 70, 20, 10);
|
||||
evas_object_show(rc);
|
||||
|
||||
rc = evas_object_rectangle_add(evas_object_evas_get(win));
|
||||
evas_object_color_set(rc, 0, 128, 0, 128);
|
||||
elm_grid_pack(gd, rc, 60, 70, 10, 10);
|
||||
evas_object_show(rc);
|
||||
|
||||
rc = evas_object_rectangle_add(evas_object_evas_get(win));
|
||||
evas_object_color_set(rc, 0, 0, 128, 128);
|
||||
elm_grid_pack(gd, rc, 40, 80, 10, 10);
|
||||
evas_object_show(rc);
|
||||
|
||||
rc = evas_object_rectangle_add(evas_object_evas_get(win));
|
||||
evas_object_color_set(rc, 128, 0, 128, 128);
|
||||
elm_grid_pack(gd, rc, 50, 80, 10, 10);
|
||||
evas_object_show(rc);
|
||||
|
||||
rc = evas_object_rectangle_add(evas_object_evas_get(win));
|
||||
evas_object_color_set(rc, 128, 64, 0, 128);
|
||||
elm_grid_pack(gd, rc, 60, 80, 10, 10);
|
||||
evas_object_show(rc);
|
||||
|
||||
evas_object_resize(win, 480, 480);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,162 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
static void
|
||||
my_hover_bt(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *hv = data;
|
||||
|
||||
evas_object_show(hv);
|
||||
}
|
||||
|
||||
TEST_START(test_hover)
|
||||
{
|
||||
Evas_Object *bg, *bx, *bt, *hv, *ic;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
hv = elm_hover_add(win);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_hover_bt, hv);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
elm_hover_parent_set(hv, win);
|
||||
elm_hover_target_set(hv, bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Popup");
|
||||
elm_hover_content_set(hv, "middle", bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
elm_box_pack_end(bx, ic);
|
||||
evas_object_show(ic);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Top 1");
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Top 2");
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Top 3");
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_show(bx);
|
||||
elm_hover_content_set(hv, "top", bx);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Bottom");
|
||||
elm_hover_content_set(hv, "bottom", bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Left");
|
||||
elm_hover_content_set(hv, "left", bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Right");
|
||||
elm_hover_content_set(hv, "right", bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_size_hint_min_set(bg, 160, 160);
|
||||
evas_object_size_hint_max_set(bg, 640, 640);
|
||||
evas_object_resize(win, 320, 320);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
TEST_START(test_hover2)
|
||||
{
|
||||
Evas_Object *bg, *bx, *bt, *hv, *ic;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
hv = elm_hover_add(win);
|
||||
elm_object_style_set(hv, "popout");
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_hover_bt, hv);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
elm_hover_parent_set(hv, win);
|
||||
elm_hover_target_set(hv, bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Popup");
|
||||
elm_hover_content_set(hv, "middle", bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
elm_box_pack_end(bx, ic);
|
||||
evas_object_show(ic);
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Top 1");
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Top 2");
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Top 3");
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
evas_object_show(bx);
|
||||
elm_hover_content_set(hv, "top", bx);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Bot");
|
||||
elm_hover_content_set(hv, "bottom", bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Left");
|
||||
elm_hover_content_set(hv, "left", bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Right");
|
||||
elm_hover_content_set(hv, "right", bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_size_hint_min_set(bg, 160, 160);
|
||||
evas_object_size_hint_max_set(bg, 640, 640);
|
||||
evas_object_resize(win, 320, 320);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,190 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
enum _api_state
|
||||
{
|
||||
HOVERSEL_HORIZ,
|
||||
HOVERSEL_END,
|
||||
HOVERSEL_LABAL_SET,
|
||||
HOVERSEL_ICON_UNSET,
|
||||
HOVERSEL_CLEAR_OPEN,
|
||||
HOVERSEL_CLEAR,
|
||||
API_STATE_LAST
|
||||
};
|
||||
typedef enum _api_state api_state;
|
||||
|
||||
static void
|
||||
set_api_state(api_data *api)
|
||||
{
|
||||
const Eina_List *items = elm_box_children_get(api->data);
|
||||
if(!eina_list_count(items))
|
||||
return;
|
||||
|
||||
/* use elm_box_children_get() to get list of children */
|
||||
switch(api->state)
|
||||
{ /* Put all api-changes under switch */
|
||||
case HOVERSEL_HORIZ: /* Make first hover horiz (0) */
|
||||
elm_hoversel_horizontal_set(eina_list_nth(items, 0), EINA_TRUE);
|
||||
elm_hoversel_hover_begin(eina_list_nth(items, 0));
|
||||
break;
|
||||
|
||||
case HOVERSEL_END: /* Make first hover horiz (1) */
|
||||
elm_hoversel_hover_begin(eina_list_nth(items, 1));
|
||||
elm_hoversel_hover_end(eina_list_nth(items, 1));
|
||||
break;
|
||||
|
||||
case HOVERSEL_LABAL_SET: /* set second hover label (2) */
|
||||
elm_object_text_set(eina_list_nth(items, 1), "Label from API");
|
||||
break;
|
||||
|
||||
case HOVERSEL_ICON_UNSET: /* 3 */
|
||||
elm_object_text_set(eina_list_nth(items, 5), "Label only");
|
||||
elm_object_part_content_unset(eina_list_nth(items, 5), "icon");
|
||||
break;
|
||||
|
||||
case HOVERSEL_CLEAR_OPEN: /* 4 */
|
||||
elm_hoversel_hover_begin(eina_list_nth(items, 1));
|
||||
elm_hoversel_clear(eina_list_nth(items, 1));
|
||||
break;
|
||||
|
||||
case HOVERSEL_CLEAR: /* 5 */
|
||||
elm_hoversel_clear(eina_list_nth(items, 0));
|
||||
break;
|
||||
|
||||
case API_STATE_LAST:
|
||||
break;
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_api_bt_clicked(void *data, Evas_Object *obj __UNUSED__, 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(a->bt, str);
|
||||
elm_object_disabled_set(a->bt, a->state == API_STATE_LAST);
|
||||
}
|
||||
|
||||
TEST_START(test_hoversel)
|
||||
{
|
||||
Evas_Object *bg, *bx, *bxx, *bt, *ic;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bxx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bxx);
|
||||
evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bxx);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
api->data = bx;
|
||||
evas_object_show(bx);
|
||||
|
||||
api->bt = elm_button_add(win);
|
||||
elm_object_text_set(api->bt, "Next API function");
|
||||
evas_object_smart_callback_add(api->bt, "clicked", _api_bt_clicked, (void *) api);
|
||||
elm_box_pack_end(bxx, api->bt);
|
||||
elm_object_disabled_set(api->bt, api->state == API_STATE_LAST);
|
||||
evas_object_show(api->bt);
|
||||
|
||||
elm_box_pack_end(bxx, bx);
|
||||
|
||||
bt = elm_hoversel_add(win);
|
||||
// FIXME: need to add horizontal hoversel theme to default some day
|
||||
// elm_hoversel_horizontal_set(bt, 1);
|
||||
elm_hoversel_hover_parent_set(bt, win);
|
||||
elm_object_text_set(bt, "Labels");
|
||||
elm_hoversel_item_add(bt, "Item 1", NULL, ELM_ICON_NONE, NULL, NULL);
|
||||
elm_hoversel_item_add(bt, "Item 2", NULL, ELM_ICON_NONE, NULL, NULL);
|
||||
elm_hoversel_item_add(bt, "Item 3", NULL, ELM_ICON_NONE, NULL, NULL);
|
||||
elm_hoversel_item_add(bt, "Item 4 - Long Label Here", NULL, ELM_ICON_NONE, NULL, NULL);
|
||||
evas_object_size_hint_weight_set(bt, 0.0, 0.0);
|
||||
evas_object_size_hint_align_set(bt, 0.5, 0.5);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_hoversel_add(win);
|
||||
elm_hoversel_hover_parent_set(bt, win);
|
||||
elm_object_text_set(bt, "Some Icons");
|
||||
elm_hoversel_item_add(bt, "Item 1", NULL, ELM_ICON_NONE, NULL, NULL);
|
||||
elm_hoversel_item_add(bt, "Item 2", NULL, ELM_ICON_NONE, NULL, NULL);
|
||||
elm_hoversel_item_add(bt, "Item 3", "home", ELM_ICON_STANDARD, NULL, NULL);
|
||||
elm_hoversel_item_add(bt, "Item 4", "close", ELM_ICON_STANDARD, NULL, NULL);
|
||||
evas_object_size_hint_weight_set(bt, 0.0, 0.0);
|
||||
evas_object_size_hint_align_set(bt, 0.5, 0.5);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_hoversel_add(win);
|
||||
elm_hoversel_hover_parent_set(bt, win);
|
||||
elm_object_text_set(bt, "All Icons");
|
||||
elm_hoversel_item_add(bt, "Item 1", "apps", ELM_ICON_STANDARD, NULL, NULL);
|
||||
elm_hoversel_item_add(bt, "Item 2", "arrow_down", ELM_ICON_STANDARD, NULL, NULL);
|
||||
elm_hoversel_item_add(bt, "Item 3", "home", ELM_ICON_STANDARD, NULL, NULL);
|
||||
elm_hoversel_item_add(bt, "Item 4", "close", ELM_ICON_STANDARD, NULL, NULL);
|
||||
evas_object_size_hint_weight_set(bt, 0.0, 0.0);
|
||||
evas_object_size_hint_align_set(bt, 0.5, 0.5);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_hoversel_add(win);
|
||||
elm_hoversel_hover_parent_set(bt, win);
|
||||
elm_object_text_set(bt, "All Icons");
|
||||
elm_hoversel_item_add(bt, "Item 1", "apps", ELM_ICON_STANDARD, NULL, NULL);
|
||||
snprintf(buf, sizeof(buf), "%s/images/sky_02.jpg", elm_app_data_dir_get());
|
||||
elm_hoversel_item_add(bt, "Item 2", buf, ELM_ICON_FILE, NULL, NULL);
|
||||
elm_hoversel_item_add(bt, "Item 3", "home", ELM_ICON_STANDARD, NULL, NULL);
|
||||
elm_hoversel_item_add(bt, "Item 4", "close", ELM_ICON_STANDARD, NULL, NULL);
|
||||
evas_object_size_hint_weight_set(bt, 0.0, 0.0);
|
||||
evas_object_size_hint_align_set(bt, 0.5, 0.5);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_hoversel_add(win);
|
||||
elm_hoversel_hover_parent_set(bt, win);
|
||||
elm_object_text_set(bt, "Disabled Hoversel");
|
||||
elm_hoversel_item_add(bt, "Item 1", "apps", ELM_ICON_STANDARD, NULL, NULL);
|
||||
elm_hoversel_item_add(bt, "Item 2", "close", ELM_ICON_STANDARD, NULL, NULL);
|
||||
elm_object_disabled_set(bt, 1);
|
||||
evas_object_size_hint_weight_set(bt, 0.0, 0.0);
|
||||
evas_object_size_hint_align_set(bt, 0.5, 0.5);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_hoversel_add(win);
|
||||
elm_hoversel_hover_parent_set(bt, win);
|
||||
elm_object_text_set(bt, "Icon + Label");
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/sky_03.jpg", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_object_part_content_set(bt, "icon", ic);
|
||||
evas_object_show(ic);
|
||||
|
||||
elm_hoversel_item_add(bt, "Item 1", "apps", ELM_ICON_STANDARD, NULL, NULL);
|
||||
elm_hoversel_item_add(bt, "Item 2", "arrow_down", ELM_ICON_STANDARD, NULL, NULL);
|
||||
elm_hoversel_item_add(bt, "Item 3", "home", ELM_ICON_STANDARD, NULL, NULL);
|
||||
elm_hoversel_item_add(bt, "Item 4", "close", ELM_ICON_STANDARD, NULL, NULL);
|
||||
evas_object_size_hint_weight_set(bt, 0.0, 0.0);
|
||||
evas_object_size_hint_align_set(bt, 0.5, 0.5);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_resize(win, 320, 300);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,31 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
static void
|
||||
icon_clicked(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("clicked!\n");
|
||||
}
|
||||
|
||||
TEST_START(test_icon)
|
||||
{
|
||||
Evas_Object *ic;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
elm_win_alpha_set(win, 1);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
elm_icon_no_scale_set(ic, 1);
|
||||
evas_object_size_hint_weight_set(ic, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_fill_set(ic, 0.5, 0.5);
|
||||
elm_win_resize_object_add(win, ic);
|
||||
evas_object_show(ic);
|
||||
|
||||
evas_object_smart_callback_add(ic, "clicked", icon_clicked, NULL);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,98 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
static Elm_Genlist_Item_Class it_desk;
|
||||
|
||||
static char *
|
||||
desk_gl_label_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
|
||||
{
|
||||
#ifdef ELM_EFREET
|
||||
Efreet_Desktop *d = (Efreet_Desktop *)data;
|
||||
return strdup(d->name);
|
||||
#else
|
||||
return NULL;
|
||||
(void)data;
|
||||
#endif
|
||||
}
|
||||
static Evas_Object *
|
||||
desk_gl_content_get(void *data, Evas_Object *obj, const char *part)
|
||||
{
|
||||
#ifdef ELM_EFREET
|
||||
Efreet_Desktop *d = (Efreet_Desktop *)data;
|
||||
Evas_Object *ic;
|
||||
|
||||
ic = elm_icon_add(obj);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
if (!(!strcmp(part, "elm.swallow.icon"))) return ic;
|
||||
if (!d->icon) return ic;
|
||||
elm_icon_standard_set(ic, d->icon);
|
||||
return ic;
|
||||
#else
|
||||
return NULL;
|
||||
(void)data;
|
||||
(void)obj;
|
||||
(void)part;
|
||||
#endif
|
||||
}
|
||||
static void
|
||||
desk_gl_del(void *data, Evas_Object *obj __UNUSED__)
|
||||
{
|
||||
#ifdef ELM_EFREET
|
||||
Efreet_Desktop *d = (Efreet_Desktop *)data;
|
||||
efreet_desktop_free(d);
|
||||
#else
|
||||
return;
|
||||
(void)data;
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef ELM_EFREET
|
||||
static void
|
||||
desktop_sel(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("sel\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
TEST_START(test_icon_desktops)
|
||||
{
|
||||
Evas_Object *bg, *gl;
|
||||
#ifdef ELM_EFREET
|
||||
Eina_List *desktops;
|
||||
#endif
|
||||
|
||||
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);
|
||||
|
||||
it_desk.item_style = "default";
|
||||
it_desk.func.label_get = desk_gl_label_get;
|
||||
it_desk.func.content_get = desk_gl_content_get;
|
||||
it_desk.func.state_get = NULL;
|
||||
it_desk.func.del = desk_gl_del;
|
||||
|
||||
gl = elm_genlist_add(win);
|
||||
evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, gl);
|
||||
evas_object_show(gl);
|
||||
|
||||
#ifdef ELM_EFREET
|
||||
if (elm_need_efreet())
|
||||
{
|
||||
desktops = efreet_util_desktop_name_glob_list("*");
|
||||
if (desktops)
|
||||
{
|
||||
Efreet_Desktop *d;
|
||||
|
||||
EINA_LIST_FREE(desktops, d)
|
||||
elm_genlist_item_append(gl, &it_desk, d,
|
||||
NULL, ELM_GENLIST_ITEM_NONE,
|
||||
desktop_sel, NULL);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
evas_object_resize(win, 320, 480);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,350 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
static Elm_Genlist_Item_Class itci;
|
||||
char *gli_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
|
||||
{
|
||||
char buf[256];
|
||||
int j = (long)data;
|
||||
snprintf(buf, sizeof(buf), "%c%c",
|
||||
'A' + ((j >> 4) & 0xf),
|
||||
'a' + ((j ) & 0xf)
|
||||
);
|
||||
return strdup(buf);
|
||||
}
|
||||
|
||||
void
|
||||
index_changed2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
||||
{
|
||||
// called on a change but delayed in case multiple changes happen in a
|
||||
// short timespan
|
||||
elm_genlist_item_top_bring_in(elm_index_item_data_get(event_info));
|
||||
}
|
||||
|
||||
void
|
||||
index_changed(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
// this is calld on every change, no matter how often
|
||||
// elm_genlist_item_bring_in(event_info);
|
||||
}
|
||||
|
||||
void
|
||||
index_selected(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
||||
{
|
||||
// called on final select
|
||||
elm_genlist_item_top_bring_in(elm_index_item_data_get(event_info));
|
||||
}
|
||||
|
||||
struct _Idx_Data_Type
|
||||
{
|
||||
Evas_Object *id; /* Pointer to Index */
|
||||
Elm_Object_Item *item; /* Item we use for search */
|
||||
};
|
||||
typedef struct _Idx_Data_Type Idx_Data_Type;
|
||||
|
||||
enum _api_state
|
||||
{
|
||||
INDEX_LEVEL_SET,
|
||||
INDEX_ACTIVE_SET,
|
||||
INDEX_APPEND_RELATIVE,
|
||||
INDEX_PREPEND,
|
||||
INDEX_ITEM_DEL,
|
||||
INDEX_ITEM_FIND,
|
||||
INDEX_CLEAR,
|
||||
API_STATE_LAST
|
||||
};
|
||||
typedef enum _api_state api_state;
|
||||
|
||||
static void
|
||||
set_api_state(api_data *api)
|
||||
{
|
||||
Idx_Data_Type *d = api->data;
|
||||
switch(api->state)
|
||||
{ /* Put all api-changes under switch */
|
||||
case INDEX_LEVEL_SET: /* 0 */
|
||||
elm_index_active_set(d->id, EINA_TRUE);
|
||||
elm_index_item_level_set(d->id, (elm_index_item_level_get(d->id) ? 0 : 1));
|
||||
break;
|
||||
|
||||
case INDEX_ACTIVE_SET: /* 1 */
|
||||
elm_index_active_set(d->id, EINA_FALSE);
|
||||
break;
|
||||
|
||||
case INDEX_APPEND_RELATIVE: /* 2 */
|
||||
elm_index_item_append_relative(d->id, "W", d->item, elm_index_item_find(d->id, d->item));
|
||||
break;
|
||||
|
||||
case INDEX_PREPEND: /* 3 */
|
||||
elm_index_item_prepend(d->id, "D", d->item);
|
||||
break;
|
||||
|
||||
case INDEX_ITEM_DEL: /* 4 */
|
||||
elm_index_item_del(d->id, elm_index_item_find(d->id, d->item));
|
||||
break;
|
||||
|
||||
case INDEX_ITEM_FIND: /* 5 */
|
||||
{
|
||||
Elm_Object_Item *i = elm_index_item_find(d->id, d->item);
|
||||
if(i)
|
||||
{
|
||||
printf("Item Find - Found Item.\n");
|
||||
elm_index_item_del(d->id, i);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case INDEX_CLEAR: /* 6 */
|
||||
elm_index_item_clear(d->id);
|
||||
break;
|
||||
|
||||
case API_STATE_LAST:
|
||||
break;
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_api_bt_clicked(void *data, Evas_Object *obj __UNUSED__, 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(a->bt, str);
|
||||
elm_object_disabled_set(a->bt, a->state == API_STATE_LAST);
|
||||
}
|
||||
|
||||
TEST_START(test_index)
|
||||
{
|
||||
Evas_Object *bg, *bxx, *gl, *id;
|
||||
Elm_Object_Item *glit;
|
||||
int i, j;
|
||||
Idx_Data_Type *dt = malloc(sizeof(Idx_Data_Type));
|
||||
api->data = dt;
|
||||
api->free_data = EINA_TRUE;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bxx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bxx);
|
||||
evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bxx);
|
||||
|
||||
gl = elm_genlist_add(win);
|
||||
evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_show(gl);
|
||||
|
||||
dt->id = id = elm_index_add(win);
|
||||
evas_object_size_hint_weight_set(id, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(id, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_win_resize_object_add(win, id);
|
||||
|
||||
api->bt = elm_button_add(win);
|
||||
elm_object_text_set(api->bt, "Next API function");
|
||||
evas_object_smart_callback_add(api->bt, "clicked", _api_bt_clicked, (void *) api);
|
||||
elm_box_pack_end(bxx, api->bt);
|
||||
elm_object_disabled_set(api->bt, api->state == API_STATE_LAST);
|
||||
evas_object_show(api->bt);
|
||||
|
||||
elm_box_pack_end(bxx, gl);
|
||||
|
||||
evas_object_show(id);
|
||||
|
||||
itci.item_style = "default";
|
||||
itci.func.text_get = gli_text_get;
|
||||
itci.func.content_get = NULL;
|
||||
itci.func.state_get = NULL;
|
||||
itci.func.del = NULL;
|
||||
|
||||
j = 0;
|
||||
for (i = 0; i < 100; i++)
|
||||
{
|
||||
glit = elm_genlist_item_append(gl, &itci,
|
||||
(void *)(long)j/* item data */,
|
||||
NULL/* parent */,
|
||||
ELM_GENLIST_ITEM_NONE,
|
||||
NULL/* func */, NULL/* func data */);
|
||||
if (!(j & 0xf))
|
||||
{
|
||||
char buf[32];
|
||||
|
||||
snprintf(buf, sizeof(buf), "%c", 'A' + ((j >> 4) & 0xf));
|
||||
elm_index_item_append(id, buf, glit);
|
||||
}
|
||||
j += 2;
|
||||
}
|
||||
evas_object_smart_callback_add(id, "delay,changed", index_changed2, NULL);
|
||||
evas_object_smart_callback_add(id, "changed", index_changed, NULL);
|
||||
evas_object_smart_callback_add(id, "selected", index_selected, NULL);
|
||||
elm_index_item_go(id, 0);
|
||||
|
||||
evas_object_resize(win, 320, 480);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
/***********/
|
||||
|
||||
typedef struct _Test_Index2_Elements
|
||||
{
|
||||
Evas_Object *entry, *lst, *id;
|
||||
} Test_Index2_Elements;
|
||||
|
||||
void
|
||||
test_index2_del(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
/* FIXME it won't be called if elm_test main window is closed */
|
||||
free(data);
|
||||
}
|
||||
|
||||
int
|
||||
test_index2_cmp(const void *data1, const void *data2)
|
||||
{
|
||||
const char *label1, *label2;
|
||||
const Elm_Object_Item *list_it1 = data1;
|
||||
const Elm_Object_Item *list_it2 = data2;
|
||||
|
||||
label1 = elm_list_item_label_get(list_it1);
|
||||
label2 = elm_list_item_label_get(list_it2);
|
||||
|
||||
return strcasecmp(label1, label2);
|
||||
}
|
||||
|
||||
int
|
||||
test_index2_icmp(const void *data1, const void *data2)
|
||||
{
|
||||
const char *label1, *label2;
|
||||
const Elm_Object_Item *index_it1 = data1;
|
||||
const Elm_Object_Item *index_it2 = data2;
|
||||
|
||||
label1 = elm_index_item_letter_get(index_it1);
|
||||
label2 = elm_index_item_letter_get(index_it2);
|
||||
|
||||
return strcasecmp(label1, label2);
|
||||
}
|
||||
|
||||
void
|
||||
test_index2_it_add(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Test_Index2_Elements *gui = data;
|
||||
Elm_Object_Item *list_it;
|
||||
const char *label;
|
||||
char letter[2];
|
||||
|
||||
label = elm_entry_entry_get(gui->entry);
|
||||
snprintf(letter, sizeof(letter), "%c", label[0]);
|
||||
list_it = elm_list_item_sorted_insert(gui->lst, label, NULL, NULL, NULL,
|
||||
NULL, test_index2_cmp);
|
||||
elm_index_item_sorted_insert(gui->id, letter, list_it, test_index2_icmp,
|
||||
test_index2_cmp);
|
||||
elm_list_go(gui->lst);
|
||||
/* FIXME it's not showing the recently added item */
|
||||
elm_list_item_show(list_it);
|
||||
}
|
||||
|
||||
void
|
||||
test_index2_it_del(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Test_Index2_Elements *gui = data;
|
||||
const char *label, *label_next;
|
||||
Elm_Object_Item *lit, *lit_next;
|
||||
|
||||
lit = elm_list_selected_item_get(obj);
|
||||
lit_next = elm_list_item_next(lit);
|
||||
|
||||
if (!lit_next)
|
||||
{
|
||||
elm_index_item_del(gui->id, elm_index_item_find(gui->id, lit));
|
||||
elm_list_item_del(lit);
|
||||
return;
|
||||
}
|
||||
|
||||
label = elm_list_item_label_get(lit);
|
||||
label_next = elm_list_item_label_get(lit_next);
|
||||
|
||||
if (label[0] == label_next[0])
|
||||
{
|
||||
Elm_Object_Item *iit;
|
||||
iit = elm_index_item_find(gui->id, lit);
|
||||
elm_index_item_data_set(iit, lit_next);
|
||||
}
|
||||
else
|
||||
elm_index_item_del(gui->id, elm_index_item_find(gui->id, lit));
|
||||
|
||||
elm_list_item_del(lit);
|
||||
}
|
||||
|
||||
void
|
||||
test_index2_id_changed(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
||||
{
|
||||
elm_list_item_show(event_info);
|
||||
}
|
||||
|
||||
TEST_START(test_index2)
|
||||
{
|
||||
Evas_Object *bg, *box, *bt;
|
||||
Test_Index2_Elements *gui;
|
||||
|
||||
gui = malloc(sizeof(*gui));
|
||||
|
||||
evas_object_smart_callback_add(win, "delete,request", test_index2_del, gui);
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
box = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, box);
|
||||
evas_object_show(box);
|
||||
|
||||
gui->id = elm_index_add(win);
|
||||
evas_object_size_hint_weight_set(gui->id, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, gui->id);
|
||||
evas_object_smart_callback_add(gui->id, "delay,changed",
|
||||
test_index2_id_changed, NULL);
|
||||
evas_object_show(gui->id);
|
||||
|
||||
gui->entry = elm_entry_add(win);
|
||||
elm_entry_scrollable_set(gui->entry, EINA_TRUE);
|
||||
elm_entry_entry_set(gui->entry, "Label");
|
||||
elm_entry_single_line_set(gui->entry, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(gui->entry, EVAS_HINT_EXPAND, 0);
|
||||
evas_object_size_hint_fill_set(gui->entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_box_pack_end(box, gui->entry);
|
||||
evas_object_show(gui->entry);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Add");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0);
|
||||
evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_box_pack_end(box, bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", test_index2_it_add, gui);
|
||||
evas_object_show(bt);
|
||||
|
||||
gui->lst = elm_list_add(win);
|
||||
elm_box_pack_end(box, gui->lst);
|
||||
evas_object_size_hint_weight_set(gui->lst, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_fill_set(gui->lst, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_smart_callback_add(gui->lst, "selected", test_index2_it_del,
|
||||
gui);
|
||||
elm_list_go(gui->lst);
|
||||
evas_object_show(gui->lst);
|
||||
|
||||
evas_object_resize(win, 320, 480);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,114 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
enum _api_state
|
||||
{
|
||||
CONTENT_UNSET,
|
||||
API_STATE_LAST
|
||||
};
|
||||
typedef enum _api_state api_state;
|
||||
|
||||
static void
|
||||
set_api_state(api_data *api)
|
||||
{
|
||||
Evas_Object *t;
|
||||
switch(api->state)
|
||||
{
|
||||
case CONTENT_UNSET:
|
||||
t = elm_win_inwin_content_unset(api->data);
|
||||
evas_object_del(t);
|
||||
t = elm_label_add(elm_object_parent_widget_get(api->data));
|
||||
elm_object_text_set(t, "Content was unset.<br>DONE!");
|
||||
elm_win_inwin_content_set(api->data, t);
|
||||
evas_object_show(t);
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_api_bt_clicked(void *data, Evas_Object *obj __UNUSED__, 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(a->bt, str);
|
||||
elm_object_disabled_set(a->bt, a->state == API_STATE_LAST);
|
||||
}
|
||||
|
||||
TEST_START(test_inwin)
|
||||
{
|
||||
Evas_Object *bg, *bxx, *inwin, *lb;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
inwin = elm_win_inwin_add(win);
|
||||
api->data = inwin;
|
||||
evas_object_show(inwin);
|
||||
|
||||
bxx = elm_box_add(inwin);
|
||||
evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bxx);
|
||||
|
||||
api->bt = elm_button_add(inwin);
|
||||
elm_object_text_set(api->bt, "Next API function");
|
||||
evas_object_smart_callback_add(api->bt, "clicked", _api_bt_clicked, (void *) api);
|
||||
elm_box_pack_end(bxx, api->bt);
|
||||
elm_object_disabled_set(api->bt, api->state == API_STATE_LAST);
|
||||
evas_object_show(api->bt);
|
||||
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb,
|
||||
"This is an \"inwin\" - a window in a<br>"
|
||||
"window. This is handy for quick popups<br>"
|
||||
"you want centered, taking over the window<br>"
|
||||
"until dismissed somehow. Unlike hovers they<br>"
|
||||
"don't hover over their target.");
|
||||
elm_box_pack_end(bxx, lb);
|
||||
elm_win_inwin_content_set(inwin, bxx);
|
||||
evas_object_show(lb);
|
||||
|
||||
evas_object_resize(win, 320, 240);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
TEST_START(test_inwin2)
|
||||
{
|
||||
Evas_Object *bg, *inwin, *lb;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
inwin = elm_win_inwin_add(win);
|
||||
elm_object_style_set(inwin, "minimal_vertical");
|
||||
evas_object_show(inwin);
|
||||
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb,
|
||||
"This is an \"inwin\" - a window in a<br>"
|
||||
"window. This is handy for quick popups<br>"
|
||||
"you want centered, taking over the window<br>"
|
||||
"until dismissed somehow. Unlike hovers they<br>"
|
||||
"don't hover over their target.<br>"
|
||||
"<br>"
|
||||
"This inwin style compacts itself vertically<br>"
|
||||
"to the size of its contents minimum size.");
|
||||
elm_win_inwin_content_set(inwin, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
evas_object_resize(win, 320, 240);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,68 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
TEST_START(test_label)
|
||||
{
|
||||
Evas_Object *bg, *bx, *lb;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb,
|
||||
"<b>This is a small label</b>"
|
||||
);
|
||||
evas_object_size_hint_weight_set(lb, 0.0, 0.0);
|
||||
evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_box_pack_end(bx, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb,
|
||||
"This is a larger label with newlines<br>"
|
||||
"to make it bigger, bit it won't expand or wrap<br>"
|
||||
"just be a block of text that can't change its<br>"
|
||||
"formatting as it's fixed based on text<br>"
|
||||
);
|
||||
evas_object_size_hint_weight_set(lb, 0.0, 0.0);
|
||||
evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_box_pack_end(bx, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
lb = elm_label_add(win);
|
||||
elm_label_line_wrap_set(lb, ELM_WRAP_CHAR);
|
||||
elm_object_text_set(lb,
|
||||
"<b>"
|
||||
"This is more text designed to line-wrap here as "
|
||||
"This object is resized horizontally. As it is "
|
||||
"resized vertically though, nothing should change. "
|
||||
"The amount of space allocated vertically should "
|
||||
"change as horizontal size changes."
|
||||
"</b>"
|
||||
);
|
||||
evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_box_pack_end(bx, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb,
|
||||
"This small label set to wrap"
|
||||
);
|
||||
evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_box_pack_end(bx, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
evas_object_resize(win, 320, 300);
|
||||
|
||||
evas_object_show(bx);
|
||||
evas_object_show(win);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
}
|
||||
TEST_END
|
|
@ -1,906 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
static void
|
||||
mode_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *win = data;
|
||||
Evas_Object *mb;
|
||||
Eina_List *mbs, *l;
|
||||
|
||||
mbs = evas_object_data_get(win, "mbs");
|
||||
EINA_LIST_FOREACH(mbs, l, mb)
|
||||
{
|
||||
if (elm_mapbuf_enabled_get(mb))
|
||||
elm_mapbuf_enabled_set(mb, 0);
|
||||
else
|
||||
elm_mapbuf_enabled_set(mb, 1);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
full_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *win = data;
|
||||
elm_win_fullscreen_set(win, !elm_win_fullscreen_get(win));
|
||||
}
|
||||
|
||||
static void
|
||||
alpha_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *win = data;
|
||||
Evas_Object *mb;
|
||||
Eina_List *mbs, *l;
|
||||
|
||||
mbs = evas_object_data_get(win, "mbs");
|
||||
EINA_LIST_FOREACH(mbs, l, mb)
|
||||
{
|
||||
elm_mapbuf_alpha_set(mb, elm_check_state_get(obj));
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
smooth_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *win = data;
|
||||
Evas_Object *mb;
|
||||
Eina_List *mbs, *l;
|
||||
|
||||
mbs = evas_object_data_get(win, "mbs");
|
||||
EINA_LIST_FOREACH(mbs, l, mb)
|
||||
{
|
||||
elm_mapbuf_smooth_set(mb, elm_check_state_get(obj));
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
close_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
evas_object_del(data);
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
tim_cb(void *data)
|
||||
{
|
||||
Evas_Object *tb, *sc, *mb;
|
||||
Eina_List *list, *l;
|
||||
|
||||
evas_object_data_del(data, "timer");
|
||||
tb = evas_object_data_get(data, "tb");
|
||||
sc = evas_object_data_get(data, "sc");
|
||||
elm_object_scroll_freeze_push(sc);
|
||||
evas_object_data_set(data, "dragging", (void *)(long)(1));
|
||||
evas_object_color_set(data, 255, 255, 255, 255);
|
||||
list = (Eina_List *)evas_object_data_get
|
||||
(elm_object_top_widget_get(data), "mbs");
|
||||
EINA_LIST_FOREACH(list, l, mb)
|
||||
evas_object_color_set(mb, 128, 128, 128, 128);
|
||||
elm_table_unpack(tb, data);
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
ic_del_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Ecore_Timer *tim;
|
||||
|
||||
tim = evas_object_data_get(obj, "timer");
|
||||
if (tim)
|
||||
{
|
||||
evas_object_data_del(obj, "timer");
|
||||
ecore_timer_del(tim);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
ic_down_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Evas_Event_Mouse_Down *ev = event_info;
|
||||
Ecore_Timer *tim;
|
||||
Evas_Coord x, y, w, h;
|
||||
|
||||
evas_object_color_set(data, 128, 0, 0, 128);
|
||||
|
||||
tim = evas_object_data_get(obj, "timer");
|
||||
if (tim) evas_object_data_del(obj, "timer");
|
||||
tim = ecore_timer_add(1.0, tim_cb, obj);
|
||||
evas_object_data_set(obj, "timer", tim);
|
||||
|
||||
evas_object_geometry_get(data, &x, &y, &w, &h);
|
||||
evas_object_data_set(obj, "x", (void *)(long)(ev->canvas.x));
|
||||
evas_object_data_set(obj, "y", (void *)(long)(ev->canvas.y));
|
||||
evas_object_data_set(obj, "px", (void *)(long)(x));
|
||||
evas_object_data_set(obj, "py", (void *)(long)(y));
|
||||
|
||||
if (ev->flags & EVAS_BUTTON_DOUBLE_CLICK)
|
||||
{
|
||||
printf("double click %p\n", obj);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
ic_up_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Evas_Event_Mouse_Up *ev = event_info;
|
||||
Ecore_Timer *tim;
|
||||
|
||||
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
|
||||
evas_object_color_set(data, 255, 255, 255, 255);
|
||||
tim = evas_object_data_get(obj, "timer");
|
||||
if (tim)
|
||||
{
|
||||
evas_object_data_del(obj, "timer");
|
||||
ecore_timer_del(tim);
|
||||
}
|
||||
if (evas_object_data_get(obj, "dragging"))
|
||||
{
|
||||
Evas_Object *tb, *sc, *mb;
|
||||
Eina_List *list, *l;
|
||||
int tbx, tby;
|
||||
|
||||
evas_object_data_del(obj, "dragging");
|
||||
tb = evas_object_data_get(obj, "tb");
|
||||
sc = evas_object_data_get(obj, "sc");
|
||||
elm_object_scroll_freeze_pop(sc);
|
||||
tbx = (int)(long)evas_object_data_get(obj, "tbx");
|
||||
tby = (int)(long)evas_object_data_get(obj, "tby");
|
||||
elm_table_pack(tb, obj, tbx, tby, 1, 1);
|
||||
list = (Eina_List *)evas_object_data_get
|
||||
(elm_object_top_widget_get(obj), "mbs");
|
||||
EINA_LIST_FOREACH(list, l, mb)
|
||||
evas_object_color_set(mb, 255, 255, 255, 255);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
ic_move_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Evas_Event_Mouse_Move *ev = event_info;
|
||||
if (evas_object_data_get(obj, "dragging"))
|
||||
{
|
||||
Evas_Coord x, y, px, py;
|
||||
|
||||
x = (Evas_Coord)(long)evas_object_data_get(obj, "x");
|
||||
y = (Evas_Coord)(long)evas_object_data_get(obj, "y");
|
||||
px = (Evas_Coord)(long)evas_object_data_get(obj, "px");
|
||||
py = (Evas_Coord)(long)evas_object_data_get(obj, "py");
|
||||
evas_object_move(obj,
|
||||
px + ev->cur.canvas.x - x,
|
||||
py + ev->cur.canvas.y - y);
|
||||
}
|
||||
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
|
||||
{
|
||||
Ecore_Timer *tim;
|
||||
|
||||
tim = evas_object_data_get(obj, "timer");
|
||||
if (tim)
|
||||
{
|
||||
evas_object_data_del(obj, "timer");
|
||||
ecore_timer_del(tim);
|
||||
}
|
||||
evas_object_color_set(data, 255, 255, 255, 255);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
TEST_START(test_launcher)
|
||||
{
|
||||
Evas_Object *bg, *sc, *tb, *pad, *bt, *ic, *lb, *tb2, *mb, *ck, *bx, *bx2;
|
||||
int i, j, k, n, m;
|
||||
char buf[PATH_MAX];
|
||||
const char *names[] =
|
||||
{
|
||||
"Hello", "World", "Spam", "Egg",
|
||||
"Ham", "Good", "Bad", "Milk",
|
||||
"Smell", "Of", "Sky", "Gold",
|
||||
"Hole", "Pig", "And", "Calm"
|
||||
};
|
||||
Eina_List *mbs = NULL;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/sky_04.jpg", elm_app_data_dir_get());
|
||||
elm_bg_file_set(bg, buf, NULL);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_box_homogeneous_set(bx, EINA_TRUE);
|
||||
elm_box_horizontal_set(bx, EINA_TRUE);
|
||||
|
||||
sc = elm_scroller_add(win);
|
||||
elm_scroller_bounce_set(sc, 1, 0);
|
||||
elm_scroller_policy_set(sc, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
|
||||
evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_fill_set(sc, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
n = 0; m = 0;
|
||||
for (k = 0 ; k < 8; k++)
|
||||
{
|
||||
tb = elm_table_add(win);
|
||||
evas_object_size_hint_weight_set(tb, 0.0, 0.0);
|
||||
evas_object_size_hint_align_set(tb, 0.5, 0.5);
|
||||
|
||||
pad = evas_object_rectangle_add(evas_object_evas_get(win));
|
||||
evas_object_size_hint_min_set(pad, 470, 4);
|
||||
evas_object_size_hint_weight_set(pad, 0.0, 0.0);
|
||||
evas_object_size_hint_align_set(pad, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, pad, 1, 0, 5, 1);
|
||||
|
||||
pad = evas_object_rectangle_add(evas_object_evas_get(win));
|
||||
evas_object_size_hint_min_set(pad, 470, 4);
|
||||
evas_object_size_hint_weight_set(pad, 0.0, 0.0);
|
||||
evas_object_size_hint_align_set(pad, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, pad, 1, 11, 5, 1);
|
||||
|
||||
pad = evas_object_rectangle_add(evas_object_evas_get(win));
|
||||
evas_object_size_hint_min_set(pad, 4, 4);
|
||||
evas_object_size_hint_weight_set(pad, 0.0, 0.0);
|
||||
evas_object_size_hint_align_set(pad, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, pad, 0, 1, 1, 10);
|
||||
|
||||
pad = evas_object_rectangle_add(evas_object_evas_get(win));
|
||||
evas_object_size_hint_min_set(pad, 4, 4);
|
||||
evas_object_size_hint_weight_set(pad, 0.0, 0.0);
|
||||
evas_object_size_hint_align_set(pad, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, pad, 6, 1, 1, 10);
|
||||
|
||||
mb = elm_mapbuf_add(win);
|
||||
elm_object_content_set(mb, tb);
|
||||
evas_object_show(tb);
|
||||
|
||||
for (j = 0; j < 5; j++)
|
||||
{
|
||||
for (i = 0; i < 5; i++)
|
||||
{
|
||||
ic = elm_icon_add(win);
|
||||
elm_object_scale_set(ic, 0.5);
|
||||
snprintf(buf, sizeof(buf), "%s/images/icon_%02i.png", elm_app_data_dir_get(), n);
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
evas_object_size_hint_weight_set(ic, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ic, 0.5, 0.5);
|
||||
elm_table_pack(tb, ic, 1 + i, 1 + (j * 2), 1, 1);
|
||||
evas_object_show(ic);
|
||||
|
||||
lb = elm_label_add(win);
|
||||
elm_object_style_set(lb, "marker");
|
||||
elm_object_text_set(lb, names[m]);
|
||||
evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(lb, 0.5, 0.5);
|
||||
elm_table_pack(tb, lb, 1 + i, 1 + (j * 2) + 1, 1, 1);
|
||||
evas_object_show(lb);
|
||||
|
||||
evas_object_event_callback_add(ic, EVAS_CALLBACK_DEL, ic_del_cb, ic);
|
||||
|
||||
evas_object_event_callback_add(ic, EVAS_CALLBACK_MOUSE_DOWN, ic_down_cb, ic);
|
||||
evas_object_event_callback_add(ic, EVAS_CALLBACK_MOUSE_UP, ic_up_cb, ic);
|
||||
evas_object_event_callback_add(ic, EVAS_CALLBACK_MOUSE_MOVE, ic_move_cb, ic);
|
||||
|
||||
evas_object_data_set(ic, "lb", lb);
|
||||
evas_object_data_set(ic, "tb", tb);
|
||||
evas_object_data_set(ic, "sc", sc);
|
||||
evas_object_data_set(ic, "bx", bx);
|
||||
evas_object_data_set(ic, "mb", mb);
|
||||
evas_object_data_set(ic, "tbx", (void *)(long)(1 + i));
|
||||
evas_object_data_set(ic, "tby", (void *)(long)(1 + (j * 2)));
|
||||
|
||||
n++; if (n > 23) n = 0;
|
||||
m++; if (m > 15) m = 0;
|
||||
}
|
||||
}
|
||||
|
||||
elm_box_pack_end(bx, mb);
|
||||
evas_object_show(mb);
|
||||
|
||||
mbs = eina_list_append(mbs, mb);
|
||||
}
|
||||
|
||||
// fixme: free mbs
|
||||
evas_object_data_set(win, "mbs", mbs);
|
||||
|
||||
bx2 = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_horizontal_set(bx2, EINA_FALSE);
|
||||
elm_win_resize_object_add(win, bx2);
|
||||
evas_object_show(bx2);
|
||||
|
||||
elm_object_content_set(sc, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
elm_scroller_page_relative_set(sc, 1.0, 1.0);
|
||||
evas_object_show(sc);
|
||||
|
||||
tb2 = elm_table_add(win);
|
||||
evas_object_size_hint_weight_set(tb2, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_fill_set(tb2, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_box_pack_end(bx2, tb2);
|
||||
|
||||
elm_box_pack_end(bx2, sc);
|
||||
|
||||
ck = elm_check_add(win);
|
||||
elm_object_text_set(ck, "Map");
|
||||
elm_check_state_set(ck, 0);
|
||||
evas_object_smart_callback_add(ck, "changed", mode_cb, win);
|
||||
evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ck, 0.05, 0.99);
|
||||
elm_table_pack(tb2, ck, 0, 0, 1, 1);
|
||||
evas_object_show(ck);
|
||||
|
||||
ck = elm_check_add(win);
|
||||
elm_object_text_set(ck, "A");
|
||||
elm_check_state_set(ck, 1);
|
||||
evas_object_smart_callback_add(ck, "changed", alpha_cb, win);
|
||||
evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ck, 0.20, 0.99);
|
||||
elm_table_pack(tb2, ck, 1, 0, 1, 1);
|
||||
evas_object_show(ck);
|
||||
|
||||
ck = elm_check_add(win);
|
||||
elm_object_text_set(ck, "Smo");
|
||||
elm_check_state_set(ck, 1);
|
||||
evas_object_smart_callback_add(ck, "changed", smooth_cb, win);
|
||||
evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ck, 0.40, 0.99);
|
||||
elm_table_pack(tb2, ck, 2, 0, 1, 1);
|
||||
evas_object_show(ck);
|
||||
|
||||
ck = elm_check_add(win);
|
||||
elm_object_text_set(ck, "FS");
|
||||
elm_check_state_set(ck, 0);
|
||||
evas_object_smart_callback_add(ck, "changed", full_cb, win);
|
||||
evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ck, 0.5, 0.99);
|
||||
elm_table_pack(tb2, ck, 3, 0, 1, 1);
|
||||
evas_object_show(ck);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Close");
|
||||
evas_object_smart_callback_add(bt, "clicked", close_cb, win);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, 0.95, 0.99);
|
||||
elm_table_pack(tb2, bt, 4, 0, 1, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_show(tb2);
|
||||
|
||||
evas_object_resize(win, 480, 800);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
TEST_START(test_launcher2)
|
||||
{
|
||||
Evas_Object *bg, *sc, *bt, *tb2, *mb, *ck, *bx, *ly;
|
||||
int k;
|
||||
char buf[PATH_MAX];
|
||||
Eina_List *mbs = NULL;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/sky_03.jpg", elm_app_data_dir_get());
|
||||
elm_bg_file_set(bg, buf, NULL);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_box_homogeneous_set(bx, EINA_TRUE);
|
||||
elm_box_horizontal_set(bx, EINA_TRUE);
|
||||
|
||||
for (k = 0 ; k < 8; k++)
|
||||
{
|
||||
ly = elm_layout_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
|
||||
elm_layout_file_set(ly, buf, "layout");
|
||||
evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 1");
|
||||
elm_object_part_content_set(ly, "element1", bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 2");
|
||||
elm_object_part_content_set(ly, "element2", bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 3");
|
||||
elm_object_part_content_set(ly, "element3", bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
mb = elm_mapbuf_add(win);
|
||||
elm_object_content_set(mb, ly);
|
||||
evas_object_show(ly);
|
||||
|
||||
elm_box_pack_end(bx, mb);
|
||||
evas_object_show(mb);
|
||||
|
||||
mbs = eina_list_append(mbs, mb);
|
||||
}
|
||||
|
||||
// fixme: free mbs
|
||||
evas_object_data_set(win, "mbs", mbs);
|
||||
|
||||
sc = elm_scroller_add(win);
|
||||
elm_scroller_bounce_set(sc, 1, 0);
|
||||
elm_scroller_policy_set(sc, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
|
||||
evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, sc);
|
||||
|
||||
elm_object_content_set(sc, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
elm_scroller_page_relative_set(sc, 1.0, 1.0);
|
||||
evas_object_show(sc);
|
||||
|
||||
tb2 = elm_table_add(win);
|
||||
evas_object_size_hint_weight_set(tb2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, tb2);
|
||||
|
||||
ck = elm_check_add(win);
|
||||
elm_object_text_set(ck, "Map");
|
||||
elm_check_state_set(ck, 0);
|
||||
evas_object_smart_callback_add(ck, "changed", mode_cb, win);
|
||||
evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ck, 0.05, 0.99);
|
||||
elm_table_pack(tb2, ck, 0, 0, 1, 1);
|
||||
evas_object_show(ck);
|
||||
|
||||
ck = elm_check_add(win);
|
||||
elm_object_text_set(ck, "A");
|
||||
elm_check_state_set(ck, 1);
|
||||
evas_object_smart_callback_add(ck, "changed", alpha_cb, win);
|
||||
evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ck, 0.20, 0.99);
|
||||
elm_table_pack(tb2, ck, 1, 0, 1, 1);
|
||||
evas_object_show(ck);
|
||||
|
||||
ck = elm_check_add(win);
|
||||
elm_object_text_set(ck, "Smo");
|
||||
elm_check_state_set(ck, 1);
|
||||
evas_object_smart_callback_add(ck, "changed", smooth_cb, win);
|
||||
evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ck, 0.40, 0.99);
|
||||
elm_table_pack(tb2, ck, 2, 0, 1, 1);
|
||||
evas_object_show(ck);
|
||||
|
||||
ck = elm_check_add(win);
|
||||
elm_object_text_set(ck, "FS");
|
||||
elm_check_state_set(ck, 0);
|
||||
evas_object_smart_callback_add(ck, "changed", full_cb, win);
|
||||
evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ck, 0.5, 0.99);
|
||||
elm_table_pack(tb2, ck, 3, 0, 1, 1);
|
||||
evas_object_show(ck);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Close");
|
||||
evas_object_smart_callback_add(bt, "clicked", close_cb, win);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, 0.95, 0.99);
|
||||
elm_table_pack(tb2, bt, 4, 0, 1, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_show(tb2);
|
||||
|
||||
evas_object_resize(win, 480, 800);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
static void
|
||||
l3_mode_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *win = data;
|
||||
Evas_Object *mb;
|
||||
Eina_List *mbs, *l;
|
||||
|
||||
mbs = evas_object_data_get(win, "mbs");
|
||||
EINA_LIST_FOREACH(mbs, l, mb)
|
||||
{
|
||||
if (elm_mapbuf_enabled_get(mb))
|
||||
elm_mapbuf_enabled_set(mb, 0);
|
||||
else
|
||||
elm_mapbuf_enabled_set(mb, 1);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
l3_full_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *win = data;
|
||||
elm_win_fullscreen_set(win, !elm_win_fullscreen_get(win));
|
||||
}
|
||||
|
||||
static void
|
||||
l3_alpha_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *win = data;
|
||||
Evas_Object *mb;
|
||||
Eina_List *mbs, *l;
|
||||
|
||||
mbs = evas_object_data_get(win, "mbs");
|
||||
EINA_LIST_FOREACH(mbs, l, mb)
|
||||
{
|
||||
elm_mapbuf_alpha_set(mb, elm_check_state_get(obj));
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
l3_smooth_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *win = data;
|
||||
Evas_Object *mb;
|
||||
Eina_List *mbs, *l;
|
||||
|
||||
mbs = evas_object_data_get(win, "mbs");
|
||||
EINA_LIST_FOREACH(mbs, l, mb)
|
||||
{
|
||||
elm_mapbuf_smooth_set(mb, elm_check_state_get(obj));
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
l3_hidden_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *win = data;
|
||||
Evas_Object *mb;
|
||||
Eina_List *mbs, *l;
|
||||
|
||||
mbs = evas_object_data_get(win, "mbs");
|
||||
EINA_LIST_FOREACH(mbs, l, mb)
|
||||
{
|
||||
if (evas_object_visible_get(mb)) evas_object_hide(mb);
|
||||
else evas_object_show(mb);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
l3_close_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
evas_object_del(data);
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
l3_tim_cb(void *data)
|
||||
{
|
||||
Evas_Object *ly, *ly2, *sc, *mb;
|
||||
Eina_List *list, *l;
|
||||
char buf[256];
|
||||
int slx, sly;
|
||||
|
||||
evas_object_data_del(data, "timer");
|
||||
ly = evas_object_data_get(data, "ly");
|
||||
ly2 = evas_object_data_get(data, "ly2");
|
||||
sc = evas_object_data_get(data, "sc");
|
||||
elm_object_scroll_freeze_push(sc);
|
||||
evas_object_data_set(data, "dragging", (void *)(long)1);
|
||||
evas_object_color_set(data, 255, 255, 255, 255);
|
||||
list = (Eina_List *)evas_object_data_get
|
||||
(elm_object_top_widget_get(data), "mbs");
|
||||
EINA_LIST_FOREACH(list, l, mb)
|
||||
evas_object_color_set(mb, 128, 128, 128, 128);
|
||||
slx = (int)(long)evas_object_data_get(data, "slx");
|
||||
sly = (int)(long)evas_object_data_get(data, "sly");
|
||||
snprintf(buf, sizeof(buf), "slot.%i.%i", slx, sly);
|
||||
elm_object_content_part_unset(ly, buf);
|
||||
edje_object_signal_emit(elm_layout_edje_get(ly2), "drag", "app");
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
l3_ic_del_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Ecore_Timer *tim;
|
||||
|
||||
tim = evas_object_data_get(obj, "timer");
|
||||
if (tim)
|
||||
{
|
||||
evas_object_data_del(obj, "timer");
|
||||
ecore_timer_del(tim);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
l3_ic_down_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Evas_Event_Mouse_Down *ev = event_info;
|
||||
Ecore_Timer *tim;
|
||||
Evas_Coord x, y, w, h;
|
||||
Evas_Object *ly2;
|
||||
|
||||
tim = evas_object_data_get(obj, "timer");
|
||||
if (tim) evas_object_data_del(obj, "timer");
|
||||
tim = ecore_timer_add(1.0, l3_tim_cb, obj);
|
||||
evas_object_data_set(obj, "timer", tim);
|
||||
|
||||
ly2 = evas_object_data_get(obj, "ly2");
|
||||
evas_object_geometry_get(ly2, &x, &y, &w, &h);
|
||||
evas_object_data_set(obj, "x", (void *)(long)(ev->canvas.x));
|
||||
evas_object_data_set(obj, "y", (void *)(long)(ev->canvas.y));
|
||||
evas_object_data_set(obj, "px", (void *)(long)(x));
|
||||
evas_object_data_set(obj, "py", (void *)(long)(y));
|
||||
|
||||
edje_object_signal_emit(elm_layout_edje_get(ly2), "click", "app");
|
||||
|
||||
if (ev->flags & EVAS_BUTTON_DOUBLE_CLICK)
|
||||
{
|
||||
printf("double click %p\n", obj);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
l3_ic_up_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Evas_Event_Mouse_Up *ev = event_info;
|
||||
Ecore_Timer *tim;
|
||||
Evas_Object *ly2;
|
||||
|
||||
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
|
||||
|
||||
ly2 = evas_object_data_get(obj, "ly2");
|
||||
tim = evas_object_data_get(obj, "timer");
|
||||
if (tim)
|
||||
{
|
||||
evas_object_data_del(obj, "timer");
|
||||
ecore_timer_del(tim);
|
||||
}
|
||||
if (evas_object_data_get(obj, "dragging"))
|
||||
{
|
||||
Evas_Object *ly, *sc, *mb;
|
||||
Eina_List *list, *l;
|
||||
int slx, sly;
|
||||
char buf[256];
|
||||
|
||||
evas_object_data_del(obj, "dragging");
|
||||
ly = evas_object_data_get(obj, "ly");
|
||||
sc = evas_object_data_get(obj, "sc");
|
||||
elm_object_scroll_freeze_pop(sc);
|
||||
slx = (int)(long)evas_object_data_get(obj, "slx");
|
||||
sly = (int)(long)evas_object_data_get(obj, "sly");
|
||||
snprintf(buf, sizeof(buf), "slot.%i.%i", slx, sly);
|
||||
elm_object_part_content_set(ly, buf, ly2);
|
||||
list = (Eina_List *)evas_object_data_get
|
||||
(elm_object_top_widget_get(obj), "mbs");
|
||||
EINA_LIST_FOREACH(list, l, mb)
|
||||
evas_object_color_set(mb, 255, 255, 255, 255);
|
||||
edje_object_signal_emit(elm_layout_edje_get(ly2), "drop", "app");
|
||||
}
|
||||
else
|
||||
edje_object_signal_emit(elm_layout_edje_get(ly2), "unclick", "app");
|
||||
}
|
||||
|
||||
static void
|
||||
l3_ic_move_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Evas_Event_Mouse_Move *ev = event_info;
|
||||
Evas_Object *ly2;
|
||||
|
||||
ly2 = evas_object_data_get(obj, "ly2");
|
||||
|
||||
if (evas_object_data_get(obj, "dragging"))
|
||||
{
|
||||
Evas_Coord x, y, px, py;
|
||||
|
||||
x = (Evas_Coord)(long)evas_object_data_get(obj, "x");
|
||||
y = (Evas_Coord)(long)evas_object_data_get(obj, "y");
|
||||
px = (Evas_Coord)(long)evas_object_data_get(obj, "px");
|
||||
py = (Evas_Coord)(long)evas_object_data_get(obj, "py");
|
||||
evas_object_move(ly2,
|
||||
px + ev->cur.canvas.x - x,
|
||||
py + ev->cur.canvas.y - y);
|
||||
}
|
||||
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
|
||||
{
|
||||
Ecore_Timer *tim;
|
||||
|
||||
tim = evas_object_data_get(obj, "timer");
|
||||
if (tim)
|
||||
{
|
||||
evas_object_data_del(obj, "timer");
|
||||
ecore_timer_del(tim);
|
||||
}
|
||||
edje_object_signal_emit(elm_layout_edje_get(ly2), "cancel", "app");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
TEST_START(test_launcher3)
|
||||
{
|
||||
Evas_Object *bg, *sc, *tb, *pad, *bt, *ic, *tb2, *mb, *ck, *bx, *bx2, *ly, *ly2;
|
||||
int i, j, k, n, m;
|
||||
char buf[PATH_MAX];
|
||||
const char *names[] =
|
||||
{
|
||||
"Hello", "World", "Spam", "Egg",
|
||||
"Ham", "Good", "Bad", "Milk",
|
||||
"Smell", "Of", "Sky", "Gold",
|
||||
"Hole", "Pig", "And", "Calm"
|
||||
};
|
||||
Eina_List *mbs = NULL;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/sky_04.jpg", elm_app_data_dir_get());
|
||||
elm_bg_file_set(bg, buf, NULL);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_box_homogeneous_set(bx, EINA_TRUE);
|
||||
elm_box_horizontal_set(bx, EINA_TRUE);
|
||||
|
||||
sc = elm_scroller_add(win);
|
||||
elm_scroller_bounce_set(sc, 1, 0);
|
||||
elm_scroller_policy_set(sc, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
|
||||
evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_fill_set(sc, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
n = 0; m = 0;
|
||||
for (k = 0 ; k < 8; k++)
|
||||
{
|
||||
tb = elm_table_add(win);
|
||||
evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
pad = evas_object_rectangle_add(evas_object_evas_get(win));
|
||||
evas_object_size_hint_min_set(pad, 450, 10);
|
||||
elm_table_pack(tb, pad, 1, 0, 1, 1);
|
||||
|
||||
pad = evas_object_rectangle_add(evas_object_evas_get(win));
|
||||
evas_object_size_hint_min_set(pad, 450, 10);
|
||||
elm_table_pack(tb, pad, 1, 2, 1, 1);
|
||||
|
||||
pad = evas_object_rectangle_add(evas_object_evas_get(win));
|
||||
evas_object_size_hint_min_set(pad, 10, 450);
|
||||
elm_table_pack(tb, pad, 0, 1, 1, 1);
|
||||
|
||||
pad = evas_object_rectangle_add(evas_object_evas_get(win));
|
||||
evas_object_size_hint_min_set(pad, 10, 450);
|
||||
elm_table_pack(tb, pad, 2, 1, 1, 1);
|
||||
|
||||
mb = elm_mapbuf_add(win);
|
||||
mbs = eina_list_append(mbs, mb);
|
||||
|
||||
elm_object_content_set(mb, tb);
|
||||
evas_object_show(tb);
|
||||
elm_box_pack_end(bx, mb);
|
||||
evas_object_show(mb);
|
||||
|
||||
ly = elm_layout_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
|
||||
elm_layout_file_set(ly, buf, "launcher_page");
|
||||
evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, ly, 1, 1, 1, 1);
|
||||
evas_object_show(ly);
|
||||
|
||||
for (j = 0; j < 4; j++)
|
||||
{
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
ly2 = elm_layout_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
|
||||
elm_layout_file_set(ly2, buf, "launcher_icon");
|
||||
evas_object_size_hint_weight_set(ly2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ly2, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
edje_object_part_text_set(elm_layout_edje_get(ly2), "label", names[m]);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
elm_object_scale_set(ic, 0.5);
|
||||
snprintf(buf, sizeof(buf), "%s/images/icon_%02i.png", elm_app_data_dir_get(), n);
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
evas_object_size_hint_weight_set(ic, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ic, 0.5, 0.5);
|
||||
elm_object_part_content_set(ly2, "slot", ic);
|
||||
evas_object_show(ic);
|
||||
|
||||
evas_object_event_callback_add(ic, EVAS_CALLBACK_DEL, l3_ic_del_cb, ic);
|
||||
|
||||
evas_object_event_callback_add(ic, EVAS_CALLBACK_MOUSE_DOWN, l3_ic_down_cb, ic);
|
||||
evas_object_event_callback_add(ic, EVAS_CALLBACK_MOUSE_UP, l3_ic_up_cb, ic);
|
||||
evas_object_event_callback_add(ic, EVAS_CALLBACK_MOUSE_MOVE, l3_ic_move_cb, ic);
|
||||
|
||||
evas_object_data_set(ic, "ly", ly);
|
||||
evas_object_data_set(ic, "ly2", ly2);
|
||||
evas_object_data_set(ic, "sc", sc);
|
||||
evas_object_data_set(ic, "bx", bx);
|
||||
evas_object_data_set(ic, "mb", mb);
|
||||
evas_object_data_set(ic, "slx", (void *)(long)(i));
|
||||
evas_object_data_set(ic, "sly", (void *)(long)(j));
|
||||
|
||||
snprintf(buf, sizeof(buf), "slot.%i.%i", i, j);
|
||||
elm_object_part_content_set(ly, buf, ly2);
|
||||
evas_object_show(ly2);
|
||||
|
||||
n++; if (n > 23) n = 0;
|
||||
m++; if (m > 15) m = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// fixme: free mbs
|
||||
evas_object_data_set(win, "mbs", mbs);
|
||||
|
||||
bx2 = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_horizontal_set(bx2, EINA_FALSE);
|
||||
elm_win_resize_object_add(win, bx2);
|
||||
evas_object_show(bx2);
|
||||
|
||||
elm_object_content_set(sc, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
elm_scroller_page_relative_set(sc, 1.0, 1.0);
|
||||
evas_object_show(sc);
|
||||
|
||||
tb2 = elm_table_add(win);
|
||||
evas_object_size_hint_weight_set(tb2, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_fill_set(tb2, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_box_pack_end(bx2, tb2);
|
||||
|
||||
elm_box_pack_end(bx2, sc);
|
||||
|
||||
ck = elm_check_add(win);
|
||||
elm_object_text_set(ck, "Map");
|
||||
elm_check_state_set(ck, 0);
|
||||
evas_object_smart_callback_add(ck, "changed", l3_mode_cb, win);
|
||||
evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ck, 0.05, 0.99);
|
||||
elm_table_pack(tb2, ck, 0, 0, 1, 1);
|
||||
evas_object_show(ck);
|
||||
|
||||
ck = elm_check_add(win);
|
||||
elm_object_text_set(ck, "A");
|
||||
elm_check_state_set(ck, 1);
|
||||
evas_object_smart_callback_add(ck, "changed", l3_alpha_cb, win);
|
||||
evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ck, 0.20, 0.99);
|
||||
elm_table_pack(tb2, ck, 1, 0, 1, 1);
|
||||
evas_object_show(ck);
|
||||
|
||||
ck = elm_check_add(win);
|
||||
elm_object_text_set(ck, "Smo");
|
||||
elm_check_state_set(ck, 1);
|
||||
evas_object_smart_callback_add(ck, "changed", l3_smooth_cb, win);
|
||||
evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ck, 0.40, 0.99);
|
||||
elm_table_pack(tb2, ck, 2, 0, 1, 1);
|
||||
evas_object_show(ck);
|
||||
|
||||
ck = elm_check_add(win);
|
||||
elm_object_text_set(ck, "FS");
|
||||
elm_check_state_set(ck, 0);
|
||||
evas_object_smart_callback_add(ck, "changed", l3_full_cb, win);
|
||||
evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ck, 0.5, 0.99);
|
||||
elm_table_pack(tb2, ck, 3, 0, 1, 1);
|
||||
evas_object_show(ck);
|
||||
|
||||
ck = elm_check_add(win);
|
||||
elm_object_text_set(ck, "Hid");
|
||||
elm_check_state_set(ck, 0);
|
||||
evas_object_smart_callback_add(ck, "changed", l3_hidden_cb, win);
|
||||
evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ck, 0.5, 0.99);
|
||||
elm_table_pack(tb2, ck, 4, 0, 1, 1);
|
||||
evas_object_show(ck);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Close");
|
||||
evas_object_smart_callback_add(bt, "clicked", l3_close_cb, win);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, 0.95, 0.99);
|
||||
elm_table_pack(tb2, bt, 5, 0, 1, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_show(tb2);
|
||||
|
||||
evas_object_resize(win, 480, 800);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,74 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include <Elementary_Cursor.h>
|
||||
#include "tsuite.h"
|
||||
static void
|
||||
_clicked_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_object_part_text_set(data, "text", elm_object_text_get(obj));
|
||||
}
|
||||
|
||||
TEST_START(test_layout)
|
||||
{
|
||||
Evas_Object *bg, *box, *ly, *bt;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
box = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_win_resize_object_add(win, box);
|
||||
evas_object_show(box);
|
||||
|
||||
ly = elm_layout_add(win);
|
||||
elm_layout_theme_set(ly, "layout", "application", "titlebar");
|
||||
elm_object_text_set(ly, "Some title");
|
||||
evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_box_pack_end(box, ly);
|
||||
evas_object_show(ly);
|
||||
|
||||
bt = elm_icon_add(win);
|
||||
elm_icon_standard_set(bt, "chat");
|
||||
evas_object_size_hint_min_set(bt, 20, 20);
|
||||
elm_layout_icon_set(ly, bt);
|
||||
|
||||
bt = elm_icon_add(win);
|
||||
elm_icon_standard_set(bt, "close");
|
||||
evas_object_size_hint_min_set(bt, 20, 20);
|
||||
elm_layout_end_set(ly, bt);
|
||||
|
||||
ly = elm_layout_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
|
||||
elm_layout_file_set(ly, buf, "layout");
|
||||
evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(box, ly);
|
||||
//elm_win_resize_object_add(win, ly);
|
||||
evas_object_show(ly);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 1");
|
||||
elm_object_part_content_set(ly, "element1", bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", _clicked_cb, ly);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 2");
|
||||
elm_object_part_content_set(ly, "element2", bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", _clicked_cb, ly);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 3");
|
||||
elm_object_part_content_set(ly, "element3", bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", _clicked_cb, ly);
|
||||
evas_object_show(bt);
|
||||
|
||||
elm_layout_part_cursor_set(ly, "text", ELM_CURSOR_WATCH);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
1000
src/bin/test_list.c
1000
src/bin/test_list.c
File diff suppressed because it is too large
Load Diff
|
@ -1,121 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
static Evas_Object *bg, *menu, *rect;
|
||||
|
||||
static void
|
||||
_show(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
|
||||
{
|
||||
Evas_Event_Mouse_Down *ev = event_info;
|
||||
elm_menu_move(data, ev->canvas.x, ev->canvas.y);
|
||||
evas_object_show(data);
|
||||
}
|
||||
|
||||
static void
|
||||
_populate_4(Elm_Object_Item *menu_it)
|
||||
{
|
||||
Elm_Object_Item *menu_it2;
|
||||
|
||||
elm_menu_item_add(menu, menu_it, "go-bottom", "menu 2", NULL, NULL);
|
||||
elm_menu_item_add(menu, menu_it, "go-first", "menu 3", NULL, NULL);
|
||||
elm_menu_item_separator_add(menu, menu_it);
|
||||
menu_it2 = elm_menu_item_add(menu, menu_it, "go-last", "Disabled item", NULL,
|
||||
NULL);
|
||||
elm_object_item_disabled_set(menu_it2, EINA_TRUE);
|
||||
menu_it2 = elm_menu_item_add(menu, menu_it, "go-next", "Disabled item", NULL,
|
||||
NULL);
|
||||
elm_object_item_disabled_set(menu_it2, EINA_TRUE);
|
||||
menu_it2 = elm_menu_item_add(menu, menu_it, "go-up", "Disabled item", NULL,
|
||||
NULL);
|
||||
elm_object_item_disabled_set(menu_it2, EINA_TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
_populate_3(Elm_Object_Item *menu_it)
|
||||
{
|
||||
Elm_Object_Item *menu_it2;
|
||||
|
||||
elm_menu_item_add(menu, menu_it, "media-eject", "menu 2", NULL, NULL);
|
||||
elm_menu_item_add(menu, menu_it, "media-playback-start", "menu 3", NULL,
|
||||
NULL);
|
||||
elm_menu_item_separator_add(menu, menu_it);
|
||||
menu_it2 = elm_menu_item_add(menu, menu_it, "media-playback-stop",
|
||||
"Disabled item", NULL, NULL);
|
||||
elm_object_item_disabled_set(menu_it2, EINA_TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
_populate_2(Elm_Object_Item *menu_it)
|
||||
{
|
||||
Elm_Object_Item *menu_it2, *menu_it3;
|
||||
|
||||
elm_menu_item_add(menu, menu_it, "system-reboot", "menu 2", NULL, NULL);
|
||||
menu_it2 = elm_menu_item_add(menu, menu_it, "system-shutdown", "menu 3",
|
||||
NULL, NULL);
|
||||
_populate_3(menu_it2);
|
||||
|
||||
elm_menu_item_separator_add(menu, menu_it);
|
||||
elm_menu_item_separator_add(menu, menu_it);
|
||||
elm_menu_item_separator_add(menu, menu_it);
|
||||
elm_menu_item_separator_add(menu, menu_it);
|
||||
elm_menu_item_separator_add(menu, menu_it);
|
||||
elm_menu_item_separator_add(menu, menu_it);
|
||||
elm_menu_item_separator_add(menu, menu_it);
|
||||
|
||||
menu_it2 = elm_menu_item_add(menu, menu_it, "system-lock-screen", "menu 2",
|
||||
NULL, NULL);
|
||||
elm_menu_item_separator_add(menu, menu_it);
|
||||
|
||||
menu_it3 = elm_menu_item_add(menu, menu_it, "system-run", "Disabled item",
|
||||
NULL, NULL);
|
||||
elm_object_item_disabled_set(menu_it3, EINA_TRUE);
|
||||
|
||||
_populate_4(menu_it2);
|
||||
}
|
||||
|
||||
static void
|
||||
_populate_1(Evas_Object *win, Elm_Object_Item *menu_it)
|
||||
{
|
||||
Elm_Object_Item *menu_it2;
|
||||
Evas_Object *radio;
|
||||
|
||||
radio = elm_radio_add(win);
|
||||
elm_radio_state_value_set(radio, 0);
|
||||
elm_radio_value_set(radio, 0);
|
||||
elm_object_text_set(radio, "radio in menu");
|
||||
menu_it2 = elm_menu_item_add(menu, menu_it, "object-rotate-left", "menu 1",
|
||||
NULL, NULL);
|
||||
elm_menu_item_add_object(menu, menu_it, radio, NULL, NULL);
|
||||
|
||||
_populate_2(menu_it2);
|
||||
}
|
||||
|
||||
TEST_START(test_menu)
|
||||
{
|
||||
Elm_Object_Item *menu_it;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
rect = evas_object_rectangle_add(evas_object_evas_get(win));
|
||||
elm_win_resize_object_add(win, rect);
|
||||
evas_object_color_set(rect, 0, 0, 0, 0);
|
||||
evas_object_show(rect);
|
||||
|
||||
menu = elm_menu_add(win);
|
||||
elm_menu_item_add(menu, NULL, NULL, "first item", NULL, NULL);
|
||||
|
||||
menu_it = elm_menu_item_add(menu, NULL, "mail-reply-all", "second item",
|
||||
NULL, NULL);
|
||||
_populate_1(win, menu_it);
|
||||
|
||||
elm_menu_item_add(menu, menu_it, "window-new", "sub menu", NULL, NULL);
|
||||
|
||||
evas_object_event_callback_add(rect, EVAS_CALLBACK_MOUSE_DOWN, _show, menu);
|
||||
|
||||
evas_object_resize(win, 350, 200);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
|
@ -1,241 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
struct _Test_Data
|
||||
{
|
||||
char *img1;
|
||||
char *img2;
|
||||
char *img3;
|
||||
char *img4;
|
||||
char *img5;
|
||||
};
|
||||
typedef struct _Test_Data Test_Data;
|
||||
|
||||
static Test_Data *tdata = NULL;
|
||||
|
||||
static char *
|
||||
_get_str(char *dest, const char *str)
|
||||
{ /* dest should be not null and big enough */
|
||||
sprintf(dest, "%s/%s", elm_app_data_dir_get(), str);
|
||||
return dest;
|
||||
}
|
||||
|
||||
static void
|
||||
_win_del(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Test_Data *tdata = data;
|
||||
if (!data) return;
|
||||
|
||||
free(tdata->img1);
|
||||
free(tdata->img2);
|
||||
free(tdata->img3);
|
||||
free(tdata->img4);
|
||||
free(tdata->img5);
|
||||
|
||||
free(tdata);
|
||||
}
|
||||
|
||||
Evas_Object *
|
||||
_content_new(Evas_Object *parent, const char *img)
|
||||
{
|
||||
Evas_Object *photo = elm_photo_add(parent);
|
||||
elm_photo_file_set(photo, img);
|
||||
elm_photo_fill_inside_set(photo, EINA_TRUE);
|
||||
elm_object_style_set(photo, "shadow");
|
||||
return photo;
|
||||
}
|
||||
|
||||
void
|
||||
_navi_pop(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_naviframe_item_pop(data);
|
||||
}
|
||||
|
||||
void
|
||||
_navi_it_del(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_naviframe_item_del(data);
|
||||
}
|
||||
|
||||
void
|
||||
_title_clicked(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("Title Clicked!\n");
|
||||
}
|
||||
|
||||
void
|
||||
_title_visible(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_naviframe_item_title_visible_set(data,
|
||||
!elm_naviframe_item_title_visible_get(data));
|
||||
}
|
||||
|
||||
void
|
||||
_promote(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_naviframe_item_promote(data);
|
||||
}
|
||||
|
||||
void
|
||||
_page5(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *bt, *bt2, *content, *nf = data;
|
||||
Elm_Object_Item *it;
|
||||
|
||||
bt = elm_button_add(nf);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_object_text_set(bt, "Prev");
|
||||
|
||||
bt2 = elm_button_add(nf);
|
||||
evas_object_size_hint_align_set(bt2, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_object_text_set(bt2, "Page 1");
|
||||
evas_object_smart_callback_add(bt2, "clicked", _promote,
|
||||
evas_object_data_get(nf, "page1"));
|
||||
|
||||
content = _content_new(nf, tdata->img5);
|
||||
it = elm_naviframe_item_insert_after(elm_naviframe_top_item_get(nf),
|
||||
"Page 5",
|
||||
bt,
|
||||
bt2,
|
||||
content,
|
||||
NULL);
|
||||
|
||||
evas_object_smart_callback_add(bt, "clicked", _navi_it_del, it);
|
||||
}
|
||||
|
||||
void
|
||||
_page4(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *bt, *ic, *content, *nf = data;
|
||||
char buf[PATH_MAX];
|
||||
Elm_Object_Item *it;
|
||||
|
||||
ic = elm_icon_add(nf);
|
||||
snprintf(buf, sizeof(buf), "%s/images/icon_right_arrow.png",
|
||||
elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
|
||||
bt = elm_button_add(nf);
|
||||
evas_object_smart_callback_add(bt, "clicked", _page5, nf);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_object_part_content_set(bt, "icon", ic);
|
||||
|
||||
content = _content_new(nf, tdata->img4);
|
||||
|
||||
it = elm_naviframe_item_push(nf,
|
||||
"Page 4",
|
||||
NULL,
|
||||
bt,
|
||||
content,
|
||||
NULL);
|
||||
|
||||
ic = elm_icon_add(nf);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png",
|
||||
elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
elm_object_item_part_content_set(it, "icon", ic);
|
||||
elm_naviframe_item_title_visible_set(it, EINA_FALSE);
|
||||
evas_object_smart_callback_add(content, "clicked", _title_visible, it);
|
||||
}
|
||||
|
||||
void
|
||||
_page3(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *bt, *bt2, *ic, *content, *nf = data;
|
||||
char buf[PATH_MAX];
|
||||
Elm_Object_Item *it;
|
||||
|
||||
bt = elm_button_add(nf);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_object_text_set(bt, "Prev");
|
||||
evas_object_smart_callback_add(bt, "clicked", _navi_pop, nf);
|
||||
|
||||
bt2 = elm_button_add(nf);
|
||||
evas_object_size_hint_align_set(bt2, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_object_text_set(bt2, "Next");
|
||||
evas_object_smart_callback_add(bt2, "clicked", _page4, nf);
|
||||
|
||||
content = _content_new(nf, tdata->img3);
|
||||
|
||||
it = elm_naviframe_item_push(nf,
|
||||
"Page 3",
|
||||
bt,
|
||||
bt2,
|
||||
content,
|
||||
NULL);
|
||||
ic = elm_icon_add(nf);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
|
||||
elm_object_item_part_content_set(it, "icon", ic);
|
||||
}
|
||||
|
||||
void
|
||||
_page2(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *bt, *content, *ic, *nf = data;
|
||||
char buf[PATH_MAX];
|
||||
Elm_Object_Item *it;
|
||||
|
||||
bt = elm_button_add(nf);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_smart_callback_add(bt, "clicked", _page3, nf);
|
||||
|
||||
ic = elm_icon_add(nf);
|
||||
snprintf(buf, sizeof(buf), "%s/images/icon_right_arrow.png",
|
||||
elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
elm_object_part_content_set(bt, "icon", ic);
|
||||
|
||||
content = _content_new(nf, tdata->img2);
|
||||
|
||||
it = elm_naviframe_item_push(nf, "Page 2", NULL, bt, content, NULL);
|
||||
elm_object_item_part_text_set(it, "subtitle", "Here is sub-title part!");
|
||||
}
|
||||
|
||||
|
||||
TEST_START(test_naviframe)
|
||||
{
|
||||
Evas_Object *bg, *nf, *btn, *content;
|
||||
Elm_Object_Item *it;
|
||||
char buf[1024];
|
||||
|
||||
elm_win_focus_highlight_enabled_set(win, EINA_TRUE);
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
tdata = malloc(sizeof(Test_Data));
|
||||
tdata->img1 = strdup(_get_str(buf, "images/logo.png"));
|
||||
tdata->img2 = strdup(_get_str(buf, "images/plant_01.jpg"));
|
||||
tdata->img3 = strdup(_get_str(buf, "images/rock_01.jpg"));
|
||||
tdata->img4 = strdup(_get_str(buf, "images/rock_02.jpg"));
|
||||
tdata->img5 = strdup(_get_str(buf, "images/sky_01.jpg"));
|
||||
evas_object_smart_callback_add(win, "delete,request", _win_del, tdata);
|
||||
|
||||
nf = elm_naviframe_add(win);
|
||||
elm_win_resize_object_add(win, nf);
|
||||
evas_object_size_hint_weight_set(nf, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(nf);
|
||||
evas_object_smart_callback_add(nf, "title,clicked", _title_clicked, 0);
|
||||
|
||||
btn = elm_button_add(nf);
|
||||
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_smart_callback_add(btn, "clicked", _page2, nf);
|
||||
elm_object_text_set(btn, "Next");
|
||||
evas_object_show(btn);
|
||||
|
||||
content = _content_new(nf, tdata->img1);
|
||||
it = elm_naviframe_item_push(nf, "Page 1", NULL, btn, content, NULL);
|
||||
evas_object_data_set(nf, "page1", it);
|
||||
|
||||
evas_object_resize(win, 400, 600);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,295 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
static void
|
||||
_bt(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *notify = data;
|
||||
evas_object_show(notify);
|
||||
}
|
||||
|
||||
static void
|
||||
_bt_close(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *notify = data;
|
||||
evas_object_hide(notify);
|
||||
}
|
||||
|
||||
static void
|
||||
_bt_timer_close(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *notify = data;
|
||||
elm_notify_timeout_set(notify, 2.0);
|
||||
}
|
||||
|
||||
static void
|
||||
_notify_timeout(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("Notify timed out!\n");
|
||||
}
|
||||
|
||||
static void
|
||||
_notify_block(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("Notify block area clicked!!\n");
|
||||
}
|
||||
|
||||
TEST_START(test_notify)
|
||||
{
|
||||
Evas_Object *bg, *bx, *tb, *notify, *bt, *lb;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
tb = elm_table_add(win);
|
||||
elm_win_resize_object_add(win, tb);
|
||||
evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(tb);
|
||||
|
||||
notify = elm_notify_add(win);
|
||||
evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_object_content_set(notify, bx);
|
||||
elm_box_horizontal_set(bx, EINA_TRUE);
|
||||
evas_object_show(bx);
|
||||
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb, "This position is the default.");
|
||||
elm_box_pack_end(bx, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Close");
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Top");
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt, notify);
|
||||
elm_table_pack(tb, bt, 1, 0, 1, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
notify = elm_notify_add(win);
|
||||
elm_notify_repeat_events_set(notify, EINA_FALSE);
|
||||
evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_BOTTOM);
|
||||
elm_notify_timeout_set(notify, 5.0);
|
||||
evas_object_smart_callback_add(notify, "timeout", _notify_timeout, NULL);
|
||||
evas_object_smart_callback_add(notify, "block,clicked", _notify_block, NULL);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_object_content_set(notify, bx);
|
||||
elm_box_horizontal_set(bx, EINA_TRUE);
|
||||
evas_object_show(bx);
|
||||
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb, "Bottom position. This notify use a timeout of 5 sec.<br>"
|
||||
"<b>The events outside the window are blocked.</b>");
|
||||
elm_box_pack_end(bx, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Close");
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Bottom");
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt, notify);
|
||||
elm_table_pack(tb, bt, 1, 2, 1, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
notify = elm_notify_add(win);
|
||||
evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_LEFT);
|
||||
elm_notify_timeout_set(notify, 10.0);
|
||||
evas_object_smart_callback_add(notify, "timeout", _notify_timeout, NULL);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_object_content_set(notify, bx);
|
||||
elm_box_horizontal_set(bx, EINA_TRUE);
|
||||
evas_object_show(bx);
|
||||
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb, "Left position. This notify use a timeout of 10 sec.");
|
||||
elm_box_pack_end(bx, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Close");
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Left");
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt, notify);
|
||||
elm_table_pack(tb, bt, 0, 1, 1, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
notify = elm_notify_add(win);
|
||||
evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_CENTER);
|
||||
elm_notify_timeout_set(notify, 10.0);
|
||||
evas_object_smart_callback_add(notify, "timeout", _notify_timeout, NULL);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_object_content_set(notify, bx);
|
||||
elm_box_horizontal_set(bx, EINA_TRUE);
|
||||
evas_object_show(bx);
|
||||
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb, "Center position. This notify use a timeout of 10 sec.");
|
||||
elm_box_pack_end(bx, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Close");
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Center");
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt, notify);
|
||||
elm_table_pack(tb, bt, 1, 1, 1, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
notify = elm_notify_add(win);
|
||||
evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_RIGHT);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_object_content_set(notify, bx);
|
||||
elm_box_horizontal_set(bx, EINA_TRUE);
|
||||
evas_object_show(bx);
|
||||
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb, "Right position.");
|
||||
elm_box_pack_end(bx, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Close");
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Right");
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt, notify);
|
||||
elm_table_pack(tb, bt, 2, 1, 1, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
notify = elm_notify_add(win);
|
||||
evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_TOP_LEFT);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_object_content_set(notify, bx);
|
||||
elm_box_horizontal_set(bx, EINA_TRUE);
|
||||
evas_object_show(bx);
|
||||
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb, "Top Left position.");
|
||||
elm_box_pack_end(bx, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Close");
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Top Left");
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt, notify);
|
||||
elm_table_pack(tb, bt, 0, 0, 1, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
notify = elm_notify_add(win);
|
||||
evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_TOP_RIGHT);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_object_content_set(notify, bx);
|
||||
elm_box_horizontal_set(bx, EINA_TRUE);
|
||||
evas_object_show(bx);
|
||||
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb, "Top Right position.");
|
||||
elm_box_pack_end(bx, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Close");
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Top Right");
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt, notify);
|
||||
elm_table_pack(tb, bt, 2, 0, 1, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
notify = elm_notify_add(win);
|
||||
evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_BOTTOM_LEFT);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_object_content_set(notify, bx);
|
||||
elm_box_horizontal_set(bx, EINA_TRUE);
|
||||
evas_object_show(bx);
|
||||
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb, "Bottom Left position.");
|
||||
elm_box_pack_end(bx, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Close");
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt_close, notify);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Bottom Left");
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt, notify);
|
||||
elm_table_pack(tb, bt, 0, 2, 1, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
notify = elm_notify_add(win);
|
||||
evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_BOTTOM_RIGHT);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_object_content_set(notify, bx);
|
||||
elm_box_horizontal_set(bx, EINA_TRUE);
|
||||
evas_object_show(bx);
|
||||
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb, "Bottom Right position.");
|
||||
elm_box_pack_end(bx, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Close in 2s");
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt_timer_close, notify);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Bottom Right");
|
||||
evas_object_smart_callback_add(bt, "clicked", _bt, notify);
|
||||
elm_table_pack(tb, bt, 2, 2, 1, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_show(win);
|
||||
evas_object_resize(win, 300, 350);
|
||||
}
|
||||
TEST_END
|
|
@ -1,320 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
typedef struct _Pginfo Pginfo;
|
||||
|
||||
struct _Pginfo
|
||||
{
|
||||
Evas_Object *win, *pager, *pg1, *pg2, *pg3, *pg4;
|
||||
};
|
||||
|
||||
static void
|
||||
my_pager_1(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Pginfo *info = data;
|
||||
elm_pager_content_promote(info->pager, info->pg2);
|
||||
}
|
||||
|
||||
static void
|
||||
my_pager_2(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Pginfo *info = data;
|
||||
elm_pager_content_promote(info->pager, info->pg3);
|
||||
}
|
||||
|
||||
static void
|
||||
my_pager_3(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Pginfo *info = data;
|
||||
elm_pager_content_promote(info->pager, info->pg4);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
my_pager_4(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Pginfo *info = data;
|
||||
elm_pager_content_promote(info->pager, info->pg1);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
my_pager_pop(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Pginfo *info = data;
|
||||
elm_pager_content_pop(info->pager);
|
||||
}
|
||||
|
||||
struct style_tuple {
|
||||
const char *label;
|
||||
const char *name;
|
||||
};
|
||||
static const struct style_tuple styles[] = {
|
||||
{ "Default", "default"},
|
||||
{ "Slide", "slide"},
|
||||
{ "Slide Invisible", "slide_invisible"},
|
||||
{ "Fade", "fade"},
|
||||
{ "Fade Translucide", "fade_translucide"},
|
||||
{ "Fade Invisible", "fade_invisible"},
|
||||
{ "Flip", "flip"},
|
||||
};
|
||||
|
||||
static void
|
||||
_style(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *pg = data;
|
||||
elm_object_style_set(pg, styles[elm_radio_value_get(obj)].name);
|
||||
}
|
||||
|
||||
TEST_START(test_pager)
|
||||
{
|
||||
Evas_Object *bg, *pg, *bx, *lb, *bt;
|
||||
static Pginfo info;
|
||||
|
||||
elm_win_focus_highlight_enabled_set(win, EINA_TRUE);
|
||||
info.win = win;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
pg = elm_pager_add(win);
|
||||
evas_object_size_hint_weight_set(pg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, pg);
|
||||
evas_object_show(pg);
|
||||
|
||||
info.pager = pg;
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bx);
|
||||
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb,
|
||||
"This is page 1 in a pager stack.<br>"
|
||||
"<br>"
|
||||
"So what is a pager stack? It is a stack<br>"
|
||||
"of pages that hold widgets in it. The<br>"
|
||||
"pages can be pushed and popped on and<br>"
|
||||
"off the stack, activated and otherwise<br>"
|
||||
"activated if already in the stack<br>"
|
||||
"(activated means promoted to the top of<br>"
|
||||
"the stack).<br>"
|
||||
"<br>"
|
||||
"The theme may define the animation how<br>"
|
||||
"show and hide of pages. Select one theme style:");
|
||||
elm_box_pack_end(bx, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
unsigned int i = 0;
|
||||
Evas_Object *rdg = NULL, *rd;
|
||||
for (i = 0; i < (sizeof(styles) / sizeof(struct style_tuple)); i++)
|
||||
{
|
||||
rd = elm_radio_add(win);
|
||||
elm_object_text_set(rd, styles[i].label);
|
||||
elm_radio_state_value_set(rd, i);
|
||||
if (rdg)
|
||||
elm_radio_group_add(rd, rdg);
|
||||
else
|
||||
rdg = rd;
|
||||
evas_object_smart_callback_add(rd, "changed", _style, pg);
|
||||
elm_box_pack_end(bx, rd);
|
||||
evas_object_show(rd);
|
||||
}
|
||||
elm_radio_value_set(rd, 0);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Flip to 2");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_pager_1, &info);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Popme");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_pager_pop, &info);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
elm_pager_content_push(pg, bx);
|
||||
info.pg1 = bx;
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bx);
|
||||
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb,
|
||||
"This is page 2 in a pager stack.<br>"
|
||||
"<br>"
|
||||
"This is just like the previous page in<br>"
|
||||
"the pager stack."
|
||||
);
|
||||
elm_box_pack_end(bx, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Flip to 3");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_pager_2, &info);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Popme");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_pager_pop, &info);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
elm_pager_content_push(pg, bx);
|
||||
info.pg2 = bx;
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bx);
|
||||
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb,
|
||||
"This is page 3 in a pager stack.<br>"
|
||||
"<br>"
|
||||
"This is just like the previous page in<br>"
|
||||
"the pager stack.");
|
||||
elm_box_pack_end(bx, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Flip to 1");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_pager_3, &info);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Popme");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_pager_pop, &info);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
elm_pager_content_push(pg, bx);
|
||||
info.pg3 = bx;
|
||||
|
||||
Evas_Object *ly, *ly2;
|
||||
char buf[4096];
|
||||
|
||||
ly = elm_layout_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
|
||||
elm_layout_file_set(ly, buf, "test/layout");
|
||||
evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(ly);
|
||||
|
||||
ly2 = elm_layout_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
|
||||
elm_layout_file_set(ly2, buf, "layout2");
|
||||
evas_object_size_hint_weight_set(ly2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
//elm_win_resize_object_add(win, ly2);
|
||||
evas_object_show(ly2);
|
||||
|
||||
|
||||
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Flip to 1");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_pager_4, &info);
|
||||
elm_object_part_content_set(ly2, "element1", bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Popme");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_pager_pop, &info);
|
||||
evas_object_show(bt);
|
||||
elm_object_part_content_set(ly2, "element2", bt);
|
||||
|
||||
elm_object_part_content_set(ly, "swallow", ly2);
|
||||
evas_object_show(ly);
|
||||
|
||||
elm_pager_content_push(pg, ly);
|
||||
info.pg4 = ly2;
|
||||
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
static void
|
||||
my_pager_push(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Pginfo *info = data;
|
||||
Evas_Object *bx, *bt, *lb;
|
||||
static int count = 2;
|
||||
char buf[32];
|
||||
|
||||
bx = elm_box_add(info->win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bx);
|
||||
|
||||
lb = elm_label_add(info->win);
|
||||
snprintf(buf, sizeof(buf), "This is page %d in the slide pager<br><br>", count++);
|
||||
elm_object_text_set(lb, buf);
|
||||
elm_box_pack_end(bx, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
bt = elm_button_add(info->win);
|
||||
elm_object_text_set(bt, "Push a new page");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_pager_push, info);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(info->win);
|
||||
elm_object_text_set(bt, "Go back (pop)");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_pager_pop, info);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
elm_pager_content_push(info->pager, bx);
|
||||
}
|
||||
|
||||
TEST_START(test_pager_slide)
|
||||
{
|
||||
Evas_Object *bg, *pg, *bx, *lb, *bt;
|
||||
static Pginfo info;
|
||||
|
||||
elm_win_focus_highlight_enabled_set(win, EINA_TRUE);
|
||||
info.win = win;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
pg = elm_pager_add(win);
|
||||
elm_win_resize_object_add(win, pg);
|
||||
elm_object_style_set(pg, "slide");
|
||||
evas_object_show(pg);
|
||||
info.pager = pg;
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bx);
|
||||
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb,
|
||||
"This is page 1 in a slide pager.<br>"
|
||||
"<br>"
|
||||
"The slide pager style is useful for browsing<br>"
|
||||
"a hierarchy of objects, as it makes clear<br>"
|
||||
"the direction of the browse.<br>"
|
||||
"This is the 'slide' style, also available<br>"
|
||||
"a fully transparent style named 'slide_invisble'.<br>"
|
||||
"<br>");
|
||||
elm_box_pack_end(bx, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Push a new page");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_pager_push, &info);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Go back (pop)");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_pager_pop, &info);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
elm_pager_content_push(pg, bx);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,253 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
static Elm_Genlist_Item_Class itc;
|
||||
|
||||
static void _bstatus(void *data, Evas_Object *obj, void *event_info);
|
||||
static void _tstatus(void *data, Evas_Object *obj, void *event_info);
|
||||
static char *_text_get(void *data, Evas_Object *obj, const char *source);
|
||||
static Evas_Object *_content_get(void *data, Evas_Object *obj, const char *source);
|
||||
static Eina_Bool _state_get(void *data, Evas_Object *obj, const char *source);
|
||||
static void _item_del(void *data, Evas_Object *obj);
|
||||
static void _fill_list(Evas_Object *obj);
|
||||
static Eina_Bool _dir_has_subs(const char *path);
|
||||
|
||||
static void
|
||||
_tstatus(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Elm_Object_Item *tb_it;
|
||||
const char *status;
|
||||
|
||||
if (elm_panel_hidden_get((Evas_Object*)data))
|
||||
status = "hidden";
|
||||
else
|
||||
status = "shown";
|
||||
printf("The top panel is currently %s\n", status);
|
||||
tb_it = elm_toolbar_selected_item_get(obj);
|
||||
elm_toolbar_item_selected_set(tb_it, EINA_FALSE);
|
||||
}
|
||||
|
||||
static void
|
||||
_bstatus(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Elm_Object_Item *tb_it;
|
||||
const char *status;
|
||||
|
||||
if (elm_panel_hidden_get((Evas_Object*)data))
|
||||
status = "hidden";
|
||||
else
|
||||
status = "shown";
|
||||
printf("The bottom panel is currently %s\n", status);
|
||||
tb_it = elm_toolbar_selected_item_get(obj);
|
||||
elm_toolbar_item_selected_set(tb_it, EINA_FALSE);
|
||||
}
|
||||
|
||||
static char *
|
||||
_text_get(void *data, Evas_Object *obj __UNUSED__, const char *source __UNUSED__)
|
||||
{
|
||||
return strdup(ecore_file_file_get(data));
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
_content_get(void *data, Evas_Object *obj, const char *source)
|
||||
{
|
||||
if (!strcmp(source, "elm.swallow.icon"))
|
||||
{
|
||||
Evas_Object *ic;
|
||||
|
||||
ic = elm_icon_add(obj);
|
||||
if (ecore_file_is_dir((char *)data))
|
||||
elm_icon_standard_set(ic, "folder");
|
||||
else
|
||||
elm_icon_standard_set(ic, "file");
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
evas_object_show(ic);
|
||||
return ic;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
_state_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *source __UNUSED__)
|
||||
{
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
_item_del(void *data, Evas_Object *obj __UNUSED__)
|
||||
{
|
||||
eina_stringshare_del(data);
|
||||
}
|
||||
|
||||
static void
|
||||
_fill_list(Evas_Object *obj)
|
||||
{
|
||||
DIR *d;
|
||||
struct dirent *de;
|
||||
Eina_List *dirs = NULL, *l;
|
||||
char *real;
|
||||
|
||||
if (!(d = opendir(getenv("HOME")))) return;
|
||||
while ((de = readdir(d)))
|
||||
{
|
||||
char buff[PATH_MAX];
|
||||
|
||||
if (de->d_name[0] == '.') continue;
|
||||
snprintf(buff, sizeof(buff), "%s/%s", getenv("HOME"), de->d_name);
|
||||
if (!ecore_file_is_dir(buff)) continue;
|
||||
real = ecore_file_realpath(buff);
|
||||
dirs = eina_list_append(dirs, real);
|
||||
}
|
||||
closedir(d);
|
||||
|
||||
dirs = eina_list_sort(dirs, eina_list_count(dirs), EINA_COMPARE_CB(strcoll));
|
||||
|
||||
EINA_LIST_FOREACH(dirs, l, real)
|
||||
{
|
||||
Eina_Bool result = EINA_FALSE;
|
||||
|
||||
result = _dir_has_subs(real);
|
||||
if (!result)
|
||||
elm_genlist_item_append(obj, &itc, eina_stringshare_add(real),
|
||||
NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
|
||||
else
|
||||
elm_genlist_item_append(obj, &itc, eina_stringshare_add(real),
|
||||
NULL, ELM_GENLIST_ITEM_SUBITEMS,
|
||||
NULL, NULL);
|
||||
free(real);
|
||||
}
|
||||
eina_list_free(dirs);
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
_dir_has_subs(const char *path)
|
||||
{
|
||||
DIR *d;
|
||||
struct dirent *de;
|
||||
Eina_Bool result = EINA_FALSE;
|
||||
|
||||
if (!path) return result;
|
||||
if (!(d = opendir(path))) return result;
|
||||
while ((de = readdir(d)))
|
||||
{
|
||||
char buff[PATH_MAX];
|
||||
|
||||
if (de->d_name[0] == '.') continue;
|
||||
snprintf(buff, sizeof(buff), "%s/%s", path, de->d_name);
|
||||
if (ecore_file_is_dir(buff))
|
||||
{
|
||||
result = EINA_TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
closedir(d);
|
||||
return result;
|
||||
}
|
||||
|
||||
TEST_START(test_panel)
|
||||
{
|
||||
Evas_Object *bg, *panel, *bx, *vbx, *toolbar;
|
||||
Evas_Object *list;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
vbx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, vbx);
|
||||
evas_object_size_hint_weight_set(vbx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(vbx, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_show(vbx);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_box_horizontal_set(bx, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_show(bx);
|
||||
|
||||
panel = elm_panel_add(win);
|
||||
elm_panel_orient_set(panel, ELM_PANEL_ORIENT_TOP);
|
||||
evas_object_size_hint_weight_set(panel, EVAS_HINT_EXPAND, 0);
|
||||
evas_object_size_hint_align_set(panel, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
toolbar = elm_toolbar_add(win);
|
||||
elm_toolbar_homogeneous_set(toolbar, 0);
|
||||
elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_NONE);
|
||||
evas_object_size_hint_weight_set(toolbar, EVAS_HINT_EXPAND, 0);
|
||||
evas_object_size_hint_align_set(toolbar, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_show(toolbar);
|
||||
|
||||
elm_toolbar_item_append(toolbar, "home", "Hello", _tstatus, panel);
|
||||
|
||||
elm_object_content_set(panel, toolbar);
|
||||
elm_box_pack_end(vbx, panel);
|
||||
evas_object_show(panel);
|
||||
|
||||
panel = elm_panel_add(win);
|
||||
elm_panel_orient_set(panel, ELM_PANEL_ORIENT_LEFT);
|
||||
evas_object_size_hint_weight_set(panel, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(panel, 0, EVAS_HINT_FILL);
|
||||
|
||||
itc.item_style = "default";
|
||||
itc.func.text_get = _text_get;
|
||||
itc.func.content_get = _content_get;
|
||||
itc.func.state_get = _state_get;
|
||||
itc.func.del = _item_del;
|
||||
|
||||
list = elm_genlist_add(win);
|
||||
evas_object_size_hint_min_set(list, 100, -1);
|
||||
evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_show(list);
|
||||
|
||||
elm_object_content_set(panel, list);
|
||||
|
||||
elm_box_pack_end(bx, panel);
|
||||
evas_object_show(panel);
|
||||
|
||||
_fill_list(list);
|
||||
|
||||
panel = elm_panel_add(win);
|
||||
elm_panel_orient_set(panel, ELM_PANEL_ORIENT_RIGHT);
|
||||
evas_object_size_hint_weight_set(panel, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(panel, 1, EVAS_HINT_FILL);
|
||||
elm_panel_hidden_set(panel, EINA_TRUE);
|
||||
|
||||
list = elm_genlist_add(win);
|
||||
evas_object_size_hint_min_set(list, 100, -1);
|
||||
evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_show(list);
|
||||
|
||||
elm_object_content_set(panel, list);
|
||||
|
||||
elm_box_pack_end(bx, panel);
|
||||
evas_object_show(panel);
|
||||
|
||||
_fill_list(list);
|
||||
|
||||
elm_box_pack_end(vbx, bx);
|
||||
|
||||
panel = elm_panel_add(win);
|
||||
elm_panel_orient_set(panel, ELM_PANEL_ORIENT_BOTTOM);
|
||||
evas_object_size_hint_weight_set(panel, EVAS_HINT_EXPAND, 0);
|
||||
evas_object_size_hint_align_set(panel, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_panel_hidden_set(panel, EINA_TRUE);
|
||||
|
||||
toolbar = elm_toolbar_add(win);
|
||||
elm_toolbar_homogeneous_set(toolbar, 0);
|
||||
elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_NONE);
|
||||
evas_object_size_hint_weight_set(toolbar, EVAS_HINT_EXPAND, 0);
|
||||
evas_object_size_hint_align_set(toolbar, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_show(toolbar);
|
||||
|
||||
elm_toolbar_item_append(toolbar, "home", "Hello", _bstatus, panel);
|
||||
|
||||
elm_object_content_set(panel, toolbar);
|
||||
elm_box_pack_end(vbx, panel);
|
||||
evas_object_show(panel);
|
||||
|
||||
evas_object_resize(win, 320, 400);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,107 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
static double size = 0.0;
|
||||
|
||||
static void
|
||||
_press(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("press\n");
|
||||
}
|
||||
|
||||
static void
|
||||
_unpress(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("unpress, size : %f\n", elm_panes_content_left_size_get(obj));
|
||||
}
|
||||
|
||||
static void
|
||||
_clicked(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("clicked\n");
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
_clicked_double(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("clicked double\n");
|
||||
if(elm_panes_content_left_size_get(obj) > 0)
|
||||
{
|
||||
size = elm_panes_content_left_size_get(obj);
|
||||
elm_panes_content_left_size_set(obj, 0.0);
|
||||
}
|
||||
else
|
||||
elm_panes_content_left_size_set(obj, size);
|
||||
}
|
||||
|
||||
|
||||
TEST_START(test_panes)
|
||||
{
|
||||
Evas_Object *bg, *panes, *panes_h, *bt;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_focus_highlight_enabled_set(win, EINA_TRUE);
|
||||
evas_object_show(bg);
|
||||
|
||||
panes = elm_panes_add(win);
|
||||
elm_win_resize_object_add(win, panes);
|
||||
evas_object_size_hint_weight_set(panes, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(panes, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_show(panes);
|
||||
|
||||
evas_object_smart_callback_add(panes, "clicked", _clicked, panes);
|
||||
evas_object_smart_callback_add(panes, "clicked,double", _clicked_double, panes);
|
||||
|
||||
evas_object_smart_callback_add(panes, "press", _press, panes);
|
||||
evas_object_smart_callback_add(panes, "unpress", _unpress, panes);
|
||||
|
||||
|
||||
//
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Left");
|
||||
evas_object_size_hint_weight_set(bt, 1.0, 1.0);
|
||||
evas_object_size_hint_align_set(bt, -1.0, -1.0);
|
||||
evas_object_show(bt);
|
||||
elm_object_part_content_set(panes, "left", bt);
|
||||
//
|
||||
|
||||
//
|
||||
panes_h = elm_panes_add(win);
|
||||
elm_panes_horizontal_set(panes_h, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(panes_h, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(panes_h, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_show(panes_h);
|
||||
|
||||
evas_object_smart_callback_add(panes_h, "clicked", _clicked, panes_h);
|
||||
evas_object_smart_callback_add(panes_h, "clicked,double", _clicked_double, panes_h);
|
||||
|
||||
evas_object_smart_callback_add(panes_h, "press", _press, panes_h);
|
||||
evas_object_smart_callback_add(panes_h, "unpress", _unpress, panes_h);
|
||||
elm_object_part_content_set(panes, "right", panes_h);
|
||||
//
|
||||
|
||||
//
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Up");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_show(bt);
|
||||
elm_object_part_content_set(panes_h, "left", bt);
|
||||
//
|
||||
|
||||
//
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Down");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_show(bt);
|
||||
elm_object_part_content_set(panes_h, "right", bt);
|
||||
//
|
||||
|
||||
|
||||
evas_object_resize(win, 320, 400);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,199 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
typedef struct Progressbar
|
||||
{
|
||||
Evas_Object *pb1;
|
||||
Evas_Object *pb2;
|
||||
Evas_Object *pb3;
|
||||
Evas_Object *pb4;
|
||||
Evas_Object *pb5;
|
||||
Evas_Object *pb6;
|
||||
Evas_Object *pb7;
|
||||
Eina_Bool run;
|
||||
Ecore_Timer *timer;
|
||||
} Progressbar;
|
||||
|
||||
static Progressbar _test_progressbar;
|
||||
|
||||
static Eina_Bool
|
||||
_my_progressbar_value_set (void *data __UNUSED__)
|
||||
{
|
||||
double progress;
|
||||
|
||||
progress = elm_progressbar_value_get (_test_progressbar.pb1);
|
||||
if (progress < 1.0) progress += 0.0123;
|
||||
else progress = 0.0;
|
||||
elm_progressbar_value_set(_test_progressbar.pb1, progress);
|
||||
elm_progressbar_value_set(_test_progressbar.pb4, progress);
|
||||
elm_progressbar_value_set(_test_progressbar.pb3, progress);
|
||||
elm_progressbar_value_set(_test_progressbar.pb6, progress);
|
||||
if (progress < 1.0) return ECORE_CALLBACK_RENEW;
|
||||
_test_progressbar.run = 0;
|
||||
return ECORE_CALLBACK_CANCEL;
|
||||
}
|
||||
|
||||
static void
|
||||
my_progressbar_test_start(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_progressbar_pulse(_test_progressbar.pb2, EINA_TRUE);
|
||||
elm_progressbar_pulse(_test_progressbar.pb5, EINA_TRUE);
|
||||
elm_progressbar_pulse(_test_progressbar.pb7, EINA_TRUE);
|
||||
if (!_test_progressbar.run)
|
||||
{
|
||||
_test_progressbar.timer = ecore_timer_add(0.1, _my_progressbar_value_set, NULL);
|
||||
_test_progressbar.run = EINA_TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
my_progressbar_test_stop(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_progressbar_pulse(_test_progressbar.pb2, EINA_FALSE);
|
||||
elm_progressbar_pulse(_test_progressbar.pb5, EINA_FALSE);
|
||||
elm_progressbar_pulse(_test_progressbar.pb7, EINA_FALSE);
|
||||
if (_test_progressbar.run)
|
||||
{
|
||||
ecore_timer_del(_test_progressbar.timer);
|
||||
_test_progressbar.run = EINA_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
my_progressbar_destroy(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
my_progressbar_test_stop(NULL, NULL, NULL);
|
||||
evas_object_del(obj);
|
||||
}
|
||||
|
||||
TEST_START(test_progressbar)
|
||||
{
|
||||
Evas_Object *bg, *pb, *bx, *hbx, *bt, *bt_bx, *ic1, *ic2;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
evas_object_smart_callback_add(win, "delete,request",
|
||||
my_progressbar_destroy, NULL);
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bx);
|
||||
|
||||
pb = elm_progressbar_add(win);
|
||||
evas_object_size_hint_weight_set(pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(pb, EVAS_HINT_FILL, 0.5);
|
||||
elm_box_pack_end(bx, pb);
|
||||
// elm_progressbar_horizontal_set(pb, EINA_TRUE);
|
||||
// elm_object_text_set(pb, "Progression %");
|
||||
// elm_progressbar_unit_format_set(pb, NULL);
|
||||
evas_object_show(pb);
|
||||
_test_progressbar.pb1 = pb;
|
||||
|
||||
pb = elm_progressbar_add(win);
|
||||
evas_object_size_hint_align_set(pb, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_object_text_set(pb, "Infinite bounce");
|
||||
elm_progressbar_pulse_set(pb, EINA_TRUE);
|
||||
elm_box_pack_end(bx, pb);
|
||||
evas_object_show(pb);
|
||||
_test_progressbar.pb2 = pb;
|
||||
|
||||
ic1 = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic1, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic1, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
|
||||
pb = elm_progressbar_add(win);
|
||||
elm_object_text_set(pb, "Label");
|
||||
elm_object_content_set(pb, ic1);
|
||||
elm_progressbar_inverted_set(pb, 1);
|
||||
elm_progressbar_unit_format_set(pb, "%1.1f units");
|
||||
elm_progressbar_span_size_set(pb, 200);
|
||||
evas_object_size_hint_align_set(pb, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, pb);
|
||||
evas_object_show(ic1);
|
||||
evas_object_show(pb);
|
||||
_test_progressbar.pb3 = pb;
|
||||
|
||||
hbx = elm_box_add(win);
|
||||
elm_box_horizontal_set(hbx, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(hbx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(hbx, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_box_pack_end(bx, hbx);
|
||||
evas_object_show(hbx);
|
||||
|
||||
pb = elm_progressbar_add(win);
|
||||
elm_progressbar_horizontal_set(pb, EINA_FALSE);
|
||||
evas_object_size_hint_align_set(pb, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(hbx, pb);
|
||||
elm_progressbar_span_size_set(pb, 60);
|
||||
elm_object_text_set(pb, "percent");
|
||||
evas_object_show(pb);
|
||||
_test_progressbar.pb4 = pb;
|
||||
|
||||
pb = elm_progressbar_add(win);
|
||||
elm_progressbar_horizontal_set(pb, EINA_FALSE);
|
||||
evas_object_size_hint_align_set(pb, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_progressbar_span_size_set(pb, 80);
|
||||
elm_progressbar_pulse_set(pb, EINA_TRUE);
|
||||
elm_progressbar_unit_format_set(pb, NULL);
|
||||
elm_object_text_set(pb, "Infinite bounce");
|
||||
elm_box_pack_end(hbx, pb);
|
||||
evas_object_show(pb);
|
||||
_test_progressbar.pb5 = pb;
|
||||
|
||||
ic2 = elm_icon_add(win);
|
||||
elm_icon_file_set(ic2, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic2, EVAS_ASPECT_CONTROL_HORIZONTAL, 1, 1);
|
||||
|
||||
pb = elm_progressbar_add(win);
|
||||
elm_progressbar_horizontal_set(pb, EINA_FALSE);
|
||||
elm_object_text_set(pb, "Label");
|
||||
elm_object_content_set(pb, ic2);
|
||||
elm_progressbar_inverted_set(pb, 1);
|
||||
elm_progressbar_unit_format_set(pb, "%1.2f%%");
|
||||
elm_progressbar_span_size_set(pb, 200);
|
||||
evas_object_size_hint_align_set(pb, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(hbx, pb);
|
||||
evas_object_show(ic2);
|
||||
evas_object_show(pb);
|
||||
_test_progressbar.pb6 = pb;
|
||||
|
||||
pb = elm_progressbar_add(win);
|
||||
elm_object_style_set(pb, "wheel");
|
||||
elm_object_text_set(pb, "Style: wheel");
|
||||
evas_object_size_hint_align_set(pb, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, pb);
|
||||
evas_object_show(pb);
|
||||
_test_progressbar.pb7 = pb;
|
||||
|
||||
bt_bx = elm_box_add(win);
|
||||
elm_box_horizontal_set(bt_bx, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(bt_bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, bt_bx);
|
||||
evas_object_show(bt_bx);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Start");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_progressbar_test_start, NULL);
|
||||
elm_box_pack_end(bt_bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Stop");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_progressbar_test_stop, NULL);
|
||||
elm_box_pack_end(bt_bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,94 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
TEST_START(test_radio)
|
||||
{
|
||||
Evas_Object *bg, *bx, *ic, *rd, *rdg;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
|
||||
rd = elm_radio_add(win);
|
||||
elm_radio_state_value_set(rd, 0);
|
||||
evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(rd, EVAS_HINT_FILL, 0.5);
|
||||
elm_object_text_set(rd, "Icon sized to radio");
|
||||
elm_object_content_set(rd, ic);
|
||||
elm_box_pack_end(bx, rd);
|
||||
evas_object_show(rd);
|
||||
evas_object_show(ic);
|
||||
rdg = rd;
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
|
||||
rd = elm_radio_add(win);
|
||||
elm_radio_state_value_set(rd, 1);
|
||||
elm_radio_group_add(rd, rdg);
|
||||
elm_object_text_set(rd, "Icon no scale");
|
||||
elm_object_content_set(rd, ic);
|
||||
elm_box_pack_end(bx, rd);
|
||||
evas_object_show(rd);
|
||||
evas_object_show(ic);
|
||||
|
||||
rd = elm_radio_add(win);
|
||||
elm_radio_state_value_set(rd, 2);
|
||||
elm_radio_group_add(rd, rdg);
|
||||
elm_object_text_set(rd, "Label Only");
|
||||
elm_box_pack_end(bx, rd);
|
||||
evas_object_show(rd);
|
||||
|
||||
rd = elm_radio_add(win);
|
||||
elm_radio_state_value_set(rd, 3);
|
||||
elm_radio_group_add(rd, rdg);
|
||||
elm_object_text_set(rd, "Disabled");
|
||||
elm_object_disabled_set(rd, 1);
|
||||
elm_box_pack_end(bx, rd);
|
||||
evas_object_show(rd);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
|
||||
rd = elm_radio_add(win);
|
||||
elm_radio_state_value_set(rd, 4);
|
||||
elm_radio_group_add(rd, rdg);
|
||||
elm_object_content_set(rd, ic);
|
||||
elm_box_pack_end(bx, rd);
|
||||
evas_object_show(rd);
|
||||
evas_object_show(ic);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
|
||||
rd = elm_radio_add(win);
|
||||
elm_radio_state_value_set(rd, 5);
|
||||
elm_radio_group_add(rd, rdg);
|
||||
elm_object_content_set(rd, ic);
|
||||
elm_object_disabled_set(rd, 1);
|
||||
elm_box_pack_end(bx, rd);
|
||||
evas_object_show(rd);
|
||||
evas_object_show(ic);
|
||||
|
||||
elm_radio_value_set(rdg, 2);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,114 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
TEST_START(test_scaling)
|
||||
{
|
||||
Evas_Object *bg, *bx, *bt;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Scale: 0.5");
|
||||
elm_object_scale_set(bt, 0.5);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Scale: 0.75");
|
||||
elm_object_scale_set(bt, 0.75);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Scale: 1.0");
|
||||
elm_object_scale_set(bt, 1.0);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Scale: 1.5");
|
||||
elm_object_scale_set(bt, 1.5);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Scale: 2.0");
|
||||
elm_object_scale_set(bt, 2.0);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Scale: 3.0");
|
||||
elm_object_scale_set(bt, 3.0);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_resize(win, 320, 320);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
TEST_START(test_scaling2)
|
||||
{
|
||||
Evas_Object *bg, *bx, *fr, *lb;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
fr = elm_frame_add(win);
|
||||
elm_object_scale_set(fr, 0.5);
|
||||
elm_object_text_set(fr, "Scale: 0.5");
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb,
|
||||
"Parent frame scale<br>"
|
||||
"is 0.5. Child should<br>"
|
||||
"inherit it.");
|
||||
elm_object_content_set(fr, lb);
|
||||
evas_object_show(lb);
|
||||
elm_box_pack_end(bx, fr);
|
||||
evas_object_show(fr);
|
||||
|
||||
fr = elm_frame_add(win);
|
||||
elm_object_text_set(fr, "Scale: 1.0");
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb,
|
||||
"Parent frame scale<br>"
|
||||
"is 1.0. Child should<br>"
|
||||
"inherit it.");
|
||||
elm_object_content_set(fr, lb);
|
||||
evas_object_show(lb);
|
||||
elm_object_scale_set(fr, 1.0);
|
||||
elm_box_pack_end(bx, fr);
|
||||
evas_object_show(fr);
|
||||
|
||||
fr = elm_frame_add(win);
|
||||
elm_object_text_set(fr, "Scale: 2.0");
|
||||
lb = elm_label_add(win);
|
||||
elm_object_text_set(lb,
|
||||
"Parent frame scale<br>"
|
||||
"is 2.0. Child should<br>"
|
||||
"inherit it.");
|
||||
elm_object_content_set(fr, lb);
|
||||
evas_object_show(lb);
|
||||
elm_object_scale_set(fr, 2.0);
|
||||
elm_box_pack_end(bx, fr);
|
||||
evas_object_show(fr);
|
||||
|
||||
evas_object_resize(win, 320, 320);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,260 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
void
|
||||
my_bt_go_300_300(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_scroller_region_bring_in((Evas_Object *)data, 300, 300, 318, 318);
|
||||
}
|
||||
|
||||
void
|
||||
my_bt_go_900_300(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_scroller_region_bring_in((Evas_Object *)data, 900, 300, 318, 318);
|
||||
}
|
||||
|
||||
void
|
||||
my_bt_go_300_900(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_scroller_region_bring_in((Evas_Object *)data, 300, 900, 318, 318);
|
||||
}
|
||||
|
||||
void
|
||||
my_bt_go_900_900(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_scroller_region_bring_in((Evas_Object *)data, 900, 900, 318, 318);
|
||||
}
|
||||
|
||||
TEST_START(test_scroller)
|
||||
{
|
||||
/******* HOW TO TEST *******************
|
||||
Do NOT Exit test window while testing
|
||||
This causes scroller to get redundent
|
||||
event that breaks this test.
|
||||
******** HOW TO TEST ******************/
|
||||
Evas_Object *bg2, *tb, *tb2, *bg, *sc, *bt;
|
||||
int i, j, n;
|
||||
char buf[PATH_MAX];
|
||||
const char *img[9] =
|
||||
{
|
||||
"panel_01.jpg",
|
||||
"plant_01.jpg",
|
||||
"rock_01.jpg",
|
||||
"rock_02.jpg",
|
||||
"sky_01.jpg",
|
||||
"sky_02.jpg",
|
||||
"sky_03.jpg",
|
||||
"sky_04.jpg",
|
||||
"wood_01.jpg"
|
||||
};
|
||||
|
||||
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);
|
||||
|
||||
tb = elm_table_add(win);
|
||||
evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
|
||||
n = 0;
|
||||
for (j = 0; j < 12; j++)
|
||||
{
|
||||
for (i = 0; i < 12; i++)
|
||||
{
|
||||
bg2 = elm_bg_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/%s",
|
||||
elm_app_data_dir_get(), img[n]);
|
||||
n++;
|
||||
if (n >= 9) n = 0;
|
||||
elm_bg_file_set(bg2, buf, NULL);
|
||||
evas_object_size_hint_weight_set(bg2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bg2, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_min_set(bg2, 318, 318);
|
||||
elm_table_pack(tb, bg2, i, j, 1, 1);
|
||||
evas_object_show(bg2);
|
||||
}
|
||||
}
|
||||
|
||||
sc = elm_scroller_add(win);
|
||||
evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, sc);
|
||||
|
||||
elm_object_content_set(sc, tb);
|
||||
evas_object_show(tb);
|
||||
|
||||
elm_scroller_page_relative_set(sc, 1.0, 1.0);
|
||||
// elm_scroller_page_size_set(sc, 200, 200);
|
||||
evas_object_show(sc);
|
||||
|
||||
tb2 = elm_table_add(win);
|
||||
evas_object_size_hint_weight_set(tb2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, tb2);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "to 300 300");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_bt_go_300_300, sc);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, 0.1, 0.1);
|
||||
elm_table_pack(tb2, bt, 0, 0, 1, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "to 900 300");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_bt_go_900_300, sc);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, 0.9, 0.1);
|
||||
elm_table_pack(tb2, bt, 1, 0, 1, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "to 300 900");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_bt_go_300_900, sc);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, 0.1, 0.9);
|
||||
elm_table_pack(tb2, bt, 0, 1, 1, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "to 900 900");
|
||||
evas_object_smart_callback_add(bt, "clicked", my_bt_go_900_900, sc);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, 0.9, 0.9);
|
||||
elm_table_pack(tb2, bt, 1, 1, 1, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_show(tb2);
|
||||
|
||||
evas_object_resize(win, 320, 320);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
void
|
||||
click_through(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("click went through on %p\n", obj);
|
||||
}
|
||||
|
||||
TEST_START(test_scroller2)
|
||||
{
|
||||
Evas_Object *bt, *bx, *bx2, *bg, *sc, *tb, *tb2, *rc;
|
||||
int i, j;
|
||||
|
||||
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);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, 0.0);
|
||||
|
||||
/* { */
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Vertical");
|
||||
evas_object_smart_callback_add(bt, "clicked", click_through, NULL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, 0.5);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
}
|
||||
/* } */
|
||||
|
||||
/* { */
|
||||
sc = elm_scroller_add(win);
|
||||
evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(sc, EVAS_HINT_FILL, 0.5);
|
||||
elm_scroller_bounce_set(sc, 1, 0);
|
||||
elm_scroller_content_min_limit(sc, 0, 1);
|
||||
elm_box_pack_end(bx, sc);
|
||||
evas_object_show(sc);
|
||||
|
||||
bx2 = elm_box_add(win);
|
||||
elm_box_horizontal_set(bx2, EINA_TRUE);
|
||||
|
||||
for (i = 0; i < 10; i++)
|
||||
{
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "... Horizontal scrolling ...");
|
||||
evas_object_smart_callback_add(bt, "clicked", click_through, NULL);
|
||||
elm_box_pack_end(bx2, bt);
|
||||
evas_object_show(bt);
|
||||
}
|
||||
|
||||
elm_object_content_set(sc, bx2);
|
||||
evas_object_show(bx2);
|
||||
/* } */
|
||||
|
||||
/* { */
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Vertical");
|
||||
evas_object_smart_callback_add(bt, "clicked", click_through, NULL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, 0.5);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
}
|
||||
/* } */
|
||||
|
||||
/* { */
|
||||
tb = elm_table_add(win);
|
||||
evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_box_pack_end(bx, tb);
|
||||
evas_object_show(tb);
|
||||
|
||||
rc = evas_object_rectangle_add(evas_object_evas_get(win));
|
||||
evas_object_size_hint_min_set(rc, 200, 120);
|
||||
elm_table_pack(tb, rc, 0, 0, 1, 1);
|
||||
|
||||
sc = elm_scroller_add(win);
|
||||
evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(sc, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, sc, 0, 0, 1, 1);
|
||||
evas_object_show(sc);
|
||||
|
||||
tb2 = elm_table_add(win);
|
||||
|
||||
for (j = 0; j < 16; j++)
|
||||
{
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Both");
|
||||
evas_object_smart_callback_add(bt, "clicked", click_through, NULL);
|
||||
elm_table_pack(tb2, bt, i, j, 1, 1);
|
||||
evas_object_show(bt);
|
||||
}
|
||||
}
|
||||
|
||||
elm_object_content_set(sc, tb2);
|
||||
evas_object_show(tb2);
|
||||
/* } */
|
||||
|
||||
for (i = 0; i < 24; i++)
|
||||
{
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Vertical");
|
||||
evas_object_smart_callback_add(bt, "clicked", click_through, NULL);
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, 0.5);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
}
|
||||
|
||||
sc = elm_scroller_add(win);
|
||||
evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_scroller_bounce_set(sc, 0, 1);
|
||||
elm_win_resize_object_add(win, sc);
|
||||
elm_object_content_set(sc, bx);
|
||||
evas_object_show(bx);
|
||||
evas_object_show(sc);
|
||||
|
||||
evas_object_resize(win, 320, 480);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,96 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
TEST_START(test_segment_control)
|
||||
{
|
||||
Evas_Object *bg, *ic, *ic1, *ic2, *ic3, *ic4, *ic5;
|
||||
Elm_Object_Item *seg_it;
|
||||
|
||||
Evas_Object * in_layout;
|
||||
Evas_Object *segment1, *segment2, *segment3, *segment4;
|
||||
char buf[PATH_MAX];
|
||||
char buf1[PATH_MAX];
|
||||
char buf2[PATH_MAX];
|
||||
char buf3[PATH_MAX];
|
||||
char buf4[PATH_MAX];
|
||||
char buf5[PATH_MAX];
|
||||
char buf6[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
in_layout = elm_layout_add( win );
|
||||
elm_win_resize_object_add(win, in_layout);
|
||||
snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
|
||||
elm_layout_file_set(in_layout, buf, "segment_test");
|
||||
evas_object_size_hint_weight_set(in_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
|
||||
ic = elm_icon_add(in_layout);
|
||||
snprintf(buf1, sizeof(buf1), "%s/images/logo.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf1, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
|
||||
|
||||
ic1 = elm_icon_add(in_layout);
|
||||
snprintf(buf2, sizeof(buf2), "%s/images/logo.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic1, buf2, NULL);
|
||||
evas_object_size_hint_aspect_set(ic1, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
|
||||
|
||||
segment1 = elm_segment_control_add(win);
|
||||
elm_segment_control_item_add(segment1, NULL, "Only Text");
|
||||
seg_it = elm_segment_control_item_add(segment1, ic, NULL);
|
||||
elm_segment_control_item_selected_set(seg_it, EINA_TRUE);
|
||||
elm_segment_control_item_add(segment1, ic1, "Text_Icon_test");
|
||||
elm_segment_control_item_add(segment1, NULL, "Seg4");
|
||||
elm_segment_control_item_add(segment1, NULL, "Seg5");
|
||||
|
||||
segment2 = elm_segment_control_add(win);
|
||||
elm_segment_control_item_add(segment2, NULL, "SegmentItem");
|
||||
seg_it = elm_segment_control_item_add(segment2, NULL, "SegmentItem");
|
||||
elm_segment_control_item_selected_set(seg_it, EINA_TRUE);
|
||||
elm_segment_control_item_add(segment2, NULL, "SegmentControlItem");
|
||||
elm_segment_control_item_add(segment2, NULL, "SegmentItem");
|
||||
|
||||
ic2 = elm_icon_add(in_layout);
|
||||
snprintf(buf3, sizeof(buf3), "%s/images/logo.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic2, buf3, NULL);
|
||||
evas_object_size_hint_aspect_set(ic2, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
|
||||
|
||||
ic3 = elm_icon_add(in_layout);
|
||||
snprintf(buf4, sizeof(buf4), "%s/images/logo.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic3, buf4, NULL);
|
||||
evas_object_size_hint_aspect_set(ic3, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
|
||||
|
||||
ic4 = elm_icon_add(in_layout);
|
||||
snprintf(buf5, sizeof(buf5), "%s/images/logo.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic4, buf5, NULL);
|
||||
evas_object_size_hint_aspect_set(ic4, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
|
||||
|
||||
segment3 = elm_segment_control_add(win);
|
||||
elm_segment_control_item_add(segment3, ic2, NULL);
|
||||
seg_it = elm_segment_control_item_add(segment3, ic3, NULL);
|
||||
elm_segment_control_item_selected_set(seg_it, EINA_TRUE);
|
||||
elm_segment_control_item_add(segment3, ic4, NULL);
|
||||
|
||||
ic5 = elm_icon_add(in_layout);
|
||||
snprintf(buf6, sizeof(buf6), "%s/images/logo.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic5, buf6, NULL);
|
||||
evas_object_size_hint_aspect_set(ic5, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
|
||||
|
||||
segment4 = elm_segment_control_add(win);
|
||||
elm_segment_control_item_add(segment4, NULL, "Disabled");
|
||||
seg_it = elm_segment_control_item_add(segment4, ic5, "Disabled");
|
||||
elm_segment_control_item_selected_set(seg_it, EINA_TRUE);
|
||||
elm_segment_control_item_add(segment4, NULL, "Disabled");
|
||||
elm_object_disabled_set(segment4, EINA_TRUE);
|
||||
|
||||
elm_object_part_content_set(in_layout, "segment1", segment1);
|
||||
elm_object_part_content_set(in_layout, "segment2", segment2);
|
||||
elm_object_part_content_set(in_layout, "segment3", segment3);
|
||||
elm_object_part_content_set(in_layout, "segment4", segment4);
|
||||
|
||||
evas_object_show(in_layout);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,66 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
TEST_START(test_separator)
|
||||
{
|
||||
Evas_Object *bg, *bx0, *bx, *bt, *sp;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx0 = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx0, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_horizontal_set(bx0, 1);
|
||||
elm_win_resize_object_add(win, bx0);
|
||||
evas_object_show(bx0);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx0, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Left upper corner");
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
sp = elm_separator_add(win);
|
||||
elm_separator_horizontal_set(sp, 1); // by default, separator is vertical, we must set it horizontal
|
||||
elm_box_pack_end(bx, sp);
|
||||
evas_object_show(sp);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Left lower corner");
|
||||
elm_object_disabled_set(bt, 1);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
sp = elm_separator_add(win); // now we need vertical separator
|
||||
elm_box_pack_end(bx0, sp);
|
||||
evas_object_show(sp);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx0, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Right upper corner");
|
||||
elm_object_disabled_set(bt, 1);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
sp = elm_separator_add(win);
|
||||
elm_separator_horizontal_set(sp, 1);
|
||||
elm_box_pack_end(bx, sp);
|
||||
evas_object_show(sp);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Right lower corner");
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,190 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
void
|
||||
_change_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
double val = elm_slider_value_get(obj);
|
||||
elm_slider_value_set(data, val);
|
||||
}
|
||||
|
||||
TEST_START(test_slider)
|
||||
{
|
||||
Evas_Object *bg, *bx, *sl, *ic, *sl1, *bx2;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
|
||||
sl = elm_slider_add(win);
|
||||
sl1 = sl;
|
||||
elm_object_text_set(sl, "Horizontal");
|
||||
elm_object_part_content_set(sl, "icon", ic);
|
||||
elm_slider_unit_format_set(sl, "%1.1f units");
|
||||
elm_slider_span_size_set(sl, 120);
|
||||
evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, sl);
|
||||
evas_object_show(ic);
|
||||
evas_object_show(sl);
|
||||
|
||||
/* horizontal disable state */
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
|
||||
sl = elm_slider_add(win);
|
||||
elm_object_text_set(sl, "Disabled");
|
||||
elm_object_part_content_set(sl, "icon", ic);
|
||||
elm_slider_unit_format_set(sl, "%1.1f units");
|
||||
elm_slider_span_size_set(sl, 120);
|
||||
elm_slider_min_max_set(sl, 50, 150);
|
||||
elm_slider_value_set(sl, 80);
|
||||
elm_object_disabled_set(sl, EINA_TRUE);
|
||||
evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, sl);
|
||||
evas_object_show(ic);
|
||||
evas_object_show(sl);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
|
||||
sl = elm_slider_add(win);
|
||||
elm_object_text_set(sl, "Horizontal inverted");
|
||||
elm_object_part_content_set(sl, "end", ic);
|
||||
elm_slider_span_size_set(sl, 80);
|
||||
evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_slider_indicator_format_set(sl, "%3.0f");
|
||||
elm_slider_min_max_set(sl, 50, 150);
|
||||
elm_slider_value_set(sl, 80);
|
||||
elm_slider_inverted_set(sl, EINA_TRUE);
|
||||
evas_object_size_hint_align_set(sl, 0.5, 0.5);
|
||||
evas_object_size_hint_weight_set(sl, 0.0, 0.0);
|
||||
elm_box_pack_end(bx, sl);
|
||||
evas_object_show(ic);
|
||||
evas_object_show(sl);
|
||||
|
||||
/* label2 disable */
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
|
||||
sl = elm_slider_add(win);
|
||||
elm_object_text_set(sl, "Disabled inverted");
|
||||
elm_object_part_content_set(sl, "end", ic);
|
||||
elm_slider_span_size_set(sl, 80);
|
||||
evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_slider_indicator_format_set(sl, "%3.0f");
|
||||
elm_slider_min_max_set(sl, 50, 150);
|
||||
elm_slider_value_set(sl, 80);
|
||||
elm_slider_inverted_set(sl, EINA_TRUE);
|
||||
elm_object_disabled_set(sl, EINA_TRUE);
|
||||
evas_object_size_hint_align_set(sl, 0.5, 0.5);
|
||||
evas_object_size_hint_weight_set(sl, 0.0, 0.0);
|
||||
elm_box_pack_end(bx, sl);
|
||||
evas_object_show(ic);
|
||||
evas_object_show(sl);
|
||||
|
||||
sl = elm_slider_add(win);
|
||||
elm_slider_indicator_show_set(sl, EINA_FALSE);
|
||||
elm_object_text_set(sl, "Scale doubled");
|
||||
elm_slider_unit_format_set(sl, "%3.0f units");
|
||||
elm_slider_span_size_set(sl, 40);
|
||||
evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_slider_indicator_format_set(sl, "%3.0f");
|
||||
elm_slider_min_max_set(sl, 50, 150);
|
||||
elm_slider_value_set(sl, 80);
|
||||
elm_slider_inverted_set(sl, EINA_TRUE);
|
||||
elm_object_scale_set(sl, 2.0);
|
||||
elm_box_pack_end(bx, sl);
|
||||
evas_object_show(ic);
|
||||
evas_object_show(sl);
|
||||
|
||||
bx2 = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_horizontal_set(bx2, EINA_TRUE);
|
||||
elm_box_pack_end(bx, bx2);
|
||||
evas_object_show(bx2);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_HORIZONTAL, 1, 1);
|
||||
|
||||
sl = elm_slider_add(win);
|
||||
elm_object_part_content_set(sl, "icon", ic);
|
||||
elm_object_text_set(sl, "Vertical inverted");
|
||||
elm_slider_inverted_set(sl, EINA_TRUE);
|
||||
elm_slider_unit_format_set(sl, "units");
|
||||
elm_slider_span_size_set(sl, 60);
|
||||
evas_object_size_hint_align_set(sl, 0.5, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(sl, 0.0, EVAS_HINT_EXPAND);
|
||||
elm_slider_indicator_format_set(sl, "%1.1f");
|
||||
elm_slider_value_set(sl, 0.2);
|
||||
elm_object_scale_set(sl, 1.0);
|
||||
elm_slider_horizontal_set(sl, 0);
|
||||
elm_box_pack_end(bx2, sl);
|
||||
evas_object_show(ic);
|
||||
evas_object_show(sl);
|
||||
|
||||
evas_object_smart_callback_add(sl1, "changed", _change_cb, sl);
|
||||
|
||||
sl = elm_slider_add(win);
|
||||
elm_object_text_set(sl, "Vertical");
|
||||
elm_slider_unit_format_set(sl, "units");
|
||||
elm_slider_span_size_set(sl, 60);
|
||||
evas_object_size_hint_align_set(sl, 0.5, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(sl, 0.0, EVAS_HINT_EXPAND);
|
||||
elm_slider_indicator_format_set(sl, "%1.1f");
|
||||
elm_slider_value_set(sl, 0.2);
|
||||
elm_object_scale_set(sl, 1.0);
|
||||
elm_slider_horizontal_set(sl, EINA_FALSE);
|
||||
elm_box_pack_end(bx2, sl);
|
||||
evas_object_show(ic);
|
||||
evas_object_show(sl);
|
||||
|
||||
/* vertical disable state */
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_HORIZONTAL, 1, 1);
|
||||
|
||||
sl = elm_slider_add(win);
|
||||
elm_object_part_content_set(sl, "icon", ic);
|
||||
elm_object_text_set(sl, "Disabled vertical");
|
||||
elm_slider_inverted_set(sl, EINA_TRUE);
|
||||
elm_slider_unit_format_set(sl, "units");
|
||||
elm_slider_span_size_set(sl, 100);
|
||||
evas_object_size_hint_align_set(sl, 0.5, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(sl, 0.0, EVAS_HINT_EXPAND);
|
||||
elm_slider_indicator_format_set(sl, "%1.1f");
|
||||
elm_slider_value_set(sl, 0.2);
|
||||
elm_object_scale_set(sl, 1.0);
|
||||
elm_slider_horizontal_set(sl, 0);
|
||||
elm_object_disabled_set(sl, EINA_TRUE);
|
||||
elm_box_pack_end(bx2, sl);
|
||||
evas_object_show(ic);
|
||||
evas_object_show(sl);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,204 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
static Evas_Object *slideshow, *bt_start, *bt_stop;
|
||||
static Elm_Slideshow_Item_Class itc;
|
||||
|
||||
static void
|
||||
_notify_show(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
evas_object_show(data);
|
||||
}
|
||||
|
||||
static void
|
||||
_next(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_slideshow_next(data);
|
||||
}
|
||||
|
||||
static void
|
||||
_previous(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_slideshow_previous(data);
|
||||
}
|
||||
|
||||
static void
|
||||
_mouse_in(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_notify_timeout_set(data, 0.0);
|
||||
evas_object_show(data);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
_mouse_out(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_notify_timeout_set(data, 3.0);
|
||||
}
|
||||
|
||||
static void
|
||||
_hv_select(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_slideshow_transition_set(slideshow, data);
|
||||
elm_object_text_set(obj, data);
|
||||
}
|
||||
|
||||
static void
|
||||
_layout_select(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_slideshow_layout_set(slideshow, data);
|
||||
elm_object_text_set(obj, data);
|
||||
}
|
||||
|
||||
static void
|
||||
_start(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_slideshow_timeout_set(slideshow, elm_spinner_value_get(data));
|
||||
|
||||
elm_object_disabled_set(bt_start, EINA_TRUE);
|
||||
elm_object_disabled_set(bt_stop, EINA_FALSE);
|
||||
}
|
||||
|
||||
static void
|
||||
_stop(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_slideshow_timeout_set(slideshow, 0.0);
|
||||
elm_object_disabled_set(bt_start, EINA_FALSE);
|
||||
elm_object_disabled_set(bt_stop, EINA_TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
_spin(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
if (elm_slideshow_timeout_get(slideshow) > 0)
|
||||
elm_slideshow_timeout_set(slideshow, elm_spinner_value_get(data));
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
_get(void *data, Evas_Object *obj)
|
||||
{
|
||||
//Evas_Object *photo = elm_photocam_add(obj);
|
||||
//elm_photocam_file_set(photo, data);
|
||||
//elm_photocam_zoom_mode_set(photo, ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT);
|
||||
|
||||
Evas_Object *photo = elm_photo_add(obj);
|
||||
elm_photo_file_set(photo, data);
|
||||
elm_photo_fill_inside_set(photo, EINA_TRUE);
|
||||
elm_object_style_set(photo, "shadow");
|
||||
|
||||
return photo;
|
||||
}
|
||||
|
||||
static char *
|
||||
_get_str(char *dest, const char *str)
|
||||
{ /* dest should be not null and big enough */
|
||||
sprintf(dest, "%s/%s", elm_app_data_dir_get(), str);
|
||||
return dest;
|
||||
}
|
||||
|
||||
TEST_START(test_slideshow)
|
||||
{
|
||||
Evas_Object *bg, *notify, *bx, *bt, *hv, *spin;
|
||||
const Eina_List *l;
|
||||
const char *transition, *layout;
|
||||
char buf[1024];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
slideshow = elm_slideshow_add(win);
|
||||
elm_slideshow_loop_set(slideshow, EINA_TRUE);
|
||||
elm_win_resize_object_add(win, slideshow);
|
||||
evas_object_size_hint_weight_set(slideshow, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(slideshow);
|
||||
|
||||
itc.func.get = _get;
|
||||
itc.func.del = NULL;
|
||||
|
||||
elm_slideshow_item_add(slideshow,&itc,_get_str(buf,"images/logo.png"));
|
||||
elm_slideshow_item_add(slideshow,&itc,_get_str(buf,"images/plant_01.jpg"));
|
||||
elm_slideshow_item_add(slideshow,&itc,_get_str(buf,"images/rock_01.jpg"));
|
||||
elm_slideshow_item_add(slideshow,&itc,get_str(buf,"images/rock_02.jpg"));
|
||||
elm_slideshow_item_add(slideshow,&itc,_get_str(buf,"images/sky_01.jpg"));
|
||||
elm_slideshow_item_add(slideshow,&itc,_get_str(buf,"images/sky_04.jpg"));
|
||||
elm_slideshow_item_add(slideshow,&itc,_get_str(buf,"images/wood_01.jpg"));
|
||||
elm_slideshow_item_add(slideshow,&itc,_get_str(buf,"images/mystrale.jpg"));
|
||||
elm_slideshow_item_add(slideshow,&itc,_get_str(buf,"images/mystrale_2.jpg"));
|
||||
|
||||
notify = elm_notify_add(win);
|
||||
elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_BOTTOM);
|
||||
elm_win_resize_object_add(win, notify);
|
||||
elm_notify_timeout_set(notify, 3.0);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_box_horizontal_set(bx, EINA_TRUE);
|
||||
elm_object_content_set(notify, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
evas_object_event_callback_add(bx, EVAS_CALLBACK_MOUSE_IN, _mouse_in,
|
||||
notify);
|
||||
evas_object_event_callback_add(bx, EVAS_CALLBACK_MOUSE_OUT, _mouse_out,
|
||||
notify);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Previous");
|
||||
evas_object_smart_callback_add(bt, "clicked", _previous, slideshow);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Next");
|
||||
evas_object_smart_callback_add(bt, "clicked", _next, slideshow);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
hv = elm_hoversel_add(win);
|
||||
elm_box_pack_end(bx, hv);
|
||||
elm_hoversel_hover_parent_set(hv, win);
|
||||
EINA_LIST_FOREACH(elm_slideshow_transitions_get(slideshow), l, transition)
|
||||
elm_hoversel_item_add(hv, transition, NULL, 0, _hv_select, transition);
|
||||
elm_object_text_set(hv, eina_list_data_get(elm_slideshow_transitions_get(slideshow)));
|
||||
evas_object_show(hv);
|
||||
|
||||
hv = elm_hoversel_add(win);
|
||||
elm_box_pack_end(bx, hv);
|
||||
elm_hoversel_hover_parent_set(hv, win);
|
||||
EINA_LIST_FOREACH(elm_slideshow_layouts_get(slideshow), l, layout)
|
||||
elm_hoversel_item_add(hv, layout, NULL, 0, _layout_select, layout);
|
||||
elm_object_text_set(hv, elm_slideshow_layout_get(slideshow));
|
||||
evas_object_show(hv);
|
||||
|
||||
spin = elm_spinner_add(win);
|
||||
elm_spinner_label_format_set(spin, "%2.0f secs.");
|
||||
evas_object_smart_callback_add(spin, "changed", _spin, spin);
|
||||
elm_spinner_step_set(spin, 1);
|
||||
elm_spinner_min_max_set(spin, 1, 30);
|
||||
elm_spinner_value_set(spin, 3);
|
||||
elm_box_pack_end(bx, spin);
|
||||
evas_object_show(spin);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
bt_start = bt;
|
||||
elm_object_text_set(bt, "Start");
|
||||
evas_object_smart_callback_add(bt, "clicked", _start, spin);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
bt_stop = bt;
|
||||
elm_object_text_set(bt, "Stop");
|
||||
evas_object_smart_callback_add(bt, "clicked", _stop, spin);
|
||||
elm_box_pack_end(bx, bt);
|
||||
elm_object_disabled_set(bt, EINA_TRUE);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_event_callback_add(slideshow, EVAS_CALLBACK_MOUSE_UP,
|
||||
_notify_show, notify);
|
||||
evas_object_event_callback_add(slideshow, EVAS_CALLBACK_MOUSE_MOVE,
|
||||
_notify_show, notify);
|
||||
|
||||
evas_object_resize(win, 500, 400);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,81 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
TEST_START(test_spinner)
|
||||
{
|
||||
Evas_Object *bg, *bx, *sp;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
sp = elm_spinner_add(win);
|
||||
elm_spinner_label_format_set(sp, "%1.1f units");
|
||||
elm_spinner_step_set(sp, 1.3);
|
||||
elm_spinner_wrap_set(sp, ELM_WRAP_CHAR);
|
||||
elm_spinner_min_max_set(sp, -50.0, 250.0);
|
||||
evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, sp);
|
||||
evas_object_show(sp);
|
||||
|
||||
sp = elm_spinner_add(win);
|
||||
elm_spinner_label_format_set(sp, "Percentage %%%1.2f something");
|
||||
elm_spinner_step_set(sp, 5.0);
|
||||
elm_spinner_wrap_set(sp, ELM_WRAP_CHAR);
|
||||
elm_spinner_min_max_set(sp, 0.0, 100.0);
|
||||
evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, sp);
|
||||
evas_object_show(sp);
|
||||
|
||||
sp = elm_spinner_add(win);
|
||||
elm_spinner_label_format_set(sp, "%1.1f units");
|
||||
elm_spinner_step_set(sp, 1.3);
|
||||
elm_spinner_wrap_set(sp, ELM_WRAP_CHAR);
|
||||
elm_object_style_set (sp, "vertical");
|
||||
elm_spinner_min_max_set(sp, -50.0, 250.0);
|
||||
evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, sp);
|
||||
evas_object_show(sp);
|
||||
|
||||
sp = elm_spinner_add(win);
|
||||
elm_spinner_label_format_set(sp, "Disabled %.0f");
|
||||
elm_object_disabled_set(sp, 1);
|
||||
elm_spinner_min_max_set(sp, -50.0, 250.0);
|
||||
evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, sp);
|
||||
evas_object_show(sp);
|
||||
|
||||
sp = elm_spinner_add(win);
|
||||
elm_spinner_min_max_set(sp, 1, 12);
|
||||
elm_spinner_label_format_set(sp, "%.0f");
|
||||
elm_spinner_step_set(sp, 1.0);
|
||||
elm_spinner_editable_set(sp, EINA_FALSE);
|
||||
elm_spinner_special_value_add(sp, 1, "January");
|
||||
elm_spinner_special_value_add(sp, 2, "February");
|
||||
elm_spinner_special_value_add(sp, 3, "March");
|
||||
elm_spinner_special_value_add(sp, 4, "April");
|
||||
elm_spinner_special_value_add(sp, 5, "May");
|
||||
elm_spinner_special_value_add(sp, 6, "June");
|
||||
elm_spinner_special_value_add(sp, 7, "July");
|
||||
elm_spinner_special_value_add(sp, 8, "August");
|
||||
elm_spinner_special_value_add(sp, 9, "September");
|
||||
elm_spinner_special_value_add(sp, 10, "October");
|
||||
elm_spinner_special_value_add(sp, 11, "November");
|
||||
elm_spinner_special_value_add(sp, 12, "December");
|
||||
evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
|
||||
evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_box_pack_end(bx, sp);
|
||||
evas_object_show(sp);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,340 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
TEST_START(test_table)
|
||||
{
|
||||
Evas_Object *bg, *tb, *bt;
|
||||
|
||||
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);
|
||||
|
||||
tb = elm_table_add(win);
|
||||
elm_win_resize_object_add(win, tb);
|
||||
evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(tb);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 1");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 0, 0, 1, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 2");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 1, 0, 1, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 3");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 2, 0, 1, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 4");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 0, 1, 2, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 5");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 2, 1, 1, 2);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button a");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 0, 2, 2, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
TEST_START(test_table2)
|
||||
{
|
||||
Evas_Object *bg, *tb, *bt;
|
||||
|
||||
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);
|
||||
|
||||
tb = elm_table_add(win);
|
||||
elm_table_homogeneous_set(tb, EINA_TRUE);
|
||||
elm_win_resize_object_add(win, tb);
|
||||
evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(tb);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "A");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 1, 1, 2, 2);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Blah blah blah");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 3, 0, 2, 3);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Hallow");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 0, 3, 10, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "B");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 2, 5, 2, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "C");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 8, 8, 1, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Wide");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 1, 7, 7, 2);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
static void
|
||||
my_tb_ch(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *win = data;
|
||||
Evas_Object *tb = evas_object_data_get(win, "tb");
|
||||
Evas_Object *b2 = evas_object_data_get(win, "b2");
|
||||
|
||||
elm_table_unpack(tb, b2);
|
||||
elm_table_pack(tb, b2, 1, 0, 1, 2);
|
||||
}
|
||||
|
||||
TEST_START(test_table3)
|
||||
{
|
||||
Evas_Object *bg, *tb, *bt;
|
||||
|
||||
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);
|
||||
|
||||
tb = elm_table_add(win);
|
||||
elm_win_resize_object_add(win, tb);
|
||||
evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_data_set(win, "tb", tb);
|
||||
evas_object_show(tb);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 1");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 0, 0, 1, 1);
|
||||
evas_object_data_set(win, "b1", bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", my_tb_ch, win);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 2");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 1, 0, 1, 1);
|
||||
evas_object_data_set(win, "b2", bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", my_tb_ch, win);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 3");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 0, 1, 1, 1);
|
||||
evas_object_data_set(win, "b3", bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", my_tb_ch, win);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
TEST_START(test_table4)
|
||||
{
|
||||
Evas_Object *bg, *tb, *bt;
|
||||
|
||||
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);
|
||||
|
||||
tb = elm_table_add(win);
|
||||
elm_win_resize_object_add(win, tb);
|
||||
evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_data_set(win, "tb", tb);
|
||||
evas_object_show(tb);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 1");
|
||||
evas_object_size_hint_weight_set(bt, 0.25, 0.25);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 0, 0, 1, 1);
|
||||
evas_object_data_set(win, "b1", bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", my_tb_ch, win);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 2");
|
||||
evas_object_size_hint_weight_set(bt, 0.75, 0.25);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 1, 0, 1, 1);
|
||||
evas_object_data_set(win, "b2", bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", my_tb_ch, win);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button 3");
|
||||
evas_object_size_hint_weight_set(bt, 0.25, 0.75);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 0, 1, 1, 1);
|
||||
evas_object_data_set(win, "b3", bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", my_tb_ch, win);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
TEST_START(test_table5)
|
||||
{
|
||||
Evas_Object *bg, *tb, *bt;
|
||||
|
||||
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);
|
||||
|
||||
tb = elm_table_add(win);
|
||||
elm_table_homogeneous_set(tb, EINA_TRUE);
|
||||
elm_win_resize_object_add(win, tb);
|
||||
evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(tb);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "A");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 33, 0, 34, 33);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "B");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 67, 33, 33, 34);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "C");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 33, 67, 34, 33);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "D");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 0, 33, 33, 34);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "X");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 33, 33, 34, 34);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
TEST_START(test_table6)
|
||||
{
|
||||
Evas_Object *bg, *tb, *bt;
|
||||
|
||||
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);
|
||||
|
||||
tb = elm_table_add(win);
|
||||
elm_table_homogeneous_set(tb, EINA_TRUE);
|
||||
elm_win_resize_object_add(win, tb);
|
||||
evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(tb);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "C");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 1, 1, 2, 2);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "A");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 1, 1, 2, 2);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Blah blah blah");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 3, 0, 2, 3);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Hallow");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 0, 3, 10, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "B");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 1, 1, 1, 1);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Wide");
|
||||
evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_table_pack(tb, bt, 1, 7, 7, 2);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,85 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
TEST_START(test_toggle)
|
||||
{
|
||||
Evas_Object *bg, *bx, *ic, *tg;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
|
||||
tg = elm_check_add(win);
|
||||
elm_object_style_set(tg, "toggle");
|
||||
evas_object_size_hint_weight_set(tg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(tg, EVAS_HINT_FILL, 0.5);
|
||||
elm_object_text_set(tg, "Icon sized to toggle");
|
||||
elm_object_content_set(tg, ic);
|
||||
elm_check_state_set(tg, 1);
|
||||
elm_object_part_text_set(tg, "on", "Yes");
|
||||
elm_object_part_text_set(tg, "off", "No");
|
||||
elm_box_pack_end(bx, tg);
|
||||
evas_object_show(tg);
|
||||
evas_object_show(ic);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
|
||||
tg = elm_check_add(win);
|
||||
elm_object_style_set(tg, "toggle");
|
||||
elm_object_text_set(tg, "Icon no scale");
|
||||
elm_object_content_set(tg, ic);
|
||||
elm_box_pack_end(bx, tg);
|
||||
evas_object_show(tg);
|
||||
evas_object_show(ic);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
|
||||
tg = elm_check_add(win);
|
||||
elm_object_style_set(tg, "toggle");
|
||||
elm_object_text_set(tg, "Icon no scale");
|
||||
elm_object_content_set(tg, ic);
|
||||
elm_object_disabled_set(tg, 1);
|
||||
elm_box_pack_end(bx, tg);
|
||||
evas_object_show(tg);
|
||||
evas_object_show(ic);
|
||||
|
||||
tg = elm_check_add(win);
|
||||
elm_object_style_set(tg, "toggle");
|
||||
elm_object_text_set(tg, "Label Only");
|
||||
elm_object_part_text_set(tg, "on", "Big long fun times label");
|
||||
elm_object_part_text_set(tg, "off", "Small long happy fun label");
|
||||
elm_box_pack_end(bx, tg);
|
||||
evas_object_show(tg);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
|
||||
tg = elm_check_add(win);
|
||||
elm_object_style_set(tg, "toggle");
|
||||
elm_object_content_set(tg, ic);
|
||||
elm_box_pack_end(bx, tg);
|
||||
evas_object_show(tg);
|
||||
evas_object_show(ic);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,699 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
static void
|
||||
tb_1(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
char buf[PATH_MAX];
|
||||
snprintf(buf, sizeof(buf), "%s/images/panel_01.jpg", elm_app_data_dir_get());
|
||||
elm_photo_file_set(data, buf);
|
||||
}
|
||||
|
||||
static void
|
||||
tb_2(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
char buf[PATH_MAX];
|
||||
snprintf(buf, sizeof(buf), "%s/images/rock_01.jpg", elm_app_data_dir_get());
|
||||
elm_photo_file_set(data, buf);
|
||||
}
|
||||
|
||||
static void
|
||||
tb_3(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
char buf[PATH_MAX];
|
||||
snprintf(buf, sizeof(buf), "%s/images/wood_01.jpg", elm_app_data_dir_get());
|
||||
elm_photo_file_set(data, buf);
|
||||
}
|
||||
|
||||
static void
|
||||
tb_3a(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
tb_3(data, obj, event_info);
|
||||
elm_toolbar_item_state_set(event_info, elm_toolbar_item_state_next(event_info));
|
||||
}
|
||||
|
||||
static void
|
||||
tb_3b(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
tb_3(data, obj, event_info);
|
||||
elm_toolbar_item_state_unset(event_info);
|
||||
}
|
||||
|
||||
static void
|
||||
tb_4(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
char buf[PATH_MAX];
|
||||
snprintf(buf, sizeof(buf), "%s/images/sky_03.jpg", elm_app_data_dir_get());
|
||||
elm_photo_file_set(data, buf);
|
||||
}
|
||||
|
||||
static void
|
||||
tb_4a(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_toolbar_item_state_set(event_info, elm_toolbar_item_state_prev(event_info));
|
||||
}
|
||||
|
||||
static void
|
||||
tb_5(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_photo_file_set(data, NULL);
|
||||
}
|
||||
|
||||
TEST_START(test_toolbar)
|
||||
{
|
||||
Evas_Object *bg, *bx, *tb, *ph, *menu;
|
||||
Evas_Object *ph1, *ph2, *ph3, *ph4;
|
||||
Elm_Object_Item *tb_it;
|
||||
Elm_Object_Item *menu_it;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bx);
|
||||
|
||||
tb = elm_toolbar_add(win);
|
||||
elm_toolbar_homogeneous_set(tb, 0);
|
||||
elm_toolbar_shrink_mode_set(tb, ELM_TOOLBAR_SHRINK_MENU);
|
||||
evas_object_size_hint_weight_set(tb, 0.0, 0.0);
|
||||
evas_object_size_hint_align_set(tb, EVAS_HINT_FILL, 0.0);
|
||||
|
||||
ph1 = elm_photo_add(win);
|
||||
ph2 = elm_photo_add(win);
|
||||
ph3 = elm_photo_add(win);
|
||||
ph4 = elm_photo_add(win);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "document-print", "Hello", tb_1, ph1);
|
||||
elm_object_item_disabled_set(tb_it, EINA_TRUE);
|
||||
elm_toolbar_item_priority_set(tb_it, 100);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "folder-new", "World", tb_2, ph1);
|
||||
elm_toolbar_item_priority_set(tb_it, -100);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "object-rotate-right", "H", tb_3, ph4);
|
||||
elm_toolbar_item_priority_set(tb_it, 150);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "mail-send", "Comes", tb_4, ph4);
|
||||
elm_toolbar_item_priority_set(tb_it, 0);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "clock", "Elementary", tb_5, ph4);
|
||||
elm_toolbar_item_priority_set(tb_it, -200);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "refresh", "Menu", NULL, NULL);
|
||||
elm_toolbar_item_menu_set(tb_it, 1);
|
||||
elm_toolbar_item_priority_set(tb_it, -999999);
|
||||
elm_toolbar_menu_parent_set(tb, win);
|
||||
menu = elm_toolbar_item_menu_get(tb_it);
|
||||
|
||||
elm_menu_item_add(menu, NULL, "edit-cut", "Shrink", tb_3, ph4);
|
||||
menu_it = elm_menu_item_add(menu, NULL, "edit-copy", "Mode", tb_4, ph4);
|
||||
elm_menu_item_add(menu, menu_it, "edit-paste", "is set to", tb_4, ph4);
|
||||
elm_menu_item_add(menu, NULL, "edit-delete", "Menu", tb_5, ph4);
|
||||
|
||||
elm_box_pack_end(bx, tb);
|
||||
evas_object_show(tb);
|
||||
|
||||
tb = elm_table_add(win);
|
||||
//elm_table_homogeneous_set(tb, 1);
|
||||
evas_object_size_hint_weight_set(tb, 0.0, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_fill_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
ph = ph1;
|
||||
elm_photo_size_set(ph, 40);
|
||||
snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", elm_app_data_dir_get());
|
||||
elm_photo_file_set(ph, buf);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 0, 0, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
ph = ph2;
|
||||
elm_photo_size_set(ph, 80);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 1, 0, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
ph = ph3;
|
||||
elm_photo_size_set(ph, 20);
|
||||
snprintf(buf, sizeof(buf), "%s/images/sky_01.jpg", elm_app_data_dir_get());
|
||||
elm_photo_file_set(ph, buf);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 0, 1, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
ph = ph4;
|
||||
elm_photo_size_set(ph, 60);
|
||||
snprintf(buf, sizeof(buf), "%s/images/sky_02.jpg", elm_app_data_dir_get());
|
||||
elm_photo_file_set(ph, buf);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 1, 1, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
elm_box_pack_end(bx, tb);
|
||||
evas_object_show(tb);
|
||||
|
||||
evas_object_resize(win, 320, 300);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
TEST_START(test_toolbar2)
|
||||
{
|
||||
Evas_Object *bg, *bx, *tb, *ph, *menu;
|
||||
Evas_Object *ph1, *ph2, *ph3, *ph4;
|
||||
Elm_Object_Item *item;
|
||||
Elm_Object_Item *menu_it;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bx);
|
||||
|
||||
tb = elm_toolbar_add(win);
|
||||
elm_toolbar_homogeneous_set(tb, 0);
|
||||
elm_toolbar_shrink_mode_set(tb, ELM_TOOLBAR_SHRINK_SCROLL);
|
||||
evas_object_size_hint_weight_set(tb, 0.0, 0.0);
|
||||
evas_object_size_hint_align_set(tb, EVAS_HINT_FILL, 0.0);
|
||||
|
||||
ph1 = elm_photo_add(win);
|
||||
ph2 = elm_photo_add(win);
|
||||
ph3 = elm_photo_add(win);
|
||||
ph4 = elm_photo_add(win);
|
||||
|
||||
item = elm_toolbar_item_append(tb, "document-print", "Hello", tb_1, ph1);
|
||||
elm_object_item_disabled_set(item, EINA_TRUE);
|
||||
elm_toolbar_item_priority_set(item, -100);
|
||||
|
||||
item = elm_toolbar_item_append(tb, "folder-new", "World", tb_2, ph1);
|
||||
elm_toolbar_item_priority_set(item, 100);
|
||||
|
||||
item = elm_toolbar_item_append(tb, "object-rotate-right", "H", tb_3, ph4);
|
||||
elm_toolbar_item_priority_set(item, -150);
|
||||
|
||||
item = elm_toolbar_item_append(tb, "mail-send", "Comes", tb_4, ph4);
|
||||
elm_toolbar_item_priority_set(item, -200);
|
||||
|
||||
item = elm_toolbar_item_append(tb, "clock", "Elementary", tb_5, ph4);
|
||||
elm_toolbar_item_priority_set(item, 0);
|
||||
|
||||
item = elm_toolbar_item_append(tb, "refresh", "Menu", NULL, NULL);
|
||||
elm_toolbar_item_menu_set(item, 1);
|
||||
elm_toolbar_item_priority_set(item, -999999);
|
||||
elm_toolbar_menu_parent_set(tb, win);
|
||||
menu = elm_toolbar_item_menu_get(item);
|
||||
|
||||
elm_menu_item_add(menu, NULL, "edit-cut", "Shrink", tb_3, ph4);
|
||||
menu_it = elm_menu_item_add(menu, NULL, "edit-copy", "Mode", tb_4, ph4);
|
||||
elm_menu_item_add(menu, menu_it, "edit-paste", "is set to", tb_4, ph4);
|
||||
elm_menu_item_add(menu, NULL, "edit-delete", "Scroll", tb_5, ph4);
|
||||
|
||||
elm_box_pack_end(bx, tb);
|
||||
evas_object_show(tb);
|
||||
|
||||
tb = elm_table_add(win);
|
||||
//elm_table_homogeneous_set(tb, 1);
|
||||
evas_object_size_hint_weight_set(tb, 0.0, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_fill_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
ph = ph1;
|
||||
elm_photo_size_set(ph, 40);
|
||||
snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", elm_app_data_dir_get());
|
||||
elm_photo_file_set(ph, buf);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 0, 0, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
ph = ph2;
|
||||
elm_photo_size_set(ph, 80);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 1, 0, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
ph = ph3;
|
||||
elm_photo_size_set(ph, 20);
|
||||
snprintf(buf, sizeof(buf), "%s/images/sky_01.jpg", elm_app_data_dir_get());
|
||||
elm_photo_file_set(ph, buf);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 0, 1, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
ph = ph4;
|
||||
elm_photo_size_set(ph, 60);
|
||||
snprintf(buf, sizeof(buf), "%s/images/sky_02.jpg", elm_app_data_dir_get());
|
||||
elm_photo_file_set(ph, buf);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 1, 1, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
elm_box_pack_end(bx, tb);
|
||||
evas_object_show(tb);
|
||||
|
||||
evas_object_resize(win, 320, 300);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
TEST_START(test_toolbar3)
|
||||
{
|
||||
Evas_Object *bg, *bx, *tb, *ph, *menu;
|
||||
Evas_Object *ph1, *ph2, *ph3, *ph4;
|
||||
Elm_Object_Item *tb_it;
|
||||
Elm_Object_Item *menu_it;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bx);
|
||||
|
||||
tb = elm_toolbar_add(win);
|
||||
elm_toolbar_homogeneous_set(tb, 0);
|
||||
elm_toolbar_shrink_mode_set(tb, ELM_TOOLBAR_SHRINK_NONE);
|
||||
evas_object_size_hint_weight_set(tb, 0.0, 0.0);
|
||||
evas_object_size_hint_align_set(tb, EVAS_HINT_FILL, 0.0);
|
||||
|
||||
ph1 = elm_photo_add(win);
|
||||
ph2 = elm_photo_add(win);
|
||||
ph3 = elm_photo_add(win);
|
||||
ph4 = elm_photo_add(win);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "document-print", "Hello", tb_1, ph1);
|
||||
elm_object_item_disabled_set(tb_it, EINA_TRUE);
|
||||
elm_toolbar_item_priority_set(tb_it, 0);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "folder-new", "World", tb_2, ph1);
|
||||
elm_toolbar_item_priority_set(tb_it, -200);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "object-rotate-right", "H", tb_3, ph4);
|
||||
elm_toolbar_item_priority_set(tb_it, 1);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "mail-send", "Comes", tb_4, ph4);
|
||||
elm_toolbar_item_priority_set(tb_it, -10);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "clock", "Elementary", tb_5, ph4);
|
||||
elm_toolbar_item_priority_set(tb_it, 50);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "refresh", "Menu", NULL, NULL);
|
||||
elm_toolbar_item_menu_set(tb_it, 1);
|
||||
elm_toolbar_item_priority_set(tb_it, 999999);
|
||||
elm_toolbar_menu_parent_set(tb, win);
|
||||
menu = elm_toolbar_item_menu_get(tb_it);
|
||||
|
||||
elm_menu_item_add(menu, NULL, "edit-cut", "Shrink", tb_3, ph4);
|
||||
menu_it = elm_menu_item_add(menu, NULL, "edit-copy", "Mode", tb_4, ph4);
|
||||
elm_menu_item_add(menu, menu_it, "edit-paste", "is set to", tb_4, ph4);
|
||||
elm_menu_item_add(menu, NULL, "edit-delete", "None", tb_5, ph4);
|
||||
|
||||
elm_box_pack_end(bx, tb);
|
||||
evas_object_show(tb);
|
||||
|
||||
tb = elm_table_add(win);
|
||||
evas_object_size_hint_weight_set(tb, 0.0, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_fill_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
ph = ph1;
|
||||
elm_photo_size_set(ph, 40);
|
||||
snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", elm_app_data_dir_get());
|
||||
elm_photo_file_set(ph, buf);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 0, 0, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
ph = ph2;
|
||||
elm_photo_size_set(ph, 80);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 1, 0, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
ph = ph3;
|
||||
elm_photo_size_set(ph, 20);
|
||||
snprintf(buf, sizeof(buf), "%s/images/sky_01.jpg", elm_app_data_dir_get());
|
||||
elm_photo_file_set(ph, buf);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 0, 1, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
ph = ph4;
|
||||
elm_photo_size_set(ph, 60);
|
||||
snprintf(buf, sizeof(buf), "%s/images/sky_02.jpg", elm_app_data_dir_get());
|
||||
elm_photo_file_set(ph, buf);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 1, 1, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
elm_box_pack_end(bx, tb);
|
||||
evas_object_show(tb);
|
||||
|
||||
evas_object_resize(win, 320, 300);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
/* The same test of toolbar, but using hide shrink mode instead of menu */
|
||||
TEST_START(test_toolbar4)
|
||||
{
|
||||
Evas_Object *bg, *bx, *tb, *ph, *menu;
|
||||
Evas_Object *ph1, *ph2, *ph3, *ph4;
|
||||
Elm_Object_Item *tb_it;
|
||||
Elm_Object_Item *menu_it;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bx);
|
||||
|
||||
tb = elm_toolbar_add(win);
|
||||
elm_toolbar_homogeneous_set(tb, 0);
|
||||
elm_toolbar_shrink_mode_set(tb, ELM_TOOLBAR_SHRINK_HIDE);
|
||||
evas_object_size_hint_weight_set(tb, 0.0, 0.0);
|
||||
evas_object_size_hint_align_set(tb, EVAS_HINT_FILL, 0.0);
|
||||
|
||||
ph1 = elm_photo_add(win);
|
||||
ph2 = elm_photo_add(win);
|
||||
ph3 = elm_photo_add(win);
|
||||
ph4 = elm_photo_add(win);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "document-print", "Hello", tb_1, ph1);
|
||||
elm_object_item_disabled_set(tb_it, EINA_TRUE);
|
||||
elm_toolbar_item_priority_set(tb_it, 100);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "folder-new", "World", tb_2, ph1);
|
||||
elm_toolbar_item_priority_set(tb_it, -100);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "object-rotate-right", "H", tb_3, ph4);
|
||||
elm_toolbar_item_priority_set(tb_it, 150);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "mail-send", "Comes", tb_4, ph4);
|
||||
elm_toolbar_item_priority_set(tb_it, 0);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "clock", "Elementary", tb_5, ph4);
|
||||
elm_toolbar_item_priority_set(tb_it, -200);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "refresh", "Menu", NULL, NULL);
|
||||
elm_toolbar_item_menu_set(tb_it, 1);
|
||||
elm_toolbar_item_priority_set(tb_it, -999999);
|
||||
elm_toolbar_menu_parent_set(tb, win);
|
||||
menu = elm_toolbar_item_menu_get(tb_it);
|
||||
|
||||
elm_menu_item_add(menu, NULL, "edit-cut", "Shrink", tb_3, ph4);
|
||||
menu_it = elm_menu_item_add(menu, NULL, "edit-copy", "Mode", tb_4, ph4);
|
||||
elm_menu_item_add(menu, menu_it, "edit-paste", "is set to", tb_4, ph4);
|
||||
elm_menu_item_add(menu, NULL, "edit-delete", "Menu", tb_5, ph4);
|
||||
|
||||
elm_box_pack_end(bx, tb);
|
||||
evas_object_show(tb);
|
||||
|
||||
tb = elm_table_add(win);
|
||||
evas_object_size_hint_weight_set(tb, 0.0, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_fill_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
ph = ph1;
|
||||
elm_photo_size_set(ph, 40);
|
||||
snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", elm_app_data_dir_get());
|
||||
elm_photo_file_set(ph, buf);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 0, 0, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
ph = ph2;
|
||||
elm_photo_size_set(ph, 80);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 1, 0, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
ph = ph3;
|
||||
elm_photo_size_set(ph, 20);
|
||||
snprintf(buf, sizeof(buf), "%s/images/sky_01.jpg", elm_app_data_dir_get());
|
||||
elm_photo_file_set(ph, buf);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 0, 1, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
ph = ph4;
|
||||
elm_photo_size_set(ph, 60);
|
||||
snprintf(buf, sizeof(buf), "%s/images/sky_02.jpg", elm_app_data_dir_get());
|
||||
elm_photo_file_set(ph, buf);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 1, 1, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
elm_box_pack_end(bx, tb);
|
||||
evas_object_show(tb);
|
||||
|
||||
evas_object_resize(win, 320, 300);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
/* Toolbar with multiple state buttons */
|
||||
TEST_START(test_toolbar5)
|
||||
{
|
||||
Evas_Object *bg, *bx, *tb, *ph, *menu;
|
||||
Evas_Object *ph1, *ph2, *ph3, *ph4;
|
||||
Elm_Object_Item *tb_it;
|
||||
Elm_Object_Item *menu_it;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bx);
|
||||
|
||||
tb = elm_toolbar_add(win);
|
||||
elm_toolbar_homogeneous_set(tb, 0);
|
||||
elm_toolbar_shrink_mode_set(tb, ELM_TOOLBAR_SHRINK_MENU);
|
||||
evas_object_size_hint_weight_set(tb, 0.0, 0.0);
|
||||
evas_object_size_hint_align_set(tb, EVAS_HINT_FILL, 0.0);
|
||||
elm_toolbar_no_select_mode_set(tb, EINA_TRUE);
|
||||
|
||||
ph1 = elm_photo_add(win);
|
||||
ph2 = elm_photo_add(win);
|
||||
ph3 = elm_photo_add(win);
|
||||
ph4 = elm_photo_add(win);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "document-print", "Hello", tb_1, ph1);
|
||||
elm_object_item_disabled_set(tb_it, EINA_TRUE);
|
||||
elm_toolbar_item_priority_set(tb_it, 100);
|
||||
|
||||
snprintf(buf, sizeof(buf), "%s/images/icon_04.pngj", elm_app_data_dir_get());
|
||||
tb_it = elm_toolbar_item_append(tb, buf, "World", tb_2, ph1);
|
||||
elm_toolbar_item_priority_set(tb_it, -100);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "object-rotate-right", "H", tb_3a, ph4);
|
||||
elm_toolbar_item_state_add(tb_it, "object-rotate-left", "H2", tb_3b, ph4);
|
||||
elm_toolbar_item_priority_set(tb_it, 150);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "mail-send", "Comes", tb_4a, ph4);
|
||||
elm_toolbar_item_state_add(tb_it, "emptytrash", "Comes2", tb_4a, ph4);
|
||||
elm_toolbar_item_state_add(tb_it, "trashcan_full", "Comes3", tb_4a, ph4);
|
||||
elm_toolbar_item_priority_set(tb_it, 0);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "clock", "Elementary", tb_5, ph4);
|
||||
elm_toolbar_item_priority_set(tb_it, -200);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "refresh", "Menu", NULL, NULL);
|
||||
elm_toolbar_item_menu_set(tb_it, 1);
|
||||
elm_toolbar_item_priority_set(tb_it, -999999);
|
||||
elm_toolbar_menu_parent_set(tb, win);
|
||||
menu = elm_toolbar_item_menu_get(tb_it);
|
||||
|
||||
elm_menu_item_add(menu, NULL, "edit-cut", "Shrink", tb_3, ph4);
|
||||
menu_it = elm_menu_item_add(menu, NULL, "edit-copy", "Mode", tb_4, ph4);
|
||||
elm_menu_item_add(menu, menu_it, "edit-paste", "is set to", tb_4, ph4);
|
||||
elm_menu_item_add(menu, NULL, "edit-delete", "Menu", tb_5, ph4);
|
||||
|
||||
elm_box_pack_end(bx, tb);
|
||||
evas_object_show(tb);
|
||||
|
||||
tb = elm_table_add(win);
|
||||
evas_object_size_hint_weight_set(tb, 0.0, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_fill_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
ph = ph1;
|
||||
elm_photo_size_set(ph, 40);
|
||||
snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", elm_app_data_dir_get());
|
||||
elm_photo_file_set(ph, buf);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 0, 0, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
ph = ph2;
|
||||
elm_photo_size_set(ph, 80);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 1, 0, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
ph = ph3;
|
||||
elm_photo_size_set(ph, 20);
|
||||
snprintf(buf, sizeof(buf), "%s/images/sky_01.jpg", elm_app_data_dir_get());
|
||||
elm_photo_file_set(ph, buf);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 0, 1, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
ph = ph4;
|
||||
elm_photo_size_set(ph, 60);
|
||||
snprintf(buf, sizeof(buf), "%s/images/sky_02.jpg", elm_app_data_dir_get());
|
||||
elm_photo_file_set(ph, buf);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 1, 1, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
elm_box_pack_end(bx, tb);
|
||||
evas_object_show(tb);
|
||||
|
||||
evas_object_resize(win, 320, 300);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
TEST_START(test_toolbar6)
|
||||
{
|
||||
Evas_Object *bg, *bx, *tb, *ph, *menu;
|
||||
Evas_Object *ph1, *ph2, *ph3, *ph4;
|
||||
Elm_Object_Item *tb_it;
|
||||
Elm_Object_Item *menu_it;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
elm_box_horizontal_set(bx, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_show(bx);
|
||||
|
||||
tb = elm_toolbar_add(win);
|
||||
elm_toolbar_horizontal_set(tb, EINA_FALSE);
|
||||
elm_toolbar_shrink_mode_set(tb, ELM_TOOLBAR_SHRINK_MENU);
|
||||
evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
ph1 = elm_photo_add(win);
|
||||
ph2 = elm_photo_add(win);
|
||||
ph3 = elm_photo_add(win);
|
||||
ph4 = elm_photo_add(win);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "document-print", "Hello", tb_1, ph1);
|
||||
elm_object_item_disabled_set(tb_it, EINA_TRUE);
|
||||
elm_toolbar_item_priority_set(tb_it, 100);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "folder-new", "World", tb_2, ph1);
|
||||
elm_toolbar_item_priority_set(tb_it, -100);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "object-rotate-right", "H", tb_3, ph4);
|
||||
elm_toolbar_item_priority_set(tb_it, 150);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "mail-send", "Comes", tb_4, ph4);
|
||||
elm_toolbar_item_priority_set(tb_it, 0);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "clock", "Elementary", tb_5, ph4);
|
||||
elm_toolbar_item_priority_set(tb_it, -200);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, "refresh", "Menu", NULL, NULL);
|
||||
elm_toolbar_item_menu_set(tb_it, 1);
|
||||
elm_toolbar_item_priority_set(tb_it, -999999);
|
||||
elm_toolbar_menu_parent_set(tb, win);
|
||||
menu = elm_toolbar_item_menu_get(tb_it);
|
||||
|
||||
elm_menu_item_add(menu, NULL, "edit-cut", "Shrink", tb_3, ph4);
|
||||
menu_it = elm_menu_item_add(menu, NULL, "edit-copy", "Mode", tb_4, ph4);
|
||||
elm_menu_item_add(menu, menu_it, "edit-paste", "is set to", tb_4, ph4);
|
||||
elm_menu_item_add(menu, NULL, "edit-delete", "Menu", tb_5, ph4);
|
||||
|
||||
elm_box_pack_end(bx, tb);
|
||||
evas_object_show(tb);
|
||||
|
||||
tb = elm_table_add(win);
|
||||
evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_fill_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
ph = ph1;
|
||||
elm_photo_size_set(ph, 40);
|
||||
snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", elm_app_data_dir_get());
|
||||
elm_photo_file_set(ph, buf);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 0, 0, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
ph = ph2;
|
||||
elm_photo_size_set(ph, 80);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 1, 0, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
ph = ph3;
|
||||
elm_photo_size_set(ph, 20);
|
||||
snprintf(buf, sizeof(buf), "%s/images/sky_01.jpg", elm_app_data_dir_get());
|
||||
elm_photo_file_set(ph, buf);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 0, 1, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
ph = ph4;
|
||||
elm_photo_size_set(ph, 60);
|
||||
snprintf(buf, sizeof(buf), "%s/images/sky_02.jpg", elm_app_data_dir_get());
|
||||
elm_photo_file_set(ph, buf);
|
||||
evas_object_size_hint_weight_set(ph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(ph, 0.5, 0.5);
|
||||
elm_table_pack(tb, ph, 1, 1, 1, 1);
|
||||
evas_object_show(ph);
|
||||
|
||||
elm_box_pack_end(bx, tb);
|
||||
evas_object_show(tb);
|
||||
|
||||
evas_object_resize(win, 320, 300);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,600 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
typedef struct _Testitem
|
||||
{
|
||||
Elm_Gengrid_Item *item;
|
||||
const char *path;
|
||||
int mode;
|
||||
int onoff;
|
||||
} Testitem;
|
||||
|
||||
static Elm_Gengrid_Item_Class gic;
|
||||
|
||||
char *
|
||||
grdt_lbl_get(void *data,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
const char *part __UNUSED__)
|
||||
{
|
||||
const Testitem *ti = data;
|
||||
char buf[256];
|
||||
snprintf(buf, sizeof(buf), "Photo %s", ti->path);
|
||||
return strdup(buf);
|
||||
}
|
||||
|
||||
Evas_Object *
|
||||
grdt_content_get(void *data,
|
||||
Evas_Object *obj,
|
||||
const char *part)
|
||||
{
|
||||
const Testitem *ti = data;
|
||||
if (!strcmp(part, "elm.swallow.icon"))
|
||||
{
|
||||
Evas_Object *icon = elm_bg_add(obj);
|
||||
elm_bg_file_set(icon, ti->path, NULL);
|
||||
evas_object_size_hint_aspect_set(icon,
|
||||
EVAS_ASPECT_CONTROL_VERTICAL,
|
||||
1, 1);
|
||||
evas_object_show(icon);
|
||||
return icon;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static Elm_Genlist_Item_Class itct;
|
||||
|
||||
static void
|
||||
gltt_exp(void *data __UNUSED__,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info)
|
||||
{
|
||||
Elm_Object_Item *glit = event_info;
|
||||
Evas_Object *gl = elm_genlist_item_genlist_get(glit);
|
||||
int val = (int)(long)elm_genlist_item_data_get(glit);
|
||||
Elm_Object_Item *glit1, *glit2, *glit3;
|
||||
|
||||
val *= 10;
|
||||
glit1 = elm_genlist_item_append(gl, &itct, (void *)(long)(val + 1), glit,
|
||||
ELM_GENLIST_ITEM_NONE, NULL, NULL);
|
||||
glit2 = elm_genlist_item_append(gl, &itct, (void *)(long)(val + 2), glit,
|
||||
ELM_GENLIST_ITEM_NONE, NULL, NULL);
|
||||
glit3 = elm_genlist_item_append(gl, &itct, (void *)(long)(val + 3), glit,
|
||||
ELM_GENLIST_ITEM_SUBITEMS, NULL, NULL);
|
||||
|
||||
elm_genlist_item_tooltip_text_set(glit1, "Testing A");
|
||||
elm_genlist_item_tooltip_text_set(glit2, "Testing B");
|
||||
elm_genlist_item_tooltip_text_set(glit3, "Testing C");
|
||||
}
|
||||
|
||||
static void
|
||||
gltt_con(void *data __UNUSED__,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info)
|
||||
{
|
||||
Elm_Object_Item *glit = event_info;
|
||||
elm_genlist_item_subitems_clear(glit);
|
||||
}
|
||||
|
||||
static void
|
||||
gltt_exp_req(void *data __UNUSED__,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info)
|
||||
{
|
||||
Elm_Object_Item *glit = event_info;
|
||||
elm_genlist_item_expanded_set(glit, EINA_TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
gltt_con_req(void *data __UNUSED__,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info)
|
||||
{
|
||||
Elm_Object_Item *glit = event_info;
|
||||
elm_genlist_item_expanded_set(glit, EINA_FALSE);
|
||||
}
|
||||
|
||||
char *
|
||||
gltt_text_get(void *data,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
const char *part __UNUSED__)
|
||||
{
|
||||
char buf[256];
|
||||
snprintf(buf, sizeof(buf), "Item mode %i", (int)(long)data);
|
||||
return strdup(buf);
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
_tt_item_icon(void *data __UNUSED__,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
Evas_Object *tt,
|
||||
void *item __UNUSED__)
|
||||
{
|
||||
Evas_Object *ic = elm_icon_add(tt);
|
||||
char buf[PATH_MAX];
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png",
|
||||
elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
evas_object_resize(ic, 64, 64);
|
||||
return ic;
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
_tt_item_icon2(void *data __UNUSED__,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
Evas_Object *tt,
|
||||
void *item __UNUSED__)
|
||||
{
|
||||
Evas_Object *ic = elm_icon_add(tt);
|
||||
char buf[PATH_MAX];
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
return ic;
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
_tt_item_icon3(void *data __UNUSED__,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
Evas_Object *tt,
|
||||
void *item __UNUSED__)
|
||||
{
|
||||
int w, h, sw, sh;
|
||||
Evas_Object *ic = elm_icon_add(tt);
|
||||
|
||||
char buf[PATH_MAX];
|
||||
snprintf(buf, sizeof(buf), "%s/images/insanely_huge_test_image.jpg", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_size_get(ic, &w, &h);
|
||||
elm_win_screen_size_get(tt, NULL, NULL, &sw, &sh);
|
||||
if ((w > sw) || (h > sh))
|
||||
{
|
||||
float sc = 0;
|
||||
if ((float)w / (float)sw >= 0.8)
|
||||
sc = ((float)sw * 0.8) / (float)w;
|
||||
else if ((float)h / (float)sh >= 0.8)
|
||||
sc = ((float)sh * 0.8) / (float)h;
|
||||
if (sc) elm_object_scale_set(ic, sc);
|
||||
}
|
||||
return ic;
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
_tt_item_label(void *data __UNUSED__,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
Evas_Object *tt,
|
||||
void *item __UNUSED__)
|
||||
{
|
||||
Evas_Object *l = elm_label_add(tt);
|
||||
elm_object_text_set(l, "Something useful here?<ps>"
|
||||
"No probably not, but this is a super long label<ps>"
|
||||
"which probably breaks on your system, now doesn't it?<ps>"
|
||||
"Yeah, I thought so.");
|
||||
elm_label_line_wrap_set(l, ELM_WRAP_MIXED);
|
||||
return l;
|
||||
}
|
||||
|
||||
static void
|
||||
_tt_item_icon_del(void *data,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info)
|
||||
{
|
||||
// test to check for del_cb behavior!
|
||||
printf("_tt_icon_del: data=%ld (== 456?), event_info=%p\n",
|
||||
(long)data, event_info);
|
||||
}
|
||||
|
||||
static void
|
||||
_tt_text_replace(void *data __UNUSED__,
|
||||
Evas_Object *obj,
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
static int count = 0;
|
||||
char buf[64];
|
||||
snprintf(buf, sizeof(buf), "count=%d", count);
|
||||
count++;
|
||||
elm_object_tooltip_text_set(obj, buf);
|
||||
}
|
||||
|
||||
static void
|
||||
_tt_timer_del(void *data __UNUSED__,
|
||||
Evas *e __UNUSED__,
|
||||
Evas_Object *obj,
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
Ecore_Timer *timer = evas_object_data_del(obj, "test-timer");
|
||||
if (!timer) return;
|
||||
ecore_timer_del(timer);
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
_tt_text_replace_timer_cb(void *data)
|
||||
{
|
||||
_tt_text_replace(NULL, data, NULL);
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
_tt_text_replace_timed(void *data __UNUSED__,
|
||||
Evas_Object *obj,
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
Ecore_Timer *timer = evas_object_data_get(obj, "test-timer");
|
||||
if (timer)
|
||||
{
|
||||
ecore_timer_del(timer);
|
||||
evas_object_data_del(obj, "test-timer");
|
||||
elm_object_text_set(obj, "Simple text tooltip, click to start"
|
||||
" changed timed");
|
||||
return;
|
||||
}
|
||||
|
||||
timer = ecore_timer_add(1.5, _tt_text_replace_timer_cb, obj);
|
||||
evas_object_data_set(obj, "test-timer", timer);
|
||||
elm_object_text_set(obj, "Simple text tooltip, click to stop changed"
|
||||
" timed");
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
_tt_icon(void *data __UNUSED__,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
Evas_Object *tt)
|
||||
{
|
||||
Evas_Object *ic = elm_icon_add(tt);
|
||||
char buf[PATH_MAX];
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png",
|
||||
elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
evas_object_resize(ic, 64, 64);
|
||||
return ic;
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
_tt_icon2(void *data __UNUSED__,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
Evas_Object *tt)
|
||||
{
|
||||
Evas_Object *ic = elm_icon_add(tt);
|
||||
char buf[PATH_MAX];
|
||||
snprintf(buf, sizeof(buf), "%s/images/icon_00.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
elm_icon_scale_set(ic, 0, 0);
|
||||
evas_object_resize(ic, 64, 64);
|
||||
return ic;
|
||||
}
|
||||
|
||||
static void
|
||||
_tt_icon_del(void *data,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
void *event_info)
|
||||
{
|
||||
// test to check for del_cb behavior!
|
||||
printf("_tt_icon_del: data=%ld (== 123?), event_info=%p\n",
|
||||
(long)data, event_info);
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
_tt_icon_replace_timer_cb(void *data)
|
||||
{
|
||||
static int current = 0;
|
||||
|
||||
elm_object_tooltip_content_cb_set
|
||||
(data, current ? _tt_icon2 : _tt_icon, NULL, NULL);
|
||||
|
||||
current = !current;
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
_tt_icon_replace_timed(void *data __UNUSED__,
|
||||
Evas_Object *obj,
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
Ecore_Timer *timer = evas_object_data_get(obj, "test-timer");
|
||||
if (timer)
|
||||
{
|
||||
ecore_timer_del(timer);
|
||||
evas_object_data_del(obj, "test-timer");
|
||||
elm_object_text_set(obj, "Icon tooltip, click to start changed"
|
||||
" timed");
|
||||
return;
|
||||
}
|
||||
|
||||
timer = ecore_timer_add(1.5, _tt_icon_replace_timer_cb, obj);
|
||||
evas_object_data_set(obj, "test-timer", timer);
|
||||
elm_object_text_set(obj, "Icon tooltip, click to stop changed timed");
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
_tt_style_replace_timer_cb(void *data)
|
||||
{
|
||||
static int current = 0;
|
||||
elm_object_tooltip_style_set(data, current ? NULL : "transparent");
|
||||
current = !current;
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
_tt_style_replace_timed(void *data __UNUSED__,
|
||||
Evas_Object *obj,
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
Ecore_Timer *timer = evas_object_data_get(obj, "test-timer");
|
||||
if (timer)
|
||||
{
|
||||
ecore_timer_del(timer);
|
||||
evas_object_data_del(obj, "test-timer");
|
||||
elm_object_text_set(obj, "Icon tooltip style, click to start"
|
||||
" changed timed");
|
||||
return;
|
||||
}
|
||||
|
||||
timer = ecore_timer_add(1.5, _tt_style_replace_timer_cb, obj);
|
||||
evas_object_data_set(obj, "test-timer", timer);
|
||||
elm_object_text_set(obj, "Icon tooltip style, click to stop changed"
|
||||
" timed");
|
||||
}
|
||||
|
||||
static void
|
||||
_tt_visible_lock_toggle(void *data __UNUSED__,
|
||||
Evas_Object *obj,
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
static int locked = 0;
|
||||
|
||||
locked = !locked;
|
||||
if (locked)
|
||||
{
|
||||
elm_object_text_set(obj, "Locked tooltip visibility");
|
||||
elm_object_tooltip_text_set(obj, "This tooltip is locked"
|
||||
" visible,<br> click the button"
|
||||
" to unlock!");
|
||||
elm_object_tooltip_show(obj);
|
||||
}
|
||||
else
|
||||
{
|
||||
elm_object_text_set(obj, "Unlocked tooltip visibility");
|
||||
elm_object_tooltip_text_set(obj, "This tooltip is unlocked"
|
||||
" visible,<br> click the button"
|
||||
" to lock!");
|
||||
elm_object_tooltip_hide(obj);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_START(test_tooltip)
|
||||
{
|
||||
Evas_Object *bg, *bx, *tb, *bt, *se, *lst;
|
||||
Elm_Object_Item *tb_it;
|
||||
Elm_Object_Item *li;
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
tb = elm_toolbar_add(win);
|
||||
elm_toolbar_homogeneous_set(tb, 0);
|
||||
evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(tb, EVAS_HINT_FILL, 0.0);
|
||||
elm_box_pack_end(bx, tb);
|
||||
evas_object_show(tb);
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, NULL, "Open", NULL, NULL);
|
||||
elm_toolbar_item_tooltip_text_set(tb_it, "Opens a file");
|
||||
|
||||
tb_it = elm_toolbar_item_append(tb, NULL, "Icon", NULL, NULL);
|
||||
elm_toolbar_item_tooltip_content_cb_set
|
||||
(tb_it, _tt_item_icon, (void *)456L, _tt_item_icon_del);
|
||||
elm_toolbar_item_tooltip_style_set(tb_it, "transparent");
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Simple text tooltip");
|
||||
elm_object_tooltip_text_set(bt, "Simple text tooltip");
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Simple text tooltip, click to change");
|
||||
elm_object_tooltip_text_set(bt, "Initial");
|
||||
evas_object_smart_callback_add(bt, "clicked", _tt_text_replace, NULL);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Simple text tooltip, click to start"
|
||||
" changed timed");
|
||||
elm_object_tooltip_text_set(bt, "Initial");
|
||||
evas_object_smart_callback_add(bt, "clicked", _tt_text_replace_timed,
|
||||
NULL);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
evas_object_event_callback_add(bt, EVAS_CALLBACK_DEL, _tt_timer_del,
|
||||
NULL);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Icon tooltip");
|
||||
elm_object_tooltip_content_cb_set(bt, _tt_icon, (void *)123L,
|
||||
_tt_icon_del);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Icon tooltip, click to start changed timed");
|
||||
elm_object_tooltip_content_cb_set(bt, _tt_icon, NULL, NULL);
|
||||
evas_object_smart_callback_add(bt, "clicked", _tt_icon_replace_timed,
|
||||
NULL);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
evas_object_event_callback_add(bt, EVAS_CALLBACK_DEL, _tt_timer_del,
|
||||
NULL);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Transparent Icon tooltip");
|
||||
elm_object_tooltip_content_cb_set(bt, _tt_icon, NULL, NULL);
|
||||
elm_object_tooltip_style_set(bt, "transparent");
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Icon tooltip style, click to start changed"
|
||||
" timed");
|
||||
elm_object_tooltip_content_cb_set(bt, _tt_icon, NULL, NULL);
|
||||
evas_object_smart_callback_add(bt, "clicked", _tt_style_replace_timed,
|
||||
NULL);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
evas_object_event_callback_add(bt, EVAS_CALLBACK_DEL, _tt_timer_del,
|
||||
NULL);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Unlocked tooltip visibility");
|
||||
elm_object_tooltip_text_set(bt, "This tooltip is unlocked visible,<br>"
|
||||
" click the button to lock!");
|
||||
evas_object_smart_callback_add(bt, "clicked", _tt_visible_lock_toggle,
|
||||
NULL);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
se = elm_entry_add(win);
|
||||
elm_entry_scrollable_set(se, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(se, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(se, EVAS_HINT_FILL, 0.5);
|
||||
elm_entry_scrollbar_policy_set(se, ELM_SCROLLER_POLICY_OFF,
|
||||
ELM_SCROLLER_POLICY_OFF);
|
||||
elm_entry_entry_set(se, "Hello, some scrolled entry here!");
|
||||
elm_object_tooltip_text_set(se, "Type something here!");
|
||||
elm_entry_single_line_set(se, 1);
|
||||
elm_box_pack_end(bx, se);
|
||||
evas_object_show(se);
|
||||
|
||||
lst = elm_list_add(win);
|
||||
li = elm_list_item_append(lst, "Hello", NULL, NULL, NULL, NULL);
|
||||
elm_list_item_tooltip_content_cb_set(li, _tt_item_label, NULL, NULL);
|
||||
elm_list_item_tooltip_window_mode_set(li, EINA_TRUE);
|
||||
li = elm_list_item_append(lst, "Icon Tooltip", NULL, NULL, NULL, NULL);
|
||||
elm_list_item_tooltip_content_cb_set(li, _tt_item_icon, NULL, NULL);
|
||||
li = elm_list_item_append(lst, "Big Icon Tooltip", NULL, NULL, NULL, NULL);
|
||||
elm_list_item_tooltip_content_cb_set(li, _tt_item_icon2, NULL, NULL);
|
||||
elm_list_item_tooltip_style_set(li, "transparent");
|
||||
elm_list_item_tooltip_window_mode_set(li, EINA_TRUE);
|
||||
li = elm_list_item_append(lst, "Insanely Big Icon Tooltip", NULL, NULL, NULL, NULL);
|
||||
elm_list_item_tooltip_content_cb_set(li, _tt_item_icon3, NULL, NULL);
|
||||
elm_list_item_tooltip_style_set(li, "transparent");
|
||||
elm_list_item_tooltip_window_mode_set(li, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(lst, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(lst, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_min_set(lst, 100, 100);
|
||||
elm_list_go(lst);
|
||||
elm_box_pack_end(bx, lst);
|
||||
evas_object_show(lst);
|
||||
|
||||
evas_object_resize(win, 320, 580);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
TEST_START(test_tooltip2)
|
||||
{
|
||||
Evas_Object *bg, *bx, *grid, *gl;
|
||||
Elm_Object_Item *glit1, *glit2, *glit3;
|
||||
static Testitem ti[144];
|
||||
int i, n;
|
||||
char buf[PATH_MAX];
|
||||
const char *img[9] =
|
||||
{
|
||||
"panel_01.jpg",
|
||||
"plant_01.jpg",
|
||||
"rock_01.jpg",
|
||||
"rock_02.jpg",
|
||||
"sky_01.jpg",
|
||||
"sky_02.jpg",
|
||||
"sky_03.jpg",
|
||||
"sky_04.jpg",
|
||||
"wood_01.jpg",
|
||||
};
|
||||
|
||||
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);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
grid = elm_gengrid_add(win);
|
||||
elm_gengrid_item_size_set(grid, 100, 100);
|
||||
elm_gengrid_horizontal_set(grid, EINA_FALSE);
|
||||
elm_gengrid_multi_select_set(grid, EINA_TRUE);
|
||||
evas_object_size_hint_align_set(grid, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
|
||||
gic.item_style = "default";
|
||||
gic.func.text_get = grdt_lbl_get;
|
||||
gic.func.content_get = grdt_content_get;
|
||||
|
||||
n = 0;
|
||||
for (i = 0; i < 9; i++)
|
||||
{
|
||||
snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(),
|
||||
img[n]);
|
||||
n++;
|
||||
ti[i].mode = i;
|
||||
ti[i].path = eina_stringshare_add(buf);
|
||||
ti[i].item = elm_gengrid_item_append(grid, &gic, &(ti[i]), NULL,
|
||||
NULL);
|
||||
if (n % 2)
|
||||
elm_gengrid_item_tooltip_text_set(ti[i].item, "Testing X");
|
||||
else
|
||||
elm_gengrid_item_tooltip_text_set(ti[i].item, "Testing Y");
|
||||
if (!(i % 5))
|
||||
elm_gengrid_item_selected_set(ti[i].item, EINA_TRUE);
|
||||
}
|
||||
|
||||
elm_box_pack_end(bx, grid);
|
||||
evas_object_show(grid);
|
||||
|
||||
gl = elm_genlist_add(win);
|
||||
evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
|
||||
itct.item_style = "default";
|
||||
itct.func.text_get = gltt_text_get;
|
||||
|
||||
glit1 = elm_genlist_item_append(gl, &itct, (void *)1, NULL,
|
||||
ELM_GENLIST_ITEM_SUBITEMS, NULL, NULL);
|
||||
glit2 = elm_genlist_item_append(gl, &itct, (void *)2, NULL,
|
||||
ELM_GENLIST_ITEM_SUBITEMS, NULL, NULL);
|
||||
glit3 = elm_genlist_item_append(gl, &itct, (void *)3, NULL,
|
||||
ELM_GENLIST_ITEM_NONE, NULL, NULL);
|
||||
|
||||
elm_genlist_item_tooltip_text_set(glit1, "Testing 1");
|
||||
elm_genlist_item_tooltip_text_set(glit2, "Testing 2");
|
||||
elm_genlist_item_tooltip_text_set(glit3, "Testing 3");
|
||||
|
||||
evas_object_smart_callback_add(gl, "expand,request", gltt_exp_req, gl);
|
||||
evas_object_smart_callback_add(gl, "contract,request", gltt_con_req,
|
||||
gl);
|
||||
evas_object_smart_callback_add(gl, "expanded", gltt_exp, gl);
|
||||
evas_object_smart_callback_add(gl, "contracted", gltt_con, gl);
|
||||
|
||||
elm_box_pack_end(bx, gl);
|
||||
evas_object_show(gl);
|
||||
|
||||
evas_object_resize(win, 320, 480);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
|
@ -1,590 +0,0 @@
|
|||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
typedef struct _Custom_Effect Custom_Effect;
|
||||
|
||||
struct _Custom_Effect
|
||||
{
|
||||
struct _size
|
||||
{
|
||||
Evas_Coord w, h;
|
||||
} from, to;
|
||||
};
|
||||
|
||||
static void
|
||||
_custom_op(Elm_Transit_Effect *effect, Elm_Transit *transit, double progress)
|
||||
{
|
||||
if (!effect) return;
|
||||
Evas_Coord w, h;
|
||||
Evas_Object *obj;
|
||||
const Eina_List *elist;
|
||||
|
||||
Custom_Effect *custom_effect = effect;
|
||||
const Eina_List *objs = elm_transit_objects_get(transit);
|
||||
|
||||
if (progress < 0.5)
|
||||
{
|
||||
h = custom_effect->from.h + (custom_effect->to.h * progress * 2);
|
||||
w = custom_effect->from.w;
|
||||
}
|
||||
else
|
||||
{
|
||||
h = custom_effect->from.h + custom_effect->to.h;
|
||||
w = custom_effect->from.w + \
|
||||
(custom_effect->to.w * (progress - 0.5) * 2);
|
||||
}
|
||||
|
||||
EINA_LIST_FOREACH(objs, elist, obj)
|
||||
evas_object_resize(obj, w, h);
|
||||
|
||||
}
|
||||
|
||||
static Elm_Transit_Effect *
|
||||
_custom_context_new(Evas_Coord from_w, Evas_Coord from_h, Evas_Coord to_w, Evas_Coord to_h)
|
||||
{
|
||||
Custom_Effect *custom_effect;
|
||||
|
||||
custom_effect = calloc(1, sizeof(Custom_Effect));
|
||||
if (!custom_effect) return NULL;
|
||||
|
||||
custom_effect->from.w = from_w;
|
||||
custom_effect->from.h = from_h;
|
||||
custom_effect->to.w = to_w - from_w;
|
||||
custom_effect->to.h = to_h - from_h;
|
||||
|
||||
return custom_effect;
|
||||
}
|
||||
|
||||
static void
|
||||
_custom_context_free(Elm_Transit_Effect *effect, Elm_Transit *transit __UNUSED__)
|
||||
{
|
||||
Custom_Effect *custom_effect = effect;
|
||||
free(custom_effect);
|
||||
}
|
||||
|
||||
static void
|
||||
_transit_rotation_translation_color(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Elm_Transit *trans;
|
||||
|
||||
trans = elm_transit_add();
|
||||
elm_transit_object_add(trans, obj);
|
||||
elm_transit_auto_reverse_set(trans, EINA_TRUE);
|
||||
elm_transit_repeat_times_set(trans, 2);
|
||||
|
||||
/* Translation Effect */
|
||||
elm_transit_effect_translation_add(trans, -70.0, -150.0, 70.0, 150.0);
|
||||
|
||||
/* Color Effect */
|
||||
elm_transit_effect_color_add(trans, 100, 255, 100, 255, 200, 50, 200, 50);
|
||||
|
||||
/* Rotation Effect */
|
||||
elm_transit_effect_rotation_add(trans, 0.0, 135.0);
|
||||
|
||||
elm_transit_duration_set(trans, 5.0);
|
||||
elm_transit_go(trans);
|
||||
}
|
||||
|
||||
static void
|
||||
_transit_wipe(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Elm_Transit *trans;
|
||||
|
||||
trans = elm_transit_add();
|
||||
elm_transit_object_add(trans, obj);
|
||||
elm_transit_auto_reverse_set(trans, EINA_TRUE);
|
||||
|
||||
elm_transit_effect_wipe_add(trans,
|
||||
ELM_TRANSIT_EFFECT_WIPE_TYPE_HIDE,
|
||||
ELM_TRANSIT_EFFECT_WIPE_DIR_RIGHT);
|
||||
|
||||
elm_transit_duration_set(trans, 5.0);
|
||||
elm_transit_go(trans);
|
||||
}
|
||||
|
||||
static void
|
||||
_transit_del_cb(void *data, Elm_Transit *transit __UNUSED__)
|
||||
{
|
||||
evas_object_freeze_events_set(data, EINA_FALSE);
|
||||
}
|
||||
|
||||
static void
|
||||
_transit_image_animation(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Eina_List *images = NULL;
|
||||
char buf[PATH_MAX];
|
||||
Elm_Transit *trans;
|
||||
Evas_Object *ic = data;
|
||||
|
||||
snprintf(buf, sizeof(buf), "%s/images/icon_19.png", elm_app_data_dir_get());
|
||||
images = eina_list_append(images, eina_stringshare_add(buf));
|
||||
|
||||
snprintf(buf, sizeof(buf), "%s/images/icon_00.png", elm_app_data_dir_get());
|
||||
images = eina_list_append(images, eina_stringshare_add(buf));
|
||||
|
||||
snprintf(buf, sizeof(buf), "%s/images/icon_11.png", elm_app_data_dir_get());
|
||||
images = eina_list_append(images, eina_stringshare_add(buf));
|
||||
|
||||
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
|
||||
images = eina_list_append(images, eina_stringshare_add(buf));
|
||||
|
||||
trans = elm_transit_add();
|
||||
elm_transit_del_cb_set(trans, _transit_del_cb, obj);
|
||||
elm_transit_object_add(trans, ic);
|
||||
elm_transit_effect_image_animation_add(trans, images);
|
||||
elm_transit_duration_set(trans, 5.0);
|
||||
elm_transit_go(trans);
|
||||
|
||||
evas_object_freeze_events_set(obj, EINA_TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
_transit_resizing(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Elm_Transit *trans;
|
||||
|
||||
trans = elm_transit_add();
|
||||
elm_transit_object_add(trans, obj);
|
||||
|
||||
elm_transit_effect_resizing_add(trans, 100, 50, 300, 150);
|
||||
|
||||
elm_transit_duration_set(trans, 5.0);
|
||||
elm_transit_go(trans);
|
||||
}
|
||||
|
||||
static void
|
||||
_transit_flip(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Elm_Transit *trans;
|
||||
Evas_Object *obj2 = data;
|
||||
|
||||
trans = elm_transit_add();
|
||||
elm_transit_object_add(trans, obj);
|
||||
elm_transit_object_add(trans, obj2);
|
||||
|
||||
elm_transit_effect_flip_add(trans, ELM_TRANSIT_EFFECT_FLIP_AXIS_X, EINA_TRUE);
|
||||
|
||||
elm_transit_duration_set(trans, 5.0);
|
||||
elm_transit_go(trans);
|
||||
}
|
||||
|
||||
static void
|
||||
_transit_zoom(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Elm_Transit *trans;
|
||||
|
||||
trans = elm_transit_add();
|
||||
elm_transit_object_add(trans, obj);
|
||||
|
||||
elm_transit_effect_zoom_add(trans, 1.0, 3.0);
|
||||
|
||||
elm_transit_duration_set(trans, 5.0);
|
||||
elm_transit_go(trans);
|
||||
}
|
||||
|
||||
static void
|
||||
_transit_blend(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Elm_Transit *trans;
|
||||
Evas_Object *obj2 = data;
|
||||
|
||||
trans = elm_transit_add();
|
||||
elm_transit_object_add(trans, obj);
|
||||
elm_transit_object_add(trans, obj2);
|
||||
|
||||
elm_transit_effect_blend_add(trans);
|
||||
|
||||
elm_transit_duration_set(trans, 5.0);
|
||||
elm_transit_go(trans);
|
||||
}
|
||||
|
||||
static void
|
||||
_transit_fade(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Elm_Transit *trans;
|
||||
Evas_Object *obj2 = data;
|
||||
|
||||
trans = elm_transit_add();
|
||||
elm_transit_object_add(trans, obj);
|
||||
elm_transit_object_add(trans, obj2);
|
||||
|
||||
elm_transit_effect_fade_add(trans);
|
||||
|
||||
elm_transit_duration_set(trans, 5.0);
|
||||
elm_transit_go(trans);
|
||||
}
|
||||
|
||||
static void
|
||||
_transit_resizable_flip(void *data, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
Elm_Transit *trans;
|
||||
Evas_Object *obj2 = data;
|
||||
|
||||
trans = elm_transit_add();
|
||||
elm_transit_object_add(trans, obj);
|
||||
elm_transit_object_add(trans, obj2);
|
||||
|
||||
elm_transit_effect_resizable_flip_add(trans, ELM_TRANSIT_EFFECT_FLIP_AXIS_Y, EINA_TRUE);
|
||||
|
||||
elm_transit_duration_set(trans, 5.0);
|
||||
elm_transit_go(trans);
|
||||
}
|
||||
|
||||
/* Translation, Rotation, Color, Wipe, ImagemAnimation Effect */
|
||||
TEST_START(test_transit)
|
||||
{
|
||||
Evas_Object *bg, *bx, *bt, *ic;
|
||||
char buf[PATH_MAX];
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_size_hint_min_set(bx, 318, 318);
|
||||
evas_object_show(bx);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/icon_11.png", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "ImageAnimation Effect");
|
||||
elm_object_content_set(bt, ic);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
evas_object_show(ic);
|
||||
evas_object_smart_callback_add(bt, "clicked", _transit_image_animation, ic);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Color, Rotation and Translation");
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
evas_object_smart_callback_add(bt, "clicked",
|
||||
_transit_rotation_translation_color, NULL);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Wipe Effect");
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
evas_object_smart_callback_add(bt, "clicked", _transit_wipe, NULL);
|
||||
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
/* Resizing Effect */
|
||||
TEST_START(test_transit2)
|
||||
{
|
||||
Evas_Object *bg, *bt;
|
||||
|
||||
evas_object_resize(win, 400, 400);
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Resizing Effect");
|
||||
evas_object_show(bt);
|
||||
evas_object_move(bt, 50, 100);
|
||||
evas_object_resize(bt, 100, 50);
|
||||
evas_object_smart_callback_add(bt, "clicked", _transit_resizing, NULL);
|
||||
|
||||
evas_object_resize(win, 400, 400);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
/* Flip Effect */
|
||||
TEST_START(test_transit3)
|
||||
{
|
||||
Evas_Object *bg, *bt, *bt2;
|
||||
|
||||
evas_object_resize(win, 300, 300);
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Front Button - Flip Effect");
|
||||
evas_object_show(bt);
|
||||
evas_object_move(bt, 50, 50);
|
||||
evas_object_resize(bt, 200, 200);
|
||||
|
||||
bt2 = elm_button_add(win);
|
||||
elm_object_text_set(bt2, "Back Button - Flip Effect");
|
||||
evas_object_move(bt2, 50, 50);
|
||||
evas_object_resize(bt2, 200, 200);
|
||||
|
||||
evas_object_resize(win, 300, 300);
|
||||
evas_object_show(win);
|
||||
|
||||
evas_object_smart_callback_add(bt, "clicked", _transit_flip, bt2);
|
||||
evas_object_smart_callback_add(bt2, "clicked", _transit_flip, bt);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
/* Zoom Effect */
|
||||
TEST_START(test_transit4)
|
||||
{
|
||||
Evas_Object *bg, *bt;
|
||||
|
||||
evas_object_resize(win, 300, 300);
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Zoom Effect");
|
||||
evas_object_resize(bt, 100, 50);
|
||||
evas_object_move(bt, 100, 125);
|
||||
evas_object_show(bt);
|
||||
|
||||
evas_object_smart_callback_add(bt, "clicked", _transit_zoom, NULL);
|
||||
|
||||
evas_object_resize(win, 300, 300);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
/* Blend Effect */
|
||||
TEST_START(test_transit5)
|
||||
{
|
||||
Evas_Object *bg, *bt, *bt2, *ic;
|
||||
|
||||
char buf[PATH_MAX];
|
||||
evas_object_resize(win, 300, 300);
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/rock_01.jpg", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_max_set(ic, 50, 50);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_content_set(bt, ic);
|
||||
elm_object_text_set(bt, "Before Button - Blend Effect");
|
||||
evas_object_move(bt, 25, 125);
|
||||
evas_object_resize(bt, 250, 50);
|
||||
evas_object_show(bt);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/rock_02.jpg", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_max_set(ic, 50, 50);
|
||||
|
||||
bt2 = elm_button_add(win);
|
||||
elm_object_content_set(bt2, ic);
|
||||
elm_object_text_set(bt2, "After Button - Blend Effect");
|
||||
evas_object_move(bt2, 25, 125);
|
||||
evas_object_resize(bt2, 250, 50);
|
||||
|
||||
evas_object_resize(win, 300, 300);
|
||||
evas_object_show(win);
|
||||
|
||||
evas_object_smart_callback_add(bt, "clicked", _transit_blend, bt2);
|
||||
evas_object_smart_callback_add(bt2, "clicked", _transit_blend, bt);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
/* Fade Effect */
|
||||
TEST_START(test_transit6)
|
||||
{
|
||||
Evas_Object *bg, *bt, *bt2, *ic;
|
||||
|
||||
char buf[PATH_MAX];
|
||||
evas_object_resize(win, 300, 300);
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/rock_01.jpg", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_max_set(ic, 50, 50);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_content_set(bt, ic);
|
||||
elm_object_text_set(bt, "Before Button - Fade Effect");
|
||||
evas_object_move(bt, 25, 125);
|
||||
evas_object_resize(bt, 250, 50);
|
||||
evas_object_show(bt);
|
||||
|
||||
ic = elm_icon_add(win);
|
||||
snprintf(buf, sizeof(buf), "%s/images/rock_02.jpg", elm_app_data_dir_get());
|
||||
elm_icon_file_set(ic, buf, NULL);
|
||||
evas_object_size_hint_max_set(ic, 50, 50);
|
||||
|
||||
bt2 = elm_button_add(win);
|
||||
elm_object_content_set(bt2, ic);
|
||||
elm_object_text_set(bt2, "After Button - Fade Effect");
|
||||
evas_object_move(bt2, 25, 125);
|
||||
evas_object_resize(bt2, 250, 50);
|
||||
|
||||
evas_object_resize(win, 300, 300);
|
||||
evas_object_show(win);
|
||||
|
||||
evas_object_smart_callback_add(bt, "clicked", _transit_fade, bt2);
|
||||
evas_object_smart_callback_add(bt2, "clicked", _transit_fade, bt);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
/* Resizable Flip Effect */
|
||||
TEST_START(test_transit7)
|
||||
{
|
||||
Evas_Object *bg, *bt, *bt2;
|
||||
|
||||
evas_object_resize(win, 400, 400);
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Front Button - Resizable Flip Effect");
|
||||
evas_object_show(bt);
|
||||
evas_object_move(bt, 50, 100);
|
||||
evas_object_resize(bt, 250, 30);
|
||||
|
||||
bt2 = elm_button_add(win);
|
||||
elm_object_text_set(bt2, "Back Button - Resizable Flip Effect");
|
||||
evas_object_move(bt2, 50, 100);
|
||||
evas_object_resize(bt2, 300, 200);
|
||||
|
||||
evas_object_resize(win, 400, 400);
|
||||
evas_object_show(win);
|
||||
|
||||
evas_object_smart_callback_add(bt, "clicked", _transit_resizable_flip, bt2);
|
||||
evas_object_smart_callback_add(bt2, "clicked", _transit_resizable_flip, bt);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
/* Custom Effect */
|
||||
TEST_START(test_transit8)
|
||||
{
|
||||
Evas_Object *bg, *bt;
|
||||
Elm_Transit *trans;
|
||||
Elm_Transit_Effect *effect_context;
|
||||
|
||||
evas_object_resize(win, 400, 400);
|
||||
evas_object_show(win);
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Button - Custom Effect");
|
||||
evas_object_show(bt);
|
||||
evas_object_move(bt, 50, 50);
|
||||
evas_object_resize(bt, 150, 150);
|
||||
|
||||
/* Adding Transit */
|
||||
trans = elm_transit_add();
|
||||
elm_transit_auto_reverse_set(trans, EINA_TRUE);
|
||||
elm_transit_tween_mode_set(trans, ELM_TRANSIT_TWEEN_MODE_DECELERATE);
|
||||
effect_context = _custom_context_new(150, 150, 50, 50);
|
||||
elm_transit_object_add(trans, bt);
|
||||
elm_transit_effect_add(trans,
|
||||
_custom_op, effect_context,
|
||||
_custom_context_free);
|
||||
elm_transit_duration_set(trans, 5.0);
|
||||
elm_transit_repeat_times_set(trans, -1);
|
||||
elm_transit_go(trans);
|
||||
|
||||
evas_object_resize(win, 400, 400);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
||||
|
||||
/* Chain Transit Effect */
|
||||
TEST_START(test_transit9)
|
||||
{
|
||||
Evas_Object *bg, *bt, *bt2, *bt3, *bt4;
|
||||
Elm_Transit *trans, *trans2, *trans3, *trans4;
|
||||
|
||||
evas_object_resize(win, 400, 400);
|
||||
evas_object_show(win);
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bg);
|
||||
|
||||
bt = elm_button_add(win);
|
||||
elm_object_text_set(bt, "Chain 1");
|
||||
evas_object_resize(bt, 100, 100);
|
||||
evas_object_move(bt, 0, 0);
|
||||
evas_object_show(bt);
|
||||
|
||||
bt2 = elm_button_add(win);
|
||||
elm_object_text_set(bt2, "Chain 2");
|
||||
evas_object_resize(bt2, 100, 100);
|
||||
evas_object_move(bt2, 300, 0);
|
||||
evas_object_show(bt2);
|
||||
|
||||
bt3 = elm_button_add(win);
|
||||
elm_object_text_set(bt3, "Chain 3");
|
||||
evas_object_resize(bt3, 100, 100);
|
||||
evas_object_move(bt3, 300, 300);
|
||||
evas_object_show(bt3);
|
||||
|
||||
bt4 = elm_button_add(win);
|
||||
elm_object_text_set(bt4, "Chain 4");
|
||||
evas_object_resize(bt4, 100, 100);
|
||||
evas_object_move(bt4, 0, 300);
|
||||
evas_object_show(bt4);
|
||||
|
||||
trans = elm_transit_add();
|
||||
elm_transit_tween_mode_set(trans, ELM_TRANSIT_TWEEN_MODE_ACCELERATE);
|
||||
elm_transit_effect_translation_add(trans, 0, 0, 300, 0);
|
||||
elm_transit_object_add(trans, bt);
|
||||
elm_transit_duration_set(trans, 1);
|
||||
elm_transit_objects_final_state_keep_set(trans, EINA_TRUE);
|
||||
elm_transit_go(trans);
|
||||
|
||||
trans2 = elm_transit_add();
|
||||
elm_transit_tween_mode_set(trans2, ELM_TRANSIT_TWEEN_MODE_ACCELERATE);
|
||||
elm_transit_effect_translation_add(trans2, 0, 0, 0, 300);
|
||||
elm_transit_object_add(trans2, bt2);
|
||||
elm_transit_duration_set(trans2, 1);
|
||||
elm_transit_objects_final_state_keep_set(trans2, EINA_TRUE);
|
||||
elm_transit_chain_transit_add(trans, trans2);
|
||||
|
||||
trans3 = elm_transit_add();
|
||||
elm_transit_tween_mode_set(trans3, ELM_TRANSIT_TWEEN_MODE_ACCELERATE);
|
||||
elm_transit_effect_translation_add(trans3, 0, 0, -300, 0);
|
||||
elm_transit_object_add(trans3, bt3);
|
||||
elm_transit_duration_set(trans3, 1);
|
||||
elm_transit_objects_final_state_keep_set(trans3, EINA_TRUE);
|
||||
elm_transit_chain_transit_add(trans2, trans3);
|
||||
|
||||
trans4 = elm_transit_add();
|
||||
elm_transit_tween_mode_set(trans4, ELM_TRANSIT_TWEEN_MODE_ACCELERATE);
|
||||
elm_transit_effect_translation_add(trans4, 0, 0, 0, -300);
|
||||
elm_transit_object_add(trans4, bt4);
|
||||
elm_transit_duration_set(trans4, 1);
|
||||
elm_transit_objects_final_state_keep_set(trans4, EINA_TRUE);
|
||||
elm_transit_chain_transit_add(trans3, trans4);
|
||||
|
||||
evas_object_resize(win, 400, 400);
|
||||
evas_object_show(win);
|
||||
}
|
||||
TEST_END
|
698
src/bin/tsuite.c
698
src/bin/tsuite.c
|
@ -1,698 +0,0 @@
|
|||
#define _GNU_SOURCE 1
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <Elementary.h>
|
||||
#include "tsuite.h"
|
||||
|
||||
#include <dlfcn.h>
|
||||
#include "tsuite_file_data.h"
|
||||
#include <Ecore.h>
|
||||
#include <Ecore_Getopt.h>
|
||||
|
||||
void test_3d(void);
|
||||
void test_actionslider(void);
|
||||
void test_anchorblock(void);
|
||||
void test_anchorview(void);
|
||||
void test_bg_plain(void);
|
||||
void test_bg_image(void);
|
||||
void test_bg_options(void);
|
||||
void test_box_vert(void);
|
||||
void test_box_vert2(void);
|
||||
void test_box_horiz(void);
|
||||
void test_button(void);
|
||||
void test_bubble(void);
|
||||
void test_calendar(void);
|
||||
void test_check(void);
|
||||
void test_colorselector(void);
|
||||
void test_conformant(void);
|
||||
void test_conformant2(void);
|
||||
void test_ctxpopup(void);
|
||||
void test_diskselector(void);
|
||||
void test_entry(void);
|
||||
void test_entry_scrolled(void);
|
||||
void test_entry3(void);
|
||||
void test_entry4(void);
|
||||
void test_entry5(void);
|
||||
void test_entry_notepad(void);
|
||||
void test_fileselector(void);
|
||||
void test_fileselector_button(void);
|
||||
void test_fileselector_entry(void);
|
||||
void test_focus(void);
|
||||
void test_gengrid(void);
|
||||
void test_gengrid2(void);
|
||||
void test_genlist(void);
|
||||
void test_genlist2(void);
|
||||
void test_genlist3(void);
|
||||
void test_genlist4(void);
|
||||
void test_genlist5(void);
|
||||
void test_genlist6(void);
|
||||
void test_genlist7(void);
|
||||
void test_genlist8(void);
|
||||
void test_genlist9(void);
|
||||
void test_genlist10(void);
|
||||
void test_genlist11(void);
|
||||
void test_glview(void);
|
||||
void test_glview_simple(void);
|
||||
void test_grid(void);
|
||||
void test_hover(void);
|
||||
void test_hover2(void);
|
||||
void test_hoversel(void);
|
||||
void test_index(void);
|
||||
void test_index2(void);
|
||||
void test_inwin(void);
|
||||
void test_inwin2(void);
|
||||
void test_label(void);
|
||||
void test_list(void);
|
||||
void test_list_horizontal(void);
|
||||
void test_list2(void);
|
||||
void test_list3(void);
|
||||
void test_list4(void);
|
||||
void test_list5(void);
|
||||
void test_menu(void);
|
||||
void test_naviframe(void);
|
||||
void test_notify(void);
|
||||
void test_pager(void);
|
||||
void test_pager_slide(void);
|
||||
void test_panel(void);
|
||||
void test_panes(void);
|
||||
void test_progressbar(void);
|
||||
void test_radio(void);
|
||||
void test_scaling(void);
|
||||
void test_scaling2(void);
|
||||
void test_scroller(void);
|
||||
void test_scroller2(void);
|
||||
void test_segment_control(void);
|
||||
void test_separator(void);
|
||||
void test_slider(void);
|
||||
void test_spinner(void);
|
||||
void test_table(void);
|
||||
void test_table2(void);
|
||||
void test_table3(void);
|
||||
void test_table4(void);
|
||||
void test_table5(void);
|
||||
void test_table6(void);
|
||||
void test_toggle(void);
|
||||
void test_toolbar(void);
|
||||
void test_toolbar2(void);
|
||||
void test_toolbar3(void);
|
||||
void test_toolbar4(void);
|
||||
void test_toolbar5(void);
|
||||
void test_tooltip(void);
|
||||
void test_tooltip2(void);
|
||||
|
||||
/* START - Some globals - may want to move these to Timer_Data struct later */
|
||||
static Lists_st *vr_list = NULL;
|
||||
/* END - Some globals - may want to move these to Timer_Data struct later */
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*
|
||||
* @struct _Test_Item
|
||||
* Struct holds test-suite test / func pair.
|
||||
*
|
||||
* @ingroup Tsuite
|
||||
*/
|
||||
struct _Test_Item
|
||||
{ /* Item type for array of test-names, test-func-ptr */
|
||||
char *name;
|
||||
void (* func) (void);
|
||||
Eina_Bool test;
|
||||
};
|
||||
typedef struct _Test_Item Test_Item;
|
||||
|
||||
/* static Tsuite_Data ts; moved to tsuite_evas_hook */
|
||||
static int recording = 0;
|
||||
|
||||
void
|
||||
tsuite_init(Evas_Object *win, char *name, api_data *d)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Eina_List *
|
||||
_add_test(Eina_List *list, char *n, void (* f) (void), Eina_Bool t)
|
||||
{
|
||||
Test_Item *item = malloc(sizeof(Test_Item));
|
||||
item->name = n;
|
||||
item->func = f;
|
||||
item->test = t;
|
||||
return eina_list_append(list, item);
|
||||
}
|
||||
|
||||
int test_name_cmp(const void *data1, const void *data2)
|
||||
{
|
||||
return strcmp(((Test_Item *) data1)->name, (char *) data2);
|
||||
}
|
||||
|
||||
Test_Item *
|
||||
_set_test(Eina_List *list, char *n, Eina_Bool t)
|
||||
{
|
||||
Test_Item *item = eina_list_search_unsorted(list, test_name_cmp, n);
|
||||
if (item)
|
||||
item->test = t;
|
||||
else
|
||||
printf("Unknown test name: %s\n", n);
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
static void (* _tsuite_evas_hook_init) (Lists_st *) = NULL;
|
||||
static void (* _tsuite_evas_hook_reset) (void) = NULL;
|
||||
|
||||
static void
|
||||
_init_recording_funcs(void)
|
||||
{
|
||||
_tsuite_evas_hook_init = dlsym(RTLD_DEFAULT, "tsuite_evas_hook_init");
|
||||
_tsuite_evas_hook_reset = dlsym(RTLD_DEFAULT, "tsuite_evas_hook_reset");
|
||||
}
|
||||
#if 0
|
||||
/**
|
||||
* @internal
|
||||
*
|
||||
* This function initiates Tsuite_Data
|
||||
* @param name defines test-name
|
||||
* @param Pointer_Event Pointer to PE.
|
||||
*
|
||||
* @ingroup Tsuite
|
||||
*/
|
||||
void
|
||||
tsuite_init(Evas_Object *win, char *name, api_data *d)
|
||||
{
|
||||
tsuite_cleanup();
|
||||
if (!name)
|
||||
return;
|
||||
|
||||
ts.name = strdup(name); /* Freed by tsuite_cleanup */
|
||||
ts.win = win;
|
||||
if (d)
|
||||
{ /* This field is not used when testing APPs */
|
||||
ts.api = d;
|
||||
ts.api->win = win;
|
||||
}
|
||||
|
||||
ts.e = evas_object_evas_get(ts.win);
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*
|
||||
* This function do cleanup for Tsuite
|
||||
* @param Tsuite_Data * data for cleanup.
|
||||
*
|
||||
* @ingroup Tsuite
|
||||
*/
|
||||
void
|
||||
tsuite_cleanup(void)
|
||||
{
|
||||
if (ts.name)
|
||||
free(ts.name);
|
||||
|
||||
if (ts.api)
|
||||
{
|
||||
if (ts.api->data && ts.api->free_data)
|
||||
free(ts.api->data);
|
||||
|
||||
free(ts.api);
|
||||
}
|
||||
|
||||
if (ts.win)
|
||||
evas_object_del(ts.win);
|
||||
|
||||
memset(&ts, 0, sizeof(ts));
|
||||
}
|
||||
char *tsuite_test_name_get()
|
||||
{
|
||||
return ts.name;
|
||||
}
|
||||
#endif
|
||||
#if 0 /* moved to tsuite_evas_hook */
|
||||
/**
|
||||
* @internal
|
||||
*
|
||||
* This function takes actual shot and saves it in PNG
|
||||
* @param data Tsuite_Data pointer initiated by user
|
||||
* @param obj Window pointer
|
||||
* @param obj name file name. Will use name_+serial if NULL
|
||||
*
|
||||
* @ingroup Tsuite
|
||||
*/
|
||||
void
|
||||
tsuite_shot_do(Evas_Object *obj, char *name)
|
||||
{
|
||||
Ecore_Evas *ee, *ee_orig;
|
||||
Evas_Object *o;
|
||||
unsigned int *pixels;
|
||||
int w, h,dir_name_len = 0;
|
||||
char *filename;
|
||||
if (dest_dir)
|
||||
dir_name_len = strlen(dest_dir) + 1; /* includes space of a '/' */
|
||||
|
||||
if (name)
|
||||
{
|
||||
filename = malloc(strlen(name) + strlen(IMAGE_FILENAME_EXT) +
|
||||
dir_name_len + 4);
|
||||
|
||||
if (dest_dir)
|
||||
sprintf(filename, "%s/", dest_dir);
|
||||
|
||||
sprintf(filename + dir_name_len, "%s%s", name, IMAGE_FILENAME_EXT);
|
||||
}
|
||||
else
|
||||
{
|
||||
filename = malloc(strlen(ts.name) + strlen(IMAGE_FILENAME_EXT) +
|
||||
dir_name_len + 8); /* also space for serial */
|
||||
|
||||
ts.serial++;
|
||||
if (dest_dir)
|
||||
sprintf(filename, "%s/", dest_dir);
|
||||
|
||||
sprintf(filename + dir_name_len, "%s_%d%s", ts.name ,ts.serial,
|
||||
IMAGE_FILENAME_EXT);
|
||||
}
|
||||
|
||||
/* A bit hackish, get the ecore_evas from the Evas canvas */
|
||||
ee_orig = evas_data_attach_get(evas_object_evas_get(obj));
|
||||
|
||||
ecore_evas_manual_render(ee_orig);
|
||||
pixels = (void *)ecore_evas_buffer_pixels_get(ee_orig);
|
||||
if (!pixels) return;
|
||||
ecore_evas_geometry_get(ee_orig, NULL, NULL, &w, &h);
|
||||
if ((w < 1) || (h < 1)) return;
|
||||
ee = ecore_evas_buffer_new(1, 1);
|
||||
o = evas_object_image_add(ecore_evas_get(ee));
|
||||
evas_object_image_alpha_set(o, ecore_evas_alpha_get(ee_orig));
|
||||
evas_object_image_size_set(o, w, h);
|
||||
evas_object_image_data_set(o, pixels);
|
||||
|
||||
if (!evas_object_image_save(o, filename, NULL, NULL))
|
||||
{
|
||||
printf("Cannot save widget to <%s>\n", filename);
|
||||
}
|
||||
ecore_evas_free(ee);
|
||||
free(filename);
|
||||
}
|
||||
#endif
|
||||
void
|
||||
_test_close_win(void *data __UNUSED__, Evas_Object *obj __UNUSED__,
|
||||
void *event_info __UNUSED__)
|
||||
{
|
||||
// ts.win = NULL;
|
||||
elm_exit();
|
||||
}
|
||||
#if 0 /* Moved to tsuite_file_data */
|
||||
static Lists_st *
|
||||
free_events(Lists_st *st)
|
||||
{
|
||||
Variant_st *v;
|
||||
EINA_LIST_FREE(st->variant_list, v)
|
||||
{
|
||||
if (recording)
|
||||
{
|
||||
Tsuite_Event_Type e = tsuite_event_mapping_type_get(v->t.type);
|
||||
if ((e == TSUITE_EVENT_KEY_DOWN) || (e == TSUITE_EVENT_KEY_UP))
|
||||
{ /* Allocated in tsuite_evas_hook.c */
|
||||
key_down_key_up *t = v->data;
|
||||
eina_stringshare_del(t->keyname);
|
||||
eina_stringshare_del(t->key);
|
||||
eina_stringshare_del(t->string);
|
||||
eina_stringshare_del(t->compose);
|
||||
}
|
||||
}
|
||||
|
||||
free(v->data);
|
||||
free(v);
|
||||
}
|
||||
|
||||
free(st); /* Allocated when reading data from EET file */
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
void
|
||||
do_test(char *rec_dir, void (* func) (void))
|
||||
{
|
||||
char buf[1024];
|
||||
char appname[1024];
|
||||
|
||||
// vr_list = calloc(1, sizeof(*vr_list));
|
||||
/* if (recording) done now in ecore_init() hook
|
||||
_tsuite_evas_hook_init(vr_list); */
|
||||
|
||||
if (func)
|
||||
{ /* Regular test with access func */
|
||||
func();
|
||||
sprintf(buf, "%s/%s.rec", rec_dir, "ts.name");
|
||||
}
|
||||
else
|
||||
{ /* Application, compose rec-file path and fulll appname */
|
||||
sprintf(buf, "%s/%s.rec", rec_dir, "basename(ts.name)");
|
||||
#if 0
|
||||
if (basename(ts.name) == ts.name)
|
||||
{ /* No PATH given, use cwd */
|
||||
getcwd(appname, 1024);
|
||||
strcat(appname, "/");
|
||||
strcat(appname, ts.name);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
strcpy(appname, "ts.name"); /* PATH incuded in ts.name */
|
||||
}
|
||||
|
||||
if (recording)
|
||||
{
|
||||
if (func)
|
||||
elm_run(); /* and run the program now and handle all events etc. */
|
||||
else
|
||||
{
|
||||
#ifdef DEBUG_TSUITE
|
||||
printf("%s calling <%s>\n", __func__, appname);
|
||||
#endif
|
||||
system(appname);
|
||||
}
|
||||
|
||||
/* if (vr_list)
|
||||
write_events(buf, vr_list); */
|
||||
}
|
||||
else
|
||||
{
|
||||
Timer_Data *td = NULL;
|
||||
if (func)
|
||||
elm_run(); /* run the program now and handle all events etc */
|
||||
#if 0
|
||||
td = calloc(1, sizeof(Timer_Data));
|
||||
#ifdef DEBUG_TSUITE
|
||||
printf("rec file is <%s>\n", buf);
|
||||
#endif
|
||||
vr_list = read_events(buf, ts.e, td);
|
||||
if (td->current_event)
|
||||
{ /* Got first event in list, run test */
|
||||
tsuite_feed_event(td);
|
||||
if (func)
|
||||
elm_run(); /* run the program now and handle all events etc */
|
||||
else
|
||||
{
|
||||
#ifdef DEBUG_TSUITE
|
||||
printf("%s calling <%s>\n", __func__, appname);
|
||||
#endif
|
||||
system(appname);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
if (td)
|
||||
free(td);
|
||||
}
|
||||
|
||||
|
||||
/* if (recording) done in ecore_shutdown() hook now
|
||||
_tsuite_evas_hook_reset(); */
|
||||
|
||||
/* if (vr_list) will be done in tsuite_evas_hook_reset()
|
||||
vr_list = free_events(vr_list); */
|
||||
}
|
||||
|
||||
EAPI int
|
||||
elm_main(int argc, char **argv)
|
||||
{
|
||||
Eina_List *tests = NULL;
|
||||
Eina_Bool test_all;
|
||||
char *rec_dir = NULL;
|
||||
int i, first_arg;
|
||||
|
||||
int opt_tests = 0;
|
||||
Eina_List *opt_destdir = NULL;
|
||||
Eina_List *opt_basedir = NULL;
|
||||
|
||||
static const Ecore_Getopt optdesc = {
|
||||
"Test_suite",
|
||||
NULL,
|
||||
"0.0",
|
||||
"(C) 2011 Enlightenment",
|
||||
"Enlightenment",
|
||||
"The Elementary auto test suite",
|
||||
0,
|
||||
{
|
||||
ECORE_GETOPT_COUNT('r', "record", "Recording mode"),
|
||||
ECORE_GETOPT_APPEND_METAVAR('d',"destdir","Destir for PNG files",
|
||||
"STRING", ECORE_GETOPT_TYPE_STR),
|
||||
ECORE_GETOPT_APPEND_METAVAR('b',"basedir","Directory of rec files",
|
||||
"STRING", ECORE_GETOPT_TYPE_STR),
|
||||
ECORE_GETOPT_COUNT('t', "tests", "Tests names marker"),
|
||||
ECORE_GETOPT_SENTINEL
|
||||
}
|
||||
};
|
||||
|
||||
Ecore_Getopt_Value values[] = {
|
||||
ECORE_GETOPT_VALUE_INT(recording),
|
||||
ECORE_GETOPT_VALUE_LIST(opt_destdir),
|
||||
ECORE_GETOPT_VALUE_LIST(opt_basedir),
|
||||
ECORE_GETOPT_VALUE_INT(opt_tests),
|
||||
ECORE_GETOPT_VALUE_NONE
|
||||
};
|
||||
|
||||
#ifdef DEBUG_TSUITE
|
||||
printf("Got args:\n");
|
||||
for(i = 0; i < argc; i++)
|
||||
printf("%d=<%s>\n", i, (char *) argv[i]);
|
||||
#endif
|
||||
ecore_init();
|
||||
|
||||
if (ecore_getopt_parse(&optdesc, values, argc, argv) < 0)
|
||||
{
|
||||
printf("Argument parsing failed\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
#ifdef DEBUG_TSUITE
|
||||
printf("Values from command line:\n");
|
||||
printf("recording=<%d>\nopt_tests=<%d>\n", recording, opt_tests);
|
||||
if (opt_destdir)
|
||||
printf("opt_destdir=<%s>\n", opt_destdir->data);
|
||||
if (opt_basedir)
|
||||
printf("opt_basedir=<%s>\n", opt_basedir->data);
|
||||
#endif
|
||||
|
||||
if (!opt_tests)
|
||||
{ /* This in case user runs mannualy and mistakes */
|
||||
printf ("Tests Marker (arg) missing.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/* Find index of first-test name, for ALL first_arg = (argc-1) */
|
||||
for(first_arg = 1; first_arg < argc; first_arg++)
|
||||
if (!strcmp(argv[first_arg], "--tests"))
|
||||
break;
|
||||
|
||||
first_arg++; /* First arg now is index of first test or == argc */
|
||||
|
||||
#ifdef DEBUG_TSUITE
|
||||
if (first_arg == argc)
|
||||
printf("TEST ALL: first_arg=<%d>\n", first_arg);
|
||||
else
|
||||
printf("test=<%s> first_arg=<%d>\n", argv[first_arg], first_arg);
|
||||
#endif
|
||||
|
||||
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
|
||||
|
||||
/* tell elm about our app so it can figure out where to get files */
|
||||
elm_app_compile_bin_dir_set(PACKAGE_BIN_DIR);
|
||||
elm_app_compile_data_dir_set(PACKAGE_DATA_DIR);
|
||||
elm_app_info_set(elm_main, "elementary", "images/logo.png");
|
||||
|
||||
/* if (opt_destdir)
|
||||
dest_dir = opt_destdir->data;
|
||||
*/
|
||||
if (opt_basedir)
|
||||
rec_dir = opt_basedir->data;
|
||||
|
||||
|
||||
/* if we got here, found test_arg, now find it's index */
|
||||
if (recording)
|
||||
{
|
||||
_init_recording_funcs();
|
||||
}
|
||||
|
||||
#ifdef DEBUG_TSUITE
|
||||
printf("argc=<%d> first_arg=<%d>\n", argc, first_arg);
|
||||
#endif
|
||||
|
||||
/* If no test specified in command line, set all */
|
||||
test_all = (argc - first_arg) == 0;
|
||||
tests = _add_test(tests, "test_3d", test_3d, test_all);
|
||||
tests = _add_test(tests, "test_actionslider", test_actionslider, test_all);
|
||||
tests = _add_test(tests, "test_anchorblock", test_anchorblock, test_all);
|
||||
tests = _add_test(tests, "test_anchorview", test_anchorview, test_all);
|
||||
tests = _add_test(tests, "test_bg_plain", test_bg_plain, test_all);
|
||||
tests = _add_test(tests, "test_bg_image", test_bg_image, test_all);
|
||||
tests = _add_test(tests, "test_bg_options", test_bg_options, test_all);
|
||||
tests = _add_test(tests, "test_box_vert", test_box_vert, test_all);
|
||||
tests = _add_test(tests, "test_box_vert2", test_box_vert2, test_all);
|
||||
tests = _add_test(tests, "test_box_horiz", test_box_horiz, test_all);
|
||||
tests = _add_test(tests, "test_button", test_button, test_all);
|
||||
tests = _add_test(tests, "test_bubble", test_bubble, test_all);
|
||||
tests = _add_test(tests, "test_calendar", test_calendar, test_all);
|
||||
tests = _add_test(tests, "test_check", test_check, test_all);
|
||||
tests = _add_test(tests, "test_colorselector", test_colorselector, test_all);
|
||||
tests = _add_test(tests, "test_conformant", test_conformant, test_all);
|
||||
tests = _add_test(tests, "test_conformant2", test_conformant2, test_all);
|
||||
tests = _add_test(tests, "test_ctxpopup", test_ctxpopup, test_all);
|
||||
tests = _add_test(tests, "test_diskselector", test_diskselector, test_all);
|
||||
tests = _add_test(tests, "test_entry", test_entry, test_all);
|
||||
tests = _add_test(tests, "test_entry_scrolled", test_entry_scrolled,
|
||||
test_all);
|
||||
tests = _add_test(tests, "test_entry3", test_entry3, test_all);
|
||||
tests = _add_test(tests, "test_entry4", test_entry4, test_all);
|
||||
tests = _add_test(tests, "test_entry5", test_entry5, test_all);
|
||||
tests = _add_test(tests, "test_entry_notepad", test_entry_notepad, test_all);
|
||||
tests = _add_test(tests, "test_fileselector", test_fileselector, test_all);
|
||||
tests = _add_test(tests, "test_fileselector_button",
|
||||
test_fileselector_button, test_all);
|
||||
tests = _add_test(tests, "test_fileselector_entry",
|
||||
test_fileselector_entry, test_all);
|
||||
tests = _add_test(tests, "test_focus", test_focus, test_all);
|
||||
tests = _add_test(tests, "test_gengrid", test_gengrid, test_all);
|
||||
tests = _add_test(tests, "test_gengrid2", test_gengrid2, test_all);
|
||||
tests = _add_test(tests, "test_genlist", test_genlist, test_all);
|
||||
tests = _add_test(tests, "test_genlist2", test_genlist2, test_all);
|
||||
tests = _add_test(tests, "test_genlist3", test_genlist3, test_all);
|
||||
tests = _add_test(tests, "test_genlist4", test_genlist4, test_all);
|
||||
tests = _add_test(tests, "test_genlist5", test_genlist5, test_all);
|
||||
tests = _add_test(tests, "test_genlist6", test_genlist6, test_all);
|
||||
tests = _add_test(tests, "test_genlist7", test_genlist7, test_all);
|
||||
tests = _add_test(tests, "test_genlist8", test_genlist8, test_all);
|
||||
tests = _add_test(tests, "test_genlist9", test_genlist9, test_all);
|
||||
tests = _add_test(tests, "test_genlist10", test_genlist10, test_all);
|
||||
tests = _add_test(tests, "test_genlist11", test_genlist11, test_all);
|
||||
tests = _add_test(tests, "test_grid", test_grid, test_all);
|
||||
tests = _add_test(tests, "test_hover", test_hover, test_all);
|
||||
tests = _add_test(tests, "test_hover2", test_hover2, test_all);
|
||||
tests = _add_test(tests, "test_hoversel", test_hoversel, test_all);
|
||||
tests = _add_test(tests, "test_index", test_index, test_all);
|
||||
tests = _add_test(tests, "test_index2", test_index2, test_all);
|
||||
tests = _add_test(tests, "test_inwin", test_inwin, test_all);
|
||||
tests = _add_test(tests, "test_inwin2", test_inwin2, test_all);
|
||||
tests = _add_test(tests, "test_label", test_label, test_all);
|
||||
tests = _add_test(tests, "test_list", test_list, test_all);
|
||||
tests = _add_test(tests, "test_list_horizontal", test_list_horizontal,
|
||||
test_all);
|
||||
|
||||
tests = _add_test(tests, "test_list2", test_list2, test_all);
|
||||
tests = _add_test(tests, "test_list3", test_list3, test_all);
|
||||
tests = _add_test(tests, "test_list4", test_list4, test_all);
|
||||
tests = _add_test(tests, "test_list5", test_list5, test_all);
|
||||
tests = _add_test(tests, "test_menu", test_menu, test_all);
|
||||
tests = _add_test(tests, "test_naviframe", test_naviframe, test_all);
|
||||
tests = _add_test(tests, "test_notify", test_notify, test_all);
|
||||
tests = _add_test(tests, "test_pager", test_pager, test_all);
|
||||
tests = _add_test(tests, "test_pager_slide", test_pager_slide, test_all);
|
||||
tests = _add_test(tests, "test_panel", test_panel, test_all);
|
||||
tests = _add_test(tests, "test_panes", test_panes, test_all);
|
||||
tests = _add_test(tests, "test_progressbar", test_progressbar, test_all);
|
||||
tests = _add_test(tests, "test_radio", test_radio, test_all);
|
||||
tests = _add_test(tests, "test_scaling", test_scaling, test_all);
|
||||
tests = _add_test(tests, "test_scaling2", test_scaling2, test_all);
|
||||
tests = _add_test(tests, "test_scroller", test_scroller, test_all);
|
||||
tests = _add_test(tests, "test_scroller2", test_scroller2, test_all);
|
||||
tests = _add_test(tests, "test_segment_control", test_segment_control,
|
||||
test_all);
|
||||
|
||||
tests = _add_test(tests, "test_separator", test_separator, test_all);
|
||||
tests = _add_test(tests, "test_slider", test_slider, test_all);
|
||||
tests = _add_test(tests, "test_spinner", test_spinner, test_all);
|
||||
tests = _add_test(tests, "test_table", test_table, test_all);
|
||||
tests = _add_test(tests, "test_table2", test_table2, test_all);
|
||||
tests = _add_test(tests, "test_table3", test_table3, test_all);
|
||||
tests = _add_test(tests, "test_table4", test_table4, test_all);
|
||||
tests = _add_test(tests, "test_table5", test_table5, test_all);
|
||||
tests = _add_test(tests, "test_table6", test_table6, test_all);
|
||||
tests = _add_test(tests, "test_toggle", test_toggle, test_all);
|
||||
tests = _add_test(tests, "test_toolbar", test_toolbar, test_all);
|
||||
tests = _add_test(tests, "test_toolbar2", test_toolbar2, test_all);
|
||||
tests = _add_test(tests, "test_toolbar3", test_toolbar3, test_all);
|
||||
tests = _add_test(tests, "test_toolbar4", test_toolbar4, test_all);
|
||||
tests = _add_test(tests, "test_toolbar5", test_toolbar5, test_all);
|
||||
tests = _add_test(tests, "test_tooltip", test_tooltip, test_all);
|
||||
tests = _add_test(tests, "test_tooltip2", test_tooltip2, test_all);
|
||||
|
||||
|
||||
Eina_List *l;
|
||||
Test_Item *item;
|
||||
int n_tests = 0;
|
||||
int n_total = 0;
|
||||
int n_no_rec_file = 0;
|
||||
|
||||
/* Set tests from command line */
|
||||
for(i = first_arg; i < argc ; i++)
|
||||
{
|
||||
if (_set_test(tests, argv[i], EINA_TRUE) == NULL)
|
||||
{ /* Failed to add test, trying to add application */
|
||||
if (access(argv[i], X_OK) == 0)
|
||||
{
|
||||
tests = _add_test(tests, argv[i], NULL, EINA_TRUE);
|
||||
}
|
||||
else
|
||||
printf("Unknown application: %s\n", argv[i]);
|
||||
}
|
||||
|
||||
n_total++; /* Count argument */
|
||||
}
|
||||
|
||||
EINA_LIST_FOREACH(tests, l, item)
|
||||
if (item->test)
|
||||
{ /* Run test and count tests committed */
|
||||
char buf[1024];
|
||||
if (item->func) /* Regular test with access func */
|
||||
sprintf(buf, "%s/%s.rec", rec_dir, item->name);
|
||||
else
|
||||
{ /* Application, set ts and compose rec-file path */
|
||||
tsuite_init(NULL /* win */, item->name, NULL);
|
||||
sprintf(buf, "%s/%s.rec", rec_dir, basename(item->name));
|
||||
}
|
||||
|
||||
if (!recording)
|
||||
{ /* Avoid trying to commit tests with no ".rec" file */
|
||||
if (access(buf, R_OK))
|
||||
{
|
||||
printf("Skipped test, missing <%s> file.\n", buf);
|
||||
n_no_rec_file++;
|
||||
continue; /* Skip this, no access to ".rec" file */
|
||||
}
|
||||
}
|
||||
|
||||
do_test(rec_dir, item->func);
|
||||
n_tests++;
|
||||
}
|
||||
|
||||
if (n_no_rec_file)
|
||||
printf("\n\nFailed to access %d record files.\n", n_no_rec_file);
|
||||
|
||||
if (n_tests)
|
||||
{ /* Print completed message */
|
||||
printf("\n\n%d tests completed out of %d tests\n",
|
||||
n_tests, n_total);
|
||||
}
|
||||
else
|
||||
{ /* No tests committed, let user know test-name is wrong */
|
||||
printf ("\n\nNo test matching:\n");
|
||||
for(i = first_arg; i < argc; i++)
|
||||
printf("%s\n", argv[i]);
|
||||
|
||||
printf ("\nPlease review test name; check record file.\n");
|
||||
}
|
||||
|
||||
|
||||
/* Free all tests in list */
|
||||
Test_Item *data = NULL;
|
||||
EINA_LIST_FREE(tests, data)
|
||||
free(data);
|
||||
|
||||
// tsuite_cleanup();
|
||||
/* if the mainloop that elm_run() runs exist - we exit the app */
|
||||
elm_shutdown(); /* clean up and shut down */
|
||||
|
||||
/* exit code, ZERO if all completed successfuly */
|
||||
if (test_all)
|
||||
return 0;
|
||||
else
|
||||
return ((argc - first_arg) - n_tests);
|
||||
}
|
||||
ELM_MAIN()
|
|
@ -1,61 +0,0 @@
|
|||
#ifndef _TSUITE_H
|
||||
#define _TSUITE_H
|
||||
|
||||
#include <Eina.h>
|
||||
#include <Eet.h>
|
||||
#include <tsuite_file_data.h>
|
||||
|
||||
#define fail_if(expr) \
|
||||
do { \
|
||||
if ( expr ) \
|
||||
{ \
|
||||
FILE *fp; \
|
||||
char buf[1024]; \
|
||||
sprintf(buf, "fail_%s.txt", tsuite_test_name_get()); \
|
||||
if ((fp = fopen(buf, "a")) != NULL) \
|
||||
{ \
|
||||
fprintf(fp, "Failed at %s:%d on <%s>\n", __FILE__, __LINE__, #expr); \
|
||||
fclose(fp); \
|
||||
} \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
/* #define DEBUG_TSUITE 1 */
|
||||
struct _api_data
|
||||
{
|
||||
unsigned int state; /* What state we are testing */
|
||||
Evas_Object *win; /* Parent Window of widgets */
|
||||
Evas_Object *bt; /* Button to progress in states */
|
||||
void *data; /* Additional data defined by test */
|
||||
Eina_Bool free_data; /* free data on close */
|
||||
};
|
||||
typedef struct _api_data api_data;
|
||||
|
||||
void
|
||||
_test_close_win(void *data, Evas_Object *obj, void *event_info);
|
||||
|
||||
#define TEST_START(x) \
|
||||
void x(void) \
|
||||
{ \
|
||||
Evas_Object *win = elm_win_add(NULL, #x, ELM_WIN_BASIC); \
|
||||
api_data *api = calloc(1, sizeof(api_data)); \
|
||||
tsuite_init(win, #x, api); \
|
||||
elm_win_title_set(win, #x); \
|
||||
elm_win_autodel_set(win, 1); \
|
||||
evas_object_smart_callback_add(win, "delete,request", _test_close_win, NULL); \
|
||||
evas_object_show(win);
|
||||
|
||||
#define TEST_END \
|
||||
}
|
||||
|
||||
#define TEST_SHOT(x) \
|
||||
tsuite_shot_do(x)
|
||||
|
||||
void tsuite_init(Evas_Object *win, char *name, api_data *d);
|
||||
void tsuite_cleanup(void);
|
||||
void tsuite_shot_do(char *name);
|
||||
char *tsuite_test_name_get();
|
||||
Eina_Bool write_events_get(void);
|
||||
void write_events_set(Eina_Bool val);
|
||||
void variant_list_append(Variant_st *v);
|
||||
#endif
|
Loading…
Reference in New Issue