#include <cairo.h>
GtkWidget *drawingarea;
void
example_render_project_to_screen (GdkDrawable *drawable) {
cairo_t *cr = gdk_cairo_create (drawable);
gerbv_render_all_layers_to_cairo_target (mainProject, cr, &screenRenderInfo);
cairo_destroy (cr);
}
gboolean
example_callbacks_drawingarea_configure_event (GtkWidget *widget, GdkEventConfigure *event)
{
GdkDrawable *drawable = widget->window;
return TRUE;
}
gboolean
example_callbacks_drawingarea_expose_event (GtkWidget *widget, GdkEventExpose *event)
{
example_render_project_to_screen(widget->window);
return TRUE;
}
gboolean
example_callbacks_drawingarea_key_press_event (GtkWidget *widget, GdkEventKey *event)
{
switch(event->keyval) {
case GDK_Up:
break;
case GDK_Down:
break;
case GDK_Left:
break;
case GDK_Right:
break;
case GDK_z:
break;
case GDK_Z:
break;
default:
break;
}
GdkRectangle update_rect;
update_rect.x = 0;
update_rect.y = 0;
gdk_window_invalidate_rect (drawingarea->window, &update_rect, FALSE);
return TRUE;
}
void
example_create_GUI (void){
GtkWidget *mainWindow;
mainWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size((GtkWindow *)mainWindow, 400, 400);
gtk_window_set_title (GTK_WINDOW (mainWindow), "Example 6");
drawingarea = gtk_drawing_area_new();
gtk_container_add (GTK_CONTAINER (mainWindow), drawingarea);
gtk_signal_connect(GTK_OBJECT(drawingarea), "expose_event",
GTK_SIGNAL_FUNC(example_callbacks_drawingarea_expose_event), NULL);
gtk_signal_connect(GTK_OBJECT(drawingarea),"configure_event",
GTK_SIGNAL_FUNC(example_callbacks_drawingarea_configure_event), NULL);
gtk_signal_connect(GTK_OBJECT(mainWindow), "key_press_event",
GTK_SIGNAL_FUNC(example_callbacks_drawingarea_key_press_event), NULL);
gtk_signal_connect_after(GTK_OBJECT(mainWindow), "delete_event",
GTK_SIGNAL_FUNC(gtk_main_quit), NULL);
gtk_widget_show_all (mainWindow);
}
int
main(int argc, char *argv[]) {
if ((mainProject->
file[0] == NULL) || (mainProject->
file[1] == NULL))
g_error ("There was an error parsing the files.");
gtk_init (&argc, &argv);
example_create_GUI ();
gtk_main();
return 0;
}