jcmuller/clock_indicator

View on GitHub
lib/clock_indicator/sub_menu.rb

Summary

Maintainability
A
0 mins
Test Coverage
module ClockIndicator
  class SubMenu

    delegate :popup, :to => :menu

    def time=(time)
      time_item.label = time
    end

    private

      def menu
        @menu ||= Gtk::Menu.new.tap do |m|
          m.append(time_item)
          m.append(separator)
          m.append(exit_item)
          m.show_all
        end
      end

      def time_item
        @time_item ||= Gtk::MenuItem.new.tap do |i|
          # Not selectable
          i.signal_connect("select") { i.deselect }
        end
      end

      def separator
        @separator ||= Gtk::SeparatorMenuItem.new
      end

      def exit_item
        @exit_item ||= Gtk::MenuItem.new_with_label("Quit").tap do |i|
          i.signal_connect("activate") { Gtk.main_quit }
        end
      end

  end
end