#define USE_NAMESPACE
#include <iostream>
#include <gtk++/gtkwindows.hpp>
#include <gtk++/gtkdrawingareas.hpp>
#include <gtk++/gdkwindows.hpp>
bool Dessine (GtkWidget* ZoneDessin, GdkEventExpose *Ev, lgtkpp::gtk_drawing_area* This)
{
int i;
lgtkpp::gdk_color Color;
lgtkpp::gdk_window Window ((*(lgtkpp::gtk_widget*)This)->window);
lgtkpp::gdk_colormap Colormap = Window.GetColormap ();
Color = "white";
Colormap.Alloc(Color);
Window.SetBackground(Color);
lgtkpp::gdk_gc Gc = (Window.GetDrawable());
Color.SetRed(0).SetGreen(0).SetBlue(65535);
Colormap.Alloc(Color);
Gc.SetForeground(Color);
Window.Clear();
for (i=0; i < (*(lgtkpp::gtk_widget*)This)->allocation.width; i += 5)
Window.Line(Gc, i, 0, (*(lgtkpp::gtk_widget*)This)->allocation.width - i,(*(lgtkpp::gtk_widget*)This)->allocation.height);
for (i=0; i < (*(lgtkpp::gtk_widget*)This)->allocation.height; i += 5)
Window.Line(Gc, 0, (*(lgtkpp::gtk_widget*)This)->allocation.height - i,(*(lgtkpp::gtk_widget*)This)->allocation.width, i);
return true;
}
int main (int argc, char * argv[])
{
::gtk_init(&argc, &argv);
lgtkpp::gtk_window Fenetre;
Fenetre.SetTitle ("Test Drawing Area");
Fenetre.SignalConnect ("delete_event",GtkSignalFunc(gtk_exit), NULL);
Fenetre.SignalConnect ("destroy",GtkSignalFunc(gtk_exit), NULL);
lgtkpp::gtk_drawing_area ZoneDessin;
Fenetre += ZoneDessin;
ZoneDessin.SignalConnect("expose_event",GtkSignalFunc(Dessine), &ZoneDessin);
Fenetre.ShowAll();
gtk_main();
return EXIT_SUCCESS;
}