add Gtkmm2ext::event_type_string()
[ardour.git] / libs / gtkmm2ext / utils.cc
index 6b58a6f9484b3a2539c513cb89e61059221724ea..4c85f1928de5d74d203ab1a1da69752f87882db8 100644 (file)
@@ -23,7 +23,6 @@
 #include <gtk/gtkpaned.h>
 #include <gtk/gtk.h>
 
-#include <gtkmm2ext/utils.h>
 #include <gtkmm/widget.h>
 #include <gtkmm/button.h>
 #include <gtkmm/window.h>
@@ -32,6 +31,8 @@
 #include <gtkmm/comboboxtext.h>
 #include <gtkmm/tooltip.h>
 
+#include "gtkmm2ext/utils.h"
+
 #include "i18n.h"
 
 using namespace std;
@@ -56,9 +57,9 @@ Gtkmm2ext::get_ink_pixel_size (Glib::RefPtr<Pango::Layout> layout,
 }
 
 void
-get_pixel_size (Glib::RefPtr<Pango::Layout> layout,
-                              int& width,
-                              int& height)
+Gtkmm2ext::get_pixel_size (Glib::RefPtr<Pango::Layout> layout,
+                          int& width,
+                          int& height)
 {
        layout->get_pixel_size (width, height);
 }
@@ -414,6 +415,13 @@ Gtkmm2ext::rounded_bottom_half_rectangle (Cairo::RefPtr<Cairo::Context> context,
 {
        rounded_bottom_half_rectangle (context->cobj(), x, y, w, h, r);
 }
+
+void
+Gtkmm2ext::rounded_left_half_rectangle (Cairo::RefPtr<Cairo::Context> context, double x, double y, double w, double h, double r)
+{
+       rounded_left_half_rectangle (context->cobj(), x, y, w, h, r);
+}
+
 void
 Gtkmm2ext::rounded_right_half_rectangle (Cairo::RefPtr<Cairo::Context> context, double x, double y, double w, double h, double r)
 {
@@ -433,6 +441,19 @@ Gtkmm2ext::rounded_rectangle (cairo_t* cr, double x, double y, double w, double
        cairo_close_path (cr);
 }
 
+void
+Gtkmm2ext::rounded_left_half_rectangle (cairo_t* cr, double x, double y, double w, double h, double r)
+{
+       double degrees = M_PI / 180.0;
+
+       cairo_new_sub_path (cr);
+       cairo_line_to (cr, x+w, y); // tr
+       cairo_line_to (cr, x+w, y + h); // br
+       cairo_arc (cr, x + r, y + h - r, r, 90 * degrees, 180 * degrees);  //bl
+       cairo_arc (cr, x + r, y + r, r, 180 * degrees, 270 * degrees);  //tl
+       cairo_close_path (cr);
+}
+
 void
 Gtkmm2ext::rounded_right_half_rectangle (cairo_t* cr, double x, double y, double w, double h, double r)
 {
@@ -659,3 +680,88 @@ Gtkmm2ext::disable_tooltips ()
 {
        gtk_rc_parse_string ("gtk-enable-tooltips = 0");
 }
+
+const char*
+Gtkmm2ext::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";
+}