Sha256: 79c7e14d2712ed6a058b06996ac0369b60365f5092c45d93f3e68fbea87af8b0

Contents?: true

Size: 1.25 KB

Versions: 5

Compression:

Stored size: 1.25 KB

Contents

module Gtk3App
  class MenuItem < Such::MenuItem
    attr_accessor :key
  end

  class Menu < Such::Menu
    def add_menu_item(key, &block)
      item = MenuItem.new(self, key, &block)
      item.key = key
      item.show
    end
  end

  class AppMenu < Menu
    def initialize(window, *par, &block)
      @block = block
      window.add_events(Gdk::EventMask::BUTTON_PRESS_MASK)
      window.signal_connect('button_press_event') do |w,e|
        if e.button == 3
          #self.popup(nil, nil, 3, e.time)
          self.popup_at_pointer #(nil, nil, 3, e.time)
        else
          block.call(w,e,'button_press_event')
        end
      end
      super(*par)
    end

    def add_menu_item(key, &block)
      super(key, &(block || @block))
    end
  end

  class EventImage < Such::EventBox
    def initialize(container, ...)
      super container
      Such::Image.new(self, ...)
    end
  end

  class YesNoDialog < Such::Dialog
    def initialize(...)
      super(...)
      add_button '_No', Gtk::ResponseType::CANCEL
      add_button '_Yes', Gtk::ResponseType::OK
    end

    def add_label(text)
      Such::Label.new(child).text = text
    end

    def ok?
      show_all
      response = run
      destroy
      response == Gtk::ResponseType::OK
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
gtk3app-5.3.210919 lib/gtk3app/widgets.rb
gtk3app-5.2.210918 lib/gtk3app/widgets.rb
gtk3app-5.1.210203 lib/gtk3app/widgets.rb
gtk3app-5.0.210201 lib/gtk3app/widgets.rb
gtk3app-4.0.210128 lib/gtk3app/widgets.rb