summaryrefslogtreecommitdiff
path: root/src/gsm_color_button.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gsm_color_button.c')
-rw-r--r--src/gsm_color_button.c1138
1 files changed, 569 insertions, 569 deletions
diff --git a/src/gsm_color_button.c b/src/gsm_color_button.c
index ffcf270..b22407c 100644
--- a/src/gsm_color_button.c
+++ b/src/gsm_color_button.c
@@ -38,33 +38,33 @@
struct _GSMColorButtonPrivate
{
- GtkWidget *cs_dialog; /* Color selection dialog */
+ GtkWidget *cs_dialog; /* Color selection dialog */
- gchar *title; /* Title for the color selection window */
+ gchar *title; /* Title for the color selection window */
- GdkColor color;
+ GdkColor color;
- gdouble fraction; /* Only used by GSMCP_TYPE_PIE */
- guint type;
- cairo_surface_t *image_buffer;
- gdouble highlight;
+ gdouble fraction; /* Only used by GSMCP_TYPE_PIE */
+ guint type;
+ cairo_surface_t *image_buffer;
+ gdouble highlight;
};
/* Properties */
enum
{
- PROP_0,
- PROP_PERCENTAGE,
- PROP_TITLE,
- PROP_COLOR,
- PROP_TYPE
+ PROP_0,
+ PROP_PERCENTAGE,
+ PROP_TITLE,
+ PROP_COLOR,
+ PROP_TYPE
};
/* Signals */
enum
{
- COLOR_SET,
- LAST_SIGNAL
+ COLOR_SET,
+ LAST_SIGNAL
};
#define GSMCP_MIN_WIDTH 15
@@ -75,52 +75,52 @@ static void gsm_color_button_class_init (GSMColorButtonClass * klass);
static void gsm_color_button_init (GSMColorButton * color_button);
static void gsm_color_button_finalize (GObject * object);
static void gsm_color_button_set_property (GObject * object, guint param_id,
- const GValue * value,
- GParamSpec * pspec);
+ const GValue * value,
+ GParamSpec * pspec);
static void gsm_color_button_get_property (GObject * object, guint param_id,
- GValue * value,
- GParamSpec * pspec);
+ GValue * value,
+ GParamSpec * pspec);
static void gsm_color_button_realize (GtkWidget * widget);
#if GTK_CHECK_VERSION(3,0,0)
static void gsm_color_button_get_preferred_width (GtkWidget * widget, gint * minimum_width, gint * natural_width);
static void gsm_color_button_get_preferred_height (GtkWidget * widget, gint * minimum_height, gint * natural_height);
#else
static void gsm_color_button_size_request (GtkWidget * widget,
- GtkRequisition * requisition);
+ GtkRequisition * requisition);
#endif
static void gsm_color_button_size_allocate (GtkWidget * widget,
- GtkAllocation * allocation);
+ GtkAllocation * allocation);
static void gsm_color_button_unrealize (GtkWidget * widget);
static void gsm_color_button_state_changed (GtkWidget * widget,
- GtkStateType previous_state);
+ GtkStateType previous_state);
static void gsm_color_button_style_set (GtkWidget * widget,
- GtkStyle * previous_style);
+ GtkStyle * previous_style);
static gint gsm_color_button_clicked (GtkWidget * widget,
- GdkEventButton * event);
+ GdkEventButton * event);
static gboolean gsm_color_button_enter_notify (GtkWidget * widget,
- GdkEventCrossing * event);
+ GdkEventCrossing * event);
static gboolean gsm_color_button_leave_notify (GtkWidget * widget,
- GdkEventCrossing * event);
+ GdkEventCrossing * event);
/* source side drag signals */
static void gsm_color_button_drag_begin (GtkWidget * widget,
- GdkDragContext * context,
- gpointer data);
+ GdkDragContext * context,
+ gpointer data);
static void gsm_color_button_drag_data_get (GtkWidget * widget,
- GdkDragContext * context,
- GtkSelectionData * selection_data,
- guint info, guint time,
- GSMColorButton * color_button);
+ GdkDragContext * context,
+ GtkSelectionData * selection_data,
+ guint info, guint time,
+ GSMColorButton * color_button);
/* target side drag signals */
static void gsm_color_button_drag_data_received (GtkWidget * widget,
- GdkDragContext * context,
- gint x,
- gint y,
- GtkSelectionData *
- selection_data, guint info,
- guint32 time,
- GSMColorButton *
- color_button);
+ GdkDragContext * context,
+ gint x,
+ gint y,
+ GtkSelectionData *
+ selection_data, guint info,
+ guint32 time,
+ GSMColorButton *
+ color_button);
static guint color_button_signals[LAST_SIGNAL] = { 0 };
@@ -132,315 +132,315 @@ static const GtkTargetEntry drop_types[] = { {"application/x-color", 0, 0} };
GType
gsm_color_button_get_type ()
{
- static GType gsm_color_button_type = 0;
-
- if (!gsm_color_button_type)
- {
- static const GTypeInfo gsm_color_button_info = {
- sizeof (GSMColorButtonClass),
- NULL,
- NULL,
- (GClassInitFunc) gsm_color_button_class_intern_init,
- NULL,
- NULL,
- sizeof (GSMColorButton),
- 0,
- (GInstanceInitFunc) gsm_color_button_init,
- };
-
- gsm_color_button_type =
- g_type_register_static (GTK_TYPE_DRAWING_AREA, "GSMColorButton",
- &gsm_color_button_info, 0);
+ static GType gsm_color_button_type = 0;
+
+ if (!gsm_color_button_type)
+ {
+ static const GTypeInfo gsm_color_button_info = {
+ sizeof (GSMColorButtonClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gsm_color_button_class_intern_init,
+ NULL,
+ NULL,
+ sizeof (GSMColorButton),
+ 0,
+ (GInstanceInitFunc) gsm_color_button_init,
+ };
+
+ gsm_color_button_type =
+ g_type_register_static (GTK_TYPE_DRAWING_AREA, "GSMColorButton",
+ &gsm_color_button_info, 0);
}
- return gsm_color_button_type;
+ return gsm_color_button_type;
}
static void
gsm_color_button_class_intern_init (gpointer klass)
{
- gsm_color_button_parent_class = g_type_class_peek_parent (klass);
- gsm_color_button_class_init ((GSMColorButtonClass *) klass);
+ gsm_color_button_parent_class = g_type_class_peek_parent (klass);
+ gsm_color_button_class_init ((GSMColorButtonClass *) klass);
}
static void
gsm_color_button_class_init (GSMColorButtonClass * klass)
{
- GObjectClass *gobject_class;
- GtkWidgetClass *widget_class;
+ GObjectClass *gobject_class;
+ GtkWidgetClass *widget_class;
- gobject_class = G_OBJECT_CLASS (klass);
- widget_class = GTK_WIDGET_CLASS (klass);
+ gobject_class = G_OBJECT_CLASS (klass);
+ widget_class = GTK_WIDGET_CLASS (klass);
- gobject_class->get_property = gsm_color_button_get_property;
- gobject_class->set_property = gsm_color_button_set_property;
- gobject_class->finalize = gsm_color_button_finalize;
- widget_class->state_changed = gsm_color_button_state_changed;
+ gobject_class->get_property = gsm_color_button_get_property;
+ gobject_class->set_property = gsm_color_button_set_property;
+ gobject_class->finalize = gsm_color_button_finalize;
+ widget_class->state_changed = gsm_color_button_state_changed;
#if GTK_CHECK_VERSION(3,0,0)
- widget_class->get_preferred_width = gsm_color_button_get_preferred_width;
- widget_class->get_preferred_height = gsm_color_button_get_preferred_height;
+ widget_class->get_preferred_width = gsm_color_button_get_preferred_width;
+ widget_class->get_preferred_height = gsm_color_button_get_preferred_height;
#else
- widget_class->size_request = gsm_color_button_size_request;
+ widget_class->size_request = gsm_color_button_size_request;
#endif
- widget_class->size_allocate = gsm_color_button_size_allocate;
- widget_class->realize = gsm_color_button_realize;
- widget_class->unrealize = gsm_color_button_unrealize;
- widget_class->style_set = gsm_color_button_style_set;
- widget_class->button_release_event = gsm_color_button_clicked;
- widget_class->enter_notify_event = gsm_color_button_enter_notify;
- widget_class->leave_notify_event = gsm_color_button_leave_notify;
-
- klass->color_set = NULL;
-
- g_object_class_install_property (gobject_class,
- PROP_PERCENTAGE,
- g_param_spec_double ("fraction",
- _("Fraction"),
- _("Percentage full for pie colour pickers"),
- 0, 1, 0.5,
- G_PARAM_READWRITE));
-
- g_object_class_install_property (gobject_class,
- PROP_TITLE,
- g_param_spec_string ("title",
- _("Title"),
- _("The title of the color selection dialog"),
- _("Pick a Color"),
- G_PARAM_READWRITE));
-
- g_object_class_install_property (gobject_class,
- PROP_COLOR,
- g_param_spec_boxed ("color",
- _("Current Color"),
- _("The selected color"),
- GDK_TYPE_COLOR,
- G_PARAM_READWRITE));
-
- g_object_class_install_property (gobject_class,
- PROP_TYPE,
- g_param_spec_uint ("type", _("Type"),
- _("Type of color picker"),
- 0, 4, 0,
- G_PARAM_READWRITE));
-
- color_button_signals[COLOR_SET] = g_signal_new ("color_set",
- G_TYPE_FROM_CLASS
- (gobject_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET
- (GSMColorButtonClass,
- color_set), NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
-
- g_type_class_add_private (gobject_class, sizeof (GSMColorButtonPrivate));
+ widget_class->size_allocate = gsm_color_button_size_allocate;
+ widget_class->realize = gsm_color_button_realize;
+ widget_class->unrealize = gsm_color_button_unrealize;
+ widget_class->style_set = gsm_color_button_style_set;
+ widget_class->button_release_event = gsm_color_button_clicked;
+ widget_class->enter_notify_event = gsm_color_button_enter_notify;
+ widget_class->leave_notify_event = gsm_color_button_leave_notify;
+
+ klass->color_set = NULL;
+
+ g_object_class_install_property (gobject_class,
+ PROP_PERCENTAGE,
+ g_param_spec_double ("fraction",
+ _("Fraction"),
+ _("Percentage full for pie colour pickers"),
+ 0, 1, 0.5,
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (gobject_class,
+ PROP_TITLE,
+ g_param_spec_string ("title",
+ _("Title"),
+ _("The title of the color selection dialog"),
+ _("Pick a Color"),
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (gobject_class,
+ PROP_COLOR,
+ g_param_spec_boxed ("color",
+ _("Current Color"),
+ _("The selected color"),
+ GDK_TYPE_COLOR,
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (gobject_class,
+ PROP_TYPE,
+ g_param_spec_uint ("type", _("Type"),
+ _("Type of color picker"),
+ 0, 4, 0,
+ G_PARAM_READWRITE));
+
+ color_button_signals[COLOR_SET] = g_signal_new ("color_set",
+ G_TYPE_FROM_CLASS
+ (gobject_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET
+ (GSMColorButtonClass,
+ color_set), NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ g_type_class_add_private (gobject_class, sizeof (GSMColorButtonPrivate));
}
static cairo_surface_t *
fill_image_buffer_from_file (cairo_t *cr, const char *filePath)
{
- GError *error = NULL;
- RsvgHandle *handle;
- cairo_surface_t *tmp_surface;
- cairo_t *tmp_cr;
+ GError *error = NULL;
+ RsvgHandle *handle;
+ cairo_surface_t *tmp_surface;
+ cairo_t *tmp_cr;
- handle = rsvg_handle_new_from_file (filePath, &error);
+ handle = rsvg_handle_new_from_file (filePath, &error);
- if (handle == NULL) {
- g_warning("rsvg_handle_new_from_file(\"%s\") failed: %s",
- filePath, (error ? error->message : "unknown error"));
+ if (handle == NULL) {
+ g_warning("rsvg_handle_new_from_file(\"%s\") failed: %s",
+ filePath, (error ? error->message : "unknown error"));
if (error)
- g_error_free(error);
+ g_error_free(error);
return NULL;
- }
+ }
- tmp_surface = cairo_surface_create_similar (cairo_get_target (cr),
- CAIRO_CONTENT_COLOR_ALPHA,
- 32, 32);
- tmp_cr = cairo_create (tmp_surface);
- rsvg_handle_render_cairo (handle, tmp_cr);
- cairo_destroy (tmp_cr);
- g_object_unref (handle);
- return tmp_surface;
+ tmp_surface = cairo_surface_create_similar (cairo_get_target (cr),
+ CAIRO_CONTENT_COLOR_ALPHA,
+ 32, 32);
+ tmp_cr = cairo_create (tmp_surface);
+ rsvg_handle_render_cairo (handle, tmp_cr);
+ cairo_destroy (tmp_cr);
+ g_object_unref (handle);
+ return tmp_surface;
}
static void
render (GtkWidget * widget)
{
- GSMColorButton *color_button = GSM_COLOR_BUTTON (widget);
- GdkColor *color, tmp_color = color_button->priv->color;
- color = &tmp_color;
- cairo_t *cr = gdk_cairo_create (gtk_widget_get_window (widget));
- cairo_path_t *path = NULL;
- gint width, height;
- gdouble radius, arc_start, arc_end;
- gint highlight_factor;
+ GSMColorButton *color_button = GSM_COLOR_BUTTON (widget);
+ GdkColor *color, tmp_color = color_button->priv->color;
+ color = &tmp_color;
+ cairo_t *cr = gdk_cairo_create (gtk_widget_get_window (widget));
+ cairo_path_t *path = NULL;
+ gint width, height;
+ gdouble radius, arc_start, arc_end;
+ gint highlight_factor;
- if (color_button->priv->highlight > 0) {
- highlight_factor = 8192 * color_button->priv->highlight;
+ if (color_button->priv->highlight > 0) {
+ highlight_factor = 8192 * color_button->priv->highlight;
if (color->red + highlight_factor > 65535)
- color->red = 65535;
+ color->red = 65535;
else
- color->red = color->red + highlight_factor;
+ color->red = color->red + highlight_factor;
if (color->blue + highlight_factor > 65535)
- color->blue = 65535;
+ color->blue = 65535;
else
color->blue = color->blue + highlight_factor;
if (color->green + highlight_factor > 65535)
- color->green = 65535;
+ color->green = 65535;
else
- color->green = color->green + highlight_factor;
- }
- gdk_cairo_set_source_color (cr, color);
- width = gdk_window_get_width(gtk_widget_get_window(widget));
- height = gdk_window_get_height(gtk_widget_get_window(widget));
-
- switch (color_button->priv->type)
- {
- case GSMCP_TYPE_CPU:
- //gtk_widget_set_size_request (widget, GSMCP_MIN_WIDTH, GSMCP_MIN_HEIGHT);
- cairo_paint (cr);
- cairo_set_line_width (cr, 1);
- cairo_set_source_rgba (cr, 0, 0, 0, 0.5);
- cairo_rectangle (cr, 0.5, 0.5, width - 1, height - 1);
- cairo_stroke (cr);
- cairo_set_line_width (cr, 1);
- cairo_set_source_rgba (cr, 1, 1, 1, 0.4);
- cairo_rectangle (cr, 1.5, 1.5, width - 3, height - 3);
- cairo_stroke (cr);
- break;
- case GSMCP_TYPE_PIE:
- if (width < 32) // 32px minimum size
- gtk_widget_set_size_request (widget, 32, 32);
- if (width < height)
- radius = width / 2;
- else
- radius = height / 2;
-
- arc_start = -G_PI_2 + 2 * G_PI * color_button->priv->fraction;
- arc_end = -G_PI_2;
-
- cairo_set_line_width (cr, 1);
-
- // Draw external stroke and fill
- if (color_button->priv->fraction < 0.01) {
- cairo_arc (cr, (width / 2) + .5, (height / 2) + .5, 4.5,
- 0, 2 * G_PI);
- } else if (color_button->priv->fraction > 0.99) {
- cairo_arc (cr, (width / 2) + .5, (height / 2) + .5, radius - 2.25,
- 0, 2 * G_PI);
- } else {
- cairo_arc_negative (cr, (width / 2) + .5, (height / 2) + .5, radius - 2.25,
- arc_start, arc_end);
- cairo_arc_negative (cr, (width / 2) + .5, (height / 2) + .5, 4.5,
- arc_end, arc_start);
- cairo_arc_negative (cr, (width / 2) + .5, (height / 2) + .5, radius - 2.25,
- arc_start, arc_start);
- }
- cairo_fill_preserve (cr);
- cairo_set_source_rgba (cr, 0, 0, 0, 0.7);
- cairo_stroke (cr);
-
- // Draw internal highlight
- cairo_set_source_rgba (cr, 1, 1, 1, 0.45);
- cairo_set_line_width (cr, 1);
-
- if (color_button->priv->fraction < 0.03) {
- cairo_arc (cr, (width / 2) + .5, (height / 2) + .5, 3.25,
- 0, 2 * G_PI);
- } else if (color_button->priv->fraction > 0.99) {
- cairo_arc (cr, (width / 2) + .5, (height / 2) + .5, radius - 3.5,
- 0, 2 * G_PI);
- } else {
- cairo_arc_negative (cr, (width / 2) + .5, (height / 2) + .5, radius - 3.5,
- arc_start + (1 / (radius - 3.75)),
- arc_end - (1 / (radius - 3.75)));
- cairo_arc_negative (cr, (width / 2) + .5, (height / 2) + .5, 3.25,
- arc_end - (1 / (radius - 3.75)),
- arc_start + (1 / (radius - 3.75)));
- cairo_arc_negative (cr, (width / 2) + .5, (height / 2) + .5, radius - 3.5,
- arc_start + (1 / (radius - 3.75)),
- arc_start + (1 / (radius - 3.75)));
- }
- cairo_stroke (cr);
-
- // Draw external shape
- cairo_set_line_width (cr, 1);
- cairo_set_source_rgba (cr, 0, 0, 0, 0.2);
- cairo_arc (cr, (width / 2) + .5, (height / 2) + .5, radius - 1.25, 0,
- G_PI * 2);
- cairo_stroke (cr);
-
- break;
- case GSMCP_TYPE_NETWORK_IN:
- if (color_button->priv->image_buffer == NULL)
- color_button->priv->image_buffer =
- fill_image_buffer_from_file (cr, DATADIR "/pixmaps/mate-system-monitor/download.svg");
- gtk_widget_set_size_request (widget, 32, 32);
- cairo_move_to (cr, 8.5, 1.5);
- cairo_line_to (cr, 23.5, 1.5);
- cairo_line_to (cr, 23.5, 11.5);
- cairo_line_to (cr, 29.5, 11.5);
- cairo_line_to (cr, 16.5, 27.5);
- cairo_line_to (cr, 15.5, 27.5);
- cairo_line_to (cr, 2.5, 11.5);
- cairo_line_to (cr, 8.5, 11.5);
- cairo_line_to (cr, 8.5, 1.5);
- cairo_close_path (cr);
- path = cairo_copy_path (cr);
- cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE);
- cairo_set_line_join (cr, CAIRO_LINE_JOIN_MITER);
- cairo_set_line_width (cr, 1);
- cairo_fill_preserve (cr);
- cairo_set_miter_limit (cr, 5.0);
- cairo_stroke (cr);
- cairo_set_source_rgba (cr, 0, 0, 0, 0.5);
- cairo_append_path (cr, path);
- cairo_path_destroy(path);
- cairo_stroke (cr);
- cairo_set_source_surface (cr, color_button->priv->image_buffer, 0.0,
- 0.0);
- cairo_paint (cr);
-
- break;
- case GSMCP_TYPE_NETWORK_OUT:
- if (color_button->priv->image_buffer == NULL)
- color_button->priv->image_buffer =
- fill_image_buffer_from_file (cr, DATADIR "/pixmaps/mate-system-monitor/upload.svg");
- gtk_widget_set_size_request (widget, 32, 32);
- cairo_move_to (cr, 16.5, 1.5);
- cairo_line_to (cr, 29.5, 17.5);
- cairo_line_to (cr, 23.5, 17.5);
- cairo_line_to (cr, 23.5, 27.5);
- cairo_line_to (cr, 8.5, 27.5);
- cairo_line_to (cr, 8.5, 17.5);
- cairo_line_to (cr, 2.5, 17.5);
- cairo_line_to (cr, 15.5, 1.5);
- cairo_line_to (cr, 16.5, 1.5);
- cairo_close_path (cr);
- path = cairo_copy_path (cr);
- cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE);
- cairo_set_line_join (cr, CAIRO_LINE_JOIN_MITER);
- cairo_set_line_width (cr, 1);
- cairo_fill_preserve (cr);
- cairo_set_miter_limit (cr, 5.0);
- cairo_stroke (cr);
- cairo_set_source_rgba (cr, 0, 0, 0, 0.5);
- cairo_append_path (cr, path);
- cairo_path_destroy(path);
- cairo_stroke (cr);
- cairo_set_source_surface (cr, color_button->priv->image_buffer, 0.0,
- 0.0);
- cairo_paint (cr);
-
- break;
+ color->green = color->green + highlight_factor;
}
- cairo_destroy (cr);
+ gdk_cairo_set_source_color (cr, color);
+ width = gdk_window_get_width(gtk_widget_get_window(widget));
+ height = gdk_window_get_height(gtk_widget_get_window(widget));
+
+ switch (color_button->priv->type)
+ {
+ case GSMCP_TYPE_CPU:
+ //gtk_widget_set_size_request (widget, GSMCP_MIN_WIDTH, GSMCP_MIN_HEIGHT);
+ cairo_paint (cr);
+ cairo_set_line_width (cr, 1);
+ cairo_set_source_rgba (cr, 0, 0, 0, 0.5);
+ cairo_rectangle (cr, 0.5, 0.5, width - 1, height - 1);
+ cairo_stroke (cr);
+ cairo_set_line_width (cr, 1);
+ cairo_set_source_rgba (cr, 1, 1, 1, 0.4);
+ cairo_rectangle (cr, 1.5, 1.5, width - 3, height - 3);
+ cairo_stroke (cr);
+ break;
+ case GSMCP_TYPE_PIE:
+ if (width < 32) // 32px minimum size
+ gtk_widget_set_size_request (widget, 32, 32);
+ if (width < height)
+ radius = width / 2;
+ else
+ radius = height / 2;
+
+ arc_start = -G_PI_2 + 2 * G_PI * color_button->priv->fraction;
+ arc_end = -G_PI_2;
+
+ cairo_set_line_width (cr, 1);
+
+ // Draw external stroke and fill
+ if (color_button->priv->fraction < 0.01) {
+ cairo_arc (cr, (width / 2) + .5, (height / 2) + .5, 4.5,
+ 0, 2 * G_PI);
+ } else if (color_button->priv->fraction > 0.99) {
+ cairo_arc (cr, (width / 2) + .5, (height / 2) + .5, radius - 2.25,
+ 0, 2 * G_PI);
+ } else {
+ cairo_arc_negative (cr, (width / 2) + .5, (height / 2) + .5, radius - 2.25,
+ arc_start, arc_end);
+ cairo_arc_negative (cr, (width / 2) + .5, (height / 2) + .5, 4.5,
+ arc_end, arc_start);
+ cairo_arc_negative (cr, (width / 2) + .5, (height / 2) + .5, radius - 2.25,
+ arc_start, arc_start);
+ }
+ cairo_fill_preserve (cr);
+ cairo_set_source_rgba (cr, 0, 0, 0, 0.7);
+ cairo_stroke (cr);
+
+ // Draw internal highlight
+ cairo_set_source_rgba (cr, 1, 1, 1, 0.45);
+ cairo_set_line_width (cr, 1);
+
+ if (color_button->priv->fraction < 0.03) {
+ cairo_arc (cr, (width / 2) + .5, (height / 2) + .5, 3.25,
+ 0, 2 * G_PI);
+ } else if (color_button->priv->fraction > 0.99) {
+ cairo_arc (cr, (width / 2) + .5, (height / 2) + .5, radius - 3.5,
+ 0, 2 * G_PI);
+ } else {
+ cairo_arc_negative (cr, (width / 2) + .5, (height / 2) + .5, radius - 3.5,
+ arc_start + (1 / (radius - 3.75)),
+ arc_end - (1 / (radius - 3.75)));
+ cairo_arc_negative (cr, (width / 2) + .5, (height / 2) + .5, 3.25,
+ arc_end - (1 / (radius - 3.75)),
+ arc_start + (1 / (radius - 3.75)));
+ cairo_arc_negative (cr, (width / 2) + .5, (height / 2) + .5, radius - 3.5,
+ arc_start + (1 / (radius - 3.75)),
+ arc_start + (1 / (radius - 3.75)));
+ }
+ cairo_stroke (cr);
+
+ // Draw external shape
+ cairo_set_line_width (cr, 1);
+ cairo_set_source_rgba (cr, 0, 0, 0, 0.2);
+ cairo_arc (cr, (width / 2) + .5, (height / 2) + .5, radius - 1.25, 0,
+ G_PI * 2);
+ cairo_stroke (cr);
+
+ break;
+ case GSMCP_TYPE_NETWORK_IN:
+ if (color_button->priv->image_buffer == NULL)
+ color_button->priv->image_buffer =
+ fill_image_buffer_from_file (cr, DATADIR "/pixmaps/mate-system-monitor/download.svg");
+ gtk_widget_set_size_request (widget, 32, 32);
+ cairo_move_to (cr, 8.5, 1.5);
+ cairo_line_to (cr, 23.5, 1.5);
+ cairo_line_to (cr, 23.5, 11.5);
+ cairo_line_to (cr, 29.5, 11.5);
+ cairo_line_to (cr, 16.5, 27.5);
+ cairo_line_to (cr, 15.5, 27.5);
+ cairo_line_to (cr, 2.5, 11.5);
+ cairo_line_to (cr, 8.5, 11.5);
+ cairo_line_to (cr, 8.5, 1.5);
+ cairo_close_path (cr);
+ path = cairo_copy_path (cr);
+ cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE);
+ cairo_set_line_join (cr, CAIRO_LINE_JOIN_MITER);
+ cairo_set_line_width (cr, 1);
+ cairo_fill_preserve (cr);
+ cairo_set_miter_limit (cr, 5.0);
+ cairo_stroke (cr);
+ cairo_set_source_rgba (cr, 0, 0, 0, 0.5);
+ cairo_append_path (cr, path);
+ cairo_path_destroy(path);
+ cairo_stroke (cr);
+ cairo_set_source_surface (cr, color_button->priv->image_buffer, 0.0,
+ 0.0);
+ cairo_paint (cr);
+
+ break;
+ case GSMCP_TYPE_NETWORK_OUT:
+ if (color_button->priv->image_buffer == NULL)
+ color_button->priv->image_buffer =
+ fill_image_buffer_from_file (cr, DATADIR "/pixmaps/mate-system-monitor/upload.svg");
+ gtk_widget_set_size_request (widget, 32, 32);
+ cairo_move_to (cr, 16.5, 1.5);
+ cairo_line_to (cr, 29.5, 17.5);
+ cairo_line_to (cr, 23.5, 17.5);
+ cairo_line_to (cr, 23.5, 27.5);
+ cairo_line_to (cr, 8.5, 27.5);
+ cairo_line_to (cr, 8.5, 17.5);
+ cairo_line_to (cr, 2.5, 17.5);
+ cairo_line_to (cr, 15.5, 1.5);
+ cairo_line_to (cr, 16.5, 1.5);
+ cairo_close_path (cr);
+ path = cairo_copy_path (cr);
+ cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE);
+ cairo_set_line_join (cr, CAIRO_LINE_JOIN_MITER);
+ cairo_set_line_width (cr, 1);
+ cairo_fill_preserve (cr);
+ cairo_set_miter_limit (cr, 5.0);
+ cairo_stroke (cr);
+ cairo_set_source_rgba (cr, 0, 0, 0, 0.5);
+ cairo_append_path (cr, path);
+ cairo_path_destroy(path);
+ cairo_stroke (cr);
+ cairo_set_source_surface (cr, color_button->priv->image_buffer, 0.0,
+ 0.0);
+ cairo_paint (cr);
+
+ break;
+ }
+ cairo_destroy (cr);
}
/* Handle exposure events for the color picker's drawing area */
@@ -450,64 +450,64 @@ static gboolean draw (GtkWidget * widget, cairo_t * cr, gpointer data)
static gboolean expose_event (GtkWidget * widget, GdkEventExpose * event, gpointer data)
#endif
{
- render (GTK_WIDGET (data));
+ render (GTK_WIDGET (data));
- return FALSE;
+ return FALSE;
}
static void
gsm_color_button_realize (GtkWidget * widget)
{
- GTK_WIDGET_CLASS (gsm_color_button_parent_class)->realize (widget);
- render (widget);
+ GTK_WIDGET_CLASS (gsm_color_button_parent_class)->realize (widget);
+ render (widget);
}
#if GTK_CHECK_VERSION(3,0,0)
static void gsm_color_button_get_preferred_width (GtkWidget * widget, gint * minimum_width, gint * natural_width)
{
- g_return_if_fail (widget != NULL && minimum_width != NULL && natural_width != NULL);
- g_return_if_fail (GSM_IS_COLOR_BUTTON (widget));
-
- *minimum_width = GSMCP_MIN_WIDTH;
- *natural_width = GSMCP_MIN_WIDTH;
+ g_return_if_fail (widget != NULL && minimum_width != NULL && natural_width != NULL);
+ g_return_if_fail (GSM_IS_COLOR_BUTTON (widget));
+
+ *minimum_width = GSMCP_MIN_WIDTH;
+ *natural_width = GSMCP_MIN_WIDTH;
}
static void gsm_color_button_get_preferred_height (GtkWidget * widget, gint * minimum_height, gint * natural_height)
{
- g_return_if_fail (widget != NULL && minimum_height != NULL && natural_height != NULL);
- g_return_if_fail (GSM_IS_COLOR_BUTTON (widget));
-
- *minimum_height = GSMCP_MIN_HEIGHT;
- *natural_height = GSMCP_MIN_HEIGHT;
+ g_return_if_fail (widget != NULL && minimum_height != NULL && natural_height != NULL);
+ g_return_if_fail (GSM_IS_COLOR_BUTTON (widget));
+
+ *minimum_height = GSMCP_MIN_HEIGHT;
+ *natural_height = GSMCP_MIN_HEIGHT;
}
#else
static void
gsm_color_button_size_request (GtkWidget * widget,
- GtkRequisition * requisition)
+ GtkRequisition * requisition)
{
- g_return_if_fail (widget != NULL || requisition != NULL);
- g_return_if_fail (GSM_IS_COLOR_BUTTON (widget));
+ g_return_if_fail (widget != NULL || requisition != NULL);
+ g_return_if_fail (GSM_IS_COLOR_BUTTON (widget));
- requisition->width = GSMCP_MIN_WIDTH;
- requisition->height = GSMCP_MIN_HEIGHT;
+ requisition->width = GSMCP_MIN_WIDTH;
+ requisition->height = GSMCP_MIN_HEIGHT;
}
#endif
static void
gsm_color_button_size_allocate (GtkWidget * widget,
- GtkAllocation * allocation)
+ GtkAllocation * allocation)
{
- GSMColorButton *color_button;
+ GSMColorButton *color_button;
- g_return_if_fail (widget != NULL || allocation != NULL);
- g_return_if_fail (GSM_IS_COLOR_BUTTON (widget));
+ g_return_if_fail (widget != NULL || allocation != NULL);
+ g_return_if_fail (GSM_IS_COLOR_BUTTON (widget));
- gtk_widget_set_allocation (widget, allocation);
- color_button = GSM_COLOR_BUTTON (widget);
+ gtk_widget_set_allocation (widget, allocation);
+ color_button = GSM_COLOR_BUTTON (widget);
- if (gtk_widget_get_realized (widget))
+ if (gtk_widget_get_realized (widget))
{
- gdk_window_move_resize (gtk_widget_get_window (widget), allocation->x, allocation->y,
- allocation->width, allocation->height);
+ gdk_window_move_resize (gtk_widget_get_window (widget), allocation->x, allocation->y,
+ allocation->width, allocation->height);
}
}
@@ -515,434 +515,434 @@ static void
gsm_color_button_unrealize (GtkWidget * widget)
{
- GTK_WIDGET_CLASS (gsm_color_button_parent_class)->unrealize (widget);
+ GTK_WIDGET_CLASS (gsm_color_button_parent_class)->unrealize (widget);
}
static void
gsm_color_button_style_set (GtkWidget * widget, GtkStyle * previous_style)
{
- GTK_WIDGET_CLASS (gsm_color_button_parent_class)->style_set (widget,
- previous_style);
+ GTK_WIDGET_CLASS (gsm_color_button_parent_class)->style_set (widget,
+ previous_style);
}
static void
gsm_color_button_state_changed (GtkWidget * widget,
- GtkStateType previous_state)
+ GtkStateType previous_state)
{
}
static void
gsm_color_button_drag_data_received (GtkWidget * widget,
- GdkDragContext * context,
- gint x,
- gint y,
- GtkSelectionData * selection_data,
- guint info,
- guint32 time,
- GSMColorButton * color_button)
-{
- gint length;
- guint16 *dropped;
-
- length = gtk_selection_data_get_length (selection_data);
-
- if (length < 0)
- return;
-
- /* We accept drops with the wrong format, since the KDE color
- * chooser incorrectly drops application/x-color with format 8.
- */
- if (length != 8)
+ GdkDragContext * context,
+ gint x,
+ gint y,
+ GtkSelectionData * selection_data,
+ guint info,
+ guint32 time,
+ GSMColorButton * color_button)
+{
+ gint length;
+ guint16 *dropped;
+
+ length = gtk_selection_data_get_length (selection_data);
+
+ if (length < 0)
+ return;
+
+ /* We accept drops with the wrong format, since the KDE color
+ * chooser incorrectly drops application/x-color with format 8.
+ */
+ if (length != 8)
{
- g_warning (_("Received invalid color data\n"));
- return;
+ g_warning (_("Received invalid color data\n"));
+ return;
}
- dropped = (guint16 *) gtk_selection_data_get_data (selection_data);
+ dropped = (guint16 *) gtk_selection_data_get_data (selection_data);
- color_button->priv->color.red = dropped[0];
- color_button->priv->color.green = dropped[1];
- color_button->priv->color.blue = dropped[2];
+ color_button->priv->color.red = dropped[0];
+ color_button->priv->color.green = dropped[1];
+ color_button->priv->color.blue = dropped[2];
- gtk_widget_queue_draw (GTK_WIDGET (&color_button->widget));
+ gtk_widget_queue_draw (GTK_WIDGET (&color_button->widget));
- g_signal_emit (color_button, color_button_signals[COLOR_SET], 0);
+ g_signal_emit (color_button, color_button_signals[COLOR_SET], 0);
- g_object_freeze_notify (G_OBJECT (color_button));
- g_object_notify (G_OBJECT (color_button), "color");
- g_object_thaw_notify (G_OBJECT (color_button));
+ g_object_freeze_notify (G_OBJECT (color_button));
+ g_object_notify (G_OBJECT (color_button), "color");
+ g_object_thaw_notify (G_OBJECT (color_button));
}
static void
set_color_icon (GdkDragContext * context, GdkColor * color)
{
- GdkPixbuf *pixbuf;
- guint32 pixel;
+ GdkPixbuf *pixbuf;
+ guint32 pixel;
- pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, 48, 32);
+ pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, 48, 32);
- pixel = ((color->red & 0xff00) << 16) |
- ((color->green & 0xff00) << 8) | (color->blue & 0xff00);
+ pixel = ((color->red & 0xff00) << 16) |
+ ((color->green & 0xff00) << 8) | (color->blue & 0xff00);
- gdk_pixbuf_fill (pixbuf, pixel);
+ gdk_pixbuf_fill (pixbuf, pixel);
- gtk_drag_set_icon_pixbuf (context, pixbuf, -2, -2);
- g_object_unref (pixbuf);
+ gtk_drag_set_icon_pixbuf (context, pixbuf, -2, -2);
+ g_object_unref (pixbuf);
}
static void
gsm_color_button_drag_begin (GtkWidget * widget,
- GdkDragContext * context, gpointer data)
+ GdkDragContext * context, gpointer data)
{
- GSMColorButton *color_button = data;
+ GSMColorButton *color_button = data;
- set_color_icon (context, &color_button->priv->color);
+ set_color_icon (context, &color_button->priv->color);
}
static void
gsm_color_button_drag_data_get (GtkWidget * widget,
- GdkDragContext * context,
- GtkSelectionData * selection_data,
- guint info,
- guint time, GSMColorButton * color_button)
+ GdkDragContext * context,
+ GtkSelectionData * selection_data,
+ guint info,
+ guint time, GSMColorButton * color_button)
{
- guint16 dropped[4];
+ guint16 dropped[4];
- dropped[0] = color_button->priv->color.red;
- dropped[1] = color_button->priv->color.green;
- dropped[2] = color_button->priv->color.blue;
- dropped[3] = 65535; // This widget doesn't care about alpha
+ dropped[0] = color_button->priv->color.red;
+ dropped[1] = color_button->priv->color.green;
+ dropped[2] = color_button->priv->color.blue;
+ dropped[3] = 65535; // This widget doesn't care about alpha
- gtk_selection_data_set (selection_data, gtk_selection_data_get_target (selection_data),
- 16, (guchar *) dropped, 8);
+ gtk_selection_data_set (selection_data, gtk_selection_data_get_target (selection_data),
+ 16, (guchar *) dropped, 8);
}
static void
gsm_color_button_init (GSMColorButton * color_button)
{
- color_button->priv = GSM_COLOR_BUTTON_GET_PRIVATE (color_button);
-
- color_button->priv->color.red = 0;
- color_button->priv->color.green = 0;
- color_button->priv->color.blue = 0;
- color_button->priv->fraction = 0.5;
- color_button->priv->type = GSMCP_TYPE_CPU;
- color_button->priv->image_buffer = NULL;
- color_button->priv->title = g_strdup (_("Pick a Color")); /* default title */
-
- gtk_drag_dest_set (GTK_WIDGET (color_button),
- GTK_DEST_DEFAULT_MOTION |
- GTK_DEST_DEFAULT_HIGHLIGHT |
- GTK_DEST_DEFAULT_DROP, drop_types, 1, GDK_ACTION_COPY);
- gtk_drag_source_set (GTK_WIDGET (color_button),
- GDK_BUTTON1_MASK | GDK_BUTTON3_MASK,
- drop_types, 1, GDK_ACTION_COPY);
- g_signal_connect (color_button, "drag_begin",
- G_CALLBACK (gsm_color_button_drag_begin), color_button);
- g_signal_connect (color_button, "drag_data_received",
- G_CALLBACK (gsm_color_button_drag_data_received),
- color_button);
- g_signal_connect (color_button, "drag_data_get",
- G_CALLBACK (gsm_color_button_drag_data_get),
- color_button);
-
- gtk_widget_add_events (GTK_WIDGET(color_button), GDK_ENTER_NOTIFY_MASK
- | GDK_LEAVE_NOTIFY_MASK);
-
- gtk_widget_set_tooltip_text (GTK_WIDGET(color_button), _("Click to set graph colors"));
+ color_button->priv = GSM_COLOR_BUTTON_GET_PRIVATE (color_button);
+
+ color_button->priv->color.red = 0;
+ color_button->priv->color.green = 0;
+ color_button->priv->color.blue = 0;
+ color_button->priv->fraction = 0.5;
+ color_button->priv->type = GSMCP_TYPE_CPU;
+ color_button->priv->image_buffer = NULL;
+ color_button->priv->title = g_strdup (_("Pick a Color")); /* default title */
+
+ gtk_drag_dest_set (GTK_WIDGET (color_button),
+ GTK_DEST_DEFAULT_MOTION |
+ GTK_DEST_DEFAULT_HIGHLIGHT |
+ GTK_DEST_DEFAULT_DROP, drop_types, 1, GDK_ACTION_COPY);
+ gtk_drag_source_set (GTK_WIDGET (color_button),
+ GDK_BUTTON1_MASK | GDK_BUTTON3_MASK,
+ drop_types, 1, GDK_ACTION_COPY);
+ g_signal_connect (color_button, "drag_begin",
+ G_CALLBACK (gsm_color_button_drag_begin), color_button);
+ g_signal_connect (color_button, "drag_data_received",
+ G_CALLBACK (gsm_color_button_drag_data_received),
+ color_button);
+ g_signal_connect (color_button, "drag_data_get",
+ G_CALLBACK (gsm_color_button_drag_data_get),
+ color_button);
+
+ gtk_widget_add_events (GTK_WIDGET(color_button), GDK_ENTER_NOTIFY_MASK
+ | GDK_LEAVE_NOTIFY_MASK);
+
+ gtk_widget_set_tooltip_text (GTK_WIDGET(color_button), _("Click to set graph colors"));
#if GTK_CHECK_VERSION(3,0,0)
- g_signal_connect (color_button, "draw", G_CALLBACK (draw), color_button);
+ g_signal_connect (color_button, "draw", G_CALLBACK (draw), color_button);
#else
- g_signal_connect (color_button, "expose-event", G_CALLBACK (expose_event), color_button);
+ g_signal_connect (color_button, "expose-event", G_CALLBACK (expose_event), color_button);
#endif
}
static void
gsm_color_button_finalize (GObject * object)
{
- GSMColorButton *color_button = GSM_COLOR_BUTTON (object);
+ GSMColorButton *color_button = GSM_COLOR_BUTTON (object);
- if (color_button->priv->cs_dialog != NULL)
- gtk_widget_destroy (color_button->priv->cs_dialog);
- color_button->priv->cs_dialog = NULL;
+ if (color_button->priv->cs_dialog != NULL)
+ gtk_widget_destroy (color_button->priv->cs_dialog);
+ color_button->priv->cs_dialog = NULL;
- g_free (color_button->priv->title);
- color_button->priv->title = NULL;
+ g_free (color_button->priv->title);
+ color_button->priv->title = NULL;
- cairo_surface_destroy (color_button->priv->image_buffer);
- color_button->priv->image_buffer = NULL;
+ cairo_surface_destroy (color_button->priv->image_buffer);
+ color_button->priv->image_buffer = NULL;
- G_OBJECT_CLASS (gsm_color_button_parent_class)->finalize (object);
+ G_OBJECT_CLASS (gsm_color_button_parent_class)->finalize (object);
}
GtkWidget *
gsm_color_button_new (const GdkColor * color, guint type)
{
- return g_object_new (GSM_TYPE_COLOR_BUTTON, "color", color, "type", type,
- NULL);
+ return g_object_new (GSM_TYPE_COLOR_BUTTON, "color", color, "type", type,
+ NULL);
}
static void
dialog_response (GtkWidget * widget, GtkResponseType response, gpointer data)
{
- GSMColorButton *color_button = GSM_COLOR_BUTTON (data);
- GtkColorSelection *color_selection;
+ GSMColorButton *color_button = GSM_COLOR_BUTTON (data);
+ GtkColorSelection *color_selection;
- if (response == GTK_RESPONSE_OK) {
- color_selection =
- GTK_COLOR_SELECTION (gtk_color_selection_dialog_get_color_selection (GTK_COLOR_SELECTION_DIALOG
- (color_button->priv->cs_dialog)));
+ if (response == GTK_RESPONSE_OK) {
+ color_selection =
+ GTK_COLOR_SELECTION (gtk_color_selection_dialog_get_color_selection (GTK_COLOR_SELECTION_DIALOG
+ (color_button->priv->cs_dialog)));
- gtk_color_selection_get_current_color (color_selection,
- &color_button->priv->color);
+ gtk_color_selection_get_current_color (color_selection,
+ &color_button->priv->color);
- gtk_widget_hide (color_button->priv->cs_dialog);
+ gtk_widget_hide (color_button->priv->cs_dialog);
- gtk_widget_queue_draw (GTK_WIDGET (&color_button->widget));
+ gtk_widget_queue_draw (GTK_WIDGET (&color_button->widget));
- g_signal_emit (color_button, color_button_signals[COLOR_SET], 0);
+ g_signal_emit (color_button, color_button_signals[COLOR_SET], 0);
- g_object_freeze_notify (G_OBJECT (color_button));
- g_object_notify (G_OBJECT (color_button), "color");
- g_object_thaw_notify (G_OBJECT (color_button));
- }
- else /* (response == GTK_RESPONSE_CANCEL) */
- gtk_widget_hide (color_button->priv->cs_dialog);
+ g_object_freeze_notify (G_OBJECT (color_button));
+ g_object_notify (G_OBJECT (color_button), "color");
+ g_object_thaw_notify (G_OBJECT (color_button));
+ }
+ else /* (response == GTK_RESPONSE_CANCEL) */
+ gtk_widget_hide (color_button->priv->cs_dialog);
}
static gboolean
dialog_destroy (GtkWidget * widget, gpointer data)
{
- GSMColorButton *color_button = GSM_COLOR_BUTTON (data);
+ GSMColorButton *color_button = GSM_COLOR_BUTTON (data);
- color_button->priv->cs_dialog = NULL;
+ color_button->priv->cs_dialog = NULL;
- return FALSE;
+ return FALSE;
}
static gint
gsm_color_button_clicked (GtkWidget * widget, GdkEventButton * event)
{
- GSMColorButton *color_button = GSM_COLOR_BUTTON (widget);
- GtkColorSelectionDialog *color_dialog;
+ GSMColorButton *color_button = GSM_COLOR_BUTTON (widget);
+ GtkColorSelectionDialog *color_dialog;
- /* if dialog already exists, make sure it's shown and raised */
- if (!color_button->priv->cs_dialog)
+ /* if dialog already exists, make sure it's shown and raised */
+ if (!color_button->priv->cs_dialog)
{
- /* Create the dialog and connects its buttons */
- GtkWidget *parent;
+ /* Create the dialog and connects its buttons */
+ GtkWidget *parent;
- parent = gtk_widget_get_toplevel (GTK_WIDGET (color_button));
+ parent = gtk_widget_get_toplevel (GTK_WIDGET (color_button));
- color_button->priv->cs_dialog =
- gtk_color_selection_dialog_new (color_button->priv->title);
+ color_button->priv->cs_dialog =
+ gtk_color_selection_dialog_new (color_button->priv->title);
- color_dialog =
- GTK_COLOR_SELECTION_DIALOG (color_button->priv->cs_dialog);
+ color_dialog =
+ GTK_COLOR_SELECTION_DIALOG (color_button->priv->cs_dialog);
- if (gtk_widget_is_toplevel (parent) && GTK_IS_WINDOW (parent))
- {
- if (GTK_WINDOW (parent) !=
- gtk_window_get_transient_for (GTK_WINDOW (color_dialog)))
- gtk_window_set_transient_for (GTK_WINDOW (color_dialog),
- GTK_WINDOW (parent));
+ if (gtk_widget_is_toplevel (parent) && GTK_IS_WINDOW (parent))
+ {
+ if (GTK_WINDOW (parent) !=
+ gtk_window_get_transient_for (GTK_WINDOW (color_dialog)))
+ gtk_window_set_transient_for (GTK_WINDOW (color_dialog),
+ GTK_WINDOW (parent));
- gtk_window_set_modal (GTK_WINDOW (color_dialog),
- gtk_window_get_modal (GTK_WINDOW (parent)));
- }
+ gtk_window_set_modal (GTK_WINDOW (color_dialog),
+ gtk_window_get_modal (GTK_WINDOW (parent)));
+ }
- g_signal_connect (color_dialog, "response",
- G_CALLBACK (dialog_response), color_button);
+ g_signal_connect (color_dialog, "response",
+ G_CALLBACK (dialog_response), color_button);
- g_signal_connect (color_dialog, "destroy",
- G_CALLBACK (dialog_destroy), color_button);
+ g_signal_connect (color_dialog, "destroy",
+ G_CALLBACK (dialog_destroy), color_button);
}
- color_dialog = GTK_COLOR_SELECTION_DIALOG (color_button->priv->cs_dialog);
+ color_dialog = GTK_COLOR_SELECTION_DIALOG (color_button->priv->cs_dialog);
- gtk_color_selection_set_previous_color (GTK_COLOR_SELECTION
- (gtk_color_selection_dialog_get_color_selection (color_dialog)),
- &color_button->priv->color);
+ gtk_color_selection_set_previous_color (GTK_COLOR_SELECTION
+ (gtk_color_selection_dialog_get_color_selection (color_dialog)),
+ &color_button->priv->color);
- gtk_color_selection_set_current_color (GTK_COLOR_SELECTION
- (gtk_color_selection_dialog_get_color_selection (color_dialog)),
- &color_button->priv->color);
+ gtk_color_selection_set_current_color (GTK_COLOR_SELECTION
+ (gtk_color_selection_dialog_get_color_selection (color_dialog)),
+ &color_button->priv->color);
- gtk_window_present (GTK_WINDOW (color_button->priv->cs_dialog));
- return 0;
+ gtk_window_present (GTK_WINDOW (color_button->priv->cs_dialog));
+ return 0;
}
static gboolean
gsm_color_button_enter_notify (GtkWidget * widget, GdkEventCrossing * event)
{
- GSMColorButton *color_button = GSM_COLOR_BUTTON (widget);
- color_button->priv->highlight = 1.0;
- gtk_widget_queue_draw(widget);
- return FALSE;
+ GSMColorButton *color_button = GSM_COLOR_BUTTON (widget);
+ color_button->priv->highlight = 1.0;
+ gtk_widget_queue_draw(widget);
+ return FALSE;
}
static gboolean
gsm_color_button_leave_notify (GtkWidget * widget, GdkEventCrossing * event)
{
- GSMColorButton *color_button = GSM_COLOR_BUTTON (widget);
- color_button->priv->highlight = 0;
- gtk_widget_queue_draw(widget);
- return FALSE;
+ GSMColorButton *color_button = GSM_COLOR_BUTTON (widget);
+ color_button->priv->highlight = 0;
+ gtk_widget_queue_draw(widget);
+ return FALSE;
}
guint
gsm_color_button_get_cbtype (GSMColorButton * color_button)
{
- g_return_val_if_fail (GSM_IS_COLOR_BUTTON (color_button), 0);
+ g_return_val_if_fail (GSM_IS_COLOR_BUTTON (color_button), 0);
- return color_button->priv->type;
+ return color_button->priv->type;
}
void
gsm_color_button_set_cbtype (GSMColorButton * color_button, guint type)
{
- g_return_if_fail (GSM_IS_COLOR_BUTTON (color_button));
+ g_return_if_fail (GSM_IS_COLOR_BUTTON (color_button));
- color_button->priv->type = type;
+ color_button->priv->type = type;
- gtk_widget_queue_draw (GTK_WIDGET (&color_button->widget));
+ gtk_widget_queue_draw (GTK_WIDGET (&color_button->widget));
- g_object_notify (G_OBJECT (color_button), "type");
+ g_object_notify (G_OBJECT (color_button), "type");
}
gdouble
gsm_color_button_get_fraction (GSMColorButton * color_button)
{
- g_return_val_if_fail (GSM_IS_COLOR_BUTTON (color_button), 0);
+ g_return_val_if_fail (GSM_IS_COLOR_BUTTON (color_button), 0);
- return color_button->priv->fraction;
+ return color_button->priv->fraction;
}
void
gsm_color_button_set_fraction (GSMColorButton * color_button,
- gdouble fraction)
+ gdouble fraction)
{
- g_return_if_fail (GSM_IS_COLOR_BUTTON (color_button));
+ g_return_if_fail (GSM_IS_COLOR_BUTTON (color_button));
- color_button->priv->fraction = fraction;
+ color_button->priv->fraction = fraction;
- gtk_widget_queue_draw (GTK_WIDGET (&color_button->widget));
+ gtk_widget_queue_draw (GTK_WIDGET (&color_button->widget));
- g_object_notify (G_OBJECT (color_button), "fraction");
+ g_object_notify (G_OBJECT (color_button), "fraction");
}
void
gsm_color_button_get_color (GSMColorButton * color_button, GdkColor * color)
{
- g_return_if_fail (GSM_IS_COLOR_BUTTON (color_button));
+ g_return_if_fail (GSM_IS_COLOR_BUTTON (color_button));
- color->red = color_button->priv->color.red;
- color->green = color_button->priv->color.green;
- color->blue = color_button->priv->color.blue;
+ color->red = color_button->priv->color.red;
+ color->green = color_button->priv->color.green;
+ color->blue = color_button->priv->color.blue;
}
void
gsm_color_button_set_color (GSMColorButton * color_button,
- const GdkColor * color)
+ const GdkColor * color)
{
- g_return_if_fail (GSM_IS_COLOR_BUTTON (color_button));
- g_return_if_fail (color != NULL);
+ g_return_if_fail (GSM_IS_COLOR_BUTTON (color_button));
+ g_return_if_fail (color != NULL);
- color_button->priv->color.red = color->red;
- color_button->priv->color.green = color->green;
- color_button->priv->color.blue = color->blue;
+ color_button->priv->color.red = color->red;
+ color_button->priv->color.green = color->green;
+ color_button->priv->color.blue = color->blue;
- gtk_widget_queue_draw (GTK_WIDGET (&color_button->widget)); //->priv->draw_area);
+ gtk_widget_queue_draw (GTK_WIDGET (&color_button->widget)); //->priv->draw_area);
- g_object_notify (G_OBJECT (color_button), "color");
+ g_object_notify (G_OBJECT (color_button), "color");
}
void
gsm_color_button_set_title (GSMColorButton * color_button,
- const gchar * title)
+ const gchar * title)
{
- gchar *old_title;
+ gchar *old_title;
- g_return_if_fail (GSM_IS_COLOR_BUTTON (color_button));
+ g_return_if_fail (GSM_IS_COLOR_BUTTON (color_button));
- old_title = color_button->priv->title;
- color_button->priv->title = g_strdup (title);
- g_free (old_title);
+ old_title = color_button->priv->title;
+ color_button->priv->title = g_strdup (title);
+ g_free (old_title);
- if (color_button->priv->cs_dialog)
- gtk_window_set_title (GTK_WINDOW (color_button->priv->cs_dialog),
- color_button->priv->title);
+ if (color_button->priv->cs_dialog)
+ gtk_window_set_title (GTK_WINDOW (color_button->priv->cs_dialog),
+ color_button->priv->title);
- g_object_notify (G_OBJECT (color_button), "title");
+ g_object_notify (G_OBJECT (color_button), "title");
}
const gchar* gsm_color_button_get_title(GSMColorButton* color_button)
{
- g_return_val_if_fail(GSM_IS_COLOR_BUTTON(color_button), NULL);
+ g_return_val_if_fail(GSM_IS_COLOR_BUTTON(color_button), NULL);
- return color_button->priv->title;
+ return color_button->priv->title;
}
static void
gsm_color_button_set_property (GObject * object,
- guint param_id,
- const GValue * value, GParamSpec * pspec)
+ guint param_id,
+ const GValue * value, GParamSpec * pspec)
{
- GSMColorButton *color_button = GSM_COLOR_BUTTON (object);
+ GSMColorButton *color_button = GSM_COLOR_BUTTON (object);
- switch (param_id)
+ switch (param_id)
{
- case PROP_PERCENTAGE:
- gsm_color_button_set_fraction (color_button,
- g_value_get_double (value));
- break;
- case PROP_TITLE:
- gsm_color_button_set_title (color_button, g_value_get_string (value));
- break;
- case PROP_COLOR:
- gsm_color_button_set_color (color_button, g_value_get_boxed (value));
- break;
- case PROP_TYPE:
- gsm_color_button_set_cbtype (color_button, g_value_get_uint (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
- break;
+ case PROP_PERCENTAGE:
+ gsm_color_button_set_fraction (color_button,
+ g_value_get_double (value));
+ break;
+ case PROP_TITLE:
+ gsm_color_button_set_title (color_button, g_value_get_string (value));
+ break;
+ case PROP_COLOR:
+ gsm_color_button_set_color (color_button, g_value_get_boxed (value));
+ break;
+ case PROP_TYPE:
+ gsm_color_button_set_cbtype (color_button, g_value_get_uint (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
+ break;
}
}
static void
gsm_color_button_get_property (GObject * object,
- guint param_id,
- GValue * value, GParamSpec * pspec)
+ guint param_id,
+ GValue * value, GParamSpec * pspec)
{
- GSMColorButton *color_button = GSM_COLOR_BUTTON (object);
- GdkColor color;
+ GSMColorButton *color_button = GSM_COLOR_BUTTON (object);
+ GdkColor color;
- switch (param_id)
+ switch (param_id)
{
- case PROP_PERCENTAGE:
- g_value_set_double (value,
- gsm_color_button_get_fraction (color_button));
- break;
- case PROP_TITLE:
- g_value_set_string (value, gsm_color_button_get_title (color_button));
- break;
- case PROP_COLOR:
- gsm_color_button_get_color (color_button, &color);
- g_value_set_boxed (value, &color);
- break;
- case PROP_TYPE:
- g_value_set_uint (value, gsm_color_button_get_cbtype (color_button));
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
- break;
+ case PROP_PERCENTAGE:
+ g_value_set_double (value,
+ gsm_color_button_get_fraction (color_button));
+ break;
+ case PROP_TITLE:
+ g_value_set_string (value, gsm_color_button_get_title (color_button));
+ break;
+ case PROP_COLOR:
+ gsm_color_button_get_color (color_button, &color);
+ g_value_set_boxed (value, &color);
+ break;
+ case PROP_TYPE:
+ g_value_set_uint (value, gsm_color_button_get_cbtype (color_button));
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
+ break;
}
}