| Index: resources/slides.lua
|
| diff --git a/resources/slides.lua b/resources/slides.lua
|
| index f706a296590606450a92ba55c6e31a805e462d10..cf1a1a6229fedf3180a9aee368751ac22b307f2e 100644
|
| --- a/resources/slides.lua
|
| +++ b/resources/slides.lua
|
| @@ -27,6 +27,32 @@ function make_paint(typefacename, stylebits, size, color)
|
| return paint
|
| end
|
|
|
| +function center_rect(sw, sh, dst)
|
| + local dw = dst.right - dst.left
|
| + local dh = dst.bottom - dst.top
|
| +
|
| + local rw, rh
|
| +
|
| + if sw / sh > dw / dh then
|
| + rw = dw
|
| + rh = sh * dw / sw
|
| + else
|
| + rh = dh
|
| + rw = sw * dh / sh
|
| + end
|
| +
|
| + local x = dst.left + ((sw - rw) / 2)
|
| + local y = dst.top + ((sh - rh) / 2)
|
| + return make_rect(x, y, x + rw, y + rh)
|
| +end
|
| +
|
| +function draw_image_centered(canvas, image)
|
| + local sw = image:width()
|
| + local sh = image:height()
|
| + local dstR = center_rect(image:width(), image:height(), make_rect(20, 20, 620, 460))
|
| + canvas:drawImageRect(image, nil, dstR)
|
| +end
|
| +
|
| function draw_bullet(canvas, x, y, paint, indent)
|
| if 0 == indent then
|
| return
|
| @@ -46,7 +72,14 @@ function stroke_rect(canvas, rect, color)
|
| end
|
|
|
| function drawSlide(canvas, slide, master_template)
|
| - template = master_template.slide -- need to sniff the slide to know if we're title or slide
|
| +
|
| + if #slide == 1 then
|
| + template = master_template.title
|
| + canvas:drawText(slide[1].text, 320, 240, template[1])
|
| + return
|
| + end
|
| +
|
| + template = master_template.slide
|
|
|
| local x = template.margin_x
|
| local y = template.margin_y
|
| @@ -173,23 +206,19 @@ end
|
| function next_slide()
|
| local prev = gSlides[gSlideIndex]
|
|
|
| - gSlideIndex = gSlideIndex + 1
|
| - if gSlideIndex > #gSlides then
|
| - gSlideIndex = 1
|
| + if gSlideIndex < #gSlides then
|
| + gSlideIndex = gSlideIndex + 1
|
| + spawn_transition(prev, gSlides[gSlideIndex], true)
|
| end
|
| -
|
| - spawn_transition(prev, gSlides[gSlideIndex], true)
|
| end
|
|
|
| function prev_slide()
|
| local prev = gSlides[gSlideIndex]
|
|
|
| - gSlideIndex = gSlideIndex - 1
|
| - if gSlideIndex < 1 then
|
| - gSlideIndex = #gSlides
|
| + if gSlideIndex > 1 then
|
| + gSlideIndex = gSlideIndex - 1
|
| + spawn_transition(prev, gSlides[gSlideIndex], false)
|
| end
|
| -
|
| - spawn_transition(prev, gSlides[gSlideIndex], false)
|
| end
|
|
|
| function convert_to_picture_drawable(slide)
|
| @@ -204,7 +233,6 @@ function convert_to_image_drawable(slide)
|
| return new_drawable_image(surf:newImageSnapshot())
|
| end
|
|
|
| --- gMakeDrawable = convert_to_picture_drawable
|
| gMakeDrawable = new_drawable_slide
|
|
|
| load_file("slides_transitions")
|
| @@ -285,6 +313,7 @@ function draw_bg(canvas)
|
| local grad = Sk.newLinearGradient( 0, 0, { a=1, r=0, g=0, b=.3 },
|
| 640, 480, { a=1, r=0, g=0, b=.8 })
|
| bgPaint:setShader(grad)
|
| + bgPaint:setDither(true)
|
| end
|
|
|
| canvas:drawPaint(bgPaint)
|
|
|