diff -r 000000000000 -r d760517a8095 uidesigner/com.nokia.sdt.symbian.tests/data/images/components/testRenderLibrary.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uidesigner/com.nokia.sdt.symbian.tests/data/images/components/testRenderLibrary.js Tue Mar 24 22:20:21 2009 -0500 @@ -0,0 +1,108 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + // Turn a color property value string into + // a color. The value is expected to either + // be a comma delimited RGB or a system color + +function colorFromString(laf, colorStr) { + if (colorStr == null || colorStr == "") + return null; + + var result = null; + var elements = colorStr.split(","); + if (elements.length == 3) { + var valid = true; + for (var i in elements) { + var num = parseInt(elements[i]); + if (isNaN(num)) + valid = false; + } + if (valid) + result = Colors.getColor(elements[0], elements[1], elements[2]); + } + else { + result = laf.getColor(colorStr); + } + return result; +} + +// Get the effective background color, assuming that everything is transparent +// until we get to a component with an attribute describing how its +// background will be drawn +function getBackgroundColor(instance, laf) { + var color = null; + while (instance != null) { + var bgProperty = instance.component.attributes + ["container-background-color-property-name"]; + if (bgProperty != null) { + color = colorFromString(laf, instance.properties[bgProperty]); + if (color != null) { + //println("used attribute for " + color); + break; + } + } + var bgColor = instance.component.attributes + ["container-background-color"]; + if (bgColor != null) { + color = laf.getColor(bgColor); + if (color != null) { + //println("used property for " + color); + break; + } + } + instance = instance.parent; + } + if (color == null) { + color = laf.getColor("EEikColorWindowBackground"); + //println("using background color " + color); + if (color == null) { + color = Colors.getColor(255, 255, 255); + } + } + return color; +} + +ImageGlobals = getPluginClass("com.nokia.sdt.symbian", "com.nokia.sdt.symbian.images.ImageGlobals") + + +// Get an image as specified in a com.nokia.sdt.symbian.ImageProperty +// @param instance the instance +// @param imageProperty the property, i.e. instance.properties.image +function getImageFromProperty(instance, graphics, imageProperty) { + var info = ImageGlobals.getImageInfo(instance, imageProperty); + return info.getComposedImage(graphics.getDevice()) +} + +// Draw an image as specified in a com.nokia.sdt.symbian.ImageProperty +// into the given rectangle in the gc +// @param instance the instance +// @param imageProperty the property, i.e. instance.properties.image +// @param graphics the GC +// @param rect the rectangle to draw in +function drawImageFromProperty(instance, graphics, imageProperty, rect) { + var info = ImageGlobals.getImageInfo(instance, imageProperty); + var image = info.getComposedImage(graphics.getDevice()) + if (image) { + var imgRect = image.getBounds() + graphics.drawImage(image, 0, 0, imgRect.width, imgRect.height, + rect.x, rect.y, rect.width, rect.height); + } +} + + +