List Info

Thread: taskbaricon




taskbaricon
country flaguser name
France
2007-07-26 05:34:29
Salut alex, voilà le bout de code que j'utilise:
 
require 'rubygems'
require 'wx'
include Wx
$KCODE = 'u'
 
Icone_sortie = 1
 
class Cocktails < App
  def on_init
  
 &nbsp;  icone = Icone.new(self)
&nbsp; &nbsp;
 &nbsp;  cadre = Wizard.new(nil, -1, "Cocktails-wxruby")
 &nbsp; &nbsp;
 &nbsp;  evt_close {|event| on_sortie(event)}
&nbsp; &nbsp;
 &nbsp;  page0 = WizardPageSimple.new($cadre)
&nbsp;   cadre.run_wizard(page0)
 &nbsp; 
 &nbsp;  def on_sortie(event)
&nbsp; &nbsp;   icone.remove_icon()
&nbsp;   ; &nbsp;  destroy()
 &nbsp; &nbsp; &nbsp;  exit()
&nbsp;   ;  end
   ; end
 
  class Icone < TaskBarIcon
  def initialize(cadre)
&nbsp;   super()
&nbsp; &nbsp;
 &nbsp;  icone = creation_icone('beussico.bmp')
 &nbsp;  set_icon(icone, 'Cocktails-wxruby')
 
 &nbsp;  evt_menu(Icone_sortie) &nbsp;
&nbsp; end
 
  def create_popup_menu
&nbsp;   menu = Menu.new
&nbsp;   menu.append(Icone_sortie, ;  "Quittez Cocktails-wxruby")
  ;  return menu
 ; end
&nbsp;
  def creation_icone(image)
 &nbsp;  chemin = File.join( File.dirname(__FILE__), 'images', image)
&nbsp; &nbsp; redimension = Icon.new
 &nbsp;  redimension.copy_from_bitmap(Bitmap.new(Image.new(chemin)))
&nbsp; &nbsp; return redimension
  end
 
end
end
Cocktails.new.main_loop()
 
et donc quand je ferme mon application, l'icône reste dans la barre de lancement rapide et il faut que je pointe dessus avec mon curser pour qu'il se retire.
J'ai aussi essayer de placer la méthode "def on_sortie(event)" dans la classe "Icone", mais le problème persiste.
Par contre quand j'utilise "demotaskbaricon" dans une application qui contient une "frame" ça marche corectement.
Merci
Sebastien
Re: taskbaricon
country flaguser name
United Kingdom
2007-07-26 05:55:57
Le suivant marche pour moi. Je pense qu'on doit faire
disparaitre 
l'icone, avec 'remove_icon', n'importe quellle maniere sort
l'App - par 
'evt_menu' du icone, ou par le fin du Wizard.

Notez que si on se sert de "evt_close", on doit
appeller 'event.skip' 
pour que le wizard soit vraiment ferme.

alex

class Cocktails < App
  def on_init
    cadre = Wizard.new(nil, -1,
"Cocktails-wxruby")
    icone = Icone.new(cadre)

    cadre.evt_close { | e | icone.remove_icon; e.skip
}
    evt_wizard_finished(cadre.get_id) { icone.remove_icon; cadre.close }
    evt_wizard_cancel(cadre.get_id) { icone.remove_icon; cadre.close }
   
    page0 = WizardPageSimple.new($cadre)
    cadre.run_wizard(page0)
    end
end
_______________________________________________
wxruby-users mailing list
wxruby-usersrubyforge.org
ht
tp://rubyforge.org/mailman/listinfo/wxruby-users

[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )