You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by tv...@apache.org on 2009/11/17 21:41:25 UTC

svn commit: r881498 - /incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ImageViewSkin.java

Author: tvolkert
Date: Tue Nov 17 20:41:24 2009
New Revision: 881498

URL: http://svn.apache.org/viewvc?rev=881498&view=rev
Log:
Finished ImageViewSkin.getBaseline(int,int); fixed PIVOT-339

Modified:
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ImageViewSkin.java

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ImageViewSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ImageViewSkin.java?rev=881498&r1=881497&r2=881498&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ImageViewSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ImageViewSkin.java Tue Nov 17 20:41:24 2009
@@ -129,7 +129,16 @@
                 if (fill) {
                     // Scale to fit
                     if (preserveAspectRatio) {
-                        // TODO
+                        float aspectRatio = (float)width / (float)height;
+                        float imageAspectRatio = (float)imageSize.width / (float)imageSize.height;
+
+                        if (aspectRatio > imageAspectRatio) {
+                            baseline *= (float)height / (float)imageSize.height;
+                        } else {
+                            float scaleY = (float)width / (float)imageSize.width;
+                            baseline *= scaleY;
+                            baseline += (int)(height - imageSize.height * scaleY) / 2;
+                        }
                     } else {
                         baseline *= (float)height / (float)imageSize.height;
                     }
@@ -160,7 +169,10 @@
             if (fill) {
                 // Scale to fit
                 if (preserveAspectRatio) {
-                    if (width > height) {
+                    float aspectRatio = (float)width / (float)height;
+                    float imageAspectRatio = (float)imageSize.width / (float)imageSize.height;
+
+                    if (aspectRatio > imageAspectRatio) {
                         imageY = 0;
                         scaleY = (float)height / (float)imageSize.height;