use one window - more freedom to the aadvarks!

SVN revision: 48852
This commit is contained in:
Hannes Janetzek 2010-05-14 06:35:06 +00:00
parent 111b5b95c1
commit 11a62e9049
3 changed files with 425 additions and 537 deletions

View File

@ -32787,75 +32787,89 @@ collections {
group {
name: "e/modules/everything/main";
images {
image: "base_bg.png" COMP;
image: "inset_sunk.png" COMP;
image: "menu_sel_bg.png" COMP;
image: "menu_sel_fg.png" COMP;
image: "everything_drop.png" COMP;
image: "base_bg.png" COMP;
image: "inset_sunk.png" COMP;
image: "menu_sel_bg.png" COMP;
image: "menu_sel_fg.png" COMP;
image: "everything_drop.png" COMP;
image: "everything_bar.png" COMP;
image: "everything_box.png" COMP;
image: "vgrad_dark.png" COMP;
}
data.item: "shaped" "1";
data.item: "shadow_offset" "50";
parts {
part {
name: "win";
type: RECT;
description {
state: "default" 0.0;
visible: 0;
min: 386 118;
}
}
part {
name: "frame";
type: RECT;
description {
state: "default" 0.0;
visible: 0;
}
description {
state: "composite" 0.0;
visible: 0;
rel1.offset: 50 50;
rel2.offset: -50 -51;
}
}
part {
name: "shadow";
description {
state: "default" 0.0;
visible: 0;
image {
normal: "everything_drop.png";
middle: 0;
border: 50 50 50 50;
}
rel1.offset: 4 4;
rel2.offset: -5 -5;
fill.smooth: 0;
color: 255 255 255 220;
}
description {
state: "composite" 0.0;
inherit: "default" 0.0;
visible: 1;
}
}
part {
name: "bg";
description {
state: "default" 0.0;
part {
name: "win";
type: RECT;
description {
state: "default" 0.0;
visible: 0;
min: 386 118;
rel2.relative: 1.0 0.0;
rel2.offset: -1 118;
}
description {
state: "composite" 0.0;
visible: 0;
min: 486 218;
rel2.relative: 1.0 0.0;
rel2.offset: -1 218;
}
}
part {
name: "frame";
type: RECT;
description {
state: "default" 0.0;
visible: 0;
rel1.to: "win";
rel2.to: "win";
}
description {
state: "composite" 0.0;
inherit: "default" 0.0;
rel1.offset: 50 50;
rel2.offset: -50 -51;
}
}
part {
name: "shadow";
description {
state: "default" 0.0;
visible: 0;
image {
normal: "everything_drop.png";
middle: 0;
border: 50 50 50 50;
}
rel1.to: "win";
rel2.to: "win";
rel1.offset: 4 4;
rel2.offset: -5 -5;
fill.smooth: 1;
color: 255 255 255 255;
}
description {
state: "composite" 0.0;
inherit: "default" 0.0;
visible: 1;
}
}
part {
name: "bg";
description {
state: "default" 0.0;
max: 999 118;
rel1.to: "frame";
rel2.to: "frame";
image {
normal: "bt_base2.png";
border: 7 7 5 5;
}
}
description {
state: "composite" 0.0;
inherit: "default" 0.0;
rel1.offset: 50 50;
rel2.offset: -50 -51;
}
}
part {
name: "border_bg";
@ -32863,7 +32877,6 @@ collections {
description {
state: "default" 0.0;
color: 255 255 255 66;
//32;
rel1.to: "bg";
rel1.offset: 2 4;
rel2.to: "bg";
@ -33012,310 +33025,39 @@ collections {
}
}
}
}
programs {
program {
name: "object_selector_hide";
signal: "e,state,object_selector_hide";
source: "e";
action: STATE_SET "default" 0.00;
transition: SINUSOIDAL 0.15;
target: "e.swallow.object_selector";
target: "e.swallow.subject_selector";
target: "e.swallow.action_selector";
}
program {
name: "object_selector_show";
signal: "e,state,object_selector_show";
source: "e";
action: STATE_SET "wide" 0.00;
transition: SINUSOIDAL 0.2;
target: "e.swallow.object_selector";
target: "e.swallow.subject_selector";
target: "e.swallow.action_selector";
}
program {
name: "composite_mode";
signal: "e,state,composited";
source: "e";
action: STATE_SET "composite" 0.0;
target: "frame";
target: "shadow";
target: "bg";
}
}
}
group {
name: "e/modules/everything/selector_item";
images {
image: "everything_border.png" COMP;
image: "everything_item_bg.png" COMP;
}
parts {
part {
name: "clip";
type: RECT;
mouse_events: 0;
description {
state: "default" 0.0;
}
}
part {
name: "border_bg";
clip_to: "clip";
mouse_events: 0;
description {
state: "default" 0.0;
color: 255 255 255 10;
//32;
rel1.offset: 2 2;
rel2.offset: -3 -3;
image {
normal: "everything_item_bg.png";
border: 5 5 5 5;
}
}
description {
state: "selected" 0.0;
inherit: "default" 0.0;
color: 255 255 255 36;
}
}
part {
name: "border";
clip_to: "clip";
mouse_events: 0;
description {
state: "default" 0.0;
color: 255 255 255 80;
image {
normal: "everything_border.png";
border: 10 10 10 10;
}
}
description {
state: "selected" 0.0;
inherit: "default" 0.0;
color: 255 255 255 160;
}
}
part {
name: "inner_clip";
type: RECT;
clip_to: "clip";
description {
state: "default" 0.0;
rel1.offset: 10 10;
rel2.offset: -11 -11;
}
}
part {
name: "icon_clip";
type: RECT;
clip_to: "inner_clip";
description {
state: "default" 0.0;
color: 255 255 255 255;
}
description {
state: "faded" 0.0;
color: 255 255 255 120;
}
}
part {
name: "e.swallow.icons";
type: SWALLOW;
clip_to: "icon_clip";
description {
state: "default" 0.0;
min: 64 64;
max: 64 64;
aspect: 1.0 1.0;
align: 0.0 0.5;
aspect_preference: VERTICAL;
rel1 {
relative: 0.0 0.0;
offset: 15 15;
}
rel2 {
relative: 0.0 0.0;
offset: 79 79;
}
}
}
part {
name: "e.swallow.thumb";
type: SWALLOW;
clip_to: "icon_clip";
description {
state: "default" 0.0;
min: 86 64;
max: 86 64;
aspect: 1.0 1.0;
align: 0.0 0.5;
aspect_preference: VERTICAL;
rel1 {
relative: 0.0 0.0;
offset: 15 15;
}
rel2 {
relative: 0.0 0.0;
offset: 100 79;
}
color: 255 255 255 0;
}
}
part {
name: "e.text.label";
type: TEXT;
clip_to: "inner_clip";
effect: SOFT_SHADOW;
mouse_events: 0;
scale: 1;
description {
state: "default" 0.0;
rel1 {
offset: 20 6;
relative: 0.0 0.6;
}
rel2.offset: -11 -2;
color: 205 205 205 255;
color3: 40 40 40 64;
text {
font: "Sans:style=Bold";
size: 9;
min: 0 0;
align: 0.5 0.5;
}
}
description {
state: "selected" 0.0;
inherit: "default" 0.0;
color: 255 255 255 255;
}
}
part {
name: "e.text.plugin";
type: TEXT;
clip_to: "inner_clip";
effect: SOFT_SHADOW;
mouse_events: 0;
scale: 1;
description {
state: "default" 0.0;
rel1 {
offset: 6 12;
relative: 1.0 0.0;
to_x: "e.swallow.icons";
}
rel2.offset: -13 -2;
color: 210 210 210 255;
color3: 0 0 0 0;
text {
font: "Sans";
size: 10;
min: 0 1;
align: 1.0 0.0;
}
}
}
}
programs {
program {
name: "sel";
signal: "e,state,selected";
source: "e";
action: STATE_SET "selected" 0.0;
transition: SINUSOIDAL 0.2;
target: "border";
target: "border_bg";
target: "e.text.label";
}
program {
name: "unsel";
signal: "e,state,unselected";
source: "e";
action: STATE_SET "default" 0.0;
transition: SINUSOIDAL 0.3;
target: "border";
target: "border_bg";
target: "e.text.label";
}
program {
name: "update";
signal: "e,signal,update";
source: "e";
action: STATE_SET "faded" 0.0;
transition: DECELERATE 0.1;
target: "icon_clip";
after: "show_icon";
}
program {
name: "show_icon";
action: STATE_SET "default" 0.0;
transition: ACCELERATE 0.3;
target: "icon_clip";
}
program {
name: "thumb_show";
signal: "e,action,thumb,show";
source: "e";
action: STATE_SET "faded" 0.0;
/* transition: SINUSOIDAL 0.05; */
target: "icon_clip";
after: "thumb_show2";
}
program {
name: "thumb_show2";
action: STATE_SET "default" 0.0;
transition: SINUSOIDAL 0.2;
target: "icon_clip";
}
}
}
/////////////////////////////////////////////////////////////////////////////
/*** EVERYTHING LIST POPUP ***/
group {
name: "e/modules/everything/list";
images {
image: "base_bg.png" COMP;
image: "inset_sunk.png" COMP;
image: "menu_sel_bg.png" COMP;
image: "menu_sel_fg.png" COMP;
image: "everything_bar.png" COMP;
image: "everything_box.png" COMP;
image: "vgrad_dark.png" COMP;
image: "everything_drop.png" COMP;
}
/* offset to main popup */
data.item: "offset_y" "-2";
data.item: "offset_x" "12";
/* data.item: "offset_composite_y" "-52";
* data.item: "offset_composite_x" "16"; */
data.item: "shadow_offset" "50";
data.item: "shaped" "1";
parts {
/*************** list ***************/
part {
name: "win";
name: "list_win";
type: RECT;
description {
state: "default" 0.0;
visible: 0;
min: 400 255;
rel1 {
to_y: "frame";
offset: 10 -3;
relative: 0.0 1.0;
}
rel2 {
offset: -11 -1;
}
}
}
part {
name: "frame";
name: "list_frame";
type: RECT;
description {
state: "default" 0.0;
visible: 0;
rel1.to: "list_win";
rel2.to: "list_win";
}
description {
state: "composite" 0.0;
visible: 0;
inherit: "default" 0.0;
rel1.offset: 50 0;
rel2.offset: -51 -40;
}
@ -33325,8 +33067,8 @@ collections {
type: RECT;
description {
state: "default" 0.0;
rel1.to: "shadow";
rel2.to: "shadow";
rel1.to: "list_shadow";
rel2.to: "list_shadow";
color: 255 255 255 0;
}
description {
@ -33336,16 +33078,17 @@ collections {
}
}
part {
name: "shadow";
name: "list_shadow";
clip_to: "shadow_clip";
description {
state: "default" 0.0;
visible: 0;
rel1.to: "list_win";
rel1.offset: 0 -50;
rel2 {
relative: 1.0 1.0;
to_y: "base";
offset: -1 47;
to: "base";
offset: 47 47;
}
image {
normal: "everything_drop.png";
@ -33367,11 +33110,11 @@ collections {
state: "default" 0.0;
rel1 {
relative: 0.0 1.0;
to_x: "frame";
to_x: "list_frame";
to_y: "input_base";
}
rel2 {
to_x: "frame";
to_x: "list_frame";
to_y: "input_base";
}
}
@ -33379,7 +33122,7 @@ collections {
state: "visible" 0.0;
inherit: "default" 0.0;
rel2 {
to: "frame";
to: "list_frame";
offset: -1 -1;
}
}
@ -33389,11 +33132,16 @@ collections {
type: RECT;
description {
state: "default" 0.0;
rel1.to_x: "base";
rel1 {
to_y: "list_win";
to_x: "base";
}
rel2 {
relative: 1.0 0.0;
to_x: "base";
offset: -1 1;
to_y: "list_win";
to_x: "base";
offset: -1 1;
}
}
description {
@ -33403,7 +33151,7 @@ collections {
}
}
part {
name: "bg";
name: "list_win_bg";
type: RECT;
description {
state: "default" 0.0;
@ -33412,12 +33160,6 @@ collections {
rel2.to: "base";
rel2.offset: -1 -3;
/* image {
* normal: "base_bg.png";
* border: 2 2 2 2;
* }
* fill.smooth: 1; */
color: 225 225 225 255;
}
}
@ -33736,7 +33478,7 @@ collections {
description {
state: "default" 0.0;
rel1 {
to_x: "base";
to: "base";
}
rel2 {
to: "base";
@ -33753,6 +33495,37 @@ collections {
}
}
programs {
program {
name: "object_selector_hide";
signal: "e,state,object_selector_hide";
source: "e";
action: STATE_SET "default" 0.00;
transition: SINUSOIDAL 0.15;
target: "e.swallow.object_selector";
target: "e.swallow.subject_selector";
target: "e.swallow.action_selector";
}
program {
name: "object_selector_show";
signal: "e,state,object_selector_show";
source: "e";
action: STATE_SET "wide" 0.00;
transition: SINUSOIDAL 0.2;
target: "e.swallow.object_selector";
target: "e.swallow.subject_selector";
target: "e.swallow.action_selector";
}
program {
name: "composite_mode";
signal: "e,state,composited";
source: "e";
action: STATE_SET "composite" 0.0;
target: "win";
target: "frame";
target: "shadow";
target: "list_frame";
target: "list_shadow";
}
program {
name: "show_list";
signal: "e,state,list_show";
@ -33808,16 +33581,237 @@ collections {
/* transition: SINUSOIDAL 0.15; */
target: "bar_clip";
}
}
}
group {
name: "e/modules/everything/selector_item";
images {
image: "everything_border.png" COMP;
image: "everything_item_bg.png" COMP;
}
parts {
part {
name: "clip";
type: RECT;
mouse_events: 0;
description {
state: "default" 0.0;
}
}
part {
name: "border_bg";
clip_to: "clip";
mouse_events: 0;
description {
state: "default" 0.0;
color: 255 255 255 10;
//32;
rel1.offset: 2 2;
rel2.offset: -3 -3;
image {
normal: "everything_item_bg.png";
border: 5 5 5 5;
}
}
description {
state: "selected" 0.0;
inherit: "default" 0.0;
color: 255 255 255 36;
}
}
part {
name: "border";
clip_to: "clip";
mouse_events: 0;
description {
state: "default" 0.0;
color: 255 255 255 80;
image {
normal: "everything_border.png";
border: 10 10 10 10;
}
}
description {
state: "selected" 0.0;
inherit: "default" 0.0;
color: 255 255 255 160;
}
}
part {
name: "inner_clip";
type: RECT;
clip_to: "clip";
description {
state: "default" 0.0;
rel1.offset: 10 10;
rel2.offset: -11 -11;
}
}
part {
name: "icon_clip";
type: RECT;
clip_to: "inner_clip";
description {
state: "default" 0.0;
color: 255 255 255 255;
}
description {
state: "faded" 0.0;
color: 255 255 255 120;
}
}
part {
name: "e.swallow.icons";
type: SWALLOW;
clip_to: "icon_clip";
description {
state: "default" 0.0;
min: 64 64;
max: 64 64;
aspect: 1.0 1.0;
align: 0.0 0.5;
aspect_preference: VERTICAL;
rel1 {
relative: 0.0 0.0;
offset: 15 15;
}
rel2 {
relative: 0.0 0.0;
offset: 79 79;
}
}
}
part {
name: "e.swallow.thumb";
type: SWALLOW;
clip_to: "icon_clip";
description {
state: "default" 0.0;
min: 86 64;
max: 86 64;
aspect: 1.0 1.0;
align: 0.0 0.5;
aspect_preference: VERTICAL;
rel1 {
relative: 0.0 0.0;
offset: 15 15;
}
rel2 {
relative: 0.0 0.0;
offset: 100 79;
}
color: 255 255 255 0;
}
}
part {
name: "e.text.label";
type: TEXT;
clip_to: "inner_clip";
effect: SOFT_SHADOW;
mouse_events: 0;
scale: 1;
description {
state: "default" 0.0;
rel1 {
offset: 20 6;
relative: 0.0 0.6;
}
rel2.offset: -11 -2;
color: 205 205 205 255;
color3: 40 40 40 64;
text {
font: "Sans:style=Bold";
size: 9;
min: 0 0;
align: 0.5 0.5;
}
}
description {
state: "selected" 0.0;
inherit: "default" 0.0;
color: 255 255 255 255;
}
}
part {
name: "e.text.plugin";
type: TEXT;
clip_to: "inner_clip";
effect: SOFT_SHADOW;
mouse_events: 0;
scale: 1;
description {
state: "default" 0.0;
rel1 {
offset: 6 12;
relative: 1.0 0.0;
to_x: "e.swallow.icons";
}
rel2.offset: -13 -2;
color: 210 210 210 255;
color3: 0 0 0 0;
text {
font: "Sans";
size: 10;
min: 0 1;
align: 1.0 0.0;
}
}
}
}
programs {
program {
name: "composite_mode";
signal: "e,state,composited";
name: "sel";
signal: "e,state,selected";
source: "e";
action: STATE_SET "composite" 0.0;
target: "shadow";
target: "frame";
action: STATE_SET "selected" 0.0;
transition: SINUSOIDAL 0.2;
target: "border";
target: "border_bg";
target: "e.text.label";
}
program {
name: "unsel";
signal: "e,state,unselected";
source: "e";
action: STATE_SET "default" 0.0;
transition: SINUSOIDAL 0.3;
target: "border";
target: "border_bg";
target: "e.text.label";
}
program {
name: "update";
signal: "e,signal,update";
source: "e";
action: STATE_SET "faded" 0.0;
transition: DECELERATE 0.1;
target: "icon_clip";
after: "show_icon";
}
program {
name: "show_icon";
action: STATE_SET "default" 0.0;
transition: ACCELERATE 0.3;
target: "icon_clip";
}
program {
name: "thumb_show";
signal: "e,action,thumb,show";
source: "e";
action: STATE_SET "faded" 0.0;
/* transition: SINUSOIDAL 0.05; */
target: "icon_clip";
after: "thumb_show2";
}
program {
name: "thumb_show2";
action: STATE_SET "default" 0.0;
transition: SINUSOIDAL 0.2;
target: "icon_clip";
}
}
}
group {
name: "e/modules/everything/tab_item";
images {

View File

@ -7,14 +7,13 @@
*/
#define INPUTLEN 256
#define MATCH_LAG 0.15
#define INITIAL_MATCH_LAG 0.3
#define MATCH_LAG 0.25
#define INITIAL_MATCH_LAG 0.4
/* #undef DBG
* #define DBG(...) ERR(__VA_ARGS__) */
typedef struct _Evry_Window Evry_Window;
typedef struct _Evry_List_Window Evry_List_Window;
struct _Evry_Window
{
@ -23,13 +22,8 @@ struct _Evry_Window
Eina_Bool request_selection;
Eina_Bool plugin_dedicated;
};
struct _Evry_List_Window
{
E_Popup *popup;
Evas_Object *o_main;
Eina_Bool visible;
Eina_Bool visible;
};
static void _evry_matches_update(Evry_Selector *sel, int async);
@ -59,9 +53,6 @@ static Evry_Selector *_evry_selector_for_plugin_get(Evry_Plugin *p);
static Evry_Window *_evry_window_new(E_Zone *zone);
static void _evry_window_free(Evry_Window *win);
static Evry_List_Window *_evry_list_win_new(E_Zone *zone);
static void _evry_list_win_free(Evry_List_Window *win);
static void _evry_list_win_show(void);
static void _evry_list_win_update(Evry_State *s);
static void _evry_list_win_clear(int hide);
@ -81,11 +72,11 @@ static int _evry_cb_selection_notify(void *data, int type, void *event);
/* local subsystem globals */
static Evry_Window *win = NULL;
static Evry_List_Window *list = NULL;
static Ecore_X_Window input_window = 0;
static Eina_List *handlers = NULL;
static Evry_Selector *selector = NULL;
static Ecore_Timer *show_timer = NULL;
Evry_Selector **selectors = NULL;
@ -126,12 +117,10 @@ _evry_cb_item_changed(void *data, int type, void *event)
return 1;
}
static Ecore_Timer *_show_timer = NULL;
static int
_cb_show_timer(void *data)
{
_show_timer = NULL;
show_timer = NULL;
if (evry_conf->views && selector->state)
{
@ -145,7 +134,7 @@ _cb_show_timer(void *data)
}
else
{
s->view = view->create(view, s, list->o_main);
s->view = view->create(view, s, win->o_main);
_evry_view_show(s->view);
}
}
@ -162,6 +151,9 @@ _cb_show_timer(void *data)
int
evry_show(E_Zone *zone, const char *params)
{
E_OBJECT_CHECK_RETURN(zone, 0);
E_OBJECT_TYPE_CHECK_RETURN(zone, E_ZONE_TYPE, 0);
if (win)
{
Eina_List *l;
@ -182,23 +174,24 @@ evry_show(E_Zone *zone, const char *params)
return 1;
}
E_OBJECT_CHECK_RETURN(zone, 0);
E_OBJECT_TYPE_CHECK_RETURN(zone, E_ZONE_TYPE, 0);
input_window = ecore_x_window_input_new(zone->container->win,
zone->x, zone->y,
zone->w, zone->h);
ecore_x_window_show(input_window);
if (!e_grabinput_get(input_window, 1, input_window))
goto error1;
{
return 0;
}
win = _evry_window_new(zone);
if (!win) goto error2;
if (!win)
{
ecore_x_window_free(input_window);
input_window = 0;
return 0;
}
list = _evry_list_win_new(zone);
if (!list) goto error2;
list->visible = EINA_FALSE;
win->visible = EINA_FALSE;
evry_history_load();
@ -222,36 +215,20 @@ evry_show(E_Zone *zone, const char *params)
(EVRY_EVENT_ITEM_CHANGED,
_evry_cb_item_changed, NULL));
e_popup_layer_set(list->popup, 255);
e_popup_layer_set(win->popup, 255);
e_popup_show(win->popup);
e_popup_show(list->popup);
_evry_selector_subjects_get(params);
_evry_selector_update(selectors[0]);
_evry_selector_activate(selectors[0]);
if (!evry_conf->hide_input)
edje_object_signal_emit(list->o_main, "e,state,entry_show", "e");
edje_object_signal_emit(win->o_main, "e,state,entry_show", "e");
if (!evry_conf->hide_list)
_show_timer = ecore_timer_add(0.01, _cb_show_timer, NULL);
show_timer = ecore_timer_add(0.01, _cb_show_timer, NULL);
return 1;
error2:
if (win)
_evry_window_free(win);
if (list)
_evry_list_win_free(list);
win = NULL;
list = NULL;
error1:
ecore_x_window_free(input_window);
input_window = 0;
return 0;
}
void
@ -295,12 +272,11 @@ evry_hide(int clear)
return;
}
/* _evry_view_clear(selector->state); */
if (_show_timer)
ecore_timer_del(_show_timer);
_show_timer = NULL;
if (show_timer)
ecore_timer_del(show_timer);
show_timer = NULL;
list->visible = EINA_FALSE;
win->visible = EINA_FALSE;
_evry_selector_free(selectors[0]);
_evry_selector_free(selectors[1]);
_evry_selector_free(selectors[2]);
@ -309,9 +285,6 @@ evry_hide(int clear)
selectors = NULL;
selector = NULL;
_evry_list_win_free(list);
list = NULL;
_evry_window_free(win);
win = NULL;
@ -466,7 +439,6 @@ _evry_selector_update_actions(Evry_Selector *sel)
if (sel->update_timer)
ecore_timer_del(sel->update_timer);
/* _evry_timer_cb_actions_get(it); */
sel->update_timer = ecore_timer_add(0.1, _evry_timer_cb_actions_get, it);
}
@ -522,7 +494,7 @@ evry_item_ref(Evry_Item *it)
EAPI int
evry_list_win_show(void)
{
if (list->visible) return 0;
if (win->visible) return 0;
_evry_list_win_show();
return 1;
@ -628,114 +600,34 @@ evry_plugin_update(Evry_Plugin *p, int action)
/* local subsystem functions */
static Evry_List_Window *
_evry_list_win_new(E_Zone *zone)
{
int x, y, w, mw, mh;
Evry_List_Window *list_win;
E_Popup *popup;
Evas_Object *o;
const char *tmp;
int offset_x, offset_y, offset_s = 0;
if (!evry_conf->views) return NULL;
popup = e_popup_new(zone, 0, 0, 1, 1);
if (!popup) return NULL;
list_win = E_NEW(Evry_List_Window, 1);
if (!list_win)
{
e_object_del(E_OBJECT(popup));
return NULL;
}
list_win->popup = popup;
o = edje_object_add(popup->evas);
list_win->o_main = o;
e_theme_edje_object_set(o, "base/theme/everything",
"e/modules/everything/list");
tmp = edje_object_data_get(o, "offset_x");
offset_x = tmp ? atoi(tmp) : 0;
tmp = edje_object_data_get(o, "offset_y");
offset_y = tmp ? atoi(tmp) : 0;
if (e_config->use_composite)
{
edje_object_signal_emit(o, "e,state,composited", "e");
edje_object_message_signal_process(o);
edje_object_calc_force(o);
tmp = edje_object_data_get(o, "shadow_offset");
offset_s = tmp ? atoi(tmp) : 0;
offset_y -= offset_s;
}
edje_object_size_min_calc(o, &mw, &mh);
if (mh == 0) mh = 200;
if (mw == 0) mw = win->popup->w / 2;
evry_conf->min_h = mh;
if (evry_conf->height > mh)
mh = evry_conf->height;
x = win->popup->x + offset_x;
y = (win->popup->y + win->popup->h) + offset_y;
w = win->popup->w - offset_x*2;
mh += offset_s;
e_popup_move_resize(popup, x, y, w, mh);
o = list_win->o_main;
evas_object_move(o, 0, 0);
evas_object_resize(o, list_win->popup->w, list_win->popup->h);
evas_object_show(o);
e_popup_edje_bg_object_set(popup, o);
return list_win;
}
static void
_evry_list_win_free(Evry_List_Window *list_win)
{
e_popup_hide(list_win->popup);
evas_event_freeze(list_win->popup->evas);
evas_object_del(list_win->o_main);
e_object_del(E_OBJECT(list_win->popup));
E_FREE(list_win);
}
static void
_evry_list_win_show(void)
{
if (list->visible) return;
if (win->visible) return;
list->visible = EINA_TRUE;
win->visible = EINA_TRUE;
_evry_list_win_update(selector->state);
edje_object_signal_emit(list->o_main, "e,state,list_show", "e");
edje_object_signal_emit(list->o_main, "e,state,entry_show", "e");
edje_object_signal_emit(win->o_main, "e,state,list_show", "e");
edje_object_signal_emit(win->o_main, "e,state,entry_show", "e");
}
static void
_evry_list_win_clear(int hide)
{
if (!list->visible) return;
if (!win->visible) return;
if (selector->state)
_evry_view_clear(selector->state);
if (hide)
{
list->visible = EINA_FALSE;
edje_object_signal_emit(list->o_main, "e,state,list_hide", "e");
win->visible = EINA_FALSE;
edje_object_signal_emit(win->o_main, "e,state,list_hide", "e");
if (evry_conf->hide_input &&
(!selector->state || !selector->state->input ||
strlen(selector->state->input) == 0))
edje_object_signal_emit(list->o_main, "e,state,entry_hide", "e");
edje_object_signal_emit(win->o_main, "e,state,entry_hide", "e");
}
}
@ -782,6 +674,10 @@ _evry_window_new(E_Zone *zone)
mw = evry_conf->width;
evry_conf->width = mw;
evry_conf->min_h = mh;
if (evry_conf->height > mh)
mh = evry_conf->height;
mw += offset_s*2;
mh += offset_s*2;
x = (zone->w * evry_conf->rel_x) - (mw / 2);
@ -866,7 +762,7 @@ _evry_selector_free(Evry_Selector *sel)
if (sel->o_main)
evas_object_del(sel->o_main);
if (list->visible && (sel == selector))
if (win->visible && (sel == selector))
_evry_view_clear(sel->state);
while (sel->states)
@ -1110,7 +1006,7 @@ static void
_evry_list_win_update(Evry_State *s)
{
if (s != selector->state) return;
if (!list->visible) return;
if (!win->visible) return;
/* if (s->changed) */
_evry_view_update(s, s->plugin);
@ -1360,9 +1256,9 @@ evry_browse_item(Evry_Selector *sel)
_evry_selector_update(sel);
if (view && list->visible)
if (view && win->visible)
{
s->view = view->create(view, s, list->o_main);
s->view = view->create(view, s, win->o_main);
if (s->view)
{
_evry_view_show(s->view);
@ -1402,7 +1298,7 @@ _evry_selectors_switch(int dir)
{
Evry_State *s = selector->state;
if (_show_timer)
if (show_timer)
_cb_show_timer(NULL);
if (selector->update_timer)
@ -1646,7 +1542,7 @@ _evry_cb_key_down(void *data __UNUSED__, int type __UNUSED__, void *event)
ev->key = key;
}
if (!list->visible && (!strcmp(key, "Down")))
if (!win->visible && (!strcmp(key, "Down")))
{
_evry_list_win_show();
}
@ -1779,17 +1675,15 @@ _evry_backspace(Evry_Selector *sel)
static void
_evry_update_text_label(Evry_State *s)
{
if (!list->visible && evry_conf->hide_input)
if (!win->visible && evry_conf->hide_input)
{
if (strlen(s->inp) > 0)
edje_object_signal_emit(list->o_main, "e,state,entry_show", "e");
edje_object_signal_emit(win->o_main, "e,state,entry_show", "e");
else
edje_object_signal_emit(list->o_main, "e,state,entry_hide", "e");
edje_object_signal_emit(win->o_main, "e,state,entry_hide", "e");
}
edje_object_part_text_set(win->o_main, "e.text.label", s->inp);
edje_object_part_text_set(list->o_main, "e.text.label", s->inp);
}
static void
@ -1807,7 +1701,7 @@ _evry_update(Evry_Selector *sel, int fetch)
sel->update_timer =
ecore_timer_add(MATCH_LAG, _evry_cb_update_timer, sel);
edje_object_signal_emit(list->o_main, "e,signal,update", "e");
edje_object_signal_emit(win->o_main, "e,signal,update", "e");
}
}
@ -1845,8 +1739,8 @@ _evry_clear(Evry_Selector *sel)
_evry_update(sel, 1);
if (!list->visible && evry_conf->hide_input)
edje_object_signal_emit(list->o_main, "e,state,entry_hide", "e");
if (!win->visible && evry_conf->hide_input)
edje_object_signal_emit(win->o_main, "e,state,entry_hide", "e");
return 1;
}
@ -2010,13 +1904,13 @@ _evry_view_show(Evry_View *v)
if (v->o_list)
{
edje_object_part_swallow(list->o_main, "e.swallow.list", v->o_list);
edje_object_part_swallow(win->o_main, "e.swallow.list", v->o_list);
evas_object_show(v->o_list);
}
if (v->o_bar)
{
edje_object_part_swallow(list->o_main, "e.swallow.bar", v->o_bar);
edje_object_part_swallow(win->o_main, "e.swallow.bar", v->o_bar);
evas_object_show(v->o_bar);
}
}
@ -2030,13 +1924,13 @@ _evry_view_hide(Evry_View *v, int slide)
if (v->o_list)
{
edje_object_part_unswallow(list->o_main, v->o_list);
edje_object_part_unswallow(win->o_main, v->o_list);
evas_object_hide(v->o_list);
}
if (v->o_bar)
{
edje_object_part_unswallow(list->o_main, v->o_bar);
edje_object_part_unswallow(win->o_main, v->o_bar);
evas_object_hide(v->o_bar);
}
}
@ -2044,12 +1938,12 @@ _evry_view_hide(Evry_View *v, int slide)
static void
_evry_view_update(Evry_State *s, Evry_Plugin *p)
{
if (!list->visible) return;
if (!win->visible) return;
if (!s->view)
{
Evry_View *view = evry_conf->views->data;
s->view = view->create(view, s, list->o_main);
s->view = view->create(view, s, win->o_main);
_evry_view_show(s->view);
}
@ -2086,7 +1980,7 @@ _evry_view_toggle(Evry_State *s, const char *trigger)
{
if (view->trigger && !strncmp(trigger, view->trigger, 1) &&
(!s->view || (view->id != s->view->id)) &&
(v = view->create(view, s, list->o_main)))
(v = view->create(view, s, win->o_main)))
{
triggered = EINA_TRUE;
goto found;
@ -2100,7 +1994,7 @@ _evry_view_toggle(Evry_State *s, const char *trigger)
else
{
view = evry_conf->views->data;
v = view->create(view, s, list->o_main);
v = view->create(view, s, win->o_main);
goto found;
}
@ -2113,7 +2007,7 @@ _evry_view_toggle(Evry_State *s, const char *trigger)
{
if ((!view->trigger) &&
((!s->view || (view->id != s->view->id)) &&
(v = view->create(view, s, list->o_main))))
(v = view->create(view, s, win->o_main))))
goto found;
}
}

View File

@ -1326,7 +1326,7 @@ _cb_key_down(Evry_View *view, const Ecore_Event_Key *ev)
}
goto end;
}
else if (!strcmp(key, "Return"))
else if (!ev->modifiers && !strcmp(key, "Return"))
{
if (v->mode == VIEW_MODE_THUMB)
{