# module Tk::ValidateConfigure

### Public Class Methods

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

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

### Public Instance Methods

__conv_vcmd_on_hash_kv(keys) click to toggle source

    # File lib/tk/validation.rb, line 47
    def __conv_vcmd_on_hash_kv(keys)
      key2class = __get_validate_key2class

      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_validate_key2class() click to toggle source

    # File lib/tk/validation.rb, line 37
    def __get_validate_key2class
      k2c = {}
      __validation_class_list.each{|klass|
        klass._config_keys.each{|key|
          k2c[key.to_s] = klass
        }
      }
      k2c
    end

__validation_class_list() click to toggle source

    # File lib/tk/validation.rb, line 32
    def __validation_class_list
      # maybe need to override
      []
    end

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

    # File lib/tk/validation.rb, line 18
    def __validcmd_call(klass, key, *args, &b)
      return cget(key) if args.empty? && !b

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

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

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

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

### Private Instance Methods

create_self(keys) click to toggle source
Calls superclass method

    # File lib/tk/validation.rb, line 64
    def create_self(keys)
      super(__conv_vcmd_on_hash_kv(keys))
    end