d = e_exehist_mime_desktop_get(mime);
if (d)
{
- if (d2 = eina_list_data_find(p->apps_mime, d))
+ if ((d2 = eina_list_data_find(p->apps_mime, d)))
{
p->apps_mime = eina_list_remove(p->apps_mime, d2);
efreet_desktop_free(d2);
if (!exe) return NULL;
- if (app = eina_hash_find(p->added, exe))
+ if ((app = eina_hash_find(p->added, exe)))
{
if (!desktop || (!app->desktop) ||
(desktop == app->desktop) ||
Eina_List *l, *ll, *previous;
Efreet_Desktop *desktop;
Evry_Item *it;
- char *file;
- int prio = 0;
- int len = input ? strlen(input) : 0;
+
plugin->changed = 0;
previous = plugin->items;
plugin->items = NULL;
- /* EVRY_PLUGIN_ITEMS_CLEAR(p); */
-
/* add apps for a given mimetype */
if (plugin->type == type_action)
_add_desktop_list(p, p->apps_mime, input);
if (!p->apps_all)
{
Eina_List *apps = NULL;
- Eina_List *cat_ss, *cat_app, *cat_sys, *cat_set;
+ Eina_List *cat_ss;
Eina_List *l, *ll;
apps = efreet_util_desktop_name_glob_list("*");
{
Data *d = data;
Plugin *p = d->plugin;
- Eina_List *files;
char *filename;
const char *mime;
static Evry_Plugin *p2 = NULL;
static Inst *inst = NULL;
-static Evry_Action *act = NULL;
static void
_act_cb_border_switch_to(E_Border *bd)
Evry_View *(*create) (Evry_View *view, const Evry_State *s, const Evas_Object *swallow);
void (*destroy) (Evry_View *view);
int (*cb_key_down) (Evry_View *view, const Ecore_Event_Key *ev);
- int (*update) (Evry_View *view);
- void (*clear) (Evry_View *view);
+ int (*update) (Evry_View *view, int slide);
+ void (*clear) (Evry_View *view, int slide);
int priority;
};
EAPI void *
e_modapi_init(E_Module *m)
{
- Eina_List *files;
- char buf[4096], dir[4096];
- char *file;
-
- /* snprintf(buf, sizeof(buf), "%s/.e/e/config/%s/module.everything",
- * e_user_homedir_get(), e_config_profile_get());
- * ecore_file_mkdir(buf); */
-
_e_module_evry_log_dom = eina_log_domain_register
("e_module_everything", EINA_LOG_DEFAULT_COLOR);
return 1;
- error3:
- if (selectors && selectors[0])
- _evry_selector_free(selectors[0]);
- if (selectors && selectors[1])
- _evry_selector_free(selectors[1]);
- if (selectors && selectors[2])
- _evry_selector_free(selectors[2]);
-
- evry_history_unload();
-
error2:
if (win)
_evry_window_free(win);
}
static Evry_Selector *
-_selector_for_plugin_get(Evry_Plugin *p)
+_evry_selector_for_plugin_get(Evry_Plugin *p)
{
Evry_State *s;
int i;
DBG("plugin: %s", p->name);
- sel = _selector_for_plugin_get(p);
+ sel = _evry_selector_for_plugin_get(p);
if (!sel || !sel->state) return;
s = sel->state;
if (!eina_list_data_find(s->cur_plugins, p)) return;
s->cur_plugins = eina_list_remove(s->cur_plugins, p);
-
+
if (s->plugin == p)
_evry_plugin_select(s, NULL);
}
{
_evry_selector_update(sel);
}
-
+
_evry_view_update(s, NULL);
}
else if (action == EVRY_ASYNC_UPDATE_REFRESH)
if (evry_conf->width > mw)
mw = evry_conf->width;
-
+ evry_conf->width = mw;
+
mw += offset_s*2;
mh += offset_s*2;
x = (zone->w * evry_conf->rel_x) - (mw / 2);
if (s && s->view)
{
- s->view->clear(s->view);
+ s->view->clear(s->view, 0);
_evry_view_hide(s->view);
}
{
s = sel->state;
if (s->view)
- s->view->update(s->view);
+ s->view->update(s->view, 0);
else
_evry_view_update(s, NULL);
}
if (s->plugin && (!it || s->item_auto_selected))
{
- Eina_List *l;
it = NULL;
/* get first item */
if (s->view)
{
_evry_view_show(s->view);
- s->view->update(s->view);
+ s->view->update(s->view, -1);
}
}
_evry_selector_update(sel);
_evry_update_text_label(s);
_evry_view_show(s->view);
+ s->view->update(s->view, 1);
}
static void
if (s->plugin == selector->aggregator)
selector->aggregator->fetch(selector->aggregator, s->input);
if (s->view)
- s->view->update(s->view);
+ s->view->update(s->view, 0);
}
else if (ev->modifiers & ECORE_EVENT_MODIFIER_CTRL)
{
}
if (s->view)
- s->view->update(s->view);
+ s->view->update(s->view, 0);
}
static void
{
if (!s || !s->view) return;
- s->view->clear(s->view);
+ s->view->clear(s->view, 0);
}
static int
s->view = v;
_evry_view_show(s->view);
- view->update(s->view);
+ view->update(s->view, 0);
return 1;
}
{
_evry_plugin_select((Evry_State *) s, p);
- _evry_selector_update(selector);
+ _evry_selector_update(_evry_selector_for_plugin_get(p));
}
static void
static void
_fill_data(E_Config_Dialog_Data *cfdata)
{
- Eina_List *l;
- Evry_Plugin *p;
-
#define C(_name) cfdata->_name = evry_conf->_name
C(height);
C(width);
E_FREE(cfdata);
}
-static int
-_evry_cb_plugin_sort(const void *data1, const void *data2)
-{
- const Evry_Plugin *p1 = data1;
- const Evry_Plugin *p2 = data2;
- return p1->config->priority - p2->config->priority;
-}
+/* static int
+ * _evry_cb_plugin_sort(const void *data1, const void *data2)
+ * {
+ * const Evry_Plugin *p1 = data1;
+ * const Evry_Plugin *p2 = data2;
+ * return p1->config->priority - p2->config->priority;
+ * } */
static int
_basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
EINA_LIST_FOREACH(evry_conf->actions, l, act)
{
- if (!act->type_in1 || (act->type_in1 == type) &&
- (!act->check_item || act->check_item(act, it)))
+ if ((!act->type_in1) ||
+ ((act->type_in1 == type) && (!act->check_item || act->check_item(act, it))))
{
act->item1 = it;
typedef struct _Plugin Plugin;
-static int _auto_selected;
-
struct _Plugin
{
Evry_Plugin base;
{
const Evry_Item *it1 = data1;
const Evry_Item *it2 = data2;
-
- if (!_auto_selected)
- {
- if (it1->selected)
- return -1;
- if (it2->selected)
- return 1;
- }
if (it1->usage && it2->usage)
return (it1->usage > it2->usage ? -1 : 1);
return strcasecmp(it1->label, it2->label);
}
-static int refs = 0;
-
static inline Eina_List *
_add_item(Plugin *p, Eina_List *items, Evry_Item *it)
{
if (items) eina_list_free(items);
- /* XXX workaround */
- _auto_selected = p->selector->state->item_auto_selected;
-
if (input)
{
EVRY_PLUGIN_ITEMS_SORT(p, _cb_sort);
static Evas_Object *o_text = NULL;
static void
-_view_clear(Evry_View *v)
+_view_clear(Evry_View *v, int slide)
{
v->active = 0;
evas_object_del(v->o_list);
static int
-_view_update(Evry_View *v)
+_view_update(Evry_View *v, int slide)
{
return 1;
}
Evas_Object *selector;
+ double last_select;
double sel_pos_to;
double sel_pos;
double scroll_align;
double scroll_align_to;
Ecore_Animator *animator;
- double last_select;
+ int slide_offset;
+ double slide;
+ double slide_to;
+ int sliding;
};
struct _Item
{
Smart_Data *sd = evas_object_smart_data_get(data);
double da;
- double spd = (25.0 / (double)e_config->framerate) / (double) (1 + sd->view->zoom);
+ double spd = (25.0/(double)e_config->framerate) / (double) (1 + sd->view->zoom);
+ if (sd->sliding) spd *= 2.0;
+ if (spd > 0.9) spd = 0.9;
+
int wait = 0;
if (sd->sel_pos != sd->sel_pos_to)
e_scrollframe_child_pos_set(sd->view->sframe, 0, sd->scroll_align);
}
+ if (sd->sliding)
+ {
+ sd->slide = (sd->slide * (1.0 - spd)) + (sd->slide_to * spd);
+
+ da = sd->slide - sd->slide_to;
+ if (da < 0.0) da = -da;
+ if (da < 0.02)
+ {
+ sd->slide = sd->slide_to;
+ sd->sliding = 0;
+ }
+
+ else
+ wait++;
+
+ evas_object_move(sd->view->span, sd->slide, sd->y);
+ }
+
if (wait) return 1;
sd->animator = NULL;
if (!scroll || !evry_conf->scroll_animate)
{
+ sd->scroll_align = sd->scroll_align_to;
+ sd->sel_pos = sd->sel_pos_to;
+
if (align_to >= 0)
- sd->sel_pos = align_to * it->h;
+ {
+ sd->sel_pos = align_to * it->h;
+ sd->sel_pos_to = sd->sel_pos;
+ }
+
if (align >= 0)
{
sd->scroll_align = align;
+ sd->scroll_align_to = align;
e_scrollframe_child_pos_set(sd->view->sframe, 0, sd->scroll_align);
}
if (sd->animator)
}
static void
-_view_clear(Evry_View *view)
+_view_clear(Evry_View *view, int slide)
{
View *v = (View*) view;
Smart_Data *sd = evas_object_smart_data_get(v->span);
}
static int
-_view_update(Evry_View *view)
+_view_update(Evry_View *view, int slide)
{
VIEW(v, view);
Smart_Data *sd = evas_object_smart_data_get(v->span);
if (!p)
{
- _view_clear(view);
+ _view_clear(view, 0);
return 1;
}
v->plugin = p;
sd->update = EINA_TRUE;
+
_update_frame(v->span);
}
v->tabs->update(v->tabs);
+ if (evry_conf->scroll_animate)
+ {
+ if (slide)
+ {
+ if (!sd->animator)
+ sd->animator = ecore_animator_add(_animator, v->span);
+ sd->sliding = 1;
+ sd->slide_to = sd->x;
+ sd->slide = sd->x + sd->w * -slide;
+ }
+ else if (sd->sliding)
+ {
+ if (!sd->animator)
+ sd->animator = ecore_animator_add(_animator, v->span);
+ }
+ }
+
return 0;
}
if (v->tabs->key_down(v->tabs, ev))
{
- _view_update(view);
+ _view_update(view, 0);
return 1;
}
_pan_set, _pan_get, _pan_max_get,
_pan_child_size_get);
edje_object_part_swallow(v->bg, "e.swallow.list", v->sframe);
+
evas_object_show(v->sframe);
evas_object_show(v->span);
+
+ v->tabs = evry_tab_view_new(s, v->evas);
EVRY_VIEW(v)->o_list = v->bg;
-
- v->tabs = evry_tab_view_new(s, v->evas);
- v->view.o_bar = v->tabs->o_tabs;
+ EVRY_VIEW(v)->o_bar = v->tabs->o_tabs;
h = ecore_event_handler_add(EVRY_EVENT_ITEM_CHANGED, _cb_item_changed, v);
v->handlers = eina_list_append(v->handlers, h);
Tab_View *v = data;
double da;
- double spd = (25.0 / (double)e_config->framerate);
+ double spd = (35.0 / (double)e_config->framerate);
+ if (spd > 0.9) spd = 0.9;
int wait = 0;
if (v->align != v->align_to)
da = v->align - v->align_to;
if (da < 0.0) da = -da;
- if (da < 0.02)
+ if (da < 0.01)
v->align = v->align_to;
else
wait++;
e_box_align_set(v->o_tabs, 0.0, 0.5);
}
+static Ecore_Timer *timer = NULL;
+
+static void
+_tabs_update(Tab_View *v);
+
+
+static int
+_timer_cb(void *data)
+{
+ _tabs_update(data);
+
+ timer = NULL;
+ return 0;
+
+}
+
static void
_tabs_update(Tab_View *v)
{
Evry_Plugin *p;
const Evry_State *s = v->state;
Tab *tab;
- Evas_Coord w;
+ Evas_Coord w, x;
Evas_Object *o;
- /* evas_object_geometry_get(v->o_tabs, NULL, NULL, &w, NULL); */
- w = evry_conf->width - 22;
+ edje_object_calc_force(v->o_tabs);
+ evas_object_geometry_get(v->o_tabs, &x, NULL, &w, NULL);
+
+ if (!w && !timer)
+ timer = ecore_timer_add(0.1, _timer_cb, v);
+
+ /* if (w < evry_conf->width - 18)
+ * w = evry_conf->width - 18; */
+ printf("tabs update %d %d\n", x, w);
+
/* remove tabs for not active plugins */
e_box_freeze(v->o_tabs);
else if (!strcmp(key, "Prior"))
{
_plugin_prev(v);
- return 1;
+ return -1;
}
else if (ev->modifiers & ECORE_EVENT_MODIFIER_SHIFT)
{
if (!strcmp(key, "Left"))
{
_plugin_prev(v);
- return 1;
+ return -1;
}
else if (!strcmp(key, "Right"))
{
if (!strcmp(key, "Left"))
{
_plugin_prev(v);
- return 1;
+ return -1;
}
else if (!strcmp(key, "Right"))
{