1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
#ifndef HIGHLIGHT_LABEL_GL_INCLUDED
#define HIGHLIGHT_LABEL_GL_INCLUDED
#include "minorGems/graphics/openGL/gui/LabelGL.h"
#include "minorGems/graphics/Color.h"
// a label with a highlight that can be turned on and off
class HighlightLabelGL : public LabelGL {
public:
// same params as LabelGL
HighlightLabelGL( double inAnchorX, double inAnchorY, double inWidth,
double inHeight, const char *inString,
TextGL *inText )
: LabelGL( inAnchorX, inAnchorY, inWidth,
inHeight, inString, inText ),
mHighlightOn( false ), mHighlightColor( 1.0, 0.5, 0 ) {
}
void setHighlight( char inHighlightOn ) {
mHighlightOn = inHighlightOn;
}
char isHighlightOn() {
return mHighlightOn;
}
// override fireRedraw in LabelGL
virtual void fireRedraw();
protected:
char mHighlightOn;
Color mHighlightColor;
};
inline void HighlightLabelGL::fireRedraw() {
Color *oldColor = NULL;
if( mHighlightOn ) {
oldColor = mText->getFontColor()->copy();
mText->setFontColor( mHighlightColor.copy() );
}
mText->drawText( mString, mAnchorX, mAnchorY,
mWidth, mHeight );
if( mHighlightOn ) {
mText->setFontColor( oldColor );
}
}
#endif
|