Class TkWindow
In: tk/lib/tkextlib/tktrans/tktrans.rb
tk/lib/tkextlib/tkDND/tkdnd.rb
tk/lib/tkextlib/tkDND/shape.rb
tk/lib/tkextlib/tcllib/cursor.rb
tk/lib/tk.rb
Parent: Object

Methods

bind_class   bindtags   bindtags=   bindtags_shift   bindtags_unshift   caret   colormodel   command   current_grab   cursor_propagate   cursor_restore   database_class   database_class   database_classname   database_classname   destroy   eventloop_tkwait   eventloop_tkwait_destroy   eventloop_tkwait_visibility   eventloop_tkwait_window   eventloop_wait   eventloop_wait_destroy   eventloop_wait_visibility   eventloop_wait_window   exist?   focus   grab   grab_current   grab_release   grab_set   grab_set_global   grab_status   grid   grid_bbox   grid_columnconfig   grid_columnconfiginfo   grid_columnconfigure   grid_config   grid_configure   grid_forget   grid_in   grid_info   grid_location   grid_propagate   grid_remove   grid_rowconfig   grid_rowconfiginfo   grid_rowconfigure   grid_size   grid_slaves   lower   lower_window   new   pack   pack_config   pack_configure   pack_forget   pack_in   pack_info   pack_propagate   pack_slaves   place   place_config   place_configinfo   place_configure   place_forget   place_in   place_info   place_slaves   raise   raise_window   release_grab   set_focus   set_global_grab   set_grab   thread_tkwait   thread_tkwait_destroy   thread_tkwait_visibility   thread_tkwait_window   thread_wait   thread_wait_destroy   thread_wait_visibility   thread_wait_window   tktrans_get_image   tktrans_set_image   tkwait   tkwait_destroy   tkwait_window   to_eval   ungrid   unpack   unplace   wait   wait_destroy   wait_visibility   wait_window  

Included Modules

Tk::TkDND::DND Tk::TkDND::Shape TkWinfo

Constants

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

> If TkCommandNames[0] is a string (not a null string),

    assume the string is a Tcl/Tk's create command of the widget class.

Public Class methods

[Source]

# File tk/lib/tk.rb, line 3947
  def self.database_class
    WidgetClassNames[self::WidgetClassName]
  end

[Source]

# File tk/lib/tk.rb, line 3944
  def self.database_classname
    self::WidgetClassName
  end

[Source]

# File tk/lib/tk.rb, line 3834
  def initialize(parent=nil, keys=nil)
    if parent.kind_of? Hash
      keys = _symbolkey2str(parent)
      parent = keys.delete('parent')
      widgetname = keys.delete('widgetname')
      install_win(if parent then parent.path end, widgetname)
      without_creating = keys.delete('without_creating')
      # if without_creating && !widgetname 
      #   fail ArgumentError, 
      #        "if set 'without_creating' to true, need to define 'widgetname'"
      # end
    elsif keys
      keys = _symbolkey2str(keys)
      widgetname = keys.delete('widgetname')
      install_win(if parent then parent.path end, widgetname)
      without_creating = keys.delete('without_creating')
      # if without_creating && !widgetname 
      #   fail ArgumentError, 
      #        "if set 'without_creating' to true, need to define 'widgetname'"
      # end
    else
      install_win(if parent then parent.path end)
    end
    if self.method(:create_self).arity == 0
      p 'create_self has no arg' if $DEBUG
      create_self unless without_creating
      if keys
        # tk_call @path, 'configure', *hash_kv(keys)
        configure(keys)
      end
    else
      p 'create_self has args' if $DEBUG
      fontkeys = {}
      methodkeys = {}
      if keys
        #['font', 'kanjifont', 'latinfont', 'asciifont'].each{|key|
        #  fontkeys[key] = keys.delete(key) if keys.key?(key)
        #}
        __font_optkeys.each{|key|
          fkey = key.to_s
          fontkeys[fkey] = keys.delete(fkey) if keys.key?(fkey)

          fkey = "kanji#{key}"
          fontkeys[fkey] = keys.delete(fkey) if keys.key?(fkey)

          fkey = "latin#{key}"
          fontkeys[fkey] = keys.delete(fkey) if keys.key?(fkey)

          fkey = "ascii#{key}"
          fontkeys[fkey] = keys.delete(fkey) if keys.key?(fkey)
        }

        __methodcall_optkeys.each{|key|
          key = key.to_s
          methodkeys[key] = keys.delete(key) if keys.key?(key)
        }

        __ruby2val_optkeys.each{|key, method|
          key = key.to_s
          keys[key] = method.call(keys[key]) if keys.has_key?(key)
        }
      end
      if without_creating && keys
        #configure(keys)
        configure(__conv_keyonly_opts(keys))
      else
        #create_self(keys)
        create_self(__conv_keyonly_opts(keys))
      end
      font_configure(fontkeys) unless fontkeys.empty?
      configure(methodkeys) unless methodkeys.empty?
    end
  end

WidgetClassNames[WidgetClassName] = self

 ==> If self is a widget class, entry to the WidgetClassNames table.

[Source]

# File tk/lib/tk.rb, line 3830
  def self.to_eval
    self::WidgetClassName
  end

Public Instance methods

[Source]

# File tk/lib/tk.rb, line 3929
  def bind_class
    @db_class || self.class()
  end

[Source]

# File tk/lib/tk.rb, line 4396
  def bindtags(taglist=nil)
    if taglist
      fail ArgumentError, "taglist must be Array" unless taglist.kind_of? Array
      tk_call('bindtags', path, taglist)
      taglist
    else
      list(tk_call('bindtags', path)).collect{|tag|
        if tag.kind_of?(String) 
          if cls = WidgetClassNames[tag]
            cls
          elsif btag = TkBindTag.id2obj(tag)
            btag
          else
            tag
          end
        else
          tag
        end
      }
    end
  end

[Source]

# File tk/lib/tk.rb, line 4418
  def bindtags=(taglist)
    bindtags(taglist)
    taglist
  end

[Source]

# File tk/lib/tk.rb, line 4423
  def bindtags_shift
    taglist = bindtags
    tag = taglist.shift
    bindtags(taglist)
    tag
  end

[Source]

# File tk/lib/tk.rb, line 4430
  def bindtags_unshift(tag)
    bindtags(bindtags().unshift(tag))
  end

[Source]

# File tk/lib/tk.rb, line 4307
  def caret(keys=nil)
    TkXIM.caret(path, keys)
  end

[Source]

# File tk/lib/tk.rb, line 4302
  def colormodel(model=None)
    tk_call('tk', 'colormodel', path, model)
    self
  end

[Source]

# File tk/lib/tk.rb, line 4292
  def command(cmd=nil, &b)
    if cmd
      configure_cmd('command', cmd)
    elsif b
      configure_cmd('command', Proc.new(&b))
    else
      cget('command')
    end
  end
current_grab()

Alias for grab_current

[Source]

# File tk/lib/tkextlib/tcllib/cursor.rb, line 56
  def cursor_propagate(cursor)
    # Sets the cursor for self and all its descendants to cursor. 
    #tk_call_without_enc('::cursor::propagate', @path, cursor)
    Tk::Tcllib::Cursor.cursor_propagate(self, cursor)
  end

[Source]

# File tk/lib/tkextlib/tcllib/cursor.rb, line 61
  def cursor_restore(cursor = None)
    # Restore the original or previously set cursor for self and all its 
    # descendants. If cursor is specified, that will be used if on any 
    # widget that did not have a preset cursor (set by a previous call 
    # to TkWindow#cursor_propagate). 
    #tk_call_without_enc('::cursor::restore', @path, cursor)
    Tk::Tcllib::Cursor.cursor_restore(self, cursor)
  end

[Source]

# File tk/lib/tk.rb, line 3936
  def database_class
    name = database_classname()
    if WidgetClassNames[name]
      WidgetClassNames[name]
    else
      TkDatabaseClass.new(name)
    end
  end

[Source]

# File tk/lib/tk.rb, line 3933
  def database_classname
    TkWinfo.classname(self)
  end

[Source]

# File tk/lib/tk.rb, line 4311
  def destroy
    super
    children = []
    rexp = /^#{self.path}\.[^.]+$/
    TkCore::INTERP.tk_windows.each{|path, obj|
      children << [path, obj] if path =~ rexp
    }
    if defined?(@cmdtbl)
      for id in @cmdtbl
        uninstall_cmd id
      end
    end

    children.each{|path, obj|
      if defined?(@cmdtbl)
        for id in @cmdtbl
          uninstall_cmd id
        end
      end
      TkCore::INTERP.tk_windows.delete(path)
    }

    begin
      tk_call_without_enc('destroy', epath)
    rescue
    end
    uninstall_win
  end
eventloop_tkwait()
eventloop_tkwait_destroy()
eventloop_tkwait_visibility()
eventloop_tkwait_window()
eventloop_wait()

[Source]

# File tk/lib/tk.rb, line 4378
  def eventloop_wait_destroy
    wait_destroy(false)
  end

[Source]

# File tk/lib/tk.rb, line 4351
  def eventloop_wait_visibility
    wait_visibility(false)
  end
eventloop_wait_window()

[Source]

# File tk/lib/tk.rb, line 3925
  def exist?
    TkWinfo.exist?(self)
  end
focus(force=false)

Alias for set_focus

[Source]

# File tk/lib/tk.rb, line 4230
  def grab(opt = nil)
    unless opt
      tk_call_without_enc('grab', 'set', path)
      return self
    end

    case opt
    when 'set', :set
      tk_call_without_enc('grab', 'set', path)
      return self
    when 'global', :global
      #return(tk_call('grab', 'set', '-global', path))
      tk_call_without_enc('grab', 'set', '-global', path)
      return self
    when 'release', :release
      #return tk_call('grab', 'release', path)
      tk_call_without_enc('grab', 'release', path)
      return self
    when 'current', :current
      return window(tk_call_without_enc('grab', 'current', path))
    when 'status', :status
      return tk_call_without_enc('grab', 'status', path)
    else
      return tk_call_without_enc('grab', opt, path)
    end
  end

[Source]

# File tk/lib/tk.rb, line 4257
  def grab_current
    grab('current')
  end

[Source]

# File tk/lib/tk.rb, line 4261
  def grab_release
    grab('release')
  end

[Source]

# File tk/lib/tk.rb, line 4265
  def grab_set
    grab('set')
  end

[Source]

# File tk/lib/tk.rb, line 4269
  def grab_set_global
    grab('global')
  end

[Source]

# File tk/lib/tk.rb, line 4273
  def grab_status
    grab('status')
  end

[Source]

# File tk/lib/tk.rb, line 4024
  def grid(keys = nil)
    #tk_call 'grid', epath, *hash_kv(keys)
    if keys
      TkGrid.configure(self, keys)
    else
      TkGrid.configure(self)
    end
    self
  end

[Source]

# File tk/lib/tk.rb, line 4053
  def grid_bbox(*args)
    #list(tk_call('grid', 'bbox', epath, *args))
    TkGrid.bbox(self, *args)
  end

[Source]

# File tk/lib/tk.rb, line 4072
  def grid_columnconfig(index, keys)
    #tk_call('grid', 'columnconfigure', epath, index, *hash_kv(keys))
    TkGrid.columnconfigure(self, index, keys)
  end

[Source]

# File tk/lib/tk.rb, line 4084
  def grid_columnconfiginfo(index, slot=nil)
    #if slot
    #  tk_call('grid', 'columnconfigure', epath, index, "-#{slot}").to_i
    #else
    #  ilist = list(tk_call('grid', 'columnconfigure', epath, index))
    #  info = {}
    #  while key = ilist.shift
    #   info[key[1..-1]] = ilist.shift
    #  end
    #  info
    #end
    TkGrid.columnconfiginfo(self, index, slot)
  end
grid_columnconfigure(index, keys)

Alias for grid_columnconfig

[Source]

# File tk/lib/tk.rb, line 4058
  def grid_config(slot, value=None)
    #if slot.kind_of? Hash
    #  tk_call 'grid', 'configure', epath, *hash_kv(slot)
    #else
    #  tk_call 'grid', 'configure', epath, "-#{slot}", value
    #end
    if slot.kind_of? Hash
      TkGrid.configure(self, slot)
    else
      TkGrid.configure(self, slot=>value)
    end
  end
grid_configure(slot, value=None)

Alias for grid_config

[Source]

# File tk/lib/tk.rb, line 4046
  def grid_forget
    #tk_call('grid', 'forget', epath)
    TkGrid.forget(self)
    self
  end

[Source]

# File tk/lib/tk.rb, line 4034
  def grid_in(target, keys = nil)
    if keys
      keys = keys.dup
      keys['in'] = target
    else
      keys = {'in'=>target}
    end
    #tk_call 'grid', epath, *hash_kv(keys)
    TkGrid.configure(self, keys)
    self
  end

[Source]

# File tk/lib/tk.rb, line 4112
  def grid_info()
    #list(tk_call('grid', 'info', epath))
    TkGrid.info(self)
  end

[Source]

# File tk/lib/tk.rb, line 4117
  def grid_location(x, y)
    #list(tk_call('grid', 'location', epath, x, y))
    TkGrid.location(self, x, y)
  end

[Source]

# File tk/lib/tk.rb, line 4122
  def grid_propagate(mode=None)
    #if mode == None
    #  bool(tk_call('grid', 'propagate', epath))
    #else
    #  tk_call('grid', 'propagate', epath, mode)
    #  self
    #end
    if mode == None
      TkGrid.propagate(self)
    else
      TkGrid.propagate(self, mode)
      self
    end
  end

[Source]

# File tk/lib/tk.rb, line 4137
  def grid_remove()
    #tk_call 'grid', 'remove', epath
    TkGrid.remove(self)
    self
  end

[Source]

# File tk/lib/tk.rb, line 4078
  def grid_rowconfig(index, keys)
    #tk_call('grid', 'rowconfigure', epath, index, *hash_kv(keys))
    TkGrid.rowconfigure(self, index, keys)
  end

[Source]

# File tk/lib/tk.rb, line 4098
  def grid_rowconfiginfo(index, slot=nil)
    #if slot
    #  tk_call('grid', 'rowconfigure', epath, index, "-#{slot}").to_i
    #else
    #  ilist = list(tk_call('grid', 'rowconfigure', epath, index))
    #  info = {}
    #  while key = ilist.shift
    #   info[key[1..-1]] = ilist.shift
    #  end
    #  info
    #end
    TkGrid.rowconfiginfo(self, index, slot)
  end
grid_rowconfigure(index, keys)

Alias for grid_rowconfig

[Source]

# File tk/lib/tk.rb, line 4143
  def grid_size()
    #list(tk_call('grid', 'size', epath))
    TkGrid.size(self)
  end

[Source]

# File tk/lib/tk.rb, line 4148
  def grid_slaves(args)
    #list(tk_call('grid', 'slaves', epath, *hash_kv(args)))
    TkGrid.slaves(self, args)
  end

[Source]

# File tk/lib/tk.rb, line 4277
  def lower(below=None)
    # below = below.epath if below.kind_of?(TkObject)
    below = _epath(below)
    tk_call 'lower', epath, below
    self
  end
lower_window(below=None)

Alias for lower

[Source]

# File tk/lib/tk.rb, line 3951
  def pack(keys = nil)
    #tk_call_without_enc('pack', epath, *hash_kv(keys, true))
    if keys
      TkPack.configure(self, keys)
    else
      TkPack.configure(self)
    end
    self
  end

[Source]

# File tk/lib/tk.rb, line 3980
  def pack_config(slot, value=None)
    #if slot.kind_of? Hash
    #  tk_call 'pack', 'configure', epath, *hash_kv(slot)
    #else
    #  tk_call 'pack', 'configure', epath, "-#{slot}", value
    #end
    if slot.kind_of? Hash
      TkPack.configure(self, slot)
    else
      TkPack.configure(self, slot=>value)
    end
  end
pack_configure(slot, value=None)

Alias for pack_config

[Source]

# File tk/lib/tk.rb, line 3973
  def pack_forget
    #tk_call_without_enc('pack', 'forget', epath)
    TkPack.forget(self)
    self
  end

[Source]

# File tk/lib/tk.rb, line 3961
  def pack_in(target, keys = nil)
    if keys
      keys = keys.dup
      keys['in'] = target
    else
      keys = {'in'=>target}
    end
    #tk_call 'pack', epath, *hash_kv(keys)
    TkPack.configure(self, keys)
    self
  end

[Source]

# File tk/lib/tk.rb, line 3994
  def pack_info()
    #ilist = list(tk_call('pack', 'info', epath))
    #info = {}
    #while key = ilist.shift
    #  info[key[1..-1]] = ilist.shift
    #end
    #return info
    TkPack.info(self)
  end

[Source]

# File tk/lib/tk.rb, line 4004
  def pack_propagate(mode=None)
    #if mode == None
    #  bool(tk_call('pack', 'propagate', epath))
    #else
    #  tk_call('pack', 'propagate', epath, mode)
    #  self
    #end
    if mode == None
      TkPack.propagate(self)
    else
      TkPack.propagate(self, mode)
      self
    end
  end

[Source]

# File tk/lib/tk.rb, line 4019
  def pack_slaves()
    #list(tk_call('pack', 'slaves', epath))
    TkPack.slaves(self)
  end

[Source]

# File tk/lib/tk.rb, line 4153
  def place(keys)
    #tk_call 'place', epath, *hash_kv(keys)
    TkPlace.configure(self, keys)
    self
  end

[Source]

# File tk/lib/tk.rb, line 4178
  def place_config(slot, value=None)
    #if slot.kind_of? Hash
    #  tk_call 'place', 'configure', epath, *hash_kv(slot)
    #else
    #  tk_call 'place', 'configure', epath, "-#{slot}", value
    #end
    TkPlace.configure(self, slot, value)
  end

[Source]

# File tk/lib/tk.rb, line 4188
  def place_configinfo(slot = nil)
    # for >= Tk8.4a2 ?
    #if slot
    #  conf = tk_split_list(tk_call('place', 'configure', epath, "-#{slot}") )
    #  conf[0] = conf[0][1..-1]
    #  conf
    #else
    #  tk_split_simplelist(tk_call('place', 
    #                             'configure', epath)).collect{|conflist|
    #   conf = tk_split_simplelist(conflist)
    #   conf[0] = conf[0][1..-1]
    #   conf
    #  }
    #end
    TkPlace.configinfo(self, slot)
  end
place_configure(slot, value=None)

Alias for place_config

[Source]

# File tk/lib/tk.rb, line 4171
  def  place_forget
    #tk_call 'place', 'forget', epath
    TkPlace.forget(self)
    self
  end

[Source]

# File tk/lib/tk.rb, line 4159
  def place_in(target, keys = nil)
    if keys
      keys = keys.dup
      keys['in'] = target
    else
      keys = {'in'=>target}
    end
    #tk_call 'place', epath, *hash_kv(keys)
    TkPlace.configure(self, keys)
    self
  end

[Source]

# File tk/lib/tk.rb, line 4205
  def place_info()
    #ilist = list(tk_call('place', 'info', epath))
    #info = {}
    #while key = ilist.shift
    #  info[key[1..-1]] = ilist.shift
    #end
    #return info
    TkPlace.info(self)
  end

[Source]

# File tk/lib/tk.rb, line 4215
  def place_slaves()
    #list(tk_call('place', 'slaves', epath))
    TkPlace.slaves(self)
  end

[Source]

# File tk/lib/tk.rb, line 4284
  def raise(above=None)
    #above = above.epath if above.kind_of?(TkObject)
    above = _epath(above)
    tk_call 'raise', epath, above
    self
  end
raise_window(above=None)

Alias for raise

release_grab()

Alias for grab_release

[Source]

# File tk/lib/tk.rb, line 4220
  def set_focus(force=false)
    if force
      tk_call_without_enc('focus', '-force', path)
    else
      tk_call_without_enc('focus', path)
    end
    self
  end
set_global_grab()

Alias for grab_set_global

set_grab()

Alias for grab_set

thread_tkwait()
thread_tkwait_destroy()
thread_tkwait_visibility()
thread_tkwait_window()
thread_wait()

[Source]

# File tk/lib/tk.rb, line 4382
  def thread_wait_destroy
    wait_destroy(true)
  end

[Source]

# File tk/lib/tk.rb, line 4354
  def thread_wait_visibility
    wait_visibility(true)
  end
thread_wait_window()

[Source]

# File tk/lib/tkextlib/tktrans/tktrans.rb, line 37
  def tktrans_get_image()
    tk_send('tktrans::setwidget', @path)
  end

[Source]

# File tk/lib/tkextlib/tktrans/tktrans.rb, line 33
  def tktrans_set_image(img)
    tk_send('tktrans::setwidget', @path, img)
    self
  end
tkwait(on_thread = true)

Alias for wait_visibility

tkwait_destroy(on_thread = true)

Alias for wait_destroy

tkwait_window(on_thread = true)

Alias for wait_destroy

ungrid()

Alias for grid_forget

unpack()

Alias for pack_forget

unplace()

Alias for place_forget

wait(on_thread = true)

Alias for wait_visibility

[Source]

# File tk/lib/tk.rb, line 4366
  def wait_destroy(on_thread = true)
    if $SAFE >= 4
      fail SecurityError, "can't wait destroy at $SAFE >= 4"
    end
    on_thread &= (Thread.list.size != 1)
    if on_thread
      INTERP._thread_tkwait('window', epath)
    else
      INTERP._invoke('tkwait', 'window', epath)
    end
  end

[Source]

# File tk/lib/tk.rb, line 4340
  def wait_visibility(on_thread = true)
    if $SAFE >= 4
      fail SecurityError, "can't wait visibility at $SAFE >= 4"
    end
    on_thread &= (Thread.list.size != 1)
    if on_thread
      INTERP._thread_tkwait('visibility', path)
    else
      INTERP._invoke('tkwait', 'visibility', path)
    end
  end
wait_window(on_thread = true)

Alias for wait_destroy

[Validate]