elm_photo: implement remaining efl.file methods
authorMike Blumenkrantz <zmike@samsung.com>
Fri, 25 Jan 2019 19:41:41 +0000 (14:41 -0500)
committerTaehyub Kim <taehyub.kim@samsung.com>
Thu, 31 Jan 2019 02:05:21 +0000 (11:05 +0900)
ref T5719

Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D7788

src/lib/elementary/elm_photo.c
src/lib/elementary/elm_photo.eo

index 0d6e946..53300f9 100644 (file)
@@ -325,6 +325,12 @@ _elm_photo_efl_object_constructor(Eo *obj, Elm_Photo_Data *_pd EINA_UNUSED)
    return obj;
 }
 
+EOLIAN static void
+_elm_photo_efl_file_file_get(const Eo *obj EINA_UNUSED, Elm_Photo_Data *sd, const char **file, const char **key EINA_UNUSED)
+{
+   efl_file_get(sd->icon, file, NULL);
+}
+
 EOLIAN static Eina_Bool
 _elm_photo_efl_file_file_set(Eo *obj, Elm_Photo_Data *sd, const char *file, const char *key EINA_UNUSED)
 {
@@ -342,6 +348,29 @@ _elm_photo_efl_file_file_set(Eo *obj, Elm_Photo_Data *sd, const char *file, cons
    return EINA_TRUE;
 }
 
+EOLIAN static void
+_elm_photo_efl_file_mmap_get(const Eo *obj EINA_UNUSED, Elm_Photo_Data *sd, const Eina_File **file, const char **key EINA_UNUSED)
+{
+   efl_file_mmap_get(sd->icon, file, key);
+}
+
+EOLIAN static Eina_Bool
+_elm_photo_efl_file_mmap_set(Eo *obj, Elm_Photo_Data *sd, const Eina_File *file, const char *key EINA_UNUSED)
+{
+   if (!file)
+     {
+        if (!elm_icon_standard_set(sd->icon, "no_photo")) return EINA_FALSE;
+     }
+   else
+     {
+        if (!efl_file_mmap_set(sd->icon, file, NULL)) return EINA_FALSE;
+     }
+
+   _sizing_eval(obj);
+
+   return EINA_TRUE;
+}
+
 static void
 _elm_photo_class_constructor(Efl_Class *klass)
 {
index e91ef68..3ceb6d7 100644 (file)
@@ -7,7 +7,8 @@ class Elm.Photo extends Efl.Ui.Widget implements Efl.File, Efl.Ui.Clickable, Efl
    implements {
       class.constructor;
       Efl.Object.constructor;
-      Efl.File.file { set; }
+      Efl.File.file { set; get; }
+      Efl.File.mmap { set; get; }
       Efl.Ui.Widget.theme_apply;
       Efl.Ui.Draggable.drag_target { get; set; }
    }