mirror of
				https://github.com/vcmi/vcmi.git
				synced 2025-10-31 00:07:39 +02:00 
			
		
		
		
	CLabel: add methods getWidth, setColor, setAutoRedraw
For somethign like map list we need to change CLabel data without redrawing it.
This commit is contained in:
		| @@ -63,6 +63,11 @@ std::string CLabel::getText() | ||||
| 	return text; | ||||
| } | ||||
|  | ||||
| void CLabel::setAutoRedraw(bool value) | ||||
| { | ||||
| 	autoRedraw = value; | ||||
| } | ||||
|  | ||||
| void CLabel::setText(const std::string &Txt) | ||||
| { | ||||
| 	text = Txt; | ||||
| @@ -75,6 +80,23 @@ void CLabel::setText(const std::string &Txt) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| void CLabel::setColor(const SDL_Color & Color) | ||||
| { | ||||
| 	color = Color; | ||||
| 	if(autoRedraw) | ||||
| 	{ | ||||
| 		if(bg || !parent) | ||||
| 			redraw(); | ||||
| 		else | ||||
| 			parent->redraw(); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| size_t CLabel::getWidth() | ||||
| { | ||||
| 	return graphics->fonts[font]->getStringWidth(visibleText());; | ||||
| } | ||||
|  | ||||
| CMultiLineLabel::CMultiLineLabel(Rect position, EFonts Font, EAlignment Align, const SDL_Color &Color, const std::string &Text): | ||||
| 	CLabel(position.x, position.y, Font, Align, Color, Text), | ||||
| 	visibleSize(0, 0, position.w, position.h) | ||||
|   | ||||
| @@ -47,7 +47,10 @@ public: | ||||
| 	bool autoRedraw;  //whether control will redraw itself on setTxt | ||||
|  | ||||
| 	std::string getText(); | ||||
| 	virtual void setAutoRedraw(bool option); | ||||
| 	virtual void setText(const std::string &Txt); | ||||
| 	virtual void setColor(const SDL_Color & Color); | ||||
| 	size_t getWidth(); | ||||
|  | ||||
| 	CLabel(int x=0, int y=0, EFonts Font = FONT_SMALL, EAlignment Align = TOPLEFT, | ||||
| 	       const SDL_Color &Color = Colors::WHITE, const std::string &Text =  ""); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user