static void gtk_cpu_paint(GtkWidget *widget) { cairo_t *cr; cr = gdk_cairo_create(widget->window); cairo_translate(cr, 0, 7); cairo_set_source_rgb(cr, 0, 0, 0); cairo_paint(cr); gint pos = GTK_CPU(widget)->sel; gint rect = pos / 5; cairo_set_source_rgb(cr, 0.2, 0.4, 0); gint i; for (i = 1; i <= 20; i++) { if (i > 20 - rect) { cairo_set_source_rgb(cr, 0.6, 1.0, 0); } else { cairo_set_source_rgb(cr, 0.2, 0.4, 0); } cairo_rectangle(cr, 8, i*4, 30, 3); cairo_rectangle(cr, 42, i*4, 30, 3); cairo_fill(cr); } cairo_destroy(cr); }
static void set_value(GtkWidget * widget, gpointer data) { GdkRegion *region; GtkRange *range = (GtkRange *) widget; GtkWidget *cpu = (GtkWidget *) data; GTK_CPU(cpu)->sel = gtk_range_get_value(range); region = gdk_drawable_get_clip_region(cpu->window); gdk_window_invalidate_region(cpu->window, region, TRUE); gdk_window_process_updates(cpu->window, TRUE); }
static void gtk_cpu_destroy(GtkObject *object) { GtkCpu *cpu; GtkCpuClass *klass; g_return_if_fail(object != NULL); g_return_if_fail(GTK_IS_CPU(object)); cpu = GTK_CPU(object); klass = gtk_type_class(gtk_widget_get_type()); if (GTK_OBJECT_CLASS(klass)->destroy) { (*GTK_OBJECT_CLASS(klass)->destroy) (object); } }