* ext/tk/lib/tk.rb: fix typo on Tk.grid_propagate.
* ext/tk/lib/tk.rb: Tk.event_generate and TkWindow#event_generate accept TkEvent::Event object as context argument. * ext/tk/lib/tk/event.rb: add TkEvent::Event#valid_fields and valid_for_generate to get field parameters of event_generate. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
fc114887e6
commit
2e3404c1bb
10
ChangeLog
10
ChangeLog
@ -1,3 +1,13 @@
|
|||||||
|
Fri Jun 24 12:23:19 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
|
||||||
|
|
||||||
|
* ext/tk/lib/tk.rb: fix typo on Tk.grid_propagate.
|
||||||
|
|
||||||
|
* ext/tk/lib/tk.rb: Tk.event_generate and TkWindow#event_generate
|
||||||
|
accept TkEvent::Event object as context argument.
|
||||||
|
|
||||||
|
* ext/tk/lib/tk/event.rb: add TkEvent::Event#valid_fields and
|
||||||
|
valid_for_generate to get field parameters of event_generate.
|
||||||
|
|
||||||
Thu Jun 23 23:55:59 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Thu Jun 23 23:55:59 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* runruby.rb: should load built rbconfig.rb.
|
* runruby.rb: should load built rbconfig.rb.
|
||||||
|
@ -1516,7 +1516,9 @@ module TkCore
|
|||||||
|
|
||||||
def event_generate(win, context, keys=nil)
|
def event_generate(win, context, keys=nil)
|
||||||
#win = win.path if win.kind_of?(TkObject)
|
#win = win.path if win.kind_of?(TkObject)
|
||||||
if keys
|
if context.kind_of?(TkEvent::Event)
|
||||||
|
context.generate(win, ((keys)? keys: {}))
|
||||||
|
elsif keys
|
||||||
tk_call_without_enc('event', 'generate', win,
|
tk_call_without_enc('event', 'generate', win,
|
||||||
"<#{tk_event_sequence(context)}>",
|
"<#{tk_event_sequence(context)}>",
|
||||||
*hash_kv(keys, true))
|
*hash_kv(keys, true))
|
||||||
@ -3500,7 +3502,9 @@ class TkObject<TkKernel
|
|||||||
=end
|
=end
|
||||||
|
|
||||||
def event_generate(context, keys=nil)
|
def event_generate(context, keys=nil)
|
||||||
if keys
|
if context.kind_of?(TkEvent::Event)
|
||||||
|
context.generate(self, ((keys)? keys: {}))
|
||||||
|
elsif keys
|
||||||
#tk_call('event', 'generate', path,
|
#tk_call('event', 'generate', path,
|
||||||
# "<#{tk_event_sequence(context)}>", *hash_kv(keys))
|
# "<#{tk_event_sequence(context)}>", *hash_kv(keys))
|
||||||
tk_call_without_enc('event', 'generate', path,
|
tk_call_without_enc('event', 'generate', path,
|
||||||
@ -3832,9 +3836,9 @@ class TkWindow<TkObject
|
|||||||
# self
|
# self
|
||||||
#end
|
#end
|
||||||
if mode == None
|
if mode == None
|
||||||
TkGrid.propagete(self)
|
TkGrid.propagate(self)
|
||||||
else
|
else
|
||||||
TkGrid.propagete(self, mode)
|
TkGrid.propagate(self, mode)
|
||||||
self
|
self
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -4149,7 +4153,7 @@ end
|
|||||||
#Tk.freeze
|
#Tk.freeze
|
||||||
|
|
||||||
module Tk
|
module Tk
|
||||||
RELEASE_DATE = '2005-06-23'.freeze
|
RELEASE_DATE = '2005-06-24'.freeze
|
||||||
|
|
||||||
autoload :AUTO_PATH, 'tk/variable'
|
autoload :AUTO_PATH, 'tk/variable'
|
||||||
autoload :TCL_PACKAGE_PATH, 'tk/variable'
|
autoload :TCL_PACKAGE_PATH, 'tk/variable'
|
||||||
|
@ -212,29 +212,59 @@ module TkEvent
|
|||||||
|
|
||||||
#-------------------------------------------
|
#-------------------------------------------
|
||||||
|
|
||||||
def generate(win, modkeys={})
|
def valid_fields(group_flag=nil)
|
||||||
klass = self.class
|
group_flag = self.class.group_flag(self.type) unless group_flag
|
||||||
type_id = self.type
|
|
||||||
|
|
||||||
type_name = klass.type_name(type_id)
|
|
||||||
group_flag = klass.group_flag(type_id)
|
|
||||||
|
|
||||||
opts = {}
|
|
||||||
|
|
||||||
|
fields = {}
|
||||||
FIELD_FLAG.each{|key, flag|
|
FIELD_FLAG.each{|key, flag|
|
||||||
next if (flag & group_flag) == 0
|
next if (flag & group_flag) == 0
|
||||||
|
|
||||||
begin
|
begin
|
||||||
val = self.__send__(key)
|
val = self.__send__(key)
|
||||||
val = FIELD_OPERATION[key].call(val) if FIELD_OPERATION[key]
|
|
||||||
rescue
|
rescue
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
|
|
||||||
next if !val || val == '??'
|
next if !val || val == '??'
|
||||||
opts[key] = val
|
fields[key] = val
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fields
|
||||||
|
end
|
||||||
|
|
||||||
|
def valid_for_generate(group_flag=nil)
|
||||||
|
fields = valid_fields(group_flag)
|
||||||
|
|
||||||
|
FIELD_OPERATION.each{|key, cmd|
|
||||||
|
next unless fields.has_key?(key)
|
||||||
|
val = FIELD_OPERATION[key].call(fields[key])
|
||||||
|
if val
|
||||||
|
fields[key] = val
|
||||||
|
else
|
||||||
|
fields.delete(key)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
fields
|
||||||
|
end
|
||||||
|
|
||||||
|
def generate(win, modkeys={})
|
||||||
|
klass = self.class
|
||||||
|
|
||||||
|
if modkeys.has_key?(:type) || modkeys.has_key?('type')
|
||||||
|
modkeys = TkComm._symbolkey2str(modkeys)
|
||||||
|
type_id = modkeys.delete('type')
|
||||||
|
else
|
||||||
|
type_id = self.type
|
||||||
|
end
|
||||||
|
|
||||||
|
type_name = klass.type_name(type_id)
|
||||||
|
unless type_name
|
||||||
|
fail RuntimeError, "type_id #{type_id} is invalid"
|
||||||
|
end
|
||||||
|
|
||||||
|
group_flag = klass.group_flag(type_id)
|
||||||
|
|
||||||
|
opts = valid_for_generate(group_flag)
|
||||||
|
|
||||||
modkeys.each{|key, val|
|
modkeys.each{|key, val|
|
||||||
if val
|
if val
|
||||||
opts[key.to_s] = val
|
opts[key.to_s] = val
|
||||||
|
Loading…
x
Reference in New Issue
Block a user