From 21e6cc048837209338be27c7cc4efd62bf9245d2 Mon Sep 17 00:00:00 2001 From: Tiago Rezende Campos Falcao Date: Mon, 28 Jun 2010 13:05:12 +0000 Subject: [PATCH] Make illume-kbd-toggle from e_button to edje SVN revision: 49920 --- data/themes/default.edc | 168 ++++++++++++++++++ data/themes/images/illume-kbd-on.png | Bin 0 -> 2312 bytes data/themes/images/illume-kbd.png | Bin 0 -> 2266 bytes .../e-module-illume-kbd-toggle.edj | Bin 13562 -> 9871 bytes src/modules/illume-kbd-toggle/e_mod_main.c | 77 ++++---- 5 files changed, 211 insertions(+), 34 deletions(-) create mode 100644 data/themes/images/illume-kbd-on.png create mode 100644 data/themes/images/illume-kbd.png diff --git a/data/themes/default.edc b/data/themes/default.edc index f60bf4065..3d64cdd6d 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -35347,6 +35347,174 @@ collections { } } +///////////////////////////////////////////////////////////////////////////// +/*** MOD: ILLUME-KBD-TOGGLE ***/ + + group { + name: "e/modules/illume_kbd_toggle/main"; + images.image: "illume-kbd.png" COMP; + images.image: "illume-kbd-on.png" COMP; + images { + image: "bt_base1.png" COMP; + image: "bt_base2.png" COMP; + image: "bt_hilight.png" COMP; + image: "bt_shine.png" COMP; + image: "bt_glow.png" COMP; + } + min: 16 16; + max: 128 128; + parts { + part { + name: "button_image"; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + align: 0.5 0.5; + min: 32 16; + image { + normal: "bt_base2.png"; + border: 7 7 7 7; + } + } + description { + state: "clicked" 0.0; + inherit: "default" 0.0; + image.normal: "bt_base1.png"; + } + program { + name: "button_down"; + signal: "mouse,down,1"; + source: "button_image"; + action: STATE_SET "clicked" 0.0; + target: "button_image"; + target: "over3"; + } + program { + name: "button_up"; + signal: "mouse,up,1"; + source: "button_image"; + action: STATE_SET "default" 0.0; + target: "button_image"; + target: "over3"; + } + program { + name: "enable"; + signal: "mouse,clicked,1"; + source: "button_image"; + action: SIGNAL_EMIT "e,action,vkbd,enable" ""; + } + } + part { + name: "icon"; + mouse_events: 0; + description { + state: "default" 0.0; + aspect: 1.0 1.0; + aspect_preference: BOTH; + image.normal: "illume-kbd.png"; + rel1 { + to: "button_image"; + relative: 0.0 0.0; + offset: 3 3; + } + rel2 { + relative: 1.0 1.0; + offset: -4 -4; + to: "button_image"; + } + } + description { state: "on" 0.0; + inherit: "default" 0.0; + image.normal: "illume-kbd-on.png"; + } + program { name: "state_on"; + signal: "e,state,vkbd,on"; + source: "e"; + action: STATE_SET "on" 0.0; + target: "icon"; + target: "on"; + } + program { name: "state_off"; + signal: "e,state,vkbd,off"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "icon"; + target: "on"; + } + } + part { name: "on"; + type: RECT; + mouse_events: 1; + description { state: "default" 0.0; + visible: 0; + color: 0 0 0 0; + rel1.to: "button_image"; + rel2.to: "button_image"; + } + description { state: "on" 0.0; + inherit: "default" 0.0; + visible: 1; + } + program { name: "disable"; + signal: "mouse,clicked,1"; + source: "on"; + action: SIGNAL_EMIT "e,action,vkbd,disable" ""; + } + } + part { + name: "over1"; + mouse_events: 0; + description { + state: "default" 0.0; + rel1.to: "button_image"; + rel2.to: "button_image"; + rel2.relative: 1.0 0.5; + image { + normal: "bt_hilight.png"; + border: 7 7 7 0; + } + } + } + part { + name: "over2"; + mouse_events: 0; + description { + state: "default" 0.0; + rel1.to: "button_image"; + rel2.to: "button_image"; + image { + normal: "bt_shine.png"; + border: 7 7 7 7; + } + } + } + part { + name: "over3"; + mouse_events: 0; + description { + state: "default" 0.0; + rel1.to: "button_image"; + rel2.to: "button_image"; + visible: 0; + color: 255 255 255 0; + image { + normal: "bt_glow.png"; + border: 12 12 12 12; + } + fill.smooth : 0; + } + description { + state: "clicked" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + } + } + ///////////////////////////////////////////////////////////////////////////// /*** MOD: COMP ***/ diff --git a/data/themes/images/illume-kbd-on.png b/data/themes/images/illume-kbd-on.png new file mode 100644 index 0000000000000000000000000000000000000000..0dbecb242dacf02c23edb5921dd7e895b1c3c9a3 GIT binary patch literal 2312 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 literal 0 HcmV?d00001 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 index 96479b288442962378d761c915b50ea63c984e50..bdd7440a68515933474ece062c3654d825eb8e5f 100644 GIT binary patch literal 9871 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 C9+{T_ 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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 = edje_object_add(gc->evas); + e_theme_edje_object_set(inst->o_toggle, "base/theme/modules/illume_kbd_toggle", + "e/modules/illume_kbd_toggle/main"); - inst->o_btn = e_widget_button_add(gc->evas, NULL, NULL, - _cb_btn_click, inst, NULL); - _set_btn_icon(inst->o_btn, ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF); - - inst->gcc = e_gadcon_client_new(gc, name, id, style, inst->o_btn); + inst->gcc = e_gadcon_client_new(gc, name, id, style, inst->o_toggle); inst->gcc->data = inst; + edje_object_signal_callback_add(inst->o_toggle, "e,action,vkbd,enable", "", + _cb_action_vkbd_enable, inst); + edje_object_signal_callback_add(inst->o_toggle, "e,action,vkbd,disable", "", + _cb_action_vkbd_disable, inst); + inst->handlers = eina_list_append(inst->handlers, ecore_event_handler_add(E_EVENT_BORDER_FOCUS_IN, @@ -101,7 +105,7 @@ _gc_shutdown(E_Gadcon_Client *gcc) if (!(inst = gcc->data)) return; instances = eina_list_remove(instances, inst); - if (inst->o_btn) evas_object_del(inst->o_btn); + if (inst->o_toggle) evas_object_del(inst->o_toggle); EINA_LIST_FREE(inst->handlers, handler) ecore_event_handler_del(handler); E_FREE(inst); @@ -142,8 +146,8 @@ _gc_id_new(E_Gadcon_Client_Class *cc) return buff; } -static void -_cb_btn_click(void *data, void *data2) +static void +_cb_action_vkbd_enable(void *data, Evas_Object *obj, const char *emission, const char *source) { Instance *inst; E_Border *bd; @@ -151,13 +155,25 @@ _cb_btn_click(void *data, void *data2) if (!(inst = data)) return; if (!(bd = e_border_focused_get())) return; if (bd->zone != inst->gcc->gadcon->zone) return; + if (bd->client.vkbd.state == ECORE_X_VIRTUAL_KEYBOARD_STATE_ON) return; - if (bd->client.vkbd.state <= ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF) - ecore_x_e_virtual_keyboard_state_set(bd->client.win, - ECORE_X_VIRTUAL_KEYBOARD_STATE_ON); - else - ecore_x_e_virtual_keyboard_state_set(bd->client.win, - ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF); + ecore_x_e_virtual_keyboard_state_set(bd->client.win, + ECORE_X_VIRTUAL_KEYBOARD_STATE_ON); +} + +static void +_cb_action_vkbd_disable(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + Instance *inst; + E_Border *bd; + + if (!(inst = data)) return; + if (!(bd = e_border_focused_get())) return; + if (bd->zone != inst->gcc->gadcon->zone) return; + if (bd->client.vkbd.state == ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF) return; + + ecore_x_e_virtual_keyboard_state_set(bd->client.win, + ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF); } static Eina_Bool @@ -172,7 +188,7 @@ _cb_border_focus_in(void *data, int type __UNUSED__, void *event) if (ev->border->stolen) return ECORE_CALLBACK_PASS_ON; if (!(bd = ev->border)) return ECORE_CALLBACK_PASS_ON; if (bd->zone != inst->gcc->gadcon->zone) return ECORE_CALLBACK_PASS_ON; - _set_btn_icon(inst->o_btn, bd->client.vkbd.state); + _set_btn_icon(inst->o_toggle, bd->client.vkbd.state); return ECORE_CALLBACK_PASS_ON; } @@ -182,7 +198,7 @@ _cb_border_remove(void *data, int type __UNUSED__, void *event) Instance *inst; if (!(inst = data)) return ECORE_CALLBACK_PASS_ON; - _set_btn_icon(inst->o_btn, ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF); + _set_btn_icon(inst->o_toggle, ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF); return ECORE_CALLBACK_PASS_ON; } @@ -199,22 +215,15 @@ _cb_border_property(void *data, int type __UNUSED__, void *event) if (!bd->focused) return ECORE_CALLBACK_PASS_ON; if (!(inst = data)) return ECORE_CALLBACK_PASS_ON; if (bd->zone != inst->gcc->gadcon->zone) return ECORE_CALLBACK_PASS_ON; - _set_btn_icon(inst->o_btn, bd->client.vkbd.state); + _set_btn_icon(inst->o_toggle, bd->client.vkbd.state); return ECORE_CALLBACK_PASS_ON; } -static void -_set_btn_icon(Evas_Object *obj, Ecore_X_Virtual_Keyboard_State state) +static void +_set_btn_icon(Evas_Object *obj, Ecore_X_Virtual_Keyboard_State state) { - Evas_Object *icon; - char buff[PATH_MAX]; - - snprintf(buff, sizeof(buff), "%s/e-module-illume-kbd-toggle.edj", mod_dir); - - icon = e_icon_add(evas_object_evas_get(obj)); - if (state <= ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF) - e_icon_file_edje_set(icon, buff, "icon"); - else - e_icon_file_edje_set(icon, buff, "btn_icon"); - e_widget_button_icon_set(obj, icon); + if (state == ECORE_X_VIRTUAL_KEYBOARD_STATE_ON) + edje_object_signal_emit(obj, "e,state,vkbd,on", "e"); + else + edje_object_signal_emit(obj, "e,state,vkbd,off", "e"); }