From a18bbeebdf5ff13cf03f4bc08757fa2d63e093a4 Mon Sep 17 00:00:00 2001 From: Torsten Ruger Date: Thu, 29 Oct 2015 18:36:42 +0200 Subject: [PATCH] add run button , while pressed runs the program --- assets/css/app.css.scss | 6 ++++++ lib/views/status_view.rb | 26 ++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/assets/css/app.css.scss b/assets/css/app.css.scss index 7be5fa9..328098d 100644 --- a/assets/css/app.css.scss +++ b/assets/css/app.css.scss @@ -62,6 +62,12 @@ $susy: ( -webkit-border-radius: 7px; font-size: 100%; } +.run{ + background-color: #00FF37; + -moz-border-radius: 7px; + -webkit-border-radius: 7px; + font-size: 100%; +} .bright { padding-right: 6px; diff --git a/lib/views/status_view.rb b/lib/views/status_view.rb index 4219b66..65a2eec 100644 --- a/lib/views/status_view.rb +++ b/lib/views/status_view.rb @@ -1,13 +1,17 @@ +require "browser/delay" + class StatusView < ElementView def initialize interpreter @interpreter = interpreter + @running = false end def draw @element = div(".status_view") << div("h4" , "Interpreter" ) << div("button.act" , "Next") << + div("button.run" , "Run") << div( "br") << div("span.clock" , clock_text) << div( "br") << @@ -18,9 +22,31 @@ class StatusView < ElementView div("span.stdout") # set up event handler @element.at_css(".act").on("click") { self.update } + @element.at_css(".run").on("mousedown") { self.start } + @element.at_css(".run").on("mouseup") { self.stop } return @element end + + def start + @running = true + run + end + def stop + @running = false + end + def run + return unless @running + begin + proc = Proc.new do + self.update + self.run + end + proc.after( 0.1 ) + rescue => e + puts e + end + end def update begin @interpreter.tick