Method: Minder::Scene#resize_frames

Defined in:
lib/minder/cli/scene.rb

#resize_framesObject



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/minder/cli/scene.rb', line 50

def resize_frames
  frames.map(&:resize)
  first_frame = frames.first

  first_frame.move(0, 0)
  next_height = first_frame.height

  other_frames = (frames.reject(&:hidden?) - [main_frame]).compact
  if main_frame

    other_height = other_frames.reduce(0) do |num, frame|
      num += frame.height
      num
    end

    available_height = Curses.lines - other_height

    if available_height > main_frame.desired_height
      main_frame.height = main_frame.desired_height
    else
      main_frame.height = available_height
    end
    main_frame.move(next_height, 0)

    next_height += main_frame.height
  end

  (other_frames - [first_frame]).each do |frame|
    frame.move(next_height, 0)
    next_height += frame.height
  end
end