summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-02-11 13:03:24 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2016-02-11 13:03:24 -0500
commite6b06597b75010c955c6b44db0025a3e8642d9b0 (patch)
treeee90c7c9a14394588bd6618dd5b9262fbcd19dc7 /libs
parent2429308bac5751fb136515027f6762ba76a7eb3d (diff)
remove all traces of "prolooks" and related classes
Diffstat (limited to 'libs')
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/motionfeedback.h134
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/prolooks-helpers.h252
-rw-r--r--libs/gtkmm2ext/motionfeedback.cc693
-rw-r--r--libs/gtkmm2ext/prolooks_helpers.c1383
-rw-r--r--libs/gtkmm2ext/wscript2
5 files changed, 0 insertions, 2464 deletions
diff --git a/libs/gtkmm2ext/gtkmm2ext/motionfeedback.h b/libs/gtkmm2ext/gtkmm2ext/motionfeedback.h
deleted file mode 100644
index 91e7a67a7e..0000000000
--- a/libs/gtkmm2ext/gtkmm2ext/motionfeedback.h
+++ /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
index 618b4bd6eb..0000000000
--- a/libs/gtkmm2ext/gtkmm2ext/prolooks-helpers.h
+++ /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
index 0dccdabc2f..0000000000
--- a/libs/gtkmm2ext/motionfeedback.cc
+++ /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
index ac596d0ae1..0000000000
--- a/libs/gtkmm2ext/prolooks_helpers.c
+++ /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;
-}
-
-
-
-
diff --git a/libs/gtkmm2ext/wscript b/libs/gtkmm2ext/wscript
index 89614bd63f..2e9df400e5 100644
--- a/libs/gtkmm2ext/wscript
+++ b/libs/gtkmm2ext/wscript
@@ -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',