class WaitUp::Application

Main Wait Up application class

Public Class Methods

new() click to toggle source
# File lib/wait_up/application.rb, line 6
def initialize
  setup_gui
  connect_signals
  @win.show_all
end

Private Instance Methods

connect_destroy_signal() click to toggle source
# File lib/wait_up/application.rb, line 21
def connect_destroy_signal
  @win.signal_connect('destroy') { Gtk.main_quit }
end
connect_file_chooser_signal() click to toggle source
# File lib/wait_up/application.rb, line 45
def connect_file_chooser_signal
  @chooser.signal_connect 'file-set' do |_widget, _user_data|
    puts @chooser.filename
  end
end
connect_key_press_event_signal() click to toggle source
# File lib/wait_up/application.rb, line 25
def connect_key_press_event_signal
  @win.signal_connect 'key-press-event' do |_wdg, evt, _ud|
    handle_key(evt) if evt.state.control_mask?
    false
  end
end
connect_signals() click to toggle source
# File lib/wait_up/application.rb, line 14
def connect_signals
  connect_key_press_event_signal
  connect_destroy_signal
  connect_slide_signal
  connect_file_chooser_signal
end
connect_slide_signal() click to toggle source
# File lib/wait_up/application.rb, line 39
def connect_slide_signal
  @timeline.signal_connect 'format-value' do |_scale, value, _user_data|
    ">#{value}<"
  end
end
handle_key(evt) click to toggle source
# File lib/wait_up/application.rb, line 32
def handle_key(evt)
  case evt.keyval
  when 'q'.ord
    @win.destroy
  end
end
setup_gui() click to toggle source
# File lib/wait_up/application.rb, line 51
def setup_gui
  @win = Gtk::Window.new :toplevel
  @grid = Gtk::Grid.new
  @grid.orientation = :vertical
  @win.add @grid
  @chooser = Gtk::FileChooserButton.new('Hello!', :open)
  @grid.add @chooser
  @timeline = Gtk::Scale.new :horizontal, 0.0, 10.0, 0.1
  @timeline.hexpand = true
  @grid.add @timeline
  @volume = Gtk::VolumeButton.new
  @grid.add @volume
end