uidesigner/com.nokia.carbide.cpp.uiq.components/components/textLinesNumberLibrary.js
changeset 0 fb279309251b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uidesigner/com.nokia.carbide.cpp.uiq.components/components/textLinesNumberLibrary.js	Fri Apr 03 23:33:03 2009 +0100
@@ -0,0 +1,115 @@
+/*
+* Copyright (c) 2007 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: 
+*
+*/
+
+
+function getTextBounds (lines, width, height, flags, font, pixelGapBetweenLines) {
+
+	var newBounds;
+	var textHeight = 0;
+	var textWidth = 0;
+
+	for (var i = 0; i < lines.length; i++ ) {
+		newBounds = font.formattedStringExtent(lines[i], 
+						new Point (width, height),
+						flags, pixelGapBetweenLines);
+		textHeight += newBounds.y;	
+		if ( newBounds.x > textWidth) {
+			textWidth = newBounds.x;
+		}
+	}
+	return new Point (textWidth, textHeight );
+}
+
+function getMaxLinesAllowedByParent(instance) {
+	var parent = instance.parent;
+	if (parent != null && isCQikContainer(parent)) {
+		return getMaxLinesAllowedInCQikContainer (instance);
+	} else if (parent != null && isItemSlot(parent)) {
+		var grandParent = parent.parent;
+		if  (grandParent != null && isSystemBuildingBlock(grandParent)) {
+			return getMaxLinesAllowedInSlot(grandParent.properties.type, parent.properties.slotId);
+		}
+	}
+	return 1;
+}
+
+function getMaxLinesAllowedInCQikContainer (instance) {
+	var maxLinesNumber = 2147483647;
+	if (instance != null && isCEikLabel(instance)) {
+		return maxLinesNumber;
+	} 
+	return 1;
+}
+
+function isCEikLabel(instance) {
+	return (instance.component.id).substring(0, 32) == "com.nokia.carbide.uiq.CEikLabel_";
+}
+
+function isCQikContainer(instance) {
+	return instance.component.id == "com.nokia.carbide.uiq.CQikContainer";
+}
+
+function isItemSlot(instance) {
+	return instance.component.id == "com.nokia.carbide.uiq.ItemSlot";
+}
+
+function isSystemBuildingBlock(instance) {
+	return instance.component.id == "com.nokia.carbide.uiq.SystemBuildingBlock";
+}
+
+function getMaxLinesAllowedInSlot(typeOfSBB, slotId) {
+	//println("***getMaxLinesAllowedInSlot");
+	var maxLinesNumber = 2147483647;
+	
+	switch (typeOfSBB) {
+		case "EQikCtOnelineBuildingBlock":
+		case "EQikCtIconOnelineBuildingBlock":
+		case "EQikCtOnelineIconBuildingBlock":
+		case "EQikCtIconOnelineIconBuildingBlock":
+		case "EQikCtMediumThumbnailDoubleOnelineBuildingBlock":
+		case "EQikCtCaptionedOnelineBuildingBlock":
+		case "EQikCtIconCaptionedOnelineBuildingBlock":
+		case "EQikCtIconIconOnelineBuildingBlock":
+		case "EQikCtHalflineHalflineBuildingBlock":
+		case "EQikCtCaptionedHalflineBuildingBlock":
+			return 1;
+		case "EQikCtTwolineBuildingBlock":
+		case "EQikCtIconTwolineBuildingBlock":
+		case "EQikCtTwolineIconBuildingBlock":
+		case "EQikCtIconTwolineIconBuildingBlock":
+			return 2;
+		case "EQikCtLargeThumbnailThreelineBuildingBlock":
+			return 3;
+		case "EQikCtManylinesBuildingBlock":
+			return maxLinesNumber;
+		case "EQikCtCaptionedTwolineBuildingBlock":
+		case "EQikCtIconCaptionedTwolineBuildingBlock":
+			return evaluateSlot(slotId, 1, 2);
+	}
+	
+	return 1;
+}
+
+function evaluateSlot(slotId, valueForItemSlot1, valueForItemSlot2) {
+//	println("***slotId: " + slotId);
+	if (slotId  == "EQikItemSlot1") {
+//		println("***valueForItemSlot1: " + valueForItemSlot1);
+		return valueForItemSlot1;
+	} else {
+		return valueForItemSlot2;
+	}
+}
\ No newline at end of file