Skip to content

Commit

Permalink
1.1c0 addendum
Browse files Browse the repository at this point in the history
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  • Loading branch information
matz committed Jul 17, 1998
1 parent c2fa49a commit 0ac67b8
Show file tree
Hide file tree
Showing 4 changed files with 112 additions and 0 deletions.
2 changes: 2 additions & 0 deletions MANIFEST
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
17 changes: 17 additions & 0 deletions lib/tkbgerror.rb
Original file line number Diff line number Diff line change
@@ -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
27 changes: 27 additions & 0 deletions lib/tkmngfocus.rb
Original file line number Diff line number Diff line change
@@ -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
66 changes: 66 additions & 0 deletions lib/tkvirtevent.rb
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 0ac67b8

Please sign in to comment.