1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
void draw_cb(GtkWidget *drawArea, GdkEventExpose *event, gpointer userData)
{
APPLICATION *pApp = (APPLICATION*)userData;
static int wScrn, hScrn = 0;
if (pPixmap == NULL || wScrn != drawArea->allocation.width || hScrn != drawArea->allocation.height)
{
wScrn = drawArea->allocation.width;
hScrn = drawArea->allocation.height;
pPixmap = gdk_pixmap_new(drawArea->window, wScrn, hScrn, -1);//
gdk_draw_rectangle(pPixmap, drawArea->style->white_gc, TRUE, 0, 0, wScrn, hScrn);
}
gdk_draw_drawable(drawArea->window, drawArea->style->fg_gc[GTK_WIDGET_STATE (drawArea)],
pPixmap, event->area.x, event->area.y,
event->area.x, event->area.y,
event->area.width, event->area.height);
PangoContext *pContext = gtk_widget_get_pango_context(drawArea);
PangoLayout *pLayout = pango_layout_new(pContext);
pango_layout_set_text (pLayout, "Test Draw", 10);
int i;
for(i = 0; i < 30; i++)
{
gdk_draw_layout (drawArea->window, drawArea->style->fg_gc[GTK_WIDGET_STATE(drawArea)],
0,i * 15, pLayout);
}
gtk_widget_set_size_request (pApp->pDrawArea, drawArea->allocation.width, i * 15);
g_object_unref(pLayout);
} |
Partager