Add ability for buttons to have highlights on touch
diff --git a/gui/text.cpp b/gui/text.cpp
index 90482fe..dc7a2d1 100644
--- a/gui/text.cpp
+++ b/gui/text.cpp
@@ -38,12 +38,16 @@
     mFontHeight = 0;
 	maxWidth = 0;
 	charSkip = 0;
+	isHighlighted = false;
+	hasHighlightColor = false;
 
     if (!node)      return;
 
     // Initialize color to solid black
     memset(&mColor, 0, sizeof(COLOR));
     mColor.alpha = 255;
+	memset(&mHighlightColor, 0, sizeof(COLOR));
+    mHighlightColor.alpha = 255;
 
     attr = node->first_attribute("color");
     if (attr)
@@ -51,6 +55,13 @@
         std::string color = attr->value();
         ConvertStrToColor(color, &mColor);
     }
+	attr = node->first_attribute("highlightcolor");
+    if (attr)
+    {
+        std::string color = attr->value();
+		ConvertStrToColor(color, &mHighlightColor);
+		hasHighlightColor = true;
+    }
 
     // Load the font, and possibly override the color
     child = node->first_node("font");
@@ -66,6 +77,14 @@
             std::string color = attr->value();
             ConvertStrToColor(color, &mColor);
         }
+
+		attr = child->first_attribute("highlightcolor");
+        if (attr)
+        {
+            std::string color = attr->value();
+			ConvertStrToColor(color, &mHighlightColor);
+			hasHighlightColor = true;
+        }
     }
 
     // Load the placement
@@ -117,7 +136,10 @@
             y -= mFontHeight;
     }
 
-    gr_color(mColor.red, mColor.green, mColor.blue, mColor.alpha);
+    if (hasHighlightColor && isHighlighted)
+		gr_color(mHighlightColor.red, mHighlightColor.green, mHighlightColor.blue, mHighlightColor.alpha);
+	else
+		gr_color(mColor.red, mColor.green, mColor.blue, mColor.alpha);
 
 	if (maxWidth)
 		gr_textExW(x, y, displayValue.c_str(), fontResource, maxWidth + x);