Sha256: d6bc4aea4911e9eeb3cb72cbb91a45908a855348cc0fefb6982e93473a2fbc0a
Contents?: true
Size: 1.87 KB
Versions: 14
Compression:
Stored size: 1.87 KB
Contents
=begin common.rb - Common class for gtk-demo. Copyright (c) 2003-2005 Ruby-GNOME2 Project Team This program is licenced under the same licence as Ruby-GNOME2. $Id: common.rb,v 1.9 2005/10/15 03:41:36 mutoh Exp $ =end require 'gtk3' module Demo def self.find_file(basename) %w(. /usr/share/gtk-3.0/demo /usr/local/share/gtk-3.0/demo/).each do |dirname| path = File.join(dirname, basename) if File.exist?(path) return path end end raise "#{basename}: No such file or directory" end class BasicWindow < Gtk::Window def initialize(title = nil) super(Gtk::Window::TOPLEVEL) if title set_title("#{title} in Ruby/GTK") end signal_connect("key_press_event") do |widget, event| if event.state.control_mask? and event.keyval == Gdk::Keyval::GDK_q destroy true else false end end signal_connect("delete_event") do |widget, event| quit end end def quit destroy true end end class CairoWindow < BasicWindow def initialize(title=nil) super unless Gdk.cairo_available? add_cairo_require_label return end drawing_area = Gtk::DrawingArea.new add(drawing_area) drawing_area.signal_connect("expose_event") do |widget, event| cr = widget.window.create_cairo_context cr.scale(*widget.window.size) cr.set_line_width(0.04) cr.save do cr.set_source_color(Gdk::Color.new(65535, 65535, 65535)) cr.gdk_rectangle(Gdk::Rectangle.new(0, 0, 1, 1)) cr.fill end draw(cr) end end def add_cairo_require_label message = "This sample requires GTK+ 2.8.0 or later and cairo support" add(Gtk::Label.new(message)) end def draw(cr) raise "not implemented" end end end
Version data entries
14 entries across 14 versions & 1 rubygems