uidesigner/com.nokia.sdt.test.componentlibrary/components/testing/render_visual.js
Remove makefile dependency checks on SBSv2 builder since they don't apply.
Remove SBSv2BuilderInfo.java and functionality. That has been used for loading the SBSv2 tab, which no longer exists.
Now the SBSv2 data in the .cproject is loaded directly by the build configuration loading mechanism.
/*
* 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:
*
*/
/*
* Render test
*
* globals available are:
*
* instance (WrappedInstance)
* parent (WrappedInstance)
* children (WrappedInstance[])
*
* rendering globals:
* graphics (wrapped SWT GC)
* Colors (object from which getColor(r,g,b) is available)
* Fonts (object from which getFont("path") is available)
* Images (object from which newImage(device,w,h) is available)
*/
include("library.js")
function Visual() {
}
function detailedDraw(string, x, y) {
var extent = graphics.stringExtent(string)
var metrics = graphics.getFontMetrics()
var orig = graphics.getForeground()
var hy = y + metrics.getHeight()
var origbk = graphics.getBackground()
graphics.setBackground(Colors.getColor(192,192,192))
graphics.fillRectangle(x, hy-metrics.getAscent(), extent.x, metrics.getAscent()+metrics.getDescent()+metrics.getLeading())
graphics.setBackground(origbk)
java.lang.System.out.println("height="+metrics.getHeight()+
" descent="+metrics.getDescent()+
" ascent="+metrics.getAscent())
graphics.setLineDash(new Array(1,1))
// baseline (green)
graphics.setForeground(Colors.getColor(0, 255, 0))
graphics.drawLine(x, hy, x+extent.x, hy)
// descent (cyan)
graphics.setForeground(Colors.getColor(0, 255, 255))
graphics.drawLine(x+1, hy+metrics.getDescent(), x+extent.x, hy+metrics.getDescent())
// ascent (yellow)
graphics.setForeground(Colors.getColor(255, 255, 0))
graphics.drawLine(x, hy-metrics.getAscent(), x+extent.x, hy-metrics.getAscent())
// height (red)
graphics.setForeground(Colors.getColor(255, 0, 0))
graphics.drawLine(x+1, y, x+extent.x, y)
graphics.setLineDash(null)
graphics.setForeground(orig)
graphics.drawString(string, x, y)
return extent.y
}
Visual.prototype.getPattern = function(type) {
if (this.image3 == null) {
this.image3 = Images.newImage(graphics.getDevice(), 3, 3)
}
if (this.image4 == null) {
this.image4 = Images.newImage(graphics.getDevice(), 4, 4)
}
type = Math.floor(type)
var img;
if (type != 8.0 && type != 3.0 && type != 5.0)
img = this.image3
else
img = this.image4
var gc = new GC(graphics.getDevice(), img)
gc.setBackground(Colors.getColor(255, 255, 255))
gc.fillRectangle(0, 0, 4, 4);
gc.setBackground(Colors.getColor(255, 255,255))
gc.setForeground(Colors.getColor(0, 0, 0))
switch (type) {
case 1: // solid
default:
gc.setBackground(Colors.getColor(0, 0, 0))
gc.fillRectangle(0, 0, 5, 5);
break;
case 3: // vertical hatch
gc.drawLine(1, 0, 1, 3);
gc.drawLine(3, 0, 3, 3);
break;
case 4: // forward diagonal hatch
gc.drawLine(0, 2, 2, 0);
break;
case 5: // horizontal hatch
gc.drawLine(0, 1, 3, 1);
gc.drawLine(0, 3, 3, 3);
break;
case 6: // rearward diagonal hatch
gc.drawLine(0, 0, 2, 2);
break;
case 7: // square cross hatch
gc.drawLine(1, 0, 1, 3);
gc.drawLine(0, 1, 3, 1);
break;
case 8: // diamond cross hatch
gc.drawLine(0, 0, 3, 3);
gc.drawLine(2, 0, 0, 2);
break;
}
gc.dispose()
return new Pattern(graphics.getDevice(), img)
}
Visual.prototype.draw = function(instance, laf, graphics) {
var properties = instance.properties
var width = properties["size"].width;
var height = properties.size["height"]
var base = "data/s60"
//var base = "c:/downloads"
var thickness;
var r,p,x,y,size,border;
switch (properties.appearance) {
case 0:
default:
thickness = 1;
graphics.setLineWidth(thickness)
graphics.setForeground(getBlue())
graphics.setBackground(Colors.getColor(255, 255, 255))
graphics.fillGradientRectangle(0, 0, properties.size.width, properties.size.height, true)
break;
case 1:
thickness = 2;
graphics.setLineWidth(thickness)
r = new Rectangle(width/2, height/2, width/2-4, height/2-4)
graphics.setForeground(Colors.getColor(48, 64, 64))
graphics.setLineWidth(2)
graphics.drawRectangle(r)
break;
case 2:
r = new Rectangle(0, 0, width, height)
graphics.setForeground(Colors.getColor(0, 0, 64))
graphics.setLineWidth(2)
graphics.drawRectangle(r)
break;
case 3:
// ensure Path is available
p = new Path(graphics.getDevice())
p.moveTo(width/2, 0)
p.lineTo(0, height)
p.lineTo(width, height/2)
graphics.setClipping(p);
graphics.setForeground(Colors.getColor(128, 128, 0))
graphics.setBackground(Colors.getColor(128, 128, 0))
graphics.setAlpha(64) // note: no effect yet
graphics.setLineWidth(1)
size = properties.value
if (size <= 0)
size = 1
for (y=0; y<height; y+=size)
for (x=size*(((y/size)&1)^1); x<width; x+=size*2)
graphics.fillRectangle(x, y, size, size)
graphics.setForeground(Colors.getColor(0, 128, 128))
graphics.setBackground(Colors.getColor(0, 128, 128))
graphics.setAlpha(128) // note: no effect yet
for (y=0; y<height; y+=size)
for (x=size*((y/size)&1); x<width; x+=size*2)
graphics.fillRectangle(x, y, size, size)
break;
case 4:
r = new Rectangle(0, 0, width, height)
graphics.setLineWidth(1)
graphics.drawRectangle(r)
r = new Rectangle(4, height/2, width-8, height/2-4)
graphics.drawRectangle(r)
graphics.setFont(Fonts.getGlobalFont(base+"/fonts/Alp17.14.ttf", 14))
graphics.setForeground(Colors.getColor(0, 0, 0))
//detailedDraw("Hello", r.x, r.y)
graphics.drawFormattedString("\"Hello Sedona!\" says a wrapped box.\nFoo,\nbar.",
r,
Font.WRAPPING_ENABLED+Font.DRAW_TRANSPARENT+Font.ALIGN_CENTER);
break;
case 5:
graphics.setFont(Fonts.getGlobalFont(base+"/fonts/Alb13.10.ttf", 10))
h = graphics.getFontMetrics().getHeight()
r = new Rectangle(4, height/4, width-8, height/4*3-8)
graphics.drawFormattedString("First", r, 0)
r.y += h
graphics.drawFormattedString("Second", r, Font.OPTIONS_STRIKETHROUGH)
r.y += h
graphics.drawFormattedString("Third", r, Font.OPTIONS_UNDERLINE)
break;
case 6:
r = 32
str="!xpEdant \u011E \u52a3\u554f\u6C55"
graphics.setFont(Fonts.getGlobalFont(base+"/fonts/Alb19.15.ttf", 15))
r += detailedDraw(str, 4, r)
graphics.setFont(Fonts.getGlobalFont(base+"/fonts/Alp17.14.ttf", 14))
r += detailedDraw(str, 4, r)
graphics.setFont(Fonts.getGlobalFont(base+"/fonts/Alpi17.14.ttf", 14))
r += detailedDraw(str, 4, r)
graphics.setFont(Fonts.getGlobalFont(base+"/fonts/Albi17b.14.ttf", 14))
r += detailedDraw(str, 4, r)
graphics.setFont(Fonts.getGlobalFont(base+"/fonts/Alb12.9.ttf", 9))
r += detailedDraw(str, 4, r)
graphics.setFont(Fonts.getGlobalFont(base+"/fonts/Alb17.14.ttf", 14))
r += detailedDraw(str, 4, r)
graphics.setFont(Fonts.getGlobalFont(base+"/fonts/Aco21.16.ttf", 16))
r += detailedDraw("|=+-\u00d7\u00f7", 4, r)
graphics.setFont(Fonts.getGlobalFont(base+"/fonts/JapanPlain12.12.ttf", 12))
r += detailedDraw(str, 4, r)
graphics.setFont(Fonts.getGlobalFont(base+"/fonts/JapanPlain16.17.ttf", 17))
r += detailedDraw(str, 4, r)
//graphics.setFont(Fonts.getGlobalFont("c:/winnt/fonts/Arial.ttf", 12))
//r += detailedDraw(str, 4, r)
//graphics.setFont(Fonts.getGlobalFont("c:/winnt/fonts/ArialUni.ttf", 12))
//r += detailedDraw(str, 4, r)
break;
case 7:
graphics.setBackground(Colors.getColor(64,160,160))
graphics.fillRectangle(0, 0, width, height)
border = width/8
// ensure Pattern works
p = new Path(graphics.getDevice())
p.moveTo(border, height/2)
p.quadTo(border, border, width/2-border, border*2)
p.quadTo(width-border, border, width-border, height/2-border)
p.quadTo(width-border, height-border, width/2-border, height-border)
p.quadTo(border, height-border, border, height/2-border)
graphics.setClipping(p);
pattern = this.getPattern(properties.value)
graphics.setBackgroundPattern(pattern)
graphics.setForegroundPattern(pattern)
// graphics.setBackground(Colors.getColor(255, 128, 64))
graphics.setForeground(Colors.getColor(0, 0, 0))
graphics.fillRectangle(0, 0, width, height)
break;
}
// draw a label on top identifying this
full = new Rectangle(0, 0, width, height)
graphics.setClipping(full)
graphics.setForeground(Colors.getColor(0, 0, 128))
graphics.setBackground(Colors.getColor(128, 128, 128))
//java.lang.System.out.println("1")
graphics.setFont(Fonts.getGlobalFont(base+"/fonts/Alpi12.9.ttf", 9))
s = '(name='+properties.name+'; appearance='+properties.appearance+')';
r = graphics.formattedStringExtent(s, full, Font.WRAPPING_ENABLED)
//java.lang.System.out.println("r="+r)
graphics.drawFormattedString(s, r,
Font.WRAPPING_ENABLED+Font.DRAW_OPAQUE);
}
Visual.prototype.getPreferredSize = function(wHint, hHint) {
return null; // needs implementation
}