Method: Tk::BLT::Bitmap#initialize

Defined in:
lib/tkextlib/blt/bitmap.rb

#initialize(type, name, data, keys = {}) ⇒ Bitmap

Returns a new instance of Bitmap.



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/tkextlib/blt/bitmap.rb', line 72

def initialize(type, name, data, keys = {})
  if name
    @id = name
  else
    BITMAP_ID.mutex.synchronize{
      @id = BITMAP_ID.join(TkCore::INTERP._ip_id_)
      BITMAP_ID[1].succ!
    }
    BITMAP_ID_TBL.mutex.synchronize{
      BITMAP_ID_TBL[@id] = self
    }
  end

  @path = @id

  unless bool(tk_call('::blt::bitmap', 'exists', @id))
    if type == :text
      tk_call('::blt::bitmap', 'compose', @id, data, *hash_kv(keys))
    else # :data
      tk_call('::blt::bitmap', 'define', @id, data, *hash_kv(keys))
    end
  end
end