Class: Presentation::Slide
- Inherits:
-
Object
- Object
- Presentation::Slide
- Defined in:
- lib/presentation/slide.rb
Instance Attribute Summary collapse
-
#code ⇒ Object
TODO: create different/customizable slide layouts.
-
#code_offset_top ⇒ Object
TODO: create different/customizable slide layouts.
-
#list ⇒ Object
TODO: create different/customizable slide layouts.
-
#subtitle ⇒ Object
TODO: create different/customizable slide layouts.
-
#title ⇒ Object
TODO: create different/customizable slide layouts.
Instance Method Summary collapse
- #code_text ⇒ Object
- #create_text(text, font_family: 'Arial', font_size: 80, line_spacing: 10, max_width: nil, align: :center) ⇒ Object
- #draw(window) ⇒ Object
- #draw_normal_screen ⇒ Object
- #draw_title_screen ⇒ Object
- #list_as_string ⇒ Object
- #list_text ⇒ Object
- #scroll_down ⇒ Object
- #scroll_up ⇒ Object
- #slide_padding ⇒ Object
- #subtitle_text ⇒ Object
- #title_text ⇒ Object
Instance Attribute Details
#code ⇒ Object
TODO: create different/customizable slide layouts
6 7 8 |
# File 'lib/presentation/slide.rb', line 6 def code @code end |
#code_offset_top ⇒ Object
TODO: create different/customizable slide layouts
6 7 8 |
# File 'lib/presentation/slide.rb', line 6 def code_offset_top @code_offset_top end |
#list ⇒ Object
TODO: create different/customizable slide layouts
6 7 8 |
# File 'lib/presentation/slide.rb', line 6 def list @list end |
#subtitle ⇒ Object
TODO: create different/customizable slide layouts
6 7 8 |
# File 'lib/presentation/slide.rb', line 6 def subtitle @subtitle end |
#title ⇒ Object
TODO: create different/customizable slide layouts
6 7 8 |
# File 'lib/presentation/slide.rb', line 6 def title @title end |
Instance Method Details
#code_text ⇒ Object
29 30 31 |
# File 'lib/presentation/slide.rb', line 29 def code_text @code_text ||= create_text @code, font_family: 'Courier', font_size: 50, align: :left end |
#create_text(text, font_family: 'Arial', font_size: 80, line_spacing: 10, max_width: nil, align: :center) ⇒ Object
16 17 18 19 |
# File 'lib/presentation/slide.rb', line 16 def create_text(text, font_family: 'Arial', font_size: 80, line_spacing: 10, max_width: nil, align: :center) max_width ||= @window.width - Gosu::Image.from_text(@window, text, font_family, font_size, line_spacing, max_width, align) end |
#draw(window) ⇒ Object
54 55 56 57 58 59 60 61 |
# File 'lib/presentation/slide.rb', line 54 def draw(window) @window = window if code or list draw_normal_screen else draw_title_screen end end |
#draw_normal_screen ⇒ Object
70 71 72 73 74 75 76 |
# File 'lib/presentation/slide.rb', line 70 def draw_normal_screen left = top = (@window.height / 100) * 5 title_text.draw(left, top, 0, 1, 1, 0xffffffff) code_text.draw(left, top + title_text.height + code_offset_top, 0, 1, 1, 0xffffffff) list_text.draw(left, top + title_text.height, 0, 1, 1, 0xffffffff) end |
#draw_title_screen ⇒ Object
63 64 65 66 67 68 |
# File 'lib/presentation/slide.rb', line 63 def draw_title_screen left = top = (@window.height / 100) * 30 title_text.draw(left, top, 0, 1, 1, 0xffffffff) subtitle_text.draw(left, top + title_text.height, 0, 1, 1, 0xffffffff) end |
#list_as_string ⇒ Object
33 34 35 36 37 38 |
# File 'lib/presentation/slide.rb', line 33 def list_as_string return '' unless @list @list.map do |line| line = '• ' + line end.join("\n") end |
#list_text ⇒ Object
40 41 42 |
# File 'lib/presentation/slide.rb', line 40 def list_text @list_text ||= create_text list_as_string, font_size: 50, align: :left end |
#scroll_down ⇒ Object
49 50 51 52 |
# File 'lib/presentation/slide.rb', line 49 def scroll_down @code_offset_top ||= 0 @code_offset_top += 5 end |
#scroll_up ⇒ Object
44 45 46 47 |
# File 'lib/presentation/slide.rb', line 44 def scroll_up @code_offset_top ||= 0 @code_offset_top -= 5 end |
#slide_padding ⇒ Object
12 13 14 |
# File 'lib/presentation/slide.rb', line 12 def (@window.width / 100) * 5 end |
#subtitle_text ⇒ Object
25 26 27 |
# File 'lib/presentation/slide.rb', line 25 def subtitle_text @subtitle_text ||= create_text @subtitle, font_size: 50, align: :center end |
#title_text ⇒ Object
21 22 23 |
# File 'lib/presentation/slide.rb', line 21 def title_text @title_text ||= create_text @title, font_size: 80, align: :center end |