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

Zurück zum Archiv-Index

ruby-gnome2-hiki-pt_BR****@sourc***** ruby-gnome2-hiki-pt_BR****@sourc*****
2004年 4月 11日 (日) 12:44:27 JST


-------------------------
REMOTE_ADDR = 200.216.145.78
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