1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| window.signal_connect("button_press_event") do |*args|
gere_event_press(*args)
end
window.signal_connect("button_release_event") do |*args|
gere_event_release(*args)
end
window.signal_connect("motion_notify_event") do |*args|
gere_event_motion(*args)
end
window.events |= (Gdk::Event::LEAVE_NOTIFY_MASK |
Gdk::Event::BUTTON_PRESS_MASK |
Gdk::Event::BUTTON_RELEASE_MASK |
Gdk::Event::POINTER_MOTION_MASK )
def gere_event_press(widget,event)
if event.button == 1
$old_x = event.x - $DELTA_X
$old_y = event.y - $DELTA_Y
dessine_rectangle(false)
if(! $gcf)
$gcf = Gdk::GC.new($area.window)
$gcf.rgb_fg_color = Gdk::Color.new(30000, 0, 300)
$gcf.set_line_attributes(1, Gdk::GC::LINE_SOLID,
Gdk::GC::CAP_BUTT,
Gdk::GC::JOIN_MITER)
end
x = $old_x - 5
y = $old_y - 5
$area.window.draw_line($gcf,$old_x,$old_y + 8,$old_x,$old_y - 5)
$area.window.draw_line($gcf,$old_x + 8,$old_y,$old_x - 5,$old_y)
end
# We've handled the event, stop processing
return true
end
def gere_event_release(widget,event)
if event.button == 1
$new_x = event.x - $DELTA_X
$new_y = event.y - $DELTA_Y
dessine_rectangle(true)
interactive_dialog_clicked()
end
# We've handled the event, stop processing
return true
end
def gere_event_motion(widget,event)
$statusbar.pop(0)
$statusbar.push(0,"Curseur Position #{$FOND_X + event.x - $DELTA_X}/#{$FOND_Y - event.y + $DELTA_Y} ")
#$statusbar.push(0,"Coords(m) #{$FOND_X + event.x - $DELTA_X}/#{event.y}")
# We've handled the event, stop processing
return true
end |
Partager