Translate use defaults button
This commit is contained in:
parent
950006fdce
commit
335bde9482
|
@ -27,9 +27,8 @@
|
|||
|
||||
#define SEPARATOR_SPACE 3
|
||||
|
||||
#define USE_DEFAULTS_X 190
|
||||
#define USE_DEFAULTS_X 286
|
||||
#define USE_DEFAULTS_Y 186
|
||||
#define USE_DEFAULTS_WIDTH 96
|
||||
#define USE_DEFAULTS_HEIGHT 16
|
||||
|
||||
struct ControllerIcon {
|
||||
|
@ -278,9 +277,10 @@ void controlsMenuInit(struct ControlsMenu* controlsMenu) {
|
|||
|
||||
controlsMenu->useDefaults = menuBuildButton(
|
||||
&gDejaVuSansFont,
|
||||
"Use Defaults",
|
||||
translationsGet(GAMEUI_USEDEFAULTS),
|
||||
USE_DEFAULTS_X, USE_DEFAULTS_Y,
|
||||
USE_DEFAULTS_WIDTH, USE_DEFAULTS_HEIGHT
|
||||
USE_DEFAULTS_HEIGHT,
|
||||
1
|
||||
);
|
||||
|
||||
controlsMenu->scrollOutline = menuBuildOutline(CONTROLS_X, CONTROLS_Y, CONTROLS_WIDTH, CONTROLS_HEIGHT, 1);
|
||||
|
@ -297,6 +297,7 @@ void controlsRebuildtext(struct ControlsMenu* controlsMenu) {
|
|||
|
||||
controlsMenuInitText(controlsMenu);
|
||||
controlsLayout(controlsMenu);
|
||||
menuRebuildButtonText(&controlsMenu->useDefaults, &gDejaVuSansFont, translationsGet(GAMEUI_USEDEFAULTS), 1);
|
||||
}
|
||||
|
||||
enum MenuDirection controlsMenuUpdate(struct ControlsMenu* controlsMenu) {
|
||||
|
@ -419,9 +420,9 @@ void controlsMenuRender(struct ControlsMenu* controlsMenu, struct RenderState* r
|
|||
gDPSetEnvColor(renderState->dl++, gSelectionOrange.r, gSelectionOrange.g, gSelectionOrange.b, gSelectionOrange.a);
|
||||
gDPFillRectangle(
|
||||
renderState->dl++,
|
||||
USE_DEFAULTS_X,
|
||||
controlsMenu->useDefaults.x,
|
||||
USE_DEFAULTS_Y,
|
||||
USE_DEFAULTS_X + USE_DEFAULTS_WIDTH,
|
||||
controlsMenu->useDefaults.x + controlsMenu->useDefaults.w,
|
||||
USE_DEFAULTS_Y + USE_DEFAULTS_HEIGHT
|
||||
);
|
||||
}
|
||||
|
@ -437,13 +438,13 @@ void controlsMenuRender(struct ControlsMenu* controlsMenu, struct RenderState* r
|
|||
|
||||
gDPPipeSync(renderState->dl++);
|
||||
gDPSetScissor(renderState->dl++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WD, SCREEN_HT);
|
||||
menuSetRenderColor(renderState, controlsMenu->selectedRow == ControllerActionCount, &gColorBlack, &gColorWhite);
|
||||
gSPDisplayList(renderState->dl++, controlsMenu->useDefaults.text);
|
||||
gDPPipeSync(renderState->dl++);
|
||||
gDPSetEnvColor(renderState->dl++, gColorWhite.r, gColorWhite.g, gColorWhite.b, gColorWhite.a);
|
||||
struct PrerenderedTextBatch* batch = prerenderedBatchStart();
|
||||
prerenderedBatchAdd(batch, controlsMenu->useDefaults.text, controlsMenu->selectedRow == ControllerActionCount ? &gColorBlack : &gColorWhite);
|
||||
renderState->dl = prerenderedBatchFinish(batch, gDejaVuSansImages, renderState->dl);
|
||||
|
||||
gDPSetScissor(renderState->dl++, G_SC_NON_INTERLACE, CONTROLS_X, CONTROLS_Y, CONTROLS_X + CONTROLS_WIDTH, CONTROLS_Y + CONTROLS_HEIGHT);
|
||||
|
||||
struct PrerenderedTextBatch* batch = prerenderedBatchStart();
|
||||
batch = prerenderedBatchStart();
|
||||
|
||||
for (int i = 0; i < ControllerActionCount; ++i) {
|
||||
prerenderedBatchAdd(batch, controlsMenu->actionRows[i].actionText, controlsMenu->selectedRow == i ? &gColorBlack : &gColorWhite);
|
||||
|
|
|
@ -158,10 +158,23 @@ Gfx* menuBuildOutline(int x, int y, int width, int height, int invert) {
|
|||
return result;
|
||||
}
|
||||
|
||||
struct MenuButton menuBuildButton(struct Font* font, char* message, int x, int y, int width, int height) {
|
||||
#define BUTTON_LEFT_PADDING 4
|
||||
#define BUTTON_RIGHT_PADDING 9
|
||||
|
||||
#define BUTTON_TOP_PADDING 2
|
||||
|
||||
struct MenuButton menuBuildButton(struct Font* font, char* message, int x, int y, int height, int rightAlign) {
|
||||
struct MenuButton result;
|
||||
|
||||
result.text = menuBuildText(font, message, x + 4, y + 2);
|
||||
result.text = menuBuildPrerenderedText(font, message, x + BUTTON_LEFT_PADDING, y + BUTTON_TOP_PADDING, SCREEN_HT);
|
||||
|
||||
int width = result.text->width + BUTTON_LEFT_PADDING + BUTTON_RIGHT_PADDING;
|
||||
|
||||
if (rightAlign) {
|
||||
x -= width;
|
||||
prerenderedTextRelocate(result.text, x + BUTTON_LEFT_PADDING, y + BUTTON_TOP_PADDING);
|
||||
}
|
||||
|
||||
result.outline = menuBuildOutline(x, y, width, height, 0);
|
||||
|
||||
result.x = x;
|
||||
|
@ -173,6 +186,23 @@ struct MenuButton menuBuildButton(struct Font* font, char* message, int x, int y
|
|||
return result;
|
||||
}
|
||||
|
||||
void menuRebuildButtonText(struct MenuButton* button, struct Font* font, char* message, int rightAlign) {
|
||||
menuFreePrerenderedDeferred(button->text);
|
||||
|
||||
button->text = menuBuildPrerenderedText(font, message, button->x + BUTTON_LEFT_PADDING, button->y + BUTTON_TOP_PADDING, SCREEN_HT);
|
||||
|
||||
int newWidth = button->text->width + BUTTON_LEFT_PADDING + BUTTON_RIGHT_PADDING;
|
||||
|
||||
if (rightAlign) {
|
||||
button->x -= newWidth - button->w;
|
||||
prerenderedTextRelocate(button->text, button->x + BUTTON_LEFT_PADDING, button->y + BUTTON_TOP_PADDING);
|
||||
}
|
||||
|
||||
button->w = newWidth;
|
||||
|
||||
menuRenderOutline(button->x, button->y, button->w, button->h, 0, button->outline);
|
||||
}
|
||||
|
||||
void menuSetRenderColor(struct RenderState* renderState, int isSelected, struct Coloru8* selected, struct Coloru8* defaultColor) {
|
||||
if (isSelected) {
|
||||
gDPSetEnvColor(renderState->dl++, selected->r, selected->g, selected->b, selected->a);
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
struct MenuButton {
|
||||
Gfx* outline;
|
||||
Gfx* text;
|
||||
struct PrerenderedText* text;
|
||||
short x, y;
|
||||
short w, h;
|
||||
};
|
||||
|
@ -58,8 +58,9 @@ Gfx* menuRerenderSolidBorder(int x, int y, int w, int h, int nx, int ny, int nw,
|
|||
Gfx* menuBuildSolidBorder(int x, int y, int w, int h, int nx, int ny, int nw, int nh);
|
||||
Gfx* menuBuildOutline(int x, int y, int width, int height, int invert);
|
||||
|
||||
struct MenuButton menuBuildButton(struct Font* font, char* message, int x, int y, int width, int height);
|
||||
struct MenuButton menuBuildButton(struct Font* font, char* message, int x, int y, int height, int rightAlign);
|
||||
void menuSetRenderColor(struct RenderState* renderState, int isSelected, struct Coloru8* selected, struct Coloru8* defaultColor);
|
||||
void menuRebuildButtonText(struct MenuButton* button, struct Font* font, char* message, int rightAlign);
|
||||
|
||||
struct MenuCheckbox menuBuildCheckbox(struct Font* font, char* message, int x, int y, int shouldUsePrerendered);
|
||||
Gfx* menuCheckboxRender(struct MenuCheckbox* checkbox, Gfx* dl);
|
||||
|
|
|
@ -22,6 +22,7 @@ hl_gameui_whitelist = {
|
|||
"GAMEUI_SAVEGAME",
|
||||
"GAMEUI_SOUNDEFFECTVOLUME",
|
||||
"GAMEUI_SUBTITLESANDSOUNDEFFECTS",
|
||||
"GAMEUI_USEDEFAULTS",
|
||||
"GAMEUI_VIDEO",
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue