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 { group {
name: "e/modules/everything/main"; name: "e/modules/everything/main";
images { images {
image: "base_bg.png" COMP; image: "base_bg.png" COMP;
image: "inset_sunk.png" COMP; image: "inset_sunk.png" COMP;
image: "menu_sel_bg.png" COMP; image: "menu_sel_bg.png" COMP;
image: "menu_sel_fg.png" COMP; image: "menu_sel_fg.png" COMP;
image: "everything_drop.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: "shaped" "1";
data.item: "shadow_offset" "50"; data.item: "shadow_offset" "50";
parts { parts {
part { part {
name: "win"; name: "win";
type: RECT; type: RECT;
description { description {
state: "default" 0.0; state: "default" 0.0;
visible: 0; visible: 0;
min: 386 118; min: 386 118;
} rel2.relative: 1.0 0.0;
} rel2.offset: -1 118;
part { }
name: "frame"; description {
type: RECT; state: "composite" 0.0;
description { visible: 0;
state: "default" 0.0; min: 486 218;
visible: 0; rel2.relative: 1.0 0.0;
} rel2.offset: -1 218;
description { }
state: "composite" 0.0; }
visible: 0; part {
rel1.offset: 50 50; name: "frame";
rel2.offset: -50 -51; type: RECT;
} description {
} state: "default" 0.0;
part { visible: 0;
name: "shadow"; rel1.to: "win";
description { rel2.to: "win";
state: "default" 0.0; }
visible: 0; description {
image { state: "composite" 0.0;
normal: "everything_drop.png"; inherit: "default" 0.0;
middle: 0; rel1.offset: 50 50;
border: 50 50 50 50; rel2.offset: -50 -51;
} }
rel1.offset: 4 4; }
rel2.offset: -5 -5; part {
fill.smooth: 0; name: "shadow";
color: 255 255 255 220; description {
} state: "default" 0.0;
description { visible: 0;
state: "composite" 0.0; image {
inherit: "default" 0.0; normal: "everything_drop.png";
visible: 1; middle: 0;
} border: 50 50 50 50;
} }
part { rel1.to: "win";
name: "bg"; rel2.to: "win";
description {
state: "default" 0.0; 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; max: 999 118;
rel1.to: "frame";
rel2.to: "frame";
image { image {
normal: "bt_base2.png"; normal: "bt_base2.png";
border: 7 7 5 5; border: 7 7 5 5;
} }
} }
description {
state: "composite" 0.0;
inherit: "default" 0.0;
rel1.offset: 50 50;
rel2.offset: -50 -51;
}
} }
part { part {
name: "border_bg"; name: "border_bg";
@ -32863,7 +32877,6 @@ collections {
description { description {
state: "default" 0.0; state: "default" 0.0;
color: 255 255 255 66; color: 255 255 255 66;
//32;
rel1.to: "bg"; rel1.to: "bg";
rel1.offset: 2 4; rel1.offset: 2 4;
rel2.to: "bg"; 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 { /*************** list ***************/
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 {
part { part {
name: "win"; name: "list_win";
type: RECT; type: RECT;
description { description {
state: "default" 0.0; state: "default" 0.0;
visible: 0; visible: 0;
min: 400 255; min: 400 255;
rel1 {
to_y: "frame";
offset: 10 -3;
relative: 0.0 1.0;
}
rel2 {
offset: -11 -1;
}
} }
} }
part { part {
name: "frame"; name: "list_frame";
type: RECT; type: RECT;
description { description {
state: "default" 0.0; state: "default" 0.0;
visible: 0; visible: 0;
rel1.to: "list_win";
rel2.to: "list_win";
} }
description { description {
state: "composite" 0.0; state: "composite" 0.0;
visible: 0; inherit: "default" 0.0;
rel1.offset: 50 0; rel1.offset: 50 0;
rel2.offset: -51 -40; rel2.offset: -51 -40;
} }
@ -33325,8 +33067,8 @@ collections {
type: RECT; type: RECT;
description { description {
state: "default" 0.0; state: "default" 0.0;
rel1.to: "shadow"; rel1.to: "list_shadow";
rel2.to: "shadow"; rel2.to: "list_shadow";
color: 255 255 255 0; color: 255 255 255 0;
} }
description { description {
@ -33336,16 +33078,17 @@ collections {
} }
} }
part { part {
name: "shadow"; name: "list_shadow";
clip_to: "shadow_clip"; clip_to: "shadow_clip";
description { description {
state: "default" 0.0; state: "default" 0.0;
visible: 0; visible: 0;
rel1.to: "list_win";
rel1.offset: 0 -50; rel1.offset: 0 -50;
rel2 { rel2 {
relative: 1.0 1.0; relative: 1.0 1.0;
to_y: "base"; to: "base";
offset: -1 47; offset: 47 47;
} }
image { image {
normal: "everything_drop.png"; normal: "everything_drop.png";
@ -33367,11 +33110,11 @@ collections {
state: "default" 0.0; state: "default" 0.0;
rel1 { rel1 {
relative: 0.0 1.0; relative: 0.0 1.0;
to_x: "frame"; to_x: "list_frame";
to_y: "input_base"; to_y: "input_base";
} }
rel2 { rel2 {
to_x: "frame"; to_x: "list_frame";
to_y: "input_base"; to_y: "input_base";
} }
} }
@ -33379,7 +33122,7 @@ collections {
state: "visible" 0.0; state: "visible" 0.0;
inherit: "default" 0.0; inherit: "default" 0.0;
rel2 { rel2 {
to: "frame"; to: "list_frame";
offset: -1 -1; offset: -1 -1;
} }
} }
@ -33389,11 +33132,16 @@ collections {
type: RECT; type: RECT;
description { description {
state: "default" 0.0; state: "default" 0.0;
rel1.to_x: "base"; rel1 {
to_y: "list_win";
to_x: "base";
}
rel2 { rel2 {
relative: 1.0 0.0; relative: 1.0 0.0;
to_x: "base"; to_y: "list_win";
offset: -1 1; to_x: "base";
offset: -1 1;
} }
} }
description { description {
@ -33403,7 +33151,7 @@ collections {
} }
} }
part { part {
name: "bg"; name: "list_win_bg";
type: RECT; type: RECT;
description { description {
state: "default" 0.0; state: "default" 0.0;
@ -33412,12 +33160,6 @@ collections {
rel2.to: "base"; rel2.to: "base";
rel2.offset: -1 -3; rel2.offset: -1 -3;
/* image {
* normal: "base_bg.png";
* border: 2 2 2 2;
* }
* fill.smooth: 1; */
color: 225 225 225 255; color: 225 225 225 255;
} }
} }
@ -33736,7 +33478,7 @@ collections {
description { description {
state: "default" 0.0; state: "default" 0.0;
rel1 { rel1 {
to_x: "base"; to: "base";
} }
rel2 { rel2 {
to: "base"; to: "base";
@ -33753,6 +33495,37 @@ collections {
} }
} }
programs { 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 { program {
name: "show_list"; name: "show_list";
signal: "e,state,list_show"; signal: "e,state,list_show";
@ -33808,16 +33581,237 @@ collections {
/* transition: SINUSOIDAL 0.15; */ /* transition: SINUSOIDAL 0.15; */
target: "bar_clip"; 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 { program {
name: "composite_mode"; name: "sel";
signal: "e,state,composited"; signal: "e,state,selected";
source: "e"; source: "e";
action: STATE_SET "composite" 0.0; action: STATE_SET "selected" 0.0;
target: "shadow"; transition: SINUSOIDAL 0.2;
target: "frame"; 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 { group {
name: "e/modules/everything/tab_item"; name: "e/modules/everything/tab_item";
images { images {

View File

@ -7,14 +7,13 @@
*/ */
#define INPUTLEN 256 #define INPUTLEN 256
#define MATCH_LAG 0.15 #define MATCH_LAG 0.25
#define INITIAL_MATCH_LAG 0.3 #define INITIAL_MATCH_LAG 0.4
/* #undef DBG /* #undef DBG
* #define DBG(...) ERR(__VA_ARGS__) */ * #define DBG(...) ERR(__VA_ARGS__) */
typedef struct _Evry_Window Evry_Window; typedef struct _Evry_Window Evry_Window;
typedef struct _Evry_List_Window Evry_List_Window;
struct _Evry_Window struct _Evry_Window
{ {
@ -23,13 +22,8 @@ struct _Evry_Window
Eina_Bool request_selection; Eina_Bool request_selection;
Eina_Bool plugin_dedicated; Eina_Bool plugin_dedicated;
};
struct _Evry_List_Window Eina_Bool visible;
{
E_Popup *popup;
Evas_Object *o_main;
Eina_Bool visible;
}; };
static void _evry_matches_update(Evry_Selector *sel, int async); 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 Evry_Window *_evry_window_new(E_Zone *zone);
static void _evry_window_free(Evry_Window *win); 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_show(void);
static void _evry_list_win_update(Evry_State *s); static void _evry_list_win_update(Evry_State *s);
static void _evry_list_win_clear(int hide); 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 */ /* local subsystem globals */
static Evry_Window *win = NULL; static Evry_Window *win = NULL;
static Evry_List_Window *list = NULL;
static Ecore_X_Window input_window = 0; static Ecore_X_Window input_window = 0;
static Eina_List *handlers = NULL; static Eina_List *handlers = NULL;
static Evry_Selector *selector = NULL; static Evry_Selector *selector = NULL;
static Ecore_Timer *show_timer = NULL;
Evry_Selector **selectors = NULL; Evry_Selector **selectors = NULL;
@ -126,12 +117,10 @@ _evry_cb_item_changed(void *data, int type, void *event)
return 1; return 1;
} }
static Ecore_Timer *_show_timer = NULL;
static int static int
_cb_show_timer(void *data) _cb_show_timer(void *data)
{ {
_show_timer = NULL; show_timer = NULL;
if (evry_conf->views && selector->state) if (evry_conf->views && selector->state)
{ {
@ -145,7 +134,7 @@ _cb_show_timer(void *data)
} }
else else
{ {
s->view = view->create(view, s, list->o_main); s->view = view->create(view, s, win->o_main);
_evry_view_show(s->view); _evry_view_show(s->view);
} }
} }
@ -162,6 +151,9 @@ _cb_show_timer(void *data)
int int
evry_show(E_Zone *zone, const char *params) 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) if (win)
{ {
Eina_List *l; Eina_List *l;
@ -182,23 +174,24 @@ evry_show(E_Zone *zone, const char *params)
return 1; 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, input_window = ecore_x_window_input_new(zone->container->win,
zone->x, zone->y, zone->x, zone->y,
zone->w, zone->h); zone->w, zone->h);
ecore_x_window_show(input_window); ecore_x_window_show(input_window);
if (!e_grabinput_get(input_window, 1, input_window)) if (!e_grabinput_get(input_window, 1, input_window))
goto error1; {
return 0;
}
win = _evry_window_new(zone); 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); win->visible = EINA_FALSE;
if (!list) goto error2;
list->visible = EINA_FALSE;
evry_history_load(); evry_history_load();
@ -222,36 +215,20 @@ evry_show(E_Zone *zone, const char *params)
(EVRY_EVENT_ITEM_CHANGED, (EVRY_EVENT_ITEM_CHANGED,
_evry_cb_item_changed, NULL)); _evry_cb_item_changed, NULL));
e_popup_layer_set(list->popup, 255);
e_popup_layer_set(win->popup, 255); e_popup_layer_set(win->popup, 255);
e_popup_show(win->popup); e_popup_show(win->popup);
e_popup_show(list->popup);
_evry_selector_subjects_get(params); _evry_selector_subjects_get(params);
_evry_selector_update(selectors[0]); _evry_selector_update(selectors[0]);
_evry_selector_activate(selectors[0]); _evry_selector_activate(selectors[0]);
if (!evry_conf->hide_input) 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) 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; 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 void
@ -295,12 +272,11 @@ evry_hide(int clear)
return; return;
} }
/* _evry_view_clear(selector->state); */ if (show_timer)
if (_show_timer) ecore_timer_del(show_timer);
ecore_timer_del(_show_timer); show_timer = NULL;
_show_timer = NULL;
list->visible = EINA_FALSE; win->visible = EINA_FALSE;
_evry_selector_free(selectors[0]); _evry_selector_free(selectors[0]);
_evry_selector_free(selectors[1]); _evry_selector_free(selectors[1]);
_evry_selector_free(selectors[2]); _evry_selector_free(selectors[2]);
@ -309,9 +285,6 @@ evry_hide(int clear)
selectors = NULL; selectors = NULL;
selector = NULL; selector = NULL;
_evry_list_win_free(list);
list = NULL;
_evry_window_free(win); _evry_window_free(win);
win = NULL; win = NULL;
@ -466,7 +439,6 @@ _evry_selector_update_actions(Evry_Selector *sel)
if (sel->update_timer) if (sel->update_timer)
ecore_timer_del(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); 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 EAPI int
evry_list_win_show(void) evry_list_win_show(void)
{ {
if (list->visible) return 0; if (win->visible) return 0;
_evry_list_win_show(); _evry_list_win_show();
return 1; return 1;
@ -628,114 +600,34 @@ evry_plugin_update(Evry_Plugin *p, int action)
/* local subsystem functions */ /* 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 static void
_evry_list_win_show(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); _evry_list_win_update(selector->state);
edje_object_signal_emit(list->o_main, "e,state,list_show", "e"); edje_object_signal_emit(win->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,entry_show", "e");
} }
static void static void
_evry_list_win_clear(int hide) _evry_list_win_clear(int hide)
{ {
if (!list->visible) return; if (!win->visible) return;
if (selector->state) if (selector->state)
_evry_view_clear(selector->state); _evry_view_clear(selector->state);
if (hide) if (hide)
{ {
list->visible = EINA_FALSE; win->visible = EINA_FALSE;
edje_object_signal_emit(list->o_main, "e,state,list_hide", "e"); edje_object_signal_emit(win->o_main, "e,state,list_hide", "e");
if (evry_conf->hide_input && if (evry_conf->hide_input &&
(!selector->state || !selector->state->input || (!selector->state || !selector->state->input ||
strlen(selector->state->input) == 0)) 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; mw = evry_conf->width;
evry_conf->width = mw; evry_conf->width = mw;
evry_conf->min_h = mh;
if (evry_conf->height > mh)
mh = evry_conf->height;
mw += offset_s*2; mw += offset_s*2;
mh += offset_s*2; mh += offset_s*2;
x = (zone->w * evry_conf->rel_x) - (mw / 2); x = (zone->w * evry_conf->rel_x) - (mw / 2);
@ -866,7 +762,7 @@ _evry_selector_free(Evry_Selector *sel)
if (sel->o_main) if (sel->o_main)
evas_object_del(sel->o_main); evas_object_del(sel->o_main);
if (list->visible && (sel == selector)) if (win->visible && (sel == selector))
_evry_view_clear(sel->state); _evry_view_clear(sel->state);
while (sel->states) while (sel->states)
@ -1110,7 +1006,7 @@ static void
_evry_list_win_update(Evry_State *s) _evry_list_win_update(Evry_State *s)
{ {
if (s != selector->state) return; if (s != selector->state) return;
if (!list->visible) return; if (!win->visible) return;
/* if (s->changed) */ /* if (s->changed) */
_evry_view_update(s, s->plugin); _evry_view_update(s, s->plugin);
@ -1360,9 +1256,9 @@ evry_browse_item(Evry_Selector *sel)
_evry_selector_update(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) if (s->view)
{ {
_evry_view_show(s->view); _evry_view_show(s->view);
@ -1402,7 +1298,7 @@ _evry_selectors_switch(int dir)
{ {
Evry_State *s = selector->state; Evry_State *s = selector->state;
if (_show_timer) if (show_timer)
_cb_show_timer(NULL); _cb_show_timer(NULL);
if (selector->update_timer) if (selector->update_timer)
@ -1646,7 +1542,7 @@ _evry_cb_key_down(void *data __UNUSED__, int type __UNUSED__, void *event)
ev->key = key; ev->key = key;
} }
if (!list->visible && (!strcmp(key, "Down"))) if (!win->visible && (!strcmp(key, "Down")))
{ {
_evry_list_win_show(); _evry_list_win_show();
} }
@ -1779,17 +1675,15 @@ _evry_backspace(Evry_Selector *sel)
static void static void
_evry_update_text_label(Evry_State *s) _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) 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 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(win->o_main, "e.text.label", s->inp);
edje_object_part_text_set(list->o_main, "e.text.label", s->inp);
} }
static void static void
@ -1807,7 +1701,7 @@ _evry_update(Evry_Selector *sel, int fetch)
sel->update_timer = sel->update_timer =
ecore_timer_add(MATCH_LAG, _evry_cb_update_timer, sel); 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); _evry_update(sel, 1);
if (!list->visible && evry_conf->hide_input) if (!win->visible && evry_conf->hide_input)
edje_object_signal_emit(list->o_main, "e,state,entry_hide", "e"); edje_object_signal_emit(win->o_main, "e,state,entry_hide", "e");
return 1; return 1;
} }
@ -2010,13 +1904,13 @@ _evry_view_show(Evry_View *v)
if (v->o_list) 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); evas_object_show(v->o_list);
} }
if (v->o_bar) 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); evas_object_show(v->o_bar);
} }
} }
@ -2030,13 +1924,13 @@ _evry_view_hide(Evry_View *v, int slide)
if (v->o_list) 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); evas_object_hide(v->o_list);
} }
if (v->o_bar) 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); evas_object_hide(v->o_bar);
} }
} }
@ -2044,12 +1938,12 @@ _evry_view_hide(Evry_View *v, int slide)
static void static void
_evry_view_update(Evry_State *s, Evry_Plugin *p) _evry_view_update(Evry_State *s, Evry_Plugin *p)
{ {
if (!list->visible) return; if (!win->visible) return;
if (!s->view) if (!s->view)
{ {
Evry_View *view = evry_conf->views->data; 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); _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) && if (view->trigger && !strncmp(trigger, view->trigger, 1) &&
(!s->view || (view->id != s->view->id)) && (!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; triggered = EINA_TRUE;
goto found; goto found;
@ -2100,7 +1994,7 @@ _evry_view_toggle(Evry_State *s, const char *trigger)
else else
{ {
view = evry_conf->views->data; view = evry_conf->views->data;
v = view->create(view, s, list->o_main); v = view->create(view, s, win->o_main);
goto found; goto found;
} }
@ -2113,7 +2007,7 @@ _evry_view_toggle(Evry_State *s, const char *trigger)
{ {
if ((!view->trigger) && if ((!view->trigger) &&
((!s->view || (view->id != s->view->id)) && ((!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; goto found;
} }
} }

View File

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