From 7ad967ee23ef4176d1e49f59368194516d40ef34 Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Tue, 15 Dec 2009 04:33:12 +0000 Subject: [PATCH] Add separate vkbd toggle gadget. SVN revision: 44462 --- src/modules/Makefile.am | 3 +- src/modules/illume-kbd-toggle/Makefile.am | 29 +++ .../e-module-illume-kbd-toggle.edj | Bin 0 -> 13562 bytes src/modules/illume-kbd-toggle/e_mod_main.c | 195 ++++++++++++++++++ src/modules/illume-kbd-toggle/e_mod_main.h | 10 + .../illume-kbd-toggle/module.desktop.in | 6 + src/modules/illume/e_flaunch.c | 7 +- 7 files changed, 246 insertions(+), 4 deletions(-) create mode 100644 src/modules/illume-kbd-toggle/Makefile.am create mode 100644 src/modules/illume-kbd-toggle/e-module-illume-kbd-toggle.edj create mode 100644 src/modules/illume-kbd-toggle/e_mod_main.c create mode 100644 src/modules/illume-kbd-toggle/e_mod_main.h create mode 100644 src/modules/illume-kbd-toggle/module.desktop.in diff --git a/src/modules/Makefile.am b/src/modules/Makefile.am index c54810485..48030920d 100644 --- a/src/modules/Makefile.am +++ b/src/modules/Makefile.am @@ -239,7 +239,7 @@ SUBDIRS += connman endif if USE_MODULE_ILLUME -SUBDIRS += illume illume2 illume-home illume-softkey illume-keyboard illume-indicator +SUBDIRS += illume illume2 illume-home illume-softkey illume-keyboard illume-indicator illume-kbd-toggle endif if USE_MODULE_SYSCON @@ -321,6 +321,7 @@ illume-home \ illume-softkey \ illume-keyboard \ illume-indicator \ +illume-kbd-toggle \ syscon \ everything \ systray diff --git a/src/modules/illume-kbd-toggle/Makefile.am b/src/modules/illume-kbd-toggle/Makefile.am new file mode 100644 index 000000000..969e676fc --- /dev/null +++ b/src/modules/illume-kbd-toggle/Makefile.am @@ -0,0 +1,29 @@ +MAINTAINERCLEANFILES = Makefile.in +MODULE = illume-kbd-toggle + +# 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 + +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-kbd-toggle/e-module-illume-kbd-toggle.edj b/src/modules/illume-kbd-toggle/e-module-illume-kbd-toggle.edj new file mode 100644 index 0000000000000000000000000000000000000000..96479b288442962378d761c915b50ea63c984e50 GIT binary patch literal 13562 zcma)?2{@E()c8k|q%27yOT9!ZNkq2F+iGnU#WWbxlrb{)!L(RHQE3sOQc8-Xg=~dL zGK0txhOF6!EMpln-+36llmGv^zHhFMbI$L%*K?oye�mPSIT`6iN`}AqpiKfkN>W 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 + e_gadcon_provider_register(&_gc_class); + return m; +} + +EAPI int +e_modapi_shutdown(E_Module *m) +{ + e_gadcon_provider_unregister(&_gc_class); + if (mod_dir) eina_stringshare_del(mod_dir); + mod_dir = NULL; + return 1; +} + +EAPI int +e_modapi_save(E_Module *m) +{ + return 1; +} + +/* local function prototypes */ +static E_Gadcon_Client * +_gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style) +{ + Instance *inst; + Evas_Object *icon; + char buff[PATH_MAX]; + + snprintf(buff, sizeof(buff), "%s/e-module-illume-kbd-toggle.edj", mod_dir); + inst = E_NEW(Instance, 1); + inst->o_btn = e_widget_button_add(gc->evas, NULL, NULL, + _cb_btn_click, inst, NULL); + icon = e_icon_add(evas_object_evas_get(inst->o_btn)); + e_icon_file_edje_set(icon, buff, "btn_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; + + inst->handler = + ecore_event_handler_add(E_EVENT_BORDER_FOCUS_IN, + _cb_border_focus_in, inst); + + instances = eina_list_append(instances, inst); + return inst->gcc; +} + +static void +_gc_shutdown(E_Gadcon_Client *gcc) +{ + Instance *inst; + + if (!(inst = gcc->data)) return; + instances = eina_list_remove(instances, inst); + if (inst->o_btn) evas_object_del(inst->o_btn); + if (inst->handler) ecore_event_handler_del(inst->handler); + inst->handler = NULL; + 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-Keyboard-Toggle"); +} + +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-kbd-toggle.edj", 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 +_cb_btn_click(void *data, void *data2) +{ + Ecore_X_Virtual_Keyboard_State state; + Instance *inst; + E_Border *bd; + Evas_Object *icon; + char buff[PATH_MAX]; + + if (!(inst = data)) return; + if (!(bd = e_border_focused_get())) return; + + snprintf(buff, sizeof(buff), "%s/e-module-illume-kbd-toggle.edj", mod_dir); + + icon = e_icon_add(evas_object_evas_get(inst->o_btn)); + state = ecore_x_e_virtual_keyboard_state_get(bd->client.win); + if ((state == ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF) || + (state == ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN)) + { + ecore_x_e_virtual_keyboard_state_set(bd->client.win, + ECORE_X_VIRTUAL_KEYBOARD_STATE_ON); + e_icon_file_edje_set(icon, buff, "btn_icon"); + } + else + { + ecore_x_e_virtual_keyboard_state_set(bd->client.win, + ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF); + e_icon_file_edje_set(icon, buff, "icon"); + } + e_widget_button_icon_set(inst->o_btn, icon); +} + +static int +_cb_border_focus_in(void *data, int type, void *event) +{ + Instance *inst; + E_Event_Border_Focus_In *ev; + E_Border *bd; + Evas_Object *icon; + Ecore_X_Virtual_Keyboard_State state; + char buff[PATH_MAX]; + + if (!(inst = data)) return 1; + ev = event; + if (ev->border->stolen) return 1; + if (!(bd = ev->border)) return 1; + + snprintf(buff, sizeof(buff), "%s/e-module-illume-kbd-toggle.edj", mod_dir); + + icon = e_icon_add(evas_object_evas_get(inst->o_btn)); + state = ecore_x_e_virtual_keyboard_state_get(bd->client.win); + if ((state == ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF) || + (state == ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN)) + e_icon_file_edje_set(icon, buff, "icon"); + else + e_icon_file_edje_set(icon, buff, "btn_icon"); + e_widget_button_icon_set(inst->o_btn, icon); + + return 1; +} diff --git a/src/modules/illume-kbd-toggle/e_mod_main.h b/src/modules/illume-kbd-toggle/e_mod_main.h new file mode 100644 index 000000000..f884cc0aa --- /dev/null +++ b/src/modules/illume-kbd-toggle/e_mod_main.h @@ -0,0 +1,10 @@ +#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); + +#endif diff --git a/src/modules/illume-kbd-toggle/module.desktop.in b/src/modules/illume-kbd-toggle/module.desktop.in new file mode 100644 index 000000000..9f768914f --- /dev/null +++ b/src/modules/illume-kbd-toggle/module.desktop.in @@ -0,0 +1,6 @@ +[Desktop Entry] +Type=Link +Name=Illume-Keyboard-Toggle +Icon=e-module-illume-kbd-toggle +X-Enlightenment-ModuleType=system +Comment=Illume Keyboard Toggle for Embedded diff --git a/src/modules/illume/e_flaunch.c b/src/modules/illume/e_flaunch.c index 0772f7996..125ed37af 100644 --- a/src/modules/illume/e_flaunch.c +++ b/src/modules/illume/e_flaunch.c @@ -97,14 +97,14 @@ _e_flaunch_apps_populate(E_Flaunch *fl) int num = 0, max, count; // FIXME: 3 should become config here - max = 3; + max = 10; // for now just look for any apps in "category" 'Bar' and add the first 3 // FIXME: category should be configurable... - bar_desktops = efreet_util_desktop_category_list("Bar"); + bar_desktops = efreet_util_desktop_category_list("System"); if (bar_desktops) { Efreet_Desktop *desktop; - + printf("Have Desktops\n"); count = eina_list_count(bar_desktops); if (count < max) { @@ -118,6 +118,7 @@ _e_flaunch_apps_populate(E_Flaunch *fl) } EINA_LIST_FOREACH(bar_desktops, l, desktop) { + printf("Desktop: %s\n", desktop->name); if (desktop->orig_path) { const char *dname;