Class: Presentation::Slide

Inherits:
Object
  • Object
show all
Defined in:
lib/presentation/slide.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#codeObject

TODO: create different/customizable slide layouts



6
7
8
# File 'lib/presentation/slide.rb', line 6

def code
  @code
end

#code_offset_topObject

TODO: create different/customizable slide layouts



6
7
8
# File 'lib/presentation/slide.rb', line 6

def code_offset_top
  @code_offset_top
end

#listObject

TODO: create different/customizable slide layouts



6
7
8
# File 'lib/presentation/slide.rb', line 6

def list
  @list
end

#subtitleObject

TODO: create different/customizable slide layouts



6
7
8
# File 'lib/presentation/slide.rb', line 6

def subtitle
  @subtitle
end

#titleObject

TODO: create different/customizable slide layouts



6
7
8
# File 'lib/presentation/slide.rb', line 6

def title
  @title
end

Instance Method Details

#code_textObject



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 - slide_padding
  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_screenObject



70
71
72
73
74
75
76
# File 'lib/presentation/slide.rb', line 70

def draw_normal_screen
  left = slide_padding
  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_screenObject



63
64
65
66
67
68
# File 'lib/presentation/slide.rb', line 63

def draw_title_screen
  left = slide_padding
  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_stringObject



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_textObject



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_downObject



49
50
51
52
# File 'lib/presentation/slide.rb', line 49

def scroll_down
  @code_offset_top ||= 0
  @code_offset_top += 5
end

#scroll_upObject



44
45
46
47
# File 'lib/presentation/slide.rb', line 44

def scroll_up
  @code_offset_top ||= 0
  @code_offset_top -= 5
end

#slide_paddingObject



12
13
14
# File 'lib/presentation/slide.rb', line 12

def slide_padding
  (@window.width / 100) * 5
end

#subtitle_textObject



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_textObject



21
22
23
# File 'lib/presentation/slide.rb', line 21

def title_text
  @title_text ||= create_text @title, font_size: 80, align: :center
end