lib/rabbit/gtk.rb in rabbit-2.2.1 vs lib/rabbit/gtk.rb in rabbit-3.0.0
- old
+ new
@@ -1,6 +1,6 @@
-# Copyright (C) 2014-2015 Kouhei Sutou <kou@cozmixng.org>
+# Copyright (C) 2014-2018 Kouhei Sutou <kou@cozmixng.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
@@ -12,195 +12,6 @@
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-require "English"
-
-if ENV["RABBIT_GTK_VERSION"] == "3"
- require "gtk3"
- Gtk.init if Gtk.respond_to?(:init)
-else
- require "cairo"
- require "gio2"
- require "gtk2"
-end
-
-module Cairo
- class Region
- unless public_method_defined?(:each_rectangle)
- def each_rectangle
- num_rectangles.times do |i|
- yield(self[i])
- end
- end
- end
- end
-end
-
-module Pango
- unless const_defined?(:WrapMode)
- WrapMode = Layout::WrapMode
- end
-
- unless const_defined?(:Alignment)
- Alignment = Layout::Alignment
- end
-end
-
-module Gdk
- class Event
- STOP = true unless const_defined?(:STOP)
- PROPAGATE = false unless const_defined?(:PROPAGATE)
- end
-
- class Window
- unless method_defined?(:width)
- def width
- size[0]
- end
- end
-
- unless method_defined?(:height)
- def height
- size[1]
- end
- end
- end
-
- unless const_defined?(:EventType)
- EventType = Event::Type
- end
-
- unless const_defined?(:ModifierType)
- ModifierType = Window::ModifierType
- end
-
- unless const_defined?(:EventMask)
- EventMask = Event::Mask
- end
-
- module Keyval
- constants.each do |name|
- if /\AGDK_KEY_/ =~ name.to_s
- const_set("KEY_#{$POSTMATCH}", const_get(name))
- end
- end
- end
-
- class Screen
- unless method_defined?(:get_monitor_geometry)
- alias_method :get_monitor_geometry, :monitor_geometry
- end
- end
-
- unless const_defined?(:ScrollDirection)
- ScrollDirection = Gdk::EventScroll::Direction
- end
-end
-
-module Gtk
- unless const_defined?(:Actionable)
- class Action
- alias_method :initialize_raw, :initialize
- def initialize(name, options={})
- initialize_raw(name,
- options[:label],
- options[:tooltip],
- options[:stock_id])
-
- end
- end
- end
-
- unless const_defined?(:Application)
- class Application < Gio::Application
- attr_reader :windows
- def initialize(id, flags)
- super
- signal_connect_after("activate") do
- Gtk.main unless @windows.empty?
- end
- @windows = []
- end
- end
- end
-
- unless const_defined?(:ApplicationWindow)
- class ApplicationWindow
- class << self
- def new(application)
- window = Window.new
- application.windows << window
- window.signal_connect("destroy") do
- windows = application.windows
- windows.delete(window)
- Gtk.main_quit if windows.empty?
- end
- window
- end
- end
- end
- end
-
- class Widget
- unless public_method_defined?(:drag_dest_set)
- def drag_dest_set(flags, targets, actions)
- Gtk::Drag.dest_set(self, flags, targets, actions)
- end
- end
-
- unless public_method_defined?(:shape_combine_region)
- def shape_combine_region(cairo_region)
- gdk_region = cairo_region_to_gdk_region(cairo_region)
- window.shape_combine_region(gdk_region, 0, 0)
- end
- end
-
- private
- def cairo_region_to_gdk_region(cairo_region)
- return nil if cairo_region.nil?
-
- gdk_region = Gdk::Region.new
- cairo_region.each_rectangle do |rectangle|
- gdk_region.union(Gdk::Rectangle.new(*rectangle))
- end
- gdk_region
- end
- end
-
- if Box.gtype.abstract?
- class HBox
- class << self
- alias_method :new_raw, :new
- def new(*arguments)
- new_raw(*arguments)
- end
- end
- end
-
- class VBox
- class << self
- alias_method :new_raw, :new
- def new(*arguments)
- new_raw(*arguments)
- end
- end
- end
-
- class Box
- class << self
- def new(type)
- case type
- when :horizontal
- HBox.new
- when :vertical
- VBox.new
- else
- raise ArgumentError,
- "Box type must be :horizontal or :vertical: #{type.inspect}"
- end
- end
- end
- end
- end
-end
+require "gtk3"