# module Tk::ItemValidateConfigure

### Public Class Methods

__def_validcmd(scope, klass, keys=nil) click to toggle source

    # File lib/tk/validation.rb, line 112
    def self.__def_validcmd(scope, klass, keys=nil)
      keys = klass._config_keys unless keys
      keys.each{|key|
        eval("def item_#{key}(id, *args, &b)
                 __item_validcmd_call(#{klass.name}, '#{key}', id, *args, &b)
              end", scope)
      }
    end

### Public Instance Methods

__conv_item_vcmd_on_hash_kv(keys) click to toggle source

    # File lib/tk/validation.rb, line 149
    def __conv_item_vcmd_on_hash_kv(keys)
      key2class = __get_item_validate_key2class(tagid(tagOrId))

      keys = _symbolkey2str(keys)
      key2class.each{|key, klass|
        if keys[key].kind_of?(Array)
          cmd, *args = keys[key]
          #keys[key] = klass.new(cmd, args.join(' '))
          keys[key] = klass.new(cmd, *args)
        # elsif keys[key].kind_of?(Proc) || keys[key].kind_of?(Method)
        elsif TkComm._callback_entry?(keys[key])
          keys[key] = klass.new(keys[key])
        end
      }
      keys
    end

__get_item_validate_key2class(id) click to toggle source

    # File lib/tk/validation.rb, line 140
    def __get_item_validate_key2class(id)
      k2c = {}
      __item_validation_class_list(id).each{|klass|
        klass._config_keys.each{|key|
          k2c[key.to_s] = klass
        }
      }
    end

__item_validation_class_list(id) click to toggle source

    # File lib/tk/validation.rb, line 135
    def __item_validation_class_list(id)
      # maybe need to override
      []
    end

__item_validcmd_call(tagOrId, klass, key, *args, &b) click to toggle source

    # File lib/tk/validation.rb, line 121
    def __item_validcmd_call(tagOrId, klass, key, *args, &b)
      return itemcget(tagid(tagOrId), key) if args.empty? && !b

      cmd = (b)? proc(&b) : args.shift

      if cmd.kind_of?(klass)
        itemconfigure(tagid(tagOrId), key, cmd)
      elsif !args.empty?
        itemconfigure(tagid(tagOrId), key, [cmd, args])
      else
        itemconfigure(tagid(tagOrId), key, cmd)
      end
    end

itemconfigure(tagOrId, slot, value=TkComm::None) click to toggle source
Calls superclass method

    # File lib/tk/validation.rb, line 166
    def itemconfigure(tagOrId, slot, value=TkComm::None)
      if slot.kind_of?(Hash)
        super(__conv_item_vcmd_on_hash_kv(slot))
      else
        super(__conv_item_vcmd_on_hash_kv(slot=>value))
      end
      self
    end