class Alexandria::UI::IconViewTooltips
Public Class Methods
new(view)
click to toggle source
# File lib/alexandria/ui/iconview_tooltips.rb, line 22 def initialize(view) set_view(view) end
Public Instance Methods
label_for_book(title, authors, publisher, year)
click to toggle source
# File lib/alexandria/ui/iconview_tooltips.rb, line 42 def label_for_book(title, authors, publisher, year) # This is much too complex... but it works for now! html = "" unless title.empty? html += "<b>#{CGI.escapeHTML(title)}</b>" html += "\n" unless authors.empty? end html += "<i>#{CGI.escapeHTML(authors)}</i>" unless authors.empty? html += "\n" if !title.empty? || !authors.empty? html += "<small>" html += CGI.escapeHTML(publisher).to_s if publisher && !publisher.empty? if year && !year.empty? html += " " if publisher && !publisher.empty? html += "(#{year})" end html + "</small>" end
set_view(view)
click to toggle source
# File lib/alexandria/ui/iconview_tooltips.rb, line 26 def set_view(view) view.has_tooltip = true view.signal_connect("query-tooltip") do |_widget, x, y, _keyboard_mode, tooltip| tree_path = view.get_path_at_pos(x, y) if tree_path iter = view.model.get_iter(tree_path) title = iter[2] # HACK: hardcoded, should use column names... authors = iter[4] publisher = iter[6] year = iter[7] tooltip.set_markup label_for_book(title, authors, publisher, year) end end end