Method: Tk::Frame#initialize

Defined in:
lib/tk/frame.rb

#initialize(parent = nil, keys = nil) ⇒ Frame

Returns a new instance of Frame.



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/tk/frame.rb', line 39

def initialize(parent=nil, keys=nil)
  my_class_name = nil
  if self.class < WidgetClassNames[self.class::WidgetClassName]
    my_class_name = self.class.name
    my_class_name = nil if my_class_name == ''
  end
  if parent.kind_of? Hash
    keys = _symbolkey2str(parent)
  else
    if keys
      keys = _symbolkey2str(keys)
      keys['parent'] = parent
    else
      keys = {'parent'=>parent}
    end
  end
  if keys.key?('classname')
     keys['class'] = keys.delete('classname')
  end
  @classname = keys['class']
  @colormap  = keys['colormap']
  @container = keys['container']
  @visual    = keys['visual']
  if !@classname && my_class_name
    keys['class'] = @classname = my_class_name
  end
  if @classname.kind_of? TkBindTag
    @db_class = @classname
    @classname = @classname.id
  elsif @classname
    @db_class = TkDatabaseClass.new(@classname)
  else
    @db_class = self.class
    @classname = @db_class::WidgetClassName
  end
  super(keys)
end