def initialize(parent=nil, *args)
# File tk/lib/tk/composite.rb, line 94 def initialize(*args) @delegates = {} @option_methods = {} @option_setting = {} if args[-1].kind_of?(Hash) keys = _symbolkey2str(args.pop) else keys = {} end parent = args.shift parent = keys.delete('parent') if keys.has_key?('parent') if keys.key?('classname') keys['class'] = keys.delete('classname') end if (base_class_name = (keys.delete('class')).to_s).empty? base_class_name = _choice_classname_of_baseframe end if base_class_name # @frame = Tk::Frame.new(parent, :class=>base_class_name) # --> use current TkFrame class @frame = TkFrame.new(parent, :class=>base_class_name) else # @frame = Tk::Frame.new(parent) # --> use current TkFrame class @frame = TkFrame.new(parent) end @path = @epath = @frame.path args.push(keys) unless keys.empty? initialize_composite(*args) end
# File tk/lib/tk/composite.rb, line 245 def cget(slot) if (ret = __cget_delegates(slot)) == None super(slot) else ret end end
# File tk/lib/tk/composite.rb, line 253 def cget_strict(slot) if (ret = __cget_delegates(slot)) == None super(slot) else ret end end
# File tk/lib/tk/composite.rb, line 237 def cget_tkstring(slot) if (ret = __cget_delegates(slot)) == None super(slot) else _get_eval_string(ret) end end
# File tk/lib/tk/composite.rb, line 332 def configinfo(slot = nil) if TkComm::GET_CONFIGINFO_AS_ARRAY if slot slot = slot.to_s if @option_methods.include?(slot) if @option_methods[slot][:info] return self.__send__(@option_methods[slot][:info]) else return [slot, '', '', '', self.cget(slot)] end end tbl = @delegates[slot] tbl = @delegates['DEFAULT'] unless tbl begin if tbl if tbl.length == 1 opt, wins = tbl[0] if slot == opt || opt == 'DEFAULT' return wins[-1].configinfo(slot) else info = wins[-1].configinfo(opt) info[0] = slot return info end else opt, wins = tbl[-1] return [slot, '', '', '', wins[-1].cget(opt)] end end rescue end super(slot) else # slot == nil info_list = super(slot) tbl = @delegates['DEFAULT'] if tbl wins = tbl[0][1] if wins && wins[-1] wins[-1].configinfo.each{|info| slot = info[0] info_list.delete_if{|i| i[0] == slot} << info } end end @delegates.each{|slot, tbl| next if slot == 'DEFAULT' if tbl.length == 1 opt, wins = tbl[0] next unless wins && wins[-1] if slot == opt info_list.delete_if{|i| i[0] == slot} << wins[-1].configinfo(slot) else info = wins[-1].configinfo(opt) info[0] = slot info_list.delete_if{|i| i[0] == slot} << info end else opt, wins = tbl[-1] info_list.delete_if{|i| i[0] == slot} << [slot, '', '', '', wins[-1].cget(opt)] end } @option_methods.each{|slot, m| if m[:info] info = self.__send__(m[:info]) else info = [slot, '', '', '', self.cget(slot)] end info_list.delete_if{|i| i[0] == slot} << info } info_list end else # ! TkComm::GET_CONFIGINFO_AS_ARRAY if slot slot = slot.to_s if @option_methods.include?(slot) if @option_methods[slot][:info] return self.__send__(@option_methods[slot][:info]) else return {slot => ['', '', '', self.cget(slot)]} end end tbl = @delegates[slot] tbl = @delegates['DEFAULT'] unless tbl begin if tbl if tbl.length == 1 opt, wins = tbl[0] if slot == opt || opt == 'DEFAULT' return wins[-1].configinfo(slot) else return {slot => wins[-1].configinfo(opt)[opt]} end else opt, wins = tbl[-1] return {slot => ['', '', '', wins[-1].cget(opt)]} end end rescue end super(slot) else # slot == nil info_list = super(slot) tbl = @delegates['DEFAULT'] if tbl wins = tbl[0][1] info_list.update(wins[-1].configinfo) if wins && wins[-1] end @delegates.each{|slot, tbl| next if slot == 'DEFAULT' if tbl.length == 1 opt, wins = tbl[0] next unless wins && wins[-1] if slot == opt info_list.update(wins[-1].configinfo(slot)) else info_list.update({slot => wins[-1].configinfo(opt)[opt]}) end else opt, wins = tbl[-1] info_list.update({slot => ['', '', '', wins[-1].cget(opt)]}) end } @option_methods.each{|slot, m| if m[:info] info = self.__send__(m[:info]) else info = {slot => ['', '', '', self.cget(slot)]} end info_list.update(info) } info_list end end end
def cget(slot)
slot = slot.to_s if @option_methods.include?(slot) if @option_methods[slot][:cget] return self.__send__(@option_methods[slot][:cget]) else if @option_setting[slot] return @option_setting[slot] else return '' end end end tbl = @delegates[slot] tbl = @delegates['DEFAULT'] unless tbl begin if tbl opt, wins = tbl[-1] opt = slot if opt == 'DEFAULT' if wins && wins[-1] return wins[-1].cget(opt) end end rescue end super(slot)
end
# File tk/lib/tk/composite.rb, line 295 def configure(slot, value=None) if slot.kind_of? Hash slot.each{|slot,value| configure slot, value} return self end slot = slot.to_s if @option_methods.include?(slot) unless @option_methods[slot][:cget] if value.kind_of?(Symbol) @option_setting[slot] = value.to_s else @option_setting[slot] = value end end return self.__send__(@option_methods[slot][:set], value) end tbl = @delegates[slot] tbl = @delegates['DEFAULT'] unless tbl begin if tbl last = nil tbl.each{|opt, wins| opt = slot if opt == 'DEFAULT' wins.each{|w| last = w.configure(opt, value)} } return last end rescue end super(slot, value) end
# File tk/lib/tk/composite.rb, line 133 def database_class @frame.database_class end
# File tk/lib/tk/composite.rb, line 129 def database_classname @frame.database_classname end
# File tk/lib/tk/composite.rb, line 199 def delegate(option, *wins) delegate_alias(option, option, *wins) end
# File tk/lib/tk/composite.rb, line 179 def delegate_alias(alias_opt, option, *wins) if wins.length == 0 fail ArgumentError, "target widgets are not given" end if alias_opt != option && (alias_opt == 'DEFAULT' || option == 'DEFAULT') fail ArgumentError, "cannot alias 'DEFAULT' option" end alias_opt = alias_opt.to_s option = option.to_s if @delegates[alias_opt].kind_of?(Array) if (elem = @delegates[alias_opt].assoc(option)) wins.each{|w| elem[1].push(w)} else @delegates[alias_opt] << [option, wins] end else @delegates[alias_opt] = [ [option, wins] ] end end
# File tk/lib/tk/composite.rb, line 144 def inspect str = super str.chop << ' @epath=' << @epath.inspect << '>' end
# File tk/lib/tk/composite.rb, line 159 def option_methods(*opts) if opts.size == 1 && opts[0].kind_of?(Hash) # {name => [m_set, m_cget, m_info], name => method} style opts[0].each{|name, arg| m_set, m_cget, m_info = _get_opt_method_list(arg) @option_methods[name.to_s] = { :set => m_set, :cget => m_cget, :info => m_info } } else # [m_set, m_cget, m_info] or method style opts.each{|arg| m_set, m_cget, m_info = _get_opt_method_list(arg) @option_methods[m_set] = { :set => m_set, :cget => m_cget, :info => m_info } } end end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.