summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-07-17 05:16:38 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-07-17 05:16:38 +0000
commit0ac67b89331e03f82f731aa952050f4cfc64c80e (patch)
tree66119fe3f775d336772ccd8be7734f6afbf8f41a
parentc2fa49a9b453621dbe80630f3be88223fe10ab29 (diff)
1.1c0 addendum
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--MANIFEST2
-rw-r--r--lib/tkbgerror.rb17
-rw-r--r--lib/tkmngfocus.rb27
-rw-r--r--lib/tkvirtevent.rb66
4 files changed, 112 insertions, 0 deletions
diff --git a/MANIFEST b/MANIFEST
index 28f0c786ae..2f04f3c9ea 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -125,12 +125,14 @@ lib/thread.rb
lib/thwait.rb
lib/tk.rb
lib/tkafter.rb
+lib/tkbgerror.rb
lib/tkcanvas.rb
lib/tkclass.rb
lib/tkdialog.rb
lib/tkentry.rb
lib/tkfont.rb
lib/tkmenubar.rb
+lib/tkmngfocus.rb
lib/tkpalette.rb
lib/tkscrollbox.rb
lib/tktext.rb
diff --git a/lib/tkbgerror.rb b/lib/tkbgerror.rb
new file mode 100644
index 0000000000..8022077a3f
--- /dev/null
+++ b/lib/tkbgerror.rb
@@ -0,0 +1,17 @@
+#
+# tkbgerror -- bgerror ( tkerror ) module
+# 1998/07/16 by Hidetoshi Nagai <nagai@ai.kyutech.ac.jp>
+#
+require 'tk'
+
+module TkBgError
+ extend Tk
+
+ def bgerror(message)
+ tk_call 'bgerror', message
+ end
+ alias tkerror bgerror
+ alias show bgerror
+
+ module_function :bgerror, :tkerror, :show
+end
diff --git a/lib/tkmngfocus.rb b/lib/tkmngfocus.rb
new file mode 100644
index 0000000000..921fb646e7
--- /dev/null
+++ b/lib/tkmngfocus.rb
@@ -0,0 +1,27 @@
+#
+# tkmngfocus.rb : methods for Tcl/Tk standard library 'focus.tcl'
+# 1998/07/16 by Hidetoshi Nagai <nagai@ai.kyutech.ac.jp>
+#
+require 'tk'
+
+module TkManageFocus
+ extend Tk
+
+ def TkManageFocus.followsMouse
+ tk_call 'tk_focusFollowsMouse'
+ end
+
+ def TkManageFocus.next(window)
+ tk_call 'tk_focusNext', window
+ end
+ def focusNext
+ TkManageFocus.next(self)
+ end
+
+ def TkManageFocus.prev(window)
+ tk_call 'tk_focusPrev', window
+ end
+ def focusPrev
+ TkManageFocus.prev(self)
+ end
+end
diff --git a/lib/tkvirtevent.rb b/lib/tkvirtevent.rb
new file mode 100644
index 0000000000..0d100c2186
--- /dev/null
+++ b/lib/tkvirtevent.rb
@@ -0,0 +1,66 @@
+#
+# tkvirtevent.rb : treats virtual events
+# 1998/07/16 by Hidetoshi Nagai <nagai@ai.kyutech.ac.jp>
+#
+require 'tk'
+
+class TkVirtualEvent<TkObject
+ extend Tk
+
+ TkVirturlEventID = [0]
+ TkVirturlEventTBL = {}
+
+ def TkVirtualEvent.getobj(event)
+ obj = TkVirturlEventTBL[event]
+ obj ? obj : event
+ end
+
+ def TkVirtualEvent.info
+ tk_call('event', 'info').split(/\s+/).filter{|seq|
+ TkVirtualEvent.getobj(seq[1..-2])
+ }
+ end
+
+ def initialize(*sequences)
+ @path = @id = format("<VirtEvent%.4d>", TkVirturlEventID[0])
+ TkVirturlEventID[0] += 1
+ add(*sequences)
+ end
+
+ def add(*sequences)
+ if sequences != []
+ tk_call('event', 'add', "<#{@id}>",
+ *(sequences.collect{|seq| "<#{tk_event_sequence(seq)}>"}) )
+ TkVirturlEventTBL[@id] = self
+ end
+ self
+ end
+
+ def delete(*sequences)
+ if sequences == []
+ tk_call('event', 'delete', "<#{@id}>")
+ TkVirturlEventTBL[@id] = nil
+ else
+ tk_call('event', 'delete', "<#{@id}>",
+ *(sequences.collect{|seq| "<#{tk_event_sequence(seq)}>"}) )
+ TkVirturlEventTBL[@id] = nil if info == []
+ end
+ self
+ end
+
+ def info
+ tk_call('event', 'info', "<#{@id}>").split(/\s+/).filter{|seq|
+ l = seq.scan(/<*[^<>]+>*/).filter{|subseq|
+ case (subseq)
+ when /^<<[^<>]+>>$/
+ TkVirtualEvent.getobj(subseq[1..-2])
+ when /^<[^<>]+>$/
+ subseq[1..-2]
+ else
+ subseq.split('')
+ end
+ }.flatten
+ (l.size == 1) ? l[0] : l
+ }
+ end
+end