summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-01-07 05:28:53 +0000
committernagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-01-07 05:28:53 +0000
commit23a6ab1248f27a30c53e7395f8120a37a584e819 (patch)
tree6d388a246fc28bbdd4cb1692515b2cd7df4d4f98
parent9e27f947d6f7b33ebcfd7f7406d0d5be8ff1fc84 (diff)
downloadruby-23a6ab1248f27a30c53e7395f8120a37a584e819.tar.gz
ruby-23a6ab1248f27a30c53e7395f8120a37a584e819.tar.xz
ruby-23a6ab1248f27a30c53e7395f8120a37a584e819.zip
* ext/tk/lib/tk.rb: use epath for embedded windows of TkPanedWindow.
* ext/tk/lib/tktext.rb: use epath for embedded windows. * ext/tk/lib/tkcanvas.rb: use epath for window items. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@5398 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog8
-rw-r--r--ext/tk/lib/tk.rb17
-rw-r--r--ext/tk/lib/tkcanvas.rb7
-rw-r--r--ext/tk/lib/tktext.rb68
4 files changed, 86 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index 26ce20e92..cac483ce8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Wed Jan 7 14:26:05 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+
+ * ext/tk/lib/tk.rb (TkPanedWindow): use epath for embedded windows.
+
+ * ext/tk/lib/tktext.rb: use epath for embedded windows.
+
+ * ext/tk/lib/tkcanvas.rb: use epath for window items.
+
Wed Jan 7 14:24:04 2004 NAKAMURA, Hiroshi <nakahiro@sarion.co.jp>
* lib/soap/{attachment.rb,mimemessage.rb}: added from soap4r/1.5.2.
diff --git a/ext/tk/lib/tk.rb b/ext/tk/lib/tk.rb
index 7de4cd5f2..6bae4d8f4 100644
--- a/ext/tk/lib/tk.rb
+++ b/ext/tk/lib/tk.rb
@@ -4830,16 +4830,18 @@ class TkPanedWindow<TkWindow
fail ArgumentError, "no window in arguments" unless keys
if keys && keys.kind_of?(Hash)
fail ArgumentError, "no window in arguments" if args == []
- args += hash_kv(keys)
+ args = args.collect{|w| w.epath}
+ args.push(hash_kv(keys))
else
args.push(keys) if keys
+ args = args.collect{|w| w.epath}
end
tk_send('add', *args)
self
end
def forget(win, *wins)
- tk_send('forget', win, *wins)
+ tk_send('forget', win.epath, *(wins.collect{|w| w.epath}))
self
end
alias del forget
@@ -4879,14 +4881,14 @@ class TkPanedWindow<TkWindow
end
def panecget(win, key)
- tk_tcl2ruby(tk_send('panecget', win, "-#{key}"))
+ tk_tcl2ruby(tk_send('panecget', win.epath, "-#{key}"))
end
def paneconfigure(win, key, value=nil)
if key.kind_of? Hash
- tk_send('paneconfigure', win, *hash_kv(key))
+ tk_send('paneconfigure', win.epath, *hash_kv(key))
else
- tk_send('paneconfigure', win, "-#{key}", value)
+ tk_send('paneconfigure', win.epath, "-#{key}", value)
end
self
end
@@ -4894,11 +4896,12 @@ class TkPanedWindow<TkWindow
def paneconfiginfo(win, key=nil)
if key
- conf = tk_split_list(tk_send('paneconfigure', win, "-#{key}"))
+ conf = tk_split_list(tk_send('paneconfigure', win.epath, "-#{key}"))
conf[0] = conf[0][1..-1]
conf
else
- tk_split_simplelist(tk_send('paneconfigure', win)).collect{|conflist|
+ tk_split_simplelist(tk_send('paneconfigure',
+ win.epath)).collect{|conflist|
conf = tk_split_simplelist(conflist)
conf[0] = conf[0][1..-1]
if conf[3]
diff --git a/ext/tk/lib/tkcanvas.rb b/ext/tk/lib/tkcanvas.rb
index 32b5ac7af..ccb02c056 100644
--- a/ext/tk/lib/tkcanvas.rb
+++ b/ext/tk/lib/tkcanvas.rb
@@ -862,6 +862,13 @@ end
class TkcWindow<TkcItem
CItemTypeToClass['window'] = self
def create_self(*args)
+ keys = args.pop
+ if keys && keys.kind_of?(Hash)
+ keys = _symbolkey2str(keys)
+ win = keys['window']
+ keys['window'] = win.epath if win.kind_of?(TkWindow)
+ end
+ args.push(keys) if keys
tk_call(@path, 'create', 'window', *args)
end
private :create_self
diff --git a/ext/tk/lib/tktext.rb b/ext/tk/lib/tktext.rb
index 44dc6cc3b..2d37fb8c0 100644
--- a/ext/tk/lib/tktext.rb
+++ b/ext/tk/lib/tktext.rb
@@ -499,8 +499,41 @@ class TkText<TkTextWin
index.configure(slot, value)
else
if slot.kind_of? Hash
+ slot = _symbolkey2str(slot)
+ win = slot['window']
+ slot['window'] = win.epath if win.kind_of?(TkWindow)
+ if slot['create']
+ p_create = slot['create']
+ if p_create.kind_of? Proc
+ slot['create'] = install_cmd(proc{
+ id = p_create.call
+ if id.kind_of?(TkWindow)
+ id.epath
+ else
+ id
+ end
+ })
+ end
+ end
tk_send('window', 'configure', index, *hash_kv(slot))
else
+ if slot == 'window' || slot == :window
+ id = value
+ value = id.epath if id.kind_of?(TkWindow)
+ end
+ if slot == 'create' || slot == :create
+ p_create = value
+ if p_create.kind_of? Proc
+ value = install_cmd(proc{
+ id = p_create.call
+ if id.kind_of?(TkWindow)
+ id.epath
+ else
+ id
+ end
+ })
+ end
+ end
tk_send('window', 'configure', index, "-#{slot}", value)
end
end
@@ -1177,10 +1210,18 @@ class TkTextWindow<TkObject
@index = @path.path
keys = _symbolkey2str(keys)
@id = keys['window']
+ keys['window'] = @id.epath if @id.kind_of?(TkWindow)
if keys['create']
@p_create = keys['create']
if @p_create.kind_of? Proc
- keys['create'] = install_cmd(proc{@id = @p_create.call; @id.path})
+ keys['create'] = install_cmd(proc{
+ @id = @p_create.call
+ if @id.kind_of?(TkWindow)
+ @id.epath
+ else
+ @id
+ end
+ })
end
end
tk_call @t.path, 'window', 'create', @index, *hash_kv(keys)
@@ -1200,16 +1241,21 @@ class TkTextWindow<TkObject
def configure(slot, value=None)
if slot.kind_of? Hash
slot = _symbolkey2str(slot)
- @id = slot['window'] if slot['window']
+ if slot['window']
+ @id = slot['window']
+ slot['window'] = @id.epath if @id.kind_of?(TkWindow)
+ end
if slot['create']
- self.create=value
- slot['create']=nil
+ self.create=slot.delete('create')
end
if slot.size > 0
tk_call(@t.path, 'window', 'configure', @index, *hash_kv(slot))
end
else
- @id = value if slot == 'window' || slot == :window
+ if slot == 'window' || slot == :window
+ @id = value
+ value = @id.epath if @id.kind_of?(TkWindow)
+ end
if slot == 'create' || slot == :create
self.create=value
else
@@ -1228,8 +1274,9 @@ class TkTextWindow<TkObject
end
def window=(value)
- tk_call @t.path, 'window', 'configure', @index, '-window', value
@id = value
+ value = @id.epath if @id.kind_of?(TkWindow)
+ tk_call @t.path, 'window', 'configure', @index, '-window', value
end
def create
@@ -1239,7 +1286,14 @@ class TkTextWindow<TkObject
def create=(value)
@p_create = value
if @p_create.kind_of? Proc
- value = install_cmd(proc{@id = @p_create.call})
+ value = install_cmd(proc{
+ @id = @p_create.call
+ if @id.kind_of?(TkWindow)
+ @id.epath
+ else
+ @id
+ end
+ })
end
tk_call @t.path, 'window', 'configure', @index, '-create', value
end