static void initDrawTextState(drawtextstate_t* state, short textFlags) { fr_state_attributes_t* sat = currentAttribs(); state->typeIn = (textFlags & DTF_NO_TYPEIN) == 0; state->fontNum = fr.fontNum; memcpy(state->rgba, sat->rgba, sizeof(state->rgba)); state->tracking = sat->tracking; state->glitterStrength = sat->glitterStrength; state->shadowStrength = sat->shadowStrength; state->shadowOffsetX = sat->shadowOffsetX; state->shadowOffsetY = sat->shadowOffsetY; state->leading = sat->leading; state->caseScale = sat->caseScale; state->scaleX = state->scaleY = 1; state->offX = state->offY = 0; state->angle = 0; state->typeIn = true; state->caseMod[0].scale = 1; state->caseMod[0].offset = 3; state->caseMod[1].scale = 1.25f; state->caseMod[1].offset = 0; state->lastLineHeight = FR_CharHeight('A') * state->scaleY * (1+state->leading); FR_PushAttrib(); }
void InlineListWidget::updateGeometry() { FR_PushAttrib(); FR_SetFont(page().predefinedFont(mn_page_fontid_t(font()))); Size2Raw maxSize{}; Size2Raw size; for (int i = 0; i < items().size(); ++i) { FR_TextSize(&size, items().at(i)->text().toUtf8().constData()); maxSize.width = de::max(maxSize.width, size.width); maxSize.height = de::max(maxSize.height, size.height); } geometry().setSize(Vector2ui(maxSize.width, maxSize.height)); FR_PopAttrib(); }
void LabelWidget::updateGeometry() { /// @todo What if patch replacement is disabled? if(d->patch) { patchinfo_t info; R_GetPatchInfo(*d->patch, &info); geometry().setSize(Vector2ui(info.geometry.size.width, info.geometry.size.height)); return; } FR_PushAttrib(); Size2Raw size; FR_SetFont(page().predefinedFont(mn_page_fontid_t(font()))); FR_TextSize(&size, d->text.toUtf8().constData()); geometry().setSize(Vector2ui(size.width, size.height)); FR_PopAttrib(); }