From 50bac5420696d46af63a581415e651e6067f1738 Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Fri, 19 Feb 2010 02:59:56 +0000 Subject: [PATCH] Ok, another stab at adding this to svn. Remove old code. SVN revision: 46289 --- src/modules/illume-home/Makefile.am | 33 - .../illume-home/e-module-illume-home.edj | Bin 37177 -> 0 bytes src/modules/illume-home/e_busycover.c | 92 -- src/modules/illume-home/e_busycover.h | 26 - src/modules/illume-home/e_mod_config.c | 200 ---- src/modules/illume-home/e_mod_config.h | 27 - src/modules/illume-home/e_mod_main.c | 903 ------------------ src/modules/illume-home/e_mod_main.h | 12 - src/modules/illume-home/module.desktop.in | 8 - src/modules/illume-indicator/e_mod_main.c | 72 -- src/modules/illume-softkey/Makefile.am | 51 - .../e-module-illume-softkey.edc | 133 --- src/modules/illume-softkey/e_mod_main.c | 76 -- src/modules/illume-softkey/e_mod_main.h | 12 - src/modules/illume-softkey/e_mod_sft_win.c | 333 ------- src/modules/illume-softkey/e_mod_sft_win.h | 24 - src/modules/illume-softkey/images/Makefile.am | 6 - .../illume-softkey/images/module_icon.png | Bin 2815 -> 0 bytes .../illume-softkey/images/shelf_alt_bg.png | Bin 1232 -> 0 bytes .../illume-softkey/images/shelf_alt_over.png | Bin 502 -> 0 bytes .../illume-softkey/images/shelf_alt_shine.png | Bin 393 -> 0 bytes src/modules/illume-softkey/module.desktop.in | 6 - src/modules/illume2/e_illume.h | 329 ------- src/modules/illume2/e_mod_config_animation.c | 127 --- src/modules/illume2/e_mod_main.c | 127 --- src/modules/illume2/e_mod_quickpanel.c | 415 -------- 26 files changed, 3012 deletions(-) delete mode 100644 src/modules/illume-home/Makefile.am delete mode 100644 src/modules/illume-home/e-module-illume-home.edj delete mode 100644 src/modules/illume-home/e_busycover.c delete mode 100644 src/modules/illume-home/e_busycover.h delete mode 100644 src/modules/illume-home/e_mod_config.c delete mode 100644 src/modules/illume-home/e_mod_config.h delete mode 100644 src/modules/illume-home/e_mod_main.c delete mode 100644 src/modules/illume-home/e_mod_main.h delete mode 100644 src/modules/illume-home/module.desktop.in delete mode 100644 src/modules/illume-indicator/e_mod_main.c delete mode 100644 src/modules/illume-softkey/Makefile.am delete mode 100644 src/modules/illume-softkey/e-module-illume-softkey.edc delete mode 100644 src/modules/illume-softkey/e_mod_main.c delete mode 100644 src/modules/illume-softkey/e_mod_main.h delete mode 100644 src/modules/illume-softkey/e_mod_sft_win.c delete mode 100644 src/modules/illume-softkey/e_mod_sft_win.h delete mode 100644 src/modules/illume-softkey/images/Makefile.am delete mode 100644 src/modules/illume-softkey/images/module_icon.png delete mode 100644 src/modules/illume-softkey/images/shelf_alt_bg.png delete mode 100644 src/modules/illume-softkey/images/shelf_alt_over.png delete mode 100644 src/modules/illume-softkey/images/shelf_alt_shine.png delete mode 100644 src/modules/illume-softkey/module.desktop.in delete mode 100644 src/modules/illume2/e_illume.h delete mode 100644 src/modules/illume2/e_mod_config_animation.c delete mode 100644 src/modules/illume2/e_mod_main.c delete mode 100644 src/modules/illume2/e_mod_quickpanel.c diff --git a/src/modules/illume-home/Makefile.am b/src/modules/illume-home/Makefile.am deleted file mode 100644 index 35bbe3ea6..000000000 --- a/src/modules/illume-home/Makefile.am +++ /dev/null @@ -1,33 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in -MODULE = illume-home - -# data files for the module -filesdir = $(libdir)/enlightenment/modules/$(MODULE) -files_DATA = \ -e-module-$(MODULE).edj module.desktop - -EXTRA_DIST = $(files_DATA) - -# the module .so file -INCLUDES = -I. \ - -I$(top_srcdir) \ - -I$(top_srcdir)/src/modules/$(MODULE) \ - -I$(top_srcdir)/src/bin \ - -I$(top_srcdir)/src/lib \ - -I$(top_srcdir)/src/modules \ - @e_cflags@ -pkgdir = $(libdir)/enlightenment/modules/$(MODULE)/$(MODULE_ARCH) -pkg_LTLIBRARIES = module.la -module_la_SOURCES = e_mod_main.c \ - e_mod_main.h \ - e_mod_config.c \ - e_mod_config.h \ - e_busycover.c \ - e_busycover.h - -module_la_LIBADD = @e_libs@ @dlopen_libs@ -module_la_LDFLAGS = -module -avoid-version -module_la_DEPENDENCIES = $(top_builddir)/config.h - -uninstall: - rm -rf $(DESTDIR)$(libdir)/enlightenment/modules/$(MODULE) diff --git a/src/modules/illume-home/e-module-illume-home.edj b/src/modules/illume-home/e-module-illume-home.edj deleted file mode 100644 index f6dc6094669bab0e502dcd12b5586dfd52653c19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37177 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 - - cover->o_base = edje_object_add(e_win_evas_get(win)); - if (!e_theme_edje_object_set(cover->o_base, - "base/theme/modules/illume-home", - "modules/illume-home/busycover")) - edje_object_file_set(cover->o_base, buff, "modules/illume-home/busycover"); - edje_object_part_text_set(cover->o_base, "e.text.title", _("LOADING")); - evas_object_move(cover->o_base, win->x, win->y); - evas_object_resize(cover->o_base, win->w, win->h); - evas_object_layer_set(cover->o_base, 999); - return cover; -} - -EAPI E_Busycover_Handle * -e_busycover_push(E_Busycover *cover, const char *msg, const char *icon) -{ - E_Busycover_Handle *handle; - - E_OBJECT_CHECK(cover); - E_OBJECT_TYPE_CHECK_RETURN(cover, E_BUSYCOVER_TYPE, NULL); - - handle = E_NEW(E_Busycover_Handle, 1); - handle->cover = cover; - if (msg) handle->msg = eina_stringshare_add(msg); - if (icon) handle->icon = eina_stringshare_add(icon); - cover->handles = eina_list_append(cover->handles, handle); - edje_object_part_text_set(cover->o_base, "e.text.title", msg); - evas_object_show(cover->o_base); - return handle; -} - -EAPI void -e_busycover_pop(E_Busycover *cover, E_Busycover_Handle *handle) -{ - E_OBJECT_CHECK(cover); - E_OBJECT_TYPE_CHECK(cover, E_BUSYCOVER_TYPE); - if (!eina_list_data_find(cover->handles, handle)) return; - cover->handles = eina_list_remove(cover->handles, handle); - if (handle->msg) eina_stringshare_del(handle->msg); - if (handle->icon) eina_stringshare_del(handle->icon); - E_FREE(handle); - if (cover->handles) - { - handle = cover->handles->data; - edje_object_part_text_set(cover->o_base, "e.text.title", handle->msg); - } - else - evas_object_hide(cover->o_base); -} - -EAPI void -e_busycover_resize(E_Busycover *cover, int w, int h) -{ - E_OBJECT_CHECK(cover); - E_OBJECT_TYPE_CHECK(cover, E_BUSYCOVER_TYPE); - evas_object_resize(cover->o_base, w, h); -} - -/* local function prototypes */ -static void -_e_busycover_cb_free(E_Busycover *cover) -{ - Eina_List *l; - E_Busycover_Handle *handle; - - EINA_LIST_FREE(cover->handles, handle) - { - if (handle->msg) eina_stringshare_del(handle->msg); - if (handle->icon) eina_stringshare_del(handle->icon); - E_FREE(handle); - } - - if (cover->o_base) evas_object_del(cover->o_base); - E_FREE(cover); -} diff --git a/src/modules/illume-home/e_busycover.h b/src/modules/illume-home/e_busycover.h deleted file mode 100644 index 35e084984..000000000 --- a/src/modules/illume-home/e_busycover.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef E_BUSYCOVER_H -# define E_BUSYCOVER_H - -# define E_BUSYCOVER_TYPE 0xE1b0782 - -typedef struct _E_Busycover E_Busycover; -typedef struct _E_Busycover_Handle E_Busycover_Handle; - -struct _E_Busycover -{ - E_Object e_obj_inherit; - Evas_Object *o_base; - Eina_List *handles; -}; -struct _E_Busycover_Handle -{ - E_Busycover *cover; - const char *msg, *icon; -}; - -EAPI E_Busycover *e_busycover_new(E_Win *win); -EAPI E_Busycover_Handle *e_busycover_push(E_Busycover *cover, const char *msg, const char *icon); -EAPI void e_busycover_pop(E_Busycover *cover, E_Busycover_Handle *handle); -EAPI void e_busycover_resize(E_Busycover *cover, int w, int h); - -#endif diff --git a/src/modules/illume-home/e_mod_config.c b/src/modules/illume-home/e_mod_config.c deleted file mode 100644 index 5e206c62f..000000000 --- a/src/modules/illume-home/e_mod_config.c +++ /dev/null @@ -1,200 +0,0 @@ -#include "e.h" -#include "e_mod_main.h" -#include "e_mod_config.h" - -/* local function prototypes */ -static void *_il_home_config_create(E_Config_Dialog *cfd); -static void _il_home_config_free(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); -static Evas_Object *_il_home_config_ui(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); -static void _il_home_config_changed(void *data, Evas_Object *obj, void *event); -static void _il_home_config_click_changed(void *data, Evas_Object *obj, void *event); -static int _il_home_config_change_timeout(void *data); - -/* local variables */ -EAPI Il_Home_Config *il_home_cfg = NULL; -static E_Config_DD *conf_edd = NULL; -Ecore_Timer *_il_home_config_change_timer = NULL; -Evas_Object *delay_label, *delay_slider; - -/* public functions */ -int -il_home_config_init(E_Module *m) -{ - conf_edd = E_CONFIG_DD_NEW("Illume-Home_Cfg", Il_Home_Config); - #undef T - #undef D - #define T Il_Home_Config - #define D conf_edd - E_CONFIG_VAL(D, T, version, INT); - E_CONFIG_VAL(D, T, icon_size, INT); - E_CONFIG_VAL(D, T, single_click, INT); - E_CONFIG_VAL(D, T, single_click_delay, INT); - - il_home_cfg = e_config_domain_load("module.illume-home", conf_edd); - if ((il_home_cfg) && - ((il_home_cfg->version >> 16) < IL_CONFIG_MAJ)) - { - E_FREE(il_home_cfg); - il_home_cfg = NULL; - } - if (!il_home_cfg) - { - il_home_cfg = E_NEW(Il_Home_Config, 1); - il_home_cfg->version = 0; - il_home_cfg->icon_size = 120; - il_home_cfg->single_click = 1; - il_home_cfg->single_click_delay = 50; - } - if (il_home_cfg) - { - /* Add new config variables here */ - /* if ((il_home_cfg->version & 0xffff) < 1) */ - il_home_cfg->version = (IL_CONFIG_MAJ << 16) | IL_CONFIG_MIN; - } - - il_home_cfg->mod_dir = eina_stringshare_add(m->dir); - - e_configure_registry_category_add("illume", 0, _("Illume"), NULL, - "enlightenment/display"); - e_configure_registry_generic_item_add("illume/home", 0, _("Home"), - NULL, "enlightenment/launcher", - il_home_config_show); - return 1; -} - -int -il_home_config_shutdown(void) -{ - il_home_cfg->cfd = NULL; - - e_configure_registry_item_del("illume/home"); - e_configure_registry_category_del("illume"); - - if (il_home_cfg->mod_dir) eina_stringshare_del(il_home_cfg->mod_dir); - - E_FREE(il_home_cfg); - il_home_cfg = NULL; - - E_CONFIG_DD_FREE(conf_edd); - return 1; -} - -int -il_home_config_save(void) -{ - e_config_domain_save("module.illume-home", conf_edd, il_home_cfg); - return 1; -} - -void -il_home_config_show(E_Container *con, const char *params) -{ - E_Config_Dialog *cfd; - E_Config_Dialog_View *v = NULL; - - if (e_config_dialog_find("E", "_config_illume_home_settings")) return; - - v = E_NEW(E_Config_Dialog_View, 1); - v->create_cfdata = _il_home_config_create; - v->free_cfdata = _il_home_config_free; - v->basic.create_widgets = _il_home_config_ui; - v->basic_only = 1; - v->normal_win = 1; - v->scroll = 1; - - cfd = e_config_dialog_new(con, _("Home Settings"), "E", - "_config_illume_home_settings", - "enlightenment/launcher_settings", 0, v, NULL); - e_dialog_resizable_set(cfd->dia, 1); - il_home_cfg->cfd = cfd; -} - -/* local functions */ -static void * -_il_home_config_create(E_Config_Dialog *cfd) -{ - return NULL; -} - -static void -_il_home_config_free(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) -{ - il_home_cfg->cfd = NULL; - il_home_win_cfg_update(); -} - -static Evas_Object * -_il_home_config_ui(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) -{ - Evas_Object *list, *of, *o; - E_Radio_Group *rg; - - list = e_widget_list_add(evas, 0, 0); - - of = e_widget_framelist_add(evas, _("Icon Size"), 0); - rg = e_widget_radio_group_new(&(il_home_cfg->icon_size)); - o = e_widget_radio_add(evas, _("Small"), 60, rg); - e_widget_framelist_object_append(of, o); - evas_object_smart_callback_add(o, "changed", _il_home_config_changed, NULL); - o = e_widget_radio_add(evas, _("Medium"), 80, rg); - e_widget_framelist_object_append(of, o); - evas_object_smart_callback_add(o, "changed", _il_home_config_changed, NULL); - o = e_widget_radio_add(evas, _("Large"), 120, rg); - e_widget_framelist_object_append(of, o); - evas_object_smart_callback_add(o, "changed", _il_home_config_changed, NULL); - o = e_widget_radio_add(evas, _("Very Large"), 160, rg); - e_widget_framelist_object_append(of, o); - evas_object_smart_callback_add(o, "changed", _il_home_config_changed, NULL); - o = e_widget_radio_add(evas, _("Massive"), 240, rg); - e_widget_framelist_object_append(of, o); - evas_object_smart_callback_add(o, "changed", _il_home_config_changed, NULL); - e_widget_list_object_append(list, of, 1, 0, 0.0); - - of = e_widget_framelist_add(evas, _("Launch Action"), 0); - o = e_widget_check_add(evas, _("Single press"), - &(il_home_cfg->single_click)); - e_widget_framelist_object_append(of, o); - evas_object_smart_callback_add(o, "changed", - _il_home_config_click_changed, NULL); - o = e_widget_label_add(evas, _("Press Delay")); - delay_label = o; - e_widget_disabled_set(o, !(il_home_cfg->single_click)); - e_widget_framelist_object_append(of, o); - o = e_widget_slider_add(evas, 1, 0, "%1.0f ms", 0, 350, 1, 0, NULL, - &(il_home_cfg->single_click_delay), 150); - delay_slider = o; - /* Slider does not emit a changed signal */ -// evas_object_smart_callback_add(o, "changed", -// _il_home_config_changed, NULL); - e_widget_disabled_set(o, !(il_home_cfg->single_click)); - e_widget_framelist_object_append(of, o); - e_widget_list_object_append(list, of, 1, 0, 0.0); - - return list; -} - -static void -_il_home_config_changed(void *data, Evas_Object *obj, void *event) -{ - if (_il_home_config_change_timer) - ecore_timer_del(_il_home_config_change_timer); - _il_home_config_change_timer = - ecore_timer_add(0.5, _il_home_config_change_timeout, data); -} - -static void -_il_home_config_click_changed(void *data, Evas_Object *obj, void *event) -{ - e_widget_disabled_set(delay_label, !il_home_cfg->single_click); - e_widget_disabled_set(delay_slider, !il_home_cfg->single_click); - _il_home_config_changed(data, obj, event); -} - -static int -_il_home_config_change_timeout(void *data) -{ - il_home_win_cfg_update(); - e_config_save_queue(); - _il_home_config_change_timer = NULL; - return 0; -} diff --git a/src/modules/illume-home/e_mod_config.h b/src/modules/illume-home/e_mod_config.h deleted file mode 100644 index b7b04a9ff..000000000 --- a/src/modules/illume-home/e_mod_config.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef E_MOD_CONFIG_H -#define E_MOD_CONFIG_H - -#define IL_CONFIG_MIN 0 -#define IL_CONFIG_MAJ 0 - -typedef struct _Il_Home_Config Il_Home_Config; - -struct _Il_Home_Config -{ - int version; - int mode, icon_size; - int single_click, single_click_delay; - - // Not User Configurable. Placeholders - const char *mod_dir; - E_Config_Dialog *cfd; -}; - -int il_home_config_init(E_Module *m); -int il_home_config_shutdown(void); -int il_home_config_save(void); -void il_home_config_show(E_Container *con, const char *params); - -extern EAPI Il_Home_Config *il_home_cfg; - -#endif diff --git a/src/modules/illume-home/e_mod_main.c b/src/modules/illume-home/e_mod_main.c deleted file mode 100644 index 20f2935e6..000000000 --- a/src/modules/illume-home/e_mod_main.c +++ /dev/null @@ -1,903 +0,0 @@ -#include "e.h" -#include "e_mod_main.h" -#include "e_mod_config.h" -#include "e_busycover.h" - -#define IL_HOME_WIN_TYPE 0xE0b0102f - -/* local structures */ -typedef struct _Instance Instance; -typedef struct _Il_Home_Win Il_Home_Win; -typedef struct _Il_Home_Exec Il_Home_Exec; - -struct _Instance -{ - E_Gadcon_Client *gcc; - Evas_Object *o_btn; - Eina_List *wins, *handlers; -}; - -struct _Il_Home_Win -{ - E_Object e_obj_inherit; - - E_Win *win; - Evas_Object *o_bg, *o_sf, *o_fm, *o_cover; - E_Busycover *cover; - E_Zone *zone; -}; - -struct _Il_Home_Exec -{ - E_Busycover *cover; - Efreet_Desktop *desktop; - Ecore_Exe *exec; - E_Border *border; - E_Zone *zone; - Ecore_Timer *timeout; - int startup_id; - pid_t pid; - void *handle; -}; - -/* local function prototypes */ -static E_Gadcon_Client *_gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style); -static void _gc_shutdown(E_Gadcon_Client *gcc); -static void _gc_orient(E_Gadcon_Client *gcc, E_Gadcon_Orient orient); -static char *_gc_label(E_Gadcon_Client_Class *cc); -static Evas_Object *_gc_icon(E_Gadcon_Client_Class *cc, Evas *evas); -static const char *_gc_id_new(E_Gadcon_Client_Class *cc); -static void _il_home_btn_cb_click(void *data, void *data2); -static void _il_home_win_new(Instance *inst); -static void _il_home_win_cb_free(Il_Home_Win *hwin); -static void _il_home_win_cb_resize(E_Win *win); -static void _il_home_pan_set(Evas_Object *obj, Evas_Coord x, Evas_Coord y); -static void _il_home_pan_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y); -static void _il_home_pan_max_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y); -static void _il_home_pan_child_size_get(Evas_Object *obj, Evas_Coord *w, Evas_Coord *h); -static void _il_home_cb_selected(void *data, Evas_Object *obj, void *event); -static void _il_home_desktop_run(Il_Home_Win *hwin, Efreet_Desktop *desktop); -static void _il_home_apps_populate(void); -static void _il_home_apps_unpopulate(void); -static void _il_home_fmc_set(Evas_Object *obj); -static void _il_home_desks_populate(void); -static int _il_home_desktop_list_change(void *data, int type, void *event); -static int _il_home_desktop_change(void *data, int type, void *event); -static int _il_home_update_deferred(void *data); -static int _il_home_win_cb_exe_del(void *data, int type, void *event); -static E_Border *_il_home_desktop_find_border(E_Zone *zone, Efreet_Desktop *desktop); -static int _il_home_win_cb_timeout(void *data); -static int _il_home_border_add(void *data, int type, void *event); -static int _il_home_border_remove(void *data, int type, void *event); -static int _il_home_cb_client_message(void *data, int type, void *event); -static int _il_home_cb_prop_change(void *data, int type, void *event); - -/* local variables */ -static Eina_List *instances = NULL; -static Eina_List *desks = NULL; -static Eina_List *handlers = NULL; -static Eina_List *exes = NULL; -static Ecore_Timer *defer = NULL; - -static const E_Gadcon_Client_Class _gc_class = -{ - GADCON_CLIENT_CLASS_VERSION, "illume-home", - { _gc_init, _gc_shutdown, _gc_orient, _gc_label, _gc_icon, _gc_id_new, NULL, - e_gadcon_site_is_not_toolbar - }, E_GADCON_CLIENT_STYLE_PLAIN -}; - -/* public functions */ -EAPI E_Module_Api e_modapi = { E_MODULE_API_VERSION, "Illume Home" }; - -EAPI void * -e_modapi_init(E_Module *m) -{ - if (!il_home_config_init(m)) return NULL; - - _il_home_apps_unpopulate(); - _il_home_apps_populate(); - - handlers = - eina_list_append(handlers, - ecore_event_handler_add(EFREET_EVENT_DESKTOP_LIST_CHANGE, - _il_home_desktop_list_change, - NULL)); - handlers = - eina_list_append(handlers, - ecore_event_handler_add(EFREET_EVENT_DESKTOP_CHANGE, - _il_home_desktop_change, NULL)); - - handlers = - eina_list_append(handlers, - ecore_event_handler_add(E_EVENT_BORDER_ADD, - _il_home_border_add, NULL)); - handlers = - eina_list_append(handlers, - ecore_event_handler_add(E_EVENT_BORDER_REMOVE, - _il_home_border_remove, NULL)); - - handlers = - eina_list_append(handlers, - ecore_event_handler_add(ECORE_EXE_EVENT_DEL, - _il_home_win_cb_exe_del, NULL)); - - e_gadcon_provider_register(&_gc_class); - return m; -} - -EAPI int -e_modapi_shutdown(E_Module *m) -{ - Ecore_Event_Handler *handle; - Il_Home_Exec *exe; - - EINA_LIST_FREE(exes, exe) - { - if (exe->exec) - { - ecore_exe_terminate(exe->exec); - ecore_exe_free(exe->exec); - exe->exec = NULL; - } - if (exe->handle) - { - e_busycover_pop(exe->cover, exe->handle); - exe->handle = NULL; - } - if (exe->timeout) ecore_timer_del(exe->timeout); - E_FREE(exe); - } - - _il_home_apps_unpopulate(); - - EINA_LIST_FREE(handlers, handle) - ecore_event_handler_del(handle); - - e_gadcon_provider_unregister(&_gc_class); - - il_home_config_shutdown(); - return 1; -} - -EAPI int -e_modapi_save(E_Module *m) -{ - return il_home_config_save(); -} - -void -il_home_win_cfg_update(void) -{ - _il_home_apps_unpopulate(); - _il_home_apps_populate(); -} - -/* local functions */ -static E_Gadcon_Client * -_gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style) -{ - Instance *inst; - Evas_Object *icon; - Ecore_X_Window xwin; - Ecore_X_Illume_Mode mode; - char buff[PATH_MAX]; - - snprintf(buff, sizeof(buff), "%s/e-module-illume-home.edj", - il_home_cfg->mod_dir); - - inst = E_NEW(Instance, 1); - inst->o_btn = e_widget_button_add(gc->evas, NULL, NULL, - _il_home_btn_cb_click, inst, NULL); - icon = e_icon_add(evas_object_evas_get(inst->o_btn)); - e_icon_file_edje_set(icon, buff, "icon"); - e_widget_button_icon_set(inst->o_btn, icon); - - inst->gcc = e_gadcon_client_new(gc, name, id, style, inst->o_btn); - inst->gcc->data = inst; - - _il_home_win_new(inst); - - xwin = inst->gcc->gadcon->zone->black_win; - mode = ecore_x_e_illume_mode_get(xwin); - if (mode > ECORE_X_ILLUME_MODE_SINGLE) - _il_home_win_new(inst); - - inst->handlers = - eina_list_append(inst->handlers, - ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, - _il_home_cb_client_message, inst)); - inst->handlers = - eina_list_append(inst->handlers, - ecore_event_handler_add(ECORE_X_EVENT_WINDOW_PROPERTY, - _il_home_cb_prop_change, inst)); - - instances = eina_list_append(instances, inst); - return inst->gcc; -} - -static void -_gc_shutdown(E_Gadcon_Client *gcc) -{ - Instance *inst; - Il_Home_Win *hwin; - Ecore_Event_Handler *hdl; - - if (!(inst = gcc->data)) return; - - instances = eina_list_remove(instances, inst); - - EINA_LIST_FREE(inst->handlers, hdl) - ecore_event_handler_del(hdl); - - if (inst->o_btn) evas_object_del(inst->o_btn); - - EINA_LIST_FREE(inst->wins, hwin) - e_object_del(E_OBJECT(hwin)); - - E_FREE(inst); -} - -static void -_gc_orient(E_Gadcon_Client *gcc, E_Gadcon_Orient orient) -{ - e_gadcon_client_aspect_set(gcc, 16, 16); - e_gadcon_client_min_size_set(gcc, 16, 16); -} - -static char * -_gc_label(E_Gadcon_Client_Class *cc) -{ - return _("Illume-Home"); -} - -static Evas_Object * -_gc_icon(E_Gadcon_Client_Class *cc, Evas *evas) -{ - Evas_Object *o; - char buff[PATH_MAX]; - - snprintf(buff, sizeof(buff), "%s/e-module-illume-home.edj", - il_home_cfg->mod_dir); - o = edje_object_add(evas); - edje_object_file_set(o, buff, "icon"); - return o; -} - -static const char * -_gc_id_new(E_Gadcon_Client_Class *cc) -{ - char buff[PATH_MAX]; - - snprintf(buff, sizeof(buff), "%s.%d", _gc_class.name, - eina_list_count(instances)); - return strdup(buff); -} - -static void -_il_home_btn_cb_click(void *data, void *data2) -{ - Instance *inst; - - if (!(inst = data)) return; - - /* if there are less than 2 home windows, create a new one */ - if (eina_list_count(inst->wins) < 2) - _il_home_win_new(inst); - else - { - E_Zone *zone; - - zone = inst->gcc->gadcon->zone; - - /* already 2 home windows, so tell illume to focus one */ - ecore_x_e_illume_focus_home_send(zone->black_win); - } -} - -static void -_il_home_win_new(Instance *inst) -{ - Il_Home_Win *hwin; - E_Zone *zone; - char buff[PATH_MAX]; - - if (!inst) return; - - hwin = E_OBJECT_ALLOC(Il_Home_Win, IL_HOME_WIN_TYPE, - _il_home_win_cb_free); - if (!hwin) return; - inst->wins = eina_list_append(inst->wins, hwin); - - zone = inst->gcc->gadcon->zone; - hwin->zone = zone; - - hwin->win = e_win_new(zone->container); - if (!hwin->win) - { - e_object_del(E_OBJECT(hwin)); - return; - } - hwin->win->data = inst; - e_win_title_set(hwin->win, _("Illume Home")); - e_win_name_class_set(hwin->win, "Illume-Home", "Illume-Home"); - e_win_resize_callback_set(hwin->win, _il_home_win_cb_resize); - e_win_no_remember_set(hwin->win, EINA_TRUE); - - /* don't accept focus */ - ecore_x_icccm_hints_set(hwin->win->evas_win, 0, 0, 0, 0, 0, 0, 0); - - snprintf(buff, sizeof(buff), "%s/e-module-illume-home.edj", - il_home_cfg->mod_dir); - - hwin->o_bg = edje_object_add(e_win_evas_get(hwin->win)); - if (!e_theme_edje_object_set(hwin->o_bg, - "base/theme/modules/illume-home", - "modules/illume-home/window")) - edje_object_file_set(hwin->o_bg, buff, "modules/illume-home/window"); - evas_object_move(hwin->o_bg, 0, 0); - evas_object_show(hwin->o_bg); - - hwin->o_sf = e_scrollframe_add(e_win_evas_get(hwin->win)); - e_scrollframe_single_dir_set(hwin->o_sf, 1); - evas_object_move(hwin->o_sf, 0, 0); - evas_object_show(hwin->o_sf); - - e_scrollframe_custom_edje_file_set(hwin->o_sf, buff, - "modules/illume-home/launcher/scrollview"); - - hwin->o_fm = e_fm2_add(e_win_evas_get(hwin->win)); - _il_home_fmc_set(hwin->o_fm); - evas_object_show(hwin->o_fm); - e_user_dir_concat_static(buff, "appshadow"); - e_fm2_path_set(hwin->o_fm, NULL, buff); - - e_fm2_window_object_set(hwin->o_fm, E_OBJECT(hwin->win)); - - e_scrollframe_extern_pan_set(hwin->o_sf, hwin->o_fm, - _il_home_pan_set, - _il_home_pan_get, - _il_home_pan_max_get, - _il_home_pan_child_size_get); - evas_object_propagate_events_set(hwin->o_fm, 0); - evas_object_smart_callback_add(hwin->o_fm, "selected", - _il_home_cb_selected, hwin); - - hwin->cover = e_busycover_new(hwin->win); - - e_win_move_resize(hwin->win, zone->x, zone->y, zone->w, (zone->h / 2)); - e_win_show(hwin->win); - - e_border_zone_set(hwin->win->border, zone); - - if (hwin->win->evas_win) - e_drop_xdnd_register_set(hwin->win->evas_win, 1); -} - -static void -_il_home_win_cb_free(Il_Home_Win *hwin) -{ - if (hwin->win->evas_win) - e_drop_xdnd_register_set(hwin->win->evas_win, 0); - - if (hwin->cover) e_object_del(E_OBJECT(hwin->cover)); - hwin->cover = NULL; - - if (hwin->o_bg) evas_object_del(hwin->o_bg); - hwin->o_bg = NULL; - if (hwin->o_sf) evas_object_del(hwin->o_sf); - hwin->o_sf = NULL; - if (hwin->o_fm) evas_object_del(hwin->o_fm); - hwin->o_fm = NULL; - - if (hwin->win) e_object_del(E_OBJECT(hwin->win)); - hwin->win = NULL; -} - -static void -_il_home_win_cb_resize(E_Win *win) -{ - Instance *inst; - Il_Home_Win *hwin; - Eina_List *l; - - if (!(inst = win->data)) return; - EINA_LIST_FOREACH(inst->wins, l, hwin) - { - if (hwin->win != win) - { - hwin = NULL; - continue; - } - else break; - } - if (!hwin) return; - - if (hwin->o_bg) evas_object_resize(hwin->o_bg, win->w, win->h); - if (hwin->o_sf) evas_object_resize(hwin->o_sf, win->w, win->h); - if (hwin->cover) e_busycover_resize(hwin->cover, win->w, win->h); -} - -static void -_il_home_pan_set(Evas_Object *obj, Evas_Coord x, Evas_Coord y) -{ - e_fm2_pan_set(obj, x, y); -} - -static void -_il_home_pan_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y) -{ - e_fm2_pan_get(obj, x, y); -} - -static void -_il_home_pan_max_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y) -{ - e_fm2_pan_max_get(obj, x, y); -} - -static void -_il_home_pan_child_size_get(Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) -{ - e_fm2_pan_child_size_get(obj, w, h); -} - -static void -_il_home_cb_selected(void *data, Evas_Object *obj, void *event) -{ - Il_Home_Win *hwin; - Eina_List *selected; - E_Fm2_Icon_Info *ici; - - if (!(hwin = data)) return; - if (!(selected = e_fm2_selected_list_get(hwin->o_fm))) return; - EINA_LIST_FREE(selected, ici) - { - Efreet_Desktop *desktop; - - if (ici) - { - if (ici->real_link) - { - desktop = efreet_desktop_get(ici->real_link); - if (desktop) - _il_home_desktop_run(hwin, desktop); - } - } - } -} - -static void -_il_home_desktop_run(Il_Home_Win *hwin, Efreet_Desktop *desktop) -{ - E_Exec_Instance *eins; - Il_Home_Exec *exe; - Eina_List *l; - E_Border *b; - char buff[PATH_MAX]; - - if ((!desktop) || (!desktop->exec)) return; - - EINA_LIST_FOREACH(exes, l, exe) - { - if (exe->desktop == desktop) - { - if ((exe->border) && - (exe->border->zone == hwin->win->border->zone)) - { - e_border_uniconify(exe->border); - e_border_show(exe->border); - e_border_raise(exe->border); - e_border_focus_set(exe->border, 1, 1); - return; - } - } - } - - b = _il_home_desktop_find_border(hwin->win->border->zone, desktop); - if (b) - { - e_border_uniconify(b); - e_border_show(b); - e_border_raise(b); - e_border_focus_set(b, 1, 1); - return; - } - - exe = E_NEW(Il_Home_Exec, 1); - if (!exe) return; - exe->cover = hwin->cover; - - eins = e_exec(hwin->win->border->zone, desktop, NULL, NULL, "illume-home"); - exe->desktop = desktop; - exe->zone = hwin->win->border->zone; - if (eins) - { - exe->exec = eins->exe; - exe->startup_id = eins->startup_id; - if (eins->exe) - exe->pid = ecore_exe_pid_get(eins->exe); - } - - exe->timeout = ecore_timer_add(20.0, _il_home_win_cb_timeout, exe); - snprintf(buff, sizeof(buff), "Starting %s", desktop->name); - exe->handle = e_busycover_push(hwin->cover, buff, NULL); - exes = eina_list_append(exes, exe); -} - -static void -_il_home_apps_populate(void) -{ - Eina_List *l, *ll; - Instance *inst; - char buff[PATH_MAX]; - - e_user_dir_concat_static(buff, "appshadow"); - ecore_file_mkpath(buff); - - _il_home_desks_populate(); - - EINA_LIST_FOREACH(instances, l, inst) - { - Il_Home_Win *hwin; - - EINA_LIST_FOREACH(inst->wins, ll, hwin) - { - if (!hwin) continue; - _il_home_fmc_set(hwin->o_fm); - e_fm2_path_set(hwin->o_fm, NULL, buff); - } - } -} - -static void -_il_home_apps_unpopulate(void) -{ - Efreet_Desktop *desktop; - Eina_List *files; - char buff[PATH_MAX], *file; - size_t len; - - EINA_LIST_FREE(desks, desktop) - efreet_desktop_free(desktop); - - len = e_user_dir_concat_static(buff, "appshadow"); - if ((len + 2) >= sizeof(buff)) return; - - files = ecore_file_ls(buff); - buff[len] = '/'; - len++; - - EINA_LIST_FREE(files, file) - { - if (eina_strlcpy(buff + len, file, sizeof(buff) - len) >= sizeof(buff) - len) - continue; - ecore_file_unlink(buff); - free(file); - } -} - -static void -_il_home_fmc_set(Evas_Object *obj) -{ - E_Fm2_Config fmc; - - if (!obj) return; - memset(&fmc, 0, sizeof(E_Fm2_Config)); - fmc.view.mode = E_FM2_VIEW_MODE_GRID_ICONS; - fmc.view.open_dirs_in_place = 1; - fmc.view.selector = 0; - fmc.view.single_click = il_home_cfg->single_click; - fmc.view.single_click_delay = il_home_cfg->single_click_delay; - fmc.view.no_subdir_jump = 1; - fmc.icon.extension.show = 0; - fmc.icon.icon.w = il_home_cfg->icon_size * e_scale / 2.0; - fmc.icon.icon.h = il_home_cfg->icon_size * e_scale / 2.0; - fmc.icon.fixed.w = il_home_cfg->icon_size * e_scale / 2.0; - fmc.icon.fixed.h = il_home_cfg->icon_size * e_scale / 2.0; - fmc.list.sort.no_case = 0; - fmc.list.sort.dirs.first = 1; - fmc.list.sort.dirs.last = 0; - fmc.selection.single = 1; - fmc.selection.windows_modifiers = 0; - e_fm2_config_set(obj, &fmc); -} - -static void -_il_home_desks_populate(void) -{ - Efreet_Menu *menu; - - menu = efreet_menu_get(); - if (menu) - { - Eina_List *l, *ll; - Efreet_Menu *entry, *subentry; - Eina_List *settings, *sys, *kbd; - int num = 0; - - settings = efreet_util_desktop_category_list("Settings"); - sys = efreet_util_desktop_category_list("System"); - kbd = efreet_util_desktop_category_list("Keyboard"); - EINA_LIST_FOREACH(menu->entries, l, entry) - { - if (entry->type != EFREET_MENU_ENTRY_MENU) continue; - EINA_LIST_FOREACH(entry->entries, ll, subentry) - { - Efreet_Desktop *desktop; - - if (subentry->type != EFREET_MENU_ENTRY_DESKTOP) continue; - if (!(desktop = subentry->desktop)) continue; - if ((settings) && (sys) && - (eina_list_data_find(settings, desktop)) && - (eina_list_data_find(sys, desktop))) continue; - if ((kbd) && (eina_list_data_find(kbd, desktop))) - continue; - if (!desktop) continue; - desks = eina_list_append(desks, desktop); - efreet_desktop_ref(desktop); - if (desktop) - { - char buff[PATH_MAX]; - - e_user_dir_snprintf(buff, sizeof(buff), - "appshadow/%04x.desktop", num); - ecore_file_symlink(desktop->orig_path, buff); - } - num++; - } - } - } -} - -static int -_il_home_desktop_list_change(void *data, int type, void *event) -{ - if (defer) ecore_timer_del(defer); - defer = ecore_timer_add(1.0, _il_home_update_deferred, NULL); - return 1; -} - -static int -_il_home_desktop_change(void *data, int type, void *event) -{ - if (defer) ecore_timer_del(defer); - defer = ecore_timer_add(1.0, _il_home_update_deferred, NULL); - return 1; -} - -static int -_il_home_update_deferred(void *data) -{ - _il_home_apps_unpopulate(); - _il_home_apps_populate(); - defer = NULL; - return 0; -} - -static int -_il_home_win_cb_exe_del(void *data, int type, void *event) -{ - Il_Home_Exec *exe; - Ecore_Exe_Event_Del *ev; - Eina_List *l; - - ev = event; - EINA_LIST_FOREACH(exes, l, exe) - { - if (exe->pid == ev->pid) - { - if (exe->handle) - { - e_busycover_pop(exe->cover, exe->handle); - exe->handle = NULL; - } - exes = eina_list_remove_list(exes, l); - if (exe->timeout) ecore_timer_del(exe->timeout); - E_FREE(exe); - return 1; - } - } - return 1; -} - -static E_Border * -_il_home_desktop_find_border(E_Zone *zone, Efreet_Desktop *desktop) -{ - Eina_List *l; - E_Border *bd; - char *exe = NULL, *p; - - if (!desktop) return NULL; - if (!desktop->exec) return NULL; - p = strchr(desktop->exec, ' '); - if (!p) - exe = strdup(desktop->exec); - else - { - exe = malloc(p - desktop->exec + 1); - memset(exe, 0, sizeof(exe)); - if (exe) eina_strlcpy(exe, desktop->exec, p - desktop->exec + 1); - } - if (exe) - { - p = strrchr(exe, '/'); - if (p) strcpy(exe, p + 1); - } - - EINA_LIST_FOREACH(e_border_client_list(), l, bd) - { - if (bd->zone != zone) continue; - if (e_exec_startup_id_pid_find(bd->client.netwm.pid, - bd->client.netwm.startup_id) == desktop) - { - if (exe) free(exe); - return bd; - } - if (exe) - { - if (bd->client.icccm.command.argv) - { - char *pp; - - pp = strrchr(bd->client.icccm.command.argv[0], '/'); - if (!pp) pp = bd->client.icccm.command.argv[0]; - if (!strcmp(exe, pp)) - { - free(exe); - return bd; - } - } - if ((bd->client.icccm.name) && - (!strcasecmp(bd->client.icccm.name, exe))) - { - free(exe); - return bd; - } - } - } - if (exe) free(exe); - return NULL; -} - -static int -_il_home_win_cb_timeout(void *data) -{ - Il_Home_Exec *exe; - - if (!(exe = data)) return 1; - - if (exe->handle) e_busycover_pop(exe->cover, exe->handle); - exe->handle = NULL; - - if (!exe->border) - { - exes = eina_list_remove(exes, exe); - E_FREE(exe); - return 0; - } - exe->timeout = NULL; - return 0; -} - -static int -_il_home_border_add(void *data, int type, void *event) -{ - E_Event_Border_Add *ev; - Il_Home_Exec *exe; - Eina_List *l; - - ev = event; - EINA_LIST_FOREACH(exes, l, exe) - { - if (!exe->border) - { - if ((exe->startup_id == ev->border->client.netwm.startup_id) || - (exe->pid == ev->border->client.netwm.pid)) - { - exe->border = ev->border; - } - } - if (!exe->border) continue; - if (exe->border->zone != exe->zone) - { - exe->border->zone = exe->zone; - exe->border->x = exe->zone->x; - exe->border->y = exe->zone->y; - exe->border->changes.pos = 1; - exe->border->changed = 1; - } - if (exe->handle) - { - e_busycover_pop(exe->cover, exe->handle); - exe->handle = NULL; - } - if (exe->timeout) ecore_timer_del(exe->timeout); - exe->timeout = NULL; - } - return 1; -} - -static int -_il_home_border_remove(void *data, int type, void *event) -{ - E_Event_Border_Remove *ev; - Il_Home_Exec *exe; - Eina_List *l; - - ev = event; - EINA_LIST_FOREACH(exes, l, exe) - { - if (exe->border == ev->border) - { - if (exe->exec) ecore_exe_free(exe->exec); - exe->exec = NULL; - if (exe->handle) e_busycover_pop(exe->cover, exe->handle); - exe->handle = NULL; - exe->border = NULL; - break; - } - } - return 1; -} - -static int -_il_home_cb_client_message(void *data, int type, void *event) -{ - Ecore_X_Event_Client_Message *ev; - Instance *inst; - - ev = event; - if (!(inst = data)) return 1; - if (ev->message_type == ECORE_X_ATOM_E_ILLUME_HOME_NEW) - { - E_Zone *zone; - - zone = inst->gcc->gadcon->zone; - if (zone->black_win != ev->win) return 1; - _il_home_win_new(inst); - } - else if (ev->message_type == ECORE_X_ATOM_E_ILLUME_HOME_DEL) - { - E_Border *bd; - Eina_List *l; - Il_Home_Win *hwin; - - if (!(bd = e_border_find_by_client_window(ev->win))) return 1; - EINA_LIST_FOREACH(inst->wins, l, hwin) - { - if (hwin->win->border == bd) - { - inst->wins = eina_list_remove_list(inst->wins, inst->wins); - e_object_del(E_OBJECT(hwin)); - break; - } - } - } - - return 1; -} - -static int -_il_home_cb_prop_change(void *data, int type, void *event) -{ - Instance *inst; - Ecore_X_Event_Window_Property *ev; - Eina_List *l; - Il_Home_Win *hwin; - - ev = event; - if (!(inst = data)) return 1; -// if (ev->win != ecore_x_window_root_first_get()) return 1; - if (strcmp(ecore_x_atom_name_get(ev->atom), "ENLIGHTENMENT_SCALE")) - return 1; - - EINA_LIST_FOREACH(inst->wins, l, hwin) - if (hwin->o_fm) - { - _il_home_fmc_set(hwin->o_fm); - e_fm2_refresh(hwin->o_fm); - } - - return 1; -} diff --git a/src/modules/illume-home/e_mod_main.h b/src/modules/illume-home/e_mod_main.h deleted file mode 100644 index 04c4f9724..000000000 --- a/src/modules/illume-home/e_mod_main.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef E_MOD_MAIN_H -#define E_MOD_MAIN_H - -EAPI extern E_Module_Api e_modapi; - -EAPI void *e_modapi_init(E_Module *m); -EAPI int e_modapi_shutdown(E_Module *m); -EAPI int e_modapi_save(E_Module *m); - -void il_home_win_cfg_update(void); - -#endif diff --git a/src/modules/illume-home/module.desktop.in b/src/modules/illume-home/module.desktop.in deleted file mode 100644 index c5e5ce227..000000000 --- a/src/modules/illume-home/module.desktop.in +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Type=Link -Name=Illume-Home -Icon=e-module-illume-home -X-Enlightenment-ModuleType=system -Comment=Illume Home for Embedded -Comment[fr]=Illume pour l'embarqué – Home -Comment[it]=Illume per sistemi embedded – modulo Home diff --git a/src/modules/illume-indicator/e_mod_main.c b/src/modules/illume-indicator/e_mod_main.c deleted file mode 100644 index c825207ed..000000000 --- a/src/modules/illume-indicator/e_mod_main.c +++ /dev/null @@ -1,72 +0,0 @@ -#include "e.h" -#include "e_mod_main.h" -#include "e_mod_ind_win.h" - -/* local variables */ -static Eina_List *iwins = NULL; - -/* external variables */ -const char *_ind_mod_dir = NULL; - -EAPI E_Module_Api e_modapi = { E_MODULE_API_VERSION, "Illume-Indicator" }; - -EAPI void * -e_modapi_init(E_Module *m) -{ - E_Manager *man; - Eina_List *ml; - - /* set module priority so we load before others */ - e_module_priority_set(m, 90); - - /* set module directory variable */ - _ind_mod_dir = eina_stringshare_add(m->dir); - - /* loop through the managers (root windows) */ - EINA_LIST_FOREACH(e_manager_list(), ml, man) - { - E_Container *con; - Eina_List *cl; - - /* loop through containers */ - EINA_LIST_FOREACH(man->containers, cl, con) - { - E_Zone *zone; - Eina_List *zl; - - /* for each zone, create an indicator window */ - EINA_LIST_FOREACH(con->zones, zl, zone) - { - Ind_Win *iwin; - - /* try to create new indicator window */ - if (!(iwin = e_mod_ind_win_new(zone))) continue; - iwins = eina_list_append(iwins, iwin); - } - } - } - - return m; -} - -EAPI int -e_modapi_shutdown(E_Module *m) -{ - Ind_Win *iwin; - - /* destroy the indicator windows */ - EINA_LIST_FREE(iwins, iwin) - e_object_del(E_OBJECT(iwin)); - - /* clear module directory variable */ - if (_ind_mod_dir) eina_stringshare_del(_ind_mod_dir); - _ind_mod_dir = NULL; - - return 1; -} - -EAPI int -e_modapi_save(E_Module *m) -{ - return 1; -} diff --git a/src/modules/illume-softkey/Makefile.am b/src/modules/illume-softkey/Makefile.am deleted file mode 100644 index e9b26d9cf..000000000 --- a/src/modules/illume-softkey/Makefile.am +++ /dev/null @@ -1,51 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in -MODULE = illume-softkey -SUBDIRS = images - -EDJE_CC = @edje_cc@ -EDJE_FLAGS = -v \ - -id $(top_srcdir)/src/modules/$(MODULE)/images \ - @EDJE_DEF@ - -# data files for the module -filesdir = $(libdir)/enlightenment/modules/$(MODULE) -files_DATA = \ - e-module-$(MODULE).edj \ - module.desktop - -EXTRA_DIST = \ - e-module-$(MODULE).edc \ - module.desktop.in - -# the module .so file -INCLUDES = -I. \ - -I$(top_srcdir) \ - -I$(top_srcdir)/src/modules/$(MODULE) \ - -I$(top_srcdir)/src/bin \ - -I$(top_srcdir)/src/lib \ - -I$(top_srcdir)/src/modules \ - @e_cflags@ - -pkgdir = $(libdir)/enlightenment/modules/$(MODULE)/$(MODULE_ARCH) -pkg_LTLIBRARIES = module.la - -module_la_SOURCES = \ - e_mod_sft_win.c \ - e_mod_sft_win.h \ - e_mod_main.c \ - e_mod_main.h - -module_la_LIBADD = @e_libs@ @dlopen_libs@ -module_la_LDFLAGS = -module -avoid-version -module_la_DEPENDENCIES = $(top_builddir)/config.h - -e-module-$(MODULE).edj: Makefile $(EXTRA_DIST) - $(EDJE_CC) $(EDJE_FLAGS) \ - $(top_srcdir)/src/modules/$(MODULE)/e-module-$(MODULE).edc \ - $(top_builddir)/src/modules/$(MODULE)/e-module-$(MODULE).edj - -clean-local: - rm -f *.edj - -uninstall: - rm -rf $(DESTDIR)$(libdir)/enlightenment/modules/$(MODULE) diff --git a/src/modules/illume-softkey/e-module-illume-softkey.edc b/src/modules/illume-softkey/e-module-illume-softkey.edc deleted file mode 100644 index 73d4f3ccf..000000000 --- a/src/modules/illume-softkey/e-module-illume-softkey.edc +++ /dev/null @@ -1,133 +0,0 @@ -collections -{ - group - { - images.image: "module_icon.png" COMP; - name: "icon"; - max: 128 128; - parts - { - part - { - name: "base"; - mouse_events: 0; - description - { - state: "default" 0.0; - aspect: 1.0 1.0; - aspect_preference: BOTH; - image.normal: "module_icon.png"; - } - } - } - } - group - { - images - { - image: "shelf_alt_bg.png" COMP; - image: "shelf_alt_over.png" COMP; - image: "shelf_alt_shine.png" COMP; - } - name: "modules/illume-softkey/window"; - parts - { - part - { - name: "base"; - type: IMAGE; - mouse_events: 0; - description - { - state: "default" 0.0; - color_class: "shelf_base"; - image.normal: "shelf_alt_bg.png"; - fill.smooth: 0; - } - } - part - { - name: "shine"; - type: IMAGE; - mouse_events: 0; - description - { - state: "default" 0.0; - image.normal: "shelf_alt_shine.png"; - rel2.relative: 1.0 0.5; - fill.smooth: 0; - } - } - part - { - name: "over"; - type: IMAGE; - mouse_events: 0; - description - { - state: "default" 0.0; - image - { - normal: "shelf_alt_over.png"; - border: 5 5 5 5; - middle: 0; - } - fill.smooth: 0; - } - } - part - { - name: "e.box.extra_buttons"; - type: BOX; - description - { - state: "default" 0.0; - rel1 - { - offset: 3 3; - to: "base"; - } - rel2 - { - relative: 0.60 1.0; - offset: 0 -4; - to: "base"; - } - box - { - layout: "horizontal"; - padding: 2 0; - align: 0.0 0.5; - min: 1 1; - } - } - } - part - { - name: "e.box.buttons"; - type: BOX; - description - { - state: "default" 0.0; - rel1 - { - relative: 1.0 0.0; - to: "e.box.extra_buttons"; - } - rel2 - { - offset: -2 -4; - to: "base"; - } - box - { - layout: "horizontal"; - padding: 2 0; - align: 1.0 0.5; - min: 1 1; - } - } - } - } - } -} diff --git a/src/modules/illume-softkey/e_mod_main.c b/src/modules/illume-softkey/e_mod_main.c deleted file mode 100644 index 0be948f57..000000000 --- a/src/modules/illume-softkey/e_mod_main.c +++ /dev/null @@ -1,76 +0,0 @@ -#include "e.h" -#include "e_mod_main.h" -#include "e_mod_sft_win.h" - -/* local variables */ -static Eina_List *swins = NULL; - -/* external variables */ -const char *_sft_mod_dir = NULL; - -EAPI E_Module_Api e_modapi = { E_MODULE_API_VERSION, "Illume-Softkey" }; - -EAPI void * -e_modapi_init(E_Module *m) -{ - E_Manager *man; - Eina_List *ml; - - /* set module priority so we load before others */ - e_module_priority_set(m, 85); - - /* set module directory variable */ - _sft_mod_dir = eina_stringshare_add(m->dir); - - /* loop through the managers (root windows) */ - EINA_LIST_FOREACH(e_manager_list(), ml, man) - { - E_Container *con; - Eina_List *cl; - - /* loop through containers */ - EINA_LIST_FOREACH(man->containers, cl, con) - { - E_Zone *zone; - Eina_List *zl; - - /* for each zone, create a softkey window */ - EINA_LIST_FOREACH(con->zones, zl, zone) - { - Sft_Win *swin; - - /* try to create new softkey window */ - if (!(swin = e_mod_sft_win_new(zone))) continue; - swins = eina_list_append(swins, swin); - } - } - } - - return m; -} - -EAPI int -e_modapi_shutdown(E_Module *m) -{ - Sft_Win *swin; - - /* destroy the softkey windows */ - EINA_LIST_FREE(swins, swin) - e_object_del(E_OBJECT(swin)); - - /* reset softkey geometry for conformant apps */ - ecore_x_e_illume_softkey_geometry_set(ecore_x_window_root_first_get(), - 0, 0, 0, 0); - - /* clear module directory variable */ - if (_sft_mod_dir) eina_stringshare_del(_sft_mod_dir); - _sft_mod_dir = NULL; - - return 1; -} - -EAPI int -e_modapi_save(E_Module *m) -{ - return 1; -} diff --git a/src/modules/illume-softkey/e_mod_main.h b/src/modules/illume-softkey/e_mod_main.h deleted file mode 100644 index 78ba22502..000000000 --- a/src/modules/illume-softkey/e_mod_main.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef E_MOD_MAIN_H -# define E_MOD_MAIN_H - -EAPI extern E_Module_Api e_modapi; - -EAPI void *e_modapi_init(E_Module *m); -EAPI int e_modapi_shutdown(E_Module *m); -EAPI int e_modapi_save(E_Module *m); - -extern const char *_sft_mod_dir; - -#endif diff --git a/src/modules/illume-softkey/e_mod_sft_win.c b/src/modules/illume-softkey/e_mod_sft_win.c deleted file mode 100644 index 72aec3569..000000000 --- a/src/modules/illume-softkey/e_mod_sft_win.c +++ /dev/null @@ -1,333 +0,0 @@ -#include "e.h" -#include "e_mod_main.h" -#include "e_mod_sft_win.h" - -/* local function prototypes */ -static void _e_mod_sft_win_cb_free(Sft_Win *swin); -static void _e_mod_sft_win_cb_hook_eval_end(void *data, void *data2); -static int _e_mod_sft_win_cb_win_prop(void *data, int type __UNUSED__, void *event); -static int _e_mod_sft_win_cb_client_message(void *data, int type __UNUSED__, void *event); -static void _e_mod_sft_win_cb_resize(E_Win *win); -static void _e_mod_sft_win_create_default_buttons(Sft_Win *swin); -static void _e_mod_sft_win_cb_close(void *data, void *data2 __UNUSED__); -static void _e_mod_sft_win_cb_back(void *data, void *data2 __UNUSED__); - -Sft_Win * -e_mod_sft_win_new(E_Zone *zone) -{ - Sft_Win *swin; - Ecore_X_Window_State states[2]; - - /* create our new softkey window object */ - swin = E_OBJECT_ALLOC(Sft_Win, SFT_WIN_TYPE, _e_mod_sft_win_cb_free); - if (!swin) return NULL; - - swin->zone = zone; - - /* hook into eval so we can set the softkey on the correct zone - swin->hook = e_border_hook_add(E_BORDER_HOOK_EVAL_END, - _e_mod_sft_win_cb_hook_eval_end, swin); -*/ - - /* hook into property change so we can adjust w/ e_scale */ - swin->scale_hdl = - ecore_event_handler_add(ECORE_X_EVENT_WINDOW_PROPERTY, - _e_mod_sft_win_cb_win_prop, swin); - - /* hook into client messages - swin->msg_hdl = - ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, - _e_mod_sft_win_cb_client_message, swin); - */ - - /* create new window */ - swin->win = e_win_new(zone->container); - swin->win->data = swin; - - /* set some properties on the window */ - e_win_title_set(swin->win, _("Illume Softkey")); - e_win_name_class_set(swin->win, "Illume-Softkey", "Illume-Softkey"); - e_win_no_remember_set(swin->win, EINA_TRUE); - - /* hook into window resize so we can resize our objects */ - e_win_resize_callback_set(swin->win, _e_mod_sft_win_cb_resize); - - /* set this window to not show in taskbar or pager */ - states[0] = ECORE_X_WINDOW_STATE_SKIP_TASKBAR; - states[1] = ECORE_X_WINDOW_STATE_SKIP_PAGER; - ecore_x_netwm_window_state_set(swin->win->evas_win, states, 2); - - /* set this window to not accept or take focus */ - ecore_x_icccm_hints_set(swin->win->evas_win, 0, 0, 0, 0, 0, 0, 0); - - /* create our base object */ - swin->o_base = edje_object_add(swin->win->evas); - if (!e_theme_edje_object_set(swin->o_base, - "base/theme/modules/illume-softkey", - "modules/illume-softkey/window")) - { - char buff[PATH_MAX]; - - snprintf(buff, sizeof(buff), - "%s/e-module-illume-softkey.edj", _sft_mod_dir); - edje_object_file_set(swin->o_base, buff, - "modules/illume-softkey/window"); - } - evas_object_move(swin->o_base, 0, 0); - evas_object_show(swin->o_base); - - /* create default buttons */ - _e_mod_sft_win_create_default_buttons(swin); - - /* set minimum size of this window */ - e_win_size_min_set(swin->win, zone->w, (32 * e_scale)); - - /* position and resize this window */ - e_win_move_resize(swin->win, zone->x, (zone->y + zone->h - (32 * e_scale)), - zone->w, (32 * e_scale)); - - /* show the window */ - e_win_show(swin->win); - - e_border_zone_set(swin->win->border, zone); - - /* set this window to be a dock window. This needs to be done after show - * as E will sometimes reset the window type */ - ecore_x_netwm_window_type_set(swin->win->evas_win, ECORE_X_WINDOW_TYPE_DOCK); - - /* tell conformant apps our position and size */ - ecore_x_e_illume_softkey_geometry_set(zone->black_win, - zone->x, (zone->h - (32 * e_scale)), - zone->w, (32 * e_scale)); - - return swin; -} - -/* local functions */ -static void -_e_mod_sft_win_cb_free(Sft_Win *swin) -{ - const Evas_Object *box; - - /* delete the message handler */ - if (swin->msg_hdl) ecore_event_handler_del(swin->msg_hdl); - swin->msg_hdl = NULL; - - /* delete the scale handler */ - if (swin->scale_hdl) ecore_event_handler_del(swin->scale_hdl); - swin->scale_hdl = NULL; - - /* delete the border hook */ - if (swin->hook) e_border_hook_del(swin->hook); - swin->hook = NULL; - - if (box = edje_object_part_object_get(swin->o_base, "e.box.buttons")) - { - Evas_Object *btn; - - /* delete the buttons */ - EINA_LIST_FREE(swin->btns, btn) - { - edje_object_part_box_remove(swin->o_base, "e.box.buttons", btn); - evas_object_del(btn); - } - } - if (box = edje_object_part_object_get(swin->o_base, "e.box.extra_buttons")) - { - Evas_Object *btn; - - /* delete the buttons */ - EINA_LIST_FREE(swin->extra_btns, btn) - { - edje_object_part_box_remove(swin->o_base, "e.box.extra_buttons", btn); - evas_object_del(btn); - } - } - - /* delete the objects */ - if (swin->o_base) evas_object_del(swin->o_base); - swin->o_base = NULL; - - /* delete the window */ - if (swin->win) e_object_del(E_OBJECT(swin->win)); - swin->win = NULL; - - /* tell conformant apps our position and size */ - ecore_x_e_illume_softkey_geometry_set(swin->zone->black_win, 0, 0, 0, 0); - - /* free the allocated object */ - E_FREE(swin); -} - -static void -_e_mod_sft_win_cb_hook_eval_end(void *data, void *data2) -{ - Sft_Win *swin; - E_Border *bd; - - if (!(swin = data)) return; - if (!(bd = data2)) return; - if (bd != swin->win->border) return; - - /* check border position and size */ - if (bd->x != swin->zone->x) - { - bd->x = swin->zone->x; - bd->changes.pos = 1; - } - if (bd->y != ((swin->zone->y + swin->zone->h) - bd->h)) - { - bd->y = ((swin->zone->y + swin->zone->h) - bd->h); - bd->changes.pos = 1; - } - if (bd->w != swin->zone->w) - { - bd->w = swin->zone->w; - bd->changes.size = 1; - } - if ((bd->changes.pos) || (bd->changes.size)) bd->changed = 1; - - /* if zone is not correct, set it */ - if (bd->zone != swin->zone) e_border_zone_set(bd, swin->zone); -} - -static int -_e_mod_sft_win_cb_win_prop(void *data, int type __UNUSED__, void *event) -{ - Sft_Win *swin; - Ecore_X_Event_Window_Property *ev; - - ev = event; - - if (!(swin = data)) return 1; - if (ev->win != ecore_x_window_root_get(swin->win->evas_win)) return 1; - if (strcmp(ecore_x_atom_name_get(ev->atom), "ENLIGHTENMENT_SCALE")) return 1; - - /* set minimum size of this window */ - e_win_size_min_set(swin->win, swin->zone->w, (32 * e_scale)); - - /* resize this window */ - e_win_resize(swin->win, swin->zone->w, (32 * e_scale)); - - /* tell conformant apps our position and size */ - ecore_x_e_illume_softkey_geometry_set(swin->zone->black_win, - swin->win->x, swin->win->y, - swin->win->w, (32 * e_scale)); - return 1; -} - -static int -_e_mod_sft_win_cb_client_message(void *data, int type __UNUSED__, void *event) -{ - Sft_Win *swin; - Ecore_X_Event_Client_Message *ev; - - ev = event; - if (!(swin = data)) return 1; - if (ev->win != swin->zone->black_win) return 1; - return 1; -} - -static void -_e_mod_sft_win_cb_resize(E_Win *win) -{ - Sft_Win *swin; - Evas_Object *btn; - const Evas_Object *box; - Eina_List *l; - int mw, mh; - - if (!(swin = win->data)) return; - - /* adjust button(s) size for e_scale */ - EINA_LIST_FOREACH(swin->btns, l, btn) - { - e_widget_size_min_get(btn, &mw, &mh); - evas_object_size_hint_min_set(btn, (mw * e_scale), (mh * e_scale)); - evas_object_resize(btn, (mw * e_scale), (mh * e_scale)); - } - - /* adjust box size for content */ - if (box = edje_object_part_object_get(swin->o_base, "e.box.buttons")) - { - evas_object_size_hint_min_get((Evas_Object *)box, &mw, &mh); - evas_object_resize((Evas_Object *)box, mw, mh); - } - - mw = mh = 0; - /* adjust button(s) size for e_scale */ - EINA_LIST_FOREACH(swin->extra_btns, l, btn) - { - e_widget_size_min_get(btn, &mw, &mh); - evas_object_size_hint_min_set(btn, (mw * e_scale), (mh * e_scale)); - evas_object_resize(btn, (mw * e_scale), (mh * e_scale)); - } - - /* adjust box size for content */ - if (box = edje_object_part_object_get(swin->o_base, "e.box.extra_buttons")) - { - evas_object_size_hint_min_get((Evas_Object *)box, &mw, &mh); - evas_object_resize((Evas_Object *)box, mw, mh); - } - - /* resize the base object */ - if (swin->o_base) evas_object_resize(swin->o_base, win->w, win->h); -} - -static void -_e_mod_sft_win_create_default_buttons(Sft_Win *swin) -{ - Evas_Object *btn; - int mw, mh; - - /* create back button */ - btn = e_widget_button_add(swin->win->evas, _("Back"), "go-previous", - _e_mod_sft_win_cb_back, swin, NULL); - e_widget_size_min_get(btn, &mw, &mh); - evas_object_size_hint_min_set(btn, (mw * e_scale), (mh * e_scale)); - - /* NB: this show is required when packing e_widgets into an edje box else - * the widgets do not receive any events */ - evas_object_show(btn); - - /* add button to box */ - edje_object_part_box_append(swin->o_base, "e.box.buttons", btn); - - /* add button to our list */ - swin->btns = eina_list_append(swin->btns, btn); - - - /* create close button */ - btn = e_widget_button_add(swin->win->evas, _("Close"), "window-close", - _e_mod_sft_win_cb_close, swin, NULL); - e_widget_size_min_get(btn, &mw, &mh); - evas_object_size_hint_min_set(btn, (mw * e_scale), (mh * e_scale)); - - /* NB: this show is required when packing e_widgets into an edje box else - * the widgets do not receive any events */ - evas_object_show(btn); - - /* add button to box */ - edje_object_part_box_append(swin->o_base, "e.box.buttons", btn); - - /* add button to our list */ - swin->btns = eina_list_append(swin->btns, btn); -} - -static void -_e_mod_sft_win_cb_close(void *data, void *data2 __UNUSED__) -{ - Sft_Win *swin; - - if (!(swin = data)) return; - ecore_x_e_illume_close_send(swin->zone->black_win); -} - -static void -_e_mod_sft_win_cb_back(void *data, void *data2 __UNUSED__) -{ - Sft_Win *swin; - - if (!(swin = data)) return; - ecore_x_e_illume_focus_back_send(swin->zone->black_win); -} diff --git a/src/modules/illume-softkey/e_mod_sft_win.h b/src/modules/illume-softkey/e_mod_sft_win.h deleted file mode 100644 index d481ed1f2..000000000 --- a/src/modules/illume-softkey/e_mod_sft_win.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef E_MOD_SFT_WIN_H -# define E_MOD_SFT_WIN_H - -/* define softkey window object type */ -# define SFT_WIN_TYPE 0xE1b0784 - -/* define structure for softkey window */ -typedef struct _Sft_Win Sft_Win; -struct _Sft_Win -{ - E_Object e_obj_inherit; - - E_Zone *zone; - E_Border_Hook *hook; - Ecore_Event_Handler *scale_hdl, *msg_hdl; - - E_Win *win; - Evas_Object *o_base; - Eina_List *btns, *extra_btns; -}; - -Sft_Win *e_mod_sft_win_new(E_Zone *zone); - -#endif diff --git a/src/modules/illume-softkey/images/Makefile.am b/src/modules/illume-softkey/images/Makefile.am deleted file mode 100644 index e6de6fd76..000000000 --- a/src/modules/illume-softkey/images/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in - -EXTRA_DIST = shelf_alt_bg.png \ - shelf_alt_shine.png \ - module_icon.png \ - shelf_alt_over.png diff --git a/src/modules/illume-softkey/images/module_icon.png b/src/modules/illume-softkey/images/module_icon.png deleted file mode 100644 index 82c1b76f30170677b37b1e6923e50fc6ff269186..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2815 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 R)rbH9002ovPDHLkV1m0vG@bwe diff --git a/src/modules/illume-softkey/images/shelf_alt_bg.png b/src/modules/illume-softkey/images/shelf_alt_bg.png deleted file mode 100644 index 64e2b2c2c3df3c9d47a5f939e7134baa5503be2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1232 zcmV;>1TXuEP)2=83?r5N|1WbNtkcOH-Nil>$e=(wNvzm9NJ=FD;TL}l zzx?wY;5oo^fad_u0iFXq2Y3$f9N-s!&f_pZgeX8OH_JouoorrqkB?pZZ<3Jug>IhBseKc~dDsya zTDbfBb^jegdZ*Jv7{W99fDNe!nd7owS_0 zX;|5^e?@Hmc@yqi3#*7d0s;Zsyefb&_fBob;%#Vd%kKhcS){;94YG=HrB>gkGR4rH zmY@=)9rlqmaoSeoFU0Ls12RJg^BlL|ig7xesB2|Dpv`*5o z!0}|K?PYzL1Q;iQB?i-P%X#3i8`97PBMT!6CCFB5+JKiO5yX-T)6QP68DY1Az|C3yuj8|CP1Eo*pM}nUJ_{5^h|j=*GBXNh}M(Nk<`4P*Ygp))9gDK zy?^F4)!p-$J10}=N_2b7dC^N1AqqI{H~_8u7K)IXa!E+Fi-@Tlua`9dAd<8$(UHJ_ z(oF$ZElw3HPiw|L1)PWd?v}v&0i+la>Xhno0W*IyLYnd?k$66p70*qk7r(WB1U-VA zG};LNG#*3a+du>>8B2S^US5p+z)<$7b+`rM3ut$;JdeYsjvr!D!;6#HoMd`{&^#)< z6xVDUDZP#)%SM?+mO->z?XMzkP1uq%4p)LRrM+=!3edHxx22mKl_^x~M!)hVFtLw~ z)4U(h6%;vfrRDLI8#}<2r06`jq1xyt9JQM1iKjQj)^05+F^)flTxynXJ95UDk?LK^ ziU`Z&spG8FX{%CMkyxluWZ5|x_T*{}{tFm=q2Tvv#J{u<-%9=u50;o~V+~T-5X&3% z^bD3Vt-K9LoPd{Fhb_&tsnVu(vd3VMVNPqZR~Yw(nER;EZ5yM!dbAYgo%H{r9rz0( zGi%BdZPe6MWDKs<$t@tQNomjj*=f?Db&hFrZ4Rmg^l_Bfsx zJMOJ3=|y~4bvPnqO6`r_K)>wBdZV@eFm9v3J~)ZdjN8o3HciA<*wfCI7ea69dpEVS z%03DFJUn@ZbW!7-FYmTP3d+Qe(Cp1a5gxf?rC*A8_bWu_GMqZM7 uj#H4Svyj~FvFWG;2Kxp^pMP-t*Uuj?5BVNW09Atk0000 diff --git a/src/modules/illume-softkey/images/shelf_alt_over.png b/src/modules/illume-softkey/images/shelf_alt_over.png deleted file mode 100644 index cef17132f12b7a0ee2a9edcc40607b86c502fc46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 502 zcmVb;@5Jmr*r9(79k*H~sE6~uOG!#_aCAmlr6NwfHDK#{R zf&w9fVnK+_j>kBS7vmE|-^w(WT>a<&XJ>b9y4~)3zuymgyxcPkkIUbLd0bn|v z+R9h09lsN zMJUTMy#bImvAYKlLI7otkgzwguse{}$ARnhO6P#rTn~W%2>p!%QlHHneGmAlM&gcwjs+9;SVGmSRAvy;tb3j#7!U(1H0bra1m1Q(dQ#uE{=6X2boTGEV zYo-ObTrL#{=;nZklmKxY(>ahNNqMoABne#;$8lUC9K+asT@v5pxN$yBe02nt zrqIneah#Kl+Q(DGIO(jtI#0J95vag!InU@e`c-4&9yL8b3P=O4N2ZWRk?1sM&>}!E zqE7FxAh4G$t6nKjLxL@zmTX3A;b$n6!5Xz$^bzMG>!k8^1T+X%p9U-nYLtzM0@<-t zXg1(viiMLNXd&p$6luUckVbD2;=r8+rYv|>@~=NOUNW~7h3>&+m13S0DMuxJ&<`l6 z`wgVGJ;{kGDx(PnOX>4yKO(R+g{l|yTPjsjnT%=;c&v`V;WyyDTg$JeiS%3x_W#o9 nMIllume Softkey for Embedded diff --git a/src/modules/illume2/e_illume.h b/src/modules/illume2/e_illume.h deleted file mode 100644 index 4cb8f805b..000000000 --- a/src/modules/illume2/e_illume.h +++ /dev/null @@ -1,329 +0,0 @@ -#ifndef E_ILLUME_H -# define E_ILLUME_H - -/* include standard E header */ -# include "e.h" - -/** - * @mainpage Illume - * - * @image html e.png - * - * @author Christopher Michael - * @date 2010 - * - * @section illume_toc_sec Table of contents - * - *
    - *
  • @ref illume_intro_sec - *
- * - * @section illume_intro_sec Introduction to Illume - * - * Illume is a module for Enlightenment that modifies the user interface of - * enlightenment to work cleanly and nicely on a mobile device - such as an - * Openmoko phone. It is resolution independent meaning that it can - * accommodate a very wide range of devices, from cell phones and PDAs to - * tablets and desktops. Illume has been designed from the ground up to - * support more than one screen in more than one way (multihead and xinerama). - * - * This is a work in progress and as such is subject to change. - */ - -/** - * @file e_illume.h - * - * This header provides the various defines, structures and functions that - * make writing illume policies easier. - * - * For details on the available functions, see @ref E_Illume_Main_Group. - * - * For details on the configuration structure, see @ref E_Illume_Config_Group. - * - * For details on the virtual keyboard, see @ref E_Illume_Keyboard_Group. - * - * For details on the Policy API, see @ref E_Illume_Policy_Group. - * - * For details on quickpanels, see @ref E_Illume_Quickpanel_Group. - */ - -/** - * @defgroup E_Illume_Keyboard_Group Illume Keyboard Information - * - * The following group defines information needed to interact with the - * Virtual Keyboard. - * - */ - -/* define enumeration for keyboard layout */ -typedef enum _E_Illume_Keyboard_Layout E_Illume_Keyboard_Layout; -enum _E_Illume_Keyboard_Layout -{ - E_ILLUME_KEYBOARD_LAYOUT_NONE, - E_ILLUME_KEYBOARD_LAYOUT_DEFAULT, - E_ILLUME_KEYBOARD_LAYOUT_ALPHA, - E_ILLUME_KEYBOARD_LAYOUT_NUMERIC, - E_ILLUME_KEYBOARD_LAYOUT_PIN, - E_ILLUME_KEYBOARD_LAYOUT_PHONE_NUMBER, - E_ILLUME_KEYBOARD_LAYOUT_HEX, - E_ILLUME_KEYBOARD_LAYOUT_TERMINAL, - E_ILLUME_KEYBOARD_LAYOUT_PASSWORD, - E_ILLUME_KEYBOARD_LAYOUT_IP, - E_ILLUME_KEYBOARD_LAYOUT_HOST, - E_ILLUME_KEYBOARD_LAYOUT_FILE, - E_ILLUME_KEYBOARD_LAYOUT_URL, - E_ILLUME_KEYBOARD_LAYOUT_KEYPAD, - E_ILLUME_KEYBOARD_LAYOUT_J2ME -}; - -/** - * @typedef E_Illume_Keyboard - * @brief structure for keyboard. - * - * @ingroup E_Illume_Keyboard_Group - */ -typedef struct _E_Illume_Keyboard E_Illume_Keyboard; - -/** - * @struct E_Illume_Keyboard - * @brief structure for keyboard. - * - * @ingroup E_Illume_Keyboard_Group - */ -struct _E_Illume_Keyboard -{ - E_Object e_obj_inherit; - - E_Border *border; /**< Test struct member */ - Ecore_Timer *timer; - Ecore_Animator *animator; - - E_Illume_Keyboard_Layout layout; - Eina_List *waiting_borders; - - double start, len; - int adjust, adjust_start, adjust_end; - - unsigned char visible : 1; - unsigned char disabled : 1; - unsigned char fullscreen : 1; -}; - -/** - * @defgroup E_Illume_Policy_Group Illume Policy Information - * - * The following group defines information needed to implement an Illume - * Policy. - * - * @warning There are some requirements that every policy must implement. - */ - -/** - * @def E_ILLUME_POLICY_API_VERSION - * @brief Current version of the Policy API that is supported by the Illume module. - * - * @warning Policies not written to match this version will fail to load. - * - * @ingroup E_Illume_Policy_Group - */ -# define E_ILLUME_POLICY_API_VERSION 2 - -/** - * @struct E_Illume_Policy_Api - * @brief structure for policy api - * - * When Illume tries to load a policy, it will check for the existince of - * this structure. If it is not found, the policy will fail to load. - * - * @warning This structure is required for Illume to load a policy. - * - * @ingroup E_Illume_Policy_Group - */ -typedef struct _E_Illume_Policy_Api E_Illume_Policy_Api; -struct _E_Illume_Policy_Api -{ - int version; /**< The version of this policy. */ - - /**< The name of this policy. */ - const char *name; - /**< The label of this policy. */ - const char *label; -}; - -/** - * @typedef E_Illume_Policy - * @brief structure for policy - * - * This structure actually holds the policy functions to call. - * - * @ingroup E_Illume_Policy_Group - */ -typedef struct _E_Illume_Policy E_Illume_Policy; -struct _E_Illume_Policy -{ - E_Object e_obj_inherit; - - /** pointer to the @ref E_Illume_Policy_Api policy api structure. */ - E_Illume_Policy_Api *api; - - void *handle; - - struct - { - /** @warning Required Functions. */ - void *(*init) (E_Illume_Policy *p); /**< pointer to the function that will be called by Illume to initialize this policy. */ - int (*shutdown) (E_Illume_Policy *p); /**< pointer to the function that Illume will call to shutdown this policy.*/ - - /** @note Optional Functions. */ - void (*border_add) (E_Border *bd); - void (*border_del) (E_Border *bd); - void (*border_focus_in) (E_Border *bd); - void (*border_focus_out) (E_Border *bd); - void (*border_activate) (E_Border *bd); - void (*border_post_fetch) (E_Border *bd); - void (*border_post_assign) (E_Border *bd); - void (*zone_layout) (E_Zone *zone); - void (*zone_move_resize) (E_Zone *zone); - void (*zone_mode_change) (E_Zone *zone, Ecore_X_Atom mode); - void (*zone_close) (E_Zone *zone); - void (*drag_start) (E_Border *bd); - void (*drag_end) (E_Border *bd); - void (*focus_back) (E_Zone *zone); - void (*focus_forward) (E_Zone *zone); - void (*focus_home) (E_Zone *zone); - void (*property_change) (Ecore_X_Event_Window_Property *event); - } funcs; -}; - -/** - * @defgroup E_Illume_Config_Group Illume Configuration Information - * - * The following group defines information pertaining to Illume Configuration. - */ - -/** - * @typedef E_Illume_Config - * @brief structure for Illume configuration. - * - * @ingroup E_Illume_Config_Group - */ -typedef struct _E_Illume_Config E_Illume_Config; -struct _E_Illume_Config -{ - int version; - - struct - { - struct - { - int duration; - } vkbd, quickpanel; - } animation; - - struct - { - const char *name; - struct - { - const char *class, *name, *title; - int type; - struct - { - int class, name, title, type; - } match; - } vkbd, indicator, softkey, home; - Eina_List *zones; - } policy; -}; - - -/** - * @typedef E_Illume_Config_Zone - * @brief structure for Illume zone configuration. - * - * @ingroup E_Illume_Config_Group - */ -typedef struct _E_Illume_Config_Zone E_Illume_Config_Zone; -struct _E_Illume_Config_Zone -{ - int id; /**< Id of the Zone that this config belongs to. */ - struct - { - int dual; - int side; - } mode; - - /* NB: These are not configurable by user...just placeholders */ - struct - { - int size; - } vkbd, indicator, softkey; -}; - -/** - * @defgroup E_Illume_Quickpanel_Group Illume Quickpanel Information - * - * The following group defines information pertaining to Illume Quickpanels. - */ - -/** - * @typedef E_Illume_Quickpanel - * @brief structure for Illume Quickpanels. - * - * @ingroup E_Illume_Quickpanel_Group - */ -typedef struct _E_Illume_Quickpanel E_Illume_Quickpanel; -struct _E_Illume_Quickpanel -{ - E_Object e_obj_inherit; - - E_Zone *zone; - Eina_List *borders; - Ecore_Timer *timer; - Ecore_Animator *animator; - double start, len; - int h, ih, adjust, adjust_start, adjust_end; - unsigned char visible : 1; -}; - -/* define function prototypes that policies can use */ -E_Illume_Config_Zone *e_illume_zone_config_get(int id); - -/* general functions */ -Eina_Bool e_illume_border_is_indicator(E_Border *bd); -Eina_Bool e_illume_border_is_softkey(E_Border *bd); -Eina_Bool e_illume_border_is_keyboard(E_Border *bd); -Eina_Bool e_illume_border_is_home(E_Border *bd); -Eina_Bool e_illume_border_is_splash(E_Border *bd); -Eina_Bool e_illume_border_is_dialog(E_Border *bd); -Eina_Bool e_illume_border_is_qt_frame(E_Border *bd); -Eina_Bool e_illume_border_is_fullscreen(E_Border *bd); -Eina_Bool e_illume_border_is_conformant(E_Border *bd); -Eina_Bool e_illume_border_is_quickpanel(E_Border *bd); - -void e_illume_border_min_get(E_Border *bd, int *w, int *h); -E_Border *e_illume_border_at_xy_get(E_Zone *zone, int x, int y); -E_Border *e_illume_border_parent_get(E_Border *bd); -void e_illume_border_show(E_Border *bd); -void e_illume_border_hide(E_Border *bd); - -/* indicator functions */ -E_Border *e_illume_border_indicator_get(E_Zone *zone); -void e_illume_border_indicator_pos_get(E_Zone *zone, int *x, int *y); - -/* softkey functions */ -E_Border *e_illume_border_softkey_get(E_Zone *zone); -void e_illume_border_softkey_pos_get(E_Zone *zone, int *x, int *y); - -/* keyboard functions */ -E_Illume_Keyboard *e_illume_keyboard_get(void); -void e_illume_keyboard_safe_app_region_get(E_Zone *zone, int *x, int *y, int *w, int *h); - -/* home functions */ -E_Border *e_illume_border_home_get(E_Zone *zone); -Eina_List *e_illume_border_home_borders_get(E_Zone *zone); - -/* quickpanel functions */ -E_Illume_Quickpanel *e_illume_quickpanel_by_zone_get(E_Zone *zone); - -#endif diff --git a/src/modules/illume2/e_mod_config_animation.c b/src/modules/illume2/e_mod_config_animation.c deleted file mode 100644 index b7d2eb1ac..000000000 --- a/src/modules/illume2/e_mod_config_animation.c +++ /dev/null @@ -1,127 +0,0 @@ -#include "e_illume_private.h" -#include "e_mod_config_animation.h" - -/* local function prototypes */ -static void *_e_mod_config_animation_create(E_Config_Dialog *cfd); -static void _e_mod_config_animation_free(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); -static Evas_Object *_e_mod_config_animation_ui(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); -static void _e_mod_config_animation_change(void *data, Evas_Object *obj, void *event); -static int _e_mod_config_animation_timeout(void *data); - -/* local variables */ -Ecore_Timer *_anim_change_timer = NULL; - -void -e_mod_config_animation_show(E_Container *con, const char *params __UNUSED__) -{ - E_Config_Dialog *cfd; - E_Config_Dialog_View *v; - - if (e_config_dialog_find("E", "_config_illume_animation_settings")) return; - - v = E_NEW(E_Config_Dialog_View, 1); - if (!v) return; - - v->create_cfdata = _e_mod_config_animation_create; - v->free_cfdata = _e_mod_config_animation_free; - v->basic.create_widgets = _e_mod_config_animation_ui; - v->basic_only = 1; - v->normal_win = 1; - v->scroll = 1; - - cfd = e_config_dialog_new(con, _("Animation Settings"), "E", - "_config_illume_animation_settings", - "enlightenment/animation_settings", 0, v, NULL); - if (!cfd) return; - - e_dialog_resizable_set(cfd->dia, 1); -} - -/* local function prototypes */ -static void * -_e_mod_config_animation_create(E_Config_Dialog *cfd) -{ - return NULL; -} - -static void -_e_mod_config_animation_free(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) -{ - if (_anim_change_timer) ecore_timer_del(_anim_change_timer); - _anim_change_timer = NULL; -} - -static Evas_Object * -_e_mod_config_animation_ui(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) -{ - Evas_Object *list, *of, *ow; - E_Radio_Group *rg; - - list = e_widget_list_add(evas, 0, 0); - - of = e_widget_framelist_add(evas, _("Keyboard"), 0); - rg = e_widget_radio_group_new(&(_e_illume_cfg->animation.vkbd.duration)); - ow = e_widget_radio_add(evas, _("Slow"), 2000, rg); - e_widget_framelist_object_append(of, ow); - evas_object_smart_callback_add(ow, "changed", - _e_mod_config_animation_change, NULL); - ow = e_widget_radio_add(evas, _("Medium"), 1000, rg); - e_widget_framelist_object_append(of, ow); - evas_object_smart_callback_add(ow, "changed", - _e_mod_config_animation_change, NULL); - ow = e_widget_radio_add(evas, _("Fast"), 500, rg); - e_widget_framelist_object_append(of, ow); - evas_object_smart_callback_add(ow, "changed", - _e_mod_config_animation_change, NULL); - ow = e_widget_radio_add(evas, _("Very Fast"), 250, rg); - e_widget_framelist_object_append(of, ow); - evas_object_smart_callback_add(ow, "changed", - _e_mod_config_animation_change, NULL); - ow = e_widget_radio_add(evas, _("Off"), 0, rg); - e_widget_framelist_object_append(of, ow); - evas_object_smart_callback_add(ow, "changed", - _e_mod_config_animation_change, NULL); - e_widget_list_object_append(list, of, 1, 0, 0.0); - - of = e_widget_framelist_add(evas, _("Quickpanel"), 0); - rg = e_widget_radio_group_new(&(_e_illume_cfg->animation.quickpanel.duration)); - ow = e_widget_radio_add(evas, _("Slow"), 2000, rg); - e_widget_framelist_object_append(of, ow); - evas_object_smart_callback_add(ow, "changed", - _e_mod_config_animation_change, NULL); - ow = e_widget_radio_add(evas, _("Medium"), 1000, rg); - e_widget_framelist_object_append(of, ow); - evas_object_smart_callback_add(ow, "changed", - _e_mod_config_animation_change, NULL); - ow = e_widget_radio_add(evas, _("Fast"), 500, rg); - e_widget_framelist_object_append(of, ow); - evas_object_smart_callback_add(ow, "changed", - _e_mod_config_animation_change, NULL); - ow = e_widget_radio_add(evas, _("Very Fast"), 250, rg); - e_widget_framelist_object_append(of, ow); - evas_object_smart_callback_add(ow, "changed", - _e_mod_config_animation_change, NULL); - ow = e_widget_radio_add(evas, _("Off"), 0, rg); - e_widget_framelist_object_append(of, ow); - evas_object_smart_callback_add(ow, "changed", - _e_mod_config_animation_change, NULL); - e_widget_list_object_append(list, of, 1, 0, 0.0); - - return list; -} - -static void -_e_mod_config_animation_change(void *data, Evas_Object *obj, void *event) -{ - if (_anim_change_timer) ecore_timer_del(_anim_change_timer); - _anim_change_timer = - ecore_timer_add(0.5, _e_mod_config_animation_timeout, data); -} - -static int -_e_mod_config_animation_timeout(void *data) -{ - e_config_save_queue(); - _anim_change_timer = NULL; - return 0; -} diff --git a/src/modules/illume2/e_mod_main.c b/src/modules/illume2/e_mod_main.c deleted file mode 100644 index 44581d02b..000000000 --- a/src/modules/illume2/e_mod_main.c +++ /dev/null @@ -1,127 +0,0 @@ -#include "e_illume_private.h" -#include "e_mod_main.h" -#include "e_mod_config.h" -#include "e_mod_policy.h" -#include "e_mod_kbd.h" -#include "e_mod_quickpanel.h" - -/* NB: Initially I had done this rewrite with eina_logging enabled, but it - * degraded performance so much that it was just not worth it. So now this - * module just uses printfs on the console to report things */ - -/* external variables */ -const char *_e_illume_mod_dir = NULL; -E_Illume_Keyboard *_e_illume_kbd = NULL; -Eina_List *_e_illume_qps = NULL; - -EAPI E_Module_Api e_modapi = { E_MODULE_API_VERSION, "Illume2" }; - -EAPI void * -e_modapi_init(E_Module *m) -{ - Eina_List *ml; - E_Manager *man; - - /* set module priority so we load first */ - e_module_priority_set(m, 100); - - /* set module directory variable */ - _e_illume_mod_dir = eina_stringshare_add(m->dir); - - /* try to initialize the config subsystem */ - if (!e_mod_config_init()) - { - /* clear module directory variable */ - if (_e_illume_mod_dir) eina_stringshare_del(_e_illume_mod_dir); - _e_illume_mod_dir = NULL; - - return NULL; - } - - /* try to initialize the policy subsystem */ - if (!e_mod_policy_init()) - { - /* shutdown the config subsystem */ - e_mod_config_shutdown(); - - /* clear module directory variable */ - if (_e_illume_mod_dir) eina_stringshare_del(_e_illume_mod_dir); - _e_illume_mod_dir = NULL; - - return NULL; - } - - /* initialize the keyboard subsystem */ - e_mod_kbd_init(); - - /* initialize the quickpanel subsystem */ - e_mod_quickpanel_init(); - - /* create a new vkbd & hide it initially */ - _e_illume_kbd = e_mod_kbd_new(); - e_mod_kbd_hide(); - - /* loop the zones and create quickpanels for each one */ - EINA_LIST_FOREACH(e_manager_list(), ml, man) - { - Eina_List *cl; - E_Container *con; - - EINA_LIST_FOREACH(man->containers, cl, con) - { - Eina_List *zl; - E_Zone *zone; - - EINA_LIST_FOREACH(con->zones, zl, zone) - { - E_Illume_Quickpanel *qp; - - /* try to create a new quickpanel for this zone */ - if (!(qp = e_mod_quickpanel_new(zone))) continue; - - /* append new qp to list */ - _e_illume_qps = eina_list_append(_e_illume_qps, qp); - } - } - } - - return m; -} - -EAPI int -e_modapi_shutdown(E_Module *m) -{ - E_Illume_Quickpanel *qp; - - /* delete the quickpanels */ - EINA_LIST_FREE(_e_illume_qps, qp) - e_object_del(E_OBJECT(qp)); - - /* shutdown the quickpanel subsystem */ - e_mod_quickpanel_shutdown(); - - /* delete the keyboard object */ - if (_e_illume_kbd) e_object_del(E_OBJECT(_e_illume_kbd)); - _e_illume_kbd = NULL; - - /* shutdown the keyboard subsystem */ - e_mod_kbd_shutdown(); - - /* shutdown the policy subsystem */ - e_mod_policy_shutdown(); - - /* shutdown the config subsystem */ - e_mod_config_shutdown(); - - /* clear module directory variable */ - if (_e_illume_mod_dir) eina_stringshare_del(_e_illume_mod_dir); - _e_illume_mod_dir = NULL; - - return 1; -} - -EAPI int -e_modapi_save(E_Module *m) -{ - return e_mod_config_save(); -} diff --git a/src/modules/illume2/e_mod_quickpanel.c b/src/modules/illume2/e_mod_quickpanel.c deleted file mode 100644 index 14dcc3054..000000000 --- a/src/modules/illume2/e_mod_quickpanel.c +++ /dev/null @@ -1,415 +0,0 @@ -#include "e_illume_private.h" -#include "e_mod_quickpanel.h" - -/* local function prototypes */ -static int _e_mod_quickpanel_cb_client_message(void *data __UNUSED__, int type __UNUSED__, void *event); -static int _e_mod_quickpanel_cb_mouse_down(void *data __UNUSED__, int type __UNUSED__, void *event); -static int _e_mod_quickpanel_cb_border_add(void *data __UNUSED__, int type __UNUSED__, void *event); -static void _e_mod_quickpanel_cb_post_fetch(void *data __UNUSED__, void *data2); -static void _e_mod_quickpanel_cb_free(E_Illume_Quickpanel *qp); -static int _e_mod_quickpanel_cb_delay_hide(void *data); -static void _e_mod_quickpanel_slide(E_Illume_Quickpanel *qp, int visible, double len); -static void _e_mod_quickpanel_hide(E_Illume_Quickpanel *qp); -static int _e_mod_quickpanel_cb_animate(void *data); -static void _e_mod_quickpanel_position_update(E_Illume_Quickpanel *qp); - -/* local variables */ -static Eina_List *_qp_hdls = NULL; -static E_Border_Hook *_qp_hook = NULL; -static Ecore_X_Window _qp_input_win = 0; - -int -e_mod_quickpanel_init(void) -{ - /* add handlers for messages we are interested in */ - _qp_hdls = - eina_list_append(_qp_hdls, - ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, - _e_mod_quickpanel_cb_client_message, - NULL)); - _qp_hdls = - eina_list_append(_qp_hdls, - ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, - _e_mod_quickpanel_cb_mouse_down, - NULL)); - _qp_hdls = - eina_list_append(_qp_hdls, - ecore_event_handler_add(E_EVENT_BORDER_ADD, - _e_mod_quickpanel_cb_border_add, - NULL)); - - /* add hook for new borders so we can test for qp borders */ - _qp_hook = e_border_hook_add(E_BORDER_HOOK_EVAL_PRE_POST_FETCH, - _e_mod_quickpanel_cb_post_fetch, NULL); - - return 1; -} - -int -e_mod_quickpanel_shutdown(void) -{ - Ecore_Event_Handler *hdl; - - /* delete the event handlers */ - EINA_LIST_FREE(_qp_hdls, hdl) - ecore_event_handler_del(hdl); - - /* delete the border hook */ - if (_qp_hook) e_border_hook_del(_qp_hook); - _qp_hook = NULL; - - return 1; -} - -E_Illume_Quickpanel * -e_mod_quickpanel_new(E_Zone *zone) -{ - E_Illume_Quickpanel *qp; - - /* try to allocate a new quickpanel object */ - qp = E_OBJECT_ALLOC(E_Illume_Quickpanel, E_ILLUME_QP_TYPE, - _e_mod_quickpanel_cb_free); - if (!qp) return NULL; - - /* set quickpanel zone */ - qp->zone = zone; - - return qp; -} - -void -e_mod_quickpanel_show(E_Illume_Quickpanel *qp) -{ - E_Illume_Config_Zone *cz; - int duration; - - /* delete the animator if it exists */ - if (qp->animator) ecore_animator_del(qp->animator); - qp->animator = NULL; - - /* delete any existing timer */ - if (qp->timer) ecore_timer_del(qp->timer); - qp->timer = NULL; - - /* if it's already visible, or has no borders to show, then get out */ - if ((qp->visible) || (!qp->borders)) return; - - duration = _e_illume_cfg->animation.quickpanel.duration; - cz = e_illume_zone_config_get(qp->zone->id); - qp->ih = cz->indicator.size; - - if (!_qp_input_win) - { - /* create a new input window to catch clicks */ - _qp_input_win = - ecore_x_window_input_new(qp->zone->container->win, - qp->zone->x, qp->zone->y, - qp->zone->w, qp->zone->h); - ecore_x_window_show(_qp_input_win); - - /* grab mouse */ - if (!e_grabinput_get(_qp_input_win, 1, _qp_input_win)) - { - ecore_x_window_free(_qp_input_win); - _qp_input_win = 0; - return; - } - } - - /* check animation duration */ - if (duration <= 0) - { - Eina_List *l; - E_Border *bd; - int ny = 0; - - ny = qp->ih; - - /* if we are not animating, just show the borders */ - EINA_LIST_FOREACH(qp->borders, l, bd) - { - if (!bd->visible) e_illume_border_show(bd); - e_border_fx_offset(bd, 0, ny); - ny += bd->h; - } - qp->visible = 1; - } - else - _e_mod_quickpanel_slide(qp, 1, (double)duration / 1000.0); -} - -void -e_mod_quickpanel_hide(E_Illume_Quickpanel *qp) -{ - if (!qp->visible) return; - if (!qp->timer) - qp->timer = ecore_timer_add(0.2, _e_mod_quickpanel_cb_delay_hide, qp); -} - -/* local functions */ -static int -_e_mod_quickpanel_cb_client_message(void *data __UNUSED__, int type __UNUSED__, void *event) -{ - Ecore_X_Event_Client_Message *ev; - - ev = event; - if (ev->message_type == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE) - { - E_Zone *zone; - - if (zone = e_util_zone_window_find(ev->win)) - { - E_Illume_Quickpanel *qp; - - if (qp = e_illume_quickpanel_by_zone_get(zone)) - { - if (ev->data.l[0] == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF) - e_mod_quickpanel_hide(qp); - else - e_mod_quickpanel_show(qp); - } - } - } - else if (ev->message_type == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE) - { - E_Border *bd; - E_Illume_Quickpanel *qp; - - if (!(bd = e_border_find_by_client_window(ev->win))) return 1; - if (!(qp = e_illume_quickpanel_by_zone_get(bd->zone))) return 1; - _e_mod_quickpanel_position_update(qp); - } - - return 1; -} - -static int -_e_mod_quickpanel_cb_mouse_down(void *data __UNUSED__, int type __UNUSED__, void *event) -{ - Ecore_Event_Mouse_Button *ev; - Eina_List *l; - E_Illume_Quickpanel *qp; - - ev = event; - if (ev->event_window != _qp_input_win) return 1; - EINA_LIST_FOREACH(_e_illume_qps, l, qp) - if (qp->visible) - ecore_x_e_illume_quickpanel_state_send(qp->zone->black_win, - ECORE_X_ILLUME_QUICKPANEL_STATE_OFF); - - return 1; -} - -static int -_e_mod_quickpanel_cb_border_add(void *data __UNUSED__, int type __UNUSED__, void *event) -{ - E_Event_Border_Add *ev; - E_Illume_Quickpanel *qp; - E_Zone *zone; - int iy; - - ev = event; - if (!ev->border->client.illume.quickpanel.quickpanel) return 1; - - zone = ev->border->zone; - - /* if this border should be on a different zone, get requested zone */ - if (zone->num != ev->border->client.illume.quickpanel.zone) - { - E_Container *con; - int zn = 0; - - /* find this zone */ - con = e_container_current_get(e_manager_current_get()); - zn = ev->border->client.illume.quickpanel.zone; - zone = e_util_container_zone_number_get(con->num, zn); - if (!zone) return 1; - } - - if (!(qp = e_illume_quickpanel_by_zone_get(zone))) return 1; - - /* set position and zone */ - e_illume_border_indicator_pos_get(zone, NULL, &iy); - if ((ev->border->x != zone->x) || (ev->border->y != iy)) - e_border_move(ev->border, zone->x, iy); - if (ev->border->zone != zone) - e_border_zone_set(ev->border, zone); - - /* hide this border */ - e_illume_border_hide(ev->border); - - qp->h += ev->border->h; - - /* add this border to QP border collection */ - qp->borders = eina_list_append(qp->borders, ev->border); - - return 1; -} - -static void -_e_mod_quickpanel_cb_post_fetch(void *data __UNUSED__, void *data2) -{ - E_Border *bd; - - if (!(bd = data2)) return; - if (!bd->client.illume.quickpanel.quickpanel) return; - bd->stolen = 1; -} - -static void -_e_mod_quickpanel_cb_free(E_Illume_Quickpanel *qp) -{ - E_Border *bd; - - /* delete the animator if it exists */ - if (qp->animator) ecore_animator_del(qp->animator); - qp->animator = NULL; - - /* delete the timer if it exists */ - if (qp->timer) ecore_timer_del(qp->timer); - qp->timer = NULL; - - /* set the borders of this quickpanel to not stolen */ - EINA_LIST_FREE(qp->borders, bd) - bd->stolen = 0; - - /* free the structure */ - E_FREE(qp); -} - -static int -_e_mod_quickpanel_cb_delay_hide(void *data) -{ - E_Illume_Quickpanel *qp; - - if (!(qp = data)) return 0; - _e_mod_quickpanel_hide(qp); - return 0; -} - -static void -_e_mod_quickpanel_slide(E_Illume_Quickpanel *qp, int visible, double len) -{ - qp->start = ecore_loop_time_get(); - qp->len = len; - qp->adjust_start = qp->adjust; - qp->adjust_end = 0; - if (visible) qp->adjust_end = qp->h; - if (!qp->animator) - qp->animator = ecore_animator_add(_e_mod_quickpanel_cb_animate, qp); -} - -static void -_e_mod_quickpanel_hide(E_Illume_Quickpanel *qp) -{ - int duration; - - /* delete the animator if it exists */ - if (qp->animator) ecore_animator_del(qp->animator); - qp->animator = NULL; - - /* delete the timer if it exists */ - if (qp->timer) ecore_timer_del(qp->timer); - qp->timer = NULL; - - /* if it's not visible, we can't hide it */ - if (!qp->visible) return; - - duration = _e_illume_cfg->animation.quickpanel.duration; - - /* destroy the input window */ - if (_qp_input_win) - { - ecore_x_window_free(_qp_input_win); - e_grabinput_release(_qp_input_win, _qp_input_win); - _qp_input_win = 0; - } - - if (duration <= 0) - { - Eina_List *l; - E_Border *bd; - - /* if we are not animating, hide the qp borders */ - EINA_LIST_REVERSE_FOREACH(qp->borders, l, bd) - { - e_border_fx_offset(bd, 0, 0); - if (bd->visible) e_illume_border_hide(bd); - } - qp->visible = 0; - } - else - _e_mod_quickpanel_slide(qp, 0, (double)duration / 1000.0); -} - -static int -_e_mod_quickpanel_cb_animate(void *data) -{ - E_Illume_Quickpanel *qp; - Eina_List *l; - E_Border *bd; - int pbh = 0; - double t, v = 1.0; - - if (!(qp = data)) return 0; - t = (ecore_loop_time_get() - qp->start); - if (t > qp->len) t = qp->len; - if (qp->len > 0.0) - { - v = (t / qp->len); - v = (1.0 - v); - v = (v * v * v * v); - v = (1.0 - v); - } - else - t = qp->len; - - qp->adjust = (qp->adjust_end * v) + (qp->adjust_start * (1.0 - v)); - - pbh = (qp->ih - qp->h); - EINA_LIST_FOREACH(qp->borders, l, bd) - { - /* don't adjust borders that are being deleted */ - if (e_object_is_del(E_OBJECT(bd))) continue; - if (bd->fx.y != (qp->adjust + pbh)) - e_border_fx_offset(bd, 0, (qp->adjust + pbh)); - pbh += bd->h; - if (!qp->visible) - { - if (bd->fx.y > 0) - { - if (!bd->visible) e_illume_border_show(bd); - } - } - else - { - if (bd->fx.y <= 10) - { - if (bd->visible) e_illume_border_hide(bd); - } - } - } - - if (t == qp->len) - { - qp->animator = NULL; - if (qp->visible) qp->visible = 0; - else qp->visible = 1; - return 0; - } - - return 1; -} - -static void -_e_mod_quickpanel_position_update(E_Illume_Quickpanel *qp) -{ - Eina_List *l; - E_Border *bd; - int iy = 0; - - e_mod_quickpanel_hide(qp); - e_illume_border_indicator_pos_get(qp->zone, NULL, &iy); - EINA_LIST_FOREACH(qp->borders, l, bd) - e_border_move(bd, qp->zone->x, iy); -}