From e6b06597b75010c955c6b44db0025a3e8642d9b0 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 11 Feb 2016 13:03:24 -0500 Subject: remove all traces of "prolooks" and related classes --- libs/gtkmm2ext/gtkmm2ext/motionfeedback.h | 134 --- libs/gtkmm2ext/gtkmm2ext/prolooks-helpers.h | 252 ----- libs/gtkmm2ext/motionfeedback.cc | 693 -------------- libs/gtkmm2ext/prolooks_helpers.c | 1383 --------------------------- libs/gtkmm2ext/wscript | 2 - 5 files changed, 2464 deletions(-) delete mode 100644 libs/gtkmm2ext/gtkmm2ext/motionfeedback.h delete mode 100644 libs/gtkmm2ext/gtkmm2ext/prolooks-helpers.h delete mode 100644 libs/gtkmm2ext/motionfeedback.cc delete mode 100644 libs/gtkmm2ext/prolooks_helpers.c (limited to 'libs') 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 -#include -#include -#include - -#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, - Type type, - boost::shared_ptr, - 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 controllable() const; - virtual void set_controllable (boost::shared_ptr c); - - static void set_lamp_color (const std::string&); - - static Glib::RefPtr render_pixbuf (int size); - - void set_print_func(void (*pf)(char buf[32], const boost::shared_ptr&, void *), - void *arg) { - print_func = pf; - print_arg = arg; - }; - - protected: - boost::shared_ptr _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 pixbuf; - BindingProxy binding_proxy; - static Gdk::Color* base_color; - - void (*print_func) (char buf[32], const boost::shared_ptr&, void *); - void *print_arg; - static void default_printer (char buf[32], const boost::shared_ptr&, 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 -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#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 -#include -#include -#include -#include -#include /* for snprintf, grrr */ - -#include "pbd/gstdio_compat.h" - -#include -#include - -#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 pix, - Type t, - boost::shared_ptr 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 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 -MotionFeedback::controllable () const -{ - return _controllable; -} - -void -MotionFeedback::default_printer (char buf[32], const boost::shared_ptr& c, void *) -{ - if (c) { - sprintf (buf, "%.2f", c->get_value()); - } else { - buf[0] = '\0'; - } -} - -Glib::RefPtr -MotionFeedback::render_pixbuf (int size) -{ - Glib::RefPtr 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 -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', -- cgit v1.2.3