[GTK+] 線を描画する
とりあえずウィンドウ内に線を引いてみた。
時間がないので説明は明日以降で(ぉぃ
1 #include <gtk/gtk.h> 2 3 static void destroy(GtkWidget *window, gpointer data) 4 { 5 gtk_main_quit(); 6 } 7 8 void draw_point(GtkWidget *area, gint x, gint y) 9 { 10 gdk_draw_point(area->window, 11 area->style->fg_gc[ GTK_WIDGET_STATE(area) ], 12 x, y); 13 } 14 15 static gboolean 16 expose_event(GtkWidget *area, GdkEventExpose *event, gpointer data) 17 { 18 gint x; 19 20 for (x = 0; x < 200; x++) 21 draw_point(area, x, x); 22 23 return TRUE; 24 } 25 26 int main(int argc, char *argv[]) 27 { 28 GtkWidget *window, *area; 29 30 gtk_init(&argc, &argv); 31 32 window = gtk_window_new(GTK_WINDOW_TOPLEVEL); 33 gtk_window_set_title(GTK_WINDOW(window), "Drawing Line"); 34 gtk_widget_set_size_request(window, 200, 200); 35 g_signal_connect(G_OBJECT(window), "destroy", 36 G_CALLBACK(destroy), NULL); 37 38 area = gtk_drawing_area_new(); 39 g_signal_connect(G_OBJECT(area), "expose_event", 40 G_CALLBACK(expose_event), NULL); 41 42 gtk_container_add(GTK_CONTAINER(window), area); 43 gtk_widget_show_all(window); 44 gtk_main(); 45 46 return 0; 47 }
描画するときのキモは expose_event を g_signal_connect するところかなぁ。
あ、あと、線を引く関数はちゃんとあるよ、というツッコミはなしの方向でww