On Wed, 15 Jan 2014 17:20:08 +0900 (KST) ChunEon Park <her...@naver.com> said:
ok. here's the catch. since it's a move lock... it's normally off so you want elm_tooltip_movement_freeze() elm_tooltip_movement_thaw() these are in fact better - but then it'd need to be not a bitfiled but a push/pop (freeze/thaw) thing with a counter... and it's not. :) so this is probably about right. :) > elm_tooltip_movement_lock_set() ? > > how about _freeze_set() ? > we already use the freeze word entirely. > > ------------------------------------ > -Regards, Hermet- > > -----Original Message----- > From: "abhi"<a.aryadi...@samsung.com> > To: <g...@lists.enlightenment.org>; > Cc: > Sent: 2014-01-13 (월) 15:47:26 > Subject: [EGIT] [core/elementary] master 01/06: Adding > elm_tooltip_movement_lock_set() and elm_tooltip_movement_lock_get() > > raster pushed a commit to branch master. > > http://git.enlightenment.org/core/elementary.git/commit/?id=1832450176b188773557c39e5cf1eee0f47a8858 > > commit 1832450176b188773557c39e5cf1eee0f47a8858 > Author: abhi <a.aryadipta>@samsung.com> > Date: Mon Jan 13 15:22:47 2014 +0900 > > Adding elm_tooltip_movement_lock_set() and elm_tooltip_movement_lock_get() > > Summary: These APIs allow to enable/disable a tooltip to move with > respect to mouse pointer > Test Plan: elm_tooltip_movement_lock_set(), elm_tooltip_movement_lock_get > (), elementary_test -to tooltip > Reviewers: singh.amitesh, seoz, raster > > Reviewed By: raster > > CC: raster > > Differential Revision: https://phab.enlightenment.org/D369 > --- > ChangeLog 4 ++++ > NEWS 2 ++ > src/bin/test_tooltip.c 24 ++++++++++++++++++++++++ > src/lib/elm_tooltip.h 32 ++++++++++++++++++++++++++++++++ > src/lib/els_tooltip.c 29 ++++++++++++++++++++++++----- > 5 files changed, 86 insertions(+), 5 deletions(-) > > diff --git a/ChangeLog b/ChangeLog > index 56975bb..f845744 100644 > --- a/ChangeLog > +++ b/ChangeLog > @@ -1772,3 +1772,7 @@ > 2013-12-01 Mike Blumenkrantz > > * fix mouse eventing on e border theme > + > +2013-12-09 Abhinandan Aryadipta (aryarockstar) > + > + * tooltip: Added elm_tooltip_move_lock_set() and > elm_tooltip_move_lock_get(). diff --git a/NEWS b/NEWS > index 85da746..a32848f 100644 > --- a/NEWS > +++ b/NEWS > @@ -7,6 +7,8 @@ Changes since Elementary 1.8.0: > > Additions: > > + * Add elm_tooltip_move_lock_set() and elm_tooltip_move_lock_get() > + > Improvements: > > Fixes: > diff --git a/src/bin/test_tooltip.c b/src/bin/test_tooltip.c > index 332eced..d5ac0af 100644 > --- a/src/bin/test_tooltip.c > +++ b/src/bin/test_tooltip.c > @@ -200,6 +200,23 @@ _tt_text_replace(void *data EINA_UNUSED, > } > > static void > +_tt_move_lock(void *data EINA_UNUSED, > + Evas_Object *obj, > + void *event_info EINA_UNUSED) > +{ > + if (!elm_tooltip_move_lock_get(obj)) > + { > + elm_tooltip_move_lock_set(obj, EINA_TRUE); > + elm_object_tooltip_text_set(obj, "Locked"); > + } > + else > + { > + elm_tooltip_move_lock_set(obj, EINA_FALSE); > + elm_object_tooltip_text_set(obj, "Free"); > + } > +} > + > +static void > _tt_orient_text_replace(void *data EINA_UNUSED, > Evas_Object *obj, > void *event_info EINA_UNUSED) > @@ -489,6 +506,13 @@ test_tooltip(void *data EINA_UNUSED, > evas_object_show(bt); > > bt = elm_button_add(win); > + elm_object_text_set(bt, "Movement Lock Tooltip, click to change"); > + elm_object_tooltip_text_set(bt, "Free"); > + evas_object_smart_callback_add(bt, "clicked", _tt_move_lock, NULL); > + elm_box_pack_end(bx, bt); > + evas_object_show(bt); > + > + bt = elm_button_add(win); > elm_object_text_set(bt, "Orient Tooltip, click to change"); > elm_object_tooltip_text_set(bt, "Top Left"); > elm_object_tooltip_orient_set(bt, ELM_TOOLTIP_ORIENT_TOP_LEFT); > diff --git a/src/lib/elm_tooltip.h b/src/lib/elm_tooltip.h > index 21bbfcd..3b1c76a 100644 > --- a/src/lib/elm_tooltip.h > +++ b/src/lib/elm_tooltip.h > @@ -33,6 +33,38 @@ typedef enum > } Elm_Tooltip_Orient; > > /** > + * @def elm_tooltip_move_lock_set > + * @since 1.9 > + * > + * @brief Enable/Disable tooltip movement with respect to mouse pointer > + * > + * @param[in] obj The tooltip's anchor object > + * @param[in] lock If EINA_TRUE, tooltip movement with respect to mouse > pointer is disabled > + * > + * This function allows to enable/disable a tooltip to move with respect to > mouse pointer > + * > + * @ingroup Tooltips > + * @see elm_tooltip_move_lock_get > + */ > +EAPI void elm_tooltip_move_lock_set(Evas_Object *obj, Eina_Bool lock); > + > +/** > + * @def elm_tooltip_move_lock_get > + * @since 1.9 > + * > + * @brief Get the lock status of tooltip movement with respect to mouse > pointer > + * > + * @param[in] obj The tooltip's anchor object > + * @return The lock status of tooltip movement with respect to mouse pointer > + * > + * This function returns the status of tooltip movement with respect to > mouse pointer > + * > + * @ingroup Tooltips > + * @see elm_tooltip_move_lock_set > + */ > +EAPI Eina_Bool elm_tooltip_move_lock_get(const Evas_Object *obj); > + > +/** > * @def elm_object_tooltip_orient_set > * @since 1.9 > * > diff --git a/src/lib/els_tooltip.c b/src/lib/els_tooltip.c > index 5606123..867ad84 100644 > --- a/src/lib/els_tooltip.c > +++ b/src/lib/els_tooltip.c > @@ -58,6 +58,7 @@ struct _Elm_Tooltip > } rel_pos; > Elm_Tooltip_Orient orient; /** orientation for tooltip */ > double hide_timeout; /* from theme */ > + Eina_Bool move_lock : 1; /* set/reset tooltip movement > with respect to mouse pointer*/ Eina_Bool visible_lock:1; > Eina_Bool changed_style:1; > Eina_Bool free_size : 1; > @@ -156,13 +157,15 @@ _elm_tooltip_show(Elm_Tooltip *tt) > (tt->eventarea, EVAS_CALLBACK_MOVE, _elm_tooltip_obj_move_cb, tt); > evas_object_event_callback_add > (tt->eventarea, EVAS_CALLBACK_RESIZE, _elm_tooltip_obj_resize_cb, tt); > - //No movement of tooltip upon mouse move if orientation set > - if ((tt->orient <= ELM_TOOLTIP_ORIENT_NONE) (tt->orient >= > ELM_TOOLTIP_ORIENT_LAST)) > + if (!tt->move_lock) > { > - evas_object_event_callback_add > - (tt->eventarea, EVAS_CALLBACK_MOUSE_MOVE, > (Evas_Object_Event_Cb)_elm_tooltip_obj_mouse_move_cb, tt); > + //No movement of tooltip upon mouse move if orientation set > + if ((tt->orient <= ELM_TOOLTIP_ORIENT_NONE) (tt->orient >= > ELM_TOOLTIP_ORIENT_LAST)) > + { > + evas_object_event_callback_add > + (tt->eventarea, EVAS_CALLBACK_MOUSE_MOVE, > (Evas_Object_Event_Cb)_elm_tooltip_obj_mouse_move_cb, tt); > + } > } > - > tt->changed_style = EINA_TRUE; > _elm_tooltip_reconfigure_job_start(tt); > } > @@ -724,6 +727,22 @@ _elm_tooltip_data_clean(Elm_Tooltip *tt) > } > > EAPI void > +elm_tooltip_move_lock_set(Evas_Object *obj, Eina_Bool lock) > +{ > + ELM_TOOLTIP_GET_OR_RETURN(tt, obj); > + > + tt->move_lock = lock; > +} > + > +EAPI Eina_Bool > +elm_tooltip_move_lock_get(const Evas_Object *obj) > +{ > + ELM_TOOLTIP_GET_OR_RETURN(tt, obj, EINA_FALSE); > + > + return tt->move_lock; > +} > + > +EAPI void > elm_object_tooltip_orient_set(Evas_Object *obj, Elm_Tooltip_Orient orient) > { > ELM_TOOLTIP_GET_OR_RETURN(tt, obj); > > -- > > > > ------------------------------------------------------------------------------ > CenturyLink Cloud: The Leader in Enterprise Cloud Services. > Learn Why More Businesses Are Choosing CenturyLink Cloud For > Critical Workloads, Development Environments & Everything In Between. > Get a Quote or Start a Free Trial Today. > http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) ras...@rasterman.com ------------------------------------------------------------------------------ CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments & Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel