void OptionProfile::Render() { JRenderer * renderer = JRenderer::GetInstance(); WFont * mFont = WResourceManager::Instance()->GetWFont(Fonts::OPTION_FONT); mFont->SetScale(1); int spacing = 2 + (int) mFont->GetHeight(); float pX, pY; pX = x; pY = y; char buf[512]; if (selections[value] == "Default") sprintf(buf, "player/avatar.jpg"); else sprintf(buf, "profiles/%s/avatar.jpg", selections[value].c_str()); string filename = buf; JQuadPtr avatar = WResourceManager::Instance()->RetrieveTempQuad(filename, TEXTURE_SUB_EXACT); if (avatar) { renderer->RenderQuad(avatar.get(), x, pY); pX += 40; } mFont->SetColor(getColor(WGuiColor::TEXT_HEADER)); mFont->DrawString(selections[value].c_str(), pX, pY + 2, JGETEXT_LEFT); mFont->SetScale(0.8f); mFont->SetColor(getColor(WGuiColor::TEXT_BODY)); mFont->DrawString(preview.c_str(), pX, pY + spacing + 2, JGETEXT_LEFT); mFont->SetScale(1.0f); }
void InteractiveButton::Render() { if (!isSelectionValid()) return; JRenderer *renderer = JRenderer::GetInstance(); WFont *mainFont = WResourceManager::Instance()->GetWFont(Fonts::MAIN_FONT); const string detailedInfoString = _(getText()); float stringWidth = mainFont->GetStringWidth(detailedInfoString.c_str()); float pspIconsSize = 0.5; float mainFontHeight = mainFont->GetHeight(); float boxStartX = getX() - 5; mXOffset = 0; mYOffset = 0; #ifndef TOUCH_ENABLED renderer->FillRoundRect(boxStartX, getY(), stringWidth - 3, mainFontHeight - 9, 5, ARGB(0, 0, 0, 0)); #else renderer->FillRoundRect(boxStartX, getY(), stringWidth - 3, mainFontHeight - 5, 5, ARGB(255, 192, 172, 119)); renderer->DrawRoundRect(boxStartX, getY(), stringWidth - 3, mainFontHeight - 5, 5, ARGB(255, 255, 255, 255)); mYOffset += 2; #endif float buttonXOffset = getX() - mXOffset; float buttonYOffset = getY() + mYOffset; if (buttonImage != NULL) { renderer->RenderQuad(buttonImage.get(), buttonXOffset - buttonImage.get()->mWidth/2, buttonYOffset + mainFontHeight/2, 0, pspIconsSize, pspIconsSize); } mainFont->SetColor(ARGB(255, 0, 0, 0)); mainFont->DrawString(detailedInfoString, buttonXOffset, buttonYOffset); }
void OptionTheme::Render() { JRenderer * renderer = JRenderer::GetInstance(); char buf[512]; if (!bChecked) { author = ""; bChecked = true; if (selections[value] == "Default") sprintf(buf, "%s", "graphics/themeinfo.txt"); else sprintf(buf, "themes/%s/themeinfo.txt", selections[value].c_str()); string contents; if (JFileSystem::GetInstance()->readIntoString(buf, contents)) { std::stringstream stream(contents); string temp; std::getline(stream, temp); for (unsigned int x = 0; x < 17 && x < temp.size(); x++) { if (isprint(temp[x])) //Clear stuff that breaks mFont->DrawString, cuts to 16 chars. author += temp[x]; } } } sprintf(buf, _("Theme: %s").c_str(), selections[value].c_str()); JQuadPtr q = getImage(); if (q) { float scale = 128 / q->mHeight; renderer->RenderQuad(q.get(), x, y, 0, scale, scale); } WFont * mFont = WResourceManager::Instance()->GetWFont(Fonts::OPTION_FONT); mFont->SetColor(getColor(WGuiColor::TEXT_HEADER)); mFont->DrawString(buf, x + 2, y + 2); if (bChecked && author.size()) { mFont->SetColor(getColor(WGuiColor::TEXT_BODY)); mFont->SetScale(0.8f); float hi = mFont->GetHeight(); sprintf(buf, _("Artist: %s").c_str(), author.c_str()); mFont->DrawString(buf, x + 2, y + getHeight() - hi); mFont->SetScale(1); } }