Sha256: 1823ba9c3ec79c53e9ec20dfeb910b601d18bab282ee2743445946c2a6ea07df

Contents?: true

Size: 1.41 KB

Versions: 116

Compression:

Stored size: 1.41 KB

Contents

=begin
  eventbox.rb - Ruby/GTK sample script.

  Copyright (c) 2015 Ruby-GNOME2 Project Team
  This program is licenced under the same licence as Ruby-GNOME2.
=end

# https://developer.gnome.org/gtk3/unstable/GtkEventBox.html
# https://developer.gnome.org/gtk3/stable/GtkImage.html

# Gtk::EventBox are widgets container used to catch events for widgets that
# do not have their own window (Gdk::Window) like Gtk::Image for example.

require "gtk3"

window = Gtk::Window.new("Event Box example")

surface = Cairo::ImageSurface.new(Cairo::FORMAT_ARGB32, 265, 95)
cr = Cairo::Context.new(surface)
r1 = [10, 10, 75, 75]
r2 = [95, 10, 75, 75]
r3 = [180, 10, 75, 75]

cr.set_source_rgb(1, 0, 0)
cr.rectangle(*r1)
cr.fill
cr.set_source_rgb(0, 1, 0)
cr.rectangle(*r2)
cr.fill
cr.set_source_rgb(0, 0, 1)
cr.rectangle(*r3)
cr.fill

image = Gtk::Image.new(:pixbuf => surface.to_pixbuf(0, 0, 265, 95))

event_box = Gtk::EventBox.new

event_box.add(image)

event_box.signal_connect "button-press-event" do |_widget, event|
  if event.y >= 10 && event.y <= 85
    if event.x >= 10 && event.x <= 85
      puts "red x = #{event.x} y = #{event.y}"
    elsif event.x >= 95 && event.x <= 180
      puts "green x = #{event.x} y = #{event.y}"
    elsif event.x >= 190 && event.x <= 255
      puts "blue x = #{event.x} y = #{event.y}"
    end
  end
end

window.add(event_box)

window.show_all

window.signal_connect("delete-event") { Gtk.main_quit }

Gtk.main

Version data entries

116 entries across 108 versions & 2 rubygems

Version Path
gtk3-3.4.1 sample/misc/eventbox.rb
gtk3-3.4.0 sample/misc/eventbox.rb
gtk3-3.3.9 sample/misc/eventbox.rb
gtk3-3.3.8 sample/misc/eventbox.rb
gtk3-3.3.7 sample/misc/eventbox.rb
gtk3-3.3.6 sample/misc/eventbox.rb
gtk3-3.3.5 sample/misc/eventbox.rb
gtk3-3.3.4 sample/misc/eventbox.rb
gtk3-3.3.3 sample/misc/eventbox.rb
gtk3-3.3.2 sample/misc/eventbox.rb
gtk3-3.3.1 sample/misc/eventbox.rb
gtk3-3.3.0 sample/misc/eventbox.rb
gtk3-3.2.9-x64-mingw32 sample/misc/eventbox.rb
gtk3-3.2.9-x86-mingw32 sample/misc/eventbox.rb
gtk3-3.2.9 sample/misc/eventbox.rb
gtk3-3.2.8-x64-mingw32 sample/misc/eventbox.rb
gtk3-3.2.8-x86-mingw32 sample/misc/eventbox.rb
gtk3-3.2.8 sample/misc/eventbox.rb
gtk3-3.2.7-x86-mingw32 sample/misc/eventbox.rb
gtk3-3.2.7-x64-mingw32 sample/misc/eventbox.rb