[E-devel] [Patch] signal "scroll,anim,stop" in els_scroller
Commit msg : fix the bug which the signal "scroll,anim,stop" is not called sometimes. Hello, Sometimes The signal "scroll,anim,stop" is not called in scroller. If the bounce_x_animation or the bounce_y_animator ends during momentum animation, the function _smart_anim_stop cannot be called. but all animation end including momentum animation. Please check the attached patch file. Thanks. Jaehwan Kim. scroller.patch Description: Binary data -- EMC VNX: the world's simplest storage, starting under $10K The only unified storage solution that offers unified management Up to 160% more powerful than alternatives and 25% more efficient. Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] [PATCH] add elm_entry_input_panel_layout_set API
Hi, EFL developers. elm_entry_input_panel_layout_set API is high level API to call ecore_imf_context_input_panel_layout_set (through edje). This API will be used to set layout of input panel (such as URL, Email, Number layout...) by application programmer. Would you please review this patch? Please let me know if I have to do more. Thank you. Index: src/lib/edje_private.h === --- src/lib/edje_private.h (revision 62732) +++ src/lib/edje_private.h (working copy) @@ -1834,7 +1834,9 @@ Eina_Bool _edje_entry_cursor_is_visible_format_get const char *_edje_entry_cursor_content_get(Edje_Real_Part *rp, Edje_Cursor cur); void _edje_entry_cursor_pos_set(Edje_Real_Part *rp, Edje_Cursor cur, int pos); int _edje_entry_cursor_pos_get(Edje_Real_Part *rp, Edje_Cursor cur); - +void _edje_entry_input_panel_layout_set(Edje_Real_Part *rp, Edje_Input_Panel_Layout layout); +Edje_Input_Panel_Layout _edje_entry_input_panel_layout_get(Edje_Real_Part *rp); + void _edje_external_init(); void _edje_external_shutdown(); Evas_Object *_edje_external_type_add(const char *type_name, Evas *evas, Evas_Object *parent, const Eina_List *params, const char *part_name); Index: src/lib/edje_util.c === --- src/lib/edje_util.c (revision 62732) +++ src/lib/edje_util.c (working copy) @@ -1724,6 +1724,39 @@ edje_object_part_text_cursor_pos_get(const Evas_Ob } EAPI void +edje_object_part_text_input_panel_layout_set(const Evas_Object *obj, const char *part, Edje_Input_Panel_Layout layout) +{ + Edje *ed; + Edje_Real_Part *rp; + + ed = _edje_fetch(obj); + if ((!ed) || (!part)) return; + rp = _edje_real_part_recursive_get(ed, part); + if (!rp) return; + if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) + { +return _edje_entry_input_panel_layout_set(rp, layout); + } +} + +EAPI Edje_Input_Panel_Layout +edje_object_part_text_input_panel_layout_get(const Evas_Object *obj, const char *part) +{ + Edje *ed; + Edje_Real_Part *rp; + + ed = _edje_fetch(obj); + if ((!ed) || (!part)) return EDJE_INPUT_PANEL_LAYOUT_INVALID; + rp = _edje_real_part_recursive_get(ed, part); + if (!rp) return EINA_FALSE; + if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) + { +return _edje_entry_input_panel_layout_get(rp); + } + return EDJE_INPUT_PANEL_LAYOUT_INVALID; +} + +EAPI void edje_object_text_insert_filter_callback_add(Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data) { Edje *ed; Index: src/lib/Edje.h === --- src/lib/Edje.h (revision 62732) +++ src/lib/Edje.h (working copy) @@ -775,6 +775,18 @@ typedef enum _Edje_External_Param_Flags EDJE_EXTERNAL_PARAM_FLAGS_STATE) /**< Convenience flag that sets property as GET, SET and STATE. */ } Edje_External_Param_Flags; +typedef enum +{ + EDJE_INPUT_PANEL_LAYOUT_NORMAL, /**< Default layout */ + EDJE_INPUT_PANEL_LAYOUT_NUMBER, /**< Number layout */ + EDJE_INPUT_PANEL_LAYOUT_EMAIL, /**< Email layout */ + EDJE_INPUT_PANEL_LAYOUT_URL, /**< URL layout */ + EDJE_INPUT_PANEL_LAYOUT_PHONENUMBER, /**< Phone Number layout */ + EDJE_INPUT_PANEL_LAYOUT_IP, /**< IP layout */ + EDJE_INPUT_PANEL_LAYOUT_MONTH, /**< Month layout */ + EDJE_INPUT_PANEL_LAYOUT_NUMBERONLY, /**< Number Only layout */ + EDJE_INPUT_PANEL_LAYOUT_INVALID +} Edje_Input_Panel_Layout; /** * @brief Converts type identifier to string nicer representation. @@ -2742,6 +2754,27 @@ EAPI void edje_object_part_text_cursor EAPI int edje_object_part_text_cursor_pos_get (const Evas_Object *obj, const char *part, Edje_Cursor cur); /** + * @brief Set the layout of the input panel. + * + * @param obj A valid Evas_Object handle + * @param part The part name + * @param layout layout type + */ +EAPI void edje_object_part_text_input_panel_layout_set (const Evas_Object *obj, const char *part, Edje_Input_Panel_Layout layout); + +/** + * @brief Get the layout of the input panel. + * + * @param obj A valid Evas_Object handle + * @param part The part name + * + * @return Layout type of the input panel + * + * @see edje_object_part_text_input_panel_layout_set + */ +EAPI Edje_Input_Panel_Layout edje_object_part_text_input_panel_layout_get (const Evas_Object *obj, const char *part); + +/** * Add a filter function for newly inserted text. * * Whenever text is inserted (not the same as set) into the given @p part, Index: src/lib/edje_entry.c === --- src/lib/edje_entry.c(revision 62732) +++ src/lib/edje_entry.c(working copy) @@ -2646,6 +2646,30 @@ _edje_entry_cursor_pos_get(Edje_Real_Part *rp, Edj ret
Re: [E-devel] E SVN: billiob trunk/e/src/bin
On Thu, 18 Aug 2011 12:11:08 -0700 "Enlightenment SVN" said: you know... this is most annoying to keep seeing a folder called "1" appear on the desktop. the reason we did Desktop-1 and soon before was.. so you would actually have separate folders per screen and u didnt see these folders. if you are going to do this then you have to add logtic for special case hiding of these dirs on the desktop, either that or go back to how it how it was before or make them dot-files so they get hidden by default everywhere. > Log: > e: fix efm path map on desktop > > Author: billiob > Date: 2011-08-18 12:11:07 -0700 (Thu, 18 Aug 2011) > New Revision: 62571 > Trac: http://trac.enlightenment.org/e/changeset/62571 > > Modified: > trunk/e/src/bin/e_fm.c > > Modified: trunk/e/src/bin/e_fm.c > === > --- trunk/e/src/bin/e_fm.c2011-08-18 16:59:51 UTC (rev 62570) > +++ trunk/e/src/bin/e_fm.c2011-08-18 19:11:07 UTC (rev 62571) > @@ -3241,7 +3241,7 @@ > } > else > { > -if (e_user_homedir_snprintf(buf, sizeof(buf), "%s-%s", _ > ("Desktop"), path) >= sizeof(buf)) > +if (e_user_homedir_snprintf(buf, sizeof(buf), "%s/%s", _ > ("Desktop"), path) >= sizeof(buf)) return NULL; > } > ecore_file_mkpath(buf); > > > -- > Get a FREE DOWNLOAD! and learn more about uberSVN rich system, > user administration capabilities and model configuration. Take > the hassle out of deploying and managing Subversion and the > tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2 > ___ > enlightenment-svn mailing list > enlightenment-...@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn > -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- EMC VNX: the world's simplest storage, starting under $10K The only unified storage solution that offers unified management Up to 160% more powerful than alternatives and 25% more efficient. Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E SVN: jeffdameth trunk/e/src/bin
On Tue, Aug 23, 2011 at 17:11, P Purkayastha wrote: > > > On Monday, August 22, 2011 7:12:47 PM UTC+8, David Seikel wrote: >> >> On Mon, 22 Aug 2011 13:05:57 +0200 Brian 'morlenxus' Miculcy >> wrote: >> >> > On 08/22/2011 12:39 PM, hannes@gmail.com wrote: >> > > On Mon, Aug 22, 2011 at 12:11 PM, Brian 'morlenxus' Miculcy >> > > wrote: >> > >> I don't like it, and i don't think it's an improvement: >> > >> >> > > Problem with the menu before was that there were 3 submenu levels to >> > > get to common window options like maximize. Now all window options >> > > are >> > So, you think common people go to the window menu to change the >> > maximize state? I would guess that they use the window button for >> > that... >> >> Actually that was my pet peeve about the last menu reorg. I maximise >> borderless windows all the time. So yes, I had to dig deep in the >> menus to get to that. >> >> Why am I maximising borderless windows? Coz I lost the fight to have >> fullscreen windows work my way. Now I just go through a process of >> turning on or off all the things I need to get MY style fullscreen >> windows. Pffft >> >> I did not think the previous window menu reorg was an improvement. >> > > If I may add as a user, I too find the maximize option in the shorter menu > very hard to get to. I primarily use maximize horizontal or maximize > vertical, since I still want to see the content of some window underneath or > beside the maximized window. Because this was always quite difficult to > reach, I hacked into e.cfg and changed the signal bindings for the maximize > button on the window. Left click -> max, Right click -> Max horizontal, > Middle click -> max vertical. > > Overall, I think it is quite difficult to satisfy everyone. I do like the > fact that Always on Top and Move readily accessible in the shorter menu, > and I do use those. But then the shorter menu also has some disadvantages, > as i mentioned above. Also, someone else might not have any use for Sticky > or Always on Top (I don't usually use Sticky). > Imho, the best solution would be to replace the "standard" buttons (minimize, maximize, close) by a kind of expanding shelf inside the border, where every window setting can be placed as a icon. This way everyone could reach his most used features by a single click, while the menu could be logical while keeping its complexity (I think morlenxus has done a good job with the new menu). Though this certainly would be a lot of work and _I_ sure am not up to it, so I just throw it in the room :) At least this would satisfy each and everyone. -- Get a FREE DOWNLOAD! and learn more about uberSVN rich system, user administration capabilities and model configuration. Take the hassle out of deploying and managing Subversion and the tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2 ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E SVN: jeffdameth trunk/e/src/bin
On Monday, August 22, 2011 7:12:47 PM UTC+8, David Seikel wrote: > > On Mon, 22 Aug 2011 13:05:57 +0200 Brian 'morlenxus' Miculcy > wrote: > > > On 08/22/2011 12:39 PM, hannes@gmail.com wrote: > > > On Mon, Aug 22, 2011 at 12:11 PM, Brian 'morlenxus' Miculcy > > > wrote: > > >> I don't like it, and i don't think it's an improvement: > > >> > > > Problem with the menu before was that there were 3 submenu levels to > > > get to common window options like maximize. Now all window options > > > are > > So, you think common people go to the window menu to change the > > maximize state? I would guess that they use the window button for > > that... > > Actually that was my pet peeve about the last menu reorg. I maximise > borderless windows all the time. So yes, I had to dig deep in the > menus to get to that. > > Why am I maximising borderless windows? Coz I lost the fight to have > fullscreen windows work my way. Now I just go through a process of > turning on or off all the things I need to get MY style fullscreen > windows. Pffft > > I did not think the previous window menu reorg was an improvement. > If I may add as a user, I too find the maximize option in the shorter menu very hard to get to. I primarily use maximize horizontal or maximize vertical, since I still want to see the content of some window underneath or beside the maximized window. Because this was always quite difficult to reach, I hacked into e.cfg and changed the signal bindings for the maximize button on the window. Left click -> max, Right click -> Max horizontal, Middle click -> max vertical. Overall, I think it is quite difficult to satisfy everyone. I do like the fact that Always on Top and Move readily accessible in the shorter menu, and I do use those. But then the shorter menu also has some disadvantages, as i mentioned above. Also, someone else might not have any use for Sticky or Always on Top (I don't usually use Sticky). -- Get a FREE DOWNLOAD! and learn more about uberSVN rich system, user administration capabilities and model configuration. Take the hassle out of deploying and managing Subversion and the tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2 ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E SVN: raster trunk/elementary/src/lib
hilight -> highlight http://en.wiktionary.org/wiki/hilight I won't touch elm_access while raster is heavily working on it. So fix it! Daniel Juyung Seo (SeoZ) On Tue, Aug 23, 2011 at 5:46 PM, Enlightenment SVN wrote: > Log: > make access hilight follow object around and vanish it target is > hidden or deleted. > > > > Author: raster > Date: 2011-08-23 01:46:01 -0700 (Tue, 23 Aug 2011) > New Revision: 62714 > Trac: http://trac.enlightenment.org/e/changeset/62714 > > Modified: > trunk/elementary/src/lib/elm_access.c trunk/elementary/src/lib/elm_widget.h > > Modified: trunk/elementary/src/lib/elm_access.c > === > --- trunk/elementary/src/lib/elm_access.c 2011-08-23 07:44:49 UTC (rev > 62713) > +++ trunk/elementary/src/lib/elm_access.c 2011-08-23 08:46:01 UTC (rev > 62714) > @@ -101,7 +101,7 @@ > { > Elm_Access_Info *ac = evas_object_data_get(data, "_elm_access"); > if (!ac) return; > - _elm_access_object_unhilight(data); > +// _elm_access_object_unhilight(data); > if (ac->delay_timer) > { > ecore_timer_del(ac->delay_timer); > @@ -135,6 +135,44 @@ > printf("read done\n"); > } > > +static void > +_access_obj_hilight_del_cb(void *data __UNUSED__, Evas *e, Evas_Object *obj > __UNUSED__, void *event_info __UNUSED__) > +{ > + _elm_access_object_hilight_disable(e); > +} > + > +static void > +_access_obj_hilight_hide_cb(void *data __UNUSED__, Evas *e, Evas_Object *obj > __UNUSED__, void *event_info __UNUSED__) > +{ > + _elm_access_object_hilight_disable(e); > +} > + > +static void > +_access_obj_hilight_move_cb(void *data __UNUSED__, Evas *e __UNUSED__, > Evas_Object *obj, void *event_info __UNUSED__) > +{ > + Evas_Coord x, y; > + Evas_Object *o; > + > + o = evas_object_name_find(evas_object_evas_get(obj), "_elm_access_disp"); > + if (!o) return; > + evas_object_geometry_get(obj, &x, &y, NULL, NULL); > + evas_object_move(o, x, y); > +} > + > +static void > +_access_obj_hilight_resize_cb(void *data __UNUSED__, Evas *e __UNUSED__, > Evas_Object *obj, void *event_info __UNUSED__) > +{ > + Evas_Coord w, h; > + Evas_Object *o; > + > + o = evas_object_name_find(evas_object_evas_get(obj), "_elm_access_disp"); > + if (!o) return; > + evas_object_geometry_get(obj, NULL, NULL, &w, &h); > + evas_object_resize(o, w, h); > +} > + > + > + > //-// > > EAPI void > @@ -252,6 +290,7 @@ > _elm_access_object_hilight(Evas_Object *obj) > { > Evas_Object *o; > + Evas_Coord x, y, w, h; > > o = evas_object_name_find(evas_object_evas_get(obj), "_elm_access_disp"); > if (!o) > @@ -266,27 +305,31 @@ > if (ptarget) > { > evas_object_data_del(o, "_elm_access_target"); > - // FIXME: delete move/resize/del callbacks from ptarget > + evas_object_event_callback_del_full(ptarget, EVAS_CALLBACK_DEL, > + _access_obj_hilight_del_cb, > NULL); > + evas_object_event_callback_del_full(ptarget, EVAS_CALLBACK_HIDE, > + > _access_obj_hilight_hide_cb, NULL); > + evas_object_event_callback_del_full(ptarget, EVAS_CALLBACK_MOVE, > + > _access_obj_hilight_move_cb, NULL); > + evas_object_event_callback_del_full(ptarget, > EVAS_CALLBACK_RESIZE, > + > _access_obj_hilight_resize_cb, NULL); > } > } > evas_object_data_set(o, "_elm_access_target", obj); > - // FIXME: track obj pos/size until hilight removed > _elm_theme_object_set(obj, o, "access", "base", "default"); > + evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL, > + _access_obj_hilight_del_cb, NULL); > + evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE, > + _access_obj_hilight_hide_cb, NULL); > + evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE, > + _access_obj_hilight_move_cb, NULL); > + evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, > + _access_obj_hilight_resize_cb, NULL); > evas_object_raise(o); > - > - { > - Evas_Coord x, y, w, h; > - evas_object_geometry_get(obj, &x, &y, &w, &h); > - evas_object_move(o, x, y); > - evas_object_resize(o, w, h); > - } > - > + evas_object_geometry_get(obj, &x, &y, &w, &h); > + evas_object_move(o, x, y); > + evas_object_resize(o, w, h); > evas_object_show(o); > - // if hilight obj doesnt exist - create and attach to window > - // make sure its on a high layer > - // show it and emit signal > - // if exists, move and resize to obj object location > - // ** try use dragables to specify pos+size?? > } >
Re: [E-devel] [Patch] elc_ctxpopup, add transition
Dear Hermet, Hi! I have refined previous patch based on your opinion. Please refer to bellow comments and attached patch * 1. how about changing the signal names to ones more explicitly ? "elm,state,show,up" "elm,state,show,down" "elm,state,show,right" "elm,state,show,left" I guess hide could be added also later.* -> Names are changed as you mentioned. *2. _transition_adjust I don't like that name. Since those signals are not only for transitions but also any other actions. How about just _show_signal_emit ?* -> Also changed *3. edje_object_signal_emit(wd->base, "elm,state,show", "elm"); in the _ctxpopup_show function looks useless call. doesnt' it?* -> edje_object_signal_emit(); should be there. The clip part does not come properly without this. Sincerely, Shinwoo Kim. 2011/8/22 cnook > Dear All, Hello! > > The transition effect is added to the ctxpopup when it comes. > Please review the attached patch. Thanks always! > > Sincerely, > Shinwoo Kim. > Index: src/lib/elc_ctxpopup.c === --- src/lib/elc_ctxpopup.c (revision 62716) +++ src/lib/elc_ctxpopup.c (working copy) @@ -539,6 +539,33 @@ } static void +_show_signal_emit(Evas_Object *obj, Elm_Ctxpopup_Direction dir) +{ + Widget_Data *wd; + + wd = elm_widget_data_get(obj); + if (!wd || wd->visible) return; + + switch (dir) + { +case ELM_CTXPOPUP_DIRECTION_UP: + edje_object_signal_emit(wd->base, "elm,state,show,up", "elm"); + break; +case ELM_CTXPOPUP_DIRECTION_LEFT: + edje_object_signal_emit(wd->base, "elm,state,show,left", "elm"); + break; +case ELM_CTXPOPUP_DIRECTION_RIGHT: + edje_object_signal_emit(wd->base, "elm,state,show,right", "elm"); + break; +case ELM_CTXPOPUP_DIRECTION_DOWN: + edje_object_signal_emit(wd->base, "elm,state,show,down", "elm"); + break; +default: + break; + } +} + +static void _sizing_eval(Evas_Object *obj) { Widget_Data *wd; @@ -580,6 +607,7 @@ //Base wd->dir = _calc_base_geometry(obj, &rect); + _show_signal_emit(obj, wd->dir); _update_arrow(obj, wd->dir); _shift_base_by_arrow(wd->arrow, wd->dir, &rect); @@ -805,6 +833,7 @@ evas_object_show(wd->arrow); edje_object_signal_emit(wd->bg, "elm,state,show", "elm"); + edje_object_signal_emit(wd->base, "elm,state,show", "elm"); _sizing_eval(obj); } Index: data/themes/widgets/ctxpopup.edc === --- data/themes/widgets/ctxpopup.edc (revision 62716) +++ data/themes/widgets/ctxpopup.edc (working copy) @@ -437,6 +437,7 @@ part { name: "arrow_area_left"; type: RECT; mouse_events: 0; + clip_to: "ctxpopup_clip"; description { state: "default" 0.0; visible: 0; min: 20 0; @@ -454,6 +455,7 @@ part { name: "arrow_area_right"; type: RECT; mouse_events: 0; + clip_to: "ctxpopup_clip"; description { state: "default" 0.0; visible: 0; min: 20 0; @@ -471,6 +473,7 @@ part { name: "arrow_area_up"; type: RECT; mouse_events: 0; + clip_to: "ctxpopup_clip"; description { state: "default" 0.0; visible: 0; min: 0 20; @@ -488,6 +491,7 @@ part { name: "arrow_area_down"; type: RECT; mouse_events: 0; + clip_to: "ctxpopup_clip"; description { state: "default" 0.0; visible: 0; min: 0 20; @@ -506,6 +510,7 @@ type: SWALLOW; mouse_events: 0; scale: 1; + clip_to: "ctxpopup_clip"; dragable { x: 1 1 0; y: 1 1 0; @@ -521,6 +526,7 @@ type: SWALLOW; mouse_events: 0; scale: 1; + clip_to: "ctxpopup_clip"; dragable { x: 1 1 0; y: 1 1 0; @@ -536,6 +542,7 @@ type: SWALLOW; mouse_events: 0; scale: 1; + clip_to: "ctxpopup_clip"; dragable { x: 1 1 0; y: 1 1 0; @@ -551,6 +558,7 @@ type: SWALLOW; mouse_events: 0; scale: 1; + clip_to: "ctxpopup_clip"; dragable { x: 1 1 0; y: 1 1 0; @@ -564,6 +572,7 @@ } part { name: "base"; scale: 1; + clip_to: "ctxpopup_clip"; description { state: "default" 0.0; rel1.offset: -3 -3; rel2.offset: 3 3; @@ -574,6 +583,7 @@ } part { name: "over1"; scale: 1; + clip_to: "ctxpopup_clip"; description { state: "default" 0.0; rel1.to: "base"; rel2.to: "base"; @@ -585,6 +595,7 @@ } part { name: "over2"; scale: 1; + clip_to: "ctxpopup_clip"; description