[ruby-gnome2-doc-cvs] [Hiki] create - tut-gtk-signals-more

Zurück zum Archiv-Index

ruby-gnome2-hiki-pt_BR****@sourc***** ruby-gnome2-hiki-pt_BR****@sourc*****
2004年 4月 9日 (金) 21:03:30 JST


-------------------------
REMOTE_ADDR = 200.216.146.35
REMOTE_HOST = 
        URL = http://ruby-gnome2.sourceforge.jp/pt_BR/?tut-gtk-signals-more
-------------------------
= Mais Sobre os Gerenciadores de Sinais
{{link "tut-gtk-helloworld-details", nil, "tut-gtk", "tut-gtk-helloworld2"}}

Vamos dar outra olhada em GLib::Instantiatable#signal_connect:

  % irb --simple-prompt
  >> require 'gtk2'
  => true
  >> b = Gtk::Button.new("hoge")
  => #<Gtk::Button:0x40a2a858 ptr=0x8237df8>
  >> b.signal_connect("clicked") { puts 1 }
  => 1
  >> b.signal_connect("clicked") { puts 2 }
  => 2
  >>

Percebeu o valor "integer" retornado ?

Isso uma marca ("tag") que identifica o seu bloco de "callback". Como dito acima, vocpode ter quantos "callbacks" por sinal e por objeto que vocprecisar, e cada um serexecutado na sua vez, na ordem que eles foram anexados.

Agora, iremos emitir manualmente um sinal. O m騁odo GLib::Instantiatable#emit_signal enviaro nome do sinal especificado passado como um argumento.

Vocpode observar aqui que nosso blocos s縊 chamados na ordem de suas instala鋏es:

  >> b.signal_emit("clicked")
  1 
  2
  => nil
  >>

GLib::Instantiatable#signal_handler_disconnect usado para remover um gerenciador de sinal previamente instalado, identificado por uma marca retornada pelo GLib::Instantiatable#signal_connect:

  >> b.signal_handler_disconnect 1
  => #<Gtk::Button:0x40a2a858 ptr=0x8237df8>
  >> b.signal_emit("clicked")
  2
  => nil
  >>

Vocpode tamb駑 temporariamente desabilitar um bloco de cigo de "callback" com GLib::Instantiatable#signal_handler_block e GLib::Instantiatable#signal_handler_unblock:

  >> b.signal_handler_block 2
  => #<Gtk::Button:0x40a2a858 ptr=0x8237df8>
  >> b.signal_emit("clicked")
  => nil
  >> b.signal_handler_unblock 2
  => #<Gtk::Button:0x40a2a858 ptr=0x8237df8>
  >> b.signal_emit("clicked")
  2
  => nil
  >>






ruby-gnome2-cvs メーリングリストの案内
Zurück zum Archiv-Index