diff --git a/data/themes/default_wizard.edc b/data/themes/default_wizard.edc index e3a4adca7..4d7533d4b 100644 --- a/data/themes/default_wizard.edc +++ b/data/themes/default_wizard.edc @@ -2,6 +2,7 @@ images { image: "e17_tl_corner_logo.png" COMP; image: "e17_tl_corner_logo_shadow.png" LOSSY 90; image: "e17_whitev.png" COMP; + image: "e17_winlist_bottom.png" COMP; } group { @@ -34,8 +35,48 @@ group { } } part { - name: "e.title"; + name: "e.swallow.content"; + type: SWALLOW; + description { + state: "default" 0.0; + rel1 { + relative: 0.0 1.0; + offset: 8 8; + to_y: "e.text.title"; + } + rel2 { + relative: 1.0 0.0; + offset: -9 -1; + to_y: "bottom"; + } + } + } + part { + name: "bottom"; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { + relative: 0.0 1.0; + offset: 0 -40; + } + rel2 { + relative: 1.0 1.0; + offset: -1 -1; + } + image { + normal: "e17_winlist_bottom.png"; + border: 0 0 4 0; + } + fill { + smooth: 0; + } + } + } + part { + name: "e.text.title"; type: TEXT; + effect: SOFT_SHADOW; mouse_events: 0; description { state: "default" 0.0; @@ -47,9 +88,11 @@ group { relative: 1.0 0.0; offset: -9 8; } - color: 0 0 0 255; + align: 0.5 0.0; + color: 255 255 255 255; + color3: 0 0 0 16; text { - text: "Welcome to Enlightenment"; + text: "Title"; font: "Edje Vera Bold"; size: 20; min: 0 1; diff --git a/src/modules/wizard/e_wizard.c b/src/modules/wizard/e_wizard.c index 695625b6a..b90129595 100644 --- a/src/modules/wizard/e_wizard.c +++ b/src/modules/wizard/e_wizard.c @@ -6,9 +6,14 @@ static E_Popup *_e_wizard_main_new(E_Zone *zone); static E_Popup *_e_wizard_extra_new(E_Zone *zone); +static void _e_wizard_cb_key_down(void *data, Evas *e, Evas_Object *obj, void *event); +static void _e_wizard_cb_next(void *data, Evas_Object *obj, const char *emission, const char *source); +static void _e_wizard_cb_back(void *data, Evas_Object *obj, const char *emission, const char *source); static E_Popup *pop = NULL; static Evas_List *pops = NULL; +static Evas_Object *o_bg = NULL; +static Evas_Object *o_content = NULL; EAPI int e_wizard_init(void) @@ -62,7 +67,8 @@ static E_Popup * _e_wizard_main_new(E_Zone *zone) { E_Popup *pop; - Evas_Object *o, *o_bg; + Evas_Object *o, *o_ev; + Evas_Modifier_Mask mask; pop = e_popup_new(zone, zone->x, zone->y, zone->w, zone->h); e_popup_layer_set(pop, 255); @@ -73,9 +79,38 @@ _e_wizard_main_new(E_Zone *zone) evas_object_move(o, 0, 0); evas_object_resize(o, zone->w, zone->h); evas_object_show(o); + edje_object_signal_callback_add(o_bg, "e,action,next", "e", + _e_wizard_cb_next, pop); + edje_object_signal_callback_add(o_bg, "e,action,back", "e", + _e_wizard_cb_back, pop); o_bg = o; + o = evas_object_rectangle_add(pop->evas); + mask = 0; + evas_object_key_grab(o, "Tab", mask, ~mask, 0); + mask = evas_key_modifier_mask_get(pop->evas, "Shift"); + evas_object_key_grab(o, "Tab", mask, ~mask, 0); + mask = 0; + evas_object_key_grab(o, "Return", mask, ~mask, 0); + mask = 0; + evas_object_key_grab(o, "KP_Enter", mask, ~mask, 0); + evas_object_event_callback_add(o, EVAS_CALLBACK_KEY_DOWN, + _e_wizard_cb_key_down, pop); + o_ev = o; + + /* set up next/prev buttons */ + edje_object_part_text_set(o_bg, "e.text.title", _("Welcome to Enlightenment")); + edje_object_part_text_set(o_bg, "e.text.page", ""); + edje_object_part_text_set(o_bg, "e.text.next", _("Next")); + edje_object_part_text_set(o_bg, "e.text.back", _("Back")); + edje_object_signal_emit(o_bg, "e,state,next,disable", "e"); + edje_object_signal_emit(o_bg, "e,state,back,disable", "e"); + /* set up rest here */ + //evas_object_show(o); + //edje_object_part_swallow(o_bg, "e.swallow.content", o); + //e_widget_focus_set(o, 1); + //o_content = o; e_popup_edje_bg_object_set(pop, o_bg); e_popup_show(pop); @@ -107,3 +142,40 @@ _e_wizard_extra_new(E_Zone *zone) e_popup_show(pop); return pop; } + +static void +_e_wizard_cb_key_down(void *data, Evas *e, Evas_Object *obj, void *event) +{ + Evas_Event_Key_Down *ev; + E_Popup *pop; + + ev = event; + pop = (E_Popup *)data; + if (!o_content) return; + if (!strcmp(ev->keyname, "Tab")) + { + if (evas_key_modifier_is_set(pop->evas, "Shift")) + e_widget_focus_jump(o_content, 0); + else + e_widget_focus_jump(o_content, 1); + } + else if (((!strcmp(ev->keyname, "Return")) || + (!strcmp(ev->keyname, "KP_Enter")) || + (!strcmp(ev->keyname, "space")))) + { + Evas_Object *o; + + o = e_widget_focused_object_get(o_content); + if (o) e_widget_activate(o); + } +} + +static void +_e_wizard_cb_next(void *data, Evas_Object *obj, const char *emission, const char *source) +{ +} + +static void +_e_wizard_cb_back(void *data, Evas_Object *obj, const char *emission, const char *source) +{ +}