Ktam3874/pitx software guide – Kontron KTAM3874-pITX User Manual
Page 167

KTD-S0057-I
Page 163 Linux® Programming Examples (DebianTM)
KTAM3874/pITX Software Guide
static gboolean cairo_draw_event (GtkWidget *parent, cairo_t *cr, gpointer data)
{
GdkColor
col;
double width = (double) gtk_widget_get_allocated_width (parent),
height,
radius,
radius0 = TENTH(width),
radius1 = HALF(width);
cairo_pattern_t
*pat;
height = (double) gtk_widget_get_allocated_height (parent);
if (! (gint) (radius = (double) radius_dialog_value (FALSE, 0)))
radius = (double) radius_dialog_value (TRUE, INITRADIUS);
pat = cairo_pattern_create_linear (ZERO, ZERO, ZERO, height);
gdk_color_parse (RECT_COL2, &col);
cairo_pattern_add_color_stop_rgba (pat, ONE, COL(col.red), COL(col.green), COL(col.blue), ONE);
gdk_color_parse (RECT_COL1, &col);
cairo_pattern_add_color_stop_rgba (pat, ZERO, COL(col.red), COL(col.green), COL(col.blue), ONE);
cairo_rectangle (cr, ZERO, ZERO, width, height);
cairo_set_source (cr, pat);
cairo_fill
(cr);
cairo_pattern_destroy
(pat);
pat = cairo_pattern_create_radial (HALF(width), FOURTEENTH(height), radius0, FOURTEENTH(width),
FOURTEENTH(height),
radius1);
gdk_color_parse (SPHERE_COL1, &col);
cairo_pattern_add_color_stop_rgba (pat, ZERO, COL(col.red), COL(col.green), COL(col.blue), ONE);
gdk_color_parse (SPHERE_COL2, &col);
cairo_pattern_add_color_stop_rgba (pat, ONE, COL(col.red), COL(col.green), COL(col.blue), ONE);
cairo_set_source (cr, pat);
cairo_arc (cr, HALF(width), HALF(height), radius, 0, 2 * G_PI);
cairo_fill
(cr);
gdk_color_parse (CAIRO_TEXTCOL, &col);
cairo_set_source_rgb (cr, COL(col.red), COL(col.green), COL(col.blue));
cairo_select_font_face (cr, CAIRO_FONT, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
cairo_set_font_size (cr, FONT_SIZE);
cairo_move_to (cr, TENTH(width), HALF(height) + QUART(FONT_SIZE));
cairo_show_text (cr, CAIRO_TXT);
cairo_stroke
(cr);
cairo_pattern_destroy
(pat);
return
FALSE;
}
static GtkWidget * create_environment (GtkWidget *win)
{
GtkWidget
*vb;
vb = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
gtk_container_add (GTK_CONTAINER (win), vb);
return
vb;
}