create directories branches, tags, trunk
[lttv.git] / ltt / branches / poly / lttv / modules / gui / controlflow / module.c
index 16068794d3c3f797c2a9fe69550caf28c75a7251..1ad14c1691f6c4e3d483ac75448687975a2122b8 100644 (file)
@@ -26,7 +26,7 @@
  *
  * This plugin adds a Control Flow Viewer functionnality to Linux TraceToolkit
  * GUI when this plugin is loaded. The init and destroy functions add the
- * viewer's insertion menu item and toolbar icon by calling gtkTraceSet's
+ * viewer's insertion menu item and toolbar icon by calling viewer.h's
  * API functions. Then, when a viewer's object is created, the constructor
  * creates ans register through API functions what is needed to interact
  * with the TraceSet window.
  * Author : Mathieu Desnoyers, June 2003
  */
 
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
 #include <glib.h>
-#include <gmodule.h>
 #include <lttv/lttv.h>
 #include <lttv/module.h>
-#include <lttv/gtktraceset.h>
+#include <lttvwindow/lttvwindow.h>
 
 #include "cfv.h"
+#include "lttv_plugin_cfv.h"
 #include "eventhooks.h"
 
-#include "../icons/hGuiControlFlowInsert.xpm"
-
-static LttvModule *Main_Win_Module;
+#include "hGuiControlFlowInsert.xpm"
 
+GQuark LTT_NAME_CPU;
 
 /** Array containing instanced objects. Used when module is unloaded */
 GSList *g_control_flow_data_list = NULL ;
 
-
-
-
 /*****************************************************************************
  *                 Functions for module loading/unloading                    *
  *****************************************************************************/
@@ -66,53 +66,48 @@ GSList *g_control_flow_data_list = NULL ;
  * This function initializes the Control Flow Viewer functionnality through the
  * gtkTraceSet API.
  */
-G_MODULE_EXPORT void init(LttvModule *self, int argc, char *argv[]) {
+static void init() {
 
-  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_info("GUI ControlFlow Viewer init()");
 
-  /* Register the toolbar insert button */
-  toolbar_item_reg(hGuiControlFlowInsert_xpm, "Insert Control Flow Viewer",
-      h_guicontrolflow);
-
-  /* Register the menu item insert entry */
-  menu_item_reg("/", "Insert Control Flow Viewer", h_guicontrolflow);
+  /* Register the toolbar insert button and menu entry*/
+  lttvwindow_register_constructor("guicontrolflow",
+                                  "/",
+                                  "Insert Control Flow Viewer",
+                                  hGuiControlFlowInsert_xpm,
+                                  "Insert Control Flow Viewer",
+                                  h_guicontrolflow);
   
+  LTT_NAME_CPU = g_quark_from_string("/cpu");
 }
 
 void destroy_walk(gpointer data, gpointer user_data)
 {
   g_info("Walk destroy GUI Control Flow Viewer");
-  guicontrolflow_destructor_full((ControlFlowData*)data);
+  guicontrolflow_destructor_full((LttvPluginCFV*)data);
 }
 
 
-
 /**
  * plugin's destroy function
  *
  * This function releases the memory reserved by the module and unregisters
  * everything that has been registered in the gtkTraceSet API.
  */
-G_MODULE_EXPORT void destroy() {
+static void destroy() {
   g_info("GUI Control Flow Viewer destroy()");
-  int i;
 
   g_slist_foreach(g_control_flow_data_list, destroy_walk, NULL );
   
   g_slist_free(g_control_flow_data_list);
 
-  /* Unregister the toolbar insert button */
-  toolbar_item_unreg(h_guicontrolflow);
-
-  /* Unregister the menu item insert entry */
-  menu_item_unreg(h_guicontrolflow);
+  g_slist_free(g_control_flow_data_list);
   
+  /* Unregister the toolbar insert button and menu entry */
+  lttvwindow_unregister_constructor(h_guicontrolflow);
 }
+
+
+LTTV_MODULE("guicontrolflow", "Control flow viewer", \
+    "Graphical module to view processes state and control flow", \
+    init, destroy, "lttvwindow")
This page took 0.023673 seconds and 4 git commands to generate.