DOF/sqr/User/UI/Window/235_HUD_QuantityInput.nut

104 lines
3.5 KiB
Plaintext

/*
文件名:235_HUD_QuantityInput.nut
路径:User/UI/Window/235_HUD_QuantityInput.nut
创建日期:2025-02-07 20:24
文件用途:数量输入
*/
class _QuantityInput extends Yosin_Window {
InputBox = null;
//确认回调函数
OnConfirm = null;
constructor(Xpos, Ypos) {
// 默认构造数据
base.constructor("数量输入交互窗口" + clock(), Xpos, Ypos, 176, 72, 0);
ResetFocus();
Init();
}
function Init() {
//背景
local Bg = Yosin_NineBoxStretch(178, 75, "sprite/interface/lenheartwindowcommon.img", 97);
Addchild(Bg);
//聊天输入框
InputBox = Yosin_NumberInputBox(94, 20);
InputBox.SetPosition(43, 16);
AddUIChild(InputBox);
//数量提示文字
local TextObject = FontAssetManager.GenerateNormal("数量:", false, {
color = sq_RGBA(255, 227, 171, 250)
});
TextObject.SetPosition(11, 16);
Addchild(TextObject);
//加号按钮
local AddButton = Yosin_BaseButton(140, 12, 26, 14, "sprite/interface/lenheartwindowcommon.img", 496);
AddButton.DownSimulateOffset = false;
AddUIChild(AddButton);
AddButton.OnClick = function(btn) {
InputBox.SetNumber(InputBox.GetNumber() + 10);
InputBox.SetFocus(true);
}.bindenv(this);
//减号按钮
local SubButton = Yosin_BaseButton(140, 28, 26, 14, "sprite/interface/lenheartwindowcommon.img", 499);
SubButton.DownSimulateOffset = false;
AddUIChild(SubButton);
SubButton.OnClick = function(btn) {
InputBox.SetNumber(InputBox.GetNumber() - 10);
InputBox.SetFocus(true);
}.bindenv(this);
//确认按钮
local confirmButton = Yosin_BaseButton(28, 42, 56, 24 "sprite/interface/lenheartwindowcommon.img", 12);
confirmButton.OnClick = function(Button) {
//关闭本窗口
DestroyWindow();
if (OnConfirm) OnConfirm(InputBox.GetNumber().tointeger());
}.bindenv(this);
AddUIChild(confirmButton);
// 绘制标题
local confirmTextActor = FontAssetManager.GenerateNormal("确认", false, {
color = sq_RGBA(185, 148, 96, 255)
});
confirmTextActor.SetPosition(16, 2);
confirmButton.Addchild(confirmTextActor);
//取消按钮
local cancelButton = Yosin_BaseButton(88, 42, 56, 24 "sprite/interface/lenheartwindowcommon.img", 12);
cancelButton.OnClick = function(Button) {
//关闭本窗口
DestroyWindow();
}.bindenv(this);
AddUIChild(cancelButton);
// 绘制标题
local cancelTextActor = FontAssetManager.GenerateNormal("取消", false, {
color = sq_RGBA(185, 148, 96, 255)
});
cancelTextActor.SetPosition(16, 2);
cancelButton.Addchild(cancelTextActor);
}
//设置确认回调函数
function SetOnConfirmFunc(OnConfirm) {
this.OnConfirm = OnConfirm;
}
//ovverride
//鼠标滚轮事件回调
function OnMouseWheel(Wheel, MousePos_X, MousePos_Y, WindowInteractiveFlag) {
base.OnMouseWheel(Wheel, MousePos_X, MousePos_Y, WindowInteractiveFlag);
if (!Visible) return;
if (InputBox.IsFocus) {
if (Wheel > 0) {
InputBox.SetNumber(InputBox.GetNumber() + 1);
} else {
InputBox.SetNumber(InputBox.GetNumber() - 1);
}
}
}
}