diff --git a/common/utils/T/tracer/gui/gui.h b/common/utils/T/tracer/gui/gui.h
index 78507f7f4ff17ce7fc9fb245c4e54ff27df45fe6..18f4ce3bfc96a66b9f335e2d9cb198a606fa8672 100644
--- a/common/utils/T/tracer/gui/gui.h
+++ b/common/utils/T/tracer/gui/gui.h
@@ -37,6 +37,7 @@ void xy_plot_set_range(gui *gui, widget *this,
     float xmin, float xmax, float ymin, float ymax);
 void xy_plot_set_points(gui *gui, widget *this,
     int plot, int npoints, float *x, float *y);
+void xy_plot_get_dimensions(gui *gui, widget *this, int *width, int *height);
 
 void textlist_add(gui *gui, widget *this, const char *text, int position,
     int color);
diff --git a/common/utils/T/tracer/gui/xy_plot.c b/common/utils/T/tracer/gui/xy_plot.c
index f5d5f6bdbde00033ac566bf79cfdbc4c9d2198b6..93b7f682bf8fb5d0bb737a413f342b22e6ad6017 100644
--- a/common/utils/T/tracer/gui/xy_plot.c
+++ b/common/utils/T/tracer/gui/xy_plot.c
@@ -272,3 +272,16 @@ void xy_plot_set_points(gui *_gui, widget *_this, int plot,
 
   gunlock(g);
 }
+
+void xy_plot_get_dimensions(gui *_gui, widget *_this, int *width, int *height)
+{
+  struct gui *g = _gui;
+  struct xy_plot_widget *this = _this;
+
+  glock(g);
+
+  *width = this->common.width - this->vrule_width;
+  *height = this->common.height - this->label_height * 2;
+
+  gunlock(g);
+}