added a stylized list to symbols

pull/95/head
jmoenig 2020-02-17 13:09:17 +01:00
rodzic e958ca37fa
commit 15b2568032
1 zmienionych plików z 29 dodań i 1 usunięć

Wyświetl plik

@ -126,7 +126,8 @@ SymbolMorph.prototype.names = [
'footprints',
'keyboard',
'keyboardFilled',
'globe'
'globe',
'list'
];
// SymbolMorph instance creation:
@ -399,6 +400,9 @@ SymbolMorph.prototype.renderShape = function (ctx, aColor) {
case 'globe':
this.renderSymbolGlobe(ctx, aColor);
break;
case 'list':
this.renderSymbolList(ctx, aColor);
break;
default:
throw new Error('unknown symbol name: "' + this.name + '"');
}
@ -415,6 +419,7 @@ SymbolMorph.prototype.symbolWidth = function () {
return size * 0.6;
case 'flash':
case 'file':
case 'list':
return size * 0.8;
case 'smallStage':
case 'normalStage':
@ -1791,6 +1796,29 @@ SymbolMorph.prototype.renderSymbolGlobe = function (ctx, color) {
ctx.stroke();
};
SymbolMorph.prototype.renderSymbolList = function (ctx, color) {
// draw a stylized list
var w = this.symbolWidth(),
h = this.size,
padding = h / 10,
item = h / 5,
row;
ctx.fillStyle = color.toString();
ctx.beginPath();
ctx.rect(0, 0, w, h);
for (row = 0; row < 4; row += 1) {
ctx.rect(
padding,
((padding + item) * row) + padding,
w - item,
item
);
}
ctx.clip('evenodd');
ctx.fillRect(0, 0, w, h);
};
// register examples with the World demo menu
// comment out to shave off a millisecond loading speed ;-)