106 lines
2.4 KiB
Ruby
106 lines
2.4 KiB
Ruby
|
#! /usr/bin/env ruby
|
||
|
=begin
|
||
|
gtk2/base.rb
|
||
|
|
||
|
Copyright (c) 2006 Ruby-GNOME2 Project Team
|
||
|
This program is licenced under the same licence as Ruby-GNOME2.
|
||
|
|
||
|
$Id: base.rb,v 1.6 2007/08/13 11:09:22 ktou Exp $
|
||
|
=end
|
||
|
|
||
|
|
||
|
require 'glib2'
|
||
|
require 'atk'
|
||
|
require 'pango'
|
||
|
require 'gdk_pixbuf2'
|
||
|
|
||
|
base_dir = Pathname.new(__FILE__).dirname.dirname.dirname.expand_path
|
||
|
vendor_dir = base_dir + "vendor" + "local"
|
||
|
vendor_bin_dir = vendor_dir + "bin"
|
||
|
GLib.prepend_dll_path(vendor_bin_dir)
|
||
|
begin
|
||
|
major, minor, _ = RUBY_VERSION.split(/\./)
|
||
|
require "#{major}.#{minor}/gtk2.so"
|
||
|
rescue LoadError
|
||
|
require "gtk2.so"
|
||
|
end
|
||
|
|
||
|
module Gdk
|
||
|
LOG_DOMAIN = "Gdk"
|
||
|
end
|
||
|
|
||
|
if Gdk.cairo_available?
|
||
|
module Cairo
|
||
|
class Context
|
||
|
if method_defined?(:set_source_color)
|
||
|
alias_method :set_source_not_gdk_color, :set_source_color
|
||
|
def set_source_color(color)
|
||
|
if color.is_a?(Gdk::Color)
|
||
|
set_source_gdk_color(color)
|
||
|
else
|
||
|
set_source_not_gdk_color(color)
|
||
|
end
|
||
|
end
|
||
|
else
|
||
|
alias_method :set_source_color, :set_source_gdk_color
|
||
|
end
|
||
|
|
||
|
def source_color=(color)
|
||
|
set_source_color(color)
|
||
|
color
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
|
||
|
module Gtk
|
||
|
LOG_DOMAIN = "Gtk"
|
||
|
|
||
|
class Printer
|
||
|
def self.printers(wait = false)
|
||
|
printers = []
|
||
|
self.each(wait) {|v| printers << v}
|
||
|
printers
|
||
|
end
|
||
|
end
|
||
|
|
||
|
if check_version?(2, 12, 0)
|
||
|
class Builder
|
||
|
private
|
||
|
def canonical_handler_name(name)
|
||
|
name.gsub(/[-\s]+/, "_")
|
||
|
end
|
||
|
|
||
|
def __connect_signals__(connector, object, signal_name,
|
||
|
handler_name, connect_object, flags)
|
||
|
handler_name = canonical_handler_name(handler_name)
|
||
|
if connect_object
|
||
|
handler = connect_object.method(handler_name)
|
||
|
else
|
||
|
handler = connector.call(handler_name)
|
||
|
end
|
||
|
unless handler
|
||
|
$stderr.puts("Undefined handler: #{handler_name}") if $DEBUG
|
||
|
return
|
||
|
end
|
||
|
|
||
|
if flags.after?
|
||
|
signal_connect_method = :signal_connect_after
|
||
|
else
|
||
|
signal_connect_method = :signal_connect
|
||
|
end
|
||
|
|
||
|
if handler.arity.zero?
|
||
|
object.send(signal_connect_method, signal_name) {handler.call}
|
||
|
else
|
||
|
object.send(signal_connect_method, signal_name, &handler)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
GLib::Log.set_log_domain(Gdk::LOG_DOMAIN)
|
||
|
GLib::Log.set_log_domain(Gtk::LOG_DOMAIN)
|