[gtkmm] Update Gdk::Event and its subclasses



commit e47ac4497985f6cea48efffcaeb05becbc3101df
Author: Kjell Ahlstedt <kjellahlstedt gmail com>
Date:   Fri Feb 9 19:24:11 2018 +0100

    Update Gdk::Event and its subclasses
    
    * gdk/src/event.[ccg|hg]: Add set/get_device() and set/get_source_device().
    * gdk/src/events.[ccg|hg]: Move get_device() to the base class, Gdk::Event.
    Add EventButton::get_device_tool() and EventMotion::get_device_tool().

 gdk/src/event.ccg  |    1 +
 gdk/src/event.hg   |   17 ++++++++++----
 gdk/src/events.ccg |   52 +++++++++-----------------------------------
 gdk/src/events.hg  |   60 +++++++++++----------------------------------------
 4 files changed, 37 insertions(+), 93 deletions(-)
---
diff --git a/gdk/src/event.ccg b/gdk/src/event.ccg
index d908fe5..3776511 100644
--- a/gdk/src/event.ccg
+++ b/gdk/src/event.ccg
@@ -15,6 +15,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+#include <gdkmm/device.h>
 #include <gdkmm/display.h>
 #include <gdkmm/seat.h>
 #include <gdkmm/window.h>
diff --git a/gdk/src/event.hg b/gdk/src/event.hg
index 70d36b6..0bfa5ed 100644
--- a/gdk/src/event.hg
+++ b/gdk/src/event.hg
@@ -41,6 +41,7 @@ using GdkEventClass = struct _GdkEventClass;
 
 namespace Gdk
 {
+class Device;
 class Display;
 class Seat;
 class Window;
@@ -79,11 +80,19 @@ public:
    */
   _WRAP_METHOD(bool is_sent() const, gdk_event_is_sent)
 
-  //_WRAP_METHOD(void  gdk_event_handler_set(GdkEventFunc func, gpointer data, GDestroyNotify  notify), 
gdk_event_handler_set)
+  _IGNORE(gdk_event_handler_set)dnl// Usually not useful for GTK+ applications
 
   _WRAP_METHOD(static void set_show_events(bool show_events = true), gdk_set_show_events)
   _WRAP_METHOD(static bool get_show_events(), gdk_get_show_events)
 
+  _WRAP_METHOD(void set_device(const Glib::RefPtr<Device>& device), gdk_event_set_device, newin "3,94")
+  _WRAP_METHOD(Glib::RefPtr<Device> get_device(), gdk_event_get_device, refreturn, newin "3,94")
+  _WRAP_METHOD(Glib::RefPtr<const Device> get_device() const, gdk_event_get_device, refreturn, constversion, 
newin "3,94")
+
+  _WRAP_METHOD(void set_source_device(const Glib::RefPtr<Device>& device), gdk_event_set_source_device, 
newin "3,94")
+  _WRAP_METHOD(Glib::RefPtr<Device> get_source_device(), gdk_event_get_source_device, refreturn, newin 
"3,94")
+  _WRAP_METHOD(Glib::RefPtr<const Device> get_source_device() const, gdk_event_get_source_device, refreturn, 
constversion, newin "3,94")
+
   _WRAP_METHOD(void set_display(const Glib::RefPtr<Display>& display), gdk_event_set_display)
   _WRAP_METHOD(Glib::RefPtr<Display> get_display(), gdk_event_get_display, refreturn)
   _WRAP_METHOD(Glib::RefPtr<const Display> get_display() const, gdk_event_get_display, refreturn, 
constversion)
@@ -93,14 +102,12 @@ public:
 
   _WRAP_PROPERTY("event-type", Type)
 
-  //TODO: If GdkDeviceTool is wrapped in gtkmm, wrap gdk_event_get_device_tool().
-  _IGNORE(gdk_event_set_device_tool) dnl// "Should be rarely used"
-
   // Belong to subclasses:
   _IGNORE(gdk_event_get_time, gdk_event_get_state, gdk_event_get_keyval,
+    gdk_event_get_device_tool, gdk_event_set_device_tool,
     gdk_event_get_keycode, gdk_event_get_scancode, gdk_event_get_key_group,
     gdk_event_get_key_is_modifier, gdk_event_get_string, gdk_event_get_button,
-    gdk_event_get_device, gdk_event_get_click_count, gdk_event_triggers_context_menu,
+    gdk_event_get_click_count, gdk_event_triggers_context_menu,
     gdk_event_get_coords, gdk_event_get_root_coords, gdk_event_get_scroll_deltas,
     gdk_event_get_scroll_direction, gdk_event_is_scroll_stop_event, gdk_event_get_axis,
     gdk_event_get_event_sequence, gdk_event_get_touch_emulating_pointer,
diff --git a/gdk/src/events.ccg b/gdk/src/events.ccg
index 67e0f27..b497921 100644
--- a/gdk/src/events.ccg
+++ b/gdk/src/events.ccg
@@ -14,7 +14,7 @@
  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include <gdkmm/device.h>
+#include <gdkmm/devicetool.h>
 #include <gdkmm/dragcontext.h>
 
 namespace
@@ -110,19 +110,19 @@ guint EventButton::get_button() const
   return button;
 }
 
-Glib::RefPtr<Gdk::Device> EventButton::get_device()
+bool EventButton::shall_trigger_context_menu() const
 {
-  return Glib::wrap(gdk_event_get_device(Event::gobj()), true);
+  return gdk_event_triggers_context_menu(Event::gobj());
 }
 
-Glib::RefPtr<const Gdk::Device> EventButton::get_device() const
+Glib::RefPtr<Gdk::DeviceTool> EventButton::get_device_tool()
 {
-  return Glib::wrap(gdk_event_get_device(Event::gobj()), true);
+  return Glib::wrap(gdk_event_get_device_tool(Event::gobj()), true);
 }
 
-bool EventButton::shall_trigger_context_menu() const
+Glib::RefPtr<const Gdk::DeviceTool> EventButton::get_device_tool() const
 {
-  return gdk_event_triggers_context_menu(Event::gobj());
+  return Glib::wrap(gdk_event_get_device_tool(Event::gobj()), true);
 }
 
 // *** EventScroll ***
@@ -164,16 +164,6 @@ bool EventScroll::is_scroll_stop_event() const
   return gdk_event_is_scroll_stop_event(Event::gobj());
 }
 
-Glib::RefPtr<Gdk::Device> EventScroll::get_device()
-{
-  return Glib::wrap(gdk_event_get_device(Event::gobj()), true);
-}
-
-Glib::RefPtr<const Gdk::Device> EventScroll::get_device() const
-{
-  return Glib::wrap(gdk_event_get_device(Event::gobj()), true);
-}
-
 // *** EventMotion ***
 
 guint32 EventMotion::get_time() const
@@ -201,14 +191,14 @@ bool EventMotion::get_axis(Gdk::AxisUse axis_use, double& value) const
   return gdk_event_get_axis(Event::gobj(), static_cast<GdkAxisUse>(axis_use), &value);
 }
 
-Glib::RefPtr<Gdk::Device> EventMotion::get_device()
+Glib::RefPtr<Gdk::DeviceTool> EventMotion::get_device_tool()
 {
-  return Glib::wrap(gdk_event_get_device(Event::gobj()), true);
+  return Glib::wrap(gdk_event_get_device_tool(Event::gobj()), true);
 }
 
-Glib::RefPtr<const Gdk::Device> EventMotion::get_device() const
+Glib::RefPtr<const Gdk::DeviceTool> EventMotion::get_device_tool() const
 {
-  return Glib::wrap(gdk_event_get_device(Event::gobj()), true);
+  return Glib::wrap(gdk_event_get_device_tool(Event::gobj()), true);
 }
 
 // *** EventTouch ***
@@ -255,16 +245,6 @@ bool EventTouch::get_pointer_emulated() const
   return gdk_event_get_pointer_emulated(const_cast<GdkEvent*>(Event::gobj()));
 }
 
-Glib::RefPtr<Gdk::Device> EventTouch::get_device()
-{
-  return Glib::wrap(gdk_event_get_device(Event::gobj()), true);
-}
-
-Glib::RefPtr<const Gdk::Device> EventTouch::get_device() const
-{
-  return Glib::wrap(gdk_event_get_device(Event::gobj()), true);
-}
-
 // *** EventCrossing ***
 
 guint32 EventCrossing::get_time() const
@@ -350,16 +330,6 @@ guint32 EventProximity::get_time() const
   return gdk_event_get_time(Event::gobj());
 }
 
-Glib::RefPtr<Gdk::Device> EventProximity::get_device()
-{
-  return Glib::wrap(gdk_event_get_device(Event::gobj()), true);
-}
-
-Glib::RefPtr<const Gdk::Device> EventProximity::get_device() const
-{
-  return Glib::wrap(gdk_event_get_device(Event::gobj()), true);
-}
-
 // *** EventGrabBroken ***
 
 Glib::RefPtr<Gdk::Window> EventGrabBroken::get_grab_window()
diff --git a/gdk/src/events.hg b/gdk/src/events.hg
index 0335d12..8b57956 100644
--- a/gdk/src/events.hg
+++ b/gdk/src/events.hg
@@ -36,7 +36,7 @@ _CC_INCLUDE(gdk/gdk.h)
 
 namespace Gdk
 {
-class Device;
+class DeviceTool;
 class DragContext;
 
 /** Representing an event sequence.
@@ -104,7 +104,9 @@ public:
 
   // Belong to the base class:
   _IGNORE(gdk_event_get_event_type, gdk_event_get_window, gdk_event_is_sent,
-    gdk_event_get_seat, gdk_event_get_device_tool, gdk_event_set_device_tool)
+    gdk_event_get_seat, gdk_event_handler_set, gdk_event_set_device, gdk_event_get_device,
+    gdk_event_set_source_device, gdk_event_get_source_device, gdk_event_set_display,
+    gdk_event_get_display)
 };
 
 /** Represents a mouse button press or release event.
@@ -149,20 +151,15 @@ public:
   guint get_button() const;
   _IGNORE(gdk_event_get_button)
 
-  /**
-   * Returns the device where the event originated from.
-   */
-  Glib::RefPtr<Gdk::Device> get_device();
-  /**
-   * Returns the device where the event originated from.
-   */
-  Glib::RefPtr<const Gdk::Device> get_device() const;
-  _IGNORE(gdk_event_get_device)
-
   _IGNORE(gdk_event_get_click_count) dnl// Always returns 1 for an EventButton
 
   _WRAP_METHOD_DOCS_ONLY(gdk_event_triggers_context_menu)
   bool shall_trigger_context_menu() const;
+
+  _WRAP_METHOD_DOCS_ONLY(gdk_event_get_device_tool, newin "3,94")
+  Glib::RefPtr<DeviceTool> get_device_tool();
+  _WRAP_METHOD_DOCS_ONLY(gdk_event_get_device_tool, newin "3,94")
+  Glib::RefPtr<const DeviceTool> get_device_tool() const;
 };
 
 /** Generated when the mouse is scrolled.
@@ -213,15 +210,6 @@ public:
 
   _WRAP_METHOD_DOCS_ONLY(gdk_event_is_scroll_stop_event)
   bool is_scroll_stop_event() const;
-
-  /**
-   * Returns the device where the event originated from.
-   */
-  Glib::RefPtr<Gdk::Device> get_device();
-  /**
-   * Returns the device where the event originated from.
-   */
-  Glib::RefPtr<const Gdk::Device> get_device() const;
 };
 
 /** Generated when a mouse pointer is moved.
@@ -256,14 +244,10 @@ public:
   _WRAP_METHOD_DOCS_ONLY(gdk_event_get_axis)
   bool get_axis(Gdk::AxisUse axis_use, double& value) const;
 
-  /**
-   * Returns the device where the event originated from.
-   */
-  Glib::RefPtr<Gdk::Device> get_device();
-  /**
-   * Returns the device where the event originated from.
-   */
-  Glib::RefPtr<const Gdk::Device> get_device() const;
+  _WRAP_METHOD_DOCS_ONLY(gdk_event_get_device_tool, newin "3,94")
+  Glib::RefPtr<DeviceTool> get_device_tool();
+  _WRAP_METHOD_DOCS_ONLY(gdk_event_get_device_tool, newin "3,94")
+  Glib::RefPtr<const DeviceTool> get_device_tool() const;
 };
 
 /** Generated during an attached touchscreen is touched.
@@ -322,15 +306,6 @@ public:
   //TODO: In other subclasses as well?
   _WRAP_METHOD_DOCS_ONLY(gdk_event_get_pointer_emulated)
   bool get_pointer_emulated() const;
-
-  /**
-   * Returns the device where the event originated from.
-   */
-  Glib::RefPtr<Gdk::Device> get_device();
-  /**
-   * Returns the device where the event originated from.
-   */
-  Glib::RefPtr<const Gdk::Device> get_device() const;
 };
 
 /** Generated when the mouse pointer leaves or enters the window.
@@ -539,15 +514,6 @@ public:
    * Returns the timestamp of the event in milliseconds.
    */
   guint32 get_time() const;
-
-  /**
-   * Returns the device where the event originated from.
-   */
-  Glib::RefPtr<Gdk::Device> get_device();
-  /**
-   * Returns the device where the event originated from.
-   */
-  Glib::RefPtr<const Gdk::Device> get_device() const;
 };
 
 /** Generated when a pointer or keyboard grab is broken. On X11, this happens


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]