* ext/tk/lib/tkextlib/tile.rb, lib/tkextlib/tile/* : support Tile 0.7.6.

* ext/tk/lib/tkextlib/SUPPORT_STATUS: [ruby-talk:211939] check links
  of extensions.
* ext/tk/lib/tkextlib/blt/container.rb: define instance methods properly.
* ext/tk/lib/tkextlib/tile/tcombobox.rb: bug fix [ruby-talk:213003].
* ext/tk/lib/tkextlib/tile/tnotebook.rb: ditto.
* ext/tk/lib/tkextlib/tile/treeview.rb: ditto.
* ext/tk/lib/tkextlib/tile/sizegrip.rb: [new] add 'ttk::sizegrip' widget.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nagai 2006-10-04 09:52:54 +00:00
parent feafc46363
commit 438e33e3d2
10 changed files with 147 additions and 42 deletions

View File

@ -1,3 +1,8 @@
Wed Oct 4 18:47:25 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
* ext/tk/lib/tkextlib/*: bugfix and update
(see ext/tk/ChangeLog.tkextlib).
Wed Oct 4 17:25:14 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
* eval.c (rb_call): check protected visibility based on real self,

View File

@ -1,3 +1,22 @@
2006-10-04 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
* lib/tkextlib/tile.rb, lib/tkextlib/tile/* : support Tile 0.7.6.
2006-10-03 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
* lib/tkextlib/SUPPORT_STATUS: [ruby-talk:211939] check links
of extensions.
* lib/tkextlib/blt/container.rb: define instance methods properly.
* lib/tkextlib/tile/tcombobox.rb: bug fix [ruby-talk:213003].
* lib/tkextlib/tile/tnotebook.rb: ditto.
* lib/tkextlib/tile/treeview.rb: ditto.
* lib/tkextlib/tile/sizegrip.rb: [new] add 'ttk::sizegrip' widget.
2006-08-31 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
* lib/tkextlib/blt.rb: double dashes (--) option doesn't work

View File

@ -1,7 +1,7 @@
[ current support status of Tcl/Tk extensions ]
*******<<< RELEASE_DATE of the libraries : 2005/12/11 >>>*******
*******<<< RELEASE_DATE of the libraries : 2006/10/04 >>>*******
The following list shows *CURRENT* status when this file was modifyed
at last. If you want to add other Tcl/Tk extensions to the planed list
@ -56,23 +56,23 @@ script may give you some hints about that.
===< support with some examples (may be beta quality) >=======================
Tcllib 1.8
Tklib 0.4.1 http://sf.net/projects/tcllib ==> tcllib
Tklib 0.4.1 http://sourceforge.net/projects/tcllib ==> tcllib
IWidgets 4.0.2 http://sf.net/projects/incrTcl ==> iwidgets
IWidgets 4.0.2 http://sourceforge.net/projects/incrtcl ==> iwidgets
BWidgets 1.7 http://sf.net/projects/tcllib ==> bwidget
BWidgets 1.7 http://sourceforge.net/projects/tcllib ==> bwidget
TkTable 2.9 http://sf.net/projects/tktable ==> tktable
TkTable 2.9 http://sourceforge.net/projects/tktable ==> tktable
* see also <http://www.korus.hu/~fery/ruby/tktable.rb>
written by Ferenc Engard (ferenc@engard.hu)
vu 2.3.0 http://tktable.sourceforge.net ==> vu
vu 2.3.0 http://sourceforge.net/projects/tktable ==> vu
TkHTML 2.0 http://www.hwaci.com/sw/tkhtml/index.html ==> tkHTML
TkHTML 2.0 http://www.hwaci.com/sw/tkhtml/ ==> tkHTML
ICONS 1.0 http://www.satisoft.com/tcltk/icons/ ==> ICONS
TkImg 1.3 http://sf.net/projects/tkimg ==> tkimg
TkImg 1.3 http://sourceforge.net/projects/tkimg ==> tkimg
BLT 2.4z http://sourceforge.net/projects/blt
@ -81,20 +81,20 @@ BLT 2.4z http://sourceforge.net/projects/blt
==> blt
TkTreeCtrl CVS/Hd(2005-12-02)
http://tktreectrl.sourceforge.net/ ==> treectrl
http://sourceforge.net/projects/tktreectrl ==> treectrl
Tile CVS/Hd(2005-12-07)
http://tktable.sourceforge.net/tile/ ==> tile
Tile CVS/Hd(2006-10-01)
http://sourceforge.net/projects/tktable ==> tile
===< support (may be alpha or beta quality) >=================================
IncrTcl CVS/Hd(2005-02-14)
http://sf.net/projects/incrTcl ==> itcl, itk
http://sourceforge.net/projects/incrtcl ==> itcl, itk
TclX CVS/Hd(2005-02-07)
http://sf.net/projects/tclx
http://sourceforge.net/projects/tclx
==> tclx (partial support; infox command and
XPG/3 message catalogs only)
@ -105,7 +105,7 @@ Trofs 0.4.3 http://math.nist.gov/~DPorter/tcltk/trofs/
===< possibly available (not tested; alpha quality) >=========================
winico 0.6
http://tktable.sourceforge.net
http://sourceforge.net/projects/tktable
==> winico (win32 only)
TkTrans latest(2004-10-11)
@ -160,17 +160,17 @@ QuickTimeTcl *** http://hem.fyristorg.com/matben/qt/
===< may not support (already exist, out of Ruby/Tk scope, and so on) >=======
TkCon *** http://sf.net/projects/tkcon
TkCon *** http://sourceforge.net/projects/tkcon
Expect *** http://sf.net/projects/expect
Expect *** http://sourceforge.net/projects/expect
TclXML *** http://sf.net/projects/tclxml
TclXML *** http://sourceforge.net/projects/tclxml
TclXSLT *** http://sf.net/projects/tclxml
TclXSLT *** http://sourceforge.net/projects/tclxml
TclDOM *** http://sf.net/projects/tclxml
TclDOM *** http://sourceforge.net/projects/tclxml
TclSOAP *** http://sf.net/projects/tclsoap
TclSOAP *** http://sourceforge.net/projects/tclsoap
Snack *** http://www.speech.kth.se/~kare/snack2.2.tar.gz
* use Snack for Ruby
@ -182,7 +182,7 @@ tDOM *** http://www.tdom.org
Mk4tcl *** http://www.equi4.com/metakit/tcl.html
Memchan *** http://memchan.sourceforge.net/
Memchan *** http://sourceforge.net/projects/memchan
XOTcl *** http://www.xotcl.org/

View File

@ -11,18 +11,18 @@ module Tk::BLT
TkCommandNames = ['::blt::container'.freeze].freeze
WidgetClassName = 'Container'.freeze
WidgetClassNames[WidgetClassName] = self
end
def __strval_optkeys
super() << 'name'
end
private :__strval_optkeys
def __strval_optkeys
super() << 'name'
end
private :__strval_optkeys
def find_command(pat)
list(tk_send_without_enc(tk_call(self.path, 'find', '-command', pat)))
end
def find_command(pat)
Hash[*simplelist(tk_send_without_enc('find', '-command', pat))]
end
def find_name(pat)
list(tk_send_without_enc(tk_call(self.path, 'find', '-name', pat)))
def find_name(pat)
Hash[*simplelist(tk_send_without_enc('find', '-name', pat))]
end
end
end

View File

@ -158,6 +158,11 @@ module Tk
list(tk_send('state'))
end
end
def identify(x, y)
ret = tk_send_without_enc('identify', x, y)
(ret.empty?)? nil: ret
end
end
######################################

View File

@ -0,0 +1,25 @@
#
# ttk::sizegrip widget
# by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
#
require 'tk'
require 'tkextlib/tile.rb'
module Tk
module Tile
class SizeGrip < TkWindow
end
end
end
class Tk::Tile::SizeGrip < TkWindow
include Tk::Tile::TileWidget
TkCommandNames = ['::ttk::sizegrip'.freeze].freeze
WidgetClassName = 'TSizegrip'.freeze
WidgetClassNames[WidgetClassName] = self
def self.style(*args)
[self::WidgetClassName, *(args.map!{|a| _get_eval_string(a)})].join('.')
end
end

View File

@ -52,6 +52,10 @@ class << Tk::Tile::Style
end
end
def lookup(style, opt, state=None, fallback_value=None)
tk_call('style', 'lookup', style, '-' << opt.to_s, state, fallback_value)
end
include Tk::Tile::ParseStyleLayout
def layout(style=nil, spec=nil)

View File

@ -39,16 +39,12 @@ class Tk::Tile::TCombobox < Tk::Tile::TEntry
end
def current
number(tk_send_without_enc('current', idx))
number(tk_send_without_enc('current'))
end
def current=(idx)
tk_send_without_enc('current', idx)
end
def identify(x, y)
tk_send_without_enc('identify', x, y)
end
def set(val)
tk_send('set', val)
end

View File

@ -27,15 +27,15 @@ class Tk::Tile::TNotebook < TkWindow
end
private :__item_config_cmd
def __item_listval_optkeys
def __item_listval_optkeys(id)
[]
end
private :__item_listval_optkeys
def __item_methodcall_optkeys # { key=>method, ... }
def __item_methodcall_optkeys(id) # { key=>method, ... }
{}
end
private :__item_listval_optkeys
private :__item_methodcall_optkeys
#alias tabcget itemcget
alias tabconfigure itemconfigure
@ -104,6 +104,10 @@ class Tk::Tile::TNotebook < TkWindow
self
end
def selected
window(tk_send_without_enc('select'))
end
def tabs
list(tk_send('tabs'))
end

View File

@ -158,6 +158,10 @@ class Tk::Tile::Treeview < TkWindow
end
end
def bbox(item, column=None)
list(tk_send('item', 'bbox', item, column))
end
def children(item)
simplelist(tk_send_without_enc('children', item))
end
@ -186,6 +190,7 @@ class Tk::Tile::Treeview < TkWindow
end
def identify(x, y)
# tile-0.7.2 or previous
ret = simplelist(tk_send('identify', x, y))
case ret[0]
when 'heading', 'separator', 'cell'
@ -193,6 +198,14 @@ class Tk::Tile::Treeview < TkWindow
end
end
def row_identify(x, y)
tk_send('identify', 'row', x, y)
end
def column_identify(x, y)
tk_send('identify', 'column', x, y)
end
def index(item)
number(tk_send('index', item))
end
@ -201,11 +214,10 @@ class Tk::Tile::Treeview < TkWindow
keys = _symbolkey2str(keys)
id = keys.delete('id')
if id
tk_send('insert', parent, idx, '-id', id, *hash_kv(keys))
num_or_str(tk_send('insert', parent, idx, '-id', id, *hash_kv(keys)))
else
tk_send('insert', parent, idx, *hash_kv(keys))
num_or_str(tk_send('insert', parent, idx, *hash_kv(keys)))
end
self
end
def instate(spec, cmd=Proc.new)
@ -270,6 +282,8 @@ class Tk::Tile::Treeview < TkWindow
end
ret
end
alias get_dictionary get_directory
def get(item, col)
tk_send('set', item, col)
end
@ -277,4 +291,37 @@ class Tk::Tile::Treeview < TkWindow
tk_send('set', item, col, value)
self
end
def tag_bind(tag, seq, *args)
if TkComm._callback_entry?(args[0]) || !block_given?
cmd = args.shift
else
cmd = Proc.new
end
_bind([@path, 'tag', 'bind', tag], seq, cmd, *args)
self
end
alias tagbind tag_bind
def tag_bind_append(tag, seq, *args)
if TkComm._callback_entry?(args[0]) || !block_given?
cmd = args.shift
else
cmd = Proc.new
end
_bind_append([@path, 'tag', 'bind', tag], seq, cmd, *args)
self
end
alias tagbind_append tag_bind_append
def tag_bind_remove(tag, seq)
_bind_remove([@path, 'tag', 'bind', tag], seq)
self
end
alias tagbind_remove tag_bind_remove
def tag_bindinfo(tag, context=nil)
_bindinfo([@path, 'tag', 'bind', tag], context)
end
alias tagbindinfo tag_bindinfo
end