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 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