/*
	addRenderText - This method adds text for rendering. Text only needs to
	be added once.
*/
void GameText::addRenderText(wstring *textToAdd,
					   int initX,
					   int initY,
					   int initWidth,
					   int initHeight)
{
	RenderText *text = new RenderText();
	text->setText(textToAdd);
	text->x = initX;
	text->y = initY;
	text->width = initWidth;
	text->height = initHeight;
	renderText.push_back(text);
}
Example #2
0
static void updateTextStyle(Text* text, RenderStyle* parentElementStyle, Style::Change change)
{
    RenderText* renderer = toRenderText(text->renderer());

    if (change != Style::NoChange && renderer)
        renderer->setStyle(parentElementStyle);

    if (!text->needsStyleRecalc())
        return;
    if (renderer)
        renderer->setText(text->dataImpl());
    else
        text->attachText();
    text->clearNeedsStyleRecalc();
}
void Text::recalcTextStyle(StyleChange change)
{
    RenderText* renderer = toRenderText(this->renderer());

    if (change != NoChange && renderer)
        renderer->setStyle(document()->ensureStyleResolver()->styleForText(this));

    if (needsStyleRecalc()) {
        if (renderer)
            renderer->setText(dataImpl());
        else
            reattach();
    }
    clearNeedsStyleRecalc();
}
/*
	changeTextOnly - Once text is added, if we want to subsequently
	change it, we may use this method.
*/
void GameText::updateRenderText(wstring *textToSet, int index)
{
	RenderText *textToUpdate = renderText.at(index);
	wstring *oldText = textToUpdate->getText();
	//// I don't know why this engine wanted to delete the string object !!!
	//// as I know, if the 

	//// If *oldText == L"scorelabel" and *textToSet == L"scorelabel",
	//// the two pointer basically point same location. It is a feature of 
	//// string class in C++. 
	//// Thus, need to make sure that the string we are deleting is not the one we will add 
	if (oldText->compare(*textToSet) == 0)
	{
		/// do nothing
	}
	else {
		delete oldText;
	}
	textToUpdate->setText(textToSet);
}