On Mon, Nov 4, 2013 at 2:31 PM, ChunEon Park <her...@naver.com> wrote:

> Eeeeeek!
>
> How about keeping the API name with notify?
> elm_notify_align_set()?
>

Thanks for the interest and comments but the concept is different from
align_set.
elm_notify_align_set() gets relative position as a parameter but
elm_popup_move() gets absolute pixel information just like elm_menu_move().
So elm_popup_move() is correct.

EAPI void                         elm_notify_align_set(Evas_Object *obj,
double horizontal, double vertical);
EAPI void                         elm_menu_move(Evas_Object *obj,
Evas_Coord x, Evas_Coord y);
EAPI void elm_popup_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y);

Thanks.

Daniel Juyung Seo (SeoZ)



>
> ------------------------------------
> -Regards, Hermet-
>
>
> -----Original Message-----
> From: "Abhinandan Aryadipta"<a.aryadi...@samsung.com>
> To: <g...@lists.enlightenment.org>;
> Cc:
> Sent: 2013-11-03 (일) 23:29:06
> Subject: [EGIT] [core/elementary] master 01/01: popup: Added support for
> popup move. elm_popup_move.
>
> seoz pushed a commit to branch master.
>
>
> http://git.enlightenment.org/core/elementary.git/commit/?id=f67ecb2028dd663aa4b0d9fe78b2a392ac169e7e
>
> commit f67ecb2028dd663aa4b0d9fe78b2a392ac169e7e
> Author: Abhinandan Aryadipta <a.aryadipta>@samsung.com>
> Date:   Sun Nov 3 23:01:19 2013 +0900
>
>     popup: Added support for popup move. elm_popup_move.
>
>     Summary: Added support for popup move
>
>     Test Plan: elm_popup_move
>
>     Reviewers: seoz, singh.amitesh, tasn, Hermet
>
>     CC: raster
>
>     Differential Revision: https://phab.enlightenment.org/D247
> ---
>  ChangeLog                    4 ++++
>  NEWS                         1 +
>  src/bin/test_popup.c        58
> ++++++++++++++++++++++++++++++++++++++++++++++
>  src/lib/elc_popup.c         41 ++++++++++++++++++++++++++++++++
>  src/lib/elc_popup_eo.h      14 +++++++++++
>  src/lib/elc_popup_legacy.h  15 ++++++++++++
>  6 files changed, 133 insertions(+)
>
> diff --git a/ChangeLog b/ChangeLog
> index 66e4536..434f65f 100644
> --- a/ChangeLog
> +++ b/ChangeLog
> @@ -1741,3 +1741,7 @@
>          * genlist , gengrid: Add
> ELM_OBJECT_MULTIPLE_SELECT_MODE_WITH_CONTROL.
>          It disallow multiple selection when clicked without control
> pressed although
>          multiple selection is enabled.
> +
> +2013-10-03  Abhinandan Aryadipta (aryarockstar)
> +
> +        * Popup - Added elm_popup_move() api.
> diff --git a/NEWS b/NEWS
> index 4ba58bf..fece1e7 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -102,6 +102,7 @@ Additions:
>     * Add "virtualkeypad,size,changed" callback on virtualkeypad min size
> change for conformant.
>     * Add elm_slider_step_get(), elm_slider_step_set() for slider.
>     * Add ELM_OBJECT_MULTIPLE_SELECT_MODE_WITH_CONTROL select mode for
> genlist/gengrid.
> +   * Add support elm_popup_move() for popup.
>
>  Improvements:
>
> diff --git a/src/bin/test_popup.c b/src/bin/test_popup.c
> index fa2d06e..945c3df 100644
> --- a/src/bin/test_popup.c
> +++ b/src/bin/test_popup.c
> @@ -22,6 +22,35 @@ _popup_close_cb(void *data, Evas_Object *obj
> EINA_UNUSED,
>  }
>
>  static void
> +_popup_move_cb(void *data, Evas_Object *obj EINA_UNUSED,
> +               void *event_info EINA_UNUSED)
> +{
> +   static int k=0;
> +
> +   if (k == 0)
> +     elm_popup_move(data, -10, 50);//negative x
> +   else if (k == 1)
> +     elm_popup_move(data, 40, -100);//negative y
> +   else if (k == 2)
> +     elm_popup_move(data, 0, 0);//zero x zero y
> +   else if (k == 3)
> +     elm_popup_move(data, 40, 50);
> +   else if (k == 4)
> +     elm_popup_move(data, 80, 100);
> +   else if (k == 5)
> +     elm_popup_move(data, 120, 150);
> +   else if (k == 6)
> +     elm_popup_move(data, 160, 200);
> +   else if (k == 7)
> +     elm_popup_move(data, 500, 9999);//excess y
> +   else
> +     elm_popup_move(data, 9999, 500);//excess x
> +   k++;
> +   if (k > 8)
> +     k = 0;
> +}
> +
> +static void
>  _g_popup_response_cb(void *data, Evas_Object *obj EINA_UNUSED,
>               void *event_info EINA_UNUSED)
>  {
> @@ -467,6 +496,33 @@ _popup_transparent_cb(void *data, Evas_Object *obj
> EINA_UNUSED,
>  }
>
>  static void
> +_popup_transparent_move_cb(void *data, Evas_Object *obj EINA_UNUSED,
> +                           void *event_info EINA_UNUSED)
> +{
> +   Evas_Object *popup;
> +   Evas_Object *btn, *btn1;
> +
> +   popup = elm_popup_add(data);
> +   elm_object_style_set(popup, "transparent");
> +   elm_object_text_set(popup, "This Popup has transparent background");
> +
> +   // popup buttons
> +   btn = elm_button_add(popup);
> +   elm_object_text_set(btn, "Move");
> +   elm_object_part_content_set(popup, "button1", btn);
> +   evas_object_smart_callback_add(btn, "clicked", _popup_move_cb, popup);
> +
> +   btn1 = elm_button_add(popup);
> +   elm_object_text_set(btn1, "Close");
> +   elm_object_part_content_set(popup, "button2", btn1);
> +   evas_object_smart_callback_add(btn1, "clicked", _popup_close_cb,
> popup);
> +
> +   // popup show should be called after adding all the contents and the
> buttons
> +   // of popup to set the focus into popup's contents correctly.
> +   evas_object_show(popup);
> +}
> +
> +static void
>  _list_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info
> EINA_UNUSED)
>  {
>     evas_object_del(data);
> @@ -543,6 +599,8 @@ test_popup(void *data EINA_UNUSED, Evas_Object *obj
> EINA_UNUSED,
>                          _popup_center_text_3button_add_remove_button_cb,
> win);
>     elm_list_item_append(list, "popup-transparent", NULL, NULL,
>                          _popup_transparent_cb, win);
> +   elm_list_item_append(list, "popup-transparent-move", NULL, NULL,
> +                        _popup_transparent_move_cb, win);
>     elm_list_item_append(list, "popup-center-title + list content + 1
> button",
>                          NULL, NULL,
> _popup_center_title_list_content_1button_cb,
>                          win);
> diff --git a/src/lib/elc_popup.c b/src/lib/elc_popup.c
> index f873cff..c5b5c98 100644
> --- a/src/lib/elc_popup.c
> +++ b/src/lib/elc_popup.c
> @@ -1755,6 +1755,45 @@ _orient_get(Eo *obj EINA_UNUSED, void *_pd, va_list
> *list)
>  }
>
>  EAPI void
> +elm_popup_move(Evas_Object *obj,
> +               Evas_Coord x, Evas_Coord y)
> +{
> +   ELM_POPUP_CHECK(obj);
> +   eo_do(obj, elm_obj_popup_move(x, y));
> +}
> +
> +static void
> +_move(Eo *obj, void *_pd, va_list *list)
> +{
> +   Evas_Coord x = va_arg(*list, Evas_Coord);
> +   Evas_Coord y = va_arg(*list, Evas_Coord);
> +   Evas_Coord tw, th, w, h;
> +   Evas_Object *top;
> +   Elm_Popup_Smart_Data *sd = _pd;
> +
> +   top = elm_widget_top_get(obj);
> +   if (!top)
> +     {
> +        ERR("The top parent is NULL! : popup=%p", obj);
> +        return;
> +     }
> +
> +   evas_object_geometry_get(top, NULL, NULL, &tw, &th);
> +   evas_object_geometry_get(obj, NULL, NULL, &w, &h);
> +
> +   if (x < 0) x = 0;
> +   if (y < 0) y = 0;
> +   if ((x > (tw - w)) && (tw - w > 0))
> +     x = tw - w;
> +   if ((y > (th - h)) && (th - h > 0))
> +     y = th - h;
> +   if ((x > tw)  (y > th)  (w > tw)  (h > th))
> +     elm_notify_align_set(sd->notify, 0.5, 0.5);
> +   else
> +     elm_notify_align_set(sd->notify, ((double)x/(double)tw),
> ((double)y/(double)th));
> +}
> +
> +EAPI void
>  elm_popup_timeout_set(Evas_Object *obj,
>                        double timeout)
>  {
> @@ -1921,6 +1960,7 @@ _class_constructor(Eo_Class *klass)
>
>  EO_OP_FUNC(ELM_OBJ_POPUP_ID(ELM_OBJ_POPUP_SUB_ID_ALLOW_EVENTS_SET),
> _allow_events_set),
>
>  EO_OP_FUNC(ELM_OBJ_POPUP_ID(ELM_OBJ_POPUP_SUB_ID_ALLOW_EVENTS_GET),
> _allow_events_get),
>          EO_OP_FUNC(ELM_OBJ_POPUP_ID(ELM_OBJ_POPUP_SUB_ID_ITEM_APPEND),
> _item_append),
> +        EO_OP_FUNC(ELM_OBJ_POPUP_ID(ELM_OBJ_POPUP_SUB_ID_MOVE), _move),
>          EO_OP_FUNC_SENTINEL
>    };
>     eo_class_funcs_set(klass, func_desc);
> @@ -1937,6 +1977,7 @@ static const Eo_Op_Description op_desc[] = {
>       EO_OP_DESCRIPTION(ELM_OBJ_POPUP_SUB_ID_ALLOW_EVENTS_SET, "Sets
> whether events should be passed to by a click outside."),
>       EO_OP_DESCRIPTION(ELM_OBJ_POPUP_SUB_ID_ALLOW_EVENTS_GET, "Returns
> value indicating whether allow event is enabled or not."),
>       EO_OP_DESCRIPTION(ELM_OBJ_POPUP_SUB_ID_ITEM_APPEND, "Add a new item
> to a Popup object."),
> +     EO_OP_DESCRIPTION(ELM_OBJ_POPUP_SUB_ID_MOVE, "Move the popup
> relative to its top parent."),
>       EO_OP_DESCRIPTION_SENTINEL
>  };
>  static const Eo_Class_Description class_desc = {
> diff --git a/src/lib/elc_popup_eo.h b/src/lib/elc_popup_eo.h
> index 6d09109..75bf885 100644
> --- a/src/lib/elc_popup_eo.h
> +++ b/src/lib/elc_popup_eo.h
> @@ -20,6 +20,7 @@ enum
>     ELM_OBJ_POPUP_SUB_ID_ALLOW_EVENTS_SET,
>     ELM_OBJ_POPUP_SUB_ID_ALLOW_EVENTS_GET,
>     ELM_OBJ_POPUP_SUB_ID_ITEM_APPEND,
> +   ELM_OBJ_POPUP_SUB_ID_MOVE,
>     ELM_OBJ_POPUP_SUB_ID_LAST
>  };
>
> @@ -138,6 +139,19 @@ enum
>   * @see elm_popup_item_append
>   */
>  #define elm_obj_popup_item_append(label, icon, func, data, ret)
> ELM_OBJ_POPUP_ID(ELM_OBJ_POPUP_SUB_ID_ITEM_APPEND), EO_TYPECHECK(const char
> *, label), EO_TYPECHECK(Evas_Object *, icon), EO_TYPECHECK(Evas_Smart_Cb,
> func), EO_TYPECHECK(const void *, data), EO_TYPECHECK(Elm_Object_Item **,
> ret)
> +
> +/**
> + * @def elm_obj_popup_move
> + * @since 1.8
> + *
> + * @brief Move the popup relative to its top parent
> + *
> + * @param[in] x
> + * @param[in] y
> + *
> + * @see elm_popup_move
> + */
> +#define elm_obj_popup_move(x, y)
> ELM_OBJ_POPUP_ID(ELM_OBJ_POPUP_SUB_ID_MOVE), EO_TYPECHECK(Evas_Coord, x),
> EO_TYPECHECK(Evas_Coord, y)
>  /**
>   * @}
>   */
> diff --git a/src/lib/elc_popup_legacy.h b/src/lib/elc_popup_legacy.h
> index 0f2d08f..2530ba0 100644
> --- a/src/lib/elc_popup_legacy.h
> +++ b/src/lib/elc_popup_legacy.h
> @@ -136,3 +136,18 @@ EAPI Eina_Bool elm_popup_allow_events_get(const
> Evas_Object *obj);
>   * and item(s) can be there in a popup content area.
>   */
>  EAPI Elm_Object_Item *elm_popup_item_append(Evas_Object *obj, const char
> *label, Evas_Object *icon, Evas_Smart_Cb func, const void *data)
> EINA_ARG_NONNULL(1);
> +
> +/**
> + * @since 1.8
> + *
> + * @brief Move the popup relative to its top parent
> + *
> + * @param obj popup object
> + * @param x X position to move the popup object to, in canvas units,
> + * with relative to its top parent object.
> + * @param y Y position to move the popup object to, in canvas units,
> + * with relative to its top parent object.
> + *
> + * @ingroup Popup
> + */
> +EAPI void elm_popup_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y);
>
> --
>
>
>
>
> ------------------------------------------------------------------------------
> Android is increasing in popularity, but the open development platform that
> developers love is also attractive to malware creators. Download this white
> paper to learn more about secure code signing practices that can help keep
> Android apps secure.
> http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
------------------------------------------------------------------------------
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to