#include <lttv/state.h>
#include <lttvwindow/lttvwindow.h>
#include <lttvwindow/lttvwindowtraces.h>
+#include <lttvwindow/support.h>
#include "eventhooks.h"
#define MAX_PATH_LEN 256
+extern GSList *g_legend_list;
+
#if 0
typedef struct _ProcessAddClosure {
ControlFlowData *cfd;
}
+void legend_destructor(GtkWindow *legend)
+{
+ g_legend_list = g_slist_remove(g_legend_list, legend);
+}
+
+/* Create a popup legend */
+GtkWidget *
+h_legend(Tab *tab)
+{
+ g_info("h_legend, %p", tab);
+
+ GtkWindow *legend = GTK_WINDOW(gtk_window_new(GTK_WINDOW_TOPLEVEL));
+
+ g_legend_list = g_slist_append(
+ g_legend_list,
+ legend);
+
+ g_object_set_data_full(
+ G_OBJECT(legend),
+ "legend",
+ legend,
+ (GDestroyNotify)legend_destructor);
+
+ gtk_window_set_title(legend, "Control Flow View Legend");
+
+ GtkWidget *pixmap = create_pixmap(GTK_WIDGET(legend), "lttv-color-list.png");
+
+ // GtkImage *image = GTK_IMAGE(gtk_image_new_from_pixmap(
+ // GDK_PIXMAP(pixmap), NULL));
+
+ gtk_container_add(GTK_CONTAINER(legend), GTK_WIDGET(pixmap));
+
+ gtk_widget_show(GTK_WIDGET(pixmap));
+ gtk_widget_show(GTK_WIDGET(legend));
+
+
+ return NULL; /* This is a popup window */
+}
+
+
int event_selected_hook(void *hook_data, void *call_data)
{
ControlFlowData *control_flow_data = (ControlFlowData*) hook_data;
LttvProcessState *process = ts->running_process[cpu];
/* unknown state, bad current pid */
if(process->pid != pid_out)
- process = lttv_state_find_process(ts, ANY_CPU, pid_out);
+ process = lttv_state_find_process(ts,
+ ltt_tracefile_num(tfc->tf), pid_out);
if(process != NULL) {
/* Well, the process_out existed : we must get it in the process hash
* present, it's a new process and it was not present : it will
* be added after the state update. */
LttvProcessState *process;
- process = lttv_state_find_process(ts, ANY_CPU, pid_in);
+ process = lttv_state_find_process(ts,
+ ltt_tracefile_num(tfc->tf), pid_in);
if(process != NULL) {
- /* Well, the process_out existed : we must get it in the process hash
+ /* Well, the process existed : we must get it in the process hash
* or add it, and draw its items.
*/
/* Add process to process list (if not present) */