1# 2# tk/frame.rb : treat frame widget 3# 4require 'tk' 5 6class 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 128end 129 130#TkFrame = Tk::Frame unless Object.const_defined? :TkFrame 131#Tk.__set_toplevel_aliases__(:Tk, Tk::Frame, :TkFrame) 132Tk.__set_loaded_toplevel_aliases__('tk/frame.rb', :Tk, Tk::Frame, :TkFrame) 133