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

📄 tkentry.rb

📁 ruby的源代码
💻 RB
字号:
##		tkentry.rb - Tk entry classes#			$Date: 2002/02/28 06:52:49 $#			by Yukihiro Matsumoto <matz@caelum.co.jp>require 'tk.rb'class TkEntry<TkLabel  include Scrollable  WidgetClassName = 'Entry'.freeze  WidgetClassNames[WidgetClassName] = self  def self.to_eval    WidgetClassName  end  class ValidateCmd    include TkComm    class ValidateArgs      def initialize(d,i,s,v,pp,ss,vv,ww)	@action = d	@index = i	@current = s	@type = v	@value = pp	@string = ss	@triggered = vv	@widget = ww      end      attr :action      attr :index      attr :current      attr :type      attr :value      attr :string      attr :triggered      attr :widget    end    def initialize(cmd = Proc.new, args=nil)      if args	@id = install_cmd(proc{|*arg|			    TkUtil.eval_cmd cmd, *arg			  }) + " " + args      else	@id = install_cmd(proc{|arg|			    TkUtil.eval_cmd cmd, ValidateArgs.new(*arg)			  }) + ' %d %i %s %v %P %S %V %W'      end    end    def to_eval      @id    end  end  def create_self(keys)    if keys and keys != None      tk_call 'entry', @path, *hash_kv(keys)    else      tk_call 'entry', @path    end  end  def bbox(index)    tk_send 'bbox', index  end  def delete(s, e=None)    tk_send 'delete', s, e  end  def configure(slot, value=None)    if slot.kind_of? Hash      if slot['vcmd'].kind_of? Array	cmd, *args = slot['vcmd']	slot['vcmd'] = ValidateCmd.new(cmd, args.join(' '))      elsif slot['vcmd'].kind_of? Proc	slot['vcmd'] = ValidateCmd.new(slot['vcmd'])      end      if slot['validatecommand'].kind_of? Array	cmd, *args = slot['validatecommand']	slot['validatecommand'] = ValidateCmd.new(cmd, args.join(' '))      elsif slot['validatecommand'].kind_of? Proc	slot['validatecommand'] = ValidateCmd.new(slot['validatecommand'])      end      if slot['invcmd'].kind_of? Array	cmd, *args = slot['invcmd']	slot['invcmd'] = ValidateCmd.new(cmd, args.join(' '))      elsif slot['invcmd'].kind_of? Proc	slot['invcmd'] = ValidateCmd.new(slot['invcmd'])      end      if slot['invalidcommand'].kind_of? Array	cmd, *args = slot['invalidcommand']	slot['invalidcommand'] = ValidateCmd.new(cmd, args.join(' '))      elsif slot['invalidcommand'].kind_of? Proc	slot['invalidcommand'] = ValidateCmd.new(slot['invalidcommand'])      end      super(slot)    else      if (slot == 'vcmd' || slot == 'validatecommand' || 	  slot == 'invcmd' || slot == 'invalidcommand')	if value.kind_of? Array	  cmd, *args = value	  value = ValidateCmd.new(cmd, args.join(' '))	elsif value.kind_of? Proc	  value = ValidateCmd.new(value)	end      end      super(slot, value)    end  end  def cursor    tk_send 'index', 'insert'  end  def cursor=(index)    tk_send 'icursor', index  end  def index(index)    number(tk_send('index', index))  end  def insert(pos,text)    tk_send 'insert', pos, text  end  def mark(pos)    tk_send 'scan', 'mark', pos  end  def dragto(pos)    tk_send 'scan', 'dragto', pos  end  def selection_adjust(index)    tk_send 'selection', 'adjust', index  end  def selection_clear    tk_send 'selection', 'clear'  end  def selection_from(index)    tk_send 'selection', 'from', index  end  def selection_present()    bool(tk_send('selection', 'present'))  end  def selection_range(s, e)    tk_send 'selection', 'range', s, e  end  def selection_to(index)    tk_send 'selection', 'to', index  end  def validate(mode = nil)    if mode      configure 'validate', mode    else      if tk_send('validate') == '0'	false      else 	true      end    end  end  def validatecommand(cmd = ValidateCmd.new, args = nil)    if cmd.kind_of?(ValidateCmd)      configure('validatecommand', cmd)    else      configure('validatecommand', ValidateCmd.new(cmd, args))    end  end  alias vcmd validatecommand  def invalidcommand(cmd = ValidateCmd.new, args = nil)    if cmd.kind_of?(ValidateCmd)      configure('invalidcommand', cmd)    else      configure('invalidcommand', ValidateCmd.new(cmd, args))    end  end  alias invcmd invalidcommand  def value    tk_send 'get'  end  def value= (val)    tk_send 'delete', 0, 'end'    tk_send 'insert', 0, val  endendclass TkSpinbox<TkEntry  WidgetClassName = 'Spinbox'.freeze  WidgetClassNames[WidgetClassName] = self  def self.to_eval    WidgetClassName  end  def create_self(keys)    if keys and keys != None      tk_call 'spinbox', @path, *hash_kv(keys)    else      tk_call 'spinbox', @path    end  end  def identify(x, y)    tk_send 'identify', x, y  end  def spinup    tk_send 'invoke', 'spinup'  end  def spindown    tk_send 'invoke', 'spindown'  end  def set(str)    tk_send 'set', str  endend

⌨️ 快捷键说明

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