File: tk/frame.rb

Overview
Module Structure
Class Hierarchy
Code

Overview

Module Structure

  module: <Toplevel Module>
  module: Tk
  class: Frame#6
inherits from
  TkWindow   
has properties
constant: TkCommandNames #7
constant: WidgetClassName #8
method: __boolval_optkeys #33
method: initialize / 2 #38
method: database_classname (1/2) #85
class method: database_class #89
class method: database_classname (2/E) #96
class method: bind / 2 #100
class method: bind_append / 2 #107
class method: bind_remove / 1 #114
class method: bindinfo / 1 #121

Class Hierarchy

Object ( Builtin-Module )
TkKernel
TkObject
TkWindow
  Frame ( Tk ) #6

Code

   1  #
   2  # tk/frame.rb : treat frame widget
   3  #
   4  require 'tk'
   5 
   6  class Tk::Frame<TkWindow
   7    TkCommandNames = ['frame'.freeze].freeze
   8    WidgetClassName = 'Frame'.freeze
   9    WidgetClassNames[WidgetClassName] = self
  10 
  11  ################# old version
  12  #  def initialize(parent=nil, keys=nil)
  13  #    if keys.kind_of? Hash
  14  #      keys = keys.dup
  15  #      @classname = keys.delete('classname') if keys.key?('classname')
  16  #      @colormap  = keys.delete('colormap')  if keys.key?('colormap')
  17  #      @container = keys.delete('container') if keys.key?('container')
  18  #      @visual    = keys.delete('visual')    if keys.key?('visual')
  19  #    end
  20  #    super(parent, keys)
  21  #  end
  22  #
  23  #  def create_self
  24  #    s = []
  25  #    s << "-class"     << @classname if @classname
  26  #    s << "-colormap"  << @colormap  if @colormap
  27  #    s << "-container" << @container if @container
  28  #    s << "-visual"    << @visual    if @visual
  29  #    tk_call 'frame', @path, *s
  30  #  end
  31  #################
  32 
  33    def __boolval_optkeys
  34      super() << 'container'
  35    end
  36    private :__boolval_optkeys
  37 
  38    def initialize(parent=nil, keys=nil)
  39      my_class_name = nil
  40      if self.class < WidgetClassNames[self.class::WidgetClassName]
  41        my_class_name = self.class.name
  42        my_class_name = nil if my_class_name == ''
  43      end
  44      if parent.kind_of? Hash
  45        keys = _symbolkey2str(parent)
  46      else
  47        if keys
  48          keys = _symbolkey2str(keys)
  49          keys['parent'] = parent
  50        else
  51          keys = {'parent'=>parent}
  52        end
  53      end
  54      if keys.key?('classname')
  55         keys['class'] = keys.delete('classname')
  56      end
  57      @classname = keys['class']
  58      @colormap  = keys['colormap']
  59      @container = keys['container']
  60      @visual    = keys['visual']
  61      if !@classname && my_class_name
  62        keys['class'] = @classname = my_class_name
  63      end
  64      if @classname.kind_of? TkBindTag
  65        @db_class = @classname
  66        @classname = @classname.id
  67      elsif @classname
  68        @db_class = TkDatabaseClass.new(@classname)
  69      else
  70        @db_class = self.class
  71        @classname = @db_class::WidgetClassName
  72      end
  73      super(keys)
  74    end
  75 
  76    #def create_self(keys)
  77    #  if keys and keys != None
  78    #    tk_call_without_enc('frame', @path, *hash_kv(keys))
  79    #  else
  80    #    tk_call_without_enc( 'frame', @path)
  81    #  end
  82    #end
  83    #private :create_self
  84 
  85    def database_classname
  86      @classname
  87    end
  88 
  89    def self.database_class
  90      if self == WidgetClassNames[WidgetClassName] || self.name == ''
  91        self
  92      else
  93        TkDatabaseClass.new(self.name)
  94      end
  95    end
  96    def self.database_classname
  97      self.database_class.name
  98    end
  99 
 100    def self.bind(*args, &b)
 101      if self == WidgetClassNames[WidgetClassName] || self.name == ''
 102        super(*args, &b)
 103      else
 104        TkDatabaseClass.new(self.name).bind(*args, &b)
 105      end
 106    end
 107    def self.bind_append(*args, &b)
 108      if self == WidgetClassNames[WidgetClassName] || self.name == ''
 109        super(*args, &b)
 110      else
 111        TkDatabaseClass.new(self.name).bind_append(*args, &b)
 112      end
 113    end
 114    def self.bind_remove(*args)
 115      if self == WidgetClassNames[WidgetClassName] || self.name == ''
 116        super(*args)
 117      else
 118        TkDatabaseClass.new(self.name).bind_remove(*args)
 119      end
 120    end
 121    def self.bindinfo(*args)
 122      if self == WidgetClassNames[WidgetClassName] || self.name == ''
 123        super(*args)
 124      else
 125        TkDatabaseClass.new(self.name).bindinfo(*args)
 126      end
 127    end
 128  end
 129 
 130  #TkFrame = Tk::Frame unless Object.const_defined? :TkFrame
 131  Tk.__set_toplevel_aliases__(:Tk, Tk::Frame, :TkFrame)