mirror of
https://github.com/hedge-dev/UnleashedRecomp.git
synced 2026-04-26 20:31:41 +00:00
installer_wizard: add toggle light to language selection
This commit is contained in:
parent
93f120ae83
commit
92e3cbea45
3 changed files with 12 additions and 9 deletions
|
|
@ -510,10 +510,11 @@ void DrawSelectionContainer(ImVec2 min, ImVec2 max, bool fadeTop)
|
||||||
drawList->AddImage(g_texSelectFill.get(), { max.x - commonWidth, max.y - commonHeight }, { max.x, max.y }, GET_UV_COORDS(br), colour);
|
drawList->AddImage(g_texSelectFill.get(), { max.x - commonWidth, max.y - commonHeight }, { max.x, max.y }, GET_UV_COORDS(br), colour);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawToggleLight(ImVec2 pos, bool isEnabled)
|
void DrawToggleLight(ImVec2 pos, bool isEnabled, float alpha)
|
||||||
{
|
{
|
||||||
auto drawList = ImGui::GetForegroundDrawList();
|
auto drawList = ImGui::GetForegroundDrawList();
|
||||||
auto lightSize = Scale(14);
|
auto lightSize = Scale(14);
|
||||||
|
auto lightCol = IM_COL32(255, 255, 255, 255 * alpha);
|
||||||
|
|
||||||
ImVec2 min = { pos.x, pos.y };
|
ImVec2 min = { pos.x, pos.y };
|
||||||
ImVec2 max = { min.x + lightSize, min.y + lightSize };
|
ImVec2 max = { min.x + lightSize, min.y + lightSize };
|
||||||
|
|
@ -527,17 +528,17 @@ void DrawToggleLight(ImVec2 pos, bool isEnabled)
|
||||||
ImVec2 lightGlowMax = { min.x + lightGlowSize, min.y + lightGlowSize };
|
ImVec2 lightGlowMax = { min.x + lightGlowSize, min.y + lightGlowSize };
|
||||||
|
|
||||||
SetAdditive(true);
|
SetAdditive(true);
|
||||||
drawList->AddImage(g_texLight.get(), lightGlowMin, lightGlowMax, GET_UV_COORDS(lightGlowUVs), IM_COL32(255, 255, 0, 127));
|
drawList->AddImage(g_texLight.get(), lightGlowMin, lightGlowMax, GET_UV_COORDS(lightGlowUVs), IM_COL32(255, 255, 0, 127 * alpha));
|
||||||
SetAdditive(false);
|
SetAdditive(false);
|
||||||
|
|
||||||
auto lightOnUVs = PIXELS_TO_UV_COORDS(64, 64, 14, 0, 14, 14);
|
auto lightOnUVs = PIXELS_TO_UV_COORDS(64, 64, 14, 0, 14, 14);
|
||||||
|
|
||||||
drawList->AddImage(g_texLight.get(), min, max, GET_UV_COORDS(lightOnUVs));
|
drawList->AddImage(g_texLight.get(), min, max, GET_UV_COORDS(lightOnUVs), lightCol);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
auto lightOffUVs = PIXELS_TO_UV_COORDS(64, 64, 0, 0, 14, 14);
|
auto lightOffUVs = PIXELS_TO_UV_COORDS(64, 64, 0, 0, 14, 14);
|
||||||
|
|
||||||
drawList->AddImage(g_texLight.get(), min, max, GET_UV_COORDS(lightOffUVs));
|
drawList->AddImage(g_texLight.get(), min, max, GET_UV_COORDS(lightOffUVs), lightCol);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -58,4 +58,4 @@ ImVec2 Lerp(const ImVec2& a, const ImVec2& b, float t);
|
||||||
ImU32 ColourLerp(ImU32 c0, ImU32 c1, float t);
|
ImU32 ColourLerp(ImU32 c0, ImU32 c1, float t);
|
||||||
void DrawVersionString(const ImFont* font, const ImU32 col = IM_COL32(255, 255, 255, 70));
|
void DrawVersionString(const ImFont* font, const ImU32 col = IM_COL32(255, 255, 255, 70));
|
||||||
void DrawSelectionContainer(ImVec2 min, ImVec2 max, bool fadeTop = false);
|
void DrawSelectionContainer(ImVec2 min, ImVec2 max, bool fadeTop = false);
|
||||||
void DrawToggleLight(ImVec2 pos, bool isEnabled);
|
void DrawToggleLight(ImVec2 pos, bool isEnabled, float alpha = 1.0f);
|
||||||
|
|
|
||||||
|
|
@ -1108,8 +1108,10 @@ static void DrawLanguagePicker()
|
||||||
bool buttonPressed = false;
|
bool buttonPressed = false;
|
||||||
if (g_currentPage == WizardPage::SelectLanguage)
|
if (g_currentPage == WizardPage::SelectLanguage)
|
||||||
{
|
{
|
||||||
bool buttonPressed;
|
float alphaMotion = ComputeMotionInstaller(g_appearTime, g_disappearTime, CONTAINER_INNER_TIME, CONTAINER_INNER_DURATION);
|
||||||
float minX, maxX;
|
float minX, maxX;
|
||||||
|
bool buttonPressed;
|
||||||
|
|
||||||
for (int i = 0; i < 6; i++)
|
for (int i = 0; i < 6; i++)
|
||||||
{
|
{
|
||||||
ComputeButtonColumnCoordinates((i < 3) ? ButtonColumnLeft : ButtonColumnRight, minX, maxX);
|
ComputeButtonColumnCoordinates((i < 3) ? ButtonColumnLeft : ButtonColumnRight, minX, maxX);
|
||||||
|
|
@ -1118,13 +1120,13 @@ static void DrawLanguagePicker()
|
||||||
ImVec2 min = { minX, g_aspectRatioOffsetY + Scale(CONTAINER_Y + CONTAINER_HEIGHT - CONTAINER_BUTTON_GAP - BUTTON_HEIGHT - minusY) };
|
ImVec2 min = { minX, g_aspectRatioOffsetY + Scale(CONTAINER_Y + CONTAINER_HEIGHT - CONTAINER_BUTTON_GAP - BUTTON_HEIGHT - minusY) };
|
||||||
ImVec2 max = { maxX, g_aspectRatioOffsetY + Scale(CONTAINER_Y + CONTAINER_HEIGHT - CONTAINER_BUTTON_GAP - minusY) };
|
ImVec2 max = { maxX, g_aspectRatioOffsetY + Scale(CONTAINER_Y + CONTAINER_HEIGHT - CONTAINER_BUTTON_GAP - minusY) };
|
||||||
|
|
||||||
// TODO: The active button should change its style to show an enabled toggle if it matches the current language.
|
auto lightSize = Scale(14);
|
||||||
|
|
||||||
DrawButton(min, max, LANGUAGE_TEXT[i], false, true, buttonPressed, FLT_MAX, LANGUAGE_ENUM[i] == ELanguage::English);
|
DrawButton(min, max, LANGUAGE_TEXT[i], false, true, buttonPressed, FLT_MAX, LANGUAGE_ENUM[i] == ELanguage::English);
|
||||||
|
DrawToggleLight({ min.x + lightSize, min.y + ((max.y - min.y) - lightSize) / 2 + Scale(1) }, Config::Language == LANGUAGE_ENUM[i], alphaMotion);
|
||||||
|
|
||||||
if (buttonPressed)
|
if (buttonPressed)
|
||||||
{
|
|
||||||
Config::Language = LANGUAGE_ENUM[i];
|
Config::Language = LANGUAGE_ENUM[i];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue