forked from enlightenment/enlightenment
'everything' module:
- fix possible segv in evry_plug_config - enabled main menu augmentation - smooth scrolling is back SVN revision: 41007
This commit is contained in:
parent
c988a0b808
commit
6dfaaf5f10
|
@ -49,6 +49,8 @@ e_modapi_init(E_Module *m)
|
|||
E_CONFIG_VAL(D, T, height, INT);
|
||||
E_CONFIG_VAL(D, T, rel_x, DOUBLE);
|
||||
E_CONFIG_VAL(D, T, rel_y, DOUBLE);
|
||||
E_CONFIG_VAL(D, T, scroll_animate, INT);
|
||||
E_CONFIG_VAL(D, T, scroll_speed, DOUBLE);
|
||||
E_CONFIG_LIST(D, T, sources, conf_item_edd);
|
||||
#undef T
|
||||
#undef D
|
||||
|
@ -61,6 +63,8 @@ e_modapi_init(E_Module *m)
|
|||
evry_conf->rel_y = 50.0;
|
||||
evry_conf->width = 400;
|
||||
evry_conf->height = 350;
|
||||
evry_conf->scroll_animate = 1;
|
||||
evry_conf->scroll_speed = 0.5;
|
||||
}
|
||||
|
||||
conf_module = m;
|
||||
|
@ -78,8 +82,11 @@ e_modapi_init(E_Module *m)
|
|||
e_action_predef_name_set(_("Launch"), _("Run Everything Dialog"), "everything",
|
||||
NULL, NULL, 0);
|
||||
}
|
||||
/* maug = e_int_menus_menu_augmentation_add("main/1", _e_mod_menu_add, NULL, NULL, NULL); */
|
||||
|
||||
maug = e_int_menus_menu_augmentation_add("main/1", _e_mod_menu_add, NULL, NULL, NULL);
|
||||
|
||||
e_module_delayed_set(m, 1);
|
||||
|
||||
return m;
|
||||
}
|
||||
|
||||
|
@ -87,11 +94,11 @@ EAPI int
|
|||
e_modapi_shutdown(E_Module *m)
|
||||
{
|
||||
/* remove module-supplied menu additions */
|
||||
/* if (maug)
|
||||
* {
|
||||
* e_int_menus_menu_augmentation_del("main/1", maug);
|
||||
* maug = NULL;
|
||||
* } */
|
||||
if (maug)
|
||||
{
|
||||
e_int_menus_menu_augmentation_del("main/1", maug);
|
||||
maug = NULL;
|
||||
}
|
||||
/* remove module-supplied action */
|
||||
if (act)
|
||||
{
|
||||
|
@ -159,13 +166,13 @@ _e_mod_run_cb(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
}
|
||||
|
||||
/* menu item add hook */
|
||||
/* static void
|
||||
* _e_mod_menu_add(void *data, E_Menu *m)
|
||||
* {
|
||||
* E_Menu_Item *mi;
|
||||
*
|
||||
* mi = e_menu_item_new(m);
|
||||
* e_menu_item_label_set(mi, _("Run Command"));
|
||||
* e_util_menu_item_theme_icon_set(mi, "system-run");
|
||||
* e_menu_item_callback_set(mi, _e_mod_run_cb, NULL);
|
||||
* } */
|
||||
static void
|
||||
_e_mod_menu_add(void *data, E_Menu *m)
|
||||
{
|
||||
E_Menu_Item *mi;
|
||||
|
||||
mi = e_menu_item_new(m);
|
||||
e_menu_item_label_set(mi, _("Run Everything"));
|
||||
e_util_menu_item_theme_icon_set(mi, "system-run");
|
||||
e_menu_item_callback_set(mi, _e_mod_run_cb, NULL);
|
||||
}
|
||||
|
|
|
@ -22,6 +22,9 @@ struct _Config
|
|||
|
||||
/* generic plugin config */
|
||||
Eina_List *sources;
|
||||
|
||||
int scroll_animate;
|
||||
double scroll_speed;
|
||||
};
|
||||
|
||||
struct _Source_Config
|
||||
|
|
|
@ -31,6 +31,9 @@ static void _evry_item_sel(Evry_Item *it);
|
|||
static void _evry_item_remove(Evry_Item *it);
|
||||
static void _evry_action(int finished);
|
||||
static void _evry_cb_plugin_sel(void *data1, void *data2);
|
||||
static int _evry_animator(void *data);
|
||||
static int _evry_scroll_timer(void *data);
|
||||
|
||||
|
||||
/* local subsystem globals */
|
||||
static E_Popup *popup = NULL;
|
||||
|
@ -42,19 +45,20 @@ static Evas_Object *o_toolbar = NULL;
|
|||
static char *cmd_buf = NULL;
|
||||
static Eina_List *handlers = NULL;
|
||||
static Ecore_Timer *update_timer = NULL;
|
||||
static Eina_List *plugins = NULL;
|
||||
static int plugin_count;
|
||||
static Evry_Plugin *cur_source;
|
||||
|
||||
static Eina_List *sources = NULL;
|
||||
static Eina_List *cur_sources = NULL;
|
||||
static Evry_Plugin *cur_source;
|
||||
|
||||
static Evry_Item *item_selected = NULL;
|
||||
static Evry_Item *item_mouseover = NULL;
|
||||
|
||||
static int ev_last_is_mouse;
|
||||
/* static Ecore_Animator *animator = NULL; */
|
||||
static Ecore_Animator *scroll_animator = NULL;
|
||||
static Ecore_Timer *scroll_timer = NULL;
|
||||
static double scroll_align_to;
|
||||
static double scroll_align;
|
||||
|
||||
static int ev_last_is_mouse;
|
||||
|
||||
|
||||
/* externally accessible functions */
|
||||
|
@ -74,14 +78,14 @@ evry_shutdown(void)
|
|||
EAPI void
|
||||
evry_plugin_add(Evry_Plugin *plugin)
|
||||
{
|
||||
plugins = eina_list_append(plugins, plugin);
|
||||
sources = eina_list_append(sources, plugin);
|
||||
/* TODO sorting, initialization, etc */
|
||||
}
|
||||
|
||||
EAPI void
|
||||
evry_plugin_remove(Evry_Plugin *plugin)
|
||||
{
|
||||
plugins = eina_list_remove(plugins, plugin);
|
||||
sources = eina_list_remove(sources, plugin);
|
||||
/* cleanup */
|
||||
}
|
||||
|
||||
|
@ -195,13 +199,23 @@ evry_hide(void)
|
|||
ecore_timer_del(update_timer);
|
||||
update_timer = NULL;
|
||||
}
|
||||
if (scroll_timer)
|
||||
{
|
||||
ecore_timer_del(scroll_timer);
|
||||
scroll_timer = NULL;
|
||||
}
|
||||
if (scroll_animator)
|
||||
{
|
||||
ecore_animator_del(scroll_animator);
|
||||
scroll_animator = NULL;
|
||||
}
|
||||
|
||||
evas_event_freeze(popup->evas);
|
||||
_evry_matches_clear();
|
||||
e_popup_hide(popup);
|
||||
|
||||
e_box_freeze(o_list);
|
||||
EINA_LIST_FOREACH(plugins, l, plugin)
|
||||
EINA_LIST_FOREACH(sources, l, plugin)
|
||||
{
|
||||
plugin->cleanup();
|
||||
}
|
||||
|
@ -542,13 +556,14 @@ _evry_matches_update()
|
|||
Eina_List *l;
|
||||
char buf[64];
|
||||
int candidates;
|
||||
int plugin_count = 0;
|
||||
|
||||
_evry_matches_clear();
|
||||
plugin_count = 0;
|
||||
|
||||
eina_list_free(cur_sources);
|
||||
cur_sources = NULL;
|
||||
|
||||
EINA_LIST_FOREACH(plugins, l, plugin)
|
||||
EINA_LIST_FOREACH(sources, l, plugin)
|
||||
{
|
||||
if (strlen(cmd_buf) == 0)
|
||||
{
|
||||
|
@ -609,7 +624,7 @@ _evry_matches_clear(void)
|
|||
|
||||
_evry_list_clear();
|
||||
|
||||
EINA_LIST_FOREACH(plugins, l, plugin)
|
||||
EINA_LIST_FOREACH(sources, l, plugin)
|
||||
plugin->cleanup();
|
||||
}
|
||||
|
||||
|
@ -647,15 +662,14 @@ _evry_scroll_to(int i)
|
|||
if (n > 1)
|
||||
{
|
||||
scroll_align_to = (double)i / (double)(n - 1);
|
||||
/* if (e_config->everything_scroll_animate)
|
||||
* {
|
||||
* eap_scroll_to = 1;
|
||||
* if (!eap_scroll_timer)
|
||||
* eap_scroll_timer = ecore_timer_add(0.01, _evry_eap_scroll_timer, NULL);
|
||||
* if (!animator)
|
||||
* animator = ecore_animator_add(_evry_animator, NULL);
|
||||
* }
|
||||
* else */
|
||||
if (evry_conf->scroll_animate)
|
||||
{
|
||||
if (!scroll_timer)
|
||||
scroll_timer = ecore_timer_add(0.01, _evry_scroll_timer, NULL);
|
||||
if (!scroll_animator)
|
||||
scroll_animator = ecore_animator_add(_evry_animator, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
scroll_align = scroll_align_to;
|
||||
e_box_align_set(o_list, 0.5, 1.0 - scroll_align);
|
||||
|
@ -784,7 +798,7 @@ _evry_plugin_prev(void)
|
|||
|
||||
if (!cur_source) return;
|
||||
|
||||
l = eina_list_data_find_list(plugins, cur_source);
|
||||
l = eina_list_data_find_list(cur_sources, cur_source);
|
||||
|
||||
if (l && l->prev)
|
||||
{
|
||||
|
@ -801,3 +815,37 @@ _evry_plugin_prev(void)
|
|||
}
|
||||
}
|
||||
|
||||
static int
|
||||
_evry_scroll_timer(void *data)
|
||||
{
|
||||
if (scroll_animator)
|
||||
{
|
||||
double spd;
|
||||
|
||||
spd = evry_conf->scroll_speed;
|
||||
scroll_align = (scroll_align * (1.0 - spd)) + (scroll_align_to * spd);
|
||||
return 1;
|
||||
}
|
||||
scroll_timer = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
_evry_animator(void *data)
|
||||
{
|
||||
double da;
|
||||
int scroll_to = 1;
|
||||
|
||||
da = scroll_align - scroll_align_to;
|
||||
if (da < 0.0) da = -da;
|
||||
if (da < 0.01)
|
||||
{
|
||||
scroll_align = scroll_align_to;
|
||||
scroll_to = 0;
|
||||
}
|
||||
e_box_align_set(o_list, 0.5, 1.0 - scroll_align);
|
||||
if (scroll_to) return 1;
|
||||
scroll_animator = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -61,9 +61,6 @@ _evry_plug_config_action(Evry_Item *item)
|
|||
}
|
||||
}
|
||||
|
||||
printf("path: %s\n", buf);
|
||||
|
||||
|
||||
if (found)
|
||||
e_configure_registry_call(buf, con, NULL);
|
||||
|
||||
|
@ -140,7 +137,7 @@ static void
|
|||
_evry_plug_config_item_icon_get(Evry_Item *it, Evas *e)
|
||||
{
|
||||
E_Configure_It *eci = it->data;
|
||||
Evas_Object *o;
|
||||
Evas_Object *o = NULL;
|
||||
|
||||
if (eci->icon)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue