Forum: Ruby mouse coordinates in a gnome2 canvas

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Tool69 (Guest)
on 2006-01-03 16:59
(Received via mailing list)
Hi,
I want to show the mouse coordinates inside a label in a gnome2
application if my mouse is on a canvas. How to procede ? I' ve found no
documentation on the canvas on ruby gnome2 API. rbbr is not working on
my ubuntu (no description at all), so you're my last chance...
In fact, it's not really a canvas problem but more a gtk one. I've
tried something like :

@ecran = Gdk::Display.default
canvas.signal_connect("event") do
    pos = @ecran.window_at_pointer
    @label1.set_text("x=#{pos[1]}")
    @label2.set_text("y=#{pos[2]}")
end

....but then all my drawings disappear.

Thanks in advance :
6TooL9
Joe Van D. (Guest)
on 2006-01-03 20:16
(Received via mailing list)
On 1/3/06, Tool69 <removed_email_address@domain.invalid> wrote:
>     pos = @ecran.window_at_pointer
>     @label1.set_text("x=#{pos[1]}")
>     @label2.set_text("y=#{pos[2]}")
> end
>
> ....but then all my drawings disappear.

require 'gnomecanvas2'

Gtk.init

window = Gtk::Window.new "Mouse Coordinate display"
window.set_default_size 300, 300
grid = Gtk::VBox.new
window << grid

canvas = Gnome::Canvas.new
grid.pack_start canvas

coord_label = Gtk::Label.new "sup"
grid.pack_start coord_label, false

window.show_all

window.signal_connect("destroy") { Gtk::main_quit }

canvas.signal_connect("motion-notify-event") do |widget, event|
  x = event.x
  y = event.y
  coord_label.text = "X Pos: #{ x }, Y Pos: #{ y }"
end

Gtk::main
Tool69 (Guest)
on 2006-01-03 20:59
(Received via mailing list)
Thanks Joe,
I thought that it was impossible to connect the canvas to something
other than "event".
Your code helped me a lot to understand.
This topic is locked and can not be replied to.