summaryrefslogtreecommitdiff
path: root/ext/tk/lib
diff options
context:
space:
mode:
authornagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-08-02 05:04:30 +0000
committernagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-08-02 05:04:30 +0000
commit4c3328f5476f54c84b1f048eed075e6edf5e5b1d (patch)
tree92b661314bdfd045882e365e3e43b77f57244725 /ext/tk/lib
parentd7bdf5df56f337d8ca1152598ff138703896c54b (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.rb9
-rw-r--r--ext/tk/lib/tk.rb18
-rw-r--r--ext/tk/lib/tkafter.rb18
-rw-r--r--ext/tk/lib/tkcanvas.rb8
-rw-r--r--ext/tk/lib/tkentry.rb2
-rw-r--r--ext/tk/lib/tkfont.rb2
-rw-r--r--ext/tk/lib/tktext.rb8
-rw-r--r--ext/tk/lib/tkvirtevent.rb2
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 }