From e4e46473455f63c3ed9a499e5292ad18bb78178e Mon Sep 17 00:00:00 2001
From: Cedric Roux <cedric.roux@eurecom.fr>
Date: Mon, 2 May 2016 09:47:30 +0200
Subject: [PATCH] cleanup logging in the GUI

---
 common/utils/T/tracer/gui/container.c       | 18 ++++++-------
 common/utils/T/tracer/gui/event.c           |  8 +++---
 common/utils/T/tracer/gui/gui.c             |  2 ++
 common/utils/T/tracer/gui/gui_defs.h        |  3 +++
 common/utils/T/tracer/gui/label.c           |  4 +--
 common/utils/T/tracer/gui/notify.c          | 12 +++------
 common/utils/T/tracer/gui/text_list.c       |  8 +++---
 common/utils/T/tracer/gui/toplevel_window.c |  8 +++---
 common/utils/T/tracer/gui/x.c               | 28 ++++++++++-----------
 common/utils/T/tracer/gui/xy_plot.c         | 20 +++++++--------
 10 files changed, 56 insertions(+), 55 deletions(-)

diff --git a/common/utils/T/tracer/gui/container.c b/common/utils/T/tracer/gui/container.c
index c2913db2d6..3dfcef2e2c 100644
--- a/common/utils/T/tracer/gui/container.c
+++ b/common/utils/T/tracer/gui/container.c
@@ -8,7 +8,7 @@
 
 static void repack(gui *g, widget *_this)
 {
-printf("REPACK container %p\n", _this);
+  LOGD("REPACK container %p\n", _this);
   struct container_widget *this = _this;
   this->hints_are_valid = 0;
   return this->common.parent->repack(g, this->common.parent);
@@ -16,7 +16,7 @@ printf("REPACK container %p\n", _this);
 
 static void add_child(gui *g, widget *_this, widget *child, int position)
 {
-printf("ADD_CHILD container\n");
+  LOGD("ADD_CHILD container\n");
   struct container_widget *this = _this;
   this->hints_are_valid = 0;
   widget_add_child_internal(g, this, child, position);
@@ -78,7 +78,7 @@ static void compute_horizontal_hints(struct gui *g,
 static void vertical_allocate(gui *_gui, widget *_this,
     int x, int y, int width, int height)
 {
-printf("ALLOCATE container vertical %p\n", _this);
+  LOGD("ALLOCATE container vertical %p\n", _this);
   int cy = 0;
   int cwidth, cheight;
   struct gui *g = _gui;
@@ -126,7 +126,7 @@ hints_ok:
 static void horizontal_allocate(gui *_gui, widget *_this,
     int x, int y, int width, int height)
 {
-printf("ALLOCATE container horizontal %p\n", _this);
+  LOGD("ALLOCATE container horizontal %p\n", _this);
   int cx = 0;
   int cwidth, cheight;
   struct gui *g = _gui;
@@ -173,7 +173,7 @@ hints_ok:
 
 static void vertical_hints(gui *_gui, widget *_w, int *width, int *height)
 {
-printf("HINTS container vertical %p\n", _w);
+  LOGD("HINTS container vertical %p\n", _w);
   struct gui *g = _gui;
   struct container_widget *this = _w;
 
@@ -191,7 +191,7 @@ printf("HINTS container vertical %p\n", _w);
 
 static void horizontal_hints(gui *_gui, widget *_w, int *width, int *height)
 {
-printf("HINTS container horizontal %p\n", _w);
+  LOGD("HINTS container horizontal %p\n", _w);
   struct gui *g = _gui;
   struct container_widget *this = _w;
 
@@ -210,7 +210,7 @@ printf("HINTS container horizontal %p\n", _w);
 static void horizontal_button(gui *_g, widget *_this, int x, int y,
     int button, int up)
 {
-printf("BUTTON container horizontal %p xy %d %d button %d up %d\n", _this, x, y, button, up);
+  LOGD("BUTTON container horizontal %p xy %d %d button %d up %d\n", _this, x, y, button, up);
   struct gui *g = _g;
   struct container_widget *this = _this;
   struct widget_list *l;
@@ -228,7 +228,7 @@ printf("BUTTON container horizontal %p xy %d %d button %d up %d\n", _this, x, y,
 static void vertical_button(gui *_g, widget *_this, int x, int y,
     int button, int up)
 {
-printf("BUTTON container vertical %p xy %d %d button %d up %d\n", _this, x, y, button, up);
+  LOGD("BUTTON container vertical %p xy %d %d button %d up %d\n", _this, x, y, button, up);
   struct gui *g = _g;
   struct container_widget *this = _this;
   struct widget_list *l;
@@ -245,7 +245,7 @@ printf("BUTTON container vertical %p xy %d %d button %d up %d\n", _this, x, y, b
 
 static void paint(gui *_gui, widget *_this)
 {
-printf("PAINT container\n");
+  LOGD("PAINT container\n");
   struct gui *g = _gui;
   struct widget *this = _this;
   struct widget_list *l;
diff --git a/common/utils/T/tracer/gui/event.c b/common/utils/T/tracer/gui/event.c
index d5ead45a79..378b80ccdd 100644
--- a/common/utils/T/tracer/gui/event.c
+++ b/common/utils/T/tracer/gui/event.c
@@ -63,7 +63,7 @@ static event *new_event_dirty(int id)
 
 void send_event(gui *_gui, enum event_type type, ...)
 {
-printf("send_event %d\n", type);
+  LOGD("send_event %d\n", type);
   struct gui *g = _gui;
   int do_write = 0;
   va_list ap;
@@ -140,7 +140,7 @@ static void dirty_event(struct gui *g, int id)
 
 static void process_event(struct gui *g, struct event *e)
 {
-printf("processing event type %d\n", e->type);
+  LOGD("processing event type %d\n", e->type);
   switch (e->type) {
   case REPACK: repack_event(g, ((struct repack_event *)e)->id); break;
   case DIRTY: dirty_event(g, ((struct dirty_event *)e)->id); break;
@@ -152,7 +152,7 @@ void gui_events(gui *_gui)
 {
   struct gui *g = _gui;
 
-printf("gui_events START: head %p\n", g->queued_events);
+  LOGD("gui_events START: head %p\n", g->queued_events);
 
   while (g->queued_events) {
     struct event_list *cur = g->queued_events;
@@ -162,5 +162,5 @@ printf("gui_events START: head %p\n", g->queued_events);
     free_event(cur->item);
     free(cur);
   }
-printf("gui_events DONE\n");
+  LOGD("gui_events DONE\n");
 }
diff --git a/common/utils/T/tracer/gui/gui.c b/common/utils/T/tracer/gui/gui.c
index ef8640b0de..f0d7dcbcb1 100644
--- a/common/utils/T/tracer/gui/gui.c
+++ b/common/utils/T/tracer/gui/gui.c
@@ -5,6 +5,8 @@
 #include <stdlib.h>
 #include <pthread.h>
 
+int volatile gui_logd;
+
 void glock(gui *_gui)
 {
   struct gui *g = _gui;
diff --git a/common/utils/T/tracer/gui/gui_defs.h b/common/utils/T/tracer/gui/gui_defs.h
index 58ae329467..fc9cd39bb3 100644
--- a/common/utils/T/tracer/gui/gui_defs.h
+++ b/common/utils/T/tracer/gui/gui_defs.h
@@ -3,6 +3,9 @@
 
 /* defines the private API of the GUI */
 
+extern int volatile gui_logd;
+#define LOGD(...) do { if (gui_logd) printf(__VA_ARGS__); } while (0)
+
 /*************************************************************************/
 /*                            logging macros                             */
 /*************************************************************************/
diff --git a/common/utils/T/tracer/gui/label.c b/common/utils/T/tracer/gui/label.c
index be6c8794a0..35b4f7b667 100644
--- a/common/utils/T/tracer/gui/label.c
+++ b/common/utils/T/tracer/gui/label.c
@@ -9,7 +9,7 @@ static void paint(gui *_gui, widget *_w)
 {
   struct gui *g = _gui;
   struct label_widget *l = _w;
-printf("PAINT label '%s'\n", l->t);
+  LOGD("PAINT label '%s'\n", l->t);
   x_draw_string(g->x, g->xwin, l->color,
       l->common.x, l->common.y + l->baseline, l->t);
 }
@@ -17,7 +17,7 @@ printf("PAINT label '%s'\n", l->t);
 static void hints(gui *_gui, widget *_w, int *width, int *height)
 {
   struct label_widget *l = _w;
-printf("HINTS label '%s'\n", l->t);
+  LOGD("HINTS label '%s'\n", l->t);
   *width = l->width;
   *height = l->height;
 }
diff --git a/common/utils/T/tracer/gui/notify.c b/common/utils/T/tracer/gui/notify.c
index dc6bc2fd59..7ff4006941 100644
--- a/common/utils/T/tracer/gui/notify.c
+++ b/common/utils/T/tracer/gui/notify.c
@@ -13,7 +13,7 @@ unsigned long register_notifier(gui *_g, char *notification, widget *w,
   glock(g);
 
   if (g->next_notifier_id == 2UL * 1024 * 1024 * 1024)
-    { printf("%s:%d: report a bug\n", __FILE__, __LINE__);  abort(); }
+    ERR("%s:%d: report a bug\n", __FILE__, __LINE__);
 
   g->notifiers = realloc(g->notifiers,
       (g->notifiers_count+1) * sizeof(struct notifier));
@@ -50,11 +50,8 @@ void unregister_notifier(gui *_g, unsigned long notifier_id)
   for (i = 0; i < g->notifiers_count; i++)
     if (g->notifiers[i].id == notifier_id) break;
 
-  if (i == g->notifiers_count) {
-    printf("%s:%d: notifier_id %ld not found\n", __FILE__, __LINE__,
-        notifier_id);
-    abort();
-  }
+  if (i == g->notifiers_count)
+    ERR("%s:%d: notifier_id %ld not found\n", __FILE__,__LINE__,notifier_id);
 
   free(g->notifiers[i].notification);
 
@@ -83,8 +80,7 @@ void gui_notify(struct gui *g, char *notification, widget *w,
    * for now let's crash in case of recursive call
    */
   static int inside = 0;
-  if (inside)
-    {printf("%s:%d: BUG! contact the authors\n", __FILE__, __LINE__);abort();}
+  if (inside) ERR("%s:%d: BUG! contact the authors\n", __FILE__, __LINE__);
   inside = 1;
 
   /* clear all handlers */
diff --git a/common/utils/T/tracer/gui/text_list.c b/common/utils/T/tracer/gui/text_list.c
index bc0001cf8b..086234d952 100644
--- a/common/utils/T/tracer/gui/text_list.c
+++ b/common/utils/T/tracer/gui/text_list.c
@@ -10,7 +10,7 @@ static void paint(gui *_gui, widget *_this)
   struct gui *g = _gui;
   struct text_list_widget *this = _this;
   int i, j;
-printf("PAINT text_list %p xywh %d %d %d %d\n", _this, this->common.x, this->common.y, this->common.width, this->common.height);
+  LOGD("PAINT text_list %p xywh %d %d %d %d\n", _this, this->common.x, this->common.y, this->common.width, this->common.height);
   x_fill_rectangle(g->x, g->xwin, this->background_color,
       this->common.x, this->common.y,
       this->common.width, this->common.height);
@@ -29,7 +29,7 @@ static void hints(gui *_gui, widget *_w, int *width, int *height)
   struct text_list_widget *w = _w;
   *width = w->wanted_width;
   *height = w->wanted_nlines * w->line_height;
-printf("HINTS text_list wh %d %d\n", *width, *height);
+  LOGD("HINTS text_list wh %d %d\n", *width, *height);
 }
 
 static void allocate(
@@ -41,14 +41,14 @@ static void allocate(
   this->common.width = width;
   this->common.height = height;
   this->allocated_nlines = height / this->line_height;
-printf("ALLOCATE text_list %p xywh %d %d %d %d nlines %d\n", this, x, y, width, height, this->allocated_nlines);
+  LOGD("ALLOCATE text_list %p xywh %d %d %d %d nlines %d\n", this, x, y, width, height, this->allocated_nlines);
 }
 
 static void button(gui *_g, widget *_this, int x, int y, int button, int up)
 {
   struct gui *g = _g;
   struct text_list_widget *this = _this;
-printf("BUTTON test_list %p xy %d %d button %d up %d\n", _this, x, y, button, up);
+  LOGD("BUTTON test_list %p xy %d %d button %d up %d\n", _this, x, y, button, up);
   /* scroll up */
   if (button == 4 && up == 0) {
     gui_notify(g, "scrollup", _this, NULL);
diff --git a/common/utils/T/tracer/gui/toplevel_window.c b/common/utils/T/tracer/gui/toplevel_window.c
index fef72b32cc..03d5091bc7 100644
--- a/common/utils/T/tracer/gui/toplevel_window.c
+++ b/common/utils/T/tracer/gui/toplevel_window.c
@@ -10,7 +10,7 @@
 
 static void repack(gui *g, widget *_this)
 {
-printf("REPACK toplevel_window\n");
+  LOGD("REPACK toplevel_window\n");
   struct toplevel_window_widget *this = _this;
   if (this->common.children == NULL) ERR("toplevel window has no child\n");
   if (this->common.children->next != NULL)
@@ -22,7 +22,7 @@ printf("REPACK toplevel_window\n");
 
 static void add_child(gui *_gui, widget *_this, widget *child, int position)
 {
-printf("ADD_CHILD toplevel_window\n");
+  LOGD("ADD_CHILD toplevel_window\n");
   struct widget *this = _this;
   if (this->children != NULL) {
     WARN("toplevel window already has a child\n");
@@ -35,7 +35,7 @@ printf("ADD_CHILD toplevel_window\n");
 static void allocate(
     gui *_gui, widget *_this, int x, int y, int width, int height)
 {
-printf("ALLOCATE toplevel_window\n");
+  LOGD("ALLOCATE toplevel_window\n");
   struct toplevel_window_widget *this = _this;
   this->common.width = width;
   this->common.height = height;
@@ -47,7 +47,7 @@ static void paint(gui *_gui, widget *_this)
 {
   struct gui *g = _gui;
   struct toplevel_window_widget *this = _this;
-printf("PAINT toplevel_window (%d %d)\n", this->common.width, this->common.height);
+  LOGD("PAINT toplevel_window (%d %d)\n", this->common.width, this->common.height);
   x_fill_rectangle(g->x, this->x, BACKGROUND_COLOR,
       0, 0, this->common.width, this->common.height);
   g->xwin = this->x;
diff --git a/common/utils/T/tracer/gui/x.c b/common/utils/T/tracer/gui/x.c
index 68869d6e0f..f29a0c6adb 100644
--- a/common/utils/T/tracer/gui/x.c
+++ b/common/utils/T/tracer/gui/x.c
@@ -46,7 +46,7 @@ x_connection *x_open(void)
   if (ret == NULL) OOM;
 
   ret->d = XOpenDisplay(0);
-printf("XOpenDisplay display %p return x_connection %p\n", ret->d, ret);
+  LOGD("XOpenDisplay display %p return x_connection %p\n", ret->d, ret);
   if (ret->d == NULL) ERR("error calling XOpenDisplay: no X? you root?\n");
 
   x_new_color(ret, "white");    /* background color */
@@ -96,16 +96,16 @@ x_window *x_create_window(x_connection *_x, int width, int height,
 
 #if 0
   /* wait for window to be mapped */
-printf("wait for map\n");
+  LOGD("wait for map\n");
   while (1) {
     XEvent ev;
     //XWindowEvent(x->d, ret->w, StructureNotifyMask, &ev);
     XWindowEvent(x->d, ret->w, ExposureMask, &ev);
-printf("got ev %d\n", ev.type);
+    LOGD("got ev %d\n", ev.type);
     //if (ev.type == MapNotify) break;
     if (ev.type == Expose) break;
   }
-printf("XXX create connection %p window %p (win id %d pixmap %d) w h %d %d\n", x, ret, (int)ret->w, (int)ret->p, width, height);
+  LOGD("XXX create connection %p window %p (win id %d pixmap %d) w h %d %d\n", x, ret, (int)ret->w, (int)ret->p, width, height);
 #endif
 
   return ret;
@@ -133,7 +133,7 @@ void x_events(gui *_gui)
   struct x_connection *x = g->x;
   struct toplevel_window_widget *w;
 
-printf("x_events START\n");
+  LOGD("x_events START\n");
   /* preprocessing (to "compress" events) */
   cur = g->toplevel;
   while (cur) {
@@ -149,7 +149,7 @@ printf("x_events START\n");
   while (XPending(x->d)) {
     XEvent ev;
     XNextEvent(x->d, &ev);
-printf("XEV %d\n", ev.type);
+    LOGD("XEV %d\n", ev.type);
     switch (ev.type) {
     case MapNotify:
     case Expose:
@@ -166,7 +166,7 @@ printf("XEV %d\n", ev.type);
         xw->new_height = ev.xconfigure.height;
         if (xw->new_width < 10) xw->new_width = 10;
         if (xw->new_height < 10) xw->new_height = 10;
-printf("ConfigureNotify %d %d\n", ev.xconfigure.width, ev.xconfigure.height);
+        LOGD("ConfigureNotify %d %d\n", ev.xconfigure.width, ev.xconfigure.height);
       }
       break;
     case ButtonPress:
@@ -194,14 +194,14 @@ printf("ConfigureNotify %d %d\n", ev.xconfigure.width, ev.xconfigure.height);
   }
 
   /* postprocessing */
-printf("post processing\n");
+  LOGD("post processing\n");
   cur = g->toplevel;
   while (cur) {
     struct toplevel_window_widget *w =
         (struct toplevel_window_widget *)cur->item;
     struct x_window *xw = w->x;
     if (xw->resize) {
-printf("resize old %d %d new %d %d\n", xw->width, xw->height, xw->new_width, xw->new_height);
+      LOGD("resize old %d %d new %d %d\n", xw->width, xw->height, xw->new_width, xw->new_height);
       if (xw->width != xw->new_width || xw->height != xw->new_height) {
         w->common.allocate(g, w, 0, 0, xw->new_width, xw->new_height);
         xw->width = xw->new_width;
@@ -220,13 +220,13 @@ printf("resize old %d %d new %d %d\n", xw->width, xw->height, xw->new_width, xw-
     }
     if (xw->redraw) {
       struct x_connection *x = g->x;
-printf("XCopyArea w h %d %d\n", xw->width, xw->height);
+      LOGD("XCopyArea w h %d %d\n", xw->width, xw->height);
       XCopyArea(x->d, xw->p, xw->w, x->colors[1],
           0, 0, xw->width, xw->height, 0, 0);
     }
     cur = cur->next;
   }
-printf("x_events DONE\n");
+  LOGD("x_events DONE\n");
 }
 
 void x_flush(x_connection *_x)
@@ -248,7 +248,7 @@ void x_text_get_dimensions(x_connection *_c, const char *t,
   XQueryTextExtents(c->d, XGContextFromGC(c->colors[1]), t, strlen(t),
       &dir, &ascent, &descent, &overall);
 
-//printf("dir %d ascent %d descent %d lbearing %d rbearing %d width %d ascent %d descent %d\n", dir, ascent, descent, overall.lbearing, overall.rbearing, overall.width, overall.ascent, overall.descent);
+//LOGD("dir %d ascent %d descent %d lbearing %d rbearing %d width %d ascent %d descent %d\n", dir, ascent, descent, overall.lbearing, overall.rbearing, overall.width, overall.ascent, overall.descent);
 
   *width = overall.width;
   *height = ascent + descent;
@@ -308,7 +308,7 @@ void x_draw(x_connection *_c, x_window *_w)
 {
   struct x_connection *c = _c;
   struct x_window *w = _w;
-printf("x_draw XCopyArea w h %d %d display %p window %d pixmap %d\n", w->width, w->height, c->d, (int)w->w, (int)w->p);
+  LOGD("x_draw XCopyArea w h %d %d display %p window %d pixmap %d\n", w->width, w->height, c->d, (int)w->w, (int)w->p);
   XCopyArea(c->d, w->p, w->w, c->colors[1], 0, 0, w->width, w->height, 0, 0);
 }
 
@@ -333,7 +333,7 @@ void x_add_point(x_connection *_c, int x, int y)
 void x_plot_points(x_connection *_c, x_window *_w, int color)
 {
   struct x_connection *c = _c;
-fprintf(stderr, "x_plot_points %d points\n", c->pts_size);
+  LOGD("x_plot_points %d points\n", c->pts_size);
   struct x_window *w = _w;
   XDrawPoints(c->d, w->p, c->colors[color], c->pts, c->pts_size,
       CoordModeOrigin);
diff --git a/common/utils/T/tracer/gui/xy_plot.c b/common/utils/T/tracer/gui/xy_plot.c
index 3c0b05f60d..c1ca608f49 100644
--- a/common/utils/T/tracer/gui/xy_plot.c
+++ b/common/utils/T/tracer/gui/xy_plot.c
@@ -24,7 +24,7 @@ static void paint(gui *_gui, widget *_this)
 
 # define FLIP(v) (-(v) + allocated_plot_height-1)
 
-printf("PAINT xy plot xywh %d %d %d %d\n", this->common.x, this->common.y, this->common.width, this->common.height);
+  LOGD("PAINT xy plot xywh %d %d %d %d\n", this->common.x, this->common.y, this->common.width, this->common.height);
 
 //x_draw_rectangle(g->x, g->xwin, 1, this->common.x, this->common.y, this->common.width, this->common.height);
 
@@ -52,14 +52,14 @@ printf("PAINT xy plot xywh %d %d %d %d\n", this->common.x, this->common.y, this-
   allocated_xmax = center + ((this->xmax - this->xmin) *
                              allocated_plot_width / wanted_plot_width) / 2;
   /* adjust tic if too tight */
-printf("pre x ticstep %g\n", ticstep);
+  LOGD("pre x ticstep %g\n", ticstep);
   while (1) {
     if (ticstep / (allocated_xmax - allocated_xmin)
                 * (allocated_plot_width - 1) > 40) break;
     ticstep *= 2;
   }
-printf("post x ticstep %g\n", ticstep);
-printf("xmin/max %g %g width wanted allocated %d %d alloc xmin/max %g %g ticstep %g\n", this->xmin, this->xmax, wanted_plot_width, allocated_plot_width, allocated_xmin, allocated_xmax, ticstep);
+  LOGD("post x ticstep %g\n", ticstep);
+  LOGD("xmin/max %g %g width wanted allocated %d %d alloc xmin/max %g %g ticstep %g\n", this->xmin, this->xmax, wanted_plot_width, allocated_plot_width, allocated_xmin, allocated_xmax, ticstep);
   kmin = ceil(allocated_xmin / ticstep);
   kmax = floor(allocated_xmax / ticstep);
   for (k = kmin; k <= kmax; k++) {
@@ -84,7 +84,7 @@ printf("xmin/max %g %g width wanted allocated %d %d alloc xmin/max %g %g ticstep
         this->common.y + this->common.height - this->label_height * 2 +
             this->label_baseline,
         v);
-printf("tic k %d val %g x %g\n", k, k * ticstep, x);
+    LOGD("tic k %d val %g x %g\n", k, k * ticstep, x);
   }
 
   /* vertical tics */
@@ -98,14 +98,14 @@ printf("tic k %d val %g x %g\n", k, k * ticstep, x);
   allocated_ymax = center + ((this->ymax - this->ymin) *
                              allocated_plot_height / wanted_plot_height) / 2;
   /* adjust tic if too tight */
-printf("pre y ticstep %g\n", ticstep);
+  LOGD("pre y ticstep %g\n", ticstep);
   while (1) {
     if (ticstep / (allocated_ymax - allocated_ymin)
                 * (allocated_plot_height - 1) > 20) break;
     ticstep *= 2;
   }
-printf("post y ticstep %g\n", ticstep);
-printf("ymin/max %g %g height wanted allocated %d %d alloc ymin/max %g %g ticstep %g\n", this->ymin, this->ymax, wanted_plot_height, allocated_plot_height, allocated_ymin, allocated_ymax, ticstep);
+  LOGD("post y ticstep %g\n", ticstep);
+  LOGD("ymin/max %g %g height wanted allocated %d %d alloc ymin/max %g %g ticstep %g\n", this->ymin, this->ymax, wanted_plot_height, allocated_plot_height, allocated_ymin, allocated_ymax, ticstep);
   kmin = ceil(allocated_ymin / ticstep);
   kmax = floor(allocated_ymax / ticstep);
   for (k = kmin; k <= kmax; k++) {
@@ -158,7 +158,7 @@ static void hints(gui *_gui, widget *_w, int *width, int *height)
   struct xy_plot_widget *w = _w;
   *width = w->wanted_width + w->vrule_width;
   *height = w->wanted_height + w->label_height * 2; /* TODO: refine */
-printf("HINTS xy plot wh %d %d (vrule_width %d) (wanted wh %d %d)\n", *width, *height, w->vrule_width, w->wanted_width, w->wanted_height);
+  LOGD("HINTS xy plot wh %d %d (vrule_width %d) (wanted wh %d %d)\n", *width, *height, w->vrule_width, w->wanted_width, w->wanted_height);
 }
 
 widget *new_xy_plot(gui *_gui, int width, int height, char *label,
@@ -176,7 +176,7 @@ widget *new_xy_plot(gui *_gui, int width, int height, char *label,
    * not in the "gui thread") */
   x_text_get_dimensions(g->x, label, &w->label_width, &w->label_height,
       &w->label_baseline);
-printf("XY PLOT label wh %d %d\n", w->label_width, w->label_height);
+  LOGD("XY PLOT label wh %d %d\n", w->label_width, w->label_height);
 
   w->wanted_width = width;
   w->wanted_height = height;
-- 
GitLab