⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tkvirtevent.rb

📁 ruby的源代码
💻 RB
字号:
##   tkvirtevent.rb : treats virtual events#                     1998/07/16 by Hidetoshi Nagai <nagai@ai.kyutech.ac.jp>#require 'tk'class TkVirtualEvent<TkObject  extend Tk  TkVirtualEventID = [0]  TkVirtualEventTBL = {}  class PreDefVirtEvent<self    def initialize(event)      @path = @id = event      TkVirtualEvent::TkVirtualEventTBL[@id] = self    end  end  def TkVirtualEvent.getobj(event)    obj = TkVirtualEventTBL[event]    if obj      obj    else      if tk_call('event', 'info').index("<#{event}>")	PreDefVirtEvent.new(event)      else	fail ArgumentError, "undefined virtual event '<#{event}>'"      end    end  end  def TkVirtualEvent.info    tk_call('event', 'info').split(/\s+/).collect!{|seq|      TkVirtualEvent.getobj(seq[1..-2])    }  end  def initialize(*sequences)    @path = @id = format("<VirtEvent%.4d>", TkVirtualEventID[0])    TkVirtualEventID[0] += 1    add(*sequences)  end  def add(*sequences)    if sequences != []      tk_call('event', 'add', "<#{@id}>", 	      *(sequences.collect{|seq| "<#{tk_event_sequence(seq)}>"}) )      TkVirtualEventTBL[@id] = self    end    self  end  def delete(*sequences)    if sequences == []      tk_call('event', 'delete', "<#{@id}>")      TkVirtualEventTBL[@id] = nil    else      tk_call('event', 'delete', "<#{@id}>", 	      *(sequences.collect{|seq| "<#{tk_event_sequence(seq)}>"}) )      TkVirtualEventTBL[@id] = nil if info == []    end    self  end  def info    tk_call('event', 'info', "<#{@id}>").split(/\s+/).collect!{|seq|      l = seq.scan(/<*[^<>]+>*/).collect!{|subseq|	case (subseq)	when /^<<[^<>]+>>$/	  TkVirtualEvent.getobj(subseq[1..-2])	when /^<[^<>]+>$/	  subseq[1..-2]	else	  subseq.split('')	end      }.flatten      (l.size == 1) ? l[0] : l    }  endend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -