From 53f67fa86b7ab7699b520c6d062914ee6b3ef910 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Date: Wed, 2 Jan 2013 13:19:49 +0000 Subject: [PATCH] e/music-control: Add gadget GUI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Patch by: José Roberto de Souza SVN revision: 81989 --- src/bin/e_module.c | 2 +- src/modules/Makefile_music_control.am | 4 +- .../music-control/e-module-music-control.edc | 104 +++++++++++++----- .../music-control/e-module-music-control.edj | Bin 48663 -> 54031 bytes src/modules/music-control/e_mod_main.c | 26 ++--- src/modules/music-control/e_mod_main.h | 14 --- src/modules/music-control/images/next.png | Bin 0 -> 1382 bytes src/modules/music-control/images/pause.png | Bin 0 -> 638 bytes src/modules/music-control/images/play.png | Bin 0 -> 1153 bytes src/modules/music-control/images/previous.png | Bin 0 -> 1240 bytes src/modules/music-control/private.h | 27 +++++ src/modules/music-control/ui.c | 73 ++++++++++++ 12 files changed, 189 insertions(+), 61 deletions(-) create mode 100644 src/modules/music-control/images/next.png create mode 100644 src/modules/music-control/images/pause.png create mode 100644 src/modules/music-control/images/play.png create mode 100644 src/modules/music-control/images/previous.png create mode 100644 src/modules/music-control/private.h create mode 100644 src/modules/music-control/ui.c diff --git a/src/bin/e_module.c b/src/bin/e_module.c index 0d65d97e1..936d12cce 100644 --- a/src/bin/e_module.c +++ b/src/bin/e_module.c @@ -705,7 +705,7 @@ _e_module_whitelist_check(void) "wl_shell", "xkbswitch", "echievements", - + "music-control", NULL // end marker }; diff --git a/src/modules/Makefile_music_control.am b/src/modules/Makefile_music_control.am index fcdf86e26..38ba74c90 100644 --- a/src/modules/Makefile_music_control.am +++ b/src/modules/Makefile_music_control.am @@ -11,4 +11,6 @@ music_control_module_la_DEPENDENCIES = $(MDEPENDENCIES) music_control_module_la_CFLAGS = $(AM_CFLAGS) -Wno-unused-parameter music_control_module_la_LIBADD = @MUSIC_CONTROL_LIBS@ music_control_module_la_SOURCES = music-control/e_mod_main.h \ - music-control/e_mod_main.c + music-control/e_mod_main.c \ + music-control/private.h \ + music-control/ui.c diff --git a/src/modules/music-control/e-module-music-control.edc b/src/modules/music-control/e-module-music-control.edc index 2c4ad8ef5..c548107aa 100644 --- a/src/modules/music-control/e-module-music-control.edc +++ b/src/modules/music-control/e-module-music-control.edc @@ -1,5 +1,9 @@ images { image: "images/icon.png" COMP; + image: "images/previous.png" COMP; + image: "images/next.png" COMP; + image: "images/pause.png" COMP; + image: "images/play.png" COMP; } collections { @@ -22,54 +26,96 @@ collections { } group { name: "modules/music-control/main"; - min: 16 16; - max: 128 128; parts { part { name: "icon"; - mouse_events: 0; type: IMAGE; description { state: "default" 0.0; aspect: 1.0 1.0; aspect_preference: BOTH; - rel1.offset: 2 2; - rel2.offset: -3 -3; + rel1.relative: 0 0; + rel2.relative: 1 1; image.normal: "images/icon.png"; - } - description { - state: "bigger" 0.0; - inherit: "default" 0.0; - rel1.offset: -2 -2; - rel2.offset: 3 3; + } + } + } + } + group { + name: "modules/music-control/popup"; + min: 150 30; + parts { + part { + type: IMAGE; + name: "previous_btn"; + description { + state: "default" 0; + aspect: 1.0 1.0; + aspect_preference: BOTH; + rel1.relative: 0.0 0.0; + rel2.relative: 0.33 1.0; + image.normal: "images/previous.png"; } } part { - name: "event"; - mouse_events: 1; - type: RECT; - description { - state: "default" 0.0; - color: 255 255 255 0; - } + type: IMAGE; + name: "play_btn"; + description { + state: "default" 0; + aspect: 1.0 1.0; + aspect_preference: BOTH; + rel1.relative: 0.33 0.0; + rel2.relative: 0.66 1.0; + image.normal: "images/pause.png"; + } + description { + state: "play" 0.0; + inherit: "default" 0.0; + image.normal: "images/play.png"; + } + } + part { + type: IMAGE; + name: "next_btn"; + description { + state: "default" 0; + aspect: 1.0 1.0; + aspect_preference: BOTH; + rel1.relative: 0.66 0.0; + rel2.relative: 1.0 1.0; + image.normal: "images/next.png"; + } } } programs { program { - name: "mouse_in"; - signal: "mouse,in"; - source: "event"; - action: STATE_SET "bigger" 0.0; - transition: LINEAR 0.1; - target: "icon"; + signal: "mouse,clicked,*"; + source: "previous_btn"; + action: SIGNAL_EMIT "btn,clicked" "previous"; } program { - name: "mouse_out"; - signal: "mouse,out"; - source: "event"; + signal: "mouse,clicked,*"; + source: "play_btn"; + action: SIGNAL_EMIT "btn,clicked" "play"; + } + program { + signal: "mouse,clicked,*"; + source: "next_btn"; + action: SIGNAL_EMIT "btn,clicked" "next"; + } + program { + signal: "btn,state,image,play"; + source: "play"; + action: STATE_SET "play" 0.0; + transition: LINEAR 0.1; + target: "play_btn"; + } + program { + signal: "btn,state,image,pause"; + source: "play"; action: STATE_SET "default" 0.0; - transition: LINEAR 0.2; - target: "icon"; + transition: LINEAR 0.1; + target: "play_btn"; } } } diff --git a/src/modules/music-control/e-module-music-control.edj b/src/modules/music-control/e-module-music-control.edj index e858cdc07731fb7932ac27a021b8d761ab0e82b3..3712858beb995b373ec155f7f679fd5f3ec3c5c0 100644 GIT binary patch delta 11701 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 delta 6304 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 diff --git a/src/modules/music-control/e_mod_main.c b/src/modules/music-control/e_mod_main.c index 61137d6db..91b896b7f 100644 --- a/src/modules/music-control/e_mod_main.c +++ b/src/modules/music-control/e_mod_main.c @@ -1,5 +1,4 @@ -#include "e.h" -#include "e_mod_main.h" +#include "private.h" static E_Module *music_control_mod = NULL; @@ -7,17 +6,9 @@ static char tmpbuf[4096]; /* general purpose buffer, just use immediately */ static const char _e_music_control_Name[] = "Music controller"; -static void -_cb_mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event) -{ - E_Music_Control_Instance *inst = data; - Evas_Event_Mouse_Down *ev = event; - printf("event mouse down button=%d\n", ev->button); -} - -static const char * -_edj_path_get(void) +const char * +music_control_edj_path_get(void) { #define TF "/e-module-music-control.edj" size_t dirlen; @@ -46,16 +37,18 @@ _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style) inst = calloc(1, sizeof(E_Music_Control_Instance)); inst->ctxt = ctxt; inst->gadget = edje_object_add(gc->evas); - edje_object_file_set(inst->gadget, _edj_path_get(), + edje_object_file_set(inst->gadget, music_control_edj_path_get(), "modules/music-control/main"); /*e_theme_edje_object_set(inst->gadget, "base/theme/modules/music-control", - "e/modules/music-control/main");*/ + "e/modules/music-control/main"); + TODO append theme to data/themes/default.edc*/ inst->gcc = e_gadcon_client_new(gc, name, id, style, inst->gadget); inst->gcc->data = inst; + evas_object_event_callback_add(inst->gadget, EVAS_CALLBACK_MOUSE_DOWN, music_control_mouse_down_cb, inst); - evas_object_event_callback_add(inst->gadget, EVAS_CALLBACK_MOUSE_DOWN, _cb_mouse_down, inst); + ctxt->instances = eina_list_append(ctxt->instances, inst); return inst->gcc; } @@ -72,6 +65,7 @@ _gc_shutdown(E_Gadcon_Client *gcc) inst = gcc->data; evas_object_del(inst->gadget); + if (inst->popup) music_control_popup_del(inst); ctxt->instances = eina_list_remove(ctxt->instances, inst); free(inst); @@ -94,7 +88,7 @@ static Evas_Object * _gc_icon(const E_Gadcon_Client_Class *client_class, Evas *evas) { Evas_Object *o = edje_object_add(evas); - edje_object_file_set(o, _edj_path_get(), "icon"); + edje_object_file_set(o, music_control_edj_path_get(), "icon"); return o; } diff --git a/src/modules/music-control/e_mod_main.h b/src/modules/music-control/e_mod_main.h index f435352f3..07c1fd716 100644 --- a/src/modules/music-control/e_mod_main.h +++ b/src/modules/music-control/e_mod_main.h @@ -3,20 +3,6 @@ #include "config.h" #include -#include - -typedef struct _E_Music_Control_Module_Context -{ - Eina_List *instances; - EDBus_Connection *conn; -} E_Music_Control_Module_Context; - -typedef struct _E_Music_Control_Instance -{ - E_Music_Control_Module_Context *ctxt; - E_Gadcon_Client *gcc; - Evas_Object *gadget; -} E_Music_Control_Instance; EAPI extern E_Module_Api e_modapi; EAPI void *e_modapi_init(E_Module *m); diff --git a/src/modules/music-control/images/next.png b/src/modules/music-control/images/next.png new file mode 100644 index 0000000000000000000000000000000000000000..86e313e50b7b1ec832a98b82cb2f1ed65d6a98be GIT binary patch literal 1382 zcmV-s1)2JZP)@~Fp8)l!Gsu|OjeKJZ)0`)=+cD`SlGK=H?Q#D42Ku^n$|f>c;lk72AF( z$c4*@%3CfEn22fly5&qA9ghxM@ z9lUh+zb*g(m=&&#IOx}{nM9(#?qJssbxqxKvLy!q%OPBiSTG%$uPM82Q)5SH+ZVZ| zRaya~uw6!9#DZ=*k3f^B>zX@vY-##!TDC!y0(8?w?~ql*O09HU{yEg#_0&HufRzF< z$2G}}A=5$6pcyc1cbU|zuA1idvQ(r}$^;%_hV4r9MxqGo(R-QYk=n-g#+n12cckJX z_E?jY-U3Jxh}g3^E+IT*;p(7yv+Htw^`{q3SMF^q^;UqSJVXp5>f-W%A@r!bNJ;9f z-hX~=<*{P{PXRLVeHk+zFMw3az(fqwlIZC-aBbLmEGYP=s)p7bmAg+*NpK(ykCco7 z-9pcxIoWo(Dj1&G`hG*pyhI1Q-c90wR1(CLwn-*L3=5b0M*@cJE(_!rb$zg>W!abk zneh-4EXPI9pn?A3=zT(oqw5=58Y}m<-8Lp5kt^1MINMlqRs}=^^hKg5%+I@Z#-xHB z>-V%Q4X`Zh4qFf+J1*UDFk-sew37TqlZ(~-icijkw64o?P6+i{=6wA`DdmS2fvIMcGf%uAgo8BNAsrMG`XNEaL>8tRG23vtSaVON)({d z2TFzk-GXj7Eb@dTn%HIlfJuy~<)Wl8=(rv{ipLfiUjvfU7GH|SBzfB~o3o>)y*&pW z5b-6K>4lHV=RQfqBjd+o5nlsL6WcO{Ru(AV_s-KN0bp^>QHY6g*+O9x6_nKMd+UiP z0Fa`DtcWpSd1w=*I4b~s8oOk1FkWxZJmY+`whee)Rv2V?@-Lc(Law1bq zt;PwEl<}@90J}9!yxq9=nJeQ5r35rB(;85}D}m()-d%9WYc$=#67K*hq_1Mt22CqJ zRI%XOpxP=4gpRCw#z;2F>o8DA;XsP8!%$e)+jskiXSYA>rdk;hpj678 zJIaceAFf(>F`Y^;0a~&eU{2opV2R(l!PQZ(F>(kf37{Qn33fvOBt(1)kpSx5Lh;`5%0-cExX80ElU-!QqhpqWsvM3C zZa%yH^_1z7L;>jUJXH|iLs8lB(BhV?dEo7U(vo~iNM;D&bLPA^PHuVS*NFrKt{ud{oEW^#yM2m-y|hMuoOm&nmd~5!z;!jF1jyp$e`)P9xWFcE{<-+`%-O6xy9e=W_i! zz=RO4xC4{9P9tm7#MCGPsQ5>`g6no-CRXY#cI2DQb*ItRvM-^=)97rjQ-w0GJ~pG@ zi7U9yD3N<}(1mOV07*qoM6N<$f{VN**8l(j literal 0 HcmV?d00001 diff --git a/src/modules/music-control/images/play.png b/src/modules/music-control/images/play.png new file mode 100644 index 0000000000000000000000000000000000000000..35f3a2348ecc9e398354fd070348b8e5c9dc11f1 GIT binary patch literal 1153 zcmV-{1b+L8P)@D(G+vBEjQLIn&j>J5q)b>c4qL_-G9`BoyY*04((s4FhNmb1 zV<9ovGIo`O+>KH#6i)4W`j|5Gq5zD6h!`xHxSAC0UE0gLI#YqCl-i&b1z;313`;~| ziPRFN_`a@GMO#Pj^R-GDS*=?zz$j!0rij9()G|)|&2WmH?TGm|D+N{*fRU0k2vbBM z=+cc`bAJ#@8mG?1pW9Ga01=c@Sqy@ZmoaQdAShkInfsGaV%N#e-ksI?0E~Nj2qGXy zJ1?mp76zd4lG|OX{G0Z8ASlJK|E6p9{E#;Qyx|Z5IQ_Z8_k( zWy${Ic>(0B_aybfLK?bOdbh55oBoXKXtJca?Y3+8H5Uco$|w8-5&h7)ca2*sJ#nVT z_mdPuzKZJ(1hWR@vInMu2$_N@E-{zpy;s*tn@^wL{;f^v?JKW;`|OMXL^|MCmp|mv7Oo41o;)n6-+$)~ zhq^Nc2qM4{z$iq>I5>0ZZoPby#uq=_eC~;lEgAQ%S$;V3-`V4S$cSiG3?WSnnlTKT z5f>@i#4zu-W3B6#PPqfl9ifR!(oml*dS2$5{(9xjM=lo=APt~?$fMp^xBSb2$tKOd z9#9wn*j|^=4py!DJT=wyiC-n00SqzV064u`z2ayh)0<|)5i$YxmQHF<^<76VO!sCd z0fK?O$91v$!Icev&2$kbdO!l|UC#9S^{c<@%673r_5d-)J`^1F8&@~9=4#PG02Bj0 zBdO{(RyO{T>u)8mJ-~oZ6{nXTz2}$Ta~(Y2fFC*Wz#~;Z|C+DhlLE47Vg@uqvB2j0 znws(*d{V#+d!R*e<=;|uqM=a1{}+(y5mLZO4a~P?ZQ+Aw2T(Z883J4HZ~2-rD5t^$ z6a7O&1UbnNMD2p8CeqTfVrzBFS5AiqGVB4y(5ZmB#DcPqjLJsgbm%DoBS(kis{+*DiuvBO TUQp+000000NkvXXu0mjf4uBe_ literal 0 HcmV?d00001 diff --git a/src/modules/music-control/images/previous.png b/src/modules/music-control/images/previous.png new file mode 100644 index 0000000000000000000000000000000000000000..c07da8ba0c7ff0094e8963ad6d48ebe81a19b13a GIT binary patch literal 1240 zcmV;}1Sk86P)KR&{UhoXc`02{+IkCEfu69*fiS8 zUYnSjq!FW`vyY7R-A(8`l3>NRY09 z3&ELWsI;@OJW^=F&AmTuYHL{k-9OL1)Wv9mmqZgh_0=sZ!w>+t7SK94xr=88lIcSQuWk4%-Sq#Q>nEB=aeFf4TCN7JMd zdgyX9D6mgA#BH&J0Fv2@utWe-dW*Q4CE&?l1Hn~^RzUVrG-(B5Ne-FfG00B)P~>q% zo$fI?t((^^umnLaEEQlgV@%kGZW)}aQ(5vI!^FGi^`!H-WLR$PyHuhSE60$ab~bJ( zx*;GR90j1Vv;}R0k$WYw4^Uvm^|%Si9LFWC3{tX|vynXtu<&BSx;?6M$8m8MKsL$n z8x?tZ^h)uXnEnYeW(nFjx0uX%T$}~ibU+0L;nP2E zhnU`NSa{#;q6q@?56Gm1{ih?V1B@RfAsXi6mKx7|ETkObcDjXDUguL(?=GJ5qN-peRG4Q%EH9>A;eLbktuNYpbgwNjs3}_Z&K4H*a~g zAce0xUbs5mUf+O-PY}|i(;3LdS8vyk_$hHe5{41U$|m62G66|$C^6TO0bt_j&IuOM zH*jQwh4}frvq7Ke+^GpcTMF^x;o;%o;o;%&U*c~zJ;(ln?r~oL0000popup) return; + if (inst->ctxt->playning) + edje_object_signal_emit(inst->content_popup, "btn,state,image,pause", "play"); + else + edje_object_signal_emit(inst->content_popup, "btn,state,image,play", "play"); +} + +void +music_control_state_update_all(E_Music_Control_Module_Context *ctxt) +{ + E_Music_Control_Instance *inst; + Eina_List *list; + + EINA_LIST_FOREACH(ctxt->instances, list, inst) + _play_state_update(inst); +} + +static void +_btn_clicked(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + E_Music_Control_Instance *inst = data; + + if (!strcmp(source, "play")) + { + inst->ctxt->playning = !inst->ctxt->playning; + music_control_state_update_all(inst->ctxt); + } +} + +static void +_popup_new(E_Music_Control_Instance *inst) +{ + Evas_Object *o; + inst->popup = e_gadcon_popup_new(inst->gcc); + + o = edje_object_add(inst->popup->win->evas); + edje_object_file_set(o, music_control_edj_path_get(), + "modules/music-control/popup"); + edje_object_signal_callback_add(o, "btn,clicked", "*", _btn_clicked, inst); + + e_gadcon_popup_content_set(inst->popup, o); + e_gadcon_popup_show(inst->popup); + inst->content_popup = o; + _play_state_update(inst); +} + +void +music_control_popup_del(E_Music_Control_Instance *inst) +{ + e_gadcon_popup_hide(inst->popup); + e_object_del(E_OBJECT(inst->popup)); + inst->popup = NULL; +} + +void +music_control_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event) +{ + E_Music_Control_Instance *inst = data; + Evas_Event_Mouse_Down *ev = event; + + if (ev->button == 1) + { + if (!inst->popup) + _popup_new(inst); + else + music_control_popup_del(inst); + } +}