| 12
 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
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 
 | #include <pango/pango.h>
#include <gtk/gtk.h>
#include <stdlib.h>
#include <stdio.h>
 
void cb_expose_event (GtkWidget *, gpointer);
 
int main (int argc, char **argv)
{
    GtkWidget *p_main_window = NULL;
    GtkWidget *p_drawing_area = NULL;
 
    gtk_init (&argc, &argv);
    p_main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_default_size(GTK_WINDOW(p_main_window), 640, 480);
 
    p_drawing_area = gtk_drawing_area_new ();
    g_signal_connect (G_OBJECT (p_drawing_area), "expose_event",G_CALLBACK (cb_expose_event), NULL);
    gtk_container_add (GTK_CONTAINER (p_main_window), p_drawing_area);
    gtk_widget_show_all (p_main_window);
    gtk_main ();
    return 0;
}
 
void cb_expose_event (GtkWidget *p_widget, gpointer user_data)
{
    GdkGC *gc;
    int w;
    GdkPoint points[3];
    GdkPoint points2[3];
    char tab[]="Hello";
 
    GdkColor colors[2];
    GdkGC *color_gc = gdk_gc_new (p_widget->window);
 
    colors[0].red = 0;
    colors[0].green = 0;
    colors[0].blue = 0;
 
    colors[1].red = 5000;
    colors[1].green = 0;
    colors[1].blue = 65000;
    gdk_colormap_alloc_color (gdk_colormap_get_system(), &colors[0], FALSE, TRUE);
    gdk_colormap_alloc_color (gdk_colormap_get_system(), &colors[1], FALSE, TRUE);
 
    gdk_gc_set_foreground (color_gc, &colors[0]);
 
        points[0].x=0;
        points[0].y=0;
        points[1].x=0;
        points[1].y=200;
        points[2].x=200;
        points[2].y=300;
        points2[0].x=0;
        points2[0].y=0;
        points2[1].x=200;
        points2[1].y=300;
        points2[2].x=100;
        points2[2].y=300;
        gc=p_widget->style->fg_gc[GTK_WIDGET_STATE (p_widget)];
        //gdk_gc_set_rgb_bg_color(gc,&color);
        PangoContext *p_context = NULL;
        PangoLayout *p_layout = NULL;
        p_context = gtk_widget_get_pango_context (p_widget);
        p_layout = pango_layout_new (p_context);
        //pango_layout_set_indent(p_layout,-100);
        pango_layout_set_alignment(p_layout, PANGO_ALIGN_CENTER);
        pango_layout_set_text (p_layout, tab, -1);
        pango_layout_set_text (p_layout, "salut", 5);
        gdk_draw_layout (p_widget->window,p_widget->style->fg_gc[GTK_WIDGET_STATE (p_widget)],0,0,p_layout);
//        gdk_draw_line(p_widget->window,gc,(points[0].x),(points[0].y),(points[1].x),(points[1].y));
        gdk_draw_lines(p_widget->window,color_gc,points,3);
        gdk_gc_set_foreground (color_gc, &colors[1]);
 
        gdk_draw_lines(p_widget->window,color_gc,points2,3);
        gdk_draw_arc(p_widget->window,color_gc,FALSE,200,200,10,150,0,360*64);
 
        gdk_colormap_free_colors (gdk_colormap_get_system(),colors,2);
        //gtk_widget_queue_draw( aire_de_dessin )
        g_object_unref (p_layout);
 
        (void)user_data;
    } | 
Partager