From 6a858f10db87efae128dbb7df9626a65f9cc7550 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Fri, 23 Apr 2010 20:48:22 +0000 Subject: [PATCH] 'everything' added configuration for triggers and views per plugin. SVN revision: 48256 --- src/modules/everything/Evry.h | 20 +- src/modules/everything/e_mod_main.c | 79 ++-- src/modules/everything/evry.c | 28 +- src/modules/everything/evry_config.c | 353 +++++++++++------- src/modules/everything/evry_plug_aggregator.c | 1 + src/modules/everything/evry_plug_view_thumb.c | 21 +- 6 files changed, 312 insertions(+), 190 deletions(-) diff --git a/src/modules/everything/Evry.h b/src/modules/everything/Evry.h index 77637ae85..d9c3b64cf 100644 --- a/src/modules/everything/Evry.h +++ b/src/modules/everything/Evry.h @@ -354,28 +354,15 @@ struct _Config struct _Plugin_Config { const char *name; - - int loaded; int enabled; - - /* minimum input chars to query this source */ - int min_query; - int priority; const char *trigger; + int trigger_only; - Evry_Plugin *plugin; - - Eina_Hash *settings; -}; - -struct _Plugin_Setting -{ - int type; - char *description; + int view_mode; - char *val; + Evry_Plugin *plugin; }; struct _History_Entry @@ -430,6 +417,7 @@ EAPI Eina_Bool evry_util_module_config_check(const char *module_name, int conf, /* e_mod_main.c */ +/* set plugin trigger and view mode first before register !*/ EAPI void evry_plugin_register(Evry_Plugin *p, int priority); EAPI void evry_plugin_unregister(Evry_Plugin *p); EAPI void evry_action_register(Evry_Action *act, int priority); diff --git a/src/modules/everything/e_mod_main.c b/src/modules/everything/e_mod_main.c index 6df9c1634..ea35fdb1d 100644 --- a/src/modules/everything/e_mod_main.c +++ b/src/modules/everything/e_mod_main.c @@ -12,7 +12,7 @@ /* #undef DBG * #define DBG(...) ERR(__VA_ARGS__) */ -#define CONFIG_VERSION 10 +#define CONFIG_VERSION 12 /* actual module specifics */ static void _e_mod_action_cb(E_Object *obj, const char *params); @@ -171,28 +171,17 @@ _config_init() { #undef T #undef D -#define T Plugin_Setting -#define D plugin_setting_edd - plugin_setting_edd = E_CONFIG_DD_NEW("Plugin_Setting", Plugin_Setting); - E_CONFIG_VAL(D, T, type, INT); - E_CONFIG_VAL(D, T, description, STR); - E_CONFIG_VAL(D, T, val, STR); -#undef T -#undef D - #define T Plugin_Config #define D plugin_conf_edd plugin_conf_edd = E_CONFIG_DD_NEW("Plugin_Config", Plugin_Config); E_CONFIG_VAL(D, T, name, STR); - E_CONFIG_VAL(D, T, trigger, STR); - E_CONFIG_VAL(D, T, min_query, INT); - E_CONFIG_VAL(D, T, loaded, INT); E_CONFIG_VAL(D, T, enabled, INT); E_CONFIG_VAL(D, T, priority, INT); - E_CONFIG_HASH(D, T, settings, plugin_setting_edd); + E_CONFIG_VAL(D, T, trigger, STR); + E_CONFIG_VAL(D, T, trigger_only, INT); + E_CONFIG_VAL(D, T, view_mode, INT); #undef T #undef D - #define T Evry_Config #define D conf_edd conf_edd = E_CONFIG_DD_NEW("Config", Evry_Config); @@ -238,10 +227,35 @@ _config_init() if (evry_conf && evry_conf->version == 9) { - evry_conf->first_run = EINA_TRUE; - evry_conf->version = CONFIG_VERSION; + evry_conf->first_run = EINA_TRUE; + evry_conf->version = 11; } - + + if (evry_conf && evry_conf->version == 11) + { + Plugin_Config *pc; + + EINA_LIST_FREE(evry_conf->conf_subjects, pc) + { + if (pc->name) eina_stringshare_del(pc->name); + if (pc->trigger) eina_stringshare_del(pc->trigger); + E_FREE(pc); + } + EINA_LIST_FREE(evry_conf->conf_actions, pc) + { + if (pc->name) eina_stringshare_del(pc->name); + if (pc->trigger) eina_stringshare_del(pc->trigger); + E_FREE(pc); + } + EINA_LIST_FREE(evry_conf->conf_objects, pc) + { + if (pc->name) eina_stringshare_del(pc->name); + if (pc->trigger) eina_stringshare_del(pc->trigger); + E_FREE(pc); + } + evry_conf->version = CONFIG_VERSION; + } + if (evry_conf && evry_conf->version != CONFIG_VERSION) { _config_free(); @@ -282,21 +296,21 @@ _config_free(void) eina_stringshare_del(evry_conf->cmd_terminal); EINA_LIST_FREE(evry_conf->conf_subjects, pc) { - if (pc->name) eina_stringshare_del(pc->name); - if (pc->trigger) eina_stringshare_del(pc->trigger); - E_FREE(pc); + if (pc->name) eina_stringshare_del(pc->name); + if (pc->trigger) eina_stringshare_del(pc->trigger); + E_FREE(pc); } EINA_LIST_FREE(evry_conf->conf_actions, pc) { - if (pc->name) eina_stringshare_del(pc->name); - if (pc->trigger) eina_stringshare_del(pc->trigger); - E_FREE(pc); + if (pc->name) eina_stringshare_del(pc->name); + if (pc->trigger) eina_stringshare_del(pc->trigger); + E_FREE(pc); } EINA_LIST_FREE(evry_conf->conf_objects, pc) { - if (pc->name) eina_stringshare_del(pc->name); - if (pc->trigger) eina_stringshare_del(pc->trigger); - E_FREE(pc); + if (pc->name) eina_stringshare_del(pc->name); + if (pc->trigger) eina_stringshare_del(pc->trigger); + E_FREE(pc); } E_FREE(evry_conf); } @@ -509,11 +523,18 @@ evry_plugin_register(Evry_Plugin *p, int priority) pc = E_NEW(Plugin_Config, 1); pc->name = eina_stringshare_add(p->name); pc->enabled = 1; - pc->priority = priority ? priority : 100;; + pc->priority = priority ? priority : 100; + pc->view_mode = p->view_mode; + if (p->trigger) + { + pc->trigger = eina_stringshare_add(p->trigger); + pc->trigger_only = 1; + } + pc->plugin = p; confs = eina_list_append(confs, pc); } - + p->config = pc; evry_conf->plugins = eina_list_sort(evry_conf->plugins, eina_list_count(evry_conf->plugins), diff --git a/src/modules/everything/evry.c b/src/modules/everything/evry.c index 57e074030..34301890a 100644 --- a/src/modules/everything/evry.c +++ b/src/modules/everything/evry.c @@ -1901,30 +1901,38 @@ _evry_matches_update(Evry_Selector *sel, int async) if (!s->cur_plugins && input) { int len_trigger = 0; + int len_inp = strlen(s->inp); EINA_LIST_FOREACH(s->plugins, l, p) { /* input matches plugin trigger? */ - if (!p->trigger) continue; - int len = strlen(p->trigger); + if (!p->config->trigger) continue; + int len = strlen(p->config->trigger); if (len_trigger && len != len_trigger) continue; - if ((strlen(s->inp) >= len) && - (!strncmp(s->inp, p->trigger, len))) + if ((len_inp >= len) && + (!strncmp(s->inp, p->config->trigger, len))) { len_trigger = len; s->cur_plugins = eina_list_append(s->cur_plugins, p); - p->fetch(p, s->input + len); + if(len_inp == len) + p->fetch(p, NULL); + else + p->fetch(p, s->input + len); } } if (s->cur_plugins) { s->trigger_active = EINA_TRUE; - s->inp[0] = '>'; - s->inp[1] = '\0'; - s->input = s->inp + 1; + /* replace trigger with indicator */ + if (len_trigger > 1) + { + s->inp[0] = '>'; + s->inp[1] = '\0'; + } + s->input = s->inp + 1; _evry_update_text_label(s); } } @@ -1935,7 +1943,9 @@ _evry_matches_update(Evry_Selector *sel, int async) EINA_LIST_FOREACH(s->plugins, l, p) { - if (!win->plugin_dedicated && p->trigger) + if ((!win->plugin_dedicated) && + (p->config->trigger_only) && + (p->config->trigger)) continue; if (p == sel->aggregator) continue; diff --git a/src/modules/everything/evry_config.c b/src/modules/everything/evry_config.c index 3c2e15f4b..40ac078bc 100644 --- a/src/modules/everything/evry_config.c +++ b/src/modules/everything/evry_config.c @@ -5,6 +5,27 @@ static void _free_data (E_Config_Dialog *cfd, E_Config_Dia static int _basic_apply_data (E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); static Evas_Object *_basic_create_widgets (E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); +typedef struct _Plugin_Page Plugin_Page; + +struct _Plugin_Page +{ + Evas_Object *list; + Evas_Object *o_trigger; + Evas_Object *o_trigger_only; + E_Radio_Group *view_rg; + Evas_Object *o_view_default; + Evas_Object *o_view_list; + Evas_Object *o_view_detail; + Evas_Object *o_view_thumb; + + Eina_List *configs; + + char *trigger; + int trigger_only; + int view_mode; + + Plugin_Config *cur; +} ; struct _E_Config_Dialog_Data { @@ -26,14 +47,8 @@ struct _E_Config_Dialog_Data int cycle_mode; int history_sort_mode; - - Evas_Object *l_subject; - Evas_Object *l_action; - Evas_Object *l_object; - Eina_List *p_subject; - Eina_List *p_action; - Eina_List *p_object; + Plugin_Page page[3]; }; @@ -78,9 +93,9 @@ _fill_data(E_Config_Dialog_Data *cfdata) C(scroll_speed); #undef C - cfdata->p_subject = eina_list_clone(evry_conf->conf_subjects); - cfdata->p_action = eina_list_clone(evry_conf->conf_actions); - cfdata->p_object = eina_list_clone(evry_conf->conf_objects); + cfdata->page[0].configs = eina_list_clone(evry_conf->conf_subjects); + cfdata->page[1].configs = eina_list_clone(evry_conf->conf_actions); + cfdata->page[2].configs = eina_list_clone(evry_conf->conf_objects); if (evry_conf->cmd_terminal) cfdata->cmd_terminal = strdup(evry_conf->cmd_terminal); @@ -102,27 +117,20 @@ _create_data(E_Config_Dialog *cfd __UNUSED__) static void _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) { - if (cfdata->p_subject) eina_list_free(cfdata->p_subject); - if (cfdata->p_action) eina_list_free(cfdata->p_action); - if (cfdata->p_object) eina_list_free(cfdata->p_object); + if (cfdata->page[0].configs) eina_list_free(cfdata->page[0].configs); + if (cfdata->page[1].configs) eina_list_free(cfdata->page[1].configs); + if (cfdata->page[2].configs) eina_list_free(cfdata->page[2].configs); E_FREE(cfdata->cmd_terminal); E_FREE(cfdata->cmd_sudo); 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 _basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) { - + int i; + #define C(_name) evry_conf->_name = cfdata->_name C(height); C(width); @@ -146,13 +154,27 @@ _basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) if (evry_conf->conf_actions) eina_list_free(evry_conf->conf_actions); if (evry_conf->conf_objects) eina_list_free(evry_conf->conf_objects); - evry_conf->conf_subjects = cfdata->p_subject; - evry_conf->conf_actions = cfdata->p_action; - evry_conf->conf_objects = cfdata->p_object; + evry_conf->conf_subjects = eina_list_clone(cfdata->page[0].configs); + evry_conf->conf_actions = eina_list_clone(cfdata->page[1].configs); + evry_conf->conf_objects = eina_list_clone(cfdata->page[2].configs); - cfdata->p_subject = NULL; - cfdata->p_action = NULL; - cfdata->p_object = NULL; + for (i = 0; i < 3; i++) + { + if (cfdata->page[i].cur) + { + if (cfdata->page[i].cur->trigger) + eina_stringshare_del(cfdata->page[i].cur->trigger); + + if (cfdata->page[i].trigger[i]) + cfdata->page[i].cur->trigger = eina_stringshare_add(cfdata->page[i].trigger); + else + cfdata->page[i].cur->trigger = NULL; + + cfdata->page[i].cur->trigger_only = cfdata->page[i].trigger_only; + + cfdata->page[i].cur->view_mode = cfdata->page[i].view_mode; + } + } if (evry_conf->cmd_terminal) eina_stringshare_del(evry_conf->cmd_terminal); @@ -198,7 +220,7 @@ _plugin_move(Eina_List *plugins, Evas_Object *list, int dir) Eina_List *l1, *l2; sel = e_widget_ilist_selected_get(list); - + if (sel >= 0) { Plugin_Config *pc; @@ -232,85 +254,205 @@ _plugin_move_down_cb(void *data, void *data2) _plugin_move(data2, data, 1); } -static Evas_Object * -_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) +static void +_list_select_cb (void *data, Evas_Object *obj) { - Evas_Object *o, *of, *ob, *otb, *otb2; + int sel = e_widget_ilist_selected_get(obj); + Plugin_Config *pc; + Plugin_Page *page = data; + + if (sel >= 0) + { + pc = eina_list_nth(page->configs, sel); + e_widget_entry_text_set(page->o_trigger, pc->trigger); + e_widget_disabled_set(page->o_trigger, 0); + + e_widget_check_checked_set(page->o_trigger_only, pc->trigger_only); + e_widget_disabled_set(page->o_trigger_only, 0); + + e_widget_disabled_set(page->o_view_default, 0); + e_widget_disabled_set(page->o_view_detail, 0); + e_widget_disabled_set(page->o_view_list, 0); + e_widget_disabled_set(page->o_view_thumb, 0); + + if (pc->view_mode == -1) + e_widget_radio_toggle_set(page->o_view_default, 1); + else if (pc->view_mode == 0) + e_widget_radio_toggle_set(page->o_view_list, 1); + else if (pc->view_mode == 1) + e_widget_radio_toggle_set(page->o_view_detail, 1); + else if (pc->view_mode == 2) + e_widget_radio_toggle_set(page->o_view_thumb, 1); + + page->cur = pc; + } + else + { + e_widget_entry_text_set(page->o_trigger, ""); + e_widget_disabled_set(page->o_trigger, 1); + e_widget_disabled_set(page->o_trigger_only, 1); + e_widget_disabled_set(page->o_view_default, 1); + e_widget_disabled_set(page->o_view_detail, 1); + e_widget_disabled_set(page->o_view_list, 1); + e_widget_disabled_set(page->o_view_thumb, 1); + + page->cur = NULL; + } +} + +static void +_plugin_config_cb(void *data, void *data2) +{ +} + +static Evas_Object * +_create_plugin_page(E_Config_Dialog_Data *cfdata, Evas *e, Plugin_Page *page) +{ + Evas_Object *ot, *o, *of, *ob; + E_Radio_Group *rg; + Evas_Object *list; + + of = e_widget_framelist_add(e, _("Active Plugins"), 0); + page->list = e_widget_ilist_add(e, 24, 24, NULL); + e_widget_on_change_hook_set(page->list, _list_select_cb, page); + /* e_widget_on_change_hook_set(ol, _avail_list_cb_change, cfdata); */ + _fill_list(page->configs, page->list, 0); + e_widget_framelist_object_append(of, page->list); + + o = e_widget_button_add(e, _("Move Up"), NULL, + _plugin_move_up_cb, + page->list, page->configs); + e_widget_framelist_object_append(of, o); + + o = e_widget_button_add(e, _("Move Down"), NULL, + _plugin_move_down_cb, + page->list, page->configs); + e_widget_framelist_object_append(of, o); + + ob = e_widget_table_add(e, 1); + e_widget_table_object_append(ob, of, 0, 0, 1, 3, 1, 1, 1, 1); + + of = e_widget_framelist_add(e, _("Plugin Trigger"), 0); + o = e_widget_entry_add(e, &(page->trigger), NULL, NULL, NULL); + e_widget_disabled_set(o, 1); + page->o_trigger = o; + e_widget_framelist_object_append(of, o); + o = e_widget_check_add(e, _("Show only when triggered"), + &(page->trigger_only)); + e_widget_disabled_set(o, 1); + page->o_trigger_only = o; + e_widget_framelist_object_append(of, o); + e_widget_table_object_append(ob, of, 1, 0, 1, 1, 1, 1, 1, 1); + + of = e_widget_framelist_add(e, _("Plugin View"), 0); + rg = e_widget_radio_group_new(&page->view_mode); + o = e_widget_radio_add(e, _("Default"), -1, rg); + e_widget_disabled_set(o, 1); + page->o_view_default = o; + e_widget_framelist_object_append(of, o); + o = e_widget_radio_add(e, _("List"), 0, rg); + e_widget_framelist_object_append(of, o); + e_widget_disabled_set(o, 1); + page->o_view_list = o; + o = e_widget_radio_add(e, _("Detailed"), 1, rg); + e_widget_disabled_set(o, 1); + page->o_view_detail = o; + e_widget_framelist_object_append(of, o); + o = e_widget_radio_add(e, _("Icons"), 2, rg); + e_widget_disabled_set(o, 1); + page->o_view_thumb = o; + e_widget_framelist_object_append(of, o); + e_widget_table_object_append(ob, of, 1, 1, 1, 1, 1, 1, 1, 1); + + /* of = e_widget_framelist_add(e, _("Plugin Cofiguration"), 0); + * o = e_widget_button_add(e, _("Configure"), NULL, + * _plugin_config_cb, + * cfdata->l_subject, + * cfdata->p_subject); + * e_widget_framelist_object_append(of, o); */ + /* e_widget_table_object_append(ob, of, 1, 2, 1, 1, 1, 0, 1, 0); */ + + return ob; +} + +static Evas_Object * +_basic_create_widgets(E_Config_Dialog *cfd, Evas *e, E_Config_Dialog_Data *cfdata) +{ + Evas_Object *ot, *o, *of, *ob, *otb, *otb2; E_Radio_Group *rg; - otb = e_widget_toolbook_add(evas, 48 * e_scale, 48 * e_scale); + otb = e_widget_toolbook_add(e, 48 * e_scale, 48 * e_scale); - o = e_widget_table_add(evas, 0); + o = e_widget_table_add(e, 0); /// GENERAL SETTNGS /// - of = e_widget_framelist_add(evas, _("General"), 0); + of = e_widget_framelist_add(e, _("General"), 0); - ob = e_widget_check_add(evas, _("Hide input when inactive"), + ob = e_widget_check_add(e, _("Hide input when inactive"), &(cfdata->hide_input)); e_widget_framelist_object_append(of, ob); - ob = e_widget_check_add(evas, _("Hide list"), + ob = e_widget_check_add(e, _("Hide list"), &(cfdata->hide_list)); e_widget_framelist_object_append(of, ob); - ob = e_widget_label_add(evas, _("Quick Navigation")); + ob = e_widget_label_add(e, _("Quick Navigation")); e_widget_framelist_object_append(of, ob); rg = e_widget_radio_group_new(&cfdata->quick_nav); - ob = e_widget_radio_add(evas, _("Off"), 0, rg); + ob = e_widget_radio_add(e, _("Off"), 0, rg); e_widget_framelist_object_append(of, ob); - ob = e_widget_radio_add(evas, _("Emacs style (ALT + n,p,f,b,m,i)"), 3, rg); + ob = e_widget_radio_add(e, _("Emacs style (ALT + n,p,f,b,m,i)"), 3, rg); e_widget_framelist_object_append(of, ob); - ob = e_widget_radio_add(evas, _("Vi style (ALT + h,j,k,l,n,p,m,i)"), 1, rg); + ob = e_widget_radio_add(e, _("Vi style (ALT + h,j,k,l,n,p,m,i)"), 1, rg); e_widget_framelist_object_append(of, ob); e_widget_table_object_append(o, of, 0, 0, 1, 1, 0, 0, 0, 0); - - of = e_widget_framelist_add(evas, _("Default View"), 0); + of = e_widget_framelist_add(e, _("Default View"), 0); rg = e_widget_radio_group_new(&cfdata->view_mode); - ob = e_widget_radio_add(evas, _("List"), 0, rg); + ob = e_widget_radio_add(e, _("List"), 0, rg); e_widget_framelist_object_append(of, ob); - ob = e_widget_radio_add(evas, _("Detailed"), 1, rg); + ob = e_widget_radio_add(e, _("Detailed"), 1, rg); e_widget_framelist_object_append(of, ob); - ob = e_widget_radio_add(evas, _("Icons"), 2, rg); + ob = e_widget_radio_add(e, _("Icons"), 2, rg); e_widget_framelist_object_append(of, ob); - ob = e_widget_check_add(evas, _("Animate scrolling"), + ob = e_widget_check_add(e, _("Animate scrolling"), &(cfdata->scroll_animate)); e_widget_framelist_object_append(of, ob); - /* ob = e_widget_slider_add(evas, 1, 0, _("%1.1f"), + /* ob = e_widget_slider_add(e, 1, 0, _("%1.1f"), * 5, 20, 0.1, 0, &(cfdata->scroll_speed), NULL, 10); * e_widget_framelist_object_append(of, ob); */ - ob = e_widget_check_add(evas, _("Up/Down select next item in icon view"), + ob = e_widget_check_add(e, _("Up/Down select next item in icon view"), &(cfdata->cycle_mode)); e_widget_framelist_object_append(of, ob); e_widget_table_object_append(o, of, 1, 0, 1, 1, 0, 1, 0, 0); - of = e_widget_framelist_add(evas, _("Sorting"), 0); + of = e_widget_framelist_add(e, _("Sorting"), 0); rg = e_widget_radio_group_new(&cfdata->history_sort_mode); - ob = e_widget_radio_add(evas, _("By usage"), 0, rg); + ob = e_widget_radio_add(e, _("By usage"), 0, rg); e_widget_radio_toggle_set(ob, (cfdata->history_sort_mode == 0)); e_widget_framelist_object_append(of, ob); - ob = e_widget_radio_add(evas, _("Most used"), 1, rg); + ob = e_widget_radio_add(e, _("Most used"), 1, rg); e_widget_radio_toggle_set(ob, (cfdata->history_sort_mode == 1)); e_widget_framelist_object_append(of, ob); - ob = e_widget_radio_add(evas, _("Last used"), 2, rg); + ob = e_widget_radio_add(e, _("Last used"), 2, rg); e_widget_radio_toggle_set(ob, (cfdata->history_sort_mode == 2)); e_widget_framelist_object_append(of, ob); e_widget_table_object_append(o, of, 0, 1, 2, 1, 1, 0, 0, 0); - of = e_widget_framelist_add(evas, _("Commands"), 0); - ob = e_widget_label_add(evas, _("Terminal Command")); + of = e_widget_framelist_add(e, _("Commands"), 0); + ob = e_widget_label_add(e, _("Terminal Command")); e_widget_framelist_object_append(of, ob); - ob = e_widget_entry_add(evas, &(cfdata->cmd_terminal), NULL, NULL, NULL); + ob = e_widget_entry_add(e, &(cfdata->cmd_terminal), NULL, NULL, NULL); e_widget_framelist_object_append(of, ob); - ob = e_widget_label_add(evas, _("Sudo GUI")); + ob = e_widget_label_add(e, _("Sudo GUI")); e_widget_framelist_object_append(of, ob); - ob = e_widget_entry_add(evas, &(cfdata->cmd_sudo), NULL, NULL, NULL); + ob = e_widget_entry_add(e, &(cfdata->cmd_sudo), NULL, NULL, NULL); e_widget_framelist_object_append(of, ob); e_widget_table_object_append(o, of, 0, 2, 2, 1, 1, 0, 0, 0); @@ -319,105 +461,54 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf o, 1, 0, 1, 0, 0.5, 0.0); /// PLUGINS /// - otb2 = e_widget_toolbook_add(evas, 48 * e_scale, 48 * e_scale); + otb2 = e_widget_toolbook_add(e, 48 * e_scale, 48 * e_scale); - ob = e_widget_list_add(evas, 1, 1); - of = e_widget_framelist_add(evas, _("Active Plugins"), 0); - o = e_widget_ilist_add(evas, 24, 24, NULL); - cfdata->l_subject = o; - /* e_widget_on_change_hook_set(ol, _avail_list_cb_change, cfdata); */ - _fill_list(cfdata->p_subject, o, 0); - e_widget_framelist_object_append(of, o); - o = e_widget_button_add(evas, _("Move Up"), NULL, - _plugin_move_up_cb, - cfdata->l_subject, - cfdata->p_subject); - e_widget_framelist_object_append(of, o); - o = e_widget_button_add(evas, _("Move Down"), NULL, - _plugin_move_down_cb, - cfdata->l_subject, - cfdata->p_subject); - e_widget_framelist_object_append(of, o); - e_widget_list_object_append(ob, of, 1, 1, 0.5); + ob = _create_plugin_page(cfdata, e, &cfdata->page[0]); e_widget_toolbook_page_append(otb2, NULL, _("Subject Plugins"), - of, 1, 0, 1, 0, 0.5, 0.0); - - - ob = e_widget_list_add(evas, 1, 1); - of = e_widget_framelist_add(evas, _("Active Plugins"), 0); - o = e_widget_ilist_add(evas, 24, 24, NULL); - cfdata->l_action = o; - _fill_list(cfdata->p_action, o, 0); - e_widget_framelist_object_append(of, o); - o = e_widget_button_add(evas, _("Move Up"), NULL, - _plugin_move_up_cb, - cfdata->l_action, - cfdata->p_action); - e_widget_framelist_object_append(of, o); - o = e_widget_button_add(evas, _("Move Down"), NULL, - _plugin_move_down_cb, - cfdata->l_action, - cfdata->p_action); - e_widget_framelist_object_append(of, o); - e_widget_list_object_append(ob, of, 1, 1, 0.5); - e_widget_toolbook_page_append(otb2, NULL, _("Action Plugins"), - of, 1, 0, 1, 0, 0.5, 0.0); - - ob = e_widget_list_add(evas, 1, 1); - of = e_widget_framelist_add(evas, _("Active Plugins"), 0); - o = e_widget_ilist_add(evas, 24, 24, NULL); - cfdata->l_object = o; - _fill_list(cfdata->p_object, o, 0); - e_widget_framelist_object_append(of, o); - o = e_widget_button_add(evas, _("Move Up"), NULL, - _plugin_move_up_cb, - cfdata->l_object, - cfdata->p_object); - e_widget_framelist_object_append(of, o); - o = e_widget_button_add(evas, _("Move Down"), NULL, - _plugin_move_down_cb, - cfdata->l_object, - cfdata->p_object); - e_widget_framelist_object_append(of, o); - e_widget_list_object_append(ob, of, 1, 1, 0.5); - - e_widget_toolbook_page_append(otb2, NULL, _("Object Plugins"), ob, 1, 0, 1, 0, 0.5, 0.0); - e_widget_toolbook_page_show(otb2, 0); + ob = _create_plugin_page(cfdata, e, &cfdata->page[1]); + e_widget_toolbook_page_append(otb2, NULL, _("Action Plugins"), + ob, 1, 0, 1, 0, 0.5, 0.0); + + ob = _create_plugin_page(cfdata, e, &cfdata->page[2]); + e_widget_toolbook_page_append(otb2, NULL, _("Object Plugins"), + ob, 1, 0, 1, 0, 0.5, 0.0); e_widget_toolbook_page_append(otb, NULL, _("Plugins"), otb2, 1, 0, 1, 0, 0.5, 0.0); + e_widget_toolbook_page_show(otb2, 0); + /// GEOMERY /// - o = e_widget_list_add(evas, 0, 0); - of = e_widget_framelist_add(evas, _("Popup Size"), 0); - ob = e_widget_label_add(evas, _("Popup Width")); + o = e_widget_list_add(e, 0, 0); + of = e_widget_framelist_add(e, _("Popup Size"), 0); + ob = e_widget_label_add(e, _("Popup Width")); e_widget_framelist_object_append(of, ob); - ob = e_widget_slider_add(evas, 1, 0, _("%1.0f"), + ob = e_widget_slider_add(e, 1, 0, _("%1.0f"), evry_conf->min_w, 800, 5, 0, NULL, &(cfdata->width), 200); e_widget_framelist_object_append(of, ob); - ob = e_widget_label_add(evas, _("Popup Height")); + ob = e_widget_label_add(e, _("Popup Height")); e_widget_framelist_object_append(of, ob); - ob = e_widget_slider_add(evas, 1, 0, _("%1.0f"), + ob = e_widget_slider_add(e, 1, 0, _("%1.0f"), evry_conf->min_h, 800, 5, 0, NULL, &(cfdata->height), 200); e_widget_framelist_object_append(of, ob); e_widget_list_object_append(o, of, 1, 1, 0.5); - of = e_widget_framelist_add(evas, _("Popup Align"), 0); - ob = e_widget_label_add(evas, _("Vertical")); + of = e_widget_framelist_add(e, _("Popup Align"), 0); + ob = e_widget_label_add(e, _("Vertical")); e_widget_framelist_object_append(of, ob); - ob = e_widget_slider_add(evas, 1, 0, _("%1.2f"), + ob = e_widget_slider_add(e, 1, 0, _("%1.2f"), 0.0, 1.0, 0.01, 0, &(cfdata->rel_y), NULL, 200); e_widget_framelist_object_append(of, ob); - ob = e_widget_label_add(evas, _("Horizontal")); + ob = e_widget_label_add(e, _("Horizontal")); e_widget_framelist_object_append(of, ob); - ob = e_widget_slider_add(evas, 1, 0, _("%1.2f"), + ob = e_widget_slider_add(e, 1, 0, _("%1.2f"), 0.0, 1.0, 0.01, 0, &(cfdata->rel_x), NULL, 200); e_widget_framelist_object_append(of, ob); diff --git a/src/modules/everything/evry_plug_aggregator.c b/src/modules/everything/evry_plug_aggregator.c index ffcd51300..0bb61a9f1 100644 --- a/src/modules/everything/evry_plug_aggregator.c +++ b/src/modules/everything/evry_plug_aggregator.c @@ -323,6 +323,7 @@ evry_plug_aggregator_new(Evry_Selector *selector) pc = E_NEW(Plugin_Config, 1); pc->enabled = 1; pc->priority = -1; + pc->view_mode = -1; EVRY_PLUGIN(p)->config = pc; p->selector = selector; diff --git a/src/modules/everything/evry_plug_view_thumb.c b/src/modules/everything/evry_plug_view_thumb.c index 9aea2230b..723ee7245 100644 --- a/src/modules/everything/evry_plug_view_thumb.c +++ b/src/modules/everything/evry_plug_view_thumb.c @@ -963,11 +963,21 @@ _view_update(Evry_View *view, int slide) } if (p != v->plugin) - { - v->mode = v->mode_prev; - - if (p->view_mode >= 0) - v->mode = p->view_mode; + { + if (p->config->view_mode >= 0) + { + if (p->config->view_mode != v->mode) + _clear_items(v->span); + + v->mode = p->config->view_mode; + } + else + { + if (v->mode_prev != v->mode) + _clear_items(v->span); + + v->mode = v->mode_prev; + } } /* go through current view items */ @@ -1328,6 +1338,7 @@ _view_create(Evry_View *view, const Evry_State *s, const Evas_Object *swallow) v->mode = evry_conf->view_mode; else v->mode = parent->mode; + v->mode_prev = v->mode; v->zoom = parent->zoom;