Forum: wxRuby set the background to a bitmap

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
599709e6886d4d1d4e0e38ac3348fb1e?d=identicon&s=25 John G. (indiehead)
on 2009-01-13 18:55
Hi,

any ideas whether you can set the background of a dialog to use an
image?
D023126c4e3f87f22d063324c4cc7325?d=identicon&s=25 Eric R. (erubin)
on 2009-01-13 20:18
(Received via mailing list)
I have a WxRuby app running on Windows and I want to try to port it to
the
new Ruby 1.9.1.  I see  wxruby-ruby19-1.9.8 gems for Darwin and Linux,
but
not for Windows.  Is wxruby-ruby19-1.9.8 available for Windows yet?  If
not,
when will it be available?  And how stable is it?

Thanks,
Eric Rubin
Alex Fenton (Guest)
on 2009-01-13 20:48
(Received via mailing list)
John Griffiths wrote:
> any ideas whether you can set the background of a dialog to use an
> image?

Use evt_erase_background, which is meant for this:
http://wxruby.rubyforge.org/doc/eraseevent.html

The example below just fills with colour, but you could replace the call
to gradient_fill_linear with one to DC#draw_bitmap or whatever other
drawing/painting code yoou wanted. Please, just don't do anything as
eyesore as this ...

alex
__
require 'wx'

class BackgroundDialog < Wx::Dialog
  def initialize(parent)
    super(parent, :title => "dialog with background")
    Wx::TextCtrl.new(self, :value => 'foo', :pos => [ 50, 50 ])
    evt_erase_background :on_erase_background
  end

  def on_erase_background(evt)
    # Use the event's DC object to draw whatever background you want
    evt.dc.gradient_fill_linear( client_rect,
                                 Wx::RED, Wx::BLACK, Wx::NORTH )
  end
end

Wx::App.run do
  frame = Wx::Frame.new(nil, :title => 'frame')
  frame.show
  BackgroundDialog.new(frame).show
end
599709e6886d4d1d4e0e38ac3348fb1e?d=identicon&s=25 John G. (indiehead)
on 2009-01-13 22:17
Thanks again Alex, will give that a go tomorrow and see how things turn
out.

Appreciate this
Alex Fenton (Guest)
on 2009-01-13 23:35
(Received via mailing list)
Eric Rubin wrote:
> I have a WxRuby app running on Windows and I want to try to port it to the
> new Ruby 1.9.1.  I see  wxruby-ruby19-1.9.8 gems for Darwin and Linux, but
> not for Windows.  Is wxruby-ruby19-1.9.8 available for Windows yet?  If not,
> when will it be available?

We'll definitely have a ruby19 gem available for Windows for the
upcoming 2.0 release (next week or so). Whether we offer both mingw and
mswin32 for Ruby 1.9.1 is not yet finalised, but in practice they're
interchangeable. There will certainly be mingw as that's the direction
the OCI is going in (for good reasons, IMHO).

>  And how stable is it?

Very. wxRuby has supported ruby 1.9 for a year now, and I switched over
mainline dev of my app to it a few months ago. There are also a lot of
changes in SVN HEAD which make it considerably more stable generally
than the current beta releaes, 1.9.9.

alex
599709e6886d4d1d4e0e38ac3348fb1e?d=identicon&s=25 John G. (indiehead)
on 2009-01-15 14:36
Thanks Alex, I got the dialog to use a background image eventually, did
this with WxRuby 1.9.9 on Windows XP and it works (doesn't on OSX, but
don't need it to).

  def initialize(title)
    ......
    evt_erase_background :on_erase_background
  end

  def on_erase_background(evt)
    b_splash_bmp = Wx::Bitmap.new('images/background.gif',
BITMAP_TYPE_GIF)
    evt.dc.draw_bitmap(b_splash_bmp, 0, 0, false)
  end
This topic is locked and can not be replied to.