señal 'accept_position' no conseguir denominado en Ruby / Gtk2
Pregunta
Estoy creando una aplicación con paneles en Rubí / GTK. Cuando se cambia el tamaño de los cristales, lo que necesito hacer algunas cosas. Pero no puedo averiguar qué señal a utilizar. Creo que es 'accept_position' - pero no parece funcionar. Esta es una aplicación de ejemplo que ilustra mi problema ...
#!/usr/bin/env ruby
require 'gtk2'
window = Gtk::Window.new(Gtk::Window::TOPLEVEL)
window.set_title "Panes"
window.border_width = 10
window.set_size_request(225, 150)
window.signal_connect('destroy') { Gtk.main_quit }
window.signal_connect('delete_event') { false }
button1 = Gtk::Button.new("Resize")
button2 = Gtk::Button.new("Me")
button1.signal_connect( "clicked" ) { window.destroy }
button2.signal_connect( "clicked" ) { window.destroy }
paned = Gtk::VPaned.new
paned.add1(button1)
paned.add2(button2)
paned.signal_connect( "accept_position" ) {
puts "hello"
false
}
window.add(paned)
window.show_all
Gtk.main
La llamada 'accept_position' nunca se dispara. Cualquier idea de lo que está causando este / cómo solucionarlo?
Solución
'accept_position'
es una señal de combinación de teclas, solamente emite cuando el panel se cambia el tamaño usando el teclado.
No sé Ruby, pero en C la señal que desea es 'notify::position'
. notify
es una señal GObject
que dispara cada vez que una propiedad cambia su valor. Si agrega un detalle , como position
, a nombre de la señal cuando se conecta, entonces sólo se activa cuando que específica propiedad cambia su valor.