*
* 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
*/
-#define g_info(format...) g_log (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, format)
-#define g_debug(format...) g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, format)
+#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 "eventhooks.h"
-#include "../icons/hGuiControlFlowInsert.xpm"
-
-static LttvModule *Main_Win_Module;
-
+#include "hGuiControlFlowInsert.xpm"
/** Array containing instanced objects. Used when module is unloaded */
GSList *g_control_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(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);
}
void destroy_walk(gpointer data, gpointer user_data)
* 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);
-
+ /* 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")