feat(settings/user/userName): implement
This commit is contained in:
@@ -7,6 +7,7 @@ import OptionsGbaMode from "./Options/GbaMode.vue";
|
|||||||
import UserMenu from "./User/Menu.vue";
|
import UserMenu from "./User/Menu.vue";
|
||||||
import UserColor from "./User/Color.vue";
|
import UserColor from "./User/Color.vue";
|
||||||
import UserBirthday from "./User/Birthday.vue";
|
import UserBirthday from "./User/Birthday.vue";
|
||||||
|
import UserUserName from "./User/UserName.vue";
|
||||||
|
|
||||||
import ClockMenu from "./Clock/Menu.vue";
|
import ClockMenu from "./Clock/Menu.vue";
|
||||||
import ClockDate from "./Clock/Date.vue";
|
import ClockDate from "./Clock/Date.vue";
|
||||||
@@ -43,7 +44,7 @@ const { select, selected, selectorPosition } = useButtonNavigation({
|
|||||||
|
|
||||||
user: [127, 119, 49, 49],
|
user: [127, 119, 49, 49],
|
||||||
userBirthday: [79, 71, 49, 49],
|
userBirthday: [79, 71, 49, 49],
|
||||||
userName: [127, 71, 49, 49],
|
userUserName: [127, 71, 49, 49],
|
||||||
userMessage: [175, 71, 49, 49],
|
userMessage: [175, 71, 49, 49],
|
||||||
userColor: [127, 23, 49, 49],
|
userColor: [127, 23, 49, 49],
|
||||||
|
|
||||||
@@ -56,7 +57,7 @@ const { select, selected, selectorPosition } = useButtonNavigation({
|
|||||||
} else {
|
} else {
|
||||||
if (buttonName === "options") select("optionsLanguage");
|
if (buttonName === "options") select("optionsLanguage");
|
||||||
if (buttonName === "clock") select("clockAlarm");
|
if (buttonName === "clock") select("clockAlarm");
|
||||||
if (buttonName === "user") select("userName");
|
if (buttonName === "user") select("userUserName");
|
||||||
if (buttonName === "touchScreen") throw new Error("Not implemented");
|
if (buttonName === "touchScreen") throw new Error("Not implemented");
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -103,14 +104,14 @@ const { select, selected, selectorPosition } = useButtonNavigation({
|
|||||||
user: {
|
user: {
|
||||||
left: "clock",
|
left: "clock",
|
||||||
right: "touchScreen",
|
right: "touchScreen",
|
||||||
up: "userName",
|
up: "userUserName",
|
||||||
},
|
},
|
||||||
userBirthday: {
|
userBirthday: {
|
||||||
down: ["user", false],
|
down: ["user", false],
|
||||||
up: ["userColor", false],
|
up: ["userColor", false],
|
||||||
right: "userName",
|
right: "userUserName",
|
||||||
},
|
},
|
||||||
userName: {
|
userUserName: {
|
||||||
down: "user",
|
down: "user",
|
||||||
left: "userBirthday",
|
left: "userBirthday",
|
||||||
right: "userMessage",
|
right: "userMessage",
|
||||||
@@ -118,13 +119,13 @@ const { select, selected, selectorPosition } = useButtonNavigation({
|
|||||||
},
|
},
|
||||||
userMessage: {
|
userMessage: {
|
||||||
down: ["user", false],
|
down: ["user", false],
|
||||||
left: "userName",
|
left: "userUserName",
|
||||||
up: ["userColor", false],
|
up: ["userColor", false],
|
||||||
},
|
},
|
||||||
userColor: {
|
userColor: {
|
||||||
left: ["userBirthday", false],
|
left: ["userBirthday", false],
|
||||||
right: ["userMessage", false],
|
right: ["userMessage", false],
|
||||||
down: "userName",
|
down: "userUserName",
|
||||||
},
|
},
|
||||||
|
|
||||||
touchScreen: {
|
touchScreen: {
|
||||||
@@ -171,6 +172,7 @@ const viewComponents: Record<string, Component> = {
|
|||||||
|
|
||||||
userColor: UserColor,
|
userColor: UserColor,
|
||||||
userBirthday: UserBirthday,
|
userBirthday: UserBirthday,
|
||||||
|
userUserName: UserUserName,
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
64
app/components/Settings/BottomScreen/Menus/User/UserName.vue
Normal file
64
app/components/Settings/BottomScreen/Menus/User/UserName.vue
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
const store = useSettingsStore();
|
||||||
|
|
||||||
|
const { onRender } = useScreen();
|
||||||
|
const { assets: atlas } = useAssets();
|
||||||
|
const assets = atlas.images.settings.bottomScreen;
|
||||||
|
|
||||||
|
const USER_NAME = "pihkaal";
|
||||||
|
const REAL_NAME = "Stevan";
|
||||||
|
|
||||||
|
const handleCancel = () => {
|
||||||
|
store.closeSubMenu();
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleConfirm = () => {
|
||||||
|
store.closeSubMenu();
|
||||||
|
};
|
||||||
|
|
||||||
|
onRender((ctx) => {
|
||||||
|
ctx.font = "10px NDS10";
|
||||||
|
ctx.textBaseline = "top";
|
||||||
|
|
||||||
|
assets.background.draw(ctx, 0, 0);
|
||||||
|
|
||||||
|
const drawTextField = (
|
||||||
|
title: string,
|
||||||
|
text: string,
|
||||||
|
x: number,
|
||||||
|
y: number,
|
||||||
|
): void => {
|
||||||
|
// title
|
||||||
|
ctx.fillStyle = "#282828";
|
||||||
|
assets.user.nameTitle.draw(ctx, x + 12, y);
|
||||||
|
fillTextHCentered(ctx, title, x + 12, y + 4, 169);
|
||||||
|
|
||||||
|
// field
|
||||||
|
ctx.fillStyle = "#fbfbfb";
|
||||||
|
assets.user.nameField.draw(
|
||||||
|
ctx,
|
||||||
|
x,
|
||||||
|
y + assets.user.nameTitle.rect.height - 1,
|
||||||
|
);
|
||||||
|
|
||||||
|
for (let i = 0; i < text.length; i += 1, x += 16) {
|
||||||
|
ctx.fillText(text[i]!, x + 20, y + assets.user.nameTitle.rect.height + 3);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
drawTextField($t("settings.user.userName.userName"), USER_NAME, 31, 48);
|
||||||
|
drawTextField($t("settings.user.userName.firstName"), REAL_NAME, 31, 96);
|
||||||
|
});
|
||||||
|
|
||||||
|
defineOptions({ render: () => null });
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<CommonButtons
|
||||||
|
:y-offset="0"
|
||||||
|
b-label="Cancel"
|
||||||
|
a-label="Confirm"
|
||||||
|
@activate-b="handleCancel"
|
||||||
|
@activate-a="handleConfirm"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
@@ -13,7 +13,7 @@ export const SETTINGS_SUB_MENUS = [
|
|||||||
"clockTime",
|
"clockTime",
|
||||||
"clockDate",
|
"clockDate",
|
||||||
"userBirthday",
|
"userBirthday",
|
||||||
"userName",
|
"userUserName",
|
||||||
"userMessage",
|
"userMessage",
|
||||||
"userColor",
|
"userColor",
|
||||||
] as const;
|
] as const;
|
||||||
|
|||||||
@@ -59,8 +59,14 @@
|
|||||||
"description": "This is my birthday.",
|
"description": "This is my birthday.",
|
||||||
"confirmation": {
|
"confirmation": {
|
||||||
"today": "Yes, it's today!",
|
"today": "Yes, it's today!",
|
||||||
"future": "Don’t forget to wish me in {days} days!"
|
"future": "Don't forget to wish me in {days} days!"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"userName": {
|
||||||
|
"title": "User Name",
|
||||||
|
"description": "My user name and first name.",
|
||||||
|
"userName": "User Name",
|
||||||
|
"firstName": "First Name"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"touchScreen": {
|
"touchScreen": {
|
||||||
|
|||||||
BIN
public/nds/images/settings/bottom-screen/background.webp
Normal file
BIN
public/nds/images/settings/bottom-screen/background.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 94 B |
BIN
public/nds/images/settings/bottom-screen/user/name-field.png
Normal file
BIN
public/nds/images/settings/bottom-screen/user/name-field.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
BIN
public/nds/images/settings/bottom-screen/user/name-title.webp
Normal file
BIN
public/nds/images/settings/bottom-screen/user/name-title.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 74 B |
Reference in New Issue
Block a user