Library for 3.2'' uLcd Picaso Display4D system Picaso Serial Environment Command Set web: http://www.4dsystems.com.au/product/20/67/Processors_Graphics/PICASO/
Label.cpp
- Committer:
- adelino
- Date:
- 2015-04-05
- Revision:
- 1:a74e42cf52b2
File content as of revision 1:a74e42cf52b2:
#include "Label.h" Label::Label(Screen* mScreen,UINT16 _x,UINT16 _y,string _text,Font _font,Color _colorText,Color _colorBkg): Widget(mScreen,0,_x,_y,10,10,_colorBkg) { myText=_text; myFont=_font; myColorText=_colorText; myType=OBJ_LABEL; // UINT16 largeur=0; UINT16 hauteur=16; UINT16 taille=0; UINT16 incLargeur=12; switch(_font) { // case FONT_2: incLargeur=8; hauteur=8; largeur=8; break; // case FONT_3: incLargeur=8; hauteur=12; largeur=8; break; // case FONT_1: incLargeur=5; hauteur=7; largeur=5; break; // default: incLargeur=12; hauteur=16; largeur=8; break; } //cherche taille taille=_text.size(); largeur=incLargeur*taille; if(largeur > incLargeur) largeur=largeur-incLargeur; myWidth=largeur; myHeight=hauteur; myScreen->addWidget((Widget*) this); } //----------------------------------------------------- Label::~Label(void) { } //----------------------------------------------------- void Label::draw(void) { // isVisible ? if(myIsVisible==false) { return; } // PicasoSerial* ps=0; ps=myScreen->getPicasoSerial(); if(ps!=0) { ps->draw_string(myText,myX,myY,myFont,myColorText,myColor); } ps=0; } //------------------------------------------------------ void Label::setInvisible(bool _state) { // element devient invisible if(_state==true) { if(myIsVisible==false) return; myIsVisible=false; Color c= myScreen->getColorBkg(); PicasoSerial* ps=0; ps=myScreen->getPicasoSerial(); if(ps!=0) { ps->draw_filled_rectangle(myX,myY,myX+myWidth,myY+myHeight,c); } ps=0; } // element devient visible else { myIsVisible=true; this->draw(); } } //------------------------------------------------------- void Label::setNewText(string _newText) { UINT16 hauteur=16; UINT16 incLargeur=12; UINT16 taille=0; switch(myFont) { // case FONT_2: incLargeur=8; hauteur=8; break; // case FONT_3: incLargeur=8; hauteur=12; break; // case FONT_1: incLargeur=5; hauteur=7; break; // default: incLargeur=12; hauteur=16; break; } taille=_newText.size(); myWidth=taille*incLargeur; myHeight=hauteur; myText=_newText; setInvisible(true); setInvisible(false); }