summaryrefslogtreecommitdiff
path: root/libs/canvas
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2014-01-16 10:52:34 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2014-01-16 10:52:34 -0500
commit620e1e6677a13ab9841fc2c015145faa18f5d051 (patch)
treed091220710f2ed901823acb95bce28cc2ac34d37 /libs/canvas
parentdf7dae82cc0cc360baad8136c4ad18b97b9f8169 (diff)
add event type string function to canvas (since it does not use gtkmm2ext)
Diffstat (limited to 'libs/canvas')
-rw-r--r--libs/canvas/canvas.cc2
-rw-r--r--libs/canvas/canvas/debug.h1
-rw-r--r--libs/canvas/debug.cc85
3 files changed, 87 insertions, 1 deletions
diff --git a/libs/canvas/canvas.cc b/libs/canvas/canvas.cc
index 7fa3f98236..bb664afa95 100644
--- a/libs/canvas/canvas.cc
+++ b/libs/canvas/canvas.cc
@@ -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;
diff --git a/libs/canvas/canvas/debug.h b/libs/canvas/canvas/debug.h
index 09fa97789b..5feb42c8a5 100644
--- a/libs/canvas/canvas/debug.h
+++ b/libs/canvas/canvas/debug.h
@@ -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;
diff --git a/libs/canvas/debug.cc b/libs/canvas/debug.cc
index 04dd2ef31b..bb154cf528 100644
--- a/libs/canvas/debug.cc
+++ b/libs/canvas/debug.cc
@@ -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";
+}