372 lines
14 KiB
C
372 lines
14 KiB
C
#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
|