add control flow view legend
[lttv.git] / ltt / branches / poly / lttv / modules / gui / controlflow / module.c
index c7c571927f9804432e6901b00a6aba6c726d6288..14311efed2a552661b6eb7dd1cee0e5afeb1d8a7 100644 (file)
 #include "eventhooks.h"
 
 #include "hGuiControlFlowInsert.xpm"
+#include "hLegendInsert.xpm"
 
 GQuark LTT_NAME_CPU;
 
 /** Array containing instanced objects. Used when module is unloaded */
 GSList *g_control_flow_data_list = NULL ;
 
+GSList *g_legend_list = NULL ;
 
 /*****************************************************************************
  *                 Functions for module loading/unloading                    *
@@ -77,6 +79,14 @@ static void init() {
                                   hGuiControlFlowInsert_xpm,
                                   "Insert Control Flow Viewer",
                                   h_guicontrolflow);
+  
+  lttvwindow_register_constructor("guicontrolflowlegend",
+                                  "/",
+                                  "Popup Control Flow Viewer Legend",
+                                  hLegendInsert_xpm,
+                                  "Popup Control Flow Viewer Legend",
+                                  h_legend);
+
 
   LTT_NAME_CPU = g_quark_from_string("/cpu");
 }
@@ -87,6 +97,12 @@ void destroy_walk(gpointer data, gpointer user_data)
   guicontrolflow_destructor_full((ControlFlowData*)data);
 }
 
+void destroy_legend_walk(gpointer data, gpointer user_data)
+{
+  g_info("Walk destroy GUI Control Flow Viewer");
+  legend_destructor((GtkWindow*)data);
+}
+
 
 
 /**
@@ -102,8 +118,13 @@ static void destroy() {
   
   g_slist_free(g_control_flow_data_list);
 
+  g_slist_foreach(g_legend_list, destroy_legend_walk, NULL );
+  
+  g_slist_free(g_control_flow_data_list);
+  
   /* Unregister the toolbar insert button and menu entry */
   lttvwindow_unregister_constructor(h_guicontrolflow);
+  lttvwindow_unregister_constructor(h_legend);
 }
 
 
This page took 0.023277 seconds and 4 git commands to generate.