diff options
author | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-08-02 05:04:30 +0000 |
---|---|---|
committer | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-08-02 05:04:30 +0000 |
commit | 4c3328f5476f54c84b1f048eed075e6edf5e5b1d (patch) | |
tree | 92b661314bdfd045882e365e3e43b77f57244725 /ext/tk/lib | |
parent | d7bdf5df56f337d8ca1152598ff138703896c54b (diff) |
* (bug fix) TkEntry#delete
* (bug fix) some widget demos
* support <TkVariable object> == <Symbol>
( "coerce TkVariable" add to the TODO list :-) )
* freeze some object for security reason
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/tk/lib')
-rw-r--r-- | ext/tk/lib/multi-tk.rb | 9 | ||||
-rw-r--r-- | ext/tk/lib/tk.rb | 18 | ||||
-rw-r--r-- | ext/tk/lib/tkafter.rb | 18 | ||||
-rw-r--r-- | ext/tk/lib/tkcanvas.rb | 8 | ||||
-rw-r--r-- | ext/tk/lib/tkentry.rb | 2 | ||||
-rw-r--r-- | ext/tk/lib/tkfont.rb | 2 | ||||
-rw-r--r-- | ext/tk/lib/tktext.rb | 8 | ||||
-rw-r--r-- | ext/tk/lib/tkvirtevent.rb | 2 |
8 files changed, 47 insertions, 20 deletions
diff --git a/ext/tk/lib/multi-tk.rb b/ext/tk/lib/multi-tk.rb index c74b5714b8..d1bf21164a 100644 --- a/ext/tk/lib/multi-tk.rb +++ b/ext/tk/lib/multi-tk.rb @@ -33,7 +33,7 @@ MultiTkIp_OK.freeze ################################################ # methods for construction class MultiTkIp - SLAVE_IP_ID = ['slave'.freeze, '0'] + SLAVE_IP_ID = ['slave'.freeze, '0'].freeze @@IP_TABLE = {} @@ -234,7 +234,12 @@ class MultiTkIp ###################################### - SAFE_OPT_LIST = ['accessPath', 'statics', 'nested', 'deleteHook'] + SAFE_OPT_LIST = [ + 'accessPath'.freeze, + 'statics'.freeze, + 'nested'.freeze, + 'deleteHook'.freeze + ].freeze def _parse_slaveopts(keys) name = nil safe = false diff --git a/ext/tk/lib/tk.rb b/ext/tk/lib/tk.rb index a2c4a7d61f..6f3de4e417 100644 --- a/ext/tk/lib/tk.rb +++ b/ext/tk/lib/tk.rb @@ -1,4 +1,4 @@ - +# # tk.rb - Tk interface module using tcltklib # $Date$ # by Yukihiro Matsumoto <[email protected]> @@ -17,7 +17,7 @@ module TkComm #Tk_CMDTBL = {} #Tk_WINDOWS = {} - Tk_IDs = ["00000", "00000"] # [0]-cmdid, [1]-winid + Tk_IDs = ["00000", "00000"].freeze # [0]-cmdid, [1]-winid # for backward compatibility Tk_CMDTBL = Object.new @@ -1651,7 +1651,7 @@ class TkBindTag #BTagID_TBL = {} BTagID_TBL = TkCore::INTERP.create_table - Tk_BINDTAG_ID = ["btag".freeze, "00000"] + Tk_BINDTAG_ID = ["btag".freeze, "00000"].freeze TkCore::INTERP.init_ip_env{ BTagID_TBL.clear } @@ -1726,7 +1726,7 @@ class TkVariable #TkVar_ID_TBL = {} TkVar_CB_TBL = TkCore::INTERP.create_table TkVar_ID_TBL = TkCore::INTERP.create_table - Tk_VARIABLE_ID = ["v".freeze, "00000"] + Tk_VARIABLE_ID = ["v".freeze, "00000"].freeze TkCore::INTERP.add_tk_procs('rb_var', 'args', "ruby [format \"TkVariable.callback %%Q!%s!\" $args]") @@ -1839,6 +1839,10 @@ class TkVariable string(value).to_s end + def to_sym + value.intern + end + def inspect format "#<TkVariable: %s>", @id end @@ -1849,6 +1853,8 @@ class TkVariable self.equal?(other) when String self.to_s == other + when Symbol + self.to_sym == other when Integer self.to_i == other when Float @@ -4630,7 +4636,7 @@ end module TkTreatListItemFont include TkTreatItemFont - ItemCMD = ['itemconfigure', TkComm::None] + ItemCMD = ['itemconfigure'.freeze, TkComm::None].freeze def __conf_cmd(idx) ItemCMD[idx] end @@ -4770,7 +4776,7 @@ end module TkTreatMenuEntryFont include TkTreatItemFont - ItemCMD = ['entryconfigure', TkComm::None] + ItemCMD = ['entryconfigure'.freeze, TkComm::None].freeze def __conf_cmd(idx) ItemCMD[idx] end diff --git a/ext/tk/lib/tkafter.rb b/ext/tk/lib/tkafter.rb index 529b1e6cfb..0572106771 100644 --- a/ext/tk/lib/tkafter.rb +++ b/ext/tk/lib/tkafter.rb @@ -11,7 +11,7 @@ class TkTimer TkCommandNames = ['after'.freeze].freeze - Tk_CBID = ['a'.freeze, '00000'] + Tk_CBID = ['a'.freeze, '00000'].freeze Tk_CBTBL = {} TkCore::INTERP.add_tk_procs('rb_after', 'id', <<-'EOL') @@ -311,6 +311,22 @@ class TkTimer self end + def reset(*reset_args) + restart() if @running + + if @init_proc + @return_value = @init_proc.call(self) + else + @return_value = nil + end + + @current_pos = 0 + @current_args = @init_args + @set_next = false if @in_callback + + self + end + def restart(*restart_args) cancel if @running if restart_args == [] diff --git a/ext/tk/lib/tkcanvas.rb b/ext/tk/lib/tkcanvas.rb index cbe4f89043..47e925c4fe 100644 --- a/ext/tk/lib/tkcanvas.rb +++ b/ext/tk/lib/tkcanvas.rb @@ -11,7 +11,7 @@ require 'tkfont' module TkTreatCItemFont include TkTreatItemFont - ItemCMD = ['itemconfigure', TkComm::None] + ItemCMD = ['itemconfigure'.freeze, TkComm::None].freeze def __conf_cmd(idx) ItemCMD[idx] end @@ -529,7 +529,7 @@ class TkcTag<TkObject include TkcTagAccess CTagID_TBL = TkCore::INTERP.create_table - Tk_CanvasTag_ID = ['ctag', '00000'] + Tk_CanvasTag_ID = ['ctag'.freeze, '00000'].freeze TkCore::INTERP.init_ip_env{ CTagID_TBL.clear } @@ -660,7 +660,7 @@ class TkcTagCurrent<TkcTag end class TkcGroup<TkcTag - Tk_cGroup_ID = ['tkcg', '00000'] + Tk_cGroup_ID = ['tkcg'.freeze, '00000'].freeze def create_self(parent, *args) if not parent.kind_of?(TkCanvas) fail format("%s need to be TkCanvas", parent.inspect) @@ -823,7 +823,7 @@ class TkImage<TkObject TkCommandNames = ['image'.freeze].freeze Tk_IMGTBL = TkCore::INTERP.create_table - Tk_Image_ID = ['i', '00000'] + Tk_Image_ID = ['i'.freeze, '00000'].freeze TkCore::INTERP.init_ip_env{ Tk_IMGTBL.clear } diff --git a/ext/tk/lib/tkentry.rb b/ext/tk/lib/tkentry.rb index ccfb7928ac..ab69e76550 100644 --- a/ext/tk/lib/tkentry.rb +++ b/ext/tk/lib/tkentry.rb @@ -158,7 +158,7 @@ class TkEntry<TkLabel self end def delete(first, last=None) - tk_send 'insert', first, last + tk_send 'delete', first, last self end def mark(pos) diff --git a/ext/tk/lib/tkfont.rb b/ext/tk/lib/tkfont.rb index 68eb91039b..eb21b1fabf 100644 --- a/ext/tk/lib/tkfont.rb +++ b/ext/tk/lib/tkfont.rb @@ -11,7 +11,7 @@ class TkFont TkCommandNames = ['font'.freeze].freeze - Tk_FontID = ["@font".freeze, "00000"] + Tk_FontID = ["@font".freeze, "00000"].freeze Tk_FontNameTBL = TkCore::INTERP.create_table Tk_FontUseTBL = TkCore::INTERP.create_table diff --git a/ext/tk/lib/tktext.rb b/ext/tk/lib/tktext.rb index a28c3d31fc..6fa69aa597 100644 --- a/ext/tk/lib/tktext.rb +++ b/ext/tk/lib/tktext.rb @@ -9,7 +9,7 @@ require 'tkfont' module TkTreatTextTagFont include TkTreatItemFont - ItemCMD = ['tag', 'configure'] + ItemCMD = ['tag'.freeze, 'configure'.freeze].freeze def __conf_cmd(idx) ItemCMD[idx] end @@ -24,7 +24,7 @@ module TkTreatTextTagFont end class TkText<TkTextWin - ItemConfCMD = ['tag', 'configure'] + ItemConfCMD = ['tag'.freeze, 'configure'.freeze].freeze include TkTreatTextTagFont include Scrollable @@ -767,7 +767,7 @@ class TkTextTag<TkObject include TkTreatTagFont TTagID_TBL = TkCore::INTERP.create_table - Tk_TextTag_ID = ['tag', '00000'] + Tk_TextTag_ID = ['tag'.freeze, '00000'].freeze TkCore::INTERP.init_ip_env{ TTagID_TBL.clear } @@ -971,7 +971,7 @@ end class TkTextMark<TkObject TMarkID_TBL = TkCore::INTERP.create_table - Tk_TextMark_ID = ['mark', '00000'] + Tk_TextMark_ID = ['mark'.freeze, '00000'].freeze TkCore::INTERP.init_ip_env{ TMarkID_TBL.clear } diff --git a/ext/tk/lib/tkvirtevent.rb b/ext/tk/lib/tkvirtevent.rb index c594d4716f..49c236f7f0 100644 --- a/ext/tk/lib/tkvirtevent.rb +++ b/ext/tk/lib/tkvirtevent.rb @@ -9,7 +9,7 @@ class TkVirtualEvent<TkObject TkCommandNames = ['event'.freeze].freeze - TkVirtualEventID = ["<VirtEvent".freeze, "00000", ">".freeze] + TkVirtualEventID = ["<VirtEvent".freeze, "00000", ">".freeze].freeze TkVirtualEventTBL = TkCore::INTERP.create_table TkCore::INTERP.init_ip_env{ TkVirtualEventTBL.clear } |