add event type string function to canvas (since it does not use gtkmm2ext)
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 16 Jan 2014 15:52:34 +0000 (10:52 -0500)
committerPaul Davis <paul@linuxaudiosystems.com>
Thu, 16 Jan 2014 15:52:34 +0000 (10:52 -0500)
libs/canvas/canvas.cc
libs/canvas/canvas/debug.h
libs/canvas/debug.cc

index 7fa3f982367d2cb183418090e6b5977fe2b853b5..bb664afa95e7f3b7314b65d55d8f40ea7b2df408 100644 (file)
@@ -536,7 +536,7 @@ GtkCanvas::deliver_event (GdkEvent* event)
                        return true;
                }
                
-               DEBUG_TRACE (PBD::DEBUG::CanvasEvents, string_compose ("canvas event left unhandled by %1 %2\n", item->whatami(), item->name.empty() ? "[unknown]" : item->name));
+               DEBUG_TRACE (PBD::DEBUG::CanvasEvents, string_compose ("canvas event %3 left unhandled by %1 %2\n", item->whatami(), item->name.empty() ? "[unknown]" : item->name, event_type_string (event->type)));
 
                if ((item = parent) == 0) {
                        break;
index 09fa97789b01a5d4d60178441699bdc1203e80f5..5feb42c8a5a85926f3dcf3dafc5e121e2edaeaf6 100644 (file)
@@ -46,6 +46,7 @@ namespace ArdourCanvas {
        LIBCANVAS_API extern std::map<std::string, struct timeval> last_time;
        LIBCANVAS_API extern void checkpoint (std::string, std::string);
        LIBCANVAS_API extern void set_epoch ();
+       LIBCANVAS_API extern const char* event_type_string (int event_type);
        LIBCANVAS_API extern int render_count;
        LIBCANVAS_API extern int render_depth;
        LIBCANVAS_API extern int dump_depth;
index 04dd2ef31b0ca3d68ec17430eea4f184a8eced65..bb154cf52821a739ea1d5127f5eaae276a461424 100644 (file)
@@ -19,6 +19,7 @@
 
 #include <sys/time.h>
 #include <iostream>
+#include <gdk/gdk.h>
 #include "canvas/debug.h"
 
 using namespace std;
@@ -70,3 +71,87 @@ ArdourCanvas::checkpoint (string group, string message)
        last_time[group] = now;
 }
 
+const char*
+ArdourCanvas::event_type_string (int event_type)
+{
+       switch (event_type) {
+       case GDK_NOTHING:
+               return "nothing";
+       case GDK_DELETE:
+               return "delete";
+       case GDK_DESTROY:
+               return "destroy";
+       case GDK_EXPOSE:
+               return "expose";
+       case GDK_MOTION_NOTIFY:
+               return "motion_notify";
+       case GDK_BUTTON_PRESS:
+               return "button_press";
+       case GDK_2BUTTON_PRESS:
+               return "2button_press";
+       case GDK_3BUTTON_PRESS:
+               return "3button_press";
+       case GDK_BUTTON_RELEASE:
+               return "button_release";
+       case GDK_KEY_PRESS:
+               return "key_press";
+       case GDK_KEY_RELEASE:
+               return "key_release";
+       case GDK_ENTER_NOTIFY:
+               return "enter_notify";
+       case GDK_LEAVE_NOTIFY:
+               return "leave_notify";
+       case GDK_FOCUS_CHANGE:
+               return "focus_change";
+       case GDK_CONFIGURE:
+               return "configure";
+       case GDK_MAP:
+               return "map";
+       case GDK_UNMAP:
+               return "unmap";
+       case GDK_PROPERTY_NOTIFY:
+               return "property_notify";
+       case GDK_SELECTION_CLEAR:
+               return "selection_clear";
+       case GDK_SELECTION_REQUEST:
+               return "selection_request";
+       case GDK_SELECTION_NOTIFY:
+               return "selection_notify";
+       case GDK_PROXIMITY_IN:
+               return "proximity_in";
+       case GDK_PROXIMITY_OUT:
+               return "proximity_out";
+       case GDK_DRAG_ENTER:
+               return "drag_enter";
+       case GDK_DRAG_LEAVE:
+               return "drag_leave";
+       case GDK_DRAG_MOTION:
+               return "drag_motion";
+       case GDK_DRAG_STATUS:
+               return "drag_status";
+       case GDK_DROP_START:
+               return "drop_start";
+       case GDK_DROP_FINISHED:
+               return "drop_finished";
+       case GDK_CLIENT_EVENT:
+               return "client_event";
+       case GDK_VISIBILITY_NOTIFY:
+               return "visibility_notify";
+       case GDK_NO_EXPOSE:
+               return "no_expose";
+       case GDK_SCROLL:
+               return "scroll";
+       case GDK_WINDOW_STATE:
+               return "window_state";
+       case GDK_SETTING:
+               return "setting";
+       case GDK_OWNER_CHANGE:
+               return "owner_change";
+       case GDK_GRAB_BROKEN:
+               return "grab_broken";
+       case GDK_DAMAGE:
+               return "damage";
+       }
+
+       return "unknown";
+}