uidesigner/com.nokia.sdt.series60.componentlibrary/components/navipane/NaviVolume_visual.js
changeset 2 d760517a8095
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uidesigner/com.nokia.sdt.series60.componentlibrary/components/navipane/NaviVolume_visual.js	Tue Mar 24 22:20:21 2009 -0500
@@ -0,0 +1,111 @@
+/*
+* Copyright (c) 2006 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: 
+*
+*/
+
+
+include("../implLibrary.js")
+include("../renderLibrary.js")
+include("../srcgenLibrary.js")
+
+function NaviVolumeVisual() {
+}
+
+function getNaviSize(instance, laf) {
+	var properties = instance.properties;
+	return new Point(properties.size.width, properties.size.height);
+}
+
+function getIconRect(instance, laf) {
+
+	var iconRect = (0,0,10,10);
+	return iconRect;
+}
+
+function volumeImage(instance, laf) {
+		var properties = instance.properties;
+		var icon = laf.getImage("volume_speaker_indicator"); // default
+		
+		switch (properties.volumeType) {
+			case "R_AVKON_NAVI_PANE_VOLUME_INDICATOR":
+				icon = laf.getImage("volume_speaker_indicator"); 
+				break;
+			case "R_AVKON_NAVI_PANE_RECORDER_VOLUME_INDICATOR":
+				icon = laf.getImage("volume_mic_indicator"); 
+				break;
+			case "R_AVKON_NAVI_PANE_EARPIECE_VOLUME_INDICATOR":
+				icon = laf.getImage("volume_earpiece_indicator");
+				break; 
+			}
+		return icon;
+}
+
+NaviVolumeVisual.prototype.draw = function(instance, laf, graphics) {
+
+	var icon = volumeImage(instance, laf);
+	var iconRect = getIconRect(instance, laf);
+	var size = getNaviSize(instance, laf);
+	var rect = new Rectangle(0, 0, size.x, size.y);
+	
+	var rectIcon = new Rectangle(0, 0, size.y, size.y);
+	var rectBar = new Rectangle(0, 0, (size.x - rectIcon.width), size.y);
+	var doBlend = false;
+	if (icon != null) {
+		var imageData = icon.getImageData();
+		graphics.setBackground(getBackgroundColor(instance, laf));
+		var screenBackground = laf.getColor("screen.background");	
+		graphics.setBackground(screenBackground);
+		drawImage(instance, graphics, icon, rectIcon, doBlend);
+	}
+	
+	//println(graphics.getBackground());
+	
+	drawBar (instance, laf, graphics, rectBar);
+}
+
+
+function drawBar(instance, laf, graphics, rect) {
+	var properties = instance.properties;
+	
+	var arcWidth = laf.getInteger("naviVolume.bar.arcWidth", 2);
+	var arcHeight = laf.getInteger("naviVolume.bar.arcHeight", 2);
+	var barSize = laf.getInteger("naviVolume.bar.width", 4);
+	var space = laf.getInteger ("naviVolume.bar.space", 1);
+	
+	var barSpace = barSize + space;
+	var hpadding = rect.width - barSpace * 10 +40;
+	var vpadding = laf.getInteger("volume.padding.height", 4)+2;
+	var width = rect.width - hpadding;
+	var height = rect.height - vpadding;
+	
+	var onColor = laf.getColor("volume.settingitem.onColor");
+	var offColor = laf.getColor("volume.settingitem.offColor");
+	
+	for (var v = 0; v < 10; v++) {
+		if (v <= properties.value)
+			graphics.setBackground(onColor);
+		else
+			graphics.setBackground(offColor);
+			
+		var x = Math.floor(hpadding/2 + v * barSpace);
+		var barHeight = Math.floor((v + 1) * height / 10)+2;
+		var y = (height - barHeight + vpadding/2);
+		
+		graphics.fillRoundRectangle(x, y, barSize, barHeight, arcWidth, arcHeight);	
+		graphics.setForeground(laf.getColor("navi.volume.shade"));
+		graphics.drawRoundRectangle(x, y, barSize, barHeight, arcWidth, arcHeight);
+	
+	}
+}
\ No newline at end of file