From 09145dd66f3481754502edeca8a7e0de4203701b Mon Sep 17 00:00:00 2001 From: Ji-Youn Park Date: Sat, 19 Mar 2016 10:00:19 +0830 Subject: Evas.Draggable_Interface: move editable_set/get to lecacy API Elm_XXX_editable_set/get is related with drag and drop. Elm_entry, Elm_image, Elm_photo, Elm_thumb has editable API. If user call elm_entry_editable_set(obj, EINA_TRUE), elm entry's content(text) can be changed into dragging text. elm_image(photo,thumb also) is same. its content(image) also can be changed into dragging image. so changed for these widget to use drag_target property in evas_draggable_interface --- src/lib/elm_entry.c | 17 +++++++++++++++-- src/lib/elm_entry.eo | 27 ++++----------------------- src/lib/elm_entry_legacy.h | 29 +++++++++++++++++++++++++++++ src/lib/elm_image.c | 17 +++++++++++++++-- src/lib/elm_image.eo | 17 +++-------------- src/lib/elm_image_legacy.h | 23 +++++++++++++++++++++++ src/lib/elm_photo.c | 17 +++++++++++++++-- src/lib/elm_photo.eo | 18 ++---------------- src/lib/elm_photo_legacy.h | 21 +++++++++++++++++++++ src/lib/elm_thumb.c | 23 ++++++++++++++++++----- src/lib/elm_thumb.eo | 25 ++++--------------------- src/lib/elm_thumb_legacy.h | 23 +++++++++++++++++++++++ 12 files changed, 172 insertions(+), 85 deletions(-) (limited to 'src') diff --git a/src/lib/elm_entry.c b/src/lib/elm_entry.c index 42279fa09..81676b2fa 100644 --- a/src/lib/elm_entry.c +++ b/src/lib/elm_entry.c @@ -4107,7 +4107,7 @@ _elm_entry_line_wrap_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd) } EOLIAN static void -_elm_entry_editable_set(Eo *obj, Elm_Entry_Data *sd, Eina_Bool editable) +_elm_entry_evas_draggable_interface_drag_target_set(Eo *obj, Elm_Entry_Data *sd, Eina_Bool editable) { if (sd->editable == editable) return; sd->editable = editable; @@ -4130,7 +4130,7 @@ _elm_entry_editable_set(Eo *obj, Elm_Entry_Data *sd, Eina_Bool editable) } EOLIAN static Eina_Bool -_elm_entry_editable_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd) +_elm_entry_evas_draggable_interface_drag_target_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd) { return sd->editable; } @@ -5855,4 +5855,17 @@ _elm_entry_elm_interface_atspi_accessible_name_get(Eo *obj, Elm_Entry_Data *sd) return ret ? strdup(ret) : NULL; } +/* Legacy deprecated functions */ +EAPI void +elm_entry_editable_set(Evas_Object *obj, Eina_Bool edit) +{ + evas_draggable_interface_drag_target_set(obj, edit); +} + +EAPI Eina_Bool +elm_entry_editable_get(const Evas_Object *obj) +{ + return evas_draggable_interface_drag_target_get(obj); +} + #include "elm_entry.eo.c" diff --git a/src/lib/elm_entry.eo b/src/lib/elm_entry.eo index 166c6c75b..71825e23c 100644 --- a/src/lib/elm_entry.eo +++ b/src/lib/elm_entry.eo @@ -112,7 +112,8 @@ enum Elm.Cnp_Mode class Elm.Entry (Elm.Layout, Elm.Interface_Scrollable, Evas.Clickable_Interface, Elm.Interface_Atspi_Text, Elm.Interface_Atspi_Editable_Text, Efl.File, - Evas.Selectable_Interface, Evas.Scrollable_Interface) + Evas.Selectable_Interface, Evas.Scrollable_Interface, + Evas.Draggable_Interface) { eo_prefix: elm_obj_entry; methods { @@ -261,28 +262,6 @@ class Elm.Entry (Elm.Layout, Elm.Interface_Scrollable, Evas.Clickable_Interface, autocapital_type: Elm.Autocapital.Type; [[The type of autocapitalization.]] } } - @property editable { - set { - [[Sets if the entry is to be editable or not. - - By default, entries are editable and when focused, any text input by the - user will be inserted at the current cursor position. But calling this - function with $editable as $false will prevent the user from - inputting text into the entry. - - The only way to change the text of a non-editable entry is to use - \@ref elm_object_text_set, \@ref elm_entry_entry_insert and other related - functions. - ]] - } - get { - [[Get whether the entry is editable or not.]] - } - values { - editable: bool; [[If $true, user input will be inserted in the entry, - if not, the entry is read-only and no user input is allowed.]] - } - } @property anchor_hover_style { set { [[Set the style that the hover should use @@ -925,6 +904,8 @@ class Elm.Entry (Elm.Layout, Elm.Interface_Scrollable, Evas.Clickable_Interface, Evas.Object_Smart.del; Evas.Object_Smart.show; Evas.Object_Smart.hide; + Evas.Draggable_Interface.drag_target.set; + Evas.Draggable_Interface.drag_target.get; Elm.Widget.activate; Elm.Widget.focus_direction_manager_is; Elm.Widget.theme_apply; diff --git a/src/lib/elm_entry_legacy.h b/src/lib/elm_entry_legacy.h index 2a305440e..040fef50c 100644 --- a/src/lib/elm_entry_legacy.h +++ b/src/lib/elm_entry_legacy.h @@ -71,3 +71,32 @@ EAPI Eina_Bool elm_entry_file_set(Evas_Object *obj, const char *file, E * @param[out] format The file format */ EAPI void elm_entry_file_get(const Evas_Object *obj, const char **file, Elm_Text_Format *format); + +/** + * @brief Sets if the entry is to be editable or not. + * + * By default, entries are editable and when focused, any text input by the + * user will be inserted at the current cursor position. But calling this + * function with @c editable as @c false will prevent the user from inputting + * text into the entry. + * + * The only way to change the text of a non-editable entry is to use @ref + * elm_object_text_set, @ref elm_entry_entry_insert and other related + * functions. + * + * @param[in] editable If @c true, user input will be inserted in the entry, if + * not, the entry is read-only and no user input is allowed. + * + * @ingroup Elm_Entry + */ +EAPI void elm_entry_editable_set(Evas_Object *obj, Eina_Bool editable); + +/** + * @brief Get whether the entry is editable or not. + * + * @return If @c true, user input will be inserted in the entry, if not, the + * entry is read-only and no user input is allowed. + * + * @ingroup Elm_Entry + */ +EAPI Eina_Bool elm_entry_editable_get(const Evas_Object *obj); diff --git a/src/lib/elm_image.c b/src/lib/elm_image.c index 538c5b9e4..9edeea955 100644 --- a/src/lib/elm_image.c +++ b/src/lib/elm_image.c @@ -1399,7 +1399,7 @@ _elm_image_orient_get(Eo *obj EINA_UNUSED, Elm_Image_Data *sd) * Turns on editing through drag and drop and copy and paste. */ EOLIAN static void -_elm_image_editable_set(Eo *obj, Elm_Image_Data *sd, Eina_Bool edit) +_elm_image_evas_draggable_interface_drag_target_set(Eo *obj, Elm_Image_Data *sd, Eina_Bool edit) { if (sd->edje) { @@ -1430,7 +1430,7 @@ _elm_image_editable_set(Eo *obj, Elm_Image_Data *sd, Eina_Bool edit) } EOLIAN static Eina_Bool -_elm_image_editable_get(Eo *obj EINA_UNUSED, Elm_Image_Data *sd) +_elm_image_evas_draggable_interface_drag_target_get(Eo *obj EINA_UNUSED, Elm_Image_Data *sd) { return sd->edit; } @@ -1645,4 +1645,17 @@ elm_image_smooth_get(const Evas_Object *obj) // A11Y - END +/* Legacy deprecated functions */ +EAPI void +elm_image_editable_set(Evas_Object *obj, Eina_Bool edit) +{ + evas_draggable_interface_drag_target_set(obj, edit); +} + +EAPI Eina_Bool +elm_image_editable_get(const Evas_Object *obj) +{ + return evas_draggable_interface_drag_target_get(obj); +} + #include "elm_image.eo.c" diff --git a/src/lib/elm_image.eo b/src/lib/elm_image.eo index ea2d9666c..f3c8cbb4f 100644 --- a/src/lib/elm_image.eo +++ b/src/lib/elm_image.eo @@ -42,25 +42,12 @@ struct Elm.Image.Error } class Elm.Image (Elm.Widget, Efl.File, Efl.Image_Load, Evas.Clickable_Interface, - Edje.Object, Efl.Image, + Edje.Object, Efl.Image, Evas.Draggable_Interface, Elm.Interface_Atspi_Image, Elm.Interface_Atspi_Widget_Action, Efl.Player) { eo_prefix: elm_obj_image; methods { - @property editable { - [[Contrtol if thhe image is 'editable'. - - This means the image is a valid drag target for drag and drop, and can be - cut or pasted too.]] - set { - } - get { - } - values { - set: bool; [[Turn on or off editability. Default is $false.]] - } - } @property resize_down { [[Control whether the object's image can be resized to a size smaller than the original one. @@ -321,6 +308,8 @@ class Elm.Image (Elm.Widget, Efl.File, Efl.Image_Load, Evas.Clickable_Interface, Evas.Object_Smart.del; Evas.Object_Smart.member_add; Evas.Object_Smart.resize; + Evas.Draggable_Interface.drag_target.set; + Evas.Draggable_Interface.drag_target.get; Elm.Widget.theme_apply; Elm.Widget.event; Elm.Interface_Atspi_Image.extents.get; diff --git a/src/lib/elm_image_legacy.h b/src/lib/elm_image_legacy.h index 244ab2284..01df5fe3a 100644 --- a/src/lib/elm_image_legacy.h +++ b/src/lib/elm_image_legacy.h @@ -249,4 +249,27 @@ EAPI Eina_Bool elm_image_animated_get(const Evas_Object *obj); */ EAPI Eina_Bool elm_image_animated_available_get(const Evas_Object *obj); +/** + * @brief Contrtol if the image is 'editable'. + * + * This means the image is a valid drag target for drag and drop, and can be + * cut or pasted too. + * + * @param[in] set Turn on or off editability. Default is @c false. + * + * @ingroup Elm_Image + */ +EAPI void elm_image_editable_set(Evas_Object *obj, Eina_Bool set); + +/** + * @brief Contrtol if the image is 'editable'. + * + * This means the image is a valid drag target for drag and drop, and can be + * cut or pasted too. + * + * @return Turn on or off editability. Default is @c false. + * + * @ingroup Elm_Image + */ +EAPI Eina_Bool elm_image_editable_get(const Evas_Object *obj); #include "elm_image.eo.legacy.h" diff --git a/src/lib/elm_photo.c b/src/lib/elm_photo.c index ada159057..c8ffc74a9 100644 --- a/src/lib/elm_photo.c +++ b/src/lib/elm_photo.c @@ -360,13 +360,13 @@ _elm_photo_fill_inside_get(Eo *obj EINA_UNUSED, Elm_Photo_Data *sd) } EOLIAN static void -_elm_photo_editable_set(Eo *obj EINA_UNUSED, Elm_Photo_Data *sd, Eina_Bool set) +_elm_photo_evas_draggable_interface_drag_target_set(Eo *obj EINA_UNUSED, Elm_Photo_Data *sd, Eina_Bool set) { elm_image_editable_set(sd->icon, set); } EOLIAN static Eina_Bool -_elm_photo_editable_get(Eo *obj EINA_UNUSED, Elm_Photo_Data *sd) +_elm_photo_evas_draggable_interface_drag_target_get(Eo *obj EINA_UNUSED, Elm_Photo_Data *sd) { return elm_image_editable_get(sd->icon); } @@ -404,4 +404,17 @@ elm_photo_file_set(Eo *obj, const char *file) return efl_file_set((Eo *) obj, file, NULL); } +/* Legacy deprecated functions */ +EAPI void +elm_photo_editable_set(Evas_Object *obj, Eina_Bool edit) +{ + evas_draggable_interface_drag_target_set(obj, edit); +} + +EAPI Eina_Bool +elm_photo_editable_get(const Evas_Object *obj) +{ + return evas_draggable_interface_drag_target_get(obj); +} + #include "elm_photo.eo.c" diff --git a/src/lib/elm_photo.eo b/src/lib/elm_photo.eo index 6a6c2f890..68c1faeea 100644 --- a/src/lib/elm_photo.eo +++ b/src/lib/elm_photo.eo @@ -2,22 +2,6 @@ class Elm.Photo (Elm.Widget, Efl.File, Evas.Clickable_Interface, Evas.Draggable_ { eo_prefix: elm_obj_photo; methods { - @property editable { - set { - [[Set editability of the photo. - - An editable photo can be dragged to or from, and can be cut or - pasted too. Note that pasting an image or dropping an item on - the image will delete the existing content. - ]] - } - get { - [[Get editability of the photo.]] - } - values { - set: bool; [[To set of clear editability.]] - } - } @property fill_inside { set { [[Set if the photo should be completely visible or not.]] @@ -77,6 +61,8 @@ class Elm.Photo (Elm.Widget, Efl.File, Evas.Clickable_Interface, Evas.Draggable_ Efl.File.file.set; Evas.Object_Smart.add; Evas.Object_Smart.del; + Evas.Draggable_Interface.drag_target.set; + Evas.Draggable_Interface.drag_target.get; Elm.Widget.theme_apply; } diff --git a/src/lib/elm_photo_legacy.h b/src/lib/elm_photo_legacy.h index 0dca425df..116c0be2d 100644 --- a/src/lib/elm_photo_legacy.h +++ b/src/lib/elm_photo_legacy.h @@ -23,4 +23,25 @@ EAPI Evas_Object *elm_photo_add(Evas_Object *parent); */ EAPI Eina_Bool elm_photo_file_set(Eo *obj, const char *file); +/** + * Set editability of the photo. + * + * An editable photo can be dragged to or from, and can be cut or pasted too. + * Note that pasting an image or dropping an item on the image will delete the + * existing content. + * + * @param[in] set To set of clear editability. + * + * @ingroup Elm_Photo + */ +EAPI void elm_photo_editable_set(Evas_Object *obj, Eina_Bool set); + +/** + * Get editability of the photo. + * + * @return To set of clear editability. + * + * @ingroup Elm_Photo + */ +EAPI Eina_Bool elm_photo_editable_get(const Evas_Object *obj); #include "elm_photo.eo.legacy.h" diff --git a/src/lib/elm_thumb.c b/src/lib/elm_thumb.c index 6b33e43b6..65558b419 100644 --- a/src/lib/elm_thumb.c +++ b/src/lib/elm_thumb.c @@ -814,11 +814,11 @@ elm_thumb_ethumb_client_connected_get(void) return _elm_ethumb_connected; } -EOLIAN static Eina_Bool -_elm_thumb_editable_set(Eo *obj, Elm_Thumb_Data *sd, Eina_Bool edit) +EOLIAN static void +_elm_thumb_evas_draggable_interface_drag_target_set(Eo *obj, Elm_Thumb_Data *sd, Eina_Bool edit) { edit = !!edit; - if (sd->edit == edit) return EINA_TRUE; + if (sd->edit == edit) return; sd->edit = edit; if (sd->edit) @@ -834,11 +834,11 @@ _elm_thumb_editable_set(Eo *obj, Elm_Thumb_Data *sd, Eina_Bool edit) NULL, NULL, _elm_thumb_dnd_cb, obj); - return EINA_TRUE; + return; } EOLIAN static Eina_Bool -_elm_thumb_editable_get(Eo *obj EINA_UNUSED, Elm_Thumb_Data *sd) +_elm_thumb_evas_draggable_interface_drag_target_get(Eo *obj EINA_UNUSED, Elm_Thumb_Data *sd) { return sd->edit; } @@ -861,5 +861,18 @@ elm_thumb_file_get(const Eo *obj, const char **file, const char **key) efl_file_get((Eo *) obj, file, key); } +/* Legacy deprecated functions */ +EAPI Eina_Bool +elm_thumb_editable_set(Evas_Object *obj, Eina_Bool edit) +{ + evas_draggable_interface_drag_target_set(obj, edit); + return EINA_TRUE; +} + +EAPI Eina_Bool +elm_thumb_editable_get(const Evas_Object *obj) +{ + return evas_draggable_interface_drag_target_get(obj); +} #include "elm_thumb.eo.c" diff --git a/src/lib/elm_thumb.eo b/src/lib/elm_thumb.eo index 6dd3d498c..9c1479bfb 100644 --- a/src/lib/elm_thumb.eo +++ b/src/lib/elm_thumb.eo @@ -8,7 +8,8 @@ enum Elm.Thumb.Animation_Setting last } -class Elm.Thumb (Elm.Layout, Efl.File, Evas.Clickable_Interface) +class Elm.Thumb (Elm.Layout, Efl.File, Evas.Clickable_Interface, + Evas.Draggable_Interface) { eo_prefix: elm_obj_thumb; methods { @@ -98,26 +99,6 @@ class Elm.Thumb (Elm.Layout, Efl.File, Evas.Clickable_Interface) orient: Ethumb_Thumb_Orientation; [[The orientation setting.]] } } - @property editable { - set { - [[Make the thumbnail 'editable'. - - This means the thumbnail is a valid drag target for drag and - drop, and can be cut or pasted too. - ]] - return: bool; - } - get { - [[Get whether the thumbnail is editable. - - This means the thumbnail is a valid drag target for drag and - drop, and can be cut or pasted too. - ]] - } - values { - edit: bool; [[The editable state, default is $false.]] - } - } @property aspect { set { [[Set the aspect for the thumb object. @@ -226,6 +207,8 @@ class Elm.Thumb (Elm.Layout, Efl.File, Evas.Clickable_Interface) Evas.Object_Smart.add; Evas.Object_Smart.del; Evas.Object_Smart.show; + Evas.Draggable_Interface.drag_target.set; + Evas.Draggable_Interface.drag_target.get; } events { generate,error; diff --git a/src/lib/elm_thumb_legacy.h b/src/lib/elm_thumb_legacy.h index e2ff8a143..28b849e41 100644 --- a/src/lib/elm_thumb_legacy.h +++ b/src/lib/elm_thumb_legacy.h @@ -44,4 +44,27 @@ EAPI void elm_thumb_file_set(Eo *obj, const char *file, const char *key); */ EAPI void elm_thumb_file_get(const Eo *obj, const char **file, const char **key); +/** + * @brief Make the thumbnail 'editable'. + * + * This means the thumbnail is a valid drag target for drag and drop, and can + * be cut or pasted too. + * + * @param[in] edit The editable state, default is @c false. + * + * @ingroup Elm_Thumb + */ +EAPI Eina_Bool elm_thumb_editable_set(Evas_Object *obj, Eina_Bool edit); + +/** + * @brief Get whether the thumbnail is editable. + * + * This means the thumbnail is a valid drag target for drag and drop, and can + * be cut or pasted too. + * + * @return The editable state, default is @c false. + * + * @ingroup Elm_Thumb + */ +EAPI Eina_Bool elm_thumb_editable_get(const Evas_Object *obj); #include "elm_thumb.eo.legacy.h" -- cgit v1.2.1