Method: TkcTag#initialize

Defined in:
lib/tk/canvastag.rb

#initialize(parent, mode = nil, *args) ⇒ TkcTag

Returns a new instance of TkcTag.



253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
# File 'lib/tk/canvastag.rb', line 253

def initialize(parent, mode=nil, *args)
  #unless parent.kind_of?(TkCanvas)
  #  fail ArgumentError, "expect TkCanvas for 1st argument"
  #end
  @c = parent
  @cpath = parent.path
  Tk_CanvasTag_ID.mutex.synchronize{
    # @path = @id = Tk_CanvasTag_ID.join('')
    @path = @id = Tk_CanvasTag_ID.join(TkCore::INTERP._ip_id_)
    Tk_CanvasTag_ID[1].succ!
  }
  CTagID_TBL.mutex.synchronize{
    CTagID_TBL[@cpath] = {} unless CTagID_TBL[@cpath]
    CTagID_TBL[@cpath][@id] = self
  }
  if mode
    tk_call_without_enc(@c.path, "addtag", @id, mode, *args)
  end
end