In Files

  • tk/lib/tkextlib/bwidget/messagedlg.rb

Class/Module Index [+]

Quicksearch

Tk::BWidget::MessageDlg

Public Class Methods

new(parent=nil, keys=nil) click to toggle source
 
               # File tk/lib/tkextlib/bwidget/messagedlg.rb, line 22
def initialize(parent=nil, keys=nil)
  @relative = ''
  if parent.kind_of?(Hash)
    keys = _symbolkey2str(parent)
    @relative = keys['parent'] if keys.key?('parent')
    @relative = keys.delete('relative') if keys.key?('relative')
    super(keys)
  elsif keys
    keys = _symbolkey2str(keys)
    @relative = keys.delete('parent') if keys.key?('parent')
    @relative = keys.delete('relative') if keys.key?('relative')
    super(parent, keys)
  else
    super(parent)
  end
end
            

Public Instance Methods

cget(slot) click to toggle source
 
               # File tk/lib/tkextlib/bwidget/messagedlg.rb, line 57
def cget(slot)
  slot = slot.to_s
  if slot == 'relative'
    slot = 'parent'
  end
  if winfo_exist?
    val = super(slot)
    @keys[slot] = val
  end
  @keys[slot]
end
            
configinfo(slot=nil) click to toggle source
 
               # File tk/lib/tkextlib/bwidget/messagedlg.rb, line 123
def configinfo(slot=nil)
  if winfo_exist?
    @info = super()
    if TkComm::GET_CONFIGINFO_AS_ARRAY
      @info << ['relative', 'parent']
    else
      @info['relative'] = 'parent'
    end
  end

  if TkComm::GET_CONFIGINFO_AS_ARRAY
    if @info
      if winfo_exist?
        # update @keys
        @info.each{|inf| @keys[inf[0]] = inf[-1] if inf.size > 2 }
      end
    else
      @info = []
      @keys.each{|k, v|
        @info << [k, '', '', '', v]
      }
      @info << ['relative', 'parent']
    end

    if slot
      @info.asoc(slot.to_s).dup
    else
      @info.dup
    end

  else # ! TkComm::GET_CONFIGINFO_AS_ARRAY
    if @info
      if winfo_exist?
        # update @keys
        @info.each{|k, inf| @keys[k] = inf[-1] if inf.size > 2 }
      end
    else
      @info = {}
      @keys.each{|k, v|
        @info[k] = ['', '', '', v]
      }
      @info['relative'] = 'parent'
    end

    if slot
      @info[slot.to_s].dup
    else
      @info.dup
    end
  end
end
            
configure(slot, value=None) click to toggle source
 
               # File tk/lib/tkextlib/bwidget/messagedlg.rb, line 69
def configure(slot, value=None)
  if winfo_exist?
    super(slot, value)
  end
  if slot.kind_of?(Hash)
    slot = _symbolkey2str(slot)
    slot['parent'] = slot.delete('relative') if slot.key?('relative')
    @keys.update(slot)

    if @info
      # update @info
      slot.each{|k, v|
        if TkComm::GET_CONFIGINFO_AS_ARRAY
          if (inf = @info.assoc(k))
            inf[-1] = v
          else
            @info << [k, '', '', '', v]
          end
        else
          if (inf = @info[k])
            inf[-1] = v
          else
            @info[k] = ['', '', '', v]
          end
        end
      }
    end

  else # ! Hash
    slot = slot.to_s
    slot = 'parent' if slot == 'relative'
    @keys[slot] = value

    if @info
      # update @info
      if TkComm::GET_CONFIGINFO_AS_ARRAY
        if (inf = @info.assoc(slot))
          inf[-1] = value
        else
          @info << [slot, '', '', '', value]
        end
      else
        if (inf = @info[slot])
          inf[-1] = value
        else
          @info[slot] = ['', '', '', value]
        end
      end
    end
  end

  self
end
            
create() click to toggle source
 
               # File tk/lib/tkextlib/bwidget/messagedlg.rb, line 175
def create
  num_or_str(tk_call(self.class::TkCommandNames[0], @path, *hash_kv(@keys)))
end