Class | Tk::BWidget::MessageDlg
In: | tk/lib/tkextlib/bwidget/messagedlg.rb
Parent: | TkWindow

### Methods

cget configinfo configure create new

### Constants

TkCommandNames | = | ['MessageDlg'.freeze].freeze
WidgetClassName | = | 'MessageDlg'.freeze

### Public Class methods

new(parent=nil, keys=nil)

[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)

[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)

[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)

[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()

[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

[Validate]