init/destroy (begin)
[lttv.git] / ltt / branches / poly / lttv / plugins / guiControlFlow.c
CommitLineData
17abcce3 1/*! \defgroup guiEvents libguiControlFlow: The GUI ControlFlow display plugin */
2/*\@{*/
3
4/*! \file guiControlFlow.c
5 * \brief Graphical plugin for showing control flow of a trace.
6 *
7 * This plugin adds a Control Flow Viewer functionnality to Linux TraceToolkit
8 * GUI when this plugin is loaded. The init and destroy functions add the
9 * viewer's insertion menu item and toolbar icon by calling gtkTraceSet's
10 * API functions. Then, when a viewer's object is created, the constructor
11 * creates ans register through API functions what is needed to interact
12 * with the TraceSet window.
13 *
14 * This plugin uses the gdk library to draw the events and gtk to interact
15 * with the user.
16 *
17 * Author : Mathieu Desnoyers, June 2003
18 */
19
20#include <glib.h>
21#include <gmodule.h>
22#include <gtk.h>
23#include <gdk.h>
24
25#include <lttv/module.h>
26
27#include "guiControlFlow.h"
28#include "icons/guiControlFlowInsert.xpm"
29
30//! Event Viewer's constructor
31GtkWidget *guiControlFlow(GtkWidget *ParentWindow);
32
33/**
34 * plugin's init function
35 *
36 * This function initializes the Control Flow Viewer functionnality through the
37 * gtkTraceSet API.
38 */
39G_MODULE_EXPORT void init() {
40 g_critical("GUI ControlFlow Viewer init()");
41
42 /* Register the toolbar insert button */
43 ToolbarItemReg(guiEventsInsert_xpm, "Insert Control Flow Viewer", guiEvent);
44
45 /* Register the menu item insert entry */
46 MenuItemReg("/", "Insert Control Flow Viewer", guiEvent);
47
48}
49
50/**
51 * plugin's destroy function
52 *
53 * This function releases the memory reserved by the module and unregisters
54 * everything that has been registered in the gtkTraceSet API.
55 */
56G_MODULE_EXPORT void destroy() {
57 g_critical("GUI Control Flow Viewer destroy()");
58
59 /* Unregister the toolbar insert button */
60 ToolbarItemUnreg(guiEvent);
61
62 /* Unregister the menu item insert entry */
63 MenuItemUnreg(guiEvents);
64}
65
66/**
67 * Control Flow Viewer's constructor
68 *
69 * This constructor is given as a parameter to the menuitem and toolbar button
70 * registration. It creates the drawing widget.
71 * @param ParentWindow A pointer to the parent window.
72 * @return The widget created.
73 */
74static GtkWidget *
75guiEvents(GtkWidget *ParentWindow)
76{
77 GtkWidget *drawing_area = gtk_drawing_area_new ();
78
79 g_signal_connect (G_OBJECT (drawing_area), "expose_event",
80 G_CALLBACK (expose_event_callback), NULL);
81}
82
83
84
85/*\@}*/
This page took 0.042001 seconds and 4 git commands to generate.