Sha256: 22a6c50717eb9cec7b267e275712ba67ab17f0351a1c12eed999d761a3af52f5

Contents?: true

Size: 1.65 KB

Versions: 4

Compression:

Stored size: 1.65 KB

Contents

PROG_PATH = File.join(File.dirname(__FILE__), "SimulatorGui.gtk")

PROG_NAME = "Vending Machine"
module Gui
  class SimulatorGui < SimulatorguiGtk
    def initialize(simulator)
      super(PROG_PATH, PROG_NAME)
      @simulator = simulator
      
      simulator.monitor_changes(:bin) do
        glade['bin_box'].buffer.text = @simulator.component(:bin).contents.join("\n")
      end
      simulator.monitor_changes(:display) do
        glade['display_line_1'].buffer.text = @simulator.component(:display).line_one
        glade['display_line_2'].buffer.text = @simulator.component(:display).line_two
      end
    end
    
    def on_fetch_button_clicked(widget)
      @simulator.component(:bin).fetch_all
    end

    def on_cola_button_clicked(widget)
      @simulator.component(:button_0).press
    end
    
    def on_fanta_button_clicked(widget)
      @simulator.component(:button_1).press
    end
    
    def on_sprite_button_clicked(widget)
      @simulator.component(:button_2).press
    end
    
    def on_sisi_button_clicked(widget)
      @simulator.component(:button_3).press
    end
    
    def on_two_euro_button_clicked(widget)
      @simulator.component(:cash_register).insert_coin(Hardware::Coin.two_euro)
    end
    
    def on_one_euro_button_clicked(widget)
      @simulator.component(:cash_register).insert_coin(Hardware::Coin.one_euro)
    end
    
    def on_fifty_cents_button_clicked(widget)
      @simulator.component(:cash_register).insert_coin(Hardware::Coin.fifty_cents)
    end
    
    def on_exit_button_clicked(widget)
      @stopped = true
    end

    def stopped?
      @stopped
    end

    def show
       glade['window1'].show_all
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
vmsim-1.0.1 lib/gui/simulator_gui.rb
vmsim-1.0.0 lib/gui/simulator_gui.rb
vmsim-0.2.4 lib/gui/simulator_gui.rb
vmsim-0.2.3 lib/gui/simulator_gui.rb