mega modif by Mathieu Desnoyers. Independant main windows, multiple tracesets, contro...
[lttv.git] / ltt / branches / poly / lttv / modules / guiControlFlow / module.c
index b25ebcfecdb40d6c6e8ccf7dc1a3d394697f6a5b..7d47e9d1eee968e0c72aed62a4d3a193bea42438 100644 (file)
@@ -17,6 +17,7 @@
  * Author : Mathieu Desnoyers, June 2003
  */
 
+#include <glib.h>
 #include <gmodule.h>
 #include <lttv/module.h>
 #include <lttv/gtkTraceSet.h>
 #include "CFV.h"
 #include "Event_Hooks.h"
 
+ #include "../icons/hGuiControlFlowInsert.xpm"
+
+static LttvModule *Main_Win_Module;
+
+
+/** Array containing instanced objects. Used when module is unloaded */
+GSList *gControl_Flow_Data_List = NULL ;
+
+
+
+
 /*****************************************************************************
  *                 Functions for module loading/unloading                    *
  *****************************************************************************/
  * This function initializes the Control Flow Viewer functionnality through the
  * gtkTraceSet API.
  */
-G_MODULE_EXPORT void init() {
+G_MODULE_EXPORT void init(LttvModule *self, int argc, char *argv[]) {
+
+       Main_Win_Module = lttv_module_require(self, "mainwin", argc, argv);
+       
+       if(Main_Win_Module == NULL)
+       {
+         g_critical("Can't load Control Flow Viewer : missing mainwin\n");
+         return;
+       }
+       
        g_critical("GUI ControlFlow Viewer init()");
 
        /* Register the toolbar insert button */
-       ToolbarItemReg(guiEventsInsert_xpm, "Insert Control Flow Viewer", guiEvent);
+       ToolbarItemReg(hGuiControlFlowInsert_xpm, "Insert Control Flow Viewer",
+                       hGuiControlFlow);
 
        /* Register the menu item insert entry */
-       MenuItemReg("/", "Insert Control Flow Viewer", guiEvent);
+       MenuItemReg("/", "Insert Control Flow Viewer", hGuiControlFlow);
        
 }
 
 void destroy_walk(gpointer data, gpointer user_data)
 {
-       GuiControlFlow_Destructor((ControlFlowData*)data);
+       GuiControlFlow_Destructor_Full((ControlFlowData*)data);
+       g_critical("Walk destroy GUI Control Flow Viewer");
 }
 
 
@@ -61,16 +84,14 @@ G_MODULE_EXPORT void destroy() {
        g_critical("GUI Control Flow Viewer destroy()");
        int i;
 
-       ControlFlowData *Control_Flow_Data;
+       g_slist_foreach(gControl_Flow_Data_List, destroy_walk, NULL );
        
-       g_critical("GUI Event Viewer destroy()");
+       g_slist_free(gControl_Flow_Data_List);
 
-       g_slist_foreach(sControl_Flow_Data_List, destroy_walk, NULL );
-       
        /* Unregister the toolbar insert button */
-       //ToolbarItemUnreg(hGuiEvents);
+       ToolbarItemUnreg(hGuiControlFlow);
 
        /* Unregister the menu item insert entry */
-       //MenuItemUnreg(hGuiEvents);
+       MenuItemUnreg(hGuiControlFlow);
+       
 }
-
This page took 0.023861 seconds and 4 git commands to generate.