Wxruby and trayicon error and where to learn more about wxru

Hi,
I’m working with wxruby since 2 days but next to this Wiki:
http://wxruby.rubyforge.org/wiki/wiki.pl and this Doc:
http://wxruby.rubyforge.org/doc/ I couldn’t find something usefull for
it. Also del.icio.us has no intresting links. Do you know any good
website or book about wxruby?

My problem at the moment is, I wanna test the TaskBarIcon on Gnome and
so I did:

#!/usr/bin/env ruby

$Verbose=true

require ‘rubygems’
require ‘wx’

include Wx

class MinimalApp < App

def on_init
    mytask = TaskBarIcon.new
    mytask.set_icon('shutdown.svg','thats my tooltip')
end

end

MinimalApp.new.main_loop

#eof

the doc tells about set_icon:
Boolean set_icon(Icon icon, String tooltip)
Sets the icon, and optional tooltip text.

shutdown.svg is an Icon and next to it comes a string, so it should be
right or? But executed I’m always getting this error:

./task.rb:15:in set_icon': in method 'SetIcon', argument 2 of type 'wxIcon const &' (TypeError) from ./task.rb:15:in on_init’
from ./task.rb:21:in `main_loop’
from ./task.rb:21

Someone knows why this happens?

greets

Alle giovedì 23 agosto 2007, kazaam ha scritto:

#!/usr/bin/env ruby

#eof
from ./task.rb:21:in `main_loop’
from ./task.rb:21

Someone knows why this happens?

greets

‘shutdown.svg’ is not a Wx::Icon, it’s a string. I didnt’ look at the
wxWidgets documentation in detail, but I think you need to do something
like
the following:

bitmap = Wx::Bitmap.new
bitmap.load_file ‘shutdown.png’, Wx::BITMAP_TYPE_PNG
icon = Icon.new
icon.copy_from_bitmap
mytask.set_icon icon, ‘tooltip’

or (I’m not sure whether you can load png files directly using
Icon#load_file)

icon = Icon.new
icon.load_file ‘shutdown.png’, Wx::BITMAP_TYPE_PNG
mytask.set_icon icon, ‘tooltip’

At any rate, I don’t think you can load svg images. The documentation
seems to
say that only raster image types are supported.

I hope this helps

Stefano

I got help somewhere else. The icon must be loaded before, so this works
correctly:

#!/usr/bin/env ruby

$Verbose=true

require ‘rubygems’
require ‘wx’

include Wx

class MinimalApp < App

def on_init
    mytask = TaskBarIcon.new
    mytask.set_icon( Icon.new('shutdown.svg'),'test tooltip')
end

end

MinimalApp.new.main_loop