From 11dbedfaad4a9a9521ece2198a8dc491678b1902 Mon Sep 17 00:00:00 2001 From: shyouhei Date: Wed, 29 Aug 2007 04:06:12 +0000 Subject: add tag v1_8_6_5001 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_8_6_5001@13304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- .../ext/tk/sample/tkextlib/tktable/command.rb | 89 ++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 ruby_1_8_6/ext/tk/sample/tkextlib/tktable/command.rb (limited to 'ruby_1_8_6/ext/tk/sample/tkextlib/tktable/command.rb') diff --git a/ruby_1_8_6/ext/tk/sample/tkextlib/tktable/command.rb b/ruby_1_8_6/ext/tk/sample/tkextlib/tktable/command.rb new file mode 100644 index 0000000000..bf36159ccc --- /dev/null +++ b/ruby_1_8_6/ext/tk/sample/tkextlib/tktable/command.rb @@ -0,0 +1,89 @@ +#!/usr/bin/env ruby +## +## command.rb +## +## This demo shows the use of the table widget's -command options +## +## ( based on 'command.tcl' included source archive of tktable extension ) +## +require 'tk' +require 'tkextlib/tktable' + +# create the table +data = TkVariable.new_hash +rows = 10 +cols = 10 + +# fill table variable +((-(rows))..rows).each{|x| + ((-(cols))..cols).each{|y| + data[x,y] = "#{x} x #{y}" + } +} + +lbl = TkLabel.new(:text=>"TkTable :command Example") +cur_var = TkVariable.new +current = TkLabel.new(:textvariable=>cur_var, :width=>5) +ent_var = TkVariable.new +entry = TkEntry.new(:textvariable=>ent_var) + +table = Tk::TkTable.new(:rows=>rows, :cols=>cols, + :command=>[proc{|mode, cell, val| + if (mode == :w) + data[cell] = val + else + begin + data[cell] # exist + rescue + '' # not exist + end + end + }, '%i %C %s'], + :width=>6, :height=>6, + :titlerows=>1, :titlecols=>1, + :roworigin=>-1, :colorigin=>-1, + :rowstretchmode=>:last, :colstretchmode=>:last, + :rowtagcommand=>proc{|row| + row = Integer(row) + (row>0 && row%2 == 1)? 'OddRow': '' + }, + :coltagcommand=>proc{|col| + col = Integer(col) + (col>0 && col%2 == 1)? 'OddCol': '' + }, + :selectmode=>:extended, :flashmode=>true, + :rowstretch=>:unset, :colstretch=>:unset, + :browsecommand=>[proc{|w, s| + cur_var.value = s + ent_var.value = w.get(s) + }, '%W %S'], + :validate=>true, + :validatecommand=>proc{|e| + ent_var.value = e.new_value; true + }) +=begin + :validatecommand=>[ + proc{|s| + ent_var.value = s; true + }, '%S']) +=end + +sx = table.xscrollbar(TkScrollbar.new) +sy = table.yscrollbar(TkScrollbar.new) + +entry.bind('Return', proc{|w| table.curvalue = w.value}, '%W') + +Tk.grid(lbl, '-', '-', :sticky=>:ew) +Tk.grid(current, entry, '-', :sticky=>:ew) +Tk.grid(table, '-', sy, :sticky=>:news) +Tk.grid(sx, '-', :sticky=>:ew) + +Tk.root.grid_columnconfig(1, :weight=>1) +Tk.root.grid_rowconfig(2, :weight=>1) + +table.tag_configure('OddRow', :bg=>'orange', :fg=>'purple') +table.tag_configure('OddCol', :bg=>'brown', :fg=>'pink') + +puts "Table is #{table.path}" + +Tk.mainloop -- cgit v1.2.3