diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-25 15:13:14 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-25 15:13:14 +0000 |
commit | d0233291bc8a5068e52c69c210e5979e5324b5bc (patch) | |
tree | 7d9459449c33792c63eeb7baa071e76352e0baab /trunk/ext/tk/sample/irbtkw.rbw | |
parent | 0dc342de848a642ecce8db697b8fecd83a63e117 (diff) | |
parent | 72eaacaa15256ab95c3b52ea386f88586fb9da40 (diff) |
re-adding tag v1_9_0_4 as an alias of trunk@18848v1_9_0_4
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_9_0_4@18849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'trunk/ext/tk/sample/irbtkw.rbw')
-rw-r--r-- | trunk/ext/tk/sample/irbtkw.rbw | 156 |
1 files changed, 0 insertions, 156 deletions
diff --git a/trunk/ext/tk/sample/irbtkw.rbw b/trunk/ext/tk/sample/irbtkw.rbw deleted file mode 100644 index 04de3a2022..0000000000 --- a/trunk/ext/tk/sample/irbtkw.rbw +++ /dev/null @@ -1,156 +0,0 @@ -#!/usr/bin/env ruby -# -# irbtkw.rb : IRB console with Ruby/Tk -# -# by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp) -# -release = '2008/03/08' - -require 'tk' -begin - require 'tktextio' -rescue LoadError - require File.join(File.dirname(File.expand_path(__FILE__)), 'tktextio.rb') -end - -require 'irb' - -if TkCore::WITH_ENCODING -else - # $KCODE setup - case Tk.encoding - when 'shiftjis', 'cp932' - $KCODE='SJIS' - when 'euc-jp' - $KCODE='EUC' - when 'utf-8', 'unicode' - $KCODE='UTF8' - else - # unknown - end -end - -# console setup -top = TkToplevel.new(:title=>'IRB console') -top.protocol(:WM_DELETE_WINDOW){ Tk.exit } - -case (Tk.windowingsystem) -when 'win32' - fnt = ['MS Gothic', '-12'] -else - fnt = ['courier', '-12'] -end - -console = TkTextIO.new(top, :mode=>:console, - :width=>80).pack(:side=>:left, - :expand=>true, :fill=>:both) -console.yscrollbar(TkScrollbar.new(top, :width=>10).pack(:before=>console, - :side=>:right, - :expand=>false, - :fill=>:y)) - -# save original I/O -out = $stdout -err = $stderr - -irb_thread = nil -ev_loop = Thread.new{ - begin - Tk.mainloop - ensure - $stdout = out - $stderr = err - irb_thread.kill if irb_thread - end -} - -# window position control -root = Tk.root - -r_x = root.winfo_rootx -r_y = root.winfo_rooty -r_w = root.winfo_width - -t_x = top.winfo_rootx -t_y = top.winfo_rooty -t_w = top.winfo_width - -delta = 10 - -ratio = 0.8 -s_w = (ratio * root.winfo_screenwidth).to_i - -if r_x < t_x - r_x, t_x = t_x, r_x -end -if t_x + t_w + r_w + delta < s_w - r_x = t_x + t_w + delta -elsif t_w + r_w + delta < s_w - r_x = s_w - r_w - t_x = r_x - t_w -else - r_x = s_w - r_w - t_x = 0 -end - -root.geometry("+#{r_x}+#{r_y}") -top.geometry("+#{t_x}+#{t_y}") - -root.raise -console.focus - -# I/O setup -$stdin = console -$stdout = console -$stderr = console - -# dummy for rubyw.exe on Windows -def STDIN.tty? - true -end - -# IRB setup -IRB.init_config(nil) -IRB.conf[:USE_READLINE] = false -IRB.init_error -irb = IRB::Irb.new -IRB.conf[:MAIN_CONTEXT] = irb.context - -class IRB::StdioInputMethod - def gets - prompt = "\n" << @prompt - $stdin.instance_eval{ - flush - @prompt = prompt - _set_console_line - @prompt = nil - _see_pos - } - - @line[@line_no += 1] = $stdin.gets - end -end - -# IRB start -$stdout.print("*** IRB console on Ruby/Tk (#{release}) ") -irb_thread = Thread.new{ - catch(:IRB_EXIT){ - loop { - begin - irb.eval_input - rescue Exception - end - } - } -} - -console.bind('Control-c'){ - console.insert('end', "^C\n") - irb_thread.raise RubyLex::TerminateLineInput -} - -irb_thread.join - -# exit -ev_loop.kill -Tk.exit |