Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added code for operator=(string) for Colour struct
authorSteve Brokenshire <sbrokenshire@xestia.co.uk>
Sun, 25 Dec 2016 01:29:21 +0000 (01:29 +0000)
committerSteve Brokenshire <sbrokenshire@xestia.co.uk>
Sun, 25 Dec 2016 01:29:21 +0000 (01:29 +0000)
source/common/colour.h

index 93d42a6..b950973 100644 (file)
@@ -17,6 +17,7 @@
 // with Xestia Calendar. If not, see <http://www.gnu.org/licenses/>
 
 #include <string>
+#include <sstream>
 #include "text.h"
 
 #ifndef __COMMON_COLOUR_H__
@@ -31,6 +32,70 @@ struct Colour{
        int green = 0;
        int alpha = 255;
 
+       Colour& operator= (string const &arg){
+
+               // Check if the size of the string is 9.
+               // Return if not.
+               
+               if (arg.size() != 9){
+                       
+                       return *this;
+                       
+               }
+               
+               // Check if the first character has a hash in.
+               // Return if not.
+               
+               if (arg.substr(0,1) != "#"){
+                       
+                       return *this;
+                       
+               }
+               
+               // Check each character (1-8) and make sure
+               // it is a number or a letter between A and F.
+               
+               for (int characterSeek = 1; characterSeek < 9; characterSeek++){
+                       
+                       int characterASCII = 0;
+                       
+                       characterASCII = arg[characterSeek];
+                       
+                       if ((characterASCII < 48 && characterASCII > 57) || (characterASCII < 65 && characterASCII > 70)){
+                               return *this;
+                       }
+                       
+               }
+               
+               istringstream hexNumber;
+               
+               // Set the red value.
+
+               hexNumber.str(arg.substr(1,2));
+               hexNumber >> hex >> this->red;
+               
+               // Set the green value.
+
+               hexNumber.clear();
+               hexNumber.str(arg.substr(3,2));
+               hexNumber >> hex >> this->green;
+               
+               // Set the blue value.
+
+               hexNumber.clear();
+               hexNumber.str(arg.substr(5,2));
+               hexNumber >> hex >> this->blue;
+               
+               // Set the alpha value.
+               
+               hexNumber.clear();
+               hexNumber.str(arg.substr(7,2));
+               hexNumber >> hex >> this->alpha;
+               
+               return *this;
+               
+       }
+       
        operator string() {
                
                string ColourOut;
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy