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 23
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 58
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
            
cget_strict(slot) click to toggle source
 
               # File tk/lib/tkextlib/bwidget/messagedlg.rb, line 69
def cget_strict(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 135
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 81
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 187
def create
  # return the index of the pressed button, or nil if it is destroyed
  ret = num_or_str(tk_call(self.class::TkCommandNames[0],
                           @path, *hash_kv(@keys)))
  (ret < 0)? nil: ret
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.