Index: resources/slides.lua |
diff --git a/resources/slides.lua b/resources/slides.lua |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2f44e78e1bad87fb16538bf5ac8920fa23f9ab68 |
--- /dev/null |
+++ b/resources/slides.lua |
@@ -0,0 +1,108 @@ |
+ |
+function make_paint(size, color) |
+ local paint = Sk.newPaint(); |
+ paint:setAntiAlias(true) |
+ paint:setTextSize(size) |
+ paint:setColor(color) |
+ return paint |
+end |
+ |
+function find_paint(paints, style) |
+ if not style then |
+ style = "child" |
+ end |
+ local paint = paints[style] |
+ return paint |
+end |
+ |
+function draw_node(canvas, node, x, y, paints) |
+ if node.text then |
+ local paint = find_paint(paints, node.style) |
+ canvas:drawText(node.text, x, y, paint) |
+ end |
+ if node.draw then |
+ node.draw(canvas) |
+ end |
+end |
+ |
+function drawSlide(canvas, slide, template, paints) |
+ draw_node(canvas, slide, template.title.x, template.title.y, paints) |
+ |
+ if slide.children then |
+ local x = template.child.x |
+ local y = template.child.y |
+ local dy = template.child.dy |
+ for i = 1, #slide.children do |
+ draw_node(canvas, slide.children[i], x, y, paints) |
+ y = y + dy |
+ end |
+ end |
+end |
+ |
+-------------------------------------------------------------------------------------- |
+ |
+gTemplate = { |
+ title = { x = 10, y = 64, textSize = 64 }, |
+ child = { x = 40, y = 120, dy = 50, textSize = 40 }, |
+} |
+ |
+gPaints = {} |
+gPaints.title = make_paint(gTemplate.title.textSize, { a=1, r=0, g=0, b=0 } ) |
+gPaints.child = make_paint(gTemplate.child.textSize, { a=.75, r=0, g=0, b=0 } ) |
+ |
+gRedPaint = Sk.newPaint() |
+gRedPaint:setAntiAlias(true) |
+gRedPaint:setColor{a=1, r=1, g=0, b=0 } |
+ |
+gSlides = { |
+ { text = "Title1", style="title", color = { a=1, r=1, g=0, b=0 }, |
+ children = { |
+ { text = "bullet 1", style = "child" }, |
+ { text = "bullet 2", style = "child" }, |
+ { text = "bullet 3", style = "child" }, |
+ { draw = function (canvas) |
+ canvas:drawOval({left=300, top=300, right=400, bottom=400}, gRedPaint) |
+ end }, |
+ }, |
+ }, |
+ { text = "Title2", style="title", color = { a=1, r=0, g=1, b=0 }, |
+ children = { |
+ { text = "bullet uno", style = "child" }, |
+ { text = "bullet 2", style = "child" }, |
+ { text = "bullet tres", style = "child" }, |
+ } |
+ }, |
+ { text = "Title3", style="title", |
+ children = { |
+ { text = "bullet 1", style = "child", }, |
+ { text = "bullet 2", style = "child", color = { r=0, g=0, b=1 } }, |
+ { text = "bullet 3", style = "child" }, |
+ } |
+ } |
+} |
+ |
+gSlideIndex = 1 |
+ |
+-------------------------------------------------------------------------------------- |
+ |
+function onDrawContent(canvas) |
+ drawSlide(canvas, gSlides[gSlideIndex], gTemplate, gPaints) |
+ |
+ return false -- we're not animating |
+end |
+ |
+function onClickHandler(x, y) |
+ if x < 100 and y < 100 then |
+ onNextSlide() |
+ return true |
+ end |
+ return false |
+end |
+ |
+function onNextSlide() |
+ gSlideIndex = gSlideIndex + 1 |
+ if gSlideIndex > #gSlides then |
+ gSlideIndex = 1 |
+ end |
+end |
+ |