diff options
author | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-11-13 10:18:31 +0000 |
---|---|---|
committer | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-11-13 10:18:31 +0000 |
commit | 00c9f4cb9ba306d6aac1635e0b7d099e80633ab1 (patch) | |
tree | 229de7982b44e35ffed8d206304639db1221ae59 /lib/test | |
parent | bf67d8df27c87b666a5973a098e4d6f70e561f32 (diff) |
* lib/test/unit/ui/tk/testrunner.rb: use grid and panedwindow (if available)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4951 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/test')
-rw-r--r-- | lib/test/unit/ui/tk/testrunner.rb | 58 |
1 files changed, 46 insertions, 12 deletions
diff --git a/lib/test/unit/ui/tk/testrunner.rb b/lib/test/unit/ui/tk/testrunner.rb index b37b79fd80..b754bad0a2 100644 --- a/lib/test/unit/ui/tk/testrunner.rb +++ b/lib/test/unit/ui/tk/testrunner.rb @@ -90,6 +90,9 @@ module Test end def stop # :nodoc: + if @run_suite_thread and @run_suite_thread.alive? + @run_suite_thread.kill + end ::Tk.exit end @@ -178,25 +181,56 @@ module Test @failure_count_label = create_count_label(info_frame, 'Failures:') @error_count_label = create_count_label(info_frame, 'Errors:') - fault_list_frame = TkFrame.new.pack('fill'=>'both', 'expand'=>true) + if (::Tk.info('command', TkPanedWindow::TkCommandNames[0]) != "") + # use panedwindow + paned_frame = TkPanedWindow.new("orient"=>"vertical").pack('fill'=>'both', 'expand'=>true) - fault_scrollbar = TkScrollbar.new(fault_list_frame) - fault_scrollbar.pack('side'=>'right', 'fill'=>'y') + fault_list_frame = TkFrame.new(paned_frame) + detail_frame = TkFrame.new(paned_frame) + + paned_frame.add(fault_list_frame, detail_frame) + else + # no panedwindow + paned_frame = nil + fault_list_frame = TkFrame.new.pack('fill'=>'both', 'expand'=>true) + detail_frame = TkFrame.new.pack('fill'=>'both', 'expand'=>true) + end + + TkGrid.rowconfigure(fault_list_frame, 0, 'weight'=>1, 'minsize'=>0) + TkGrid.columnconfigure(fault_list_frame, 0, 'weight'=>1, 'minsize'=>0) + + fault_scrollbar_y = TkScrollbar.new(fault_list_frame) + fault_scrollbar_x = TkScrollbar.new(fault_list_frame) @fault_list = TkListbox.new(fault_list_frame) - @fault_list.pack('fill'=>'both', 'expand'=>true) - @fault_list.yscrollbar(fault_scrollbar) + @fault_list.yscrollbar(fault_scrollbar_y) + @fault_list.xscrollbar(fault_scrollbar_x) + + TkGrid.rowconfigure(detail_frame, 0, 'weight'=>1, 'minsize'=>0) + TkGrid.columnconfigure(detail_frame, 0, 'weight'=>1, 'minsize'=>0) + + ::Tk.grid(@fault_list, fault_scrollbar_y, 'sticky'=>'news') + ::Tk.grid(fault_scrollbar_x, 'sticky'=>'news') - detail_frame = TkFrame.new.pack('fill'=>'both', 'expand'=>true) detail_scrollbar_y = TkScrollbar.new(detail_frame) - detail_scrollbar_y.pack('side'=>'right', 'fill'=>'y') detail_scrollbar_x = TkScrollbar.new(detail_frame) - detail_scrollbar_x.pack('side'=>'bottom', 'fill'=>'x') @detail_text = TkText.new(detail_frame, 'height'=>10, 'wrap'=>'none') { bindtags(bindtags - [TkText]) - } - @detail_text.pack('fill'=>'both', 'expand'=>true) - @detail_text.yscrollbar(detail_scrollbar_y) - @detail_text.xscrollbar(detail_scrollbar_x) + } + @detail_text.yscrollbar(detail_scrollbar_y) + @detail_text.xscrollbar(detail_scrollbar_x) + + ::Tk.grid(@detail_text, detail_scrollbar_y, 'sticky'=>'news') + ::Tk.grid(detail_scrollbar_x, 'sticky'=>'news') + + # rubber-style pane + if paned_frame + ::Tk.update + @height = paned_frame.winfo_height + paned_frame.bind('Configure', proc{|h| + paned_frame.sash_place(0, 0, paned_frame.sash_coord(0)[1] * h / @height) + @height = h + }, '%h') + end end def create_count_label(parent, label) # :nodoc: |