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