+
+ /* First, get the new time interval of the main window */
+ /* we assume (see documentation) that the main window
+ * has updated the time interval before this configure gets
+ * executed.
+ */
+ get_time_window(Drawing->Control_Flow_Data->Parent_Window,
+ &Drawing->Control_Flow_Data->Time_Window);
+
+ /* New Pixmap, size of the configure event */
+ //GdkPixmap *Pixmap = gdk_pixmap_new(widget->window,
+ // widget->allocation.width + SAFETY,
+ // widget->allocation.height + SAFETY,
+ // -1);
+
+ g_critical("drawing configure event");
+ g_critical("New draw size : %i by %i",widget->allocation.width, widget->allocation.height);
+
+
+ if (Drawing->Pixmap)
+ gdk_pixmap_unref(Drawing->Pixmap);
+
+ /* If no old Pixmap present */
+ //if(Drawing->Pixmap == NULL)
+ {
+ Drawing->Pixmap = gdk_pixmap_new(
+ widget->window,
+ widget->allocation.width + SAFETY,
+ widget->allocation.height + SAFETY,
+ //ProcessList_get_height
+ // (GuiControlFlow_get_Process_List(Drawing->Control_Flow_Data)),
+ -1);
+ Drawing->width = widget->allocation.width;
+ Drawing->height = widget->allocation.height;
+
+
+ // Clear the image
+ gdk_draw_rectangle (Drawing->Pixmap,
+ widget->style->white_gc,
+ TRUE,
+ 0, 0,
+ widget->allocation.width+SAFETY,
+ widget->allocation.height+SAFETY);
+
+ //g_info("init data request");
+
+
+ /* Initial data request */
+ // Do not need to ask for data of 1 pixel : not synchronized with
+ // main window time at this moment.
+ drawing_data_request(Drawing, &Drawing->Pixmap, 0, 0,
+ widget->allocation.width,
+ widget->allocation.height);
+
+ Drawing->width = widget->allocation.width;
+ Drawing->height = widget->allocation.height;
+
+ return TRUE;
+
+
+
+ }
+#ifdef NOTUSE
+// /* Draw empty background */
+// gdk_draw_rectangle (Pixmap,
+// widget->style->black_gc,
+// TRUE,
+// 0, 0,
+// widget->allocation.width,
+// widget->allocation.height);
+
+ /* Copy old data to new pixmap */
+ gdk_draw_drawable (Pixmap,
+ widget->style->white_gc,
+ Drawing->Pixmap,
+ 0, 0,
+ 0, 0,
+ -1, -1);
+
+ if (Drawing->Pixmap)
+ gdk_pixmap_unref(Drawing->Pixmap);
+
+ Drawing->Pixmap = Pixmap;
+
+ // Clear the bottom part of the image (SAFETY)
+ gdk_draw_rectangle (Pixmap,
+ widget->style->white_gc,
+ TRUE,
+ 0, Drawing->height+SAFETY,
+ Drawing->width+SAFETY, // do not overlap
+ (widget->allocation.height) - Drawing->height);
+
+ // Clear the right part of the image (SAFETY)
+ gdk_draw_rectangle (Pixmap,
+ widget->style->white_gc,
+ TRUE,
+ Drawing->width+SAFETY, 0,
+ (widget->allocation.width) - Drawing->width, // do not overlap
+ Drawing->height+SAFETY);
+
+ /* Clear the backgound for data request, but not SAFETY */
+ gdk_draw_rectangle (Pixmap,
+ Drawing->Drawing_Area_V->style->white_gc,
+ TRUE,
+ Drawing->width + SAFETY, 0,
+ widget->allocation.width - Drawing->width, // do not overlap
+ widget->allocation.height+SAFETY);
+
+ /* Request data for missing space */
+ g_info("missing data request");
+ drawing_data_request(Drawing, &Pixmap, Drawing->width, 0,
+ widget->allocation.width - Drawing->width,
+ widget->allocation.height);
+
+ Drawing->width = widget->allocation.width;
+ Drawing->height = widget->allocation.height;
+
+ return TRUE;
+#endif //NOTUSE
+}
+
+
+/* Redraw the screen from the backing pixmap */
+static gboolean
+expose_event( GtkWidget *widget, GdkEventExpose *event, gpointer user_data )
+{
+ Drawing_t *Drawing = (Drawing_t*)user_data;
+ g_critical("drawing expose event");
+
+ gdk_draw_pixmap(widget->window,
+ widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
+ Drawing->Pixmap,
+ event->area.x, event->area.y,
+ event->area.x, event->area.y,
+ event->area.width, event->area.height);
+
+ return FALSE;
+}
+
+Drawing_t *drawing_construct(ControlFlowData *Control_Flow_Data)
+{