/* 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); }
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); }