makefile.am + header changes
[lttv.git] / ltt / branches / poly / lttv / modules / guiControlFlow / CFV.c
index 9855da64bebbcc5fbe2a0609908ab0aa8fb1a8f0..aae13cf7aa9fe401900b7253d111a404eaf67b85 100644 (file)
@@ -7,34 +7,33 @@
 #include "Drawing.h"
 #include "Process_List.h"
 
-#include "../icons/hGuiControlFlowInsert.xpm"
 
+extern GSList *gControl_Flow_Data_List;
 
 /*****************************************************************************
  *                     Control Flow Viewer class implementation              *
  *****************************************************************************/
 
 
-typedef struct _ControlFlowData {
+struct _ControlFlowData {
 
-       GtkWidget *Drawing_Area_V;
        GtkWidget *Scrolled_Window_VC;
        
        ProcessList *Process_List;
        Drawing_t *Drawing;
 
-       GtkWidget *HBox_V;
+       //GtkWidget *HBox_V;
        GtkWidget *Inside_HBox_V;
 
        GtkAdjustment *VAdjust_C ;
        
        /* Trace information */
-       TraceSet *Trace_Set;
-       TraceStatistics *Trace_Statistics;
+       //TraceSet *Trace_Set;
+       //TraceStatistics *Trace_Statistics;
        
        /* Shown events information */
        guint First_Event, Last_Event;
-       ltt_time Begin_Time, End_Time;
+       LttTime Begin_Time, End_Time;
        
        
        /* TEST DATA, TO BE READ FROM THE TRACE */
@@ -43,11 +42,7 @@ typedef struct _ControlFlowData {
        gboolean Selected_Event ;
        guint Number_Of_Process;
 
-} ControlFlowData ;
-
-
-/** Array containing instanced objects. Used when module is unloaded */
-static GSList *sControl_Flow_Data_List = NULL ;
+} ;
 
 
 /**
@@ -61,12 +56,15 @@ static GSList *sControl_Flow_Data_List = NULL ;
 ControlFlowData *
 GuiControlFlow(void)
 {
-       GtkWidget *Process_List_Widget;
+       GtkWidget *Process_List_Widget, *Drawing_Widget;
 
        ControlFlowData* Control_Flow_Data = g_new(ControlFlowData,1) ;
 
        /* Create the Drawing */
-       //Control_Flow_Data->Drawing = Drawing();
+       Control_Flow_Data->Drawing = Drawing_construct();
+       
+       Drawing_Widget = 
+               Drawing_getWidget(Control_Flow_Data->Drawing);
        
        /* TEST DATA, TO BE READ FROM THE TRACE */
        Control_Flow_Data->Number_Of_Events = 1000 ;
@@ -79,19 +77,19 @@ GuiControlFlow(void)
 
 
        /* Create the Process list */
-       //Control_Flow_Data->Process_List = ProcessList();
+       Control_Flow_Data->Process_List = ProcessList_construct();
        
-       //Process_List_Widget = 
-       //      ProcessList_getWidget(Control_Flow_Data->Process_List);
+       Process_List_Widget = 
+               ProcessList_getWidget(Control_Flow_Data->Process_List);
        
        Control_Flow_Data->Inside_HBox_V = gtk_hbox_new(0, 0);
 
-       //gtk_box_pack_start(
-       //      GTK_BOX(Control_Flow_Data->Inside_HBox_V),
-       //      Process_List_Widget, FALSE, TRUE, 0);
-       //gtk_box_pack_start(
-       //      GTK_BOX(Control_Flow_Data->Inside_HBox_V),
-       //      Control_Flow_Data->Drawing_Area_V, TRUE, TRUE, 0);
+       gtk_box_pack_start(
+               GTK_BOX(Control_Flow_Data->Inside_HBox_V),
+               Process_List_Widget, FALSE, TRUE, 0); // FALSE TRUE
+       gtk_box_pack_start(
+               GTK_BOX(Control_Flow_Data->Inside_HBox_V),
+               Drawing_Widget, TRUE, TRUE, 0);
 
 
        Control_Flow_Data->VAdjust_C = 
@@ -102,7 +100,6 @@ GuiControlFlow(void)
                                                        0.0,    /* Page inc. */
                                                        0.0));  /* page size */
        
-
        Control_Flow_Data->Scrolled_Window_VC =
                        gtk_scrolled_window_new (NULL,
                        Control_Flow_Data->VAdjust_C);
@@ -137,36 +134,55 @@ GuiControlFlow(void)
        //Control_Flow_Data->Trace_Statistics = get_trace_statistics(Trace);
 
 
-       gtk_widget_show(Control_Flow_Data->Drawing_Area_V);
+       gtk_widget_show(Drawing_Widget);
        gtk_widget_show(Process_List_Widget);
        gtk_widget_show(Control_Flow_Data->Inside_HBox_V);
        gtk_widget_show(Control_Flow_Data->Scrolled_Window_VC);
-
+       
        g_object_set_data_full(
-                       G_OBJECT(Control_Flow_Data->HBox_V),
+                       G_OBJECT(Control_Flow_Data->Scrolled_Window_VC),
                        "Control_Flow_Data",
                        Control_Flow_Data,
-                       GuiControlFlow_Destructor);
+                       (GDestroyNotify)GuiControlFlow_Destructor);
                        
+       g_slist_append(gControl_Flow_Data_List,Control_Flow_Data);
 
+       //FIXME : data sent too fast. The widget must be 
+       //inserted in the main window before the Drawing area
+       //can be configured (and this must happend bedore sending
+       //data)
+       send_test_data(Control_Flow_Data->Process_List,
+                       Control_Flow_Data->Drawing);
+       
        return Control_Flow_Data;
 
 }
 
+/* Destroys widget also */
+void
+GuiControlFlow_Destructor_Full(ControlFlowData *Control_Flow_Data)
+{
+       /* May already have been done by GTK window closing */
+       if(GTK_IS_WIDGET(Control_Flow_Data->Scrolled_Window_VC))
+               gtk_widget_destroy(Control_Flow_Data->Scrolled_Window_VC);
+
+       GuiControlFlow_Destructor(Control_Flow_Data);
+}
+
 void
 GuiControlFlow_Destructor(ControlFlowData *Control_Flow_Data)
 {
        guint index;
-
-       /* May already been done by GTK window closing */
-       if(GTK_IS_WIDGET(Control_Flow_Data->HBox_V))
-               gtk_widget_destroy(Control_Flow_Data->HBox_V);
        
-       ProcessList_destroy(Control_Flow_Data->Process_List);
+       /* Process List is removed with it's widget */
+       //ProcessList_destroy(Control_Flow_Data->Process_List);
        
-       g_slist_remove(sControl_Flow_Data_List,Control_Flow_Data);
+       g_slist_remove(gControl_Flow_Data_List,Control_Flow_Data);
+       g_free(Control_Flow_Data);
 }
 
-//FIXME : call hGuiEvents_Destructor for corresponding data upon widget destroy
-
+GtkWidget *GuiControlFlow_get_Widget(ControlFlowData *Control_Flow_Data)
+{
+       return Control_Flow_Data->Scrolled_Window_VC ;
+}
 
This page took 0.026834 seconds and 4 git commands to generate.