class AlphaDemo

Public Class Methods

new() click to toggle source
Calls superclass method Gtk::Window::new
# File gtk2/sample/misc/alpha-demo.rb, line 22
def initialize()
  super()

  set_app_paintable(true)
  set_title("AlphaDemo")
  set_decorated(false)
  set_default_size(200, 220)
  signal_connect("delete_event") do
    Gtk.main_quit
  end
  set_double_buffered(false)

  signal_connect('expose-event') do |widget, event|
    cr = widget.window.create_cairo_context

    rgba = [1.0, 1.0, 1.0]
    rgba << 0.0 if @supports_alpha
    cr.set_source_rgba(rgba)
    cr.set_operator(Cairo::OPERATOR_SOURCE)
    cr.paint

    twidth, theight = widget.size

    cr.set_source_rgba(1.0, 0.2, 0.2, 0.6)
    radius = [twidth, theight].min.to_f / 2 - 0.8

    cr.arc(twidth.to_f / 2, theight.to_f / 2, radius, 0, 2.0 * Math::PI)
    cr.fill_preserve
    cr.stroke
  end
  signal_connect('screen-changed') do |widget, old_screen|
    screen_changed(widget, old_screen)
  end

  screen_changed(self)
end

Public Instance Methods

screen_changed(widget,old_screen=nil) click to toggle source
# File gtk2/sample/misc/alpha-demo.rb, line 59
def screen_changed(widget,old_screen=nil)
  tcolormap = widget.screen.rgba_colormap
  @supports_alpha = !tcolormap.nil?
  tcolormap ||= widget.screen.rgb_colormap
  widget.set_colormap(tcolormap)
end