From 68106e4a3550952b2e73b567ab9f2a7cb4d93731 Mon Sep 17 00:00:00 2001
From: Cedric Roux <cedric.roux@eurecom.fr>
Date: Sun, 1 May 2016 14:16:50 +0200
Subject: [PATCH] start working on the event selector window

---
 common/utils/T/tracer/Makefile         |  1 +
 common/utils/T/tracer/Makefile.remote  |  2 +-
 common/utils/T/tracer/event_selector.c | 41 ++++++++++++++++++++++++++
 common/utils/T/tracer/event_selector.h |  8 +++++
 common/utils/T/tracer/remote.c         | 19 +++++++-----
 5 files changed, 63 insertions(+), 8 deletions(-)
 create mode 100644 common/utils/T/tracer/event_selector.c
 create mode 100644 common/utils/T/tracer/event_selector.h

diff --git a/common/utils/T/tracer/Makefile b/common/utils/T/tracer/Makefile
index 9069d2be2c..b06ff4dd4d 100644
--- a/common/utils/T/tracer/Makefile
+++ b/common/utils/T/tracer/Makefile
@@ -5,6 +5,7 @@ local:
 
 remote:
 	make -f Makefile.remote
+	make -f Makefile.remote textlog
 
 clean:
 	make -f Makefile.local clean
diff --git a/common/utils/T/tracer/Makefile.remote b/common/utils/T/tracer/Makefile.remote
index 9dc082e01e..8dd9d9a7e2 100644
--- a/common/utils/T/tracer/Makefile.remote
+++ b/common/utils/T/tracer/Makefile.remote
@@ -12,7 +12,7 @@ $(PROG): gui/gui.a $(OBJS)
 	$(CC) $(CFLAGS) -o $(PROG) $(OBJS) gui/gui.a $(LIBS)
 
 textlog: utils.o remote.o database.o event.o handler.o textlog.o \
-         view/view.a gui/gui.a
+         event_selector.o view/view.a gui/gui.a
 	$(CC) $(CFLAGS) -o textlog $^ $(LIBS)
 
 .PHONY: gui/gui.a view/view.a
diff --git a/common/utils/T/tracer/event_selector.c b/common/utils/T/tracer/event_selector.c
new file mode 100644
index 0000000000..f632efb8da
--- /dev/null
+++ b/common/utils/T/tracer/event_selector.c
@@ -0,0 +1,41 @@
+#include "event_selector.h"
+#include "gui/gui.h"
+
+void setup_event_selector(gui *g, void *database, int socket, int *is_on)
+{
+  widget *win;
+  widget *main_container;
+  widget *container;
+  widget *left, *right;
+  widget *events, *groups;
+
+  win = new_toplevel_window(g, 610, 800, "event selector");
+  main_container = new_container(g, VERTICAL);
+  widget_add_child(g, win, main_container, -1);
+
+  container = new_container(g, HORIZONTAL);
+  widget_add_child(g, main_container, container, -1);
+  container_set_child_growable(g, main_container, container, 1);
+  widget_add_child(g, main_container,
+      new_label(g, "mouse scroll to scroll - "
+                   "left click to activate - "
+                   "right click to deactivate"), -1);
+
+  left = new_container(g, VERTICAL);
+  right = new_container(g, VERTICAL);
+  widget_add_child(g, container, left, -1);
+  widget_add_child(g, container, right, -1);
+  container_set_child_growable(g, container, left, 1);
+  container_set_child_growable(g, container, right, 1);
+
+  widget_add_child(g, left, new_label(g, "Events"), -1);
+  widget_add_child(g, right, new_label(g, "Groups"), -1);
+
+  events = new_text_list(g, 300, 10, new_color(g, "#ccccff"));
+  groups = new_text_list(g, 300, 10, new_color(g, "#ccffee"));
+
+  widget_add_child(g, left, events, -1);
+  widget_add_child(g, right, groups, -1);
+  container_set_child_growable(g, left, events, 1);
+  container_set_child_growable(g, right, groups, 1);
+}
diff --git a/common/utils/T/tracer/event_selector.h b/common/utils/T/tracer/event_selector.h
new file mode 100644
index 0000000000..11e977b4f6
--- /dev/null
+++ b/common/utils/T/tracer/event_selector.h
@@ -0,0 +1,8 @@
+#ifndef _EVENT_SELECTOR_H_
+#define _EVENT_SELECTOR_H_
+
+#include "gui/gui.h"
+
+void setup_event_selector(gui *g, void *database, int socket, int *is_on);
+
+#endif /* _EVENT_SELECTOR_H_ */
diff --git a/common/utils/T/tracer/remote.c b/common/utils/T/tracer/remote.c
index 020aba3cdb..9d1d2b0968 100644
--- a/common/utils/T/tracer/remote.c
+++ b/common/utils/T/tracer/remote.c
@@ -12,6 +12,7 @@
 #include "gui/gui.h"
 #include "utils.h"
 #include "../T_defs.h"
+#include "event_selector.h"
 
 #define DEFAULT_REMOTE_PORT 2021
 
@@ -115,6 +116,7 @@ int main(int n, char **v)
   int l;
   event_handler *h;
   textlog *textlog;
+  gui *g;
   int gui_mode = 0;
 
   on_off_name = malloc(n * sizeof(char *)); if (on_off_name == NULL) abort();
@@ -155,17 +157,18 @@ int main(int n, char **v)
       "ENB_UL_CHANNEL_ESTIMATE",
       "ev: {} eNB_id [eNB_ID] frame [frame] subframe [subframe]");
 
+  g = gui_init();
+  new_thread(gui_thread, g);
+
   if (gui_mode) {
     view *tout;
-    gui *g;
     widget *w, *win;
-    g = gui_init();
-    w = new_text_list(g, 600, 20, 0);
+//    w = new_text_list(g, 600, 20, 0);
+    w = new_text_list(g, 600, 20, new_color(g, "#ffabab"));
     win = new_toplevel_window(g, 600, 20*12, "textlog");
     widget_add_child(g, win, w, -1);
-    //tout = new_textlist(1000, 10, g, w);
-    tout = new_textlist(7, 4, g, w);
-    new_thread(gui_thread, g);
+    tout = new_textlist(1000, 10, g, w);
+    //tout = new_textlist(7, 4, g, w);
     textlog_add_view(textlog, tout);
   } else {
     view *sout = new_stdout();
@@ -175,7 +178,7 @@ int main(int n, char **v)
   for (i = 0; i < on_off_n; i++)
     on_off(database, on_off_name[i], is_on, on_off_action[i]);
 
-  s = get_connection("127.0.0.1", port);
+  s = get_connection("0.0.0.0", port);
 
   /* send the first message - activate selected traces */
   t = 0;
@@ -187,6 +190,8 @@ int main(int n, char **v)
     if (is_on[l])
       if (write(s, &l, sizeof(int)) != sizeof(int)) abort();
 
+  setup_event_selector(g, database, s, is_on);
+
   /* read messages */
   while (1) {
     char v[T_BUFFER_MAX];
-- 
GitLab