In Files

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

Class/Module Index [+]

Quicksearch

TkCanvas

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 51
def __destroy_hook__
  TkcItem::CItemID_TBL.delete(@path)
end
            
addtag(tag, mode, *args) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 90
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 98
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 101
def addtag_all(tagOrId)
  addtag(tagOrId, 'all')
end
            
addtag_below(tagOrId, target) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 104
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 107
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 110
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 113
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 116
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 120
def bbox(tagOrId, *tags)
  list(tk_send_without_enc('bbox', tagid(tagOrId), 
                           *tags.collect{|t| tagid(t)}))
end
            
canvasx(screen_x, *args) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 164
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
            
canvasy(screen_y, *args) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 168
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
            
coords(tag, *args) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 173
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 85
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 182
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 188
def delete(*args)
  if TkcItem::CItemID_TBL[self.path]
    args.each{|tag|
      find('withtag', tag).each{|item|
        if item.kind_of?(TkcItem)
          TkcItem::CItemID_TBL[self.path].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 203
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 209
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 214
def find_above(target)
  find('above', tagid(target))
end
            
find_all() click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 217
def find_all
  find('all')
end
            
find_below(target) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 220
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 223
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 226
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 229
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 232
def find_withtag(tag)
  find('withtag', tag)
end
            
gettags(tagOrId) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 250
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 256
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 261
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 265
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 129
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 144
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 155
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 160
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 236
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 571
def itemtype(tag)
  TkcItem.type2class(tk_send('type', tagid(tag)))
end
            
lower(tag, below=nil) click to toggle source

begin

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

end

 
               # File tk/lib/tk/canvas.rb, line 510
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 519
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 524
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 528
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 537
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 546
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 542
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 551
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 555
def select_adjust(tagOrId, index)
  select('adjust', tagid(tagOrId), index)
end
            
select_clear() click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 558
def select_clear
  select('clear')
end
            
select_from(tagOrId, index) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 561
def select_from(tagOrId, index)
  select('from', tagid(tagOrId), index)
end
            
select_item() click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 564
def select_item
  select('item')
end
            
select_to(tagOrId, index) click to toggle source
 
               # File tk/lib/tk/canvas.rb, line 567
def select_to(tagOrId, index)
  select('to', tagid(tagOrId), index)
end