class GlimmerTetris::View::AppView

Attributes

game[R]

Public Instance Methods

show_about_dialog() click to toggle source
# File app/glimmer_tetris/view/app_view.rb, line 140
def show_about_dialog
  message_box {
    text 'Glimmer Tetris'
    message "Glimmer Tetris\n\nGlimmer DSL for SWT Sample\n\nCopyright (c) 2021 Andy Maleh"
  }.open
end
show_high_score_dialog() click to toggle source
# File app/glimmer_tetris/view/app_view.rb, line 134
def show_high_score_dialog
  return if @high_score_dialog&.visible?
  @high_score_dialog = high_score_dialog(parent_shell: body_root, game: @game) if @high_score_dialog.nil? || @high_score_dialog.disposed?
  @high_score_dialog.show
end
start_moving_tetrominos_down() click to toggle source
# File app/glimmer_tetris/view/app_view.rb, line 118
def start_moving_tetrominos_down
  Thread.new do
    @mutex.synchronize do
      loop do
        time = Time.now
        sleep @game.delay
        break if @game.game_over? || body_root.disposed?
        # ensure entire game tetromino down movement happens as one GUI update event with sync_exec (to avoid flicker/stutter)
        sync_exec {
          @game.down! unless @game.paused?
        }
      end
    end
  end
end