In Files

  • tk/lib/tk/canvas.rb
  • tk/lib/tkextlib/blt/eps.rb

Class/Module Index [+]

Quicksearch

Tk::Canvas

Public Instance Methods

__BLT_EPS_item_boolval_optkeys(id) click to toggle source
__BLT_EPS_item_strval_optkeys(id) click to toggle source
__destroy_hook__() click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 50
def __destroy_hook__
  TkcItem::CItemID_TBL.delete(@path)
end
            
addtag(tag, mode, *args) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 89
def addtag(tag, mode, *args)
  mode = mode.to_s
  if args[0] && mode =~ /^(above|below|with(tag)?)$/
    args[0] = tagid(args[0])
  end
  tk_send_without_enc('addtag', tagid(tag), mode, *args)
  self
end
            
addtag_above(tagOrId, target) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 97
def addtag_above(tagOrId, target)
  addtag(tagOrId, 'above', tagid(target))
end
            
addtag_all(tagOrId) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 100
def addtag_all(tagOrId)
  addtag(tagOrId, 'all')
end
            
addtag_below(tagOrId, target) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 103
def addtag_below(tagOrId, target)
  addtag(tagOrId, 'below', tagid(target))
end
            
addtag_closest(tagOrId, x, y, halo=None, start=None) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 106
def addtag_closest(tagOrId, x, y, halo=None, start=None)
  addtag(tagOrId, 'closest', x, y, halo, start)
end
            
addtag_enclosed(tagOrId, x1, y1, x2, y2) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 109
def addtag_enclosed(tagOrId, x1, y1, x2, y2)
  addtag(tagOrId, 'enclosed', x1, y1, x2, y2)
end
            
addtag_overlapping(tagOrId, x1, y1, x2, y2) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 112
def addtag_overlapping(tagOrId, x1, y1, x2, y2)
  addtag(tagOrId, 'overlapping', x1, y1, x2, y2)
end
            
addtag_withtag(tagOrId, tag) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 115
def addtag_withtag(tagOrId, tag)
  addtag(tagOrId, 'withtag', tagid(tag))
end
            
bbox(tagOrId, *tags) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 119
def bbox(tagOrId, *tags)
  list(tk_send_without_enc('bbox', tagid(tagOrId), 
                           *tags.collect{|t| tagid(t)}))
end
            
canvas_x(screen_x, *args) click to toggle source
Alias for: canvasx
canvas_y(screen_y, *args) click to toggle source
Alias for: canvasy
canvasx(screen_x, *args) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 163
def canvasx(screen_x, *args)
  #tk_tcl2ruby(tk_send_without_enc('canvasx', screen_x, *args))
  number(tk_send_without_enc('canvasx', screen_x, *args))
end
            
Also aliased as: canvas_x
canvasy(screen_y, *args) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 167
def canvasy(screen_y, *args)
  #tk_tcl2ruby(tk_send_without_enc('canvasy', screen_y, *args))
  number(tk_send_without_enc('canvasy', screen_y, *args))
end
            
Also aliased as: canvas_y
coords(tag, *args) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 174
def coords(tag, *args)
  if args == []
    tk_split_list(tk_send_without_enc('coords', tagid(tag)))
  else
    tk_send_without_enc('coords', tagid(tag), *(args.flatten))
    self
  end
end
            
create(type, *args) click to toggle source

create a canvas item without creating a TkcItem object

 
               # File tk/lib/tk/canvas.rb, line 84
def create(type, *args)
  type.create(self, *args)
end
            
dchars(tag, first, last=None) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 183
def dchars(tag, first, last=None)
  tk_send_without_enc('dchars', tagid(tag), 
                      _get_eval_enc_str(first), _get_eval_enc_str(last))
  self
end
            
delete(*args) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 189
def delete(*args)
  tbl = nil
  TkcItem::CItemID_TBL.mutex.synchronize{
    tbl = TkcItem::CItemID_TBL[self.path]
  }
  if tbl
    args.each{|tag|
      find('withtag', tag).each{|item|
        if item.kind_of?(TkcItem)
          TkcItem::CItemID_TBL.mutex.synchronize{
            tbl.delete(item.id)
          }
        end
      }
    }
  end
  tk_send_without_enc('delete', *args.collect{|t| tagid(t)})
  self
end
            
Also aliased as: remove
deltag(tag, tag_to_del=None) click to toggle source
Alias for: dtag
dtag(tag, tag_to_del=None) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 210
def dtag(tag, tag_to_del=None)
  tk_send_without_enc('dtag', tagid(tag), tagid(tag_to_del))
  self
end
            
Also aliased as: deltag
find(mode, *args) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 216
def find(mode, *args)
  list(tk_send_without_enc('find', mode, *args)).collect!{|id| 
    TkcItem.id2obj(self, id)
  }
end
            
find_above(target) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 221
def find_above(target)
  find('above', tagid(target))
end
            
find_all() click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 224
def find_all
  find('all')
end
            
find_below(target) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 227
def find_below(target)
  find('below', tagid(target))
end
            
find_closest(x, y, halo=None, start=None) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 230
def find_closest(x, y, halo=None, start=None)
  find('closest', x, y, halo, start)
end
            
find_enclosed(x1, y1, x2, y2) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 233
def find_enclosed(x1, y1, x2, y2)
  find('enclosed', x1, y1, x2, y2)
end
            
find_overlapping(x1, y1, x2, y2) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 236
def find_overlapping(x1, y1, x2, y2)
  find('overlapping', x1, y1, x2, y2)
end
            
find_withtag(tag) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 239
def find_withtag(tag)
  find('withtag', tag)
end
            
gettags(tagOrId) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 257
def gettags(tagOrId)
  list(tk_send_without_enc('gettags', tagid(tagOrId))).collect{|tag|
    TkcTag.id2obj(self, tag)
  }
end
            
icursor(tagOrId, index) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 263
def icursor(tagOrId, index)
  tk_send_without_enc('icursor', tagid(tagOrId), index)
  self
end
            
index(tagOrId, idx) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 268
def index(tagOrId, idx)
  number(tk_send_without_enc('index', tagid(tagOrId), idx))
end
            
insert(tagOrId, index, string) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 272
def insert(tagOrId, index, string)
  tk_send_without_enc('insert', tagid(tagOrId), index, 
                      _get_eval_enc_str(string))
  self
end
            
itembind(tag, context, *args) click to toggle source

def itembind(tag, context, cmd=Proc.new, *args)

_bind([path, "bind", tagid(tag)], context, cmd, *args)
self

end

 
               # File tk/lib/tk/canvas.rb, line 128
def itembind(tag, context, *args)
  # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
  if TkComm._callback_entry?(args[0]) || !block_given?
    cmd = args.shift
  else
    cmd = Proc.new
  end
  _bind([path, "bind", tagid(tag)], context, cmd, *args)
  self
end
            
itembind_append(tag, context, *args) click to toggle source

def #itembind_append(tag, context, cmd=Proc.new, *args)

_bind_append([path, "bind", tagid(tag)], context, cmd, *args)
self

end

 
               # File tk/lib/tk/canvas.rb, line 143
def itembind_append(tag, context, *args)
  # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
  if TkComm._callback_entry?(args[0]) || !block_given?
    cmd = args.shift
  else
    cmd = Proc.new
  end
  _bind_append([path, "bind", tagid(tag)], context, cmd, *args)
  self
end
            
itembind_remove(tag, context) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 154
def itembind_remove(tag, context)
  _bind_remove([path, "bind", tagid(tag)], context)
  self
end
            
itembindinfo(tag, context=nil) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 159
def itembindinfo(tag, context=nil)
  _bindinfo([path, "bind", tagid(tag)], context)
end
            
itemfocus(tagOrId=nil) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 243
def itemfocus(tagOrId=nil)
  if tagOrId
    tk_send_without_enc('focus', tagid(tagOrId))
    self
  else
    ret = tk_send_without_enc('focus')
    if ret == ""
      nil
    else
      TkcItem.id2obj(self, ret)
    end
  end
end
            
itemtype(tag) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 578
def itemtype(tag)
  TkcItem.type2class(tk_send('type', tagid(tag)))
end
            
lower(tag, below=nil) click to toggle source
def itemcget(tagOrId, option)
  case option.to_s
  when 'dash', 'activedash', 'disableddash'
    conf = tk_send_without_enc('itemcget', tagid(tagOrId), "-#{option}")
    if conf =~ /^[0-9]/
      list(conf)
    else
      conf
    end
  when 'text', 'label', 'show', 'data', 'file', 'maskdata', 'maskfile'
    _fromUTF8(tk_send_without_enc('itemcget', tagid(tagOrId), "-#{option}"))
  when 'font', 'kanjifont'
    #fnt = tk_tcl2ruby(tk_send('itemcget', tagid(tagOrId), "-#{option}"))
    fnt = tk_tcl2ruby(_fromUTF8(tk_send_with_enc('itemcget', tagid(tagOrId), '-font')))
    unless fnt.kind_of?(TkFont)
      fnt = tagfontobj(tagid(tagOrId), fnt)
    end
    if option.to_s == 'kanjifont' && JAPANIZED_TK && TK_VERSION =~ /^4\.*/
      # obsolete; just for compatibility
      fnt.kanji_font
    else
      fnt
    end
  else
    tk_tcl2ruby(_fromUTF8(tk_send_without_enc('itemcget', tagid(tagOrId), 
                                              "-#{option}")))
  end
end

def itemconfigure(tagOrId, key, value=None)
  if key.kind_of? Hash
    key = _symbolkey2str(key)
    coords = key.delete('coords')
    self.coords(tagOrId, coords) if coords

    if ( key['font'] || key['kanjifont']          || key['latinfont'] || key['asciifont'] )
      tagfont_configure(tagid(tagOrId), key.dup)
    else
      _fromUTF8(tk_send_without_enc('itemconfigure', tagid(tagOrId), 
                                    *hash_kv(key, true)))
    end

  else
    if ( key == 'coords' || key == :coords )
      self.coords(tagOrId, value)
    elsif ( key == 'font' || key == :font || 
            key == 'kanjifont' || key == :kanjifont || 
            key == 'latinfont' || key == :latinfont || 
            key == 'asciifont' || key == :asciifont )
      if value == None
        tagfontobj(tagid(tagOrId))
      else
        tagfont_configure(tagid(tagOrId), {key=>value})
      end
    else
      _fromUTF8(tk_send_without_enc('itemconfigure', tagid(tagOrId), 
                                    "-#{key}", _get_eval_enc_str(value)))
    end
  end
  self
end

# def itemconfigure(tagOrId, key, value=None) # if key.kind_of? Hash # tk_send ‘itemconfigure’, tagid(tagOrId), *hash_kv(key) # else # tk_send ‘itemconfigure’, tagid(tagOrId), “-#{key}”, value # end # end # def itemconfigure(tagOrId, keys) # tk_send ‘itemconfigure’, tagid(tagOrId), *hash_kv(keys) # end

def itemconfiginfo(tagOrId, key=nil)
  if TkComm::GET_CONFIGINFO_AS_ARRAY
    if key
      case key.to_s
      when 'coords'
        return ['coords', '', '', '', self.coords(tagOrId)]
      when 'dash', 'activedash', 'disableddash'
        conf = tk_split_simplelist(tk_send_without_enc('itemconfigure', tagid(tagOrId), "-#{key}"))
        if conf[3] && conf[3] =~ /^[0-9]/
          conf[3] = list(conf[3])
        end
        if conf[4] && conf[4] =~ /^[0-9]/
          conf[4] = list(conf[4])
        end
      when 'text', 'label', 'show', 'data', 'file', 'maskdata', 'maskfile'
        conf = tk_split_simplelist(_fromUTF8(tk_send_without_enc('itemconfigure', tagid(tagOrId), "-#{key}")))
      when 'font', 'kanjifont'
        conf = tk_split_simplelist(_fromUTF8(tk_send_without_enc('itemconfigure', tagid(tagOrId),"-#{key}")))
        conf[4] = tagfont_configinfo(tagid(tagOrId), conf[4])
      else
        conf = tk_split_list(_fromUTF8(tk_send_without_enc('itemconfigure', tagid(tagOrId), "-#{key}")))
      end
      conf[0] = conf[0][1..-1]
      conf
    else
      ret = tk_split_simplelist(_fromUTF8(tk_send_without_enc('itemconfigure', tagid(tagOrId)))).collect{|conflist|
        conf = tk_split_simplelist(conflist)
        conf[0] = conf[0][1..-1]
        case conf[0]
        when 'text', 'label', 'show', 'data', 'file', 'maskdata', 'maskfile'
        when 'dash', 'activedash', 'disableddash'
          if conf[3] && conf[3] =~ /^[0-9]/
            conf[3] = list(conf[3])
          end
          if conf[4] && conf[4] =~ /^[0-9]/
            conf[4] = list(conf[4])
          end
        else
          if conf[3]
            if conf[3].index('{')
              conf[3] = tk_split_list(conf[3]) 
            else
              conf[3] = tk_tcl2ruby(conf[3]) 
            end
          end
          if conf[4]
            if conf[4].index('{')
              conf[4] = tk_split_list(conf[4]) 
            else
              conf[4] = tk_tcl2ruby(conf[4]) 
            end
          end
        end
        conf[1] = conf[1][1..-1] if conf.size == 2 # alias info
        conf
      }

      fontconf = ret.assoc('font')
      if fontconf
        ret.delete_if{|item| item[0] == 'font' || item[0] == 'kanjifont'}
        fontconf[4] = tagfont_configinfo(tagid(tagOrId), fontconf[4])
        ret.push(fontconf)
      end

      ret << ['coords', '', '', '', self.coords(tagOrId)]
    end
  else # ! TkComm::GET_CONFIGINFO_AS_ARRAY
    if key
      case key.to_s
      when 'coords'
        {'coords' => ['', '', '', self.coords(tagOrId)]}
      when 'dash', 'activedash', 'disableddash'
        conf = tk_split_simplelist(tk_send_without_enc('itemconfigure', 
                                                       tagid(tagOrId), 
                                                       "-#{key}"))
        if conf[3] && conf[3] =~ /^[0-9]/
          conf[3] = list(conf[3])
        end
        if conf[4] && conf[4] =~ /^[0-9]/
          conf[4] = list(conf[4])
        end
      when 'text', 'label', 'show', 'data', 'file', 'maskdata', 'maskfile'
        conf = tk_split_simplelist(_fromUTF8(tk_send_without_enc('itemconfigure', tagid(tagOrId), "-#{key}")))
      when 'font', 'kanjifont'
        conf = tk_split_simplelist(_fromUTF8(tk_send_without_enc('itemconfigure', tagid(tagOrId),"-#{key}")))
        conf[4] = tagfont_configinfo(tagid(tagOrId), conf[4])
      else
        conf = tk_split_list(_fromUTF8(tk_send_without_enc('itemconfigure', tagid(tagOrId), "-#{key}")))
      end
      key = conf.shift[1..-1]
      { key => conf }
    else
      ret = {}
      tk_split_simplelist(_fromUTF8(tk_send_without_enc('itemconfigure', tagid(tagOrId)))).each{|conflist|
        conf = tk_split_simplelist(conflist)
        key = conf.shift[1..-1]
        case key
        when 'text', 'label', 'show', 'data', 'file', 'maskdata', 'maskfile'
        when 'dash', 'activedash', 'disableddash'
          if conf[2] && conf[2] =~ /^[0-9]/
            conf[2] = list(conf[2])
          end
          if conf[3] && conf[3] =~ /^[0-9]/
            conf[3] = list(conf[3])
          end
        else
          if conf[2]
            if conf[2].index('{')
              conf[2] = tk_split_list(conf[2]) 
            else
              conf[2] = tk_tcl2ruby(conf[2]) 
            end
          end
          if conf[3]
            if conf[3].index('{')
              conf[3] = tk_split_list(conf[3]) 
            else
              conf[3] = tk_tcl2ruby(conf[3]) 
            end
          end
        end
        if conf.size == 1
          ret[key] = conf[0][1..-1]  # alias info
        else
          ret[key] = conf
        end
      }

      fontconf = ret['font']
      if fontconf
        ret.delete('font')
        ret.delete('kanjifont')
        fontconf[3] = tagfont_configinfo(tagid(tagOrId), fontconf[3])
        ret['font'] = fontconf
      end

      ret['coords'] = ['', '', '', self.coords(tagOrId)]

      ret
    end
  end
end

def current_itemconfiginfo(tagOrId, key=nil)
  if TkComm::GET_CONFIGINFO_AS_ARRAY
    if key
      conf = itemconfiginfo(tagOrId, key)
      {conf[0] => conf[4]}
    else
      ret = {}
      itemconfiginfo(tagOrId).each{|conf|
        ret[conf[0]] = conf[4] if conf.size > 2
      }
      ret
    end
  else # ! TkComm::GET_CONFIGINFO_AS_ARRAY
    ret = {}
    itemconfiginfo(tagOrId, key).each{|k, conf|
      ret[k] = conf[-1] if conf.kind_of?(Array)
    }
    ret
  end
end
 
               # File tk/lib/tk/canvas.rb, line 517
def lower(tag, below=nil)
  if below
    tk_send_without_enc('lower', tagid(tag), tagid(below))
  else
    tk_send_without_enc('lower', tagid(tag))
  end
  self
end
            
move(tag, x, y) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 526
def move(tag, x, y)
  tk_send_without_enc('move', tagid(tag), x, y)
  self
end
            
postscript(keys) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 531
def postscript(keys)
  tk_send("postscript", *hash_kv(keys))
end
            
raise(tag, above=nil) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 535
def raise(tag, above=nil)
  if above
    tk_send_without_enc('raise', tagid(tag), tagid(above))
  else
    tk_send_without_enc('raise', tagid(tag))
  end
  self
end
            
remove(*args) click to toggle source
Alias for: delete
scale(tag, x, y, xs, ys) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 544
def scale(tag, x, y, xs, ys)
  tk_send_without_enc('scale', tagid(tag), x, y, xs, ys)
  self
end
            
scan_dragto(x, y, gain=None) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 553
def scan_dragto(x, y, gain=None)
  tk_send_without_enc('scan', 'dragto', x, y, gain)
  self
end
            
scan_mark(x, y) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 549
def scan_mark(x, y)
  tk_send_without_enc('scan', 'mark', x, y)
  self
end
            
select(mode, *args) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 558
def select(mode, *args)
  r = tk_send_without_enc('select', mode, *args)
  (mode == 'item')? TkcItem.id2obj(self, r): self
end
            
select_adjust(tagOrId, index) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 562
def select_adjust(tagOrId, index)
  select('adjust', tagid(tagOrId), index)
end
            
select_clear() click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 565
def select_clear
  select('clear')
end
            
select_from(tagOrId, index) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 568
def select_from(tagOrId, index)
  select('from', tagid(tagOrId), index)
end
            
select_item() click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 571
def select_item
  select('item')
end
            
select_to(tagOrId, index) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 574
def select_to(tagOrId, index)
  select('to', tagid(tagOrId), index)
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.

blog comments powered by Disqus