remove all traces of "prolooks" and related classes
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 11 Feb 2016 18:03:24 +0000 (13:03 -0500)
committerPaul Davis <paul@linuxaudiosystems.com>
Thu, 11 Feb 2016 18:03:24 +0000 (13:03 -0500)
gtk2_ardour/monitor_section.cc
gtk2_ardour/monitor_section.h
gtk2_ardour/volume_controller.cc [deleted file]
gtk2_ardour/volume_controller.h [deleted file]
gtk2_ardour/wscript
libs/gtkmm2ext/gtkmm2ext/motionfeedback.h [deleted file]
libs/gtkmm2ext/gtkmm2ext/prolooks-helpers.h [deleted file]
libs/gtkmm2ext/motionfeedback.cc [deleted file]
libs/gtkmm2ext/prolooks_helpers.c [deleted file]
libs/gtkmm2ext/wscript

index d07ca51dd56b1a35367da8728d4cdca06168ef97..d940258011e5af6ab927a38d7341eff4e4ea84de 100644 (file)
@@ -26,7 +26,6 @@
 #include "gtkmm2ext/bindable_button.h"
 #include "gtkmm2ext/tearoff.h"
 #include "gtkmm2ext/actions.h"
-#include "gtkmm2ext/motionfeedback.h"
 #include "gtkmm2ext/utils.h"
 
 #include <gtkmm/menu.h>
@@ -45,7 +44,6 @@
 #include "public_editor.h"
 #include "timers.h"
 #include "tooltips.h"
-#include "volume_controller.h"
 #include "ui_config.h"
 #include "utils.h"
 
index 67d22d0af013d27a2076e1b83e9b5eda904011c2..a0339a74bb3858bb6ff546a417d099e07692c569 100644 (file)
 
 namespace Gtkmm2ext {
        class TearOff;
-       class MotionFeedback;
 }
 
-class VolumeController;
-
 class MonitorSection : public RouteUI
 {
        public:
diff --git a/gtk2_ardour/volume_controller.cc b/gtk2_ardour/volume_controller.cc
deleted file mode 100644 (file)
index 346ed6e..0000000
+++ /dev/null
@@ -1,280 +0,0 @@
-/*
-    Copyright (C) 1998-2007 Paul Davis
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-    $Id: volume_controller.cc,v 1.4 2000/05/03 15:54:21 pbd Exp $
-*/
-
-#include <algorithm>
-
-#include <string.h>
-#include <limits.h>
-
-#include "pbd/controllable.h"
-#include "pbd/stacktrace.h"
-
-#include "gtkmm2ext/gui_thread.h"
-
-#include "ardour/dB.h"
-#include "ardour/rc_configuration.h"
-#include "ardour/utils.h"
-
-#include "volume_controller.h"
-
-using namespace Gtk;
-
-VolumeController::VolumeController (Glib::RefPtr<Gdk::Pixbuf> p,
-                                   boost::shared_ptr<PBD::Controllable> c,
-                                   double def,
-                                   double step,
-                                   double page,
-                                   bool with_numeric,
-                                    int subw,
-                                   int subh,
-                                   bool linear)
-
-       : MotionFeedback (p, MotionFeedback::Rotary, c, def, step, page, "", with_numeric, subw, subh)
-       , _linear (linear)
-{
-       set_print_func (VolumeController::_dB_printer, this);
-       value->set_width_chars (8);
-}
-
-void
-VolumeController::_dB_printer (char buf[32], const boost::shared_ptr<PBD::Controllable>& c, void* arg)
-{
-       VolumeController* vc = reinterpret_cast<VolumeController*>(arg);
-       vc->dB_printer (buf, c);
-}
-
-void
-VolumeController::dB_printer (char buf[32], const boost::shared_ptr<PBD::Controllable>& c)
-{
-       if (c) {
-
-               if (_linear) {
-
-                       double val = accurate_coefficient_to_dB (c->get_value());
-
-                       if (step_inc < 1.0) {
-                               if (val >= 0.0) {
-                                       snprintf (buf, 32, "+%5.2f dB", val);
-                               } else {
-                                       snprintf (buf, 32, "%5.2f dB", val);
-                               }
-                       } else {
-                               if (val >= 0.0) {
-                                       snprintf (buf, 32, "+%2ld dB", lrint (val));
-                               } else {
-                                       snprintf (buf, 32, "%2ld dB", lrint (val));
-                               }
-                       }
-
-               } else {
-
-                       double dB = accurate_coefficient_to_dB (c->get_value());
-
-                       if (step_inc < 1.0) {
-                               if (dB >= 0.0) {
-                                       snprintf (buf, 32, "+%5.2f dB", dB);
-                               } else {
-                                       snprintf (buf, 32, "%5.2f dB", dB);
-                               }
-                       } else {
-                               if (dB >= 0.0) {
-                                       snprintf (buf, 32, "+%2ld dB", lrint (dB));
-                               } else {
-                                       snprintf (buf, 32, "%2ld dB", lrint (dB));
-                               }
-                       }
-               }
-       } else {
-               snprintf (buf, 32, "--");
-       }
-}
-
-double
-VolumeController::to_control_value (double display_value)
-{
-       double v;
-
-       /* display value is always clamped to 0.0 .. 1.0 */
-       display_value = std::max (0.0, std::min (1.0, display_value));
-
-       if (_linear) {
-               v = _controllable->lower() + ((_controllable->upper() - _controllable->lower()) * display_value);
-       } else {
-               v = ARDOUR::slider_position_to_gain_with_max (display_value, ARDOUR::Config->get_max_gain());
-       }
-
-       return v;
-}
-
-double
-VolumeController::to_display_value (double control_value)
-{
-       double v;
-
-       if (_linear) {
-               v = (control_value - _controllable->lower ()) / (_controllable->upper() - _controllable->lower());
-       } else {
-               v = ARDOUR::gain_to_slider_position_with_max (control_value, _controllable->upper());
-       }
-
-       return v;
-}
-
-double
-VolumeController::adjust (double control_delta)
-{
-       double v;
-
-       if (!_linear) {
-               /* we map back into the linear/fractional slider position,
-                * because this kind of control goes all the way down
-                * to -inf dB, and we want this occur in a reasonable way in
-                * terms of user interaction. if we leave the adjustment in the
-                * gain coefficient domain (or dB domain), the lower end of the
-                * control range (getting close to -inf dB) takes forever.
-                */
-#if 0
-               /* convert to linear/fractional slider position domain */
-               v = ARDOUR::gain_to_slider_position_with_max (_controllable->get_value (), _controllable->upper());
-               /* increment in this domain */
-               v += control_delta;
-               /* clamp to appropriate range for linear/fractional slider domain */
-               v = std::max (0.0, std::min (1.0, v));
-               /* convert back to gain coefficient domain */
-               v = ARDOUR::slider_position_to_gain_with_max (v, _controllable->upper());
-               /* clamp in controller domain */
-               v = std::max (_controllable->lower(), std::min (_controllable->upper(), v));
-               /* convert to dB domain */
-               v = accurate_coefficient_to_dB (v);
-               /* round up/down to nearest 0.1dB */
-               if (control_delta > 0.0) {
-                       v = ceil (v * 10.0) / 10.0;
-               } else {
-                       v = floor (v * 10.0) / 10.0;
-               }
-               /* and return it */
-               return dB_to_coefficient (v);
-#else
-               /* ^^ Above algorithm is not symmetric. Scroll up to steps, scoll down two steps, -> different gain.
-                *
-                * see ./libs/gtkmm2ext/gtkmm2ext/motionfeedback.h and gtk2_ardour/monitor_section.cc:
-                * min-delta (corr) = MIN(0.01 * page inc, 1 * size_inc) // (gain_control uses size_inc=0.01, page_inc=0.1)
-                * range corr: 0..2   -> -inf..+6dB
-                * step sizes  [0.01, 0.10, 0.20] * page_inc,   [1,2,10,100] * step_inc. [1,2,10,100] * page_inc
-                *
-                * 0.001, 0.01, 0.02, 0.1, .2,  1, 10
-                * -> 1k steps between -inf..0dB
-                * -> 1k steps between 0..+dB
-                *
-                *  IOW:
-                *  the range is from *0  (-inf dB)  to  *2.0  ( +6dB)
-                *  the knob is configured to to go in steps of 0.001  - that's 2000 steps between 0 and 2.
-                *  or 1000 steps between 0 and 1.
-                *
-                *  we cannot round to .01dB steps because
-                *  There are only 600 possible values between  +0db and +6dB when going in steps of .01dB
-                *  1000/600 = 1.66666...
-                *
-                ******
-                * idea: make the 'controllable use a fixed range of dB.
-                * do a 1:1 mapping between values.  :et's stick with the range of 0..2 in 0.001 steps
-                *
-                * "-80" becomes 0 and "+6" becomes 2000. (NB +6dB is actually 1995, but we clamp that to the top)
-                *
-                * This approach is better (more consistet) but not good. At least the dial does not annoy me as much
-                * anymore as it did before.
-                *
-                * const double stretchfactor = rint((_controllable->upper() - _controllable->lower()) / 0.001); // 2000;
-                * const double logfactor =  stretchfactor / ((20.0 * log10( _controllable->upper())) + 80.0); // = 23.250244732
-                */
-               v = _controllable->get_value ();
-               /* assume everything below -60dB is silent (.001 ^= -60dB)
-                * but map range -80db..+6dB to a scale of 0..2000
-                * 80db was motivated because 2000/((20.0 * log(1)) + 80.0) is an integer value. "0dB" is included on the scale.
-                * but this leaves a dead area at the bottom of the meter..
-                */
-               double arange = (v >= 0.001) ? ( ((20.0 * log10(v)) + 80.0) * 23.250244732 ) : ( 0 );
-               /* add the delta */
-               v = rint(arange) + rint(control_delta * 1000.0); // (min steps is 1.0/0.001 == 1000.0)
-               /* catch bottom -80..-60 db in one step */
-               if (v < 466) v = (control_delta > 0) ? 0.001 : 0;
-               /* reverse operation  (pow(10, .05 * ((v / 23.250244732) - 80.0)))
-                * can be simplified to :*/
-               else v = pow(10, (v * 0.00215051499) - 4.0);
-               /* clamp value in coefficient domain */
-               v = std::max (_controllable->lower(), std::min (_controllable->upper(), v));
-               return v;
-#endif
-       } else {
-               double mult;
-
-               if (control_delta < 0.0) {
-                       mult = -1.0;
-               } else {
-                       mult = 1.0;
-               }
-
-               if (fabs (control_delta) < 0.05) {
-                       control_delta = mult * 0.05;
-               } else  {
-                       control_delta = mult * 0.1;
-               }
-
-               v = _controllable->get_value();
-
-               if (v == 0.0) {
-                       /* if we don't special case this, we can't escape from
-                          the -infinity dB black hole.
-                       */
-                       if (control_delta > 0.0) {
-                               v = dB_to_coefficient (-100 + control_delta);
-                       }
-               } else {
-                       static const double dB_minus_200 = dB_to_coefficient (-200.0);
-                       static const double dB_minus_100 = dB_to_coefficient (-100.0);
-                       static const double dB_minus_50 = dB_to_coefficient (-50.0);
-                       static const double dB_minus_20 = dB_to_coefficient (-20.0);
-
-                       if (control_delta < 0 && v < dB_minus_200) {
-                               v = 0.0;
-                       } else {
-
-                               /* non-linear scaling as the dB level gets low
-                                  so that we can hit -inf and get back out of
-                                  it appropriately.
-                               */
-
-                               if (v < dB_minus_100) {
-                                       control_delta *= 1000.0;
-                               } else if (v < dB_minus_50) {
-                                       control_delta *= 100.0;
-                               } else if (v < dB_minus_20) {
-                                       control_delta *= 10.0;
-                               }
-
-                               v = accurate_coefficient_to_dB (v);
-                               v += control_delta;
-                               v = dB_to_coefficient (v);
-                       }
-               }
-
-               return std::max (_controllable->lower(), std::min (_controllable->upper(), v));
-       }
-
-}
diff --git a/gtk2_ardour/volume_controller.h b/gtk2_ardour/volume_controller.h
deleted file mode 100644 (file)
index 28877b7..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-    Copyright (C) 1998-2007 Paul Davis
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-    $Id: volume_controller.h,v 1.4 2000/05/03 15:54:21 pbd Exp $
-*/
-
-#ifndef __gtk_ardour_vol_controller_h__
-#define __gtk_ardour_vol_controller_h__
-
-#include <gtkmm/adjustment.h>
-
-#include "gtkmm2ext/motionfeedback.h"
-
-class VolumeController : public Gtkmm2ext::MotionFeedback
-{
-  public:
-       VolumeController (Glib::RefPtr<Gdk::Pixbuf>,
-                         boost::shared_ptr<PBD::Controllable>,
-                         double def,
-                         double step,
-                         double page,
-                         bool with_numeric = true,
-                          int image_width = 40,
-                          int image_height = 40,
-                         bool linear = true);
-
-        virtual ~VolumeController () {}
-
-       static void _dB_printer (char buf[32], const boost::shared_ptr<PBD::Controllable>& adj, void* arg);
-
-  protected:
-       double to_control_value (double);
-       double to_display_value (double);
-       double adjust (double nominal_delta);
-
-       double display_value () const;
-       double control_value () const;
-
-  private:
-       bool _linear;
-
-       void dB_printer (char buf[32], const boost::shared_ptr<PBD::Controllable>& adj);
-};
-
-#endif // __gtk_ardour_vol_controller_h__
-
-
index b8606a31858950b89be3eb5a023615af4ad1dd3d..9b864be6b475cad2ce18e271caabd40e5ec3a391 100644 (file)
@@ -246,7 +246,6 @@ gtk2_ardour_sources = [
         'utils.cc',
         'verbose_cursor.cc',
         'visibility_group.cc',
-        'volume_controller.cc',
         'window_manager.cc',
 # video-timeline related sources:
         'video_image_frame.cc',
diff --git a/libs/gtkmm2ext/gtkmm2ext/motionfeedback.h b/libs/gtkmm2ext/gtkmm2ext/motionfeedback.h
deleted file mode 100644 (file)
index 91e7a67..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
-    Copyright (C) 1998-99 Paul Barton-Davis
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-    $Id: motionfeedback.h,v 1.1.1.1 2001/11/24 00:44:46 pbd Exp $
-*/
-
-#ifndef __gtkmm2ext_motion_feedback_h__
-#define __gtkmm2ext_motion_feedback_h__
-
-#include "pbd/signals.h"
-
-#include <gdkmm/pixbuf.h>
-#include <gtkmm/box.h>
-#include <gtkmm/label.h>
-#include <gtkmm/eventbox.h>
-
-#include "gtkmm2ext/visibility.h"
-#include "gtkmm2ext/binding_proxy.h"
-#include "gtkmm2ext/prolooks-helpers.h"
-
-namespace Gtk {
-       class Adjustment;
-       class SpinButton;
-}
-
-namespace Gtkmm2ext {
-
-class LIBGTKMM2EXT_API MotionFeedback : public Gtk::VBox
-{
- public:
-       enum Type {
-               Rotary,
-               CenterSpring,
-               Endless
-       };
-
-       MotionFeedback (Glib::RefPtr<Gdk::Pixbuf>,
-                       Type type,
-                       boost::shared_ptr<PBD::Controllable>,
-                       double default_value,
-                       double step_increment,
-                       double page_increment,
-                       const char *widget_name = NULL,
-                       bool with_numeric_display = true,
-                        int sub_image_width = 40,
-                        int sub_image_height = 40);
-       virtual ~MotionFeedback ();
-
-       Gtk::Widget& eventwin () { return pixwin; }
-
-        boost::shared_ptr<PBD::Controllable> controllable() const;
-       virtual void set_controllable (boost::shared_ptr<PBD::Controllable> c);
-
-        static void set_lamp_color (const std::string&);
-
-        static Glib::RefPtr<Gdk::Pixbuf> render_pixbuf (int size);
-
-       void set_print_func(void (*pf)(char buf[32], const boost::shared_ptr<PBD::Controllable>&, void *),
-                           void *arg) {
-               print_func = pf;
-               print_arg = arg;
-       };
-
- protected:
-       boost::shared_ptr<PBD::Controllable> _controllable;
-       Gtk::Label* value;
-        double default_value;
-       double step_inc;
-       double page_inc;
-
-       void pixwin_size_request (GtkRequisition *);
-
-       bool pixwin_button_press_event (GdkEventButton *);
-       bool pixwin_button_release_event (GdkEventButton *);
-       bool pixwin_motion_notify_event (GdkEventMotion *);
-       bool pixwin_key_press_event (GdkEventKey *);
-       bool pixwin_enter_notify_event (GdkEventCrossing *);
-       bool pixwin_leave_notify_event (GdkEventCrossing *);
-       bool pixwin_focus_in_event (GdkEventFocus*);
-       bool pixwin_focus_out_event (GdkEventFocus *);
-       bool pixwin_expose_event (GdkEventExpose*);
-       bool pixwin_scroll_event (GdkEventScroll*);
-
-       /* map a display value (0.0 .. 1.0) to a control
-          value (controllable->lower() .. controllable()->upper)
-       */
-       virtual double to_control_value (double) = 0;
-
-       /* map a control value (controllable->lower() .. controllable()->upper)
-          to a display value (0.0 .. 1.0)
-       */
-       virtual double to_display_value (double) = 0;
-
-       virtual double adjust (double nominal_delta) = 0;
-
-  private:
-       Type type;
-       Gtk::EventBox      pixwin;
-        Gtk::EventBox*     value_packer;
-       Glib::RefPtr<Gdk::Pixbuf> pixbuf;
-        BindingProxy       binding_proxy;
-       static Gdk::Color* base_color;
-
-       void (*print_func) (char buf[32], const boost::shared_ptr<PBD::Controllable>&, void *);
-       void *print_arg;
-       static void default_printer (char buf[32], const boost::shared_ptr<PBD::Controllable>&, void *);
-
-       bool   grab_is_fine;
-       double grabbed_y;
-       double grabbed_x;
-        int subwidth;
-        int subheight;
-       void controllable_value_changed ();
-       PBD::ScopedConnection controller_connection;
-
-        static void core_draw (cairo_t*, int, double, double, double, double, const GdkColor* bright, const GdkColor* dark);
-};
-
-} /* namespace */
-
-#endif // __gtkmm2ext_motion_feedback_h__
diff --git a/libs/gtkmm2ext/gtkmm2ext/prolooks-helpers.h b/libs/gtkmm2ext/gtkmm2ext/prolooks-helpers.h
deleted file mode 100644 (file)
index 618b4bd..0000000
+++ /dev/null
@@ -1,252 +0,0 @@
-/* Helpers.c generated by valac, the Vala compiler */
-
-/*
-    Copyright 2009 by Hans Baier
-    License: LGPLv2+
-*/
-
-#ifndef __prolooks_helpers_h__
-#define __prolooks_helpers_h__
-
-#include <glib.h>
-#include <glib-object.h>
-#include <float.h>
-#include <math.h>
-#include <stdlib.h>
-#include <string.h>
-#include <cairo.h>
-#include <gdk/gdk.h>
-#include <gdk-pixbuf/gdk-pixdata.h>
-#include <gobject/gvaluecollector.h>
-
-#include "gtkmm2ext/visibility.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define CAIRO_TYPE_COLOR (cairo_color_get_type ())
-#define CAIRO_COLOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CAIRO_TYPE_COLOR, CairoColor))
-#define CAIRO_COLOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CAIRO_TYPE_COLOR, CairoColorClass))
-#define CAIRO_IS_COLOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CAIRO_TYPE_COLOR))
-#define CAIRO_IS_COLOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CAIRO_TYPE_COLOR))
-#define CAIRO_COLOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CAIRO_TYPE_COLOR, CairoColorClass))
-
-typedef struct _CairoColor CairoColor;
-typedef struct _CairoColorClass CairoColorClass;
-typedef struct _CairoColorPrivate CairoColorPrivate;
-
-#define PROLOOKS_TYPE_HSL (prolooks_hsl_get_type ())
-#define PROLOOKS_HSL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROLOOKS_TYPE_HSL, ProlooksHSL))
-#define PROLOOKS_HSL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROLOOKS_TYPE_HSL, ProlooksHSLClass))
-#define PROLOOKS_IS_HSL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROLOOKS_TYPE_HSL))
-#define PROLOOKS_IS_HSL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROLOOKS_TYPE_HSL))
-#define PROLOOKS_HSL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROLOOKS_TYPE_HSL, ProlooksHSLClass))
-
-typedef struct _ProlooksHSL ProlooksHSL;
-typedef struct _ProlooksHSLClass ProlooksHSLClass;
-#define _prolooks_hsl_unref0(var) ((var == NULL) ? NULL : (var = (prolooks_hsl_unref (var), NULL)))
-#define _cairo_color_unref0(var) ((var == NULL) ? NULL : (var = (cairo_color_unref (var), NULL)))
-typedef struct _CairoParamSpecColor CairoParamSpecColor;
-
-#define PROLOOKS_TYPE_BUTTON_STATE (prolooks_button_state_get_type ())
-
-#define PROLOOKS_TYPE_BUTTON_TYPE (prolooks_button_type_get_type ())
-#define _cairo_pattern_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_pattern_destroy (var), NULL)))
-typedef struct _ProlooksHSLPrivate ProlooksHSLPrivate;
-typedef struct _ProlooksParamSpecHSL ProlooksParamSpecHSL;
-
-#define PROLOOKS_TYPE_HSV (prolooks_hsv_get_type ())
-#define PROLOOKS_HSV(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROLOOKS_TYPE_HSV, ProlooksHSV))
-#define PROLOOKS_HSV_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROLOOKS_TYPE_HSV, ProlooksHSVClass))
-#define PROLOOKS_IS_HSV(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROLOOKS_TYPE_HSV))
-#define PROLOOKS_IS_HSV_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROLOOKS_TYPE_HSV))
-#define PROLOOKS_HSV_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROLOOKS_TYPE_HSV, ProlooksHSVClass))
-
-typedef struct _ProlooksHSV ProlooksHSV;
-typedef struct _ProlooksHSVClass ProlooksHSVClass;
-typedef struct _ProlooksHSVPrivate ProlooksHSVPrivate;
-typedef struct _ProlooksParamSpecHSV ProlooksParamSpecHSV;
-
-struct _CairoColor {
-       GTypeInstance parent_instance;
-       volatile int ref_count;
-       CairoColorPrivate * priv;
-};
-
-struct _CairoColorClass {
-       GTypeClass parent_class;
-       void (*finalize) (CairoColor *self);
-};
-
-struct _CairoColorPrivate {
-       double _red;
-       double _green;
-       double _blue;
-       double _alpha;
-};
-
-struct _CairoParamSpecColor {
-       GParamSpec parent_instance;
-};
-
-typedef enum  {
-       PROLOOKS_BUTTON_STATE_NORMAL,
-       PROLOOKS_BUTTON_STATE_PRESSED
-} ProlooksButtonState;
-
-typedef enum  {
-       PROLOOKS_BUTTON_TYPE_PRESS_BUTTON,
-       PROLOOKS_BUTTON_TYPE_TOGGLE_BUTTON
-} ProlooksButtonType;
-
-struct _ProlooksHSL {
-       GTypeInstance parent_instance;
-       volatile int ref_count;
-       ProlooksHSLPrivate * priv;
-};
-
-struct _ProlooksHSLClass {
-       GTypeClass parent_class;
-       void (*finalize) (ProlooksHSL *self);
-};
-
-struct _ProlooksHSLPrivate {
-       double _hue;
-       double _saturation;
-       double _lightness;
-};
-
-struct _ProlooksParamSpecHSL {
-       GParamSpec parent_instance;
-};
-
-struct _ProlooksHSV {
-       GTypeInstance parent_instance;
-       volatile int ref_count;
-       ProlooksHSVPrivate * priv;
-};
-
-struct _ProlooksHSVClass {
-       GTypeClass parent_class;
-       void (*finalize) (ProlooksHSV *self);
-};
-
-struct _ProlooksHSVPrivate {
-       double _hue;
-       double _saturation;
-       double _value;
-};
-
-struct _ProlooksParamSpecHSV {
-       GParamSpec parent_instance;
-};
-
-
-LIBGTKMM2EXT_API gpointer cairo_color_ref (gpointer instance);
-LIBGTKMM2EXT_API void cairo_color_unref (gpointer instance);
-LIBGTKMM2EXT_API GParamSpec* cairo_param_spec_color (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
-LIBGTKMM2EXT_API void cairo_value_set_color (GValue* value, gpointer v_object);
-LIBGTKMM2EXT_API void cairo_value_take_color (GValue* value, gpointer v_object);
-LIBGTKMM2EXT_API gpointer cairo_value_get_color (const GValue* value);
-LIBGTKMM2EXT_API GType cairo_color_get_type (void);
-#define CAIRO_COLOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CAIRO_TYPE_COLOR, CairoColorPrivate))
-enum LIBGTKMM2EXT_API  {
-       CAIRO_COLOR_DUMMY_PROPERTY
-};
-LIBGTKMM2EXT_API void cairo_color_set_red (CairoColor* self, double value);
-LIBGTKMM2EXT_API void cairo_color_set_green (CairoColor* self, double value);
-LIBGTKMM2EXT_API void cairo_color_set_blue (CairoColor* self, double value);
-LIBGTKMM2EXT_API void cairo_color_set_alpha (CairoColor* self, double value);
-LIBGTKMM2EXT_API CairoColor* cairo_color_new (double red, double green, double blue, double alpha);
-LIBGTKMM2EXT_API CairoColor* cairo_color_construct (GType object_type, double red, double green, double blue, double alpha);
-LIBGTKMM2EXT_API double cairo_color_get_red (CairoColor* self);
-LIBGTKMM2EXT_API double cairo_color_get_green (CairoColor* self);
-LIBGTKMM2EXT_API double cairo_color_get_blue (CairoColor* self);
-LIBGTKMM2EXT_API double cairo_color_get_alpha (CairoColor* self);
-LIBGTKMM2EXT_API CairoColor* cairo_color_copy (CairoColor* self);
-LIBGTKMM2EXT_API void cairo_color_set_from_string (CairoColor* self, const char* webcolor);
-LIBGTKMM2EXT_API CairoColor* cairo_color_new_from_string (const char* webcolor);
-LIBGTKMM2EXT_API CairoColor* cairo_color_construct_from_string (GType object_type, const char* webcolor);
-LIBGTKMM2EXT_API ProlooksHSL* prolooks_hsl_new (void);
-LIBGTKMM2EXT_API ProlooksHSL* prolooks_hsl_construct (GType object_type);
-LIBGTKMM2EXT_API gpointer prolooks_hsl_ref (gpointer instance);
-LIBGTKMM2EXT_API void prolooks_hsl_unref (gpointer instance);
-LIBGTKMM2EXT_API GParamSpec* prolooks_param_spec_hsl (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
-LIBGTKMM2EXT_API void prolooks_value_set_hsl (GValue* value, gpointer v_object);
-LIBGTKMM2EXT_API void prolooks_value_take_hsl (GValue* value, gpointer v_object);
-LIBGTKMM2EXT_API gpointer prolooks_value_get_hsl (const GValue* value);
-LIBGTKMM2EXT_API GType prolooks_hsl_get_type (void);
-LIBGTKMM2EXT_API void prolooks_hsl_from_cairo_color (ProlooksHSL* self, CairoColor* color);
-LIBGTKMM2EXT_API double prolooks_hsl_get_lightness (ProlooksHSL* self);
-LIBGTKMM2EXT_API void prolooks_hsl_set_lightness (ProlooksHSL* self, double value);
-LIBGTKMM2EXT_API double prolooks_hsl_get_saturation (ProlooksHSL* self);
-LIBGTKMM2EXT_API void prolooks_hsl_set_saturation (ProlooksHSL* self, double value);
-LIBGTKMM2EXT_API CairoColor* prolooks_hsl_to_cairo_color (ProlooksHSL* self);
-LIBGTKMM2EXT_API CairoColor* cairo_color_shade (CairoColor* self, double shade_factor);
-LIBGTKMM2EXT_API void cairo_color_set_to (CairoColor* self, CairoColor* a_color);
-LIBGTKMM2EXT_API void cairo_color_set_as_source_in (CairoColor* self, cairo_t* cr);
-LIBGTKMM2EXT_API void cairo_color_add_color_stop_to (CairoColor* self, cairo_pattern_t* p, double offset);
-LIBGTKMM2EXT_API CairoColor* prolooks_gdk_color_to_cairo (const GdkColor* color);
-LIBGTKMM2EXT_API void prolooks_color_from_string (const char* webcolor, GdkColor* result);
-LIBGTKMM2EXT_API GType prolooks_button_state_get_type (void);
-LIBGTKMM2EXT_API GType prolooks_button_type_get_type (void);
-LIBGTKMM2EXT_API void prolooks_set_line_width_from_device (cairo_t* cr);
-LIBGTKMM2EXT_API char* prolooks_color_to_string (const GdkColor* color);
-LIBGTKMM2EXT_API CairoColor* prolooks_cairo_color_from_string (const char* webcolor);
-LIBGTKMM2EXT_API void prolooks_set_source_color (cairo_t* cr, const GdkColor* color, double alpha);
-LIBGTKMM2EXT_API void prolooks_gdk_color_to_cairo_color (const GdkColor* color, double* red, double* green, double* blue);
-LIBGTKMM2EXT_API void prolooks_cairo_color_to_gdk (CairoColor* cairo_color, GdkColor* result);
-LIBGTKMM2EXT_API void prolooks_set_source_color_string (cairo_t* cr, const char* color, double alpha);
-LIBGTKMM2EXT_API void prolooks_add_color_stop (cairo_pattern_t* p, double offset, const GdkColor* color, double alpha);
-LIBGTKMM2EXT_API void prolooks_add_color_stop_str (cairo_pattern_t* p, double offset, const char* color, double alpha);
-LIBGTKMM2EXT_API cairo_pattern_t* prolooks_create_gradient (double x1, double y1, double x2, double y2, const GdkColor* start, const GdkColor* stop, double alpha_start, double alpha_stop);
-LIBGTKMM2EXT_API cairo_pattern_t* prolooks_create_gradient_str (double x1, double y1, double x2, double y2, const char* start, const char* stop, double alpha_start, double alpha_stop);
-LIBGTKMM2EXT_API void prolooks_rounded_rect (cairo_t* cr, double x, double y, double w, double h, double radius_x, double radius_y);
-LIBGTKMM2EXT_API void prolooks_background_gradient (cairo_t* cr, double w, double h);
-LIBGTKMM2EXT_API double prolooks_modula (double number, double divisor);
-#define PROLOOKS_HSL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PROLOOKS_TYPE_HSL, ProlooksHSLPrivate))
-enum LIBGTKMM2EXT_API  {
-       PROLOOKS_HSL_DUMMY_PROPERTY
-};
-LIBGTKMM2EXT_API double prolooks_hsl_get_hue (ProlooksHSL* self);
-LIBGTKMM2EXT_API char* prolooks_hsl_to_string (ProlooksHSL* self);
-LIBGTKMM2EXT_API void prolooks_hsl_to_gdk_color (ProlooksHSL* self, GdkColor* result);
-LIBGTKMM2EXT_API void prolooks_hsl_from_gdk_color (ProlooksHSL* self, const GdkColor* color);
-LIBGTKMM2EXT_API void prolooks_hsl_set_hue (ProlooksHSL* self, double value);
-LIBGTKMM2EXT_API gpointer prolooks_hsv_ref (gpointer instance);
-LIBGTKMM2EXT_API void prolooks_hsv_unref (gpointer instance);
-LIBGTKMM2EXT_API GParamSpec* prolooks_param_spec_hsv (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
-LIBGTKMM2EXT_API void prolooks_value_set_hsv (GValue* value, gpointer v_object);
-LIBGTKMM2EXT_API void prolooks_value_take_hsv (GValue* value, gpointer v_object);
-LIBGTKMM2EXT_API gpointer prolooks_value_get_hsv (const GValue* value);
-LIBGTKMM2EXT_API GType prolooks_hsv_get_type (void);
-#define PROLOOKS_HSV_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PROLOOKS_TYPE_HSV, ProlooksHSVPrivate))
-enum LIBGTKMM2EXT_API  {
-       PROLOOKS_HSV_DUMMY_PROPERTY
-};
-LIBGTKMM2EXT_API double prolooks_hsv_get_hue (ProlooksHSV* self);
-LIBGTKMM2EXT_API double prolooks_hsv_get_saturation (ProlooksHSV* self);
-LIBGTKMM2EXT_API double prolooks_hsv_get_value (ProlooksHSV* self);
-LIBGTKMM2EXT_API char* prolooks_hsv_to_string (ProlooksHSV* self);
-LIBGTKMM2EXT_API void prolooks_hsv_from_gdk_color (ProlooksHSV* self, const GdkColor* color);
-LIBGTKMM2EXT_API ProlooksHSV* prolooks_hsv_new_for_gdk_color (const GdkColor* color);
-LIBGTKMM2EXT_API ProlooksHSV* prolooks_hsv_construct_for_gdk_color (GType object_type, const GdkColor* color);
-LIBGTKMM2EXT_API void prolooks_hsv_from_cairo_color (ProlooksHSV* self, CairoColor* color);
-LIBGTKMM2EXT_API ProlooksHSV* prolooks_hsv_new_for_cairo_color (CairoColor* color);
-LIBGTKMM2EXT_API ProlooksHSV* prolooks_hsv_construct_for_cairo_color (GType object_type, CairoColor* color);
-LIBGTKMM2EXT_API CairoColor* prolooks_hsv_to_cairo_color (ProlooksHSV* self);
-LIBGTKMM2EXT_API void prolooks_hsv_to_gdk_color (ProlooksHSV* self, GdkColor* result);
-LIBGTKMM2EXT_API void prolooks_hsv_set_value (ProlooksHSV* self, double value);
-LIBGTKMM2EXT_API void prolooks_hsv_set_hue (ProlooksHSV* self, double value);
-LIBGTKMM2EXT_API void prolooks_hsv_set_saturation (ProlooksHSV* self, double value);
-LIBGTKMM2EXT_API ProlooksHSV* prolooks_hsv_new (void);
-LIBGTKMM2EXT_API ProlooksHSV* prolooks_hsv_construct (GType object_type);
-LIBGTKMM2EXT_API void prolooks_shade_color (const GdkColor* orig, double shade_ratio, GdkColor* result);
-LIBGTKMM2EXT_API GdkPixbuf* prolooks_cairo_image_surface_to_pixbuf (cairo_surface_t* surface);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif /* __prolooks_helpers_h__ */
diff --git a/libs/gtkmm2ext/motionfeedback.cc b/libs/gtkmm2ext/motionfeedback.cc
deleted file mode 100644 (file)
index 0dccdab..0000000
+++ /dev/null
@@ -1,693 +0,0 @@
-/*
-    Copyright (C) 2010-2011 Paul Davis
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-    $Id: motionfeedback.cc,v 1.5 2004/03/01 03:44:19 pauld Exp $
-*/
-
-#include <iostream>
-#include <cmath>
-#include <cstdlib>
-#include <algorithm>
-#include <unistd.h>
-#include <stdio.h> /* for snprintf, grrr */
-
-#include "pbd/gstdio_compat.h"
-
-#include <gdk/gdkkeysyms.h>
-#include <gtkmm.h>
-
-#include "pbd/controllable.h"
-#include "pbd/compose.h"
-#include "pbd/error.h"
-
-#include "gtkmm2ext/motionfeedback.h"
-#include "gtkmm2ext/keyboard.h"
-#include "gtkmm2ext/prolooks-helpers.h"
-#include "gtkmm2ext/gui_thread.h"
-
-#include "i18n.h"
-
-using namespace Gtk;
-using namespace Gtkmm2ext;
-using namespace sigc;
-
-using PBD::error;
-using PBD::Controllable;
-
-Gdk::Color* MotionFeedback::base_color;
-
-MotionFeedback::MotionFeedback (Glib::RefPtr<Gdk::Pixbuf> pix,
-                               Type t,
-                               boost::shared_ptr<PBD::Controllable> c,
-                               double default_val,
-                               double step_increment,
-                               double page_increment,
-                               const char *widget_name,
-                               bool with_numeric_display,
-                                int subw,
-                                int subh)
-       : _controllable (c)
-        , value (0)
-       , default_value (default_val)
-       , step_inc (step_increment)
-       , page_inc (page_increment)
-       , type (t)
-        , value_packer (0)
-       , pixbuf (pix)
-        , subwidth (subw)
-        , subheight (subh)
-{
-       if (!base_color) {
-               base_color = new Gdk::Color ("#1a5274");
-       }
-
-       char value_name[1024];
-
-       print_func = default_printer;
-       print_arg = 0;
-
-
-        HBox* hpacker = manage (new HBox);
-        hpacker->pack_start (pixwin, true, true);
-        hpacker->show ();
-       pack_start (*hpacker, false, false);
-       pixwin.show ();
-
-       if (with_numeric_display) {
-
-                value_packer = new EventBox;
-                value_packer->set_name ("MotionControllerValue");
-               value_packer->show ();
-               value_packer->set_border_width (6);
-
-               value = new Label;
-               value->set_justify (Gtk::JUSTIFY_RIGHT);
-               value->show ();
-
-                value_packer->add (*value);
-
-               hpacker = manage (new HBox);
-               hpacker->pack_start (*value_packer, true, false);
-               hpacker->show ();
-               hpacker->set_border_width (6);
-
-               pack_start (*hpacker, false, false);
-
-               if (widget_name) {
-                       snprintf (value_name, sizeof(value_name), "%sValue", widget_name);
-                       value->set_name (value_name);
-               }
-
-               if (_controllable) {
-                       char buf[32];
-                       print_func (buf, _controllable, print_arg);
-                       value->set_text (buf);
-               }
-       }
-
-       pixwin.set_events (Gdk::BUTTON_PRESS_MASK|
-                          Gdk::BUTTON_RELEASE_MASK|
-                          Gdk::POINTER_MOTION_MASK|
-                          Gdk::ENTER_NOTIFY_MASK|
-                          Gdk::LEAVE_NOTIFY_MASK|
-                          Gdk::SCROLL_MASK|
-                          Gdk::KEY_PRESS_MASK|
-                          Gdk::KEY_RELEASE_MASK);
-
-       pixwin.set_flags (CAN_FOCUS);
-
-       /* Proxy all important events on the pixwin to ourselves */
-
-       pixwin.signal_button_press_event().connect(mem_fun (*this,&MotionFeedback::pixwin_button_press_event));
-       pixwin.signal_button_release_event().connect(mem_fun (*this,&MotionFeedback::pixwin_button_release_event));
-       pixwin.signal_motion_notify_event().connect(mem_fun (*this,&MotionFeedback::pixwin_motion_notify_event));
-       pixwin.signal_enter_notify_event().connect(mem_fun (*this,&MotionFeedback::pixwin_enter_notify_event));
-       pixwin.signal_leave_notify_event().connect(mem_fun (*this,&MotionFeedback::pixwin_leave_notify_event));
-       pixwin.signal_key_press_event().connect(mem_fun (*this,&MotionFeedback::pixwin_key_press_event));
-       pixwin.signal_scroll_event().connect(mem_fun (*this,&MotionFeedback::pixwin_scroll_event));
-       pixwin.signal_expose_event().connect(mem_fun (*this,&MotionFeedback::pixwin_expose_event), true);
-       pixwin.signal_size_request().connect(mem_fun (*this,&MotionFeedback::pixwin_size_request));
-}
-
-MotionFeedback::~MotionFeedback()
-{
-       delete value;
-        delete value_packer;
-}
-
-bool
-MotionFeedback::pixwin_button_press_event (GdkEventButton *ev)
-{
-        if (binding_proxy.button_press_handler (ev)) {
-                return true;
-       }
-
-       switch (ev->button) {
-       case 1:
-               grab_is_fine = false;
-               break;
-       case 2:
-               grab_is_fine = true;
-               break;
-       case 3:
-               return false;
-       }
-
-       gtk_grab_add(GTK_WIDGET(pixwin.gobj()));
-
-       grabbed_y = ev->y_root;
-       grabbed_x = ev->x_root;
-
-       return false;
-}
-
-bool
-MotionFeedback::pixwin_button_release_event (GdkEventButton *ev)
-{
-       if (!_controllable) {
-               return false;
-       }
-
-       switch (ev->button) {
-       case 1:
-               if (pixwin.has_grab()) {
-                       if (!grab_is_fine) {
-                               gtk_grab_remove
-                                       (GTK_WIDGET(pixwin.gobj()));
-                       }
-               }
-                if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
-                        /* shift click back to the default */
-                       _controllable->set_value (default_value, Controllable::NoGroup);
-                        return true;
-                } else if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
-                       /* ctrl click back to the minimum value */
-                       _controllable->set_value (_controllable->lower (), Controllable::NoGroup);
-               }
-               break;
-
-       case 3:
-               if (pixwin.has_grab()) {
-                       if (grab_is_fine) {
-                               gtk_grab_remove
-                                       (GTK_WIDGET(pixwin.gobj()));
-                       }
-               }
-               break;
-       }
-
-       return VBox::on_button_release_event (ev);
-}
-
-bool
-MotionFeedback::pixwin_motion_notify_event (GdkEventMotion *ev)
-{
-       if (!_controllable) {
-               return false;
-       }
-
-       gfloat multiplier;
-       gfloat x_delta;
-       gfloat y_delta;
-
-       if (!pixwin.has_grab()) {
-               return VBox::on_motion_notify_event (ev);
-       }
-
-       multiplier = ((ev->state & Keyboard::TertiaryModifier) ? 100 : 1) *
-                ((ev->state & Keyboard::PrimaryModifier) ? 10 : 1) *
-                ((ev->state & Keyboard::SecondaryModifier) ? 0.1 : 1);
-
-        if (ev->state & Gdk::BUTTON1_MASK) {
-
-               /* vertical control */
-
-                y_delta = grabbed_y - ev->y_root;
-                grabbed_y = ev->y_root;
-
-                x_delta = ev->x_root - grabbed_x;
-
-                if (y_delta == 0) return TRUE;
-
-                y_delta *= 1 + (x_delta/100);
-                y_delta *= multiplier;
-                y_delta /= 10;
-
-                _controllable->set_value (adjust ((grab_is_fine ? step_inc : page_inc) * y_delta), Controllable::NoGroup);
-
-        } else if (ev->state & Gdk::BUTTON2_MASK) {
-
-               /* rotary control */
-
-                double x = ev->x - subwidth/2;
-                double y = - ev->y + subwidth/2;
-                double angle = std::atan2 (y, x) / M_PI;
-
-                if (angle < -0.5) {
-                        angle += 2.0;
-                }
-
-                angle = -(2.0/3.0) * (angle - 1.25);
-                angle *= multiplier;
-
-                _controllable->set_value (to_control_value (angle), Controllable::NoGroup);
-        }
-
-
-       return true;
-}
-
-bool
-MotionFeedback::pixwin_enter_notify_event (GdkEventCrossing*)
-{
-       pixwin.grab_focus();
-       return false;
-}
-
-bool
-MotionFeedback::pixwin_leave_notify_event (GdkEventCrossing*)
-{
-       pixwin.unset_flags (HAS_FOCUS);
-       return false;
-}
-
-bool
-MotionFeedback::pixwin_key_press_event (GdkEventKey *ev)
-{
-       if (!_controllable) {
-               return false;
-       }
-
-       bool retval = false;
-       double multiplier;
-
-       multiplier = ((ev->state & Keyboard::TertiaryModifier) ? 100.0 : 1.0) *
-                ((ev->state & Keyboard::SecondaryModifier) ? 10.0 : 1.0) *
-                ((ev->state & Keyboard::PrimaryModifier) ? 2.0 : 1.0);
-
-       switch (ev->keyval) {
-       case GDK_Page_Up:
-               retval = true;
-               _controllable->set_value (adjust (multiplier * page_inc), Controllable::NoGroup);
-               break;
-
-       case GDK_Page_Down:
-               retval = true;
-               _controllable->set_value (adjust (-multiplier * page_inc), Controllable::NoGroup);
-               break;
-
-       case GDK_Up:
-               retval = true;
-               _controllable->set_value (adjust (multiplier * step_inc), Controllable::NoGroup);
-               break;
-
-       case GDK_Down:
-               retval = true;
-               _controllable->set_value (adjust (-multiplier * step_inc), Controllable::NoGroup);
-               break;
-
-       case GDK_Home:
-               retval = true;
-               _controllable->set_value (_controllable->lower(), Controllable::NoGroup);
-               break;
-
-       case GDK_End:
-               retval = true;
-               _controllable->set_value (_controllable->upper(), Controllable::NoGroup);
-               break;
-       }
-
-       return retval;
-}
-
-bool
-MotionFeedback::pixwin_expose_event (GdkEventExpose*)
-{
-       if (!_controllable) {
-               return true;
-       }
-
-       GdkWindow *window = pixwin.get_window()->gobj();
-       double display_val = to_display_value (_controllable->get_value());
-       int32_t phase = lrint (display_val * 64.0);
-
-       // skip middle phase except for true middle value
-
-       if (type == Rotary && phase == 32) {
-               double pt = (display_val * 2.0) - 1.0;
-               if (pt < 0)
-                       phase = 31;
-               if (pt > 0)
-                       phase = 33;
-       }
-
-       // endless knob: skip 90deg highlights unless the value is really a multiple of 90deg
-
-       if (type == Endless && !(phase % 16)) {
-               if (phase == 64) {
-                       phase = 0;
-                }
-
-               double nom = phase / 64.0;
-               double diff = display_val - nom;
-
-               if (diff > 0.0001)
-                       phase = (phase + 1) % 64;
-               if (diff < -0.0001)
-                       phase = (phase + 63) % 64;
-       }
-
-        phase = std::min (phase, (int32_t) 63);
-
-        GtkWidget* widget = GTK_WIDGET(pixwin.gobj());
-        gdk_draw_pixbuf (GDK_DRAWABLE(window), widget->style->fg_gc[0],
-                         pixbuf->gobj(),
-                         phase * subwidth, type * subheight,
-                        /* center image in allocated area */
-                         (get_width() - subwidth)/2,
-                        0,
-                        subwidth, subheight, GDK_RGB_DITHER_NORMAL, 0, 0);
-
-       return true;
-}
-
-bool
-MotionFeedback::pixwin_scroll_event (GdkEventScroll* ev)
-{
-       double scale;
-
-       if (!_controllable) {
-               return false;
-       }
-
-       if (ev->state & Keyboard::GainFineScaleModifier) {
-               if (ev->state & Keyboard::GainExtraFineScaleModifier) {
-                       scale = 0.01;
-               } else {
-                       scale = 0.10;
-               }
-       } else {
-               scale = 0.20;
-       }
-
-       switch (ev->direction) {
-       case GDK_SCROLL_UP:
-       case GDK_SCROLL_RIGHT:
-               _controllable->set_value (adjust (scale * page_inc), Controllable::NoGroup);
-               break;
-
-       case GDK_SCROLL_DOWN:
-       case GDK_SCROLL_LEFT:
-               _controllable->set_value (adjust (-scale * page_inc), Controllable::NoGroup);
-               break;
-       }
-
-        return true;
-}
-
-void
-MotionFeedback::pixwin_size_request (GtkRequisition* req)
-{
-       req->width = subwidth;
-       req->height = subheight;
-}
-
-
-void
-MotionFeedback::controllable_value_changed ()
-{
-       if (value) {
-               char buf[32];
-               print_func (buf, _controllable, print_arg);
-               value->set_text (buf);
-       }
-
-       pixwin.queue_draw ();
-}
-
-void
-MotionFeedback::set_controllable (boost::shared_ptr<PBD::Controllable> c)
-{
-       _controllable = c;
-        binding_proxy.set_controllable (c);
-       controller_connection.disconnect ();
-
-       if (c) {
-               c->Changed.connect (controller_connection, MISSING_INVALIDATOR, boost::bind (&MotionFeedback::controllable_value_changed, this), gui_context());
-
-               char buf[32];
-               print_func (buf, _controllable, print_arg);
-               value->set_text (buf);
-       }
-
-       pixwin.queue_draw ();
-}
-
-boost::shared_ptr<PBD::Controllable>
-MotionFeedback::controllable () const
-{
-        return _controllable;
-}
-
-void
-MotionFeedback::default_printer (char buf[32], const boost::shared_ptr<PBD::Controllable>& c, void *)
-{
-       if (c) {
-               sprintf (buf, "%.2f", c->get_value());
-       } else {
-               buf[0] = '\0';
-       }
-}
-
-Glib::RefPtr<Gdk::Pixbuf>
-MotionFeedback::render_pixbuf (int size)
-{
-        Glib::RefPtr<Gdk::Pixbuf> pixbuf;
-       char *path;
-        int fd;
-       GError *gerror = NULL;
-
-       fd = g_file_open_tmp ("mfimgXXXXXX", &path, &gerror);
-
-       if (gerror) {
-               error << string_compose (_("motionfeedback: failed to open a temporary file for writing: %1"), gerror->message) << endmsg;
-               g_error_free (gerror);
-                return pixbuf;
-       } else {
-               ::close (fd);
-       }
-
-
-       GdkColor col2 = {0,0,0,0};
-       GdkColor col3 = {0,0,0,0};
-       GdkColor dark;
-       GdkColor bright;
-       ProlooksHSV* hsv;
-
-       hsv = prolooks_hsv_new_for_gdk_color (base_color->gobj());
-       bright = (prolooks_hsv_to_gdk_color (hsv, &col2), col2);
-       prolooks_hsv_set_saturation (hsv, 0.66);
-       prolooks_hsv_set_value (hsv, 0.67);
-       dark = (prolooks_hsv_to_gdk_color (hsv, &col3), col3);
-
-       cairo_surface_t *surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, size * 64, size);
-       cairo_t* cr = cairo_create (surface);
-
-       for (int i = 0; i < 64; ++i) {
-               cairo_save (cr);
-               core_draw (cr, i, size, 20, size*i, 0, &bright, &dark);
-               cairo_restore (cr);
-       }
-
-       if (cairo_surface_write_to_png (surface, path) != CAIRO_STATUS_SUCCESS) {
-               error << string_compose (_("motionfeedback: could not save image set to %1"), path) << endmsg;
-               return pixbuf;
-       }
-
-       cairo_destroy (cr);
-       cairo_surface_destroy (surface);
-
-       try {
-               pixbuf = Gdk::Pixbuf::create_from_file (path);
-       } catch (const Gdk::PixbufError &e) {
-               error << string_compose (_("motionfeedback: caught PixbufError: %1"), e.what()) << endmsg;
-       } catch (...) {
-               error << _("motionfeedback: unknown exception") << endmsg;
-       }
-
-       g_unlink (path);
-       g_free (path);
-
-       return pixbuf;
-}
-
-void
-MotionFeedback::core_draw (cairo_t* cr, int phase, double size, double progress_width, double xorigin, double yorigin,
-                           const GdkColor* bright, const GdkColor* dark)
-{
-       double xc;
-       double yc;
-       double start_angle;
-       double end_angle;
-       double value_angle;
-       double value;
-       double value_x;
-       double value_y;
-       double start_angle_x;
-       double start_angle_y;
-       double end_angle_x;
-       double end_angle_y;
-       double progress_radius;
-       double progress_radius_inner;
-       double progress_radius_outer;
-
-       g_return_if_fail (cr != NULL);
-
-       progress_radius = 40.0;
-       progress_radius_inner = progress_radius - (progress_width / 2.0);
-       progress_radius_outer = progress_radius + (progress_width / 2.0);
-
-       const double pad = 2.0; /* line width for boundary of progress ring */
-       const double actual_width = ((2.0 * pad) + (2.0 * progress_radius_outer));
-       const double scale_factor = size / actual_width;
-
-       /* knob center is at middle of the area bounded by (xorigin,yorigin) and (xorigin+size, yorigin+size)
-          but the coordinates will be scaled by the scale factor when cairo uses them so first
-          adjust them by the reciprocal of the scale factor.
-       */
-
-       xc = (xorigin + (size / 2.0)) * (1.0/scale_factor);
-       yc = (yorigin + (size / 2.0)) * (1.0/scale_factor);
-
-       value = (phase * 1.0) / (65 - 1);
-
-       start_angle = ((180 - 65) * G_PI) / 180;
-       end_angle = ((360 + 65) * G_PI) / 180;
-
-       value_angle = start_angle + (value * (end_angle - start_angle));
-       value_x = cos (value_angle);
-       value_y = sin (value_angle);
-       start_angle_x = cos (start_angle);
-       start_angle_y = sin (start_angle);
-       end_angle_x = cos (end_angle);
-       end_angle_y = sin (end_angle);
-
-       cairo_scale (cr, scale_factor, scale_factor);
-
-       //dark arc background
-       cairo_set_source_rgb (cr, 0.3, 0.3, 0.3 );
-       cairo_set_line_width (cr, progress_width);
-       cairo_arc (cr, xc, yc, progress_radius, start_angle, end_angle);
-       cairo_stroke (cr);
-
-
-       float r = (value) * (((float)bright->red)/G_MAXUINT16) + (1.0-value)*(((float)dark->red)/G_MAXUINT16);
-       float g = (value) * (((float)bright->green)/G_MAXUINT16) + (1.0-value)*(((float)dark->green)/G_MAXUINT16);
-       float b = (value) * (((float)bright->blue)/G_MAXUINT16) + (1.0-value)*(((float)dark->blue)/G_MAXUINT16);
-
-       //colored arc
-       cairo_set_source_rgb (cr, r,g,b);
-       cairo_set_line_width (cr, progress_width);
-       cairo_arc (cr, xc, yc, progress_radius, start_angle, value_angle);
-       cairo_stroke (cr);
-
-       //overall shade
-       cairo_pattern_t* shade_pattern = cairo_pattern_create_linear (0.0, 0.0, 0.0, progress_radius_outer);
-       cairo_pattern_add_color_stop_rgba (shade_pattern, 0, 1,1,1, 0.3);
-       cairo_pattern_add_color_stop_rgba (shade_pattern, 1, 1,1,1, 0.0);
-       cairo_set_source (cr, shade_pattern);
-       cairo_arc (cr, xc, yc, progress_radius_outer-1, 0, 2.0*G_PI);
-       cairo_fill (cr);
-       cairo_pattern_destroy (shade_pattern);
-
-       //black border
-       cairo_set_source_rgb (cr, 0, 0, 0 );
-       cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
-       cairo_set_line_width (cr, 1.0/scale_factor);
-       cairo_move_to (cr, xc + (progress_radius_outer * start_angle_x), yc + (progress_radius_outer * start_angle_y));
-       cairo_line_to (cr, xc + (progress_radius_inner * start_angle_x), yc + (progress_radius_inner * start_angle_y));
-       cairo_stroke (cr);
-       cairo_move_to (cr, xc + (progress_radius_outer * end_angle_x), yc + (progress_radius_outer * end_angle_y));
-       cairo_line_to (cr, xc + (progress_radius_inner * end_angle_x), yc + (progress_radius_inner * end_angle_y));
-       cairo_stroke (cr);
-       cairo_arc (cr, xc, yc, progress_radius_outer, start_angle, end_angle);
-       cairo_stroke (cr);
-       cairo_arc (cr, xc, yc, progress_radius_inner, start_angle, end_angle);
-       cairo_stroke (cr);
-
-       //knob shadow
-       cairo_save(cr);
-       cairo_translate(cr, 6, 6 );
-       cairo_set_source_rgba (cr, 0,0,0,0.1 );
-       cairo_arc (cr, xc, yc, progress_radius_inner-1, 0, 2.0*G_PI);
-       cairo_fill (cr);
-       cairo_restore(cr);
-
-       //inner circle
-       cairo_set_source_rgba (cr, 0.3, 0.3, 0.3, 1 );
-       cairo_arc (cr, xc, yc, progress_radius_inner-1, 0, 2.0*G_PI);
-       cairo_fill (cr);
-
-       //knob shade
-       shade_pattern = cairo_pattern_create_linear (0.0, 0.0, 0.0, progress_radius_outer);
-       cairo_pattern_add_color_stop_rgba (shade_pattern, 0, 1,1,1, 0.5);
-       cairo_pattern_add_color_stop_rgba (shade_pattern, 1, 0,0,0, 0.3);
-       cairo_set_source (cr, shade_pattern);
-       cairo_arc (cr, xc, yc, progress_radius_inner-1, 0, 2.0*G_PI);
-       cairo_fill (cr);
-       cairo_pattern_destroy (shade_pattern);
-
-       //inner circle
-       cairo_set_source_rgba (cr, 0.3, 0.3, 0.3, 0.5 );
-       cairo_arc (cr, xc, yc, progress_radius_inner-5, 0, 2.0*G_PI);
-       cairo_fill (cr);
-
-       //line
-       cairo_save(cr);
-       cairo_translate(cr, 2, 2 );
-       cairo_set_source_rgba (cr, 0,0,0,0.5 );
-       cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
-       cairo_set_line_width (cr, 4);
-       cairo_move_to (cr, xc + (progress_radius_inner * value_x), yc + (progress_radius_inner * value_y));
-       cairo_line_to (cr, xc + ((progress_radius_inner*0.4) * value_x), yc + ((progress_radius_inner*0.4) * value_y));
-       cairo_stroke (cr);
-       cairo_restore(cr);
-       cairo_set_source_rgba (cr, 1,1,1,0.7 );
-       cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
-       cairo_set_line_width (cr, 4.0);
-       cairo_move_to (cr, xc + (progress_radius_inner * value_x), yc + (progress_radius_inner * value_y));
-       cairo_line_to (cr, xc + ((progress_radius_inner*0.4) * value_x), yc + ((progress_radius_inner*0.4) * value_y));
-       cairo_stroke (cr);
-
-
-       //highlight if focused  (damn, this is a cached image which doesn't (yet) have a "focused" state
-//     if (pixwin.has_focus()) {
-//             cairo_set_source_rgba (cr, 1,1,1, 0.5 );
-//             cairo_arc (cr, xc, yc, progress_radius_inner-1, 0, 2.0*G_PI);
-//             cairo_fill (cr);
-//     }
-}
-
-void
-MotionFeedback::set_lamp_color (const std::string& str)
-{
-       if (base_color) {
-               *base_color = Gdk::Color (str);
-       } else {
-               base_color = new Gdk::Color (str);
-       }
-}
diff --git a/libs/gtkmm2ext/prolooks_helpers.c b/libs/gtkmm2ext/prolooks_helpers.c
deleted file mode 100644 (file)
index ac596d0..0000000
+++ /dev/null
@@ -1,1383 +0,0 @@
-/* Helpers.c generated by valac, the Vala compiler
- * generated from Helpers.vala, do not modify */
-
-/*
-    Copyright 2009 by Hans Baier
-    License: LGPLv2+
-*/
-
-#ifdef COMPILER_MSVC
-#include <algorithm>
-using std::min; using std::max;
-#endif
-
-#include "gtkmm2ext/prolooks-helpers.h"
-
-static gpointer cairo_color_parent_class = NULL;
-static gpointer prolooks_hsl_parent_class = NULL;
-static gpointer prolooks_hsv_parent_class = NULL;
-
-CairoColor* cairo_color_construct (GType object_type, double red, double green, double blue, double alpha) {
-       CairoColor* self;
-       self = (CairoColor*) g_type_create_instance (object_type);
-       cairo_color_set_red (self, red);
-       cairo_color_set_green (self, green);
-       cairo_color_set_blue (self, blue);
-       cairo_color_set_alpha (self, alpha);
-       return self;
-}
-
-
-CairoColor* cairo_color_new (double red, double green, double blue, double alpha) {
-       return cairo_color_construct (CAIRO_TYPE_COLOR, red, green, blue, alpha);
-}
-
-
-CairoColor* cairo_color_copy (CairoColor* self) {
-       CairoColor* result = NULL;
-       g_return_val_if_fail (self != NULL, NULL);
-       result = cairo_color_new (self->priv->_red, self->priv->_green, self->priv->_blue, self->priv->_alpha);
-       return result;
-}
-
-
-CairoColor* cairo_color_construct_from_string (GType object_type, const char* webcolor) {
-       CairoColor* self;
-       g_return_val_if_fail (webcolor != NULL, NULL);
-       self = (CairoColor*) g_type_create_instance (object_type);
-       cairo_color_set_from_string (self, webcolor);
-       return self;
-}
-
-
-CairoColor* cairo_color_new_from_string (const char* webcolor) {
-       return cairo_color_construct_from_string (CAIRO_TYPE_COLOR, webcolor);
-}
-
-
-CairoColor* cairo_color_shade (CairoColor* self, double shade_factor) {
-       CairoColor* result = NULL;
-       ProlooksHSL* hsl;
-       g_return_val_if_fail (self != NULL, NULL);
-       hsl = prolooks_hsl_new ();
-       prolooks_hsl_from_cairo_color (hsl, self);
-       prolooks_hsl_set_lightness (hsl, fmin (prolooks_hsl_get_lightness (hsl) * shade_factor, 1.0));
-       prolooks_hsl_set_lightness (hsl, fmax (prolooks_hsl_get_lightness (hsl), 0.0));
-       prolooks_hsl_set_saturation (hsl, fmin (prolooks_hsl_get_saturation (hsl) * shade_factor, 1.0));
-       prolooks_hsl_set_saturation (hsl, fmax (prolooks_hsl_get_saturation (hsl), 0.0));
-       result = prolooks_hsl_to_cairo_color (hsl);
-       _prolooks_hsl_unref0 (hsl);
-       return result;
-}
-
-
-void cairo_color_set_to (CairoColor* self, CairoColor* a_color) {
-       g_return_if_fail (self != NULL);
-       g_return_if_fail (a_color != NULL);
-       cairo_color_set_red (self, a_color->priv->_red);
-       cairo_color_set_green (self, a_color->priv->_green);
-       cairo_color_set_blue (self, a_color->priv->_blue);
-       cairo_color_set_alpha (self, a_color->priv->_alpha);
-}
-
-
-void cairo_color_set_as_source_in (CairoColor* self, cairo_t* cr) {
-       g_return_if_fail (self != NULL);
-       g_return_if_fail (cr != NULL);
-       cairo_set_source_rgba (cr, self->priv->_red, self->priv->_green, self->priv->_blue, self->priv->_alpha);
-}
-
-
-void cairo_color_add_color_stop_to (CairoColor* self, cairo_pattern_t* p, double offset) {
-       g_return_if_fail (self != NULL);
-       g_return_if_fail (p != NULL);
-       cairo_pattern_add_color_stop_rgba (p, offset, self->priv->_red, self->priv->_green, self->priv->_blue, self->priv->_alpha);
-}
-
-
-void cairo_color_set_from_string (CairoColor* self, const char* webcolor) {
-       CairoColor* _tmp2_;
-       GdkColor _tmp1_;
-       GdkColor _tmp0_ = {0,0,0,0};
-       g_return_if_fail (self != NULL);
-       g_return_if_fail (webcolor != NULL);
-       cairo_color_set_to (self, _tmp2_ = prolooks_gdk_color_to_cairo ((_tmp1_ = (prolooks_color_from_string (webcolor, &_tmp0_), _tmp0_), &_tmp1_)));
-       _cairo_color_unref0 (_tmp2_);
-}
-
-
-double cairo_color_get_red (CairoColor* self) {
-       double result;
-       g_return_val_if_fail (self != NULL, 0.0);
-       result = self->priv->_red;
-       return result;
-}
-
-
-void cairo_color_set_red (CairoColor* self, double value) {
-       g_return_if_fail (self != NULL);
-       self->priv->_red = value;
-}
-
-
-double cairo_color_get_green (CairoColor* self) {
-       double result;
-       g_return_val_if_fail (self != NULL, 0.0);
-       result = self->priv->_green;
-       return result;
-}
-
-
-void cairo_color_set_green (CairoColor* self, double value) {
-       g_return_if_fail (self != NULL);
-       self->priv->_green = value;
-}
-
-
-double cairo_color_get_blue (CairoColor* self) {
-       double result;
-       g_return_val_if_fail (self != NULL, 0.0);
-       result = self->priv->_blue;
-       return result;
-}
-
-
-void cairo_color_set_blue (CairoColor* self, double value) {
-       g_return_if_fail (self != NULL);
-       self->priv->_blue = value;
-}
-
-
-double cairo_color_get_alpha (CairoColor* self) {
-       double result;
-       g_return_val_if_fail (self != NULL, 0.0);
-       result = self->priv->_alpha;
-       return result;
-}
-
-
-void cairo_color_set_alpha (CairoColor* self, double value) {
-       g_return_if_fail (self != NULL);
-       self->priv->_alpha = value;
-}
-
-
-static void cairo_value_color_init (GValue* value) {
-       value->data[0].v_pointer = NULL;
-}
-
-
-static void cairo_value_color_free_value (GValue* value) {
-       if (value->data[0].v_pointer) {
-               cairo_color_unref (value->data[0].v_pointer);
-       }
-}
-
-
-static void cairo_value_color_copy_value (const GValue* src_value, GValue* dest_value) {
-       if (src_value->data[0].v_pointer) {
-               dest_value->data[0].v_pointer = cairo_color_ref (src_value->data[0].v_pointer);
-       } else {
-               dest_value->data[0].v_pointer = NULL;
-       }
-}
-
-
-static gpointer cairo_value_color_peek_pointer (const GValue* value) {
-       return value->data[0].v_pointer;
-}
-
-
-static gchar* cairo_value_color_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
-       (void) n_collect_values;
-       (void) collect_flags;
-       if (collect_values[0].v_pointer) {
-               CairoColor* object;
-               object = (CairoColor*)collect_values[0].v_pointer;
-               if (object->parent_instance.g_class == NULL) {
-                       return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
-               } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
-                       return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
-               }
-               value->data[0].v_pointer = cairo_color_ref (object);
-       } else {
-               value->data[0].v_pointer = NULL;
-       }
-       return NULL;
-}
-
-
-static gchar* cairo_value_color_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
-       CairoColor** object_p;
-       (void) n_collect_values;
-       object_p = (CairoColor**)collect_values[0].v_pointer;
-       if (!object_p) {
-               return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME ((GValue*)value));
-       }
-       if (!value->data[0].v_pointer) {
-               *object_p = NULL;
-       } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
-               *object_p = (CairoColor*)value->data[0].v_pointer;
-       } else {
-               *object_p = (CairoColor*)cairo_color_ref (value->data[0].v_pointer);
-       }
-       return NULL;
-}
-
-
-GParamSpec* cairo_param_spec_color (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
-       CairoParamSpecColor* spec;
-       g_return_val_if_fail (g_type_is_a (object_type, CAIRO_TYPE_COLOR), NULL);
-       spec = (CairoParamSpecColor*)g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
-       G_PARAM_SPEC (spec)->value_type = object_type;
-       return G_PARAM_SPEC (spec);
-}
-
-
-gpointer cairo_value_get_color (const GValue* value) {
-       g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE ((GValue*)value, CAIRO_TYPE_COLOR), NULL);
-       return value->data[0].v_pointer;
-}
-
-
-void cairo_value_set_color (GValue* value, gpointer v_object) {
-       CairoColor* old;
-       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, CAIRO_TYPE_COLOR));
-       old = (CairoColor*)value->data[0].v_pointer;
-       if (v_object) {
-               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, CAIRO_TYPE_COLOR));
-               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
-               value->data[0].v_pointer = v_object;
-               cairo_color_ref (value->data[0].v_pointer);
-       } else {
-               value->data[0].v_pointer = NULL;
-       }
-       if (old) {
-               cairo_color_unref (old);
-       }
-}
-
-
-void cairo_value_take_color (GValue* value, gpointer v_object) {
-       CairoColor* old;
-       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, CAIRO_TYPE_COLOR));
-       old = (CairoColor*)value->data[0].v_pointer;
-       if (v_object) {
-               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, CAIRO_TYPE_COLOR));
-               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
-               value->data[0].v_pointer = v_object;
-       } else {
-               value->data[0].v_pointer = NULL;
-       }
-       if (old) {
-               cairo_color_unref (old);
-       }
-}
-
-static void cairo_color_finalize (CairoColor* obj) {
-       CairoColor * self;
-       self = CAIRO_COLOR (obj);
-}
-
-static void cairo_color_class_init (CairoColorClass * klass) {
-       cairo_color_parent_class = g_type_class_peek_parent (klass);
-       CAIRO_COLOR_CLASS (klass)->finalize = cairo_color_finalize;
-       g_type_class_add_private (klass, sizeof (CairoColorPrivate));
-}
-
-
-static void cairo_color_instance_init (CairoColor * self) {
-       self->priv = CAIRO_COLOR_GET_PRIVATE (self);
-       self->ref_count = 1;
-}
-
-
-
-GType cairo_color_get_type (void) {
-       static volatile gsize cairo_color_type_id__volatile = 0;
-       if (g_once_init_enter (&cairo_color_type_id__volatile)) {
-               static const GTypeValueTable g_define_type_value_table = { cairo_value_color_init, cairo_value_color_free_value, cairo_value_color_copy_value, cairo_value_color_peek_pointer, "p", cairo_value_color_collect_value, "p", cairo_value_color_lcopy_value };
-               static const GTypeInfo g_define_type_info = { sizeof (CairoColorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) cairo_color_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CairoColor), 0, (GInstanceInitFunc) cairo_color_instance_init, &g_define_type_value_table };
-               static const GTypeFundamentalInfo g_define_type_fundamental_info = { (GTypeFundamentalFlags)(G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
-               GType cairo_color_type_id;
-               cairo_color_type_id = g_type_register_fundamental (g_type_fundamental_next (), "CairoColor", &g_define_type_info, &g_define_type_fundamental_info, (GTypeFlags)0);
-               g_once_init_leave (&cairo_color_type_id__volatile, cairo_color_type_id);
-       }
-       return cairo_color_type_id__volatile;
-}
-
-
-gpointer cairo_color_ref (gpointer instance) {
-       CairoColor* self;
-       self = (CairoColor*)instance;
-       g_atomic_int_inc (&self->ref_count);
-       return instance;
-}
-
-
-void cairo_color_unref (gpointer instance) {
-       CairoColor* self;
-       self = (CairoColor*)instance;
-       if (g_atomic_int_dec_and_test (&self->ref_count)) {
-               CAIRO_COLOR_GET_CLASS (self)->finalize (self);
-               g_type_free_instance ((GTypeInstance *) self);
-       }
-}
-
-
-GType prolooks_button_state_get_type (void) {
-       static volatile gsize prolooks_button_state_type_id__volatile = 0;
-       if (g_once_init_enter (&prolooks_button_state_type_id__volatile)) {
-               static const GEnumValue values[] = {{PROLOOKS_BUTTON_STATE_NORMAL, "PROLOOKS_BUTTON_STATE_NORMAL", "normal"}, {PROLOOKS_BUTTON_STATE_PRESSED, "PROLOOKS_BUTTON_STATE_PRESSED", "pressed"}, {0, NULL, NULL}};
-               GType prolooks_button_state_type_id;
-               prolooks_button_state_type_id = g_enum_register_static ("ProlooksButtonState", values);
-               g_once_init_leave (&prolooks_button_state_type_id__volatile, prolooks_button_state_type_id);
-       }
-       return prolooks_button_state_type_id__volatile;
-}
-
-
-GType prolooks_button_type_get_type (void) {
-       static volatile gsize prolooks_button_type_type_id__volatile = 0;
-       if (g_once_init_enter (&prolooks_button_type_type_id__volatile)) {
-               static const GEnumValue values[] = {{PROLOOKS_BUTTON_TYPE_PRESS_BUTTON, "PROLOOKS_BUTTON_TYPE_PRESS_BUTTON", "press-button"}, {PROLOOKS_BUTTON_TYPE_TOGGLE_BUTTON, "PROLOOKS_BUTTON_TYPE_TOGGLE_BUTTON", "toggle-button"}, {0, NULL, NULL}};
-               GType prolooks_button_type_type_id;
-               prolooks_button_type_type_id = g_enum_register_static ("ProlooksButtonType", values);
-               g_once_init_leave (&prolooks_button_type_type_id__volatile, prolooks_button_type_type_id);
-       }
-       return prolooks_button_type_type_id__volatile;
-}
-
-
-void prolooks_set_line_width_from_device (cairo_t* cr) {
-       double ux;
-       double uy;
-       g_return_if_fail (cr != NULL);
-       ux = (double) 1;
-       uy = (double) 1;
-       cairo_device_to_user (cr, &ux, &uy);
-       if (ux < uy) {
-               ux = uy;
-       }
-       cairo_set_line_width (cr, ux);
-}
-
-
-void prolooks_color_from_string (const char* webcolor, GdkColor* result) {
-       GdkColor color = {0,0,0,0};
-       g_return_if_fail (webcolor != NULL);
-       gdk_color_parse (webcolor, &color);
-       *result = color;
-       return;
-}
-
-
-char* prolooks_color_to_string (const GdkColor* color) {
-       char* result = NULL;
-       guint16 scale;
-       scale = G_MAXUINT16 / G_MAXUINT8;
-       result = g_strdup_printf ("#%02x%02x%02x", (guint) ((*color).red / scale), (guint) ((*color).green / scale), (guint) ((*color).blue / scale));
-       return result;
-}
-
-
-CairoColor* prolooks_cairo_color_from_string (const char* webcolor) {
-       CairoColor* result = NULL;
-       GdkColor _tmp1_;
-       GdkColor _tmp0_ = {0,0,0,0};
-       g_return_val_if_fail (webcolor != NULL, NULL);
-       result = prolooks_gdk_color_to_cairo ((_tmp1_ = (prolooks_color_from_string (webcolor, &_tmp0_), _tmp0_), &_tmp1_));
-       return result;
-}
-
-
-void prolooks_set_source_color (cairo_t* cr, const GdkColor* color, double alpha) {
-       g_return_if_fail (cr != NULL);
-       cairo_set_source_rgba (cr, ((double) (*color).red) / ((double) G_MAXUINT16), ((double) (*color).green) / ((double) G_MAXUINT16), ((double) (*color).blue) / ((double) G_MAXUINT16), alpha);
-}
-
-
-void prolooks_gdk_color_to_cairo_color (const GdkColor* color, double* red, double* green, double* blue) {
-       *red = ((double) (*color).red) / ((double) G_MAXUINT16);
-       *green = ((double) (*color).green) / ((double) G_MAXUINT16);
-       *blue = ((double) (*color).blue) / ((double) G_MAXUINT16);
-}
-
-
-CairoColor* prolooks_gdk_color_to_cairo (const GdkColor* color) {
-       CairoColor* result = NULL;
-       double r;
-       double g;
-       double b;
-       r = (double) 0;
-       g = (double) 0;
-       b = (double) 0;
-       prolooks_gdk_color_to_cairo_color (color, &r, &g, &b);
-       result = cairo_color_new (r, g, b, 1.0);
-       return result;
-}
-
-
-void prolooks_cairo_color_to_gdk (CairoColor* cairo_color, GdkColor* result) {
-       GdkColor color = {0,0,0,0};
-       g_return_if_fail (cairo_color != NULL);
-       memset (&color, 0, sizeof (GdkColor));
-       color.red = (guint16) (cairo_color_get_red (cairo_color) * ((double) G_MAXUINT16));
-       color.green = (guint16) (cairo_color_get_green (cairo_color) * ((double) G_MAXUINT16));
-       color.blue = (guint16) (cairo_color_get_blue (cairo_color) * ((double) G_MAXUINT16));
-       *result = color;
-       return;
-}
-
-
-void prolooks_set_source_color_string (cairo_t* cr, const char* color, double alpha) {
-       GdkColor _tmp1_;
-       GdkColor _tmp0_ = {0,0,0,0};
-       g_return_if_fail (cr != NULL);
-       g_return_if_fail (color != NULL);
-       prolooks_set_source_color (cr, (_tmp1_ = (prolooks_color_from_string (color, &_tmp0_), _tmp0_), &_tmp1_), alpha);
-}
-
-
-void prolooks_add_color_stop (cairo_pattern_t* p, double offset, const GdkColor* color, double alpha) {
-       g_return_if_fail (p != NULL);
-       cairo_pattern_add_color_stop_rgba (p, offset, ((double) (*color).red) / ((double) G_MAXUINT16), ((double) (*color).green) / ((double) G_MAXUINT16), ((double) (*color).blue) / ((double) G_MAXUINT16), alpha);
-}
-
-
-void prolooks_add_color_stop_str (cairo_pattern_t* p, double offset, const char* color, double alpha) {
-       GdkColor _tmp1_;
-       GdkColor _tmp0_ = {0,0,0,0};
-       g_return_if_fail (p != NULL);
-       g_return_if_fail (color != NULL);
-       prolooks_add_color_stop (p, offset, (_tmp1_ = (prolooks_color_from_string (color, &_tmp0_), _tmp0_), &_tmp1_), alpha);
-}
-
-
-cairo_pattern_t* prolooks_create_gradient (double x1, double y1, double x2, double y2, const GdkColor* start, const GdkColor* stop, double alpha_start, double alpha_stop) {
-       cairo_pattern_t* result = NULL;
-       cairo_pattern_t* gradient;
-       gradient = cairo_pattern_create_linear (x1, y1, x2, y2);
-       prolooks_add_color_stop (gradient, (double) 0, start, alpha_start);
-       prolooks_add_color_stop (gradient, (double) 1, stop, alpha_stop);
-       result = gradient;
-       return result;
-}
-
-
-cairo_pattern_t* prolooks_create_gradient_str (double x1, double y1, double x2, double y2, const char* start, const char* stop, double alpha_start, double alpha_stop) {
-       cairo_pattern_t* result = NULL;
-       GdkColor _tmp3_;
-       GdkColor _tmp2_;
-       GdkColor _tmp1_ = {0,0,0,0};
-       GdkColor _tmp0_ = {0,0,0,0};
-       g_return_val_if_fail (start != NULL, NULL);
-       g_return_val_if_fail (stop != NULL, NULL);
-       result = prolooks_create_gradient (x1, y1, x2, y2, (_tmp2_ = (prolooks_color_from_string (start, &_tmp0_), _tmp0_), &_tmp2_), (_tmp3_ = (prolooks_color_from_string (stop, &_tmp1_), _tmp1_), &_tmp3_), alpha_start, alpha_stop);
-       return result;
-}
-
-
-void prolooks_rounded_rect (cairo_t* cr, double x, double y, double w, double h, double radius_x, double radius_y) {
-       double ARC_TO_BEZIER;
-       double c1;
-       double c2;
-       g_return_if_fail (cr != NULL);
-       ARC_TO_BEZIER = 0.55228475;
-       if (radius_x > (w - radius_x)) {
-               radius_x = w / 2;
-       }
-       if (radius_y > (h - radius_y)) {
-               radius_y = h / 2;
-       }
-       c1 = ARC_TO_BEZIER * radius_x;
-       c2 = ARC_TO_BEZIER * radius_y;
-       cairo_new_path (cr);
-       cairo_move_to (cr, x + radius_x, y);
-       cairo_rel_line_to (cr, w - (2 * radius_x), 0.0);
-       cairo_rel_curve_to (cr, c1, 0.0, radius_x, c2, radius_x, radius_y);
-       cairo_rel_line_to (cr, (double) 0, h - (2 * radius_y));
-       cairo_rel_curve_to (cr, 0.0, c2, c1 - radius_x, radius_y, -radius_x, radius_y);
-       cairo_rel_line_to (cr, (-w) + (2 * radius_x), (double) 0);
-       cairo_rel_curve_to (cr, -c1, (double) 0, -radius_x, -c2, -radius_x, -radius_y);
-       cairo_rel_line_to (cr, (double) 0, (-h) + (2 * radius_y));
-       cairo_rel_curve_to (cr, 0.0, -c2, radius_x - c1, -radius_y, radius_x, -radius_y);
-       cairo_close_path (cr);
-}
-
-
-void prolooks_background_gradient (cairo_t* cr, double w, double h) {
-       GdkColor background_gradient_start = {0,0,0,0};
-       GdkColor background_gradient_stop = {0,0,0,0};
-       cairo_pattern_t* background_gradient;
-       g_return_if_fail (cr != NULL);
-       gdk_color_parse ("#bebdc2", &background_gradient_start);
-       gdk_color_parse ("#b1b4b9", &background_gradient_stop);
-       cairo_rectangle (cr, (double) 0, (double) 0, w, h);
-       background_gradient = cairo_pattern_create_linear ((double) 0, (double) 0, (double) 0, h);
-       prolooks_add_color_stop (background_gradient, (double) 0, &background_gradient_start, 1.0);
-       prolooks_add_color_stop (background_gradient, (double) 1, &background_gradient_stop, 1.0);
-       cairo_set_source (cr, background_gradient);
-       cairo_fill (cr);
-       _cairo_pattern_destroy0 (background_gradient);
-}
-
-
-double prolooks_modula (double number, double divisor) {
-       double result = 0.0;
-       result = (((gint) number) % ((gint) divisor)) + (number - ((gint) number));
-       return result;
-}
-
-
-char* prolooks_hsl_to_string (ProlooksHSL* self) {
-       char* result = NULL;
-       g_return_val_if_fail (self != NULL, NULL);
-       result = g_strdup_printf ("HSL (%f, %f, %f)", self->priv->_hue, self->priv->_saturation, self->priv->_lightness);
-       return result;
-}
-
-
-CairoColor* prolooks_hsl_to_cairo_color (ProlooksHSL* self) {
-       CairoColor* result = NULL;
-       gint i = 0;
-       double* _tmp0_;
-       double* hue_shift;
-       double* _tmp1_;
-       double* color_shift;
-       double m1 = 0.0;
-       double m2 = 0.0;
-       double m3 = 0.0;
-       gint _tmp2_ = 0;
-       CairoColor* color;
-       g_return_val_if_fail (self != NULL, NULL);
-       hue_shift = (_tmp0_ = g_new0 (double, 3), _tmp0_);
-       color_shift = (_tmp1_ = g_new0 (double, 3), _tmp1_);
-       if (self->priv->_lightness <= 0.5) {
-               m2 = self->priv->_lightness * (1 + self->priv->_saturation);
-       } else {
-               m2 = (self->priv->_lightness + self->priv->_saturation) - (self->priv->_lightness * self->priv->_saturation);
-       }
-       m1 = (2 * self->priv->_lightness) - m2;
-       hue_shift[0] = self->priv->_hue + 120;
-       hue_shift[1] = self->priv->_hue;
-       hue_shift[2] = self->priv->_hue - 120;
-       color_shift[0] = color_shift[1] = color_shift[2] = self->priv->_lightness;
-       if (self->priv->_saturation == 0) {
-               _tmp2_ = 3;
-       } else {
-               _tmp2_ = 0;
-       }
-       i = _tmp2_;
-       {
-               gboolean _tmp3_;
-               _tmp3_ = TRUE;
-               while (TRUE) {
-                       if (!_tmp3_) {
-                               i++;
-                       }
-                       _tmp3_ = FALSE;
-                       if (!(i < 3)) {
-                               break;
-                       }
-                       m3 = hue_shift[i];
-                       if (m3 > 360) {
-                               m3 = prolooks_modula (m3, (double) 360);
-                       } else {
-                               if (m3 < 0) {
-                                       m3 = 360 - prolooks_modula (fabs (m3), (double) 360);
-                               }
-                       }
-                       if (m3 < 60) {
-                               color_shift[i] = m1 + (((m2 - m1) * m3) / 60.0);
-                       } else {
-                               if (m3 < 180) {
-                                       color_shift[i] = m2;
-                               } else {
-                                       if (m3 < 240) {
-                                               color_shift[i] = m1 + (((m2 - m1) * (240 - m3)) / 60.0);
-                                       } else {
-                                               color_shift[i] = m1;
-                                       }
-                               }
-                       }
-               }
-       }
-       color = cairo_color_new (color_shift[0], color_shift[1], color_shift[2], 1.0);
-       result = color;
-       hue_shift = (g_free (hue_shift), NULL);
-       color_shift = (g_free (color_shift), NULL);
-       return result;
-}
-
-
-void prolooks_hsl_to_gdk_color (ProlooksHSL* self, GdkColor* result) {
-       GdkColor _tmp1_ = {0,0,0,0};
-       CairoColor* _tmp0_;
-       GdkColor _tmp2_;
-       g_return_if_fail (self != NULL);
-       *result = (_tmp2_ = (prolooks_cairo_color_to_gdk (_tmp0_ = prolooks_hsl_to_cairo_color (self), &_tmp1_), _tmp1_), _cairo_color_unref0 (_tmp0_), _tmp2_);
-       return;
-}
-
-
-void prolooks_hsl_from_gdk_color (ProlooksHSL* self, const GdkColor* color) {
-       CairoColor* _tmp0_;
-       g_return_if_fail (self != NULL);
-       prolooks_hsl_from_cairo_color (self, _tmp0_ = prolooks_gdk_color_to_cairo (color));
-       _cairo_color_unref0 (_tmp0_);
-}
-
-
-void prolooks_hsl_from_cairo_color (ProlooksHSL* self, CairoColor* color) {
-       double min = 0.0;
-       double max = 0.0;
-       double delta = 0.0;
-       double red;
-       double green;
-       double blue;
-       g_return_if_fail (self != NULL);
-       g_return_if_fail (color != NULL);
-       red = cairo_color_get_red (color);
-       green = cairo_color_get_green (color);
-       blue = cairo_color_get_blue (color);
-       if (red > green) {
-               if (red > blue) {
-                       max = red;
-               } else {
-                       max = blue;
-               }
-               if (green < blue) {
-                       min = green;
-               } else {
-                       min = blue;
-               }
-       } else {
-               if (green > blue) {
-                       max = green;
-               } else {
-                       max = blue;
-               }
-               if (red < blue) {
-                       min = red;
-               } else {
-                       min = blue;
-               }
-       }
-       prolooks_hsl_set_lightness (self, (max + min) / 2.0);
-       if (fabs (max - min) < 0.0001) {
-               prolooks_hsl_set_hue (self, 0.0);
-               prolooks_hsl_set_saturation (self, 0.0);
-       } else {
-               if (self->priv->_lightness <= 0.5) {
-                       prolooks_hsl_set_saturation (self, (max - min) / (max + min));
-               } else {
-                       prolooks_hsl_set_saturation (self, (max - min) / ((2.0 - max) - min));
-               }
-               delta = max - min;
-               if (red == max) {
-                       prolooks_hsl_set_hue (self, (green - blue) / delta);
-               } else {
-                       if (green == max) {
-                               prolooks_hsl_set_hue (self, 2.0 + ((blue - red) / delta));
-                       } else {
-                               if (blue == max) {
-                                       prolooks_hsl_set_hue (self, 4.0 + ((red - green) / delta));
-                               }
-                       }
-               }
-               prolooks_hsl_set_hue (self, self->priv->_hue * 60.0);
-               if (self->priv->_hue < 0.0) {
-                       prolooks_hsl_set_hue (self, self->priv->_hue + 360.0);
-               }
-       }
-}
-
-
-ProlooksHSL* prolooks_hsl_construct (GType object_type) {
-       ProlooksHSL* self;
-       self = (ProlooksHSL*) g_type_create_instance (object_type);
-       return self;
-}
-
-
-ProlooksHSL* prolooks_hsl_new (void) {
-       return prolooks_hsl_construct (PROLOOKS_TYPE_HSL);
-}
-
-
-double prolooks_hsl_get_hue (ProlooksHSL* self) {
-       double result;
-       g_return_val_if_fail (self != NULL, 0.0);
-       result = self->priv->_hue;
-       return result;
-}
-
-
-void prolooks_hsl_set_hue (ProlooksHSL* self, double value) {
-       g_return_if_fail (self != NULL);
-       self->priv->_hue = value;
-}
-
-
-double prolooks_hsl_get_saturation (ProlooksHSL* self) {
-       double result;
-       g_return_val_if_fail (self != NULL, 0.0);
-       result = self->priv->_saturation;
-       return result;
-}
-
-
-void prolooks_hsl_set_saturation (ProlooksHSL* self, double value) {
-       g_return_if_fail (self != NULL);
-       self->priv->_saturation = value;
-}
-
-
-double prolooks_hsl_get_lightness (ProlooksHSL* self) {
-       double result;
-       g_return_val_if_fail (self != NULL, 0.0);
-       result = self->priv->_lightness;
-       return result;
-}
-
-
-void prolooks_hsl_set_lightness (ProlooksHSL* self, double value) {
-       g_return_if_fail (self != NULL);
-       self->priv->_lightness = value;
-}
-
-
-static void prolooks_value_hsl_init (GValue* value) {
-       value->data[0].v_pointer = NULL;
-}
-
-
-static void prolooks_value_hsl_free_value (GValue* value) {
-       if (value->data[0].v_pointer) {
-               prolooks_hsl_unref (value->data[0].v_pointer);
-       }
-}
-
-
-static void prolooks_value_hsl_copy_value (const GValue* src_value, GValue* dest_value) {
-       if (src_value->data[0].v_pointer) {
-               dest_value->data[0].v_pointer = prolooks_hsl_ref (src_value->data[0].v_pointer);
-       } else {
-               dest_value->data[0].v_pointer = NULL;
-       }
-}
-
-
-static gpointer prolooks_value_hsl_peek_pointer (const GValue* value) {
-       return value->data[0].v_pointer;
-}
-
-
-static gchar* prolooks_value_hsl_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
-       (void) n_collect_values;
-       (void) collect_flags;
-       if (collect_values[0].v_pointer) {
-               ProlooksHSL* object;
-               object = (ProlooksHSL*)collect_values[0].v_pointer;
-               if (object->parent_instance.g_class == NULL) {
-                       return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
-               } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
-                       return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
-               }
-               value->data[0].v_pointer = prolooks_hsl_ref (object);
-       } else {
-               value->data[0].v_pointer = NULL;
-       }
-       return NULL;
-}
-
-
-static gchar* prolooks_value_hsl_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
-       ProlooksHSL** object_p;
-       (void) n_collect_values;
-       object_p = (ProlooksHSL**)collect_values[0].v_pointer;
-       if (!object_p) {
-               return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME ((GValue*)value));
-       }
-       if (!value->data[0].v_pointer) {
-               *object_p = NULL;
-       } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
-               *object_p = (ProlooksHSL*)value->data[0].v_pointer;
-       } else {
-               *object_p = (ProlooksHSL*)prolooks_hsl_ref (value->data[0].v_pointer);
-       }
-       return NULL;
-}
-
-
-GParamSpec* prolooks_param_spec_hsl (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
-       ProlooksParamSpecHSL* spec;
-       g_return_val_if_fail (g_type_is_a (object_type, PROLOOKS_TYPE_HSL), NULL);
-       spec = (ProlooksParamSpecHSL*)g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
-       G_PARAM_SPEC (spec)->value_type = object_type;
-       return G_PARAM_SPEC (spec);
-}
-
-
-gpointer prolooks_value_get_hsl (const GValue* value) {
-       g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE ((GValue*)value, PROLOOKS_TYPE_HSL), NULL);
-       return value->data[0].v_pointer;
-}
-
-
-void prolooks_value_set_hsl (GValue* value, gpointer v_object) {
-       ProlooksHSL* old;
-       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PROLOOKS_TYPE_HSL));
-       old = (ProlooksHSL*)value->data[0].v_pointer;
-       if (v_object) {
-               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PROLOOKS_TYPE_HSL));
-               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
-               value->data[0].v_pointer = v_object;
-               prolooks_hsl_ref (value->data[0].v_pointer);
-       } else {
-               value->data[0].v_pointer = NULL;
-       }
-       if (old) {
-               prolooks_hsl_unref (old);
-       }
-}
-
-
-void prolooks_value_take_hsl (GValue* value, gpointer v_object) {
-       ProlooksHSL* old;
-       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PROLOOKS_TYPE_HSL));
-       old = (ProlooksHSL*)value->data[0].v_pointer;
-       if (v_object) {
-               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PROLOOKS_TYPE_HSL));
-               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
-               value->data[0].v_pointer = v_object;
-       } else {
-               value->data[0].v_pointer = NULL;
-       }
-       if (old) {
-               prolooks_hsl_unref (old);
-       }
-}
-
-static void prolooks_hsl_finalize (ProlooksHSL* obj) {
-       ProlooksHSL * self;
-       self = PROLOOKS_HSL (obj);
-}
-
-static void prolooks_hsl_class_init (ProlooksHSLClass * klass) {
-       prolooks_hsl_parent_class = g_type_class_peek_parent (klass);
-       PROLOOKS_HSL_CLASS (klass)->finalize = prolooks_hsl_finalize;
-       g_type_class_add_private (klass, sizeof (ProlooksHSLPrivate));
-}
-
-
-static void prolooks_hsl_instance_init (ProlooksHSL * self) {
-       self->priv = PROLOOKS_HSL_GET_PRIVATE (self);
-       self->ref_count = 1;
-}
-
-
-
-GType prolooks_hsl_get_type (void) {
-       static volatile gsize prolooks_hsl_type_id__volatile = 0;
-       if (g_once_init_enter (&prolooks_hsl_type_id__volatile)) {
-               static const GTypeValueTable g_define_type_value_table = { prolooks_value_hsl_init, prolooks_value_hsl_free_value, prolooks_value_hsl_copy_value, prolooks_value_hsl_peek_pointer, "p", prolooks_value_hsl_collect_value, "p", prolooks_value_hsl_lcopy_value };
-               static const GTypeInfo g_define_type_info = { sizeof (ProlooksHSLClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) prolooks_hsl_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProlooksHSL), 0, (GInstanceInitFunc) prolooks_hsl_instance_init, &g_define_type_value_table };
-               static const GTypeFundamentalInfo g_define_type_fundamental_info = { (GTypeFundamentalFlags)(G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
-               GType prolooks_hsl_type_id;
-               prolooks_hsl_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ProlooksHSL", &g_define_type_info, &g_define_type_fundamental_info, (GTypeFlags)0);
-               g_once_init_leave (&prolooks_hsl_type_id__volatile, prolooks_hsl_type_id);
-       }
-       return prolooks_hsl_type_id__volatile;
-}
-
-
-gpointer prolooks_hsl_ref (gpointer instance) {
-       ProlooksHSL* self;
-       self = (ProlooksHSL*)instance;
-       g_atomic_int_inc (&self->ref_count);
-       return instance;
-}
-
-
-void prolooks_hsl_unref (gpointer instance) {
-       ProlooksHSL* self;
-       self = (ProlooksHSL*)instance;
-       if (g_atomic_int_dec_and_test (&self->ref_count)) {
-               PROLOOKS_HSL_GET_CLASS (self)->finalize (self);
-               g_type_free_instance ((GTypeInstance *) self);
-       }
-}
-
-
-char* prolooks_hsv_to_string (ProlooksHSV* self) {
-       char* result = NULL;
-       g_return_val_if_fail (self != NULL, NULL);
-       result = g_strdup_printf ("HSV (%f, %f, %f)", self->priv->_hue, self->priv->_saturation, self->priv->_value);
-       return result;
-}
-
-
-ProlooksHSV* prolooks_hsv_construct_for_gdk_color (GType object_type, const GdkColor* color) {
-       ProlooksHSV* self;
-       self = (ProlooksHSV*) g_type_create_instance (object_type);
-       prolooks_hsv_from_gdk_color (self, color);
-       return self;
-}
-
-
-ProlooksHSV* prolooks_hsv_new_for_gdk_color (const GdkColor* color) {
-       return prolooks_hsv_construct_for_gdk_color (PROLOOKS_TYPE_HSV, color);
-}
-
-
-ProlooksHSV* prolooks_hsv_construct_for_cairo_color (GType object_type, CairoColor* color) {
-       ProlooksHSV* self;
-       g_return_val_if_fail (color != NULL, NULL);
-       self = (ProlooksHSV*) g_type_create_instance (object_type);
-       prolooks_hsv_from_cairo_color (self, color);
-       return self;
-}
-
-
-ProlooksHSV* prolooks_hsv_new_for_cairo_color (CairoColor* color) {
-       return prolooks_hsv_construct_for_cairo_color (PROLOOKS_TYPE_HSV, color);
-}
-
-
-CairoColor* prolooks_hsv_to_cairo_color (ProlooksHSV* self) {
-       CairoColor* result = NULL;
-       double r;
-       double g;
-       double b;
-       gint hi = 0;
-       double f = 0.0;
-       double p = 0.0;
-       double q = 0.0;
-       double t = 0.0;
-       CairoColor* color;
-       g_return_val_if_fail (self != NULL, NULL);
-       r = 0.0;
-       g = 0.0;
-       b = 0.0;
-       hi = (gint) prolooks_modula (floor (self->priv->_hue / 60.0), (double) 6);
-       f = (self->priv->_hue / 60.0) - floor (self->priv->_hue / 60.0);
-       p = self->priv->_value * (1.0 - self->priv->_saturation);
-       q = self->priv->_value * (1.0 - (f * self->priv->_saturation));
-       t = self->priv->_value * (1.0 - ((1.0 - f) * self->priv->_saturation));
-       switch (hi) {
-               case 0:
-               {
-                       r = self->priv->_value;
-                       g = t;
-                       b = p;
-                       break;
-               }
-               case 1:
-               {
-                       r = q;
-                       g = self->priv->_value;
-                       b = p;
-                       break;
-               }
-               case 2:
-               {
-                       r = p;
-                       g = self->priv->_value;
-                       b = t;
-                       break;
-               }
-               case 3:
-               {
-                       r = p;
-                       g = q;
-                       b = self->priv->_value;
-                       break;
-               }
-               case 4:
-               {
-                       r = t;
-                       g = p;
-                       b = self->priv->_value;
-                       break;
-               }
-               case 5:
-               {
-                       r = self->priv->_value;
-                       g = p;
-                       b = q;
-                       break;
-               }
-               default:
-               {
-                       break;
-               }
-       }
-       color = cairo_color_new (r, g, b, 1.0);
-       result = color;
-       return result;
-}
-
-
-void prolooks_hsv_to_gdk_color (ProlooksHSV* self, GdkColor* result) {
-       GdkColor _tmp1_ = {0,0,0,0};
-       CairoColor* _tmp0_;
-       GdkColor _tmp2_;
-       g_return_if_fail (self != NULL);
-       *result = (_tmp2_ = (prolooks_cairo_color_to_gdk (_tmp0_ = prolooks_hsv_to_cairo_color (self), &_tmp1_), _tmp1_), _cairo_color_unref0 (_tmp0_), _tmp2_);
-       return;
-}
-
-
-void prolooks_hsv_from_gdk_color (ProlooksHSV* self, const GdkColor* color) {
-       CairoColor* _tmp0_;
-       g_return_if_fail (self != NULL);
-       prolooks_hsv_from_cairo_color (self, _tmp0_ = prolooks_gdk_color_to_cairo (color));
-       _cairo_color_unref0 (_tmp0_);
-}
-
-
-void prolooks_hsv_from_cairo_color (ProlooksHSV* self, CairoColor* color) {
-       double min = 0.0;
-       double max = 0.0;
-       double delta = 0.0;
-       double red;
-       double green;
-       double blue;
-       g_return_if_fail (self != NULL);
-       g_return_if_fail (color != NULL);
-       red = cairo_color_get_red (color);
-       green = cairo_color_get_green (color);
-       blue = cairo_color_get_blue (color);
-       if (red > green) {
-               if (red > blue) {
-                       max = red;
-               } else {
-                       max = blue;
-               }
-               if (green < blue) {
-                       min = green;
-               } else {
-                       min = blue;
-               }
-       } else {
-               if (green > blue) {
-                       max = green;
-               } else {
-                       max = blue;
-               }
-               if (red < blue) {
-                       min = red;
-               } else {
-                       min = blue;
-               }
-       }
-       prolooks_hsv_set_value (self, max);
-       if (fabs (max - min) < 0.0001) {
-               prolooks_hsv_set_hue (self, 0.0);
-               prolooks_hsv_set_saturation (self, 0.0);
-       } else {
-               if (max < 0.0001) {
-                       prolooks_hsv_set_saturation (self, (double) 0);
-               } else {
-                       prolooks_hsv_set_saturation (self, (max - min) / max);
-               }
-               delta = max - min;
-               if (red == max) {
-                       prolooks_hsv_set_hue (self, (green - blue) / delta);
-               } else {
-                       if (green == max) {
-                               prolooks_hsv_set_hue (self, 2.0 + ((blue - red) / delta));
-                       } else {
-                               if (blue == max) {
-                                       prolooks_hsv_set_hue (self, 4.0 + ((red - green) / delta));
-                               }
-                       }
-               }
-               prolooks_hsv_set_hue (self, self->priv->_hue * 60.0);
-               if (self->priv->_hue < 0.0) {
-                       prolooks_hsv_set_hue (self, self->priv->_hue + 360.0);
-               }
-       }
-}
-
-
-ProlooksHSV* prolooks_hsv_construct (GType object_type) {
-       ProlooksHSV* self;
-       self = (ProlooksHSV*) g_type_create_instance (object_type);
-       return self;
-}
-
-
-ProlooksHSV* prolooks_hsv_new (void) {
-       return prolooks_hsv_construct (PROLOOKS_TYPE_HSV);
-}
-
-
-double prolooks_hsv_get_hue (ProlooksHSV* self) {
-       double result;
-       g_return_val_if_fail (self != NULL, 0.0);
-       result = self->priv->_hue;
-       return result;
-}
-
-
-void prolooks_hsv_set_hue (ProlooksHSV* self, double value) {
-       g_return_if_fail (self != NULL);
-       self->priv->_hue = value;
-}
-
-
-double prolooks_hsv_get_saturation (ProlooksHSV* self) {
-       double result;
-       g_return_val_if_fail (self != NULL, 0.0);
-       result = self->priv->_saturation;
-       return result;
-}
-
-
-void prolooks_hsv_set_saturation (ProlooksHSV* self, double value) {
-       g_return_if_fail (self != NULL);
-       self->priv->_saturation = value;
-}
-
-
-double prolooks_hsv_get_value (ProlooksHSV* self) {
-       double result;
-       g_return_val_if_fail (self != NULL, 0.0);
-       result = self->priv->_value;
-       return result;
-}
-
-
-void prolooks_hsv_set_value (ProlooksHSV* self, double value) {
-       g_return_if_fail (self != NULL);
-       self->priv->_value = value;
-}
-
-
-static void prolooks_value_hsv_init (GValue* value) {
-       value->data[0].v_pointer = NULL;
-}
-
-
-static void prolooks_value_hsv_free_value (GValue* value) {
-       if (value->data[0].v_pointer) {
-               prolooks_hsv_unref (value->data[0].v_pointer);
-       }
-}
-
-
-static void prolooks_value_hsv_copy_value (const GValue* src_value, GValue* dest_value) {
-       if (src_value->data[0].v_pointer) {
-               dest_value->data[0].v_pointer = prolooks_hsv_ref (src_value->data[0].v_pointer);
-       } else {
-               dest_value->data[0].v_pointer = NULL;
-       }
-}
-
-
-static gpointer prolooks_value_hsv_peek_pointer (const GValue* value) {
-       return value->data[0].v_pointer;
-}
-
-
-static gchar* prolooks_value_hsv_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
-       (void) collect_flags;
-       (void) n_collect_values;
-       if (collect_values[0].v_pointer) {
-               ProlooksHSV* object;
-               object = (ProlooksHSV*)collect_values[0].v_pointer;
-               if (object->parent_instance.g_class == NULL) {
-                       return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
-               } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
-                       return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
-               }
-               value->data[0].v_pointer = prolooks_hsv_ref (object);
-       } else {
-               value->data[0].v_pointer = NULL;
-       }
-       return NULL;
-}
-
-
-static gchar* prolooks_value_hsv_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
-       ProlooksHSV** object_p;
-       (void) n_collect_values;
-       object_p = (ProlooksHSV**)collect_values[0].v_pointer;
-       if (!object_p) {
-               return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME ((GValue*)value));
-       }
-       if (!value->data[0].v_pointer) {
-               *object_p = NULL;
-       } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
-               *object_p = (ProlooksHSV*)value->data[0].v_pointer;
-       } else {
-               *object_p = (ProlooksHSV*)prolooks_hsv_ref (value->data[0].v_pointer);
-       }
-       return NULL;
-}
-
-
-GParamSpec* prolooks_param_spec_hsv (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
-       ProlooksParamSpecHSV* spec;
-       g_return_val_if_fail (g_type_is_a (object_type, PROLOOKS_TYPE_HSV), NULL);
-       spec = (ProlooksParamSpecHSV*)g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
-       G_PARAM_SPEC (spec)->value_type = object_type;
-       return G_PARAM_SPEC (spec);
-}
-
-
-gpointer prolooks_value_get_hsv (const GValue* value) {
-       g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE ((GValue*) value, PROLOOKS_TYPE_HSV), NULL);
-       return value->data[0].v_pointer;
-}
-
-
-void prolooks_value_set_hsv (GValue* value, gpointer v_object) {
-       ProlooksHSV* old;
-       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PROLOOKS_TYPE_HSV));
-       old = (ProlooksHSV*)value->data[0].v_pointer;
-       if (v_object) {
-               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PROLOOKS_TYPE_HSV));
-               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
-               value->data[0].v_pointer = v_object;
-               prolooks_hsv_ref (value->data[0].v_pointer);
-       } else {
-               value->data[0].v_pointer = NULL;
-       }
-       if (old) {
-               prolooks_hsv_unref (old);
-       }
-}
-
-
-void prolooks_value_take_hsv (GValue* value, gpointer v_object) {
-       ProlooksHSV* old;
-       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PROLOOKS_TYPE_HSV));
-       old = (ProlooksHSV*)value->data[0].v_pointer;
-       if (v_object) {
-               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PROLOOKS_TYPE_HSV));
-               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
-               value->data[0].v_pointer = v_object;
-       } else {
-               value->data[0].v_pointer = NULL;
-       }
-       if (old) {
-               prolooks_hsv_unref (old);
-       }
-}
-
-static void prolooks_hsv_finalize (ProlooksHSV* obj) {
-       ProlooksHSV * self;
-       self = PROLOOKS_HSV (obj);
-}
-
-static void prolooks_hsv_class_init (ProlooksHSVClass * klass) {
-       prolooks_hsv_parent_class = g_type_class_peek_parent (klass);
-       PROLOOKS_HSV_CLASS (klass)->finalize = prolooks_hsv_finalize;
-       g_type_class_add_private (klass, sizeof (ProlooksHSVPrivate));
-}
-
-
-static void prolooks_hsv_instance_init (ProlooksHSV * self) {
-       self->priv = PROLOOKS_HSV_GET_PRIVATE (self);
-       self->ref_count = 1;
-}
-
-GType prolooks_hsv_get_type (void) {
-       static volatile gsize prolooks_hsv_type_id__volatile = 0;
-       if (g_once_init_enter (&prolooks_hsv_type_id__volatile)) {
-               static const GTypeValueTable g_define_type_value_table = { prolooks_value_hsv_init, prolooks_value_hsv_free_value, prolooks_value_hsv_copy_value, prolooks_value_hsv_peek_pointer, "p", prolooks_value_hsv_collect_value, "p", prolooks_value_hsv_lcopy_value };
-               static const GTypeInfo g_define_type_info = { sizeof (ProlooksHSVClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) prolooks_hsv_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProlooksHSV), 0, (GInstanceInitFunc) prolooks_hsv_instance_init, &g_define_type_value_table };
-               static const GTypeFundamentalInfo g_define_type_fundamental_info = { (GTypeFundamentalFlags)(G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
-               GType prolooks_hsv_type_id;
-               prolooks_hsv_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ProlooksHSV", &g_define_type_info, &g_define_type_fundamental_info, (GTypeFlags)0);
-               g_once_init_leave (&prolooks_hsv_type_id__volatile, prolooks_hsv_type_id);
-       }
-       return prolooks_hsv_type_id__volatile;
-}
-
-
-gpointer prolooks_hsv_ref (gpointer instance) {
-       ProlooksHSV* self;
-       self = (ProlooksHSV*)instance;
-       g_atomic_int_inc (&self->ref_count);
-       return instance;
-}
-
-
-void prolooks_hsv_unref (gpointer instance) {
-       ProlooksHSV* self;
-       self = (ProlooksHSV*)instance;
-       if (g_atomic_int_dec_and_test (&self->ref_count)) {
-               PROLOOKS_HSV_GET_CLASS (self)->finalize (self);
-               g_type_free_instance ((GTypeInstance *) self);
-       }
-}
-
-
-void prolooks_shade_color (const GdkColor* orig, double shade_ratio, GdkColor* result) {
-       ProlooksHSL* HSL;
-       GdkColor _tmp0_ = {0,0,0,0};
-       GdkColor _result_;
-       HSL = prolooks_hsl_new ();
-       prolooks_hsl_from_gdk_color (HSL, orig);
-       prolooks_hsl_set_lightness (HSL, fmin (prolooks_hsl_get_lightness (HSL) * shade_ratio, 1.0));
-       prolooks_hsl_set_lightness (HSL, fmax (prolooks_hsl_get_lightness (HSL), 0.0));
-       prolooks_hsl_set_saturation (HSL, fmin (prolooks_hsl_get_saturation (HSL) * shade_ratio, 1.0));
-       prolooks_hsl_set_saturation (HSL, fmax (prolooks_hsl_get_saturation (HSL), 0.0));
-       _result_ = (prolooks_hsl_to_gdk_color (HSL, &_tmp0_), _tmp0_);
-       *result = _result_;
-       _prolooks_hsl_unref0 (HSL);
-       return;
-}
-
-
-GdkPixbuf* prolooks_cairo_image_surface_to_pixbuf (cairo_surface_t* surface) {
-       GdkPixbuf* result = NULL;
-       guchar* _tmp0_;
-       guchar* knob_data;
-       g_return_val_if_fail (surface != NULL, NULL);
-       if (cairo_image_surface_get_format (surface) != CAIRO_FORMAT_ARGB32) {
-               result = NULL;
-               return result;
-       }
-       knob_data = (_tmp0_ = cairo_image_surface_get_data (surface), _tmp0_);
-       {
-               gint i;
-               i = 0;
-               {
-                       gboolean _tmp1_;
-                       _tmp1_ = TRUE;
-                       while (TRUE) {
-                               guchar r;
-                               guchar g;
-                               guchar b;
-                               guchar a;
-                               if (!_tmp1_) {
-                                       i = i + 4;
-                               }
-                               _tmp1_ = FALSE;
-                               if (!(i < (cairo_image_surface_get_height (surface) * cairo_image_surface_get_stride (surface)))) {
-                                       break;
-                               }
-                               r = knob_data[i + 0];
-                               g = knob_data[i + 1];
-                               b = knob_data[i + 2];
-                               a = knob_data[i + 3];
-                               knob_data[i + 0] = b;
-                               knob_data[i + 1] = g;
-                               knob_data[i + 2] = r;
-                               knob_data[i + 3] = a;
-                       }
-               }
-       }
-       result = gdk_pixbuf_new_from_data (knob_data, GDK_COLORSPACE_RGB, TRUE, 8, cairo_image_surface_get_width (surface), cairo_image_surface_get_height (surface), cairo_image_surface_get_stride (surface), NULL, NULL);
-       return result;
-}
-
-
-
-
index 89614bd63f97ef948cbb74bb35ad3715c293c8ad..2e9df400e503a4e9ecc79c374737b44190773d2f 100644 (file)
@@ -47,10 +47,8 @@ gtkmm2ext_sources = [
         'gtkapplication.c',
         'idle_adjustment.cc',
         'keyboard.cc',
-        'motionfeedback.cc',
         'paths_dialog.cc',
         'persistent_tooltip.cc',
-        'prolooks_helpers.c',
         'pixfader.cc',
         'pixscroller.cc',
         'popup.cc',