class Phew::Application
Main Phew
application.
Public Class Methods
new(gtk_application)
click to toggle source
# File lib/phew/application.rb, line 12 def initialize(gtk_application) @gtk_application = gtk_application @context = Gdk.pango_context_get @font_repository = FontRepository.new @context connect_signals end
Public Instance Methods
present()
click to toggle source
# File lib/phew/application.rb, line 19 def present win.show_all win.children.first.visible = false if win.show_menubar win.present end
Private Instance Methods
build_vbox()
click to toggle source
# File lib/phew/application.rb, line 35 def build_vbox vbox = Gtk::VBox.new false, 0 vbox.pack_start combo, false, false, 0 vbox.pack_start textview, false, false, 0 vbox.pack_start script_list_scroller, true, true, 0 vbox end
build_win()
click to toggle source
# File lib/phew/application.rb, line 72 def build_win win = Gtk::ApplicationWindow.new @gtk_application win.add vbox win end
combo()
click to toggle source
# File lib/phew/application.rb, line 27 def combo @combo ||= ScriptList.new.tap(&:fill) end
connect_signals()
click to toggle source
Set up all signal handlers
# File lib/phew/application.rb, line 83 def connect_signals combo.signal_connect("changed") { on_combo_changed_signal } end
fill_font_list(script)
click to toggle source
# File lib/phew/application.rb, line 94 def fill_font_list(script) scriptmodel.clear font_families.each do |fam| font = @font_repository.get_font fam.name if sample_coverage(font, script) == :exact row = scriptmodel.append scriptmodel.set_value row, 0, fam.name end end end
font_families()
click to toggle source
# File lib/phew/application.rb, line 112 def font_families fontmap = @context.get_font_map fontmap.list_families end
on_combo_changed_signal()
click to toggle source
# File lib/phew/application.rb, line 87 def on_combo_changed_signal script = Script.new combo.active_text.to_sym # FIXME: Add override for Gtk::TextBuffer.set_text so #text= works properly textview.buffer.set_text script.sample_string, -1 fill_font_list script end
sample_coverage(font, script)
click to toggle source
# File lib/phew/application.rb, line 107 def sample_coverage(font, script) sample_cov = font.coverage_summary script.sample_string [:none, :fallback, :approximate, :exact].max_by { |i| sample_cov[i] } end
script_list()
click to toggle source
# File lib/phew/application.rb, line 57 def script_list @script_list ||= Gtk::TreeView.new_with_model(scriptmodel).tap do |view| renderer = Gtk::CellRendererText.new col = Gtk::TreeViewColumn.new col.set_title "Font Name" col.pack_start renderer, true col.add_attribute renderer, "text", 0 view.append_column col end end
script_list_scroller()
click to toggle source
# File lib/phew/application.rb, line 48 def script_list_scroller @script_list_scroller ||= Gtk::ScrolledWindow.new(nil, nil).tap do |scr| lst = script_list scr.add lst lst.hadjustment = scr.hadjustment lst.vadjustment = scr.vadjustment end end
scriptmodel()
click to toggle source
# File lib/phew/application.rb, line 68 def scriptmodel @scriptmodel ||= Gtk::ListStore.new [GObject::TYPE_STRING] end
textview()
click to toggle source
# File lib/phew/application.rb, line 31 def textview @textview ||= Gtk::TextView.new end
vbox()
click to toggle source
# File lib/phew/application.rb, line 44 def vbox @vbox ||= build_vbox end
win()
click to toggle source
# File lib/phew/application.rb, line 78 def win @win ||= build_win end