|
|
fe00971 |
From 0ed9577c7edc9b227d86d3110bb8294940507f19 Mon Sep 17 00:00:00 2001
|
|
|
fe00971 |
From: Kouhei Sutou <kou@clear-code.com>
|
|
|
fe00971 |
Date: Tue, 11 Feb 2014 16:28:26 +0900
|
|
|
fe00971 |
Subject: [PATCH] gdk3: add missing methods derived from GdkEventAny to all
|
|
|
fe00971 |
event classes
|
|
|
fe00971 |
|
|
|
fe00971 |
GitHub: #222
|
|
|
fe00971 |
|
|
|
fe00971 |
Reported by mtasaka. Thanks!!!
|
|
|
fe00971 |
---
|
|
|
fe00971 |
gdk3/ext/gdk3/rbgdkevent.c | 15 ++---
|
|
|
fe00971 |
gdk3/test/test-gdk-event.rb | 134 +++++++++++++++++++++++++++++++++++++-------
|
|
|
fe00971 |
2 files changed, 121 insertions(+), 28 deletions(-)
|
|
|
fe00971 |
|
|
|
fe00971 |
diff --git a/gdk3/ext/gdk3/rbgdkevent.c b/gdk3/ext/gdk3/rbgdkevent.c
|
|
|
fe00971 |
index c5e908e..46f33f5 100644
|
|
|
fe00971 |
--- a/gdk3/ext/gdk3/rbgdkevent.c
|
|
|
fe00971 |
+++ b/gdk3/ext/gdk3/rbgdkevent.c
|
|
|
fe00971 |
@@ -1,6 +1,6 @@
|
|
|
fe00971 |
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
|
|
fe00971 |
/*
|
|
|
fe00971 |
- * Copyright (C) 2002-2013 Ruby-GNOME2 Project Team
|
|
|
fe00971 |
+ * Copyright (C) 2002-2014 Ruby-GNOME2 Project Team
|
|
|
fe00971 |
* Copyright (C) 1998-2000 Yukihiro Matsumoto,
|
|
|
fe00971 |
* Daisuke Kanda,
|
|
|
fe00971 |
* Hiroshi Igarashi
|
|
|
fe00971 |
@@ -721,8 +721,6 @@ gboolean gdk_event_get_state (GdkEvent *event,
|
|
|
fe00971 |
ATTR_FLOAT(button, y_root);
|
|
|
fe00971 |
|
|
|
fe00971 |
/* GdkEventTouch */
|
|
|
fe00971 |
-ATTR_GOBJ(touch, window);
|
|
|
fe00971 |
-ATTR_BOOL(touch, send_event);
|
|
|
fe00971 |
ATTR_UINT(touch, time);
|
|
|
fe00971 |
ATTR_FLOAT(touch, x);
|
|
|
fe00971 |
ATTR_FLOAT(touch, y);
|
|
|
fe00971 |
@@ -902,6 +900,11 @@ gboolean gdk_event_get_state (GdkEvent *event,
|
|
|
fe00971 |
rbg_define_method(rb_cGdkEvent, "screen", gdkevent_screen, 0);
|
|
|
fe00971 |
rbg_define_method(rb_cGdkEvent, "set_screen", gdkevent_set_screen, 1);
|
|
|
fe00971 |
|
|
|
fe00971 |
+ /* GdkEventAny's fields */
|
|
|
fe00971 |
+ DEFINE_ACCESSOR(rb_cGdkEvent, any, window);
|
|
|
fe00971 |
+ rbg_define_method(rb_cGdkEvent, "send_event?", gdkeventany_send_event, 0);
|
|
|
fe00971 |
+ rbg_define_method(rb_cGdkEvent, "set_send_event", gdkeventany_set_send_event, 1);
|
|
|
fe00971 |
+
|
|
|
fe00971 |
/*
|
|
|
fe00971 |
* GdkEvent's Constants
|
|
|
fe00971 |
*/
|
|
|
fe00971 |
@@ -926,9 +929,6 @@ gboolean gdk_event_get_state (GdkEvent *event,
|
|
|
fe00971 |
rb_cGdkEventAny =
|
|
|
fe00971 |
G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_ANY, "EventAny",
|
|
|
fe00971 |
mGdk, rb_cGdkEvent);
|
|
|
fe00971 |
- DEFINE_ACCESSOR(rb_cGdkEventAny, any, window);
|
|
|
fe00971 |
- rbg_define_method(rb_cGdkEventAny, "send_event?", gdkeventany_send_event, 0);
|
|
|
fe00971 |
- rbg_define_method(rb_cGdkEventAny, "set_send_event", gdkeventany_set_send_event, 1);
|
|
|
fe00971 |
|
|
|
fe00971 |
/* GdkEventExpose */
|
|
|
fe00971 |
rb_cGdkEventExpose =
|
|
|
fe00971 |
@@ -988,9 +988,6 @@ gboolean gdk_event_get_state (GdkEvent *event,
|
|
|
fe00971 |
rb_cGdkEventTouch =
|
|
|
fe00971 |
G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_TOUCH, "EventTouch",
|
|
|
fe00971 |
mGdk, rb_cGdkEvent);
|
|
|
fe00971 |
- DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, window);
|
|
|
fe00971 |
- rbg_define_method(rb_cGdkEventTouch, "send_event?", gdkeventtouch_send_event, 0);
|
|
|
fe00971 |
- rbg_define_method(rb_cGdkEventTouch, "set_send_event", gdkeventtouch_set_send_event, 1);
|
|
|
fe00971 |
DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, time);
|
|
|
fe00971 |
DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, x);
|
|
|
fe00971 |
DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, y);
|
|
|
fe00971 |
diff --git a/gdk3/test/test-gdk-event.rb b/gdk3/test/test-gdk-event.rb
|
|
|
fe00971 |
index 5117a53..a011f25 100644
|
|
|
fe00971 |
--- a/gdk3/test/test-gdk-event.rb
|
|
|
fe00971 |
+++ b/gdk3/test/test-gdk-event.rb
|
|
|
fe00971 |
@@ -1,6 +1,6 @@
|
|
|
fe00971 |
# -*- coding: utf-8 -*-
|
|
|
fe00971 |
#
|
|
|
fe00971 |
-# Copyright (C) 2013 Ruby-GNOME2 Project Team
|
|
|
fe00971 |
+# Copyright (C) 2013-2014 Ruby-GNOME2 Project Team
|
|
|
fe00971 |
#
|
|
|
fe00971 |
# This library is free software; you can redistribute it and/or
|
|
|
fe00971 |
# modify it under the terms of the GNU Lesser General Public
|
|
|
fe00971 |
@@ -17,11 +17,27 @@
|
|
|
fe00971 |
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
fe00971 |
|
|
|
fe00971 |
class TestGdkEvent < Test::Unit::TestCase
|
|
|
fe00971 |
+ module TestAnyMethods
|
|
|
fe00971 |
+ def test_window
|
|
|
fe00971 |
+ assert_nil(event.window)
|
|
|
fe00971 |
+ end
|
|
|
fe00971 |
+
|
|
|
fe00971 |
+ def test_send_event
|
|
|
fe00971 |
+ assert_false(event.send_event?)
|
|
|
fe00971 |
+ end
|
|
|
fe00971 |
+ end
|
|
|
fe00971 |
+
|
|
|
fe00971 |
class TestAny < self
|
|
|
fe00971 |
+ include TestAnyMethods
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def setup
|
|
|
fe00971 |
@event = Gdk::EventAny.new(:delete)
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
+ def event
|
|
|
fe00971 |
+ @event
|
|
|
fe00971 |
+ end
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def test_delete
|
|
|
fe00971 |
assert_equal("GDK_DELETE",
|
|
|
fe00971 |
Gdk::EventAny.new(:delete).event_type.name)
|
|
|
fe00971 |
@@ -31,23 +47,19 @@ def test_destroy
|
|
|
fe00971 |
assert_equal("GDK_DESTROY",
|
|
|
fe00971 |
Gdk::EventAny.new(:destroy).event_type.name)
|
|
|
fe00971 |
end
|
|
|
fe00971 |
-
|
|
|
fe00971 |
- def test_window
|
|
|
fe00971 |
- assert_nothing_raised do
|
|
|
fe00971 |
- @event.window
|
|
|
fe00971 |
- end
|
|
|
fe00971 |
- end
|
|
|
fe00971 |
-
|
|
|
fe00971 |
- def test_send_event
|
|
|
fe00971 |
- assert_false(@event.send_event?)
|
|
|
fe00971 |
- end
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
class TestKey < self
|
|
|
fe00971 |
+ include TestAnyMethods
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def setup
|
|
|
fe00971 |
@key = Gdk::EventKey.new(:key_press)
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
+ def event
|
|
|
fe00971 |
+ @key
|
|
|
fe00971 |
+ end
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def test_key_press
|
|
|
fe00971 |
assert_equal("GDK_KEY_PRESS",
|
|
|
fe00971 |
Gdk::EventKey.new(:key_press).event_type.name)
|
|
|
fe00971 |
@@ -72,10 +84,16 @@ def test_keyval
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
class TestButton < self
|
|
|
fe00971 |
+ include TestAnyMethods
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def setup
|
|
|
fe00971 |
@button = Gdk::EventButton.new(:button_press)
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
+ def event
|
|
|
fe00971 |
+ @button
|
|
|
fe00971 |
+ end
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def test_button_press
|
|
|
fe00971 |
assert_equal("GDK_BUTTON_PRESS",
|
|
|
fe00971 |
Gdk::EventButton.new(:button_press).event_type.name)
|
|
|
fe00971 |
@@ -126,18 +144,14 @@ def test_y_root
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
class TestTouch < self
|
|
|
fe00971 |
+ include TestAnyMethods
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def setup
|
|
|
fe00971 |
@touch = Gdk::EventTouch.new(:touch_begin)
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
- def test_window
|
|
|
fe00971 |
- assert_nothing_raised do
|
|
|
fe00971 |
- @touch.window
|
|
|
fe00971 |
- end
|
|
|
fe00971 |
- end
|
|
|
fe00971 |
-
|
|
|
fe00971 |
- def test_send_event
|
|
|
fe00971 |
- assert_false(@touch.send_event?)
|
|
|
fe00971 |
+ def event
|
|
|
fe00971 |
+ @touch
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
def test_time
|
|
|
fe00971 |
@@ -204,10 +218,16 @@ def test_y_root
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
class TestScroll < self
|
|
|
fe00971 |
+ include TestAnyMethods
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def setup
|
|
|
fe00971 |
@scroll = Gdk::EventScroll.new
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
+ def event
|
|
|
fe00971 |
+ @scroll
|
|
|
fe00971 |
+ end
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def test_time
|
|
|
fe00971 |
assert_kind_of(Integer, @scroll.time)
|
|
|
fe00971 |
end
|
|
|
fe00971 |
@@ -238,10 +258,16 @@ def test_y_root
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
class TestMotion < self
|
|
|
fe00971 |
+ include TestAnyMethods
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def setup
|
|
|
fe00971 |
@motion = Gdk::EventMotion.new
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
+ def event
|
|
|
fe00971 |
+ @motion
|
|
|
fe00971 |
+ end
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def test_time
|
|
|
fe00971 |
assert_kind_of(Integer, @motion.time)
|
|
|
fe00971 |
end
|
|
|
fe00971 |
@@ -274,20 +300,32 @@ def test_request
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
class TestVisibility < self
|
|
|
fe00971 |
+ include TestAnyMethods
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def setup
|
|
|
fe00971 |
@visibility = Gdk::EventVisibility.new(:visibility_notify)
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
+ def event
|
|
|
fe00971 |
+ @visibility
|
|
|
fe00971 |
+ end
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def test_state
|
|
|
fe00971 |
assert_kind_of(Gdk::EventVisibility::State, @visibility.state)
|
|
|
fe00971 |
end
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
class TestCrossing < self
|
|
|
fe00971 |
+ include TestAnyMethods
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def setup
|
|
|
fe00971 |
@crossing = Gdk::EventCrossing.new(:enter_notify)
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
+ def event
|
|
|
fe00971 |
+ @crossing
|
|
|
fe00971 |
+ end
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def test_enter_notify
|
|
|
fe00971 |
assert_equal("GDK_ENTER_NOTIFY",
|
|
|
fe00971 |
Gdk::EventCrossing.new(:enter_notify).event_type.name)
|
|
|
fe00971 |
@@ -334,20 +372,32 @@ def test_state
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
class TestFocus < self
|
|
|
fe00971 |
+ include TestAnyMethods
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def setup
|
|
|
fe00971 |
@focus = Gdk::EventFocus.new
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
+ def event
|
|
|
fe00971 |
+ @focus
|
|
|
fe00971 |
+ end
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def test_in
|
|
|
fe00971 |
assert_false(@focus.in?)
|
|
|
fe00971 |
end
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
class TestConfigure < self
|
|
|
fe00971 |
+ include TestAnyMethods
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def setup
|
|
|
fe00971 |
@configure = Gdk::EventConfigure.new
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
+ def event
|
|
|
fe00971 |
+ @configure
|
|
|
fe00971 |
+ end
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def test_x
|
|
|
fe00971 |
assert_kind_of(Integer, @configure.x)
|
|
|
fe00971 |
end
|
|
|
fe00971 |
@@ -366,10 +416,16 @@ def test_height
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
class TestProperty < self
|
|
|
fe00971 |
+ include TestAnyMethods
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def setup
|
|
|
fe00971 |
@property = Gdk::EventProperty.new
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
+ def event
|
|
|
fe00971 |
+ @property
|
|
|
fe00971 |
+ end
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def test_atom
|
|
|
fe00971 |
assert_nothing_raised do
|
|
|
fe00971 |
@property.atom
|
|
|
fe00971 |
@@ -386,10 +442,16 @@ def test_state
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
class TestSelection < self
|
|
|
fe00971 |
+ include TestAnyMethods
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def setup
|
|
|
fe00971 |
@selection = Gdk::EventSelection.new(:selection_clear)
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
+ def event
|
|
|
fe00971 |
+ @selection
|
|
|
fe00971 |
+ end
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def test_selection_clear
|
|
|
fe00971 |
assert_equal("GDK_SELECTION_CLEAR",
|
|
|
fe00971 |
Gdk::EventSelection.new(:selection_clear).event_type.name)
|
|
|
fe00971 |
@@ -429,10 +491,16 @@ def test_time
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
class TestDND < self
|
|
|
fe00971 |
+ include TestAnyMethods
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def setup
|
|
|
fe00971 |
@dnd = Gdk::EventDND.new(:drag_enter)
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
+ def event
|
|
|
fe00971 |
+ @dnd
|
|
|
fe00971 |
+ end
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def test_drag_enter
|
|
|
fe00971 |
assert_equal("GDK_DRAG_ENTER",
|
|
|
fe00971 |
Gdk::EventDND.new(:drag_enter).event_type.name)
|
|
|
fe00971 |
@@ -483,10 +551,16 @@ def test_y_root
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
class TestProximity < self
|
|
|
fe00971 |
+ include TestAnyMethods
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def setup
|
|
|
fe00971 |
@proximity = Gdk::EventProximity.new(:proximity_in)
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
+ def event
|
|
|
fe00971 |
+ @proximity
|
|
|
fe00971 |
+ end
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def test_proximity_in
|
|
|
fe00971 |
assert_equal("GDK_PROXIMITY_IN",
|
|
|
fe00971 |
Gdk::EventProximity.new(:proximity_in).event_type.name)
|
|
|
fe00971 |
@@ -509,10 +583,16 @@ def test_device
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
class TestWindowState < self
|
|
|
fe00971 |
+ include TestAnyMethods
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def setup
|
|
|
fe00971 |
@window_state = Gdk::EventWindowState.new
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
+ def event
|
|
|
fe00971 |
+ @window_state
|
|
|
fe00971 |
+ end
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def test_changed_mask
|
|
|
fe00971 |
assert_nothing_raised do
|
|
|
fe00971 |
@window_state.changed_mask
|
|
|
fe00971 |
@@ -527,10 +607,16 @@ def test_new_window_state
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
class TestSetting < self
|
|
|
fe00971 |
+ include TestAnyMethods
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def setup
|
|
|
fe00971 |
@setting = Gdk::EventSetting.new
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
+ def event
|
|
|
fe00971 |
+ @setting
|
|
|
fe00971 |
+ end
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def test_action
|
|
|
fe00971 |
assert_nothing_raised do
|
|
|
fe00971 |
@setting.action
|
|
|
fe00971 |
@@ -549,6 +635,10 @@ def setup
|
|
|
fe00971 |
@owner_change = Gdk::EventOwnerChange.new
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
+ def event
|
|
|
fe00971 |
+ @owner_change
|
|
|
fe00971 |
+ end
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def test_owner
|
|
|
fe00971 |
assert_nothing_raised do
|
|
|
fe00971 |
@owner_change.owner
|
|
|
fe00971 |
@@ -577,10 +667,16 @@ def test_selection_time
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
class TestGrabBroken < self
|
|
|
fe00971 |
+ include TestAnyMethods
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def setup
|
|
|
fe00971 |
@grab_broken = Gdk::EventGrabBroken.new
|
|
|
fe00971 |
end
|
|
|
fe00971 |
|
|
|
fe00971 |
+ def event
|
|
|
fe00971 |
+ @grab_broken
|
|
|
fe00971 |
+ end
|
|
|
fe00971 |
+
|
|
|
fe00971 |
def test_keyboard
|
|
|
fe00971 |
assert_boolean(@grab_broken.keyboard?)
|
|
|
fe00971 |
end
|
|
|
fe00971 |
--
|
|
|
fe00971 |
1.8.5.1
|
|
|
fe00971 |
|