From: Hyoyoung Chang <hyoyoung@gmail.com>
authordiscomfitor <discomfitor@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 6 Jan 2012 05:50:33 +0000 (05:50 +0000)
committerdiscomfitor <discomfitor@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 6 Jan 2012 05:50:33 +0000 (05:50 +0000)
Subject: [E-devel] [patch] elm_photo - add aspect_ratio_retained_{set/get}
Date: Fri, 6 Jan 2012 12:20:33 +0900

Dear all.

elm_photo doesn't have resizing functions which are not follow
original photo file ratio (vertical/horizontal).
so i copied aspect_ration_reatined functions from elm_image.
also it fixes photo menu bug in elementary_test.
currently photo window has a bug which cannot display non-square
images correctly.

Thanks

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@66924 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/bin/test_photo.c
src/lib/elm_photo.c
src/lib/elm_photo.h

index 4350510..a994b67 100644 (file)
@@ -51,6 +51,7 @@ test_photo(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
                       elm_app_data_dir_get(), img[n]);
              n++;
              if (n >= 9) n = 0;
+             elm_photo_aspect_fixed_set(ph, EINA_FALSE);
              elm_photo_size_set(ph, 80);
              if (n == 8)
                elm_photo_thumb_set(ph, buf, NULL);
index 6955b94..a1e83bc 100644 (file)
@@ -608,4 +608,24 @@ elm_photo_thumb_set(const Evas_Object *obj, const char *file, const char *group)
 #endif
 }
 
+EAPI void
+elm_photo_aspect_fixed_set(Evas_Object *obj, Eina_Bool fixed)
+{
+   ELM_CHECK_WIDTYPE(obj, widtype);
+   Widget_Data *wd = elm_widget_data_get(obj);
+   if (!wd) return;
+   return _els_smart_icon_aspect_ratio_retained_set(wd->img, fixed);
+}
+
+EAPI Eina_Bool
+elm_photo_aspect_fixed_get(const Evas_Object *obj)
+{
+   ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
+   Widget_Data *wd = elm_widget_data_get(obj);
+   if (!wd) return EINA_FALSE;
+   return _els_smart_icon_aspect_ratio_retained_get(wd->img);
+}
+
+
+
 /* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-3f0^-2{2(0W1st0 :*/
index 515514d..73be49c 100644 (file)
@@ -79,5 +79,34 @@ EAPI void      elm_photo_fill_inside_set(Evas_Object *obj, Eina_Bool fill);
 EAPI void      elm_photo_editable_set(Evas_Object *obj, Eina_Bool set);
 
 /**
+ * Set whether the original aspect ratio of the photo should be kept on resize.
+ *
+ * @param obj The photo object.
+ * @param fixed @c EINA_TRUE if the photo should fix the aspect,
+ * @c EINA_FALSE otherwise.
+ *
+ * The original aspect ratio (width / height) of the photo is usually
+ * distorted to match the object's size. Enabling this option will fix
+ * this original aspect, and the way that the photo is fit into
+ * the object's area
+ *
+ * @see elm_photo_aspect_fixed_get()
+ *
+ * @ingroup Photo
+ */
+EAPI void             elm_photo_aspect_fixed_set(Evas_Object *obj, Eina_Bool fixed);
+
+/**
+ * Get if the object fixes the original aspect ratio.
+ *
+ * @param obj The photo object.
+ * @return @c EINA_TRUE if the object keeps the original aspect, @c EINA_FALSE
+ * otherwise.
+ *
+ * @ingroup Photo
+ */
+EAPI Eina_Bool        elm_photo_aspect_fixed_get(const Evas_Object *obj);
+
+/**
  * @}
  */