--- /dev/null
+// colour.h - Colour Structures
+//
+// (c) 2016 Xestia Software Development.
+//
+// This file is part of Xestia Calendar.
+//
+// Xestia Address Book is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by the
+// Free Software Foundation, version 3 of the license.
+//
+// Xestia Address Book is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with Xestia Calendar. If not, see <http://www.gnu.org/licenses/>
+
+#include <string>
+#include "text.h"
+
+using namespace std;
+
+struct Colour{
+
+ int red;
+ int blue;
+ int green;
+ int alpha;
+
+ operator string() {
+
+ string ColourOut;
+ string ColourOutHex;
+
+ ColourOut = "#";
+
+ // Convert the red value.
+
+ if (red > 255){
+ ColourOut += "FF";
+ } else if (red < 0) {
+ ColourOut += "00";
+ } else {
+ IntToHex(&red, &ColourOutHex, 2);
+ ColourOut += ColourOutHex;
+ }
+
+ // Convert the green value.
+
+ if (green > 255){
+ ColourOut += "FF";
+ } else if (green < 0){
+ ColourOut += "00";
+ } else {
+ IntToHex(&green, &ColourOutHex, 2);
+ ColourOut += ColourOutHex;
+ }
+
+ // Convert the blue value.
+
+ if (blue > 255){
+ ColourOut += "FF";
+ } else if (blue < 0) {
+ ColourOut += "00";
+ } else {
+ IntToHex(&blue, &ColourOutHex, 2);
+ ColourOut += ColourOutHex;
+ }
+
+ // Convert the alpha value.
+
+ if (alpha > 255){
+ ColourOut += "FF";
+ } else if (alpha < 0){
+ ColourOut += "00";
+ } else {
+ IntToHex(&alpha, &ColourOutHex, 2);
+ ColourOut += ColourOutHex;
+ }
+
+ return ColourOut;
+
+ }
+
+};
\ No newline at end of file