static void override_style(GtkWidget* widget, GtkStyle* previous_style) { GtkStateType state; GtkStyle* style; GdkColor fg; GdkColor bg; style = gtk_style_copy(widget->style); if (previous_style == NULL || (previous_style != NULL && (previous_style->bg[GTK_STATE_NORMAL].red != style->bg[GTK_STATE_NORMAL].red || previous_style->bg[GTK_STATE_NORMAL].green != style->bg[GTK_STATE_NORMAL].green || previous_style->bg[GTK_STATE_NORMAL].blue != style->bg[GTK_STATE_NORMAL].blue))) { state = (GtkStateType) 0; while (state < (GtkStateType) G_N_ELEMENTS(widget->style->bg)) { color_reverse(&style->bg[state], &bg); gtk_widget_modify_bg(widget, state, &bg); state++; } } if (previous_style == NULL || (previous_style != NULL && (previous_style->fg[GTK_STATE_NORMAL].red != style->fg[GTK_STATE_NORMAL].red || previous_style->fg[GTK_STATE_NORMAL].green != style->fg[GTK_STATE_NORMAL].green || previous_style->fg[GTK_STATE_NORMAL].blue != style->fg[GTK_STATE_NORMAL].blue))) { state = (GtkStateType) 0; while (state < (GtkStateType) G_N_ELEMENTS(widget->style->fg)) { color_reverse(&style->fg[state], &fg); gtk_widget_modify_fg(widget, state, &fg); state++; } } g_object_unref(style); }
static void draw_volume_boxes (GsdMediaKeysWindow *window, cairo_t *cr, double percentage, double _x0, double _y0, double width, double height) { gdouble x1; GdkColor color; double r, g, b; GtkStyle *style; _x0 += 0.5; _y0 += 0.5; height = round (height) - 1; width = round (width) - 1; x1 = round ((width - 1) * percentage); style = gtk_widget_get_style (GTK_WIDGET (window)); /* bar background */ color_reverse (&style->dark[GTK_STATE_NORMAL], &color); r = (float)color.red / 65535.0; g = (float)color.green / 65535.0; b = (float)color.blue / 65535.0; rounded_rectangle (cr, 1.0, _x0, _y0, height / 6, width, height); cairo_set_source_rgba (cr, r, g, b, FG_ALPHA / 2); cairo_fill_preserve (cr); /* bar border */ color_reverse (&style->light[GTK_STATE_NORMAL], &color); r = (float)color.red / 65535.0; g = (float)color.green / 65535.0; b = (float)color.blue / 65535.0; cairo_set_source_rgba (cr, r, g, b, FG_ALPHA / 2); cairo_set_line_width (cr, 1); cairo_stroke (cr); /* bar progress */ if (percentage < 0.01) return; color = style->bg[GTK_STATE_NORMAL]; r = (float)color.red / 65535.0; g = (float)color.green / 65535.0; b = (float)color.blue / 65535.0; rounded_rectangle (cr, 1.0, _x0 + 0.5, _y0 + 0.5, height / 6 - 0.5, x1, height - 1); cairo_set_source_rgba (cr, r, g, b, FG_ALPHA); cairo_fill (cr); }
static gboolean draw_box_back (GtkWidget *widget, cairo_t *cr, gpointer user_data) { GtkStyleContext *context; GdkRGBA acolor; int width; int height; context = gtk_widget_get_style_context (widget); width = gtk_widget_get_allocated_width (widget); height = gtk_widget_get_allocated_height (widget); cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE); cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0); cairo_paint (cr); draw_rounded_rectangle (cr, 1.0, 0.0, 0.0, height/10, width-1, height-1); gtk_style_context_get_background_color (context, GTK_STATE_NORMAL, &acolor); color_reverse (&acolor); acolor.alpha = BACKGROUND_ALPHA; gdk_cairo_set_source_rgba (cr, &acolor); cairo_fill(cr); return FALSE; }
void tup_show_message(const char *s) { const char *tup = " tup "; clear_progress(); color_set(stdout); /* If we get to the end, show a green bar instead of grey. */ if(cur_phase == 5) printf("[%s%s%s] ", color_final(), tup, color_end()); else printf("[%s%.*s%s%.*s] ", color_reverse(), cur_phase, tup, color_end(), 5-cur_phase, tup+cur_phase); timespan_end(&main_ts); if(display_job_time) printf("[%.3fs] ", timespan_seconds(&main_ts)); printf("%s", s); }
static gboolean on_expose_event (GtkWidget *widget, GdkEventExpose *event, GsdMediaKeysWindow *window) { cairo_t *context; cairo_t *cr; cairo_surface_t *surface; int width; int height; GtkStyle *style; GdkColor color; double r, g, b; context = gdk_cairo_create (gtk_widget_get_window (widget)); style = gtk_widget_get_style (widget); cairo_set_operator (context, CAIRO_OPERATOR_SOURCE); gtk_window_get_size (GTK_WINDOW (widget), &width, &height); surface = cairo_surface_create_similar (cairo_get_target (context), CAIRO_CONTENT_COLOR_ALPHA, width, height); if (cairo_surface_status (surface) != CAIRO_STATUS_SUCCESS) { goto done; } cr = cairo_create (surface); if (cairo_status (cr) != CAIRO_STATUS_SUCCESS) { goto done; } cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0); cairo_set_operator (cr, CAIRO_OPERATOR_OVER); cairo_paint (cr); /* draw a box */ rounded_rectangle (cr, 1.0, 0.5, 0.5, height / 10, width-1, height-1); color_reverse (&style->bg[GTK_STATE_NORMAL], &color); r = (float)color.red / 65535.0; g = (float)color.green / 65535.0; b = (float)color.blue / 65535.0; cairo_set_source_rgba (cr, r, g, b, BG_ALPHA); cairo_fill_preserve (cr); color_reverse (&style->text_aa[GTK_STATE_NORMAL], &color); r = (float)color.red / 65535.0; g = (float)color.green / 65535.0; b = (float)color.blue / 65535.0; cairo_set_source_rgba (cr, r, g, b, BG_ALPHA / 2); cairo_set_line_width (cr, 1); cairo_stroke (cr); /* draw action */ draw_action (window, cr); cairo_destroy (cr); /* Make sure we have a transparent background */ cairo_rectangle (context, 0, 0, width, height); cairo_set_source_rgba (context, 0.0, 0.0, 0.0, 0.0); cairo_fill (context); cairo_set_source_surface (context, surface, 0, 0); cairo_paint_with_alpha (context, window->priv->fade_out_alpha); done: if (surface != NULL) { cairo_surface_destroy (surface); } cairo_destroy (context); return FALSE; }