def initialize(options = {})
@options = DEFAULT.merge(options)
super(@options[:lines])
@options.each do |key, value|
next if IGNORE.include?(key)
value %= @options[:font_size] if key == :font
send("#{key}=", value)
end
Thread.new(self) do |xosd|
loop do
items = []
lines = xosd.options[:lines]
items << QUEUE.shift until QUEUE.empty? or items.size >= lines
unless items.empty?
items << [:info, ' '] until items.size >= lines
items.each_with_index do |(tag, message), i|
xosd.color = xosd.options[:colors][tag.to_sym]
xosd.display(message, i)
end
end
sleep xosd.options[:timeout]
end
end
end