guiControlFlow Process List completed
[lttv.git] / ltt / branches / poly / lttv / modules / guiControlFlow / CFV.c
index 9855da64bebbcc5fbe2a0609908ab0aa8fb1a8f0..18f3b52e4e484a31907d0c2cda856f8bb728b813 100644 (file)
@@ -7,15 +7,15 @@
 #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;
@@ -23,18 +23,18 @@ typedef struct _ControlFlowData {
        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 +43,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 ;
+} ;
 
 
 /**
@@ -79,16 +75,16 @@ 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),
+               Process_List_Widget, TRUE, TRUE, 0); // FALSE TRUE
        //gtk_box_pack_start(
        //      GTK_BOX(Control_Flow_Data->Inside_HBox_V),
        //      Control_Flow_Data->Drawing_Area_V, TRUE, TRUE, 0);
@@ -102,7 +98,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 +132,48 @@ GuiControlFlow(void)
        //Control_Flow_Data->Trace_Statistics = get_trace_statistics(Trace);
 
 
-       gtk_widget_show(Control_Flow_Data->Drawing_Area_V);
+       //gtk_widget_show(Control_Flow_Data->Drawing_Area_V);
        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);
 
        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.025009 seconds and 4 git commands to generate.