Humble Framework for SkyOS


Main Page | Modules | Class Hierarchy | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

HColor.h

Go to the documentation of this file.
00001 /****************************************************************************
00002 **
00003 **  $Header: /SkyOS.root/HFramework/HColor.h 6     4/17/05 12:29p Lee Neuse $
00004 **
00005 ****************************************************************************/
00012 #ifndef HCOLOR_H
00013     #define HCOLOR_H
00014 /*  ----------------------------------------------------------------------
00015     Color constants
00016     ----------------------------------------------------------------------  */
00020 namespace Humble
00021     {
00023     const COLOR     kClrDebug       = MAKE_COLOR(255,0,255);
00025     const COLOR     kClrWindowDark  = MAKE_COLOR(85,85,85);
00027     const COLOR     kClrWindowFrame = MAKE_COLOR(170,170,170);
00029     const COLOR     kClrWindowLight = MAKE_COLOR(210,210,210);
00031     const COLOR     kClrWindowBack  = MAKE_COLOR(204,204,204);
00032         
00033     const float NO_TINT     = 1.0F;     // 216 --> 216.0 (216)
00034 
00035     const float LIGHTEN_1   = 0.590F;   // 216 --> 232.0 (232)
00036     const float LIGHTEN_2   = 0.385F;   // 216 --> 240.0 (240)
00037     const float LIGHTEN_MAX = 0.0F; // 216 --> 255.0 (255)
00038 
00039     const float DARKEN_1    = 1.147F;   // 216 --> 184.2 (184)
00040     const float DARKEN_2    = 1.295F;   // 216 --> 152.3 (152)
00041     const float DARKEN_3    = 1.407F;   // 216 --> 128.1 (128)
00042     const float DARKEN_4    = 1.555F;   // 216 -->  96.1  (96)
00043     const float DARKEN_MAX  = 2.0F;     // 216 -->   0.0   (0)
00044     };
00270 class HColor : public HObj
00271     {
00272     typedef HObj        base_class;
00273     static StringPtr    ClassName(void)
00274                             { return "HColor"; }
00275 /*  ----------------------------------------------------------------------
00276     VARIABLES
00277     ----------------------------------------------------------------------  */
00278 protected:
00279     COLOR               m_color;        
00280 public:
00281     typedef enum
00282         {
00283         none                 = MAKE_COLOR(0xFF, 0x00, 0xFF),
00284         aliceblue            = MAKE_COLOR(0xF0, 0xF8, 0xFF), 
00285         antiquewhite         = MAKE_COLOR(0xFA, 0xEB, 0xD7), 
00286         aqua                 = MAKE_COLOR(0x00, 0xFF, 0xFF), 
00287         aquamarine           = MAKE_COLOR(0x7F, 0xFF, 0xD4), 
00288         azure                = MAKE_COLOR(0xF0, 0xFF, 0xFF), 
00289         beige                = MAKE_COLOR(0xF5, 0xF5, 0xDC), 
00290         bisque               = MAKE_COLOR(0xFF, 0xE4, 0xC4), 
00291         black                = MAKE_COLOR(0x00, 0x00, 0x00), 
00292         blanchedalmond       = MAKE_COLOR(0xFF, 0xEB, 0xCD), 
00293         blue                 = MAKE_COLOR(0x00, 0x00, 0xFF), 
00294         blueviolet           = MAKE_COLOR(0x8A, 0x2B, 0xE2), 
00295         brown                = MAKE_COLOR(0xA5, 0x2A, 0x2A), 
00296         burlywood            = MAKE_COLOR(0xDE, 0xB8, 0x87), 
00297         cadetblue            = MAKE_COLOR(0x5F, 0x9E, 0xA0), 
00298         chartreuse           = MAKE_COLOR(0x7F, 0xFF, 0x00), 
00299         chocolate            = MAKE_COLOR(0xD2, 0x69, 0x1E), 
00300         coral                = MAKE_COLOR(0xFF, 0x7F, 0x50), 
00301         cornflower           = MAKE_COLOR(0x64, 0x95, 0xED), 
00302         cornsilk             = MAKE_COLOR(0xFF, 0xF8, 0xDC), 
00303         crimson              = MAKE_COLOR(0xDC, 0x14, 0x3C), 
00304         cyan                 = MAKE_COLOR(0x00, 0xFF, 0xFF), 
00305         darkblue             = MAKE_COLOR(0x00, 0x00, 0x8B), 
00306         darkcyan             = MAKE_COLOR(0x00, 0x8B, 0x8B), 
00307         darkgoldenrod        = MAKE_COLOR(0xB8, 0x86, 0x0B), 
00308         darkgray             = MAKE_COLOR(0xA9, 0xA9, 0xA9), 
00309         darkgreen            = MAKE_COLOR(0x00, 0x64, 0x00), 
00310         darkkhaki            = MAKE_COLOR(0xBD, 0xB7, 0x6B), 
00311         darkmagenta          = MAKE_COLOR(0x8B, 0x00, 0x8B), 
00312         darkolivegreen       = MAKE_COLOR(0x55, 0x6B, 0x2F), 
00313         darkorange           = MAKE_COLOR(0xFF, 0x8C, 0x00), 
00314         darkorchid           = MAKE_COLOR(0x99, 0x32, 0xCC), 
00315         darkred              = MAKE_COLOR(0x8B, 0x00, 0x00), 
00316         darksalmon           = MAKE_COLOR(0xE9, 0x96, 0x7A), 
00317         darkseagreen         = MAKE_COLOR(0x8F, 0xBC, 0x8B), 
00318         darkslateblue        = MAKE_COLOR(0x48, 0x3D, 0x8B), 
00319         darkslategray        = MAKE_COLOR(0x2F, 0x4F, 0x4F), 
00320         darkturquoise        = MAKE_COLOR(0x00, 0xCE, 0xD1), 
00321         darkviolet           = MAKE_COLOR(0x94, 0x00, 0xD3), 
00322         deeppink             = MAKE_COLOR(0xFF, 0x14, 0x93), 
00323         deepskyblue          = MAKE_COLOR(0x00, 0xBF, 0xFF), 
00324         dimgray              = MAKE_COLOR(0x69, 0x69, 0x69), 
00325         dodgerblue           = MAKE_COLOR(0x1E, 0x90, 0xFF), 
00326         firebrick            = MAKE_COLOR(0xB2, 0x22, 0x22), 
00327         floralwhite          = MAKE_COLOR(0xFF, 0xFA, 0xF0), 
00328         forestgreen          = MAKE_COLOR(0x22, 0x8B, 0x22), 
00329         fuchsia              = MAKE_COLOR(0xFF, 0x00, 0xFF), 
00330         gainsboro            = MAKE_COLOR(0xDC, 0xDC, 0xDC), 
00331         ghostwhite           = MAKE_COLOR(0xF8, 0xF8, 0xFF), 
00332         gold                 = MAKE_COLOR(0xFF, 0xD7, 0x00), 
00333         goldenrod            = MAKE_COLOR(0xDA, 0xA5, 0x20), 
00334         gray                 = MAKE_COLOR(0x80, 0x80, 0x80), 
00335         green                = MAKE_COLOR(0x00, 0x80, 0x00), 
00336         greenyellow          = MAKE_COLOR(0xAD, 0xFF, 0x2F), 
00337         honeydew             = MAKE_COLOR(0xF0, 0xFF, 0xF0), 
00338         hotpink              = MAKE_COLOR(0xFF, 0x69, 0xB4), 
00339         indianred            = MAKE_COLOR(0xCD, 0x5C, 0x5C), 
00340         indigo               = MAKE_COLOR(0x4B, 0x00, 0x82), 
00341         ivory                = MAKE_COLOR(0xFF, 0xFF, 0xF0), 
00342         khaki                = MAKE_COLOR(0xF0, 0xE6, 0x8C), 
00343         lavender             = MAKE_COLOR(0xE6, 0xE6, 0xFA), 
00344         lavenderblush        = MAKE_COLOR(0xFF, 0xF0, 0xF5), 
00345         lawngreen            = MAKE_COLOR(0x7C, 0xFC, 0x00), 
00346         lemonchiffon         = MAKE_COLOR(0xFF, 0xFA, 0xCD), 
00347         lightblue            = MAKE_COLOR(0xAD, 0xD8, 0xE6), 
00348         lightcoral           = MAKE_COLOR(0xF0, 0x80, 0x80), 
00349         lightcyan            = MAKE_COLOR(0xE0, 0xFF, 0xFF), 
00350         lightgoldenrodyellow = MAKE_COLOR(0xFA, 0xFA, 0xD2), 
00351         lightgreen           = MAKE_COLOR(0x90, 0xEE, 0x90), 
00352         lightgrey            = MAKE_COLOR(0xD3, 0xD3, 0xD3), 
00353         lightpink            = MAKE_COLOR(0xFF, 0xB6, 0xC1), 
00354         lightsalmon          = MAKE_COLOR(0xFF, 0xA0, 0x7A), 
00355         lightseagreen        = MAKE_COLOR(0x20, 0xB2, 0xAA), 
00356         lightskyblue         = MAKE_COLOR(0x87, 0xCE, 0xFA),
00357         lightslategray       = MAKE_COLOR(0x77, 0x88, 0x99), 
00358         lightsteelblue       = MAKE_COLOR(0xB0, 0xC4, 0xDE), 
00359         lightyellow          = MAKE_COLOR(0xFF, 0xFF, 0xE0), 
00360         lime                 = MAKE_COLOR(0x00, 0xFF, 0x00), 
00361         limegreen            = MAKE_COLOR(0x32, 0xCD, 0x32), 
00362         linen                = MAKE_COLOR(0xFA, 0xF0, 0xE6), 
00363         magenta              = MAKE_COLOR(0xFF, 0x00, 0xFF), 
00364         maroon               = MAKE_COLOR(0x80, 0x00, 0x00), 
00365         mediumaquamarine     = MAKE_COLOR(0x66, 0xCD, 0xAA), 
00366         mediumblue           = MAKE_COLOR(0x00, 0x00, 0xCD), 
00367         mediumorchid         = MAKE_COLOR(0xBA, 0x55, 0xD3), 
00368         mediumpurple         = MAKE_COLOR(0x93, 0x70, 0xDB), 
00369         mediumseagreen       = MAKE_COLOR(0x3C, 0xB3, 0x71), 
00370         mediumslateblue      = MAKE_COLOR(0x7B, 0x68, 0xEE),
00371         mediumspringgreen    = MAKE_COLOR(0x00, 0xFA, 0x9A), 
00372         mediumturquoise      = MAKE_COLOR(0x48, 0xD1, 0xCC), 
00373         mediumvioletred      = MAKE_COLOR(0xC7, 0x15, 0x85), 
00374         midnightblue         = MAKE_COLOR(0x19, 0x19, 0x70), 
00375         mintcream            = MAKE_COLOR(0xF5, 0xFF, 0xFA), 
00376         mistyrose            = MAKE_COLOR(0xFF, 0xE4, 0xE1),
00377         moccasin             = MAKE_COLOR(0xFF, 0xE4, 0xB5), 
00378         navajowhite          = MAKE_COLOR(0xFF, 0xDE, 0xAD), 
00379         navy                 = MAKE_COLOR(0x00, 0x00, 0x80), 
00380         oldlace              = MAKE_COLOR(0xFD, 0xF5, 0xE6), 
00381         olive                = MAKE_COLOR(0x80, 0x80, 0x00), 
00382         olivedrab            = MAKE_COLOR(0x6B, 0x8E, 0x23), 
00383         orange               = MAKE_COLOR(0xFF, 0xA5, 0x00), 
00384         orangered            = MAKE_COLOR(0xFF, 0x45, 0x00), 
00385         orchid               = MAKE_COLOR(0xDA, 0x70, 0xD6), 
00386         palegoldenrod        = MAKE_COLOR(0xEE, 0xE8, 0xAA), 
00387         palegreen            = MAKE_COLOR(0x98, 0xFB, 0x98), 
00388         paleturquoise        = MAKE_COLOR(0xAF, 0xEE, 0xEE), 
00389         palevioletred        = MAKE_COLOR(0xDB, 0x70, 0x93), 
00390         papayawhip           = MAKE_COLOR(0xFF, 0xEF, 0xD5), 
00391         peachpuff            = MAKE_COLOR(0xFF, 0xDA, 0xB9), 
00392         peru                 = MAKE_COLOR(0xCD, 0x85, 0x3F), 
00393         pink                 = MAKE_COLOR(0xFF, 0xC0, 0xCB), 
00394         plum                 = MAKE_COLOR(0xDD, 0xA0, 0xDD), 
00395         powderblue           = MAKE_COLOR(0xB0, 0xE0, 0xE6), 
00396         purple               = MAKE_COLOR(0x80, 0x00, 0x80), 
00397         red                  = MAKE_COLOR(0xFF, 0x00, 0x00),
00398         rosybrown            = MAKE_COLOR(0xBC, 0x8F, 0x8F),
00399         royalblue            = MAKE_COLOR(0x41, 0x69, 0xE1), 
00400         saddlebrown          = MAKE_COLOR(0x8B, 0x45, 0x13), 
00401         salmon               = MAKE_COLOR(0xFA, 0x80, 0x72), 
00402         sandybrown           = MAKE_COLOR(0xF4, 0xA4, 0x60), 
00403         seagreen             = MAKE_COLOR(0x2E, 0x8B, 0x57), 
00404         seashell             = MAKE_COLOR(0xFF, 0xF5, 0xEE), 
00405         sienna               = MAKE_COLOR(0xA0, 0x52, 0x2D), 
00406         silver               = MAKE_COLOR(0xC0, 0xC0, 0xC0), 
00407         skyblue              = MAKE_COLOR(0x87, 0xCE, 0xEB), 
00408         slateblue            = MAKE_COLOR(0x6A, 0x5A, 0xCD), 
00409         slategray            = MAKE_COLOR(0x70, 0x80, 0x90), 
00410         snow                 = MAKE_COLOR(0xFF, 0xFA, 0xFA), 
00411         springgreen          = MAKE_COLOR(0x00, 0xFF, 0x7F), 
00412         steelblue            = MAKE_COLOR(0x46, 0x82, 0xB4), 
00413         tan                  = MAKE_COLOR(0xD2, 0xB4, 0x8C), 
00414         teal                 = MAKE_COLOR(0x00, 0x80, 0x80), 
00415         thistle              = MAKE_COLOR(0xD8, 0xBF, 0xD8), 
00416         tomato               = MAKE_COLOR(0xFF, 0x63, 0x47), 
00417         turquoise            = MAKE_COLOR(0x40, 0xE0, 0xD0), 
00418         violet               = MAKE_COLOR(0xEE, 0x82, 0xEE), 
00419         wheat                = MAKE_COLOR(0xF5, 0xDE, 0xB3), 
00420         white                = MAKE_COLOR(0xFF, 0xFF, 0xFF), 
00421         whitesmoke           = MAKE_COLOR(0xF5, 0xF5, 0xF5), 
00422         yellow               = MAKE_COLOR(0xFF, 0xFF, 0x00), 
00423         yellowgreen          = MAKE_COLOR(0x9A, 0xCD, 0x32)
00424         }   NamedColor;         
00425 /*  ----------------------------------------------------------------------
00426     CTOR / DTOR
00427     ----------------------------------------------------------------------  */
00428 public:
00429     HColor(void) : m_color(cBlack)
00430         { /* EMPTY CTOR */ }
00431     HColor(const COLOR & color) : m_color(color)
00432         { /* EMPTY CTOR */ }
00433     HColor(int32 nR, int32 nG, int32 nB)
00434         { SetRGB(nR, nG, nB); }
00435     virtual 
00436     ~HColor(void)
00437         { /* EMPTY DTOR */ }
00438 /*  ----------------------------------------------------------------------
00439     METHODS
00440     ----------------------------------------------------------------------  */
00441 protected:
00451     static uint8
00452     boundRGB(int32 nVal)
00453         { return max(min(nVal, UINT8_MAX), 0); }
00462     static uint8
00463     toRGB(float rm1, float rm2, float rh)
00464         {
00465         while (rh > 360.0f)
00466             rh -= 360.0f;
00467         
00468         while (rh < 0.0f) 
00469             rh += 360.0f;
00470 
00471         if (rh <  60.0f) 
00472             rm1 = rm1 + (rm2 - rm1) * rh / 60.0f;   
00473         else if (rh < 180.0f) 
00474             rm1 = rm2;
00475         else if (rh < 240.0f) 
00476             rm1 = rm1 + (rm2 - rm1) * (240.0f - rh) / 60.0f;      
00477                     
00478         return boundRGB( int32(rm1 * UINT8_MAX) );
00479         }
00480 public:
00488     static COLOR
00489     Tint(COLOR color, float fAmount)
00490         {
00491         if (fAmount)
00492             {
00493             int32       nR, nG, nB;
00494             
00495 #define LIGHTEN(x) (uint8(255.0f - (255.0f - x) * fAmount))
00496 #define DARKEN(x)  (uint8(x * (2 - fAmount)))
00497 
00498             if (fAmount < 1.0f)
00499                 {
00500                 nR = LIGHTEN( COLOR_RED(color) );
00501                 nG = LIGHTEN( COLOR_GREEN(color) );
00502                 nB = LIGHTEN( COLOR_BLUE(color) );
00503                 }
00504             else
00505                 {
00506                 nR = DARKEN( COLOR_RED(color) );
00507                 nG = DARKEN( COLOR_GREEN(color) );
00508                 nB = DARKEN( COLOR_BLUE(color) );
00509                 }
00510 
00511 #undef LIGHTEN
00512 #undef DARKEN
00513             
00514             color = MAKE_COLOR( boundRGB(nR), 
00515                                 boundRGB(nG), 
00516                                 boundRGB(nB));
00517             }
00518         else
00519             { 
00520             DEBUG_LOG("HColor::Brighten() => zero adjustment\n");
00521             }
00522             
00523         return color;
00524         }
00540     static void
00541     ConvertToHLS(const COLOR & color, float & fHue, float & fLum, float & fSat) throw()
00542         {
00543         const int32 nR = COLOR_RED(color),
00544                     nG = COLOR_GREEN(color),
00545                     nB = COLOR_BLUE(color),
00546                     nMax = max(nR, max(nG, nB)),
00547                     nMin = min(nR, min(nG, nB));
00548         const float fDiff = float(nMax) - float(nMin),
00549                     fSum  = float(nMax) + float(nMin);
00550         
00551         fLum = fSum / 510.0f;
00552 
00553         if (fDiff != 0.0) 
00554             {
00555             const float fNormR = (nMax - nR) / fDiff,      
00556                         fNormG = (nMax - nG) / fDiff,
00557                         fNormB = (nMax - nB) / fDiff; 
00558 
00559             if (fLum <= 0.5f) 
00560                 {
00561                 if (fSum == 0.0)
00562                     HError::Throw(ERR_DIV_ZERO, __FILE__,__LINE__);
00563                 
00564                 fSat = fDiff / fSum;
00565                 }
00566             else
00567                 fSat = fDiff / (510.0f - fSum);
00568 
00569             if (nR == nMax) 
00570                 fHue = 60.0f * (6.0f + fNormB - fNormG);
00571             if (nG == nMax) 
00572                 fHue = 60.0f * (2.0f + fNormR - fNormB);
00573             if (nB == nMax) 
00574                 fHue = 60.0f * (4.0f + fNormG - fNormR);
00575 
00576             while (fHue > 360.0f) 
00577                 fHue -= 360.0f;
00578             }
00579         else 
00580             fHue = fSat = 0.0f; 
00581         }
00597     static COLOR
00598     ConvertToRGB(float fHue, float fLum, float fSat)
00599         {
00600         int32   nR, nG, nB;
00601         
00602         if (fSat)
00603             {
00604             float   rm1, rm2;
00605                 
00606             if (fLum <= 0.5f)
00607                 rm2 = fLum + fLum * fSat;  
00608             else                     
00609                 rm2 = fLum + fSat - fLum * fSat;
00610                 
00611             rm1 = 2.0f * fLum - rm2;   
00612             nR = toRGB(rm1, rm2, fHue + 120.0f);   
00613             nG = toRGB(rm1, rm2, fHue);
00614             nB = toRGB(rm1, rm2, fHue - 120.0f);
00615             }
00616         else
00617             nR = nG = nB = boundRGB( int32(fLum * UINT8_MAX) ); 
00618         
00619         return MAKE_COLOR(nR, nG, nB);
00620         }
00626     virtual StringPtr
00627     ToString(void) const
00628         {
00629         HString     strTmp;
00630 
00631         (void) strTmp.Format("R: %d G: %d B: %d", 
00632                                 COLOR_RED(m_color), 
00633                                 COLOR_GREEN(m_color),
00634                                 COLOR_BLUE(m_color));
00635         return strTmp.GetString();
00636         }
00637 /*  ----------------------------------------------------------------------
00638     GETTERS & SETTERS
00639     ----------------------------------------------------------------------  */
00642     COLOR               Get(void) const
00643                             { return m_color; }
00653     void                GetHLS(float & fHue, float & fLum, float & fSat) const
00654                             { ConvertToHLS(m_color, fHue, fLum, fSat);  }
00664     static COLOR        GetNamedColor(HColor::NamedColor namedColor)
00665                             { return COLOR(namedColor); }
00668     inline uint8        GetRed(void) const
00669                             { return COLOR_RED(m_color); }
00672     inline uint8        GetGreen(void) const
00673                             { return COLOR_GREEN(m_color); }
00676     inline uint8        GetBlue(void) const
00677                             { return COLOR_BLUE(m_color); }
00680     inline void     Set(COLOR clr)
00681                             { m_color = clr; }
00684     inline void     SetRed(int32 nR)
00685                             { SetRGB( nR, GetGreen(), GetBlue()); }
00688     inline void     SetGreen(int32 nG)
00689                             { SetRGB(GetRed(), nG, GetBlue()); }
00692     inline void     SetBlue(int32 nB)
00693                             { SetRGB(GetRed(), GetGreen(), nB); }
00703     inline void     SetHLS(float fHue, float fLum, float fSat)
00704                             { m_color = ConvertToRGB(fHue, fLum, fSat); }
00716     inline void     SetRGB(int32 nR, int32 nG, int32 nB)
00717                             { m_color = MAKE_COLOR(boundRGB(nR), boundRGB(nG), boundRGB(nB)); }
00718 /*  ----------------------------------------------------------------------
00719     OPERATORS
00720     ----------------------------------------------------------------------  */
00721                         operator COLOR () const
00722                             { return m_color; }
00723         
00724     HColor &            operator = (const COLOR & color)
00725                             { m_color = color; return *this; }
00726     
00727     bool                operator == (const COLOR & color)
00728                             {
00729                             return (GetRed() == COLOR_RED(color) &&
00730                                     GetGreen() == COLOR_GREEN(color) &&
00731                                     GetBlue() == COLOR_BLUE(color));
00732                             }
00733 
00734     bool                operator == (const HColor & rhs)
00735                             {
00736                             return (GetRed() == rhs.GetRed() &&
00737                                     GetGreen() == rhs.GetGreen() &&
00738                                     GetBlue() == rhs.GetBlue());
00739                             }
00740 
00741     bool                operator != (const COLOR & color)
00742                             {
00743                             return (GetRed() != COLOR_RED(color) ||
00744                                     GetGreen() != COLOR_GREEN(color) ||
00745                                     GetBlue() != COLOR_BLUE(color));
00746                             }
00747     
00748     bool                operator != (const HColor & rhs)
00749                             {
00750                             return (GetRed() != rhs.GetRed() ||
00751                                     GetGreen() != rhs.GetGreen() ||
00752                                     GetBlue() != rhs.GetBlue());
00753                             }
00754     };
00766 class HColorable : HObj
00767     {
00768     typedef HObj        base_class;
00769     static StringPtr    ClassName(void) { return "HColorable"; }
00770 /*  ----------------------------------------------------------------------
00771     VARIABLES
00772     ----------------------------------------------------------------------  */
00773 protected:
00774     HColor              m_clrBG;        
00775     HColor              m_clrFG;        
00776 /*  ----------------------------------------------------------------------
00777     CTOR / DTOR
00778     ----------------------------------------------------------------------  */
00779 public:
00780     HColorable(COLOR clrBG = Humble::kClrWindowFrame, COLOR clrFG = cBlack)
00781         { SetColors(clrBG, clrFG); }
00782 
00783     virtual             
00784     ~HColorable(void)
00785         { /* EMPTY DTOR */ }
00786 /*  ----------------------------------------------------------------------
00787     GETTERS / SETTERS
00788     ----------------------------------------------------------------------  */
00791     inline COLOR        GetBackColor(void) const
00792                             { return COLOR(m_clrBG); }
00795     inline COLOR        GetForeColor(void) const
00796                             { return COLOR(m_clrFG); }
00800     COLOR               SetBackColor(COLOR clrBG)
00801                             {
00802                             COLOR   clrOld = COLOR(m_clrBG);
00803                             
00804                             m_clrBG.Set(clrBG);
00805                             return clrOld;
00806                             }
00810     COLOR               SetForeColor(COLOR clrFG)
00811                             {
00812                             COLOR   clrOld = COLOR(m_clrFG);
00813                             m_clrFG.Set(clrFG);
00814                             return clrOld;
00815                             }
00819     void                SetColors(COLOR clrBG, COLOR clrFG)
00820                             { m_clrBG = clrBG; m_clrFG = clrFG; }
00821     };
00822 
00823 #endif  // HCOLOR_H
00824 /****************************************************************************
00825 **
00826 **  $History: HColor.h $
00827  * 
00828  * *****************  Version 6  *****************
00829  * User: Lee Neuse    Date: 4/17/05    Time: 12:29p
00830  * Updated in $/SkyOS.root/HFramework
00831  * Development snapshot 050417
00832  * 
00833  * *****************  Version 5  *****************
00834  * User: Neusel       Date: 2/04/05    Time: 10:45a
00835  * Updated in $/SkyOS.root/pig/Humble
00836  * 
00837  * *****************  Version 4  *****************
00838  * User: Neusel       Date: 12/23/04   Time: 1:34p
00839  * Updated in $/SkyOS.root/pig/Humble
00840  * Posted as HFramework-debug 20041223
00841  * 
00842  * *****************  Version 3  *****************
00843  * User: Neusel       Date: 12/08/04   Time: 5:06p
00844  * Updated in $/SkyOS.root/pig/Humble
00845  * 20041208
00846  * 
00847  * *****************  Version 2  *****************
00848  * User: Neusel       Date: 11/30/04   Time: 1:01p
00849  * Updated in $/SkyOS.root/pig/Humble
00850  * Released as HUMBLE_VER 20041130.
00851  * 
00852  * *****************  Version 1  *****************
00853  * User: Neusel       Date: 11/23/04   Time: 8:24a
00854  * Created in $/SkyOS.root/pig/Humble
00855 **
00856 **  -------------------------------------------------------------------------
00857 **
00858 **  End of HColor.h
00859 **
00860 ****************************************************************************/