require 'MythFrontend.rb'

class MythRemote
  def initialize
    @number = 0
    @previous = nil
    @op = nil
  end

  def to_s
    @number.to_s
  end
  
  (0..9).each do |n|
    define_method "press_#{n}" do
      @number = @number.to_i * 10 + n
    end
  end

  def press_clear
    @number = 0
  end

  {'add' => '+', 'sub' => '-', 'times' => '*', 'div' => '/'}.each do |meth, op|
    define_method "press_#{meth}" do
      if @op
        press_equals
      end
      @op = op
      @previous, @number = @number, nil
    end
  end

  def press_equals
    @number = @previous.send(@op, @number.to_i)
    @op = nil
  end

end
	
number_field = nil
number = MythRemote.new

#Commenting out as it will crash for anyone who needs it.
#frontend= MythFrontend.new("192.168.2.10")

Shoes.app :height => 250, :width => 400, :resizable => false do
  background "#EEC".."#996", :radius => 5,
    :top => 2, :left => 2, :width => -4, :height => -4

	stack :margin => 4 do
		flow :width=> 160, :margin => 4 do
			button "Esc", :width => 46, height=>46 do 
				frontend.key("escape")
			end
			button "^", :width => 46, height=>46 do 
				frontend.key("up")
			end
			button "Del", :width => 46, height=>46 do 
				frontend.key("d")
			end
		end
		
		flow :width=> 160, :margin => 4 do
			button "<-", :width => 46, height=>46 do 
				frontend.key("left")
			end
			button "Ent", :width => 46, height=>46 do 
				frontend.key("enter")
			end
			button "->", :width => 46, height=>46 do 
				frontend.key("right")
			end
		end
		
		flow :width=> 160, :margin => 4 do
			button "p", :width => 46, height=>46 do 
				frontend.key("p")
			end
			button "v", :width => 46, height=>46 do 
				frontend.key("down")
			end
			button "Guide", :width => 46, height=>46 do 
				frontend.jump("guidegrid")
			end
		end
	end
end
