From a81f5afcaff79de9435aa9089bcd6daffb3e9995 Mon Sep 17 00:00:00 2001
From: Silas Dohm <silas@sdohm.xyz>
Date: Tue, 21 Sep 2021 10:07:28 +0200
Subject: [PATCH] Labels support colors

---
 include/turtlesim/turtle.h | 1 +
 src/turtle.cpp             | 4 +++-
 srv/SetLabel.srv           | 3 +++
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/include/turtlesim/turtle.h b/include/turtlesim/turtle.h
index 901639c..e35615f 100644
--- a/include/turtlesim/turtle.h
+++ b/include/turtlesim/turtle.h
@@ -98,6 +98,7 @@ private:
 
   float meter_;
   bool label_on_ = false;
+  QPen pen_label_;
   QString label_ = "";
 
   struct TeleportRequest
diff --git a/src/turtle.cpp b/src/turtle.cpp
index 75db62b..a4d9dcd 100644
--- a/src/turtle.cpp
+++ b/src/turtle.cpp
@@ -94,6 +94,8 @@ bool Turtle::setPenCallback(turtlesim::SetPen::Request& req, turtlesim::SetPen::
 bool Turtle::setLabelCallback(turtlesim_xl::SetLabel::Request& req, turtlesim_xl::SetLabel::Response&){
   Turtle::label_ = QString(req.name.c_str());
   label_on_ = req.on;
+  QPen pen(QColor(req.r, req.g, req.b));
+  pen_label_ = pen;
   return true;
 }
 bool Turtle::teleportRelativeCallback(turtlesim::TeleportRelative::Request& req, turtlesim::TeleportRelative::Response&)
@@ -227,7 +229,7 @@ void Turtle::paint(QPainter& painter)
   if(label_on_){
     QPointF pl = pos_ * meter_;
     pl.rx() -= 0.3 * turtle_rotated_image_.width();
-    painter.setPen(Qt::red);
+    painter.setPen(pen_label_);
     painter.setFont(QFont("Arial",meter_/2));
     painter.drawText(pl,Turtle::label_);
   }
diff --git a/srv/SetLabel.srv b/srv/SetLabel.srv
index 772f305..4e50d87 100644
--- a/srv/SetLabel.srv
+++ b/srv/SetLabel.srv
@@ -1,2 +1,5 @@
 string name
+uint8 r
+uint8 g
+uint8 b
 uint8 on
\ No newline at end of file
-- 
GitLab