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;