Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3bf6f9a2ae | ||
|
|
74f38d41a3 | ||
|
|
34af44d299 | ||
|
|
1199845c52 | ||
|
|
003150643d | ||
|
|
500de7fb13 | ||
|
|
88934881f9 | ||
|
|
433e8c8805 | ||
|
|
b8b7d3d1b8 | ||
|
|
052cca94a2 | ||
|
|
93dd793fb7 | ||
|
|
41c2012d42 | ||
|
|
d4934b19d1 | ||
|
|
4f741981e3 | ||
|
|
e93ae5e01b | ||
|
|
baee733aad | ||
|
|
13f252c6f4 |
@@ -1,10 +1,9 @@
|
|||||||
# Calliope target for Microsoft MakeCode
|
# Calliope target for Microsoft MakeCode
|
||||||
|
|
||||||
This target is hosted at https://makecode.calliope.cc.
|
This target is hosted at https://makecode.calliope.cc.
|
||||||
|
|
||||||
|
|
||||||
## Hosted editor and build
|
## Hosted editor and build
|
||||||
Hosted at: https://c371bd6d-007a-42fb-a45c-39891824b813.pxt.io</br>
|
|
||||||
Jenkins build: https://ci2.dot.net/job/Private/job/pxt_project_teal/job/master/
|
Jenkins build: https://ci2.dot.net/job/Private/job/pxt_project_teal/job/master/
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"appref": "v1.0.13"
|
"appref": "v"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -139,7 +139,12 @@
|
|||||||
"basic.showAnimation": "Shows a sequence of LED screens as an animation.",
|
"basic.showAnimation": "Shows a sequence of LED screens as an animation.",
|
||||||
"basic.showAnimation|param|interval": "time in milliseconds between each redraw",
|
"basic.showAnimation|param|interval": "time in milliseconds between each redraw",
|
||||||
"basic.showAnimation|param|leds": "pattern of LEDs to turn on/off",
|
"basic.showAnimation|param|leds": "pattern of LEDs to turn on/off",
|
||||||
|
"basic.showArrow": "Shows an arrow on screent",
|
||||||
|
"basic.showArrow|param|direction": "the direction of the arrow",
|
||||||
|
"basic.showArrow|param|interval": "the amount of time (milliseconds) to show the icon. Default is 600.",
|
||||||
"basic.showIcon": "Draws the selected icon on the LED screen",
|
"basic.showIcon": "Draws the selected icon on the LED screen",
|
||||||
|
"basic.showIcon|param|icon": "the predifined icon id",
|
||||||
|
"basic.showIcon|param|interval": "the amount of time (milliseconds) to show the icon. Default is 600.",
|
||||||
"basic.showLeds": "Draws an image on the LED screen.",
|
"basic.showLeds": "Draws an image on the LED screen.",
|
||||||
"basic.showLeds|param|interval": "time in milliseconds to pause after drawing",
|
"basic.showLeds|param|interval": "time in milliseconds to pause after drawing",
|
||||||
"basic.showLeds|param|leds": "the pattern of LED to turn on/off",
|
"basic.showLeds|param|leds": "the pattern of LED to turn on/off",
|
||||||
|
|||||||
@@ -17,6 +17,14 @@
|
|||||||
"Array.shift|block": "get and remove first value from %list",
|
"Array.shift|block": "get and remove first value from %list",
|
||||||
"Array.unshift|block": "%list| insert %value| at beginning",
|
"Array.unshift|block": "%list| insert %value| at beginning",
|
||||||
"Array|block": "Array",
|
"Array|block": "Array",
|
||||||
|
"ArrowNames.East|block": "East",
|
||||||
|
"ArrowNames.NorthEast|block": "North East",
|
||||||
|
"ArrowNames.NorthWest|block": "North West",
|
||||||
|
"ArrowNames.North|block": "North",
|
||||||
|
"ArrowNames.SouthEast|block": "South East",
|
||||||
|
"ArrowNames.SouthWest|block": "South West",
|
||||||
|
"ArrowNames.South|block": "South",
|
||||||
|
"ArrowNames.West|block": "West",
|
||||||
"BaudRate.BaudRate115200|block": "115200",
|
"BaudRate.BaudRate115200|block": "115200",
|
||||||
"BaudRate.BaudRate56700|block": "57600",
|
"BaudRate.BaudRate56700|block": "57600",
|
||||||
"BaudRate.BaudRate9600|block": "9600",
|
"BaudRate.BaudRate9600|block": "9600",
|
||||||
@@ -93,12 +101,12 @@
|
|||||||
"IconNames.LeftTriangle|block": "left triangle",
|
"IconNames.LeftTriangle|block": "left triangle",
|
||||||
"IconNames.Meh|block": "meh",
|
"IconNames.Meh|block": "meh",
|
||||||
"IconNames.No|block": "no",
|
"IconNames.No|block": "no",
|
||||||
"IconNames.Pacman|block": "pac man",
|
|
||||||
"IconNames.Pitchfork|block": "pitchfork",
|
"IconNames.Pitchfork|block": "pitchfork",
|
||||||
"IconNames.QuarterNote|block": "quarter note",
|
"IconNames.QuarterNote|block": "quarter note",
|
||||||
"IconNames.Rabbit|block": "rabbit",
|
"IconNames.Rabbit|block": "rabbit",
|
||||||
"IconNames.Rollerskate|block": "roller skate",
|
"IconNames.Rollerskate|block": "roller skate",
|
||||||
"IconNames.Sad|block": "sad",
|
"IconNames.Sad|block": "sad",
|
||||||
|
"IconNames.Scissors|block": "scissors",
|
||||||
"IconNames.Silly|block": "silly",
|
"IconNames.Silly|block": "silly",
|
||||||
"IconNames.Skull|block": "skull",
|
"IconNames.Skull|block": "skull",
|
||||||
"IconNames.SmallDiamond|block": "small diamond",
|
"IconNames.SmallDiamond|block": "small diamond",
|
||||||
|
|||||||
@@ -27,103 +27,143 @@ THE SOFTWARE.
|
|||||||
|
|
||||||
enum IconNames {
|
enum IconNames {
|
||||||
//% block="heart"
|
//% block="heart"
|
||||||
|
//% blockImage=1
|
||||||
Heart = 0,
|
Heart = 0,
|
||||||
//% block="small heart"
|
//% block="small heart"
|
||||||
|
//% blockImage=1
|
||||||
SmallHeart,
|
SmallHeart,
|
||||||
//% block="yes"
|
//% block="yes"
|
||||||
|
//% blockImage=1
|
||||||
Yes,
|
Yes,
|
||||||
//% block="no"
|
//% block="no"
|
||||||
|
//% blockImage=1
|
||||||
No,
|
No,
|
||||||
//% block="happy"
|
//% block="happy"
|
||||||
|
//% blockImage=1
|
||||||
Happy,
|
Happy,
|
||||||
//% block="sad"
|
//% block="sad"
|
||||||
|
//% blockImage=1
|
||||||
Sad,
|
Sad,
|
||||||
//% block="confused"
|
//% block="confused"
|
||||||
|
//% blockImage=1
|
||||||
Confused,
|
Confused,
|
||||||
//% block="angry"
|
//% block="angry"
|
||||||
|
//% blockImage=1
|
||||||
Angry,
|
Angry,
|
||||||
//% block="asleep"
|
//% block="asleep"
|
||||||
|
//% blockImage=1
|
||||||
Asleep,
|
Asleep,
|
||||||
//% block="surprised"
|
//% block="surprised"
|
||||||
|
//% blockImage=1
|
||||||
Surprised,
|
Surprised,
|
||||||
//% block="silly"
|
//% block="silly"
|
||||||
|
//% blockImage=1
|
||||||
Silly,
|
Silly,
|
||||||
//% block="fabulous"
|
//% block="fabulous"
|
||||||
|
//% blockImage=1
|
||||||
Fabulous,
|
Fabulous,
|
||||||
//% block="meh"
|
//% block="meh"
|
||||||
|
//% blockImage=1
|
||||||
Meh,
|
Meh,
|
||||||
//% block="t-shirt"
|
//% block="t-shirt"
|
||||||
|
//% blockImage=1
|
||||||
TShirt,
|
TShirt,
|
||||||
//% block="roller skate"
|
//% block="roller skate"
|
||||||
|
//% blockImage=1
|
||||||
Rollerskate,
|
Rollerskate,
|
||||||
//% block="duck"
|
//% block="duck"
|
||||||
|
//% blockImage=1
|
||||||
Duck,
|
Duck,
|
||||||
//% block="house"
|
//% block="house"
|
||||||
|
//% blockImage=1
|
||||||
House,
|
House,
|
||||||
//% block="tortoise"
|
//% block="tortoise"
|
||||||
|
//% blockImage=1
|
||||||
Tortoise,
|
Tortoise,
|
||||||
//% block="butterfly"
|
//% block="butterfly"
|
||||||
|
//% blockImage=1
|
||||||
Butterfly,
|
Butterfly,
|
||||||
//% block="stick figure"
|
//% block="stick figure"
|
||||||
|
//% blockImage=1
|
||||||
StickFigure,
|
StickFigure,
|
||||||
//% block="ghost"
|
//% block="ghost"
|
||||||
|
//% blockImage=1
|
||||||
Ghost,
|
Ghost,
|
||||||
//% block="sword"
|
//% block="sword"
|
||||||
|
//% blockImage=1
|
||||||
Sword,
|
Sword,
|
||||||
//% block="giraffe"
|
//% block="giraffe"
|
||||||
|
//% blockImage=1
|
||||||
Giraffe,
|
Giraffe,
|
||||||
//% block="skull"
|
//% block="skull"
|
||||||
|
//% blockImage=1
|
||||||
Skull,
|
Skull,
|
||||||
//% block="umbrella"
|
//% block="umbrella"
|
||||||
|
//% blockImage=1
|
||||||
Umbrella,
|
Umbrella,
|
||||||
//% block="snake"
|
//% block="snake"
|
||||||
|
//% blockImage=1
|
||||||
Snake,
|
Snake,
|
||||||
//% block="rabbit"
|
//% block="rabbit"
|
||||||
|
//% blockImage=1
|
||||||
Rabbit,
|
Rabbit,
|
||||||
//% block="cow"
|
//% block="cow"
|
||||||
|
//% blockImage=1
|
||||||
Cow,
|
Cow,
|
||||||
//% block="quarter note"
|
//% block="quarter note"
|
||||||
|
//% blockImage=1
|
||||||
QuarterNote,
|
QuarterNote,
|
||||||
//% block="eigth note"
|
//% block="eigth note"
|
||||||
|
//% blockImage=1
|
||||||
EigthNote,
|
EigthNote,
|
||||||
//% block="pitchfork"
|
//% block="pitchfork"
|
||||||
|
//% blockImage=1
|
||||||
Pitchfork,
|
Pitchfork,
|
||||||
//% block="pac man"
|
|
||||||
Pacman,
|
|
||||||
//% block="target"
|
//% block="target"
|
||||||
|
//% blockImage=1
|
||||||
Target,
|
Target,
|
||||||
//% block="triangle"
|
//% block="triangle"
|
||||||
|
//% blockImage=1
|
||||||
Triangle,
|
Triangle,
|
||||||
//% block="left triangle"
|
//% block="left triangle"
|
||||||
|
//% blockImage=1
|
||||||
LeftTriangle,
|
LeftTriangle,
|
||||||
//% block="chess board"
|
//% block="chess board"
|
||||||
|
//% blockImage=1
|
||||||
Chessboard,
|
Chessboard,
|
||||||
//% block="diamond"
|
//% block="diamond"
|
||||||
|
//% blockImage=1
|
||||||
Diamond,
|
Diamond,
|
||||||
//% block="small diamond"
|
//% block="small diamond"
|
||||||
|
//% blockImage=1
|
||||||
SmallDiamond,
|
SmallDiamond,
|
||||||
//% block="square"
|
//% block="square"
|
||||||
|
//% blockImage=1
|
||||||
Square,
|
Square,
|
||||||
//% block="small square"
|
//% block="small square"
|
||||||
SmallSquare,
|
//% blockImage=1
|
||||||
|
SmallSquare,
|
||||||
|
//% block="scissors"
|
||||||
|
//% blockImage=1
|
||||||
|
Scissors
|
||||||
}
|
}
|
||||||
|
|
||||||
enum ArrowNames {
|
enum ArrowNames {
|
||||||
//% blockIdentity=images.arrowNumber
|
//% blockIdentity=images.arrowNumber block="North"
|
||||||
North = 0,
|
North = 0,
|
||||||
//% blockIdentity=images.arrowNumber
|
//% blockIdentity=images.arrowNumber block="North East"
|
||||||
NorthEast,
|
NorthEast,
|
||||||
//% blockIdentity=images.arrowNumber
|
//% blockIdentity=images.arrowNumber block="East"
|
||||||
East,
|
East,
|
||||||
//% blockIdentity=images.arrowNumber
|
//% blockIdentity=images.arrowNumber block="South East"
|
||||||
SouthEast,
|
SouthEast,
|
||||||
//% blockIdentity=images.arrowNumber
|
//% blockIdentity=images.arrowNumber block="South"
|
||||||
South,
|
South,
|
||||||
//% blockIdentity=images.arrowNumber
|
//% blockIdentity=images.arrowNumber block="South West"
|
||||||
SouthWest,
|
SouthWest,
|
||||||
//% blockIdentity=images.arrowNumber
|
//% blockIdentity=images.arrowNumber block="West"
|
||||||
West,
|
West,
|
||||||
//% blockIdentity=images.arrowNumber
|
//% blockIdentity=images.arrowNumber block="North West"
|
||||||
NorthWest,
|
NorthWest,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -131,393 +171,376 @@ namespace basic {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Draws the selected icon on the LED screen
|
* Draws the selected icon on the LED screen
|
||||||
|
* @param icon the predifined icon id
|
||||||
|
* @param interval the amount of time (milliseconds) to show the icon. Default is 600.
|
||||||
*/
|
*/
|
||||||
//% weight=90 blockGap=8
|
//% weight=90 blockGap=8
|
||||||
//% blockId=basic_show_icon
|
//% blockId=basic_show_icon
|
||||||
//% block="show icon %i" icon="\uf00a"
|
//% block="show icon %i" icon="\uf00a"
|
||||||
//% parts="ledmatrix"
|
//% parts="ledmatrix"
|
||||||
//% help=basic/show-icon
|
//% help=basic/show-icon
|
||||||
export function showIcon(icon: IconNames) {
|
//% i.fieldEditor="gridpicker"
|
||||||
|
//% i.fieldOptions.width="400" i.fieldOptions.columns="5"
|
||||||
|
//% i.fieldOptions.itemColour="black" i.fieldOptions.tooltips="true"
|
||||||
|
export function showIcon(icon: IconNames, interval = 600) {
|
||||||
let res = images.iconImage(icon)
|
let res = images.iconImage(icon)
|
||||||
res.showImage(0)
|
res.showImage(0, interval)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shows an arrow on screent
|
||||||
|
* @param direction the direction of the arrow
|
||||||
|
* @param interval the amount of time (milliseconds) to show the icon. Default is 600.
|
||||||
|
*/
|
||||||
//% weight=50 blockGap=8
|
//% weight=50 blockGap=8
|
||||||
//% blockId=basic_show_arrow
|
//% blockId=basic_show_arrow
|
||||||
//% block="show arrow %i=device_arrow"
|
//% block="show arrow %i=device_arrow"
|
||||||
//% parts="ledmatrix"
|
//% parts="ledmatrix"
|
||||||
//% advanced=true
|
//% advanced=true
|
||||||
//% help=basic/show-arrow
|
//% help=basic/show-arrow
|
||||||
export function showArrow(i: number) {
|
export function showArrow(direction: number, interval = 600) {
|
||||||
let res = images.arrowImage(i)
|
let res = images.arrowImage(direction)
|
||||||
res.showImage(0)
|
res.showImage(0, interval)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
namespace images {
|
namespace images {
|
||||||
|
|
||||||
function getArrow(i : ArrowNames): string {
|
//% weight=50 blockGap=8
|
||||||
switch(i) {
|
//% help=images/arrow-image
|
||||||
|
//% blockId=builtin_arrow_image block="arrow image %i=device_arrow"
|
||||||
|
export function arrowImage(i: ArrowNames): Image {
|
||||||
|
switch (i) {
|
||||||
// compass directions
|
// compass directions
|
||||||
case ArrowNames.North: return `
|
case ArrowNames.North: return images.createImage(`
|
||||||
. . # . .
|
. . # . .
|
||||||
. # # # .
|
. # # # .
|
||||||
# . # . #
|
# . # . #
|
||||||
. . # . .
|
. . # . .
|
||||||
. . # . .`;
|
. . # . .`);
|
||||||
case ArrowNames.NorthEast: return `
|
case ArrowNames.NorthEast: return images.createImage(`
|
||||||
. . # # #
|
. . # # #
|
||||||
. . . # #
|
. . . # #
|
||||||
. . # . #
|
. . # . #
|
||||||
. # . . .
|
. # . . .
|
||||||
# . . . .`;
|
# . . . .`);
|
||||||
case ArrowNames.East: return `
|
case ArrowNames.East: return images.createImage(`
|
||||||
. . # . .
|
. . # . .
|
||||||
. . . # .
|
. . . # .
|
||||||
# # # # #
|
# # # # #
|
||||||
. . . # .
|
. . . # .
|
||||||
. . # . .`;
|
. . # . .`);
|
||||||
case ArrowNames.SouthEast: return `
|
case ArrowNames.SouthEast: return images.createImage(`
|
||||||
# . . . .
|
# . . . .
|
||||||
. # . . .
|
. # . . .
|
||||||
. . # . #
|
. . # . #
|
||||||
. . . # #
|
. . . # #
|
||||||
. . # # #`;
|
. . # # #`);
|
||||||
case ArrowNames.South: return `
|
case ArrowNames.South: return images.createImage(`
|
||||||
. . # . .
|
. . # . .
|
||||||
. . # . .
|
. . # . .
|
||||||
# . # . #
|
# . # . #
|
||||||
. # # # .
|
. # # # .
|
||||||
. . # . .`;
|
. . # . .`);
|
||||||
case ArrowNames.SouthWest: return `
|
case ArrowNames.SouthWest: return images.createImage(`
|
||||||
. . . . #
|
. . . . #
|
||||||
. . . # .
|
. . . # .
|
||||||
# . # . .
|
# . # . .
|
||||||
# # . . .
|
# # . . .
|
||||||
# # # . .`;
|
# # # . .`);
|
||||||
case ArrowNames.West: return `
|
case ArrowNames.West: return images.createImage(`
|
||||||
. . # . .
|
. . # . .
|
||||||
. # . . .
|
. # . . .
|
||||||
# # # # #
|
# # # # #
|
||||||
. # . . .
|
. # . . .
|
||||||
. . # . .`;
|
. . # . .`);
|
||||||
case ArrowNames.NorthWest: return `
|
case ArrowNames.NorthWest: return images.createImage(`
|
||||||
# # # . .
|
# # # . .
|
||||||
# # . . .
|
# # . . .
|
||||||
# . # . .
|
# . # . .
|
||||||
. . . # .
|
. . . # .
|
||||||
. . . . #`;
|
. . . . #`);
|
||||||
default: return `
|
default: return images.createImage(`
|
||||||
. . . . .
|
. . . . .
|
||||||
. . . . .
|
. . . . .
|
||||||
. . . . .
|
. . . . .
|
||||||
. . . . .
|
. . . . .
|
||||||
. . . . .
|
. . . . .
|
||||||
`;
|
`);
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function getIcon(i: IconNames): string {
|
|
||||||
|
|
||||||
switch (i) {
|
|
||||||
case IconNames.Heart : return `
|
|
||||||
. # . # .
|
|
||||||
# # # # #
|
|
||||||
# # # # #
|
|
||||||
. # # # .
|
|
||||||
. . # . .`;
|
|
||||||
|
|
||||||
case IconNames.SmallHeart : return `
|
|
||||||
. . . . .
|
|
||||||
. # . # .
|
|
||||||
. # # # .
|
|
||||||
. . # . .
|
|
||||||
. . . . .`;
|
|
||||||
//faces
|
|
||||||
case IconNames.Happy: return `
|
|
||||||
. . . . .
|
|
||||||
. # . # .
|
|
||||||
. . . . .
|
|
||||||
# . . . #
|
|
||||||
. # # # .`;
|
|
||||||
case IconNames.Sad: return `
|
|
||||||
. . . . .
|
|
||||||
. # . # .
|
|
||||||
. . . . .
|
|
||||||
. # # # .
|
|
||||||
# . . . #`;
|
|
||||||
case IconNames.Confused: return `
|
|
||||||
. . . . .
|
|
||||||
. # . # .
|
|
||||||
. . . . .
|
|
||||||
. # . # .
|
|
||||||
# . # . #`;
|
|
||||||
case IconNames.Angry: return `
|
|
||||||
# . . . #
|
|
||||||
. # . # .
|
|
||||||
. . . . .
|
|
||||||
# # # # #
|
|
||||||
# . # . #`;
|
|
||||||
case IconNames.Asleep: return `
|
|
||||||
. . . . .
|
|
||||||
# # . # #
|
|
||||||
. . . . .
|
|
||||||
. # # # .
|
|
||||||
. . . . .`;
|
|
||||||
case IconNames.Surprised: return `
|
|
||||||
. # . # .
|
|
||||||
. . . . .
|
|
||||||
. . # . .
|
|
||||||
. # . # .
|
|
||||||
. . # . .`;
|
|
||||||
case IconNames.Silly: return `
|
|
||||||
# . . . #
|
|
||||||
. . . . .
|
|
||||||
# # # # #
|
|
||||||
. . . # #
|
|
||||||
. . . # #`;
|
|
||||||
case IconNames.Fabulous: return `
|
|
||||||
# # # # #
|
|
||||||
# # . # #
|
|
||||||
. . . . .
|
|
||||||
. # . # .
|
|
||||||
. # # # .`;
|
|
||||||
case IconNames.Meh: return `
|
|
||||||
# # . # #
|
|
||||||
. . . . .
|
|
||||||
. . . # .
|
|
||||||
. . # . .
|
|
||||||
. # . . .`;
|
|
||||||
case IconNames.Yes: return `
|
|
||||||
. . . . .
|
|
||||||
. . . . #
|
|
||||||
. . . # .
|
|
||||||
# . # . .
|
|
||||||
. # . . .`;
|
|
||||||
case IconNames.No: return `
|
|
||||||
# . . . #
|
|
||||||
. # . # .
|
|
||||||
. . # . .
|
|
||||||
. # . # .
|
|
||||||
# . . . #`;
|
|
||||||
case IconNames.Triangle: return `
|
|
||||||
. . . . .
|
|
||||||
. . # . .
|
|
||||||
. # . # .
|
|
||||||
# # # # #
|
|
||||||
. . . . .`;
|
|
||||||
case IconNames.LeftTriangle: return `
|
|
||||||
# . . . .
|
|
||||||
# # . . .
|
|
||||||
# . # . .
|
|
||||||
# . . # .
|
|
||||||
# # # # #`;
|
|
||||||
case IconNames.Chessboard: return `
|
|
||||||
. # . # .
|
|
||||||
# . # . #
|
|
||||||
. # . # .
|
|
||||||
# . # . #
|
|
||||||
. # . # .`;
|
|
||||||
case IconNames.Diamond: return `
|
|
||||||
. . # . .
|
|
||||||
. # . # .
|
|
||||||
# . . . #
|
|
||||||
. # . # .
|
|
||||||
. . # . .`;
|
|
||||||
case IconNames.SmallDiamond: return `
|
|
||||||
. . . . .
|
|
||||||
. . # . .
|
|
||||||
. # . # .
|
|
||||||
. . # . .
|
|
||||||
. . . . .`;
|
|
||||||
case IconNames.Square: return `
|
|
||||||
# # # # #
|
|
||||||
# . . . #
|
|
||||||
# . . . #
|
|
||||||
# . . . #
|
|
||||||
# # # # #`;
|
|
||||||
case IconNames.SmallSquare: return `
|
|
||||||
. . . . .
|
|
||||||
. # # # .
|
|
||||||
. # . # .
|
|
||||||
. # # # .
|
|
||||||
. . . . .`;
|
|
||||||
// The following images were designed by Abbie Brooks.
|
|
||||||
case IconNames.TShirt: return `
|
|
||||||
# # . # #
|
|
||||||
# # # # #
|
|
||||||
. # # # .
|
|
||||||
. # # # .
|
|
||||||
. # # # .`;
|
|
||||||
case IconNames.Rollerskate: return `
|
|
||||||
. . . # #
|
|
||||||
. . . # #
|
|
||||||
# # # # #
|
|
||||||
# # # # #
|
|
||||||
. # . # .`;
|
|
||||||
case IconNames.Duck: return `
|
|
||||||
. # # . .
|
|
||||||
# # # . .
|
|
||||||
. # # # #
|
|
||||||
. # # # .
|
|
||||||
. .. . .`;
|
|
||||||
case IconNames.House: return `
|
|
||||||
. . # . .
|
|
||||||
. # # # .
|
|
||||||
# # # # #
|
|
||||||
. # # # .
|
|
||||||
. # . # .`;
|
|
||||||
case IconNames.Tortoise: return `
|
|
||||||
. . . . .
|
|
||||||
. # # # .
|
|
||||||
# # # # #
|
|
||||||
. # . # .
|
|
||||||
. . . . .`;
|
|
||||||
case IconNames.Butterfly: return `
|
|
||||||
# # . # #
|
|
||||||
# # # # #
|
|
||||||
. . # . .
|
|
||||||
# # # # #
|
|
||||||
# # . # #`;
|
|
||||||
case IconNames.StickFigure: return `
|
|
||||||
. . # . .
|
|
||||||
# # # # #
|
|
||||||
. . # . .
|
|
||||||
. # . # .
|
|
||||||
# . . . #`;
|
|
||||||
case IconNames.Ghost: return `
|
|
||||||
. # # # .
|
|
||||||
# . # . #
|
|
||||||
# # # # #
|
|
||||||
# # # # #
|
|
||||||
# . # . #`;
|
|
||||||
case IconNames.Sword: return `
|
|
||||||
. . # . .
|
|
||||||
. . # . .
|
|
||||||
. . # . .
|
|
||||||
. # # # .
|
|
||||||
. . # . .`;
|
|
||||||
case IconNames.Giraffe: return `
|
|
||||||
# # . . .
|
|
||||||
. # . . .
|
|
||||||
. # . . .
|
|
||||||
. # # # .
|
|
||||||
. # . # .`;
|
|
||||||
case IconNames.Skull: return `
|
|
||||||
. # # # .
|
|
||||||
# . # . #
|
|
||||||
# # # # #
|
|
||||||
. # # # .
|
|
||||||
. # # # .`;
|
|
||||||
case IconNames.Umbrella: return `
|
|
||||||
. # # # .
|
|
||||||
# # # # #
|
|
||||||
. . # . .
|
|
||||||
# . # . .
|
|
||||||
# # # . .`;
|
|
||||||
case IconNames.Snake: return `
|
|
||||||
# # . . .
|
|
||||||
# # . # #
|
|
||||||
. # . # .
|
|
||||||
. # # # .
|
|
||||||
. . . . .`;
|
|
||||||
// animals
|
|
||||||
case IconNames.Rabbit: return `
|
|
||||||
# . # . .
|
|
||||||
# . # . .
|
|
||||||
# # # # .
|
|
||||||
# # . # .
|
|
||||||
# # # # .`;
|
|
||||||
case IconNames.Cow: return `
|
|
||||||
# . . . #
|
|
||||||
# . . . #
|
|
||||||
# # # # #
|
|
||||||
. # # # .
|
|
||||||
. . # . .`;
|
|
||||||
// musical notes
|
|
||||||
case IconNames.QuarterNote: return `
|
|
||||||
. . # . .
|
|
||||||
. . # . .
|
|
||||||
. . # . .
|
|
||||||
# # # . .
|
|
||||||
# # # . .`;
|
|
||||||
case IconNames.EigthNote: return `
|
|
||||||
. . # . .
|
|
||||||
. . # # .
|
|
||||||
. . # . #
|
|
||||||
# # # . .
|
|
||||||
# # # . .`;
|
|
||||||
// other icons
|
|
||||||
case IconNames.Pitchfork: return `
|
|
||||||
# . # . #
|
|
||||||
# . # . #
|
|
||||||
# # # # #
|
|
||||||
. . # . .
|
|
||||||
. . # . .`;
|
|
||||||
case IconNames.Pacman: return `
|
|
||||||
. # # # #
|
|
||||||
# # # # .
|
|
||||||
# # # . .
|
|
||||||
# # # # .
|
|
||||||
. # # # #`;
|
|
||||||
case IconNames.Target: return `
|
|
||||||
. . # . .
|
|
||||||
. # # # .
|
|
||||||
# # . # #
|
|
||||||
. # # # .
|
|
||||||
. . # . .`;
|
|
||||||
default: return `
|
|
||||||
. . . . .
|
|
||||||
. . . . .
|
|
||||||
. . . . .
|
|
||||||
. . . . .
|
|
||||||
. . . . .
|
|
||||||
`;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//% weight=50 blockGap=8
|
//% weight=50 blockGap=8
|
||||||
|
//% help=images/icon-image
|
||||||
|
//% blockId=builtin_image block="icon image %i"
|
||||||
|
//% i.fieldEditor="gridpicker"
|
||||||
|
//% i.fieldOptions.width="400" i.fieldOptions.columns="5"
|
||||||
|
//% i.fieldOptions.itemColour="black" i.fieldOptions.tooltips="true"
|
||||||
|
export function iconImage(i: IconNames): Image {
|
||||||
|
switch (i) {
|
||||||
|
case IconNames.Heart: return images.createImage(`
|
||||||
|
. # . # .
|
||||||
|
# # # # #
|
||||||
|
# # # # #
|
||||||
|
. # # # .
|
||||||
|
. . # . .`);
|
||||||
|
|
||||||
|
case IconNames.SmallHeart: return images.createImage(`
|
||||||
|
. . . . .
|
||||||
|
. # . # .
|
||||||
|
. # # # .
|
||||||
|
. . # . .
|
||||||
|
. . . . .`);
|
||||||
|
//faces
|
||||||
|
case IconNames.Happy: return images.createImage(`
|
||||||
|
. . . . .
|
||||||
|
. # . # .
|
||||||
|
. . . . .
|
||||||
|
# . . . #
|
||||||
|
. # # # .`);
|
||||||
|
case IconNames.Sad: return images.createImage(`
|
||||||
|
. . . . .
|
||||||
|
. # . # .
|
||||||
|
. . . . .
|
||||||
|
. # # # .
|
||||||
|
# . . . #`);
|
||||||
|
case IconNames.Confused: return images.createImage(`
|
||||||
|
. . . . .
|
||||||
|
. # . # .
|
||||||
|
. . . . .
|
||||||
|
. # . # .
|
||||||
|
# . # . #`);
|
||||||
|
case IconNames.Angry: return images.createImage(`
|
||||||
|
# . . . #
|
||||||
|
. # . # .
|
||||||
|
. . . . .
|
||||||
|
# # # # #
|
||||||
|
# . # . #`);
|
||||||
|
case IconNames.Asleep: return images.createImage(`
|
||||||
|
. . . . .
|
||||||
|
# # . # #
|
||||||
|
. . . . .
|
||||||
|
. # # # .
|
||||||
|
. . . . .`);
|
||||||
|
case IconNames.Surprised: return images.createImage(`
|
||||||
|
. # . # .
|
||||||
|
. . . . .
|
||||||
|
. . # . .
|
||||||
|
. # . # .
|
||||||
|
. . # . .`);
|
||||||
|
case IconNames.Silly: return images.createImage(`
|
||||||
|
# . . . #
|
||||||
|
. . . . .
|
||||||
|
# # # # #
|
||||||
|
. . . # #
|
||||||
|
. . . # #`);
|
||||||
|
case IconNames.Fabulous: return images.createImage(`
|
||||||
|
# # # # #
|
||||||
|
# # . # #
|
||||||
|
. . . . .
|
||||||
|
. # . # .
|
||||||
|
. # # # .`);
|
||||||
|
case IconNames.Meh: return images.createImage(`
|
||||||
|
# # . # #
|
||||||
|
. . . . .
|
||||||
|
. . . # .
|
||||||
|
. . # . .
|
||||||
|
. # . . .`);
|
||||||
|
case IconNames.Yes: return images.createImage(`
|
||||||
|
. . . . .
|
||||||
|
. . . . #
|
||||||
|
. . . # .
|
||||||
|
# . # . .
|
||||||
|
. # . . .`);
|
||||||
|
case IconNames.No: return images.createImage(`
|
||||||
|
# . . . #
|
||||||
|
. # . # .
|
||||||
|
. . # . .
|
||||||
|
. # . # .
|
||||||
|
# . . . #`);
|
||||||
|
case IconNames.Triangle: return images.createImage(`
|
||||||
|
. . . . .
|
||||||
|
. . # . .
|
||||||
|
. # . # .
|
||||||
|
# # # # #
|
||||||
|
. . . . .`);
|
||||||
|
case IconNames.LeftTriangle: return images.createImage(`
|
||||||
|
# . . . .
|
||||||
|
# # . . .
|
||||||
|
# . # . .
|
||||||
|
# . . # .
|
||||||
|
# # # # #`);
|
||||||
|
case IconNames.Chessboard: return images.createImage(`
|
||||||
|
. # . # .
|
||||||
|
# . # . #
|
||||||
|
. # . # .
|
||||||
|
# . # . #
|
||||||
|
. # . # .`);
|
||||||
|
case IconNames.Diamond: return images.createImage(`
|
||||||
|
. . # . .
|
||||||
|
. # . # .
|
||||||
|
# . . . #
|
||||||
|
. # . # .
|
||||||
|
. . # . .`);
|
||||||
|
case IconNames.SmallDiamond: return images.createImage(`
|
||||||
|
. . . . .
|
||||||
|
. . # . .
|
||||||
|
. # . # .
|
||||||
|
. . # . .
|
||||||
|
. . . . .`);
|
||||||
|
case IconNames.Square: return images.createImage(`
|
||||||
|
# # # # #
|
||||||
|
# . . . #
|
||||||
|
# . . . #
|
||||||
|
# . . . #
|
||||||
|
# # # # #`);
|
||||||
|
case IconNames.SmallSquare: return images.createImage(`
|
||||||
|
. . . . .
|
||||||
|
. # # # .
|
||||||
|
. # . # .
|
||||||
|
. # # # .
|
||||||
|
. . . . .`);
|
||||||
|
|
||||||
|
case IconNames.Scissors: return images.createImage(`
|
||||||
|
# # . . #
|
||||||
|
# # . # .
|
||||||
|
. . # . .
|
||||||
|
# # . # .
|
||||||
|
# # . . #`);
|
||||||
|
// The following images were designed by Abbie Brooks.
|
||||||
|
case IconNames.TShirt: return images.createImage(`
|
||||||
|
# # . # #
|
||||||
|
# # # # #
|
||||||
|
. # # # .
|
||||||
|
. # # # .
|
||||||
|
. # # # .`);
|
||||||
|
case IconNames.Rollerskate: return images.createImage(`
|
||||||
|
. . . # #
|
||||||
|
. . . # #
|
||||||
|
# # # # #
|
||||||
|
# # # # #
|
||||||
|
. # . # .`);
|
||||||
|
case IconNames.Duck: return images.createImage(`
|
||||||
|
. # # . .
|
||||||
|
# # # . .
|
||||||
|
. # # # #
|
||||||
|
. # # # .
|
||||||
|
. . . . .`);
|
||||||
|
case IconNames.House: return images.createImage(`
|
||||||
|
. . # . .
|
||||||
|
. # # # .
|
||||||
|
# # # # #
|
||||||
|
. # # # .
|
||||||
|
. # . # .`);
|
||||||
|
case IconNames.Tortoise: return images.createImage(`
|
||||||
|
. . . . .
|
||||||
|
. # # # .
|
||||||
|
# # # # #
|
||||||
|
. # . # .
|
||||||
|
. . . . .`);
|
||||||
|
case IconNames.Butterfly: return images.createImage(`
|
||||||
|
# # . # #
|
||||||
|
# # # # #
|
||||||
|
. . # . .
|
||||||
|
# # # # #
|
||||||
|
# # . # #`);
|
||||||
|
case IconNames.StickFigure: return images.createImage(`
|
||||||
|
. . # . .
|
||||||
|
# # # # #
|
||||||
|
. . # . .
|
||||||
|
. # . # .
|
||||||
|
# . . . #`);
|
||||||
|
case IconNames.Ghost: return images.createImage(`
|
||||||
|
. # # # .
|
||||||
|
# . # . #
|
||||||
|
# # # # #
|
||||||
|
# # # # #
|
||||||
|
# . # . #`);
|
||||||
|
case IconNames.Sword: return images.createImage(`
|
||||||
|
. . # . .
|
||||||
|
. . # . .
|
||||||
|
. . # . .
|
||||||
|
. # # # .
|
||||||
|
. . # . .`);
|
||||||
|
case IconNames.Giraffe: return images.createImage(`
|
||||||
|
# # . . .
|
||||||
|
. # . . .
|
||||||
|
. # . . .
|
||||||
|
. # # # .
|
||||||
|
. # . # .`);
|
||||||
|
case IconNames.Skull: return images.createImage(`
|
||||||
|
. # # # .
|
||||||
|
# . # . #
|
||||||
|
# # # # #
|
||||||
|
. # # # .
|
||||||
|
. # # # .`);
|
||||||
|
case IconNames.Umbrella: return images.createImage(`
|
||||||
|
. # # # .
|
||||||
|
# # # # #
|
||||||
|
. . # . .
|
||||||
|
# . # . .
|
||||||
|
# # # . .`);
|
||||||
|
case IconNames.Snake: return images.createImage(`
|
||||||
|
# # . . .
|
||||||
|
# # . # #
|
||||||
|
. # . # .
|
||||||
|
. # # # .
|
||||||
|
. . . . .`);
|
||||||
|
// animals
|
||||||
|
case IconNames.Rabbit: return images.createImage(`
|
||||||
|
# . # . .
|
||||||
|
# . # . .
|
||||||
|
# # # # .
|
||||||
|
# # . # .
|
||||||
|
# # # # .`);
|
||||||
|
case IconNames.Cow: return images.createImage(`
|
||||||
|
# . . . #
|
||||||
|
# . . . #
|
||||||
|
# # # # #
|
||||||
|
. # # # .
|
||||||
|
. . # . .`);
|
||||||
|
// musical notes
|
||||||
|
case IconNames.QuarterNote: return images.createImage(`
|
||||||
|
. . # . .
|
||||||
|
. . # . .
|
||||||
|
. . # . .
|
||||||
|
# # # . .
|
||||||
|
# # # . .`);
|
||||||
|
case IconNames.EigthNote: return images.createImage(`
|
||||||
|
. . # . .
|
||||||
|
. . # # .
|
||||||
|
. . # . #
|
||||||
|
# # # . .
|
||||||
|
# # # . .`);
|
||||||
|
// other icons
|
||||||
|
case IconNames.Pitchfork: return images.createImage(`
|
||||||
|
# . # . #
|
||||||
|
# . # . #
|
||||||
|
# # # # #
|
||||||
|
. . # . .
|
||||||
|
. . # . .`);
|
||||||
|
case IconNames.Target: return images.createImage(`
|
||||||
|
. . # . .
|
||||||
|
. # # # .
|
||||||
|
# # . # #
|
||||||
|
. # # # .
|
||||||
|
. . # . .`);
|
||||||
|
default: return images.createImage(`
|
||||||
|
. . . . .
|
||||||
|
. . . . .
|
||||||
|
. . . . .
|
||||||
|
. . . . .
|
||||||
|
. . . . .
|
||||||
|
`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//% weight=50 blockGap=8
|
||||||
|
//% help=images/arrow-number
|
||||||
//% blockId=device_arrow block="%arrow"
|
//% blockId=device_arrow block="%arrow"
|
||||||
//% shim=TD_ID
|
//% shim=TD_ID
|
||||||
export function arrowNumber(arrow: ArrowNames): number {
|
export function arrowNumber(arrow: ArrowNames): number {
|
||||||
return arrow;
|
return arrow;
|
||||||
}
|
}
|
||||||
|
|
||||||
//% weight=50 blockGap=8
|
|
||||||
//% blockId=builtin_arrow_image block="arrow image %i=device_arrow"
|
|
||||||
export function arrowImage(i: ArrowNames): Image {
|
|
||||||
let res = images.createImage(`
|
|
||||||
. . . . .
|
|
||||||
. . . . .
|
|
||||||
. . . . .
|
|
||||||
. . . . .
|
|
||||||
. . . . .
|
|
||||||
`)
|
|
||||||
return set(res, getArrow(i));
|
|
||||||
}
|
|
||||||
|
|
||||||
//% weight=50 blockGap=8
|
|
||||||
//% blockId=builtin_image block="icon image %i"
|
|
||||||
export function iconImage(i: IconNames): Image {
|
|
||||||
let res = images.createImage(`
|
|
||||||
. . . . .
|
|
||||||
. . . . .
|
|
||||||
. . . . .
|
|
||||||
. . . . .
|
|
||||||
. . . . .
|
|
||||||
`)
|
|
||||||
return set(res, getIcon(i));
|
|
||||||
}
|
|
||||||
|
|
||||||
function set(res: Image, s: string) {
|
|
||||||
let j = 0;
|
|
||||||
for (let x of s) {
|
|
||||||
if (x == "." || x == "#") {
|
|
||||||
res.setPixel(j % 5, j / 5, x == "#")
|
|
||||||
j++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return res
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
2
package-lock.json
generated
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "pxt-calliope",
|
"name": "pxt-calliope",
|
||||||
"version": "1.0.13",
|
"version": "1.0.19",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "pxt-calliope",
|
"name": "pxt-calliope",
|
||||||
"version": "1.0.16",
|
"version": "1.0.20",
|
||||||
"description": "Calliope Mini editor for PXT",
|
"description": "Calliope Mini editor for PXT",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"JavaScript",
|
"JavaScript",
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
"semantic-ui-less": "^2.2.4"
|
"semantic-ui-less": "^2.2.4"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"pxt-core": "0.14.32"
|
"pxt-core": "0.17.4"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "node node_modules/pxt-core/built/pxt.js travis"
|
"test": "node node_modules/pxt-core/built/pxt.js travis"
|
||||||
|
|||||||
@@ -210,7 +210,7 @@
|
|||||||
"hideSideDocs": true,
|
"hideSideDocs": true,
|
||||||
"invertedMenu": true,
|
"invertedMenu": true,
|
||||||
"invertedToolbox": true,
|
"invertedToolbox": true,
|
||||||
"monacoToolbox": false,
|
"monacoToolbox": true,
|
||||||
"hasAudio": true,
|
"hasAudio": true,
|
||||||
"highContrast": true,
|
"highContrast": true,
|
||||||
"simAnimationEnter": "rotate in",
|
"simAnimationEnter": "rotate in",
|
||||||
|
|||||||
295
pxtwapp/.gitignore
vendored
Normal file
@@ -0,0 +1,295 @@
|
|||||||
|
## Ignore Visual Studio temporary files, build results, and
|
||||||
|
## files generated by popular Visual Studio add-ons.
|
||||||
|
##
|
||||||
|
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
||||||
|
|
||||||
|
# User-specific files
|
||||||
|
*.suo
|
||||||
|
*.user
|
||||||
|
*.userosscache
|
||||||
|
*.sln.docstates
|
||||||
|
|
||||||
|
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||||
|
*.userprefs
|
||||||
|
|
||||||
|
# Build results
|
||||||
|
[Dd]ebug/
|
||||||
|
[Dd]ebugPublic/
|
||||||
|
[Rr]elease/
|
||||||
|
[Rr]eleases/
|
||||||
|
x64/
|
||||||
|
x86/
|
||||||
|
bld/
|
||||||
|
[Bb]in/
|
||||||
|
[Oo]bj/
|
||||||
|
[Ll]og/
|
||||||
|
|
||||||
|
# Visual Studio 2015 cache/options directory
|
||||||
|
.vs/
|
||||||
|
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||||
|
#wwwroot/
|
||||||
|
|
||||||
|
# MSTest test Results
|
||||||
|
[Tt]est[Rr]esult*/
|
||||||
|
[Bb]uild[Ll]og.*
|
||||||
|
|
||||||
|
# NUNIT
|
||||||
|
*.VisualState.xml
|
||||||
|
TestResult.xml
|
||||||
|
|
||||||
|
# Build Results of an ATL Project
|
||||||
|
[Dd]ebugPS/
|
||||||
|
[Rr]eleasePS/
|
||||||
|
dlldata.c
|
||||||
|
|
||||||
|
# Benchmark Results
|
||||||
|
BenchmarkDotNet.Artifacts/
|
||||||
|
|
||||||
|
# .NET Core
|
||||||
|
project.lock.json
|
||||||
|
project.fragment.lock.json
|
||||||
|
artifacts/
|
||||||
|
**/Properties/launchSettings.json
|
||||||
|
|
||||||
|
*_i.c
|
||||||
|
*_p.c
|
||||||
|
*_i.h
|
||||||
|
*.ilk
|
||||||
|
*.meta
|
||||||
|
*.obj
|
||||||
|
*.pch
|
||||||
|
*.pdb
|
||||||
|
*.pgc
|
||||||
|
*.pgd
|
||||||
|
*.rsp
|
||||||
|
*.sbr
|
||||||
|
*.tlb
|
||||||
|
*.tli
|
||||||
|
*.tlh
|
||||||
|
*.tmp
|
||||||
|
*.tmp_proj
|
||||||
|
*.log
|
||||||
|
*.vspscc
|
||||||
|
*.vssscc
|
||||||
|
.builds
|
||||||
|
*.pidb
|
||||||
|
*.svclog
|
||||||
|
*.scc
|
||||||
|
|
||||||
|
# Chutzpah Test files
|
||||||
|
_Chutzpah*
|
||||||
|
|
||||||
|
# Visual C++ cache files
|
||||||
|
ipch/
|
||||||
|
*.aps
|
||||||
|
*.ncb
|
||||||
|
*.opendb
|
||||||
|
*.opensdf
|
||||||
|
*.sdf
|
||||||
|
*.cachefile
|
||||||
|
*.VC.db
|
||||||
|
*.VC.VC.opendb
|
||||||
|
|
||||||
|
# Visual Studio profiler
|
||||||
|
*.psess
|
||||||
|
*.vsp
|
||||||
|
*.vspx
|
||||||
|
*.sap
|
||||||
|
|
||||||
|
# TFS 2012 Local Workspace
|
||||||
|
$tf/
|
||||||
|
|
||||||
|
# Guidance Automation Toolkit
|
||||||
|
*.gpState
|
||||||
|
|
||||||
|
# ReSharper is a .NET coding add-in
|
||||||
|
_ReSharper*/
|
||||||
|
*.[Rr]e[Ss]harper
|
||||||
|
*.DotSettings.user
|
||||||
|
|
||||||
|
# JustCode is a .NET coding add-in
|
||||||
|
.JustCode
|
||||||
|
|
||||||
|
# TeamCity is a build add-in
|
||||||
|
_TeamCity*
|
||||||
|
|
||||||
|
# DotCover is a Code Coverage Tool
|
||||||
|
*.dotCover
|
||||||
|
|
||||||
|
# Visual Studio code coverage results
|
||||||
|
*.coverage
|
||||||
|
*.coveragexml
|
||||||
|
|
||||||
|
# NCrunch
|
||||||
|
_NCrunch_*
|
||||||
|
.*crunch*.local.xml
|
||||||
|
nCrunchTemp_*
|
||||||
|
|
||||||
|
# MightyMoose
|
||||||
|
*.mm.*
|
||||||
|
AutoTest.Net/
|
||||||
|
|
||||||
|
# Web workbench (sass)
|
||||||
|
.sass-cache/
|
||||||
|
|
||||||
|
# Installshield output folder
|
||||||
|
[Ee]xpress/
|
||||||
|
|
||||||
|
# DocProject is a documentation generator add-in
|
||||||
|
DocProject/buildhelp/
|
||||||
|
DocProject/Help/*.HxT
|
||||||
|
DocProject/Help/*.HxC
|
||||||
|
DocProject/Help/*.hhc
|
||||||
|
DocProject/Help/*.hhk
|
||||||
|
DocProject/Help/*.hhp
|
||||||
|
DocProject/Help/Html2
|
||||||
|
DocProject/Help/html
|
||||||
|
|
||||||
|
# Click-Once directory
|
||||||
|
publish/
|
||||||
|
|
||||||
|
# Publish Web Output
|
||||||
|
*.[Pp]ublish.xml
|
||||||
|
*.azurePubxml
|
||||||
|
# TODO: Comment the next line if you want to checkin your web deploy settings
|
||||||
|
# but database connection strings (with potential passwords) will be unencrypted
|
||||||
|
*.pubxml
|
||||||
|
*.publishproj
|
||||||
|
|
||||||
|
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||||
|
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||||
|
# in these scripts will be unencrypted
|
||||||
|
PublishScripts/
|
||||||
|
|
||||||
|
# NuGet Packages
|
||||||
|
*.nupkg
|
||||||
|
# The packages folder can be ignored because of Package Restore
|
||||||
|
**/packages/*
|
||||||
|
# except build/, which is used as an MSBuild target.
|
||||||
|
!**/packages/build/
|
||||||
|
# Uncomment if necessary however generally it will be regenerated when needed
|
||||||
|
#!**/packages/repositories.config
|
||||||
|
# NuGet v3's project.json files produces more ignorable files
|
||||||
|
*.nuget.props
|
||||||
|
*.nuget.targets
|
||||||
|
|
||||||
|
# Microsoft Azure Build Output
|
||||||
|
csx/
|
||||||
|
*.build.csdef
|
||||||
|
|
||||||
|
# Microsoft Azure Emulator
|
||||||
|
ecf/
|
||||||
|
rcf/
|
||||||
|
|
||||||
|
# Windows Store app package directories and files
|
||||||
|
AppPackages/
|
||||||
|
BundleArtifacts/
|
||||||
|
Package.StoreAssociation.xml
|
||||||
|
_pkginfo.txt
|
||||||
|
*.appx
|
||||||
|
|
||||||
|
# Visual Studio cache files
|
||||||
|
# files ending in .cache can be ignored
|
||||||
|
*.[Cc]ache
|
||||||
|
# but keep track of directories ending in .cache
|
||||||
|
!*.[Cc]ache/
|
||||||
|
|
||||||
|
# Others
|
||||||
|
ClientBin/
|
||||||
|
~$*
|
||||||
|
*~
|
||||||
|
*.dbmdl
|
||||||
|
*.dbproj.schemaview
|
||||||
|
*.jfm
|
||||||
|
*.pfx
|
||||||
|
*.publishsettings
|
||||||
|
orleans.codegen.cs
|
||||||
|
|
||||||
|
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||||
|
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||||
|
#bower_components/
|
||||||
|
|
||||||
|
# RIA/Silverlight projects
|
||||||
|
Generated_Code/
|
||||||
|
|
||||||
|
# Backup & report files from converting an old project file
|
||||||
|
# to a newer Visual Studio version. Backup files are not needed,
|
||||||
|
# because we have git ;-)
|
||||||
|
_UpgradeReport_Files/
|
||||||
|
Backup*/
|
||||||
|
UpgradeLog*.XML
|
||||||
|
UpgradeLog*.htm
|
||||||
|
|
||||||
|
# SQL Server files
|
||||||
|
*.mdf
|
||||||
|
*.ldf
|
||||||
|
*.ndf
|
||||||
|
|
||||||
|
# Business Intelligence projects
|
||||||
|
*.rdl.data
|
||||||
|
*.bim.layout
|
||||||
|
*.bim_*.settings
|
||||||
|
|
||||||
|
# Microsoft Fakes
|
||||||
|
FakesAssemblies/
|
||||||
|
|
||||||
|
# GhostDoc plugin setting file
|
||||||
|
*.GhostDoc.xml
|
||||||
|
|
||||||
|
# Node.js Tools for Visual Studio
|
||||||
|
.ntvs_analysis.dat
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# Typescript v1 declaration files
|
||||||
|
typings/
|
||||||
|
|
||||||
|
# Visual Studio 6 build log
|
||||||
|
*.plg
|
||||||
|
|
||||||
|
# Visual Studio 6 workspace options file
|
||||||
|
*.opt
|
||||||
|
|
||||||
|
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
||||||
|
*.vbw
|
||||||
|
|
||||||
|
# Visual Studio LightSwitch build output
|
||||||
|
**/*.HTMLClient/GeneratedArtifacts
|
||||||
|
**/*.DesktopClient/GeneratedArtifacts
|
||||||
|
**/*.DesktopClient/ModelManifest.xml
|
||||||
|
**/*.Server/GeneratedArtifacts
|
||||||
|
**/*.Server/ModelManifest.xml
|
||||||
|
_Pvt_Extensions
|
||||||
|
|
||||||
|
# Paket dependency manager
|
||||||
|
.paket/paket.exe
|
||||||
|
paket-files/
|
||||||
|
|
||||||
|
# FAKE - F# Make
|
||||||
|
.fake/
|
||||||
|
|
||||||
|
# JetBrains Rider
|
||||||
|
.idea/
|
||||||
|
*.sln.iml
|
||||||
|
|
||||||
|
# CodeRush
|
||||||
|
.cr/
|
||||||
|
|
||||||
|
# Python Tools for Visual Studio (PTVS)
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
# Cake - Uncomment if you are using it
|
||||||
|
# tools/**
|
||||||
|
# !tools/packages.config
|
||||||
|
|
||||||
|
# Tabs Studio
|
||||||
|
*.tss
|
||||||
|
|
||||||
|
# Telerik's JustMock configuration file
|
||||||
|
*.jmconfig
|
||||||
|
|
||||||
|
# BizTalk build output
|
||||||
|
*.btp.cs
|
||||||
|
*.btm.cs
|
||||||
|
*.odx.cs
|
||||||
|
*.xsd.cs
|
||||||
48
pxtwapp/pxtwapp.sln
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio 15
|
||||||
|
VisualStudioVersion = 15.0.26430.15
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{262852C6-CD72-467D-83FE-5EEB1973A190}") = "pxtwapp", "pxtwapp\pxtwapp.jsproj", "{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Debug|ARM = Debug|ARM
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
|
Debug|x86 = Debug|x86
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
Release|ARM = Release|ARM
|
||||||
|
Release|x64 = Release|x64
|
||||||
|
Release|x86 = Release|x86
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Debug|ARM.Build.0 = Debug|ARM
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Debug|ARM.Deploy.0 = Debug|ARM
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Debug|x64.Deploy.0 = Debug|x64
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Debug|x86.ActiveCfg = Debug|x86
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Debug|x86.Build.0 = Debug|x86
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Debug|x86.Deploy.0 = Debug|x86
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Release|ARM.ActiveCfg = Release|ARM
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Release|ARM.Build.0 = Release|ARM
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Release|ARM.Deploy.0 = Release|ARM
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Release|x64.Build.0 = Release|x64
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Release|x64.Deploy.0 = Release|x64
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Release|x86.ActiveCfg = Release|x86
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Release|x86.Build.0 = Release|x86
|
||||||
|
{34E8CDE2-3991-414E-BB19-BFF4BD5E031A}.Release|x86.Deploy.0 = Release|x86
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
BIN
pxtwapp/pxtwapp/images/SmallTile.scale-200.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
pxtwapp/pxtwapp/images/SplashScreen.scale-200.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
pxtwapp/pxtwapp/images/Square150x150Logo.scale-200.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
BIN
pxtwapp/pxtwapp/images/Square44x44Logo.scale-200.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
pxtwapp/pxtwapp/images/Square44x44Logo.targetsize-48.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
pxtwapp/pxtwapp/images/Wide310x150Logo.scale-200.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
pxtwapp/pxtwapp/images/logo.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
pxtwapp/pxtwapp/images/storelogo.scale-200.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
40
pxtwapp/pxtwapp/msapp-error.css
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
body {
|
||||||
|
margin: 10px;
|
||||||
|
background-color: #6633cc;
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-family: 'Open Sans', 'Helvetica Neue', Arial, Helvetica, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paramName {
|
||||||
|
font-size: 10px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paramValue {
|
||||||
|
font-size: 10px;
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.param {
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#retryButton {
|
||||||
|
box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
|
||||||
|
outline: none;
|
||||||
|
border: none;
|
||||||
|
vertical-align: baseline;
|
||||||
|
padding: 0.78571429em 1.5em 0.78571429em;
|
||||||
|
text-transform: none;
|
||||||
|
font-weight: bold;
|
||||||
|
font-style: normal;
|
||||||
|
text-align: center;
|
||||||
|
text-decoration: none;
|
||||||
|
border-radius: 0.28571429rem;
|
||||||
|
background-color: #ff8b27;
|
||||||
|
margin: 15px 10px 100px 10px;
|
||||||
|
width: 80px;
|
||||||
|
height: 35px;
|
||||||
|
font-size: 15px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
24
pxtwapp/pxtwapp/msapp-error.html
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Oops!</title>
|
||||||
|
<link href="msapp-error.css" rel="stylesheet" type="text/css" />
|
||||||
|
<script src="msapp-error.js" type="text/javascript"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Oops! Please connect to the Internet.</h1>
|
||||||
|
<button id="retryButton">Retry</button>
|
||||||
|
<div id="failureUrl" class="param">
|
||||||
|
<span class="paramName">URL:</span>
|
||||||
|
<span id="failureUrlValue" class="paramValue"></span>
|
||||||
|
</div>
|
||||||
|
<div id="httpStatus" class="param">
|
||||||
|
<span class="paramName">HTTP status:</span>
|
||||||
|
<span id="httpStatusValue" class="paramValue"></span>
|
||||||
|
</div>
|
||||||
|
<div id="failureName">
|
||||||
|
<span class="paramName">Failure name:</span>
|
||||||
|
<span id="failureNameValue" class="paramValue"></span>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
47
pxtwapp/pxtwapp/msapp-error.js
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
(function () {
|
||||||
|
var validParameterNames = ["httpStatus", "failureName", "failureUrl"];
|
||||||
|
|
||||||
|
function parseQueryParameters() {
|
||||||
|
var query = location.search.slice(1);
|
||||||
|
return query.split("&").reduce(function (queryParameters, rawPair) {
|
||||||
|
var pair = rawPair.split("=").map(decodeURIComponent);
|
||||||
|
queryParameters[pair[0]] = pair[1];
|
||||||
|
return queryParameters;
|
||||||
|
}, {});
|
||||||
|
}
|
||||||
|
|
||||||
|
function initialize() {
|
||||||
|
var queryParameters = parseQueryParameters();
|
||||||
|
var url = queryParameters["failureUrl"];
|
||||||
|
var retryButton = document.getElementById("retryButton");
|
||||||
|
|
||||||
|
if (url) {
|
||||||
|
retryButton.addEventListener("click", (e) => {
|
||||||
|
window.location.href = url;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
retryButton.style.display = none;
|
||||||
|
}
|
||||||
|
|
||||||
|
validParameterNames.forEach(function (parameterName) {
|
||||||
|
var parameterValue = queryParameters[parameterName];
|
||||||
|
|
||||||
|
if (parameterValue) {
|
||||||
|
document.getElementById(parameterName + "Value").textContent = parameterValue;
|
||||||
|
} else {
|
||||||
|
document.getElementById(parameterName).remove();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateOnlineStatus(e) {
|
||||||
|
var queryParameters = parseQueryParameters();
|
||||||
|
var url = queryParameters["failureUrl"];
|
||||||
|
if (url) {
|
||||||
|
window.location.href = url;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
window.addEventListener("online", updateOnlineStatus);
|
||||||
|
document.addEventListener("DOMContentLoaded", initialize);
|
||||||
|
}());
|
||||||
59
pxtwapp/pxtwapp/package.appxmanifest
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3" IgnorableNamespaces="uap uap3 mp">
|
||||||
|
<Identity Name="CalliopeMini" Version="1.0.0.0" Publisher="CN=calliope" />
|
||||||
|
<mp:PhoneIdentity PhoneProductId="5ddd542e-5ab4-48bc-b116-0782dc08ab97" PhonePublisherId="00000000-0000-0000-0000-000000000000" />
|
||||||
|
<Properties>
|
||||||
|
<DisplayName>Microsoft MakeCode for Calliope Mini</DisplayName>
|
||||||
|
<PublisherDisplayName>Calliope.cc</PublisherDisplayName>
|
||||||
|
<Logo>images\storelogo.png</Logo>
|
||||||
|
</Properties>
|
||||||
|
<Dependencies>
|
||||||
|
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
|
||||||
|
</Dependencies>
|
||||||
|
<Resources>
|
||||||
|
<Resource Language="x-generate" />
|
||||||
|
</Resources>
|
||||||
|
<Applications>
|
||||||
|
<Application Id="App" StartPage="https://makecode.calliope.cc/">
|
||||||
|
<uap:ApplicationContentUriRules>
|
||||||
|
<uap:Rule Match="https://makecode.calliope.cc/" Type="include" WindowsRuntimeAccess="all" />
|
||||||
|
<uap:Rule Match="https://trg-calliope.userpxt.io/---simulator" Type="include" WindowsRuntimeAccess="none" />
|
||||||
|
<uap:Rule Match="https://makecode.calliope.cc/beta" Type="include" WindowsRuntimeAccess="all" />
|
||||||
|
<uap:Rule Match="https://trg-calliope.userpxt.io/beta---simulator" Type="include" WindowsRuntimeAccess="none" />
|
||||||
|
</uap:ApplicationContentUriRules>
|
||||||
|
<uap:VisualElements DisplayName="Microsoft MakeCode for Calliope Mini" Description="Microsoft MakeCode for Calliope Mini" BackgroundColor="#249899" Square150x150Logo="images\Square150x150Logo.png" Square44x44Logo="images\Square44x44Logo.png">
|
||||||
|
<uap:DefaultTile Wide310x150Logo="images\Wide310x150Logo.png" Square71x71Logo="images\SmallTile.png">
|
||||||
|
</uap:DefaultTile>
|
||||||
|
<uap:SplashScreen Image="images\SplashScreen.png" BackgroundColor="#303030" />
|
||||||
|
</uap:VisualElements>
|
||||||
|
<Extensions>
|
||||||
|
<uap:Extension Category="windows.fileTypeAssociation">
|
||||||
|
<uap:FileTypeAssociation Name="makecode">
|
||||||
|
<uap:DisplayName>Microsoft MakeCode binary file</uap:DisplayName>
|
||||||
|
<uap:SupportedFileTypes>
|
||||||
|
<uap:FileType ContentType="application/x-makecode-hex">.hex</uap:FileType>
|
||||||
|
</uap:SupportedFileTypes>
|
||||||
|
</uap:FileTypeAssociation>
|
||||||
|
</uap:Extension>
|
||||||
|
<uap3:Extension Category="windows.appUriHandler">
|
||||||
|
<uap3:AppUriHandler>
|
||||||
|
<uap3:Host Name="makecode.calliope.cc" />
|
||||||
|
</uap3:AppUriHandler>
|
||||||
|
</uap3:Extension>
|
||||||
|
</Extensions>
|
||||||
|
</Application>
|
||||||
|
</Applications>
|
||||||
|
<Capabilities>
|
||||||
|
<Capability Name="internetClient" />
|
||||||
|
<DeviceCapability Name="serialcommunication">
|
||||||
|
<Device Id="any">
|
||||||
|
<Function Type="name:serialPort" />
|
||||||
|
</Device>
|
||||||
|
</DeviceCapability>
|
||||||
|
<DeviceCapability Name="humaninterfacedevice">
|
||||||
|
<Device Id="vidpid:0d28 0204">
|
||||||
|
<Function Type="usage:FF00 *" />
|
||||||
|
</Device>
|
||||||
|
</DeviceCapability>
|
||||||
|
</Capabilities>
|
||||||
|
</Package>
|
||||||
91
pxtwapp/pxtwapp/pxtwapp.jsproj
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug|AnyCPU">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>AnyCPU</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|ARM">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>ARM</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|x64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|x86">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>x86</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|AnyCPU">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>AnyCPU</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|ARM">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>ARM</Platform>
|
||||||
|
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|x64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|x86">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>x86</Platform>
|
||||||
|
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGuid>34e8cde2-3991-414e-bb19-bff4bd5e031a</ProjectGuid>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup Condition="'$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '14.0'">
|
||||||
|
<VisualStudioVersion>14.0</VisualStudioVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\$(WMSJSProjectDirectory)\Microsoft.VisualStudio.$(WMSJSProject).Default.props" />
|
||||||
|
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\$(WMSJSProjectDirectory)\Microsoft.VisualStudio.$(WMSJSProject).props" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
|
||||||
|
<TargetPlatformVersion>10.0.15063.0</TargetPlatformVersion>
|
||||||
|
<TargetPlatformMinVersion>10.0.10240.0</TargetPlatformMinVersion>
|
||||||
|
<MinimumVisualStudioVersion>$(VersionNumberMajor).$(VersionNumberMinor)</MinimumVisualStudioVersion>
|
||||||
|
<DefaultLanguage>en-US</DefaultLanguage>
|
||||||
|
<PackageCertificateKeyFile>pxtwapp_TemporaryKey.pfx</PackageCertificateKeyFile>
|
||||||
|
<AppxAutoIncrementPackageRevision>true</AppxAutoIncrementPackageRevision>
|
||||||
|
<AppxBundle>Always</AppxBundle>
|
||||||
|
<AppxBundlePlatforms>x86|x64|arm</AppxBundlePlatforms>
|
||||||
|
<PackageCertificateThumbprint>BA3D3E800661F789BAE7216F8D6F76608D1C4D62</PackageCertificateThumbprint>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AppxManifest Include="package.appxmanifest">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</AppxManifest>
|
||||||
|
<Content Include="images\logo.png" />
|
||||||
|
<Content Include="images\SmallTile.scale-200.png" />
|
||||||
|
<Content Include="images\Square44x44Logo.altform-unplated_targetsize-48.png" />
|
||||||
|
<Content Include="images\Square44x44Logo.targetsize-48.png" />
|
||||||
|
<Content Include="images\storelogo.scale-200.png" />
|
||||||
|
<Content Include="msapp-error.js" />
|
||||||
|
<Content Include="msapp-error.css" />
|
||||||
|
<Content Include="msapp-error.html" />
|
||||||
|
<Content Include="images\SplashScreen.scale-200.png" />
|
||||||
|
<Content Include="images\Square150x150Logo.scale-200.png" />
|
||||||
|
<Content Include="images\Square44x44Logo.scale-200.png" />
|
||||||
|
<Content Include="images\Wide310x150Logo.scale-200.png" />
|
||||||
|
<None Include="pxtwapp_TemporaryKey.pfx" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\$(WMSJSProjectDirectory)\Microsoft.VisualStudio.$(WMSJSProject).targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below then uncomment
|
||||||
|
that target and the DisableFastUpToDateCheck PropertyGroup.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
<PropertyGroup>
|
||||||
|
<DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
|
||||||
|
</PropertyGroup>
|
||||||
|
-->
|
||||||
|
</Project>
|
||||||
@@ -18,6 +18,9 @@ namespace pxsim {
|
|||||||
speakerState: SpeakerState;
|
speakerState: SpeakerState;
|
||||||
fileSystem: FileSystemState;
|
fileSystem: FileSystemState;
|
||||||
|
|
||||||
|
// visual
|
||||||
|
view: SVGElement;
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super()
|
super()
|
||||||
|
|
||||||
@@ -94,7 +97,7 @@ namespace pxsim {
|
|||||||
break;
|
break;
|
||||||
case "serial":
|
case "serial":
|
||||||
let data = (<SimulatorSerialMessage>msg).data || "";
|
let data = (<SimulatorSerialMessage>msg).data || "";
|
||||||
this.serialState.recieveData(data);
|
this.serialState.receiveData(data);
|
||||||
break;
|
break;
|
||||||
case "radiopacket":
|
case "radiopacket":
|
||||||
let packet = <SimulatorRadioPacketMessage>msg;
|
let packet = <SimulatorRadioPacketMessage>msg;
|
||||||
@@ -121,16 +124,22 @@ namespace pxsim {
|
|||||||
fnArgs: fnArgs,
|
fnArgs: fnArgs,
|
||||||
maxWidth: "100%",
|
maxWidth: "100%",
|
||||||
maxHeight: "100%",
|
maxHeight: "100%",
|
||||||
|
highContrast: msg.highContrast
|
||||||
};
|
};
|
||||||
const viewHost = new visuals.BoardHost(pxsim.visuals.mkBoardView({
|
const viewHost = new visuals.BoardHost(pxsim.visuals.mkBoardView({
|
||||||
visual: boardDef.visual
|
visual: boardDef.visual,
|
||||||
|
highContrast: msg.highContrast
|
||||||
}), opts);
|
}), opts);
|
||||||
|
|
||||||
document.body.innerHTML = ""; // clear children
|
document.body.innerHTML = ""; // clear children
|
||||||
document.body.appendChild(viewHost.getView());
|
document.body.appendChild(this.view = viewHost.getView());
|
||||||
|
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
screenshot(): string {
|
||||||
|
return svg.toDataUri(new XMLSerializer().serializeToString(this.view));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function initRuntimeWithDalBoard() {
|
export function initRuntimeWithDalBoard() {
|
||||||
|
|||||||
BIN
sim/public/blocks/iconnames/angry.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
sim/public/blocks/iconnames/asleep.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
sim/public/blocks/iconnames/butterfly.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
sim/public/blocks/iconnames/chessboard.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
sim/public/blocks/iconnames/confused.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
sim/public/blocks/iconnames/cow.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
sim/public/blocks/iconnames/diamond.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
sim/public/blocks/iconnames/duck.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
sim/public/blocks/iconnames/eigthnote.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
sim/public/blocks/iconnames/fabulous.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
sim/public/blocks/iconnames/ghost.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
sim/public/blocks/iconnames/giraffe.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
sim/public/blocks/iconnames/happy.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
sim/public/blocks/iconnames/heart.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
sim/public/blocks/iconnames/house.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
sim/public/blocks/iconnames/lefttriangle.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
sim/public/blocks/iconnames/meh.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
sim/public/blocks/iconnames/no.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
sim/public/blocks/iconnames/pitchfork.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
sim/public/blocks/iconnames/quarternote.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
sim/public/blocks/iconnames/rabbit.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
sim/public/blocks/iconnames/rollerskate.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
sim/public/blocks/iconnames/sad.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
sim/public/blocks/iconnames/scissors.png
Normal file
|
After Width: | Height: | Size: 8.0 KiB |
BIN
sim/public/blocks/iconnames/silly.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
sim/public/blocks/iconnames/skull.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
sim/public/blocks/iconnames/smalldiamond.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
sim/public/blocks/iconnames/smallheart.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
sim/public/blocks/iconnames/smallsquare.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
sim/public/blocks/iconnames/snake.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
sim/public/blocks/iconnames/square.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
sim/public/blocks/iconnames/stickfigure.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
sim/public/blocks/iconnames/surprised.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
sim/public/blocks/iconnames/sword.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
sim/public/blocks/iconnames/target.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
sim/public/blocks/iconnames/tortoise.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
sim/public/blocks/iconnames/triangle.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
sim/public/blocks/iconnames/tshirt.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
sim/public/blocks/iconnames/umbrella.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
sim/public/blocks/iconnames/yes.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
@@ -28,7 +28,7 @@ namespace pxsim {
|
|||||||
this.data = data;
|
this.data = data;
|
||||||
}
|
}
|
||||||
public print() {
|
public print() {
|
||||||
console.log(`Image id:${this.id} refs:${this.refcnt} size:${this.width}x${Image.height}`)
|
// console.debug(`Image id:${this.id} refs:${this.refcnt} size:${this.width}x${Image.height}`)
|
||||||
}
|
}
|
||||||
public get(x: number, y: number): number {
|
public get(x: number, y: number): number {
|
||||||
if (x < 0 || x >= this.width || y < 0 || y >= 5) return 0;
|
if (x < 0 || x >= this.width || y < 0 || y >= 5) return 0;
|
||||||
@@ -131,15 +131,33 @@ namespace pxsim.images {
|
|||||||
namespace pxsim.ImageMethods {
|
namespace pxsim.ImageMethods {
|
||||||
export function showImage(leds: Image, offset: number, interval: number) {
|
export function showImage(leds: Image, offset: number, interval: number) {
|
||||||
pxtrt.nullCheck(leds)
|
pxtrt.nullCheck(leds)
|
||||||
leds.copyTo(offset, 5, board().ledMatrixState.image, 0)
|
let cb = getResume();
|
||||||
runtime.queueDisplayUpdate()
|
let first = true;
|
||||||
basic.pause(interval);
|
|
||||||
|
board().ledMatrixState.animationQ.enqueue({
|
||||||
|
interval,
|
||||||
|
frame: () => {
|
||||||
|
if (first) {
|
||||||
|
leds.copyTo(offset, 5, board().ledMatrixState.image, 0)
|
||||||
|
first = false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
whenDone: cb
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function plotImage(leds: Image, offset: number): void {
|
export function plotImage(leds: Image, offset: number): void {
|
||||||
pxtrt.nullCheck(leds)
|
pxtrt.nullCheck(leds)
|
||||||
leds.copyTo(offset, 5, board().ledMatrixState.image, 0)
|
|
||||||
runtime.queueDisplayUpdate()
|
board().ledMatrixState.animationQ.enqueue({
|
||||||
|
interval: 0,
|
||||||
|
frame: () => {
|
||||||
|
leds.copyTo(offset, 5, board().ledMatrixState.image, 0)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function height(leds: Image): number {
|
export function height(leds: Image): number {
|
||||||
@@ -216,15 +234,16 @@ namespace pxsim.ImageMethods {
|
|||||||
|
|
||||||
namespace pxsim.basic {
|
namespace pxsim.basic {
|
||||||
export function showNumber(x: number, interval: number) {
|
export function showNumber(x: number, interval: number) {
|
||||||
if (interval < 0) return;
|
if (interval <= 0)
|
||||||
|
interval = 1;
|
||||||
let leds = createImageFromString(x.toString());
|
let leds = createImageFromString(x.toString());
|
||||||
if (x < 0 || x >= 10) ImageMethods.scrollImage(leds, 1, interval);
|
if (x < 0 || x >= 10) ImageMethods.scrollImage(leds, 1, interval);
|
||||||
else showLeds(leds, interval * 5);
|
else showLeds(leds, interval * 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function showString(s: string, interval: number) {
|
export function showString(s: string, interval: number) {
|
||||||
if (interval < 0) return;
|
if (interval <= 0)
|
||||||
|
interval = 1;
|
||||||
if (s.length == 0) {
|
if (s.length == 0) {
|
||||||
clearScreen();
|
clearScreen();
|
||||||
pause(interval * 5);
|
pause(interval * 5);
|
||||||
@@ -254,7 +273,16 @@ namespace pxsim.basic {
|
|||||||
|
|
||||||
namespace pxsim.led {
|
namespace pxsim.led {
|
||||||
export function plot(x: number, y: number) {
|
export function plot(x: number, y: number) {
|
||||||
board().ledMatrixState.image.set(x, y, 255);
|
board().ledMatrixState.image.set(x, y, 0xff);
|
||||||
|
runtime.queueDisplayUpdate()
|
||||||
|
}
|
||||||
|
|
||||||
|
export function plotBrightness(x: number, y: number, brightness: number) {
|
||||||
|
const state = board().ledMatrixState;
|
||||||
|
brightness = Math.max(0, Math.min(0xff, brightness));
|
||||||
|
if (brightness != 0 && brightness != 0xff && state.displayMode != DisplayMode.greyscale)
|
||||||
|
state.displayMode = DisplayMode.greyscale;
|
||||||
|
state.image.set(x, y, brightness);
|
||||||
runtime.queueDisplayUpdate()
|
runtime.queueDisplayUpdate()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -272,7 +300,7 @@ namespace pxsim.led {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function setBrightness(value: number): void {
|
export function setBrightness(value: number): void {
|
||||||
board().ledMatrixState.brigthness = value;
|
board().ledMatrixState.brigthness = Math.max(0, Math.min(255, value));
|
||||||
runtime.queueDisplayUpdate()
|
runtime.queueDisplayUpdate()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -286,7 +314,7 @@ namespace pxsim.led {
|
|||||||
runtime.queueDisplayUpdate()
|
runtime.queueDisplayUpdate()
|
||||||
}
|
}
|
||||||
|
|
||||||
export function displayMode() : DisplayMode {
|
export function displayMode(): DisplayMode {
|
||||||
return board().ledMatrixState.displayMode;
|
return board().ledMatrixState.displayMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
namespace pxsim {
|
namespace pxsim {
|
||||||
|
const SERIAL_BUFFER_LENGTH = 16;
|
||||||
export class SerialState {
|
export class SerialState {
|
||||||
serialIn: string[] = [];
|
serialIn: string[] = [];
|
||||||
|
|
||||||
public recieveData(data: string) {
|
public receiveData(data: string) {
|
||||||
this.serialIn.push();
|
this.serialIn.push();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -13,18 +14,15 @@ namespace pxsim {
|
|||||||
|
|
||||||
serialOutBuffer: string = "";
|
serialOutBuffer: string = "";
|
||||||
writeSerial(s: string) {
|
writeSerial(s: string) {
|
||||||
for (let i = 0; i < s.length; ++i) {
|
this.serialOutBuffer += s;
|
||||||
let c = s[i];
|
if (/\n/.test(this.serialOutBuffer) || this.serialOutBuffer.length > SERIAL_BUFFER_LENGTH) {
|
||||||
this.serialOutBuffer += c;
|
Runtime.postMessage(<SimulatorSerialMessage>{
|
||||||
if (c == "\n") {
|
type: 'serial',
|
||||||
Runtime.postMessage(<SimulatorSerialMessage>{
|
data: this.serialOutBuffer,
|
||||||
type: "serial",
|
id: runtime.id,
|
||||||
data: this.serialOutBuffer,
|
sim: true
|
||||||
id: runtime.id
|
})
|
||||||
})
|
this.serialOutBuffer = '';
|
||||||
this.serialOutBuffer = ""
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -51,4 +49,8 @@ namespace pxsim.serial {
|
|||||||
export function redirect(tx: number, rx: number, rate: number) {
|
export function redirect(tx: number, rx: number, rate: number) {
|
||||||
// TODO?
|
// TODO?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function redirectToUSB() {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -11,6 +11,8 @@
|
|||||||
"Tinkertanker/pxt-ssd1306-microbit"
|
"Tinkertanker/pxt-ssd1306-microbit"
|
||||||
],
|
],
|
||||||
"preferredRepos": [
|
"preferredRepos": [
|
||||||
|
"Microsoft/pxt-neopixel",
|
||||||
|
"Microsoft/pxt-microturtle",
|
||||||
"calliope-mini/pxt-calliope-modem",
|
"calliope-mini/pxt-calliope-modem",
|
||||||
"calliope-mini/pxt-calliope-bc95",
|
"calliope-mini/pxt-calliope-bc95",
|
||||||
"calliope-mini/pxt-calliope-esp",
|
"calliope-mini/pxt-calliope-esp",
|
||||||
|
|||||||
@@ -11,10 +11,13 @@
|
|||||||
Blockly
|
Blockly
|
||||||
*******************************/
|
*******************************/
|
||||||
|
|
||||||
div.blocklyTreeRow {
|
.blocklyToolboxDiv {
|
||||||
box-shadow: inset 0 -1px 0 0 #ecf0f1;
|
padding:7px;
|
||||||
|
}
|
||||||
|
|
||||||
margin-bottom: 0px !important;
|
div.blocklyTreeRow {
|
||||||
|
border-radius:8px;
|
||||||
|
box-shadow: inset 0 -1px 0 0 #ecf0f1;
|
||||||
|
|
||||||
-webkit-transition-property: background-color; /* Safari */
|
-webkit-transition-property: background-color; /* Safari */
|
||||||
-webkit-transition-duration: 1s; /* Safari */
|
-webkit-transition-duration: 1s; /* Safari */
|
||||||
@@ -29,15 +32,10 @@ span.blocklyTreeLabel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.blocklyToolboxDiv, .monacoToolboxDiv {
|
.blocklyToolboxDiv, .monacoToolboxDiv {
|
||||||
background-color: white !important;
|
|
||||||
border-left: 1px solid #ecf0f1 !important;
|
border-left: 1px solid #ecf0f1 !important;
|
||||||
box-shadow: 4px 0px 2px -4px rgba(0,0,0,0.12), 4px 0px 2px -4px rgba(0,0,0,0.24);
|
box-shadow: 4px 0px 2px -4px rgba(0,0,0,0.12), 4px 0px 2px -4px rgba(0,0,0,0.24);
|
||||||
}
|
}
|
||||||
|
|
||||||
.blocklyFlyoutBackground {
|
|
||||||
fill: #525A67 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Remove shadow around blockly blocks */
|
/* Remove shadow around blockly blocks */
|
||||||
.blocklyPathDark, .blocklyPathLight {
|
.blocklyPathDark, .blocklyPathLight {
|
||||||
display: none;
|
display: none;
|
||||||
@@ -52,6 +50,10 @@ span.blocklyTreeLabel {
|
|||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.blocklyFlyoutBackground {
|
||||||
|
fill: #42495F !important;
|
||||||
|
}
|
||||||
|
|
||||||
/* Mobile */
|
/* Mobile */
|
||||||
@media only screen and (max-width: @largestMobileScreen) {
|
@media only screen and (max-width: @largestMobileScreen) {
|
||||||
.blocklyToolboxDiv, .monacoToolboxDiv {
|
.blocklyToolboxDiv, .monacoToolboxDiv {
|
||||||
|
|||||||
@@ -4,10 +4,3 @@
|
|||||||
|
|
||||||
@invertedBackground: #525A67;
|
@invertedBackground: #525A67;
|
||||||
@dropdownMenuDistance: 0px;
|
@dropdownMenuDistance: 0px;
|
||||||
|
|
||||||
/*******************************
|
|
||||||
PXT Theme Overrides
|
|
||||||
*******************************/
|
|
||||||
|
|
||||||
@mainMenuHeight: 5rem;
|
|
||||||
@mainMenuMinHeight: (@itemVerticalPadding * 2) + 2em;
|
|
||||||
|
|||||||
@@ -6,9 +6,6 @@
|
|||||||
|
|
||||||
@fontName : 'Roboto Mono';
|
@fontName : 'Roboto Mono';
|
||||||
|
|
||||||
@emSize : 14px;
|
|
||||||
@fontSize : 13px;
|
|
||||||
|
|
||||||
/*-------------------
|
/*-------------------
|
||||||
Site Colors
|
Site Colors
|
||||||
--------------------*/
|
--------------------*/
|
||||||
@@ -35,8 +32,6 @@
|
|||||||
PXT Overrides
|
PXT Overrides
|
||||||
*******************************/
|
*******************************/
|
||||||
|
|
||||||
@mainMenuHeight: 5rem;
|
|
||||||
@mobileMenuHeight: 5rem;
|
|
||||||
|
|
||||||
@blocklyToolboxColor: #F6F4E6;
|
@blocklyToolboxColor: #F6F4E6;
|
||||||
|
|
||||||
|
@blocklyFlyoutColor: #42495F;
|
||||||
|
|||||||
@@ -47,31 +47,8 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************
|
#downloadArea {
|
||||||
Blockly
|
background: transparent !important;
|
||||||
*******************************/
|
|
||||||
|
|
||||||
div.blocklyTreeRow {
|
|
||||||
border-radius:8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* This removes any padding at the top of the toolbox */
|
|
||||||
div.blocklyTreeRoot {
|
|
||||||
padding: 0px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Blockly Text */
|
|
||||||
div.blocklyTreeLabel {
|
|
||||||
font-family: @pageFont !important;
|
|
||||||
font-size:1rem !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.blocklyFlyoutBackground {
|
|
||||||
fill: @grey;
|
|
||||||
}
|
|
||||||
|
|
||||||
.blocklyToolboxDiv {
|
|
||||||
padding:7px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.organization {
|
.organization {
|
||||||
@@ -85,8 +62,19 @@ div.blocklyTreeLabel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Mobile */
|
||||||
|
@media only screen and (max-width: @largestMobileScreen) {
|
||||||
|
#filelist {
|
||||||
|
background: transparent !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Tablet */
|
/* Tablet */
|
||||||
@media only screen and (min-width: @tabletBreakpoint) and (max-width: @largestTabletScreen) {
|
@media only screen and (min-width: @tabletBreakpoint) and (max-width: @largestTabletScreen) {
|
||||||
|
#filelist {
|
||||||
|
background: transparent !important;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Small Monitor */
|
/* Small Monitor */
|
||||||
@@ -96,15 +84,3 @@ div.blocklyTreeLabel {
|
|||||||
/* Large Monitor */
|
/* Large Monitor */
|
||||||
@media only screen and (min-width: @largeMonitorBreakpoint) {
|
@media only screen and (min-width: @largeMonitorBreakpoint) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************
|
|
||||||
Menu Bar
|
|
||||||
*******************************/
|
|
||||||
|
|
||||||
#menubar {
|
|
||||||
height: 5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
#fileNameInput {
|
|
||||||
width: 350px;
|
|
||||||
}
|
|
||||||
@@ -43,16 +43,16 @@
|
|||||||
@form : 'default';
|
@form : 'default';
|
||||||
@grid : 'pxt';
|
@grid : 'pxt';
|
||||||
@menu : 'pxt';
|
@menu : 'pxt';
|
||||||
@message : 'default';
|
@message : 'pxt';
|
||||||
@table : 'default';
|
@table : 'default';
|
||||||
|
|
||||||
/* Modules */
|
/* Modules */
|
||||||
@accordion : 'default';
|
@accordion : 'default';
|
||||||
@checkbox : 'default';
|
@checkbox : 'default';
|
||||||
@dimmer : 'default';
|
@dimmer : 'pxt';
|
||||||
@dropdown : 'default';
|
@dropdown : 'default';
|
||||||
@embed : 'default';
|
@embed : 'default';
|
||||||
@modal : 'default';
|
@modal : 'pxt';
|
||||||
@nag : 'default';
|
@nag : 'default';
|
||||||
@popup : 'default';
|
@popup : 'default';
|
||||||
@progress : 'default';
|
@progress : 'default';
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
|
|
||||||
/* Views */
|
/* Views */
|
||||||
@ad : 'default';
|
@ad : 'default';
|
||||||
@card : 'default';
|
@card : 'pxt';
|
||||||
@comment : 'default';
|
@comment : 'default';
|
||||||
@feed : 'default';
|
@feed : 'default';
|
||||||
@item : 'default';
|
@item : 'default';
|
||||||
@@ -91,5 +91,9 @@
|
|||||||
|
|
||||||
@fontPath : 'fonts';
|
@fontPath : 'fonts';
|
||||||
|
|
||||||
|
/*
|
||||||
|
@headerFont : 'Segoe UI', 'Helvetica Neue', Arial, Helvetica, sans-serif;
|
||||||
|
@pageFont : 'Segoe UI', 'Helvetica Neue', Arial, Helvetica, sans-serif;
|
||||||
|
*/
|
||||||
|
|
||||||
/* End Config */
|
/* End Config */
|
||||||
|
|||||||