예제 #1
0
파일: cpu.c 프로젝트: d1v0id/GtkLessons
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);
}
예제 #2
0
파일: main.c 프로젝트: AlexKordic/sandbox
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);
}
예제 #3
0
파일: cpu.c 프로젝트: d1v0id/GtkLessons
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);
    }
}