class Volay::App

App class

Attributes

mixer[R]
signals_list[RW]
utils[R]

Public Class Methods

new(path) click to toggle source

Initialize application

@param [String] path Path to glade file

Calls superclass method
# File lib/volay/app.rb, line 15
def initialize(path)
  super()

  Gtk::Settings.default.gtk_button_images = true

  initialize_ui(path)
  initialize_mixer
  initialize_events
end

Private Instance Methods

initialize_events() click to toggle source

Initialize events

# File lib/volay/app.rb, line 30
def initialize_events
  @signals_list = {}
  @utils = Volay::Utils.new(self)
  @utils.update_status_icon
  Volay::Widget::SystemTray.new(self)
  Volay::Widget::VolumeControl.new(self)

  connect_signals do |handler|
    @signals_list[handler] if @signals_list.key?(handler)
  end
end
initialize_mixer() click to toggle source

Initialize mixer for controlling volume

# File lib/volay/app.rb, line 45
def initialize_mixer
  @mixer ||= Volay::Config.mixer
end
initialize_ui(path) click to toggle source

Intiailize ui by overriding icons path

@param [String] path Path to glade file

# File lib/volay/app.rb, line 54
def initialize_ui(path)
  # Override Icon path to prevent
  # Gtk-CRITICAL **:gtk_icon_source_set_filename:
  ui = File.read(path)
  ui.gsub!(
    %r{/glade/icons},
    File.expand_path(
      '../glade/icons',
      File.dirname(__dir__)
    )
  )
  add_from_string(ui)
end