195 lines
		
	
	
		
			6.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			195 lines
		
	
	
		
			6.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| /*
 | |
| 文件名:MarrySystem_OpenAuditoriumList.nut
 | |
| 路径:Project/MarrySystem/MarrySystem_OpenAuditoriumList.nut
 | |
| 创建日期:2024-10-05	13:20
 | |
| 文件用途:打开礼堂列表
 | |
| */
 | |
| class LenheartNewUI_MarrySystem_OpenAuditoriumListButton extends LenheartNewUI_CommonUi {
 | |
|     State = 0;
 | |
|     BaseIdx = 29;
 | |
|     DWidth = null;
 | |
|     Path = null;
 | |
|     Idx = null;
 | |
|     Info = null;
 | |
| 
 | |
| 
 | |
|     constructor(X, Y, W, H, Path, Idx) {
 | |
|         this.DWidth = W;
 | |
|         this.Path = Path;
 | |
|         this.Idx = Idx;
 | |
|         LenheartNewUI_CommonUi.constructor(X, Y, W, H);
 | |
| 
 | |
|     }
 | |
| 
 | |
|     function SetFrame(gPath, gIdx) {
 | |
|         if (gPath) Path = gPath;
 | |
|         Idx = gIdx;
 | |
|     }
 | |
| 
 | |
|     function Show(obj) {
 | |
|         //不可用
 | |
|         if (State == 8) {
 | |
|             L_sq_DrawImg(Path, Idx + 3, X, Y + 1);
 | |
|         } else {
 | |
|             //按下
 | |
|             if (isLBDown) {
 | |
|                 L_sq_DrawImg(Path, Idx + 2, X, Y);
 | |
|             }
 | |
|             //悬停
 | |
|             else if (isInRect) {
 | |
|                 L_sq_DrawImg(Path, Idx + 1, X, Y);
 | |
|             }
 | |
|             //普通
 | |
|             else {
 | |
|                 L_sq_DrawImg(Path, Idx, X, Y);
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 | |
| class MarrySystem_OpenAuditoriumListC extends LenheartNewUI_Windows {
 | |
|     //调试模式
 | |
|     // DeBugMode = true;
 | |
| 
 | |
|     //不是窗口
 | |
|     // NoWindow = true;
 | |
| 
 | |
|     //是否可见
 | |
|     Visible = false;
 | |
| 
 | |
|     //包头
 | |
|     OP = 20078000;
 | |
| 
 | |
|     //列表
 | |
|     List = null;
 | |
| 
 | |
|     //滚动Flag
 | |
|     WheelFalg = 0;
 | |
| 
 | |
|     function Time2Str(Time) {
 | |
|         if (Time< 0) return "已开始";
 | |
|         local str = "";
 | |
|         local minutes = Time / 60;
 | |
|         local seconds = (Time % 60);
 | |
|         str += minutes + "分";
 | |
|         str += seconds + "秒";
 | |
|         return str;
 | |
|     }
 | |
| 
 | |
|     constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
 | |
|         Childrens = [];
 | |
|         List = {};
 | |
|         //注册控件
 | |
|         RegisterWidget();
 | |
| 
 | |
|         LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
 | |
|     }
 | |
| 
 | |
|     function RegisterWidget() {
 | |
|         //关闭按钮
 | |
|         local CloseButton = LenheartNewUI_BaseButton(458, 0, 11, 12, "interface/lenheartwindowcommon.img", 276);
 | |
|         CloseButton.OnClick = function() {
 | |
|             this.Visible = false;
 | |
|         }.bindenv(this);
 | |
|         Childrens.append(CloseButton);
 | |
| 
 | |
|         for (local i = 0; i< 11; i++) {
 | |
|             local ButtonBuf = LenheartNewUI_MarrySystem_OpenAuditoriumListButton(412, 112 + (i * 21), 51, 17, "interface2/wedding/weddingcardreceive.img", 7);
 | |
|             ButtonBuf.Info = i;
 | |
|             ButtonBuf.OnClickEx = function(Button) {
 | |
|                 local T = {
 | |
|                     op = OP + 15,
 | |
|                     room = List[Button.Info + WheelFalg][0]
 | |
|                 }
 | |
|                 SendPackEx(T);
 | |
|                 CloseWindow();
 | |
|             }.bindenv(this);
 | |
|             ButtonBuf.SetCallBackFunc(function(Button) {
 | |
|                 //有索引信息才显示
 | |
|                 if (Button.Info<(List.len() - WheelFalg)) {
 | |
|                     local DrawInfo = List[Button.Info + WheelFalg];
 | |
|                     //绘制举办者名字
 | |
|                     L_sq_DrawCode(DrawInfo[1], Button.X - 330 - LenheartTextClass.GetStringLength(DrawInfo[1]) / 2, Button.Y + 2, sq_RGBA(134, 120, 79, 255), 0, 1);
 | |
|                     L_sq_DrawImg("interface2/wedding/weddingreservationpopupui.img", 1, Button.X - 310, Button.Y + 2);
 | |
|                     L_sq_DrawCode(DrawInfo[5], Button.X - 285, Button.Y + 2, sq_RGBA(134, 120, 79, 255), 0, 1);
 | |
| 
 | |
|                     //绘制频道
 | |
|                     L_sq_DrawCode(DrawInfo[8], Button.X - 186, Button.Y + 2, sq_RGBA(134, 120, 79, 255), 0, 1);
 | |
| 
 | |
|                     //绘制举办时间
 | |
|                     local Time = Sq_Time();
 | |
|                     local TimeStr = Time2Str(DrawInfo[9] - Time);
 | |
|                     L_sq_DrawCode(TimeStr, Button.X - 100 - LenheartTextClass.GetStringLength(TimeStr) / 2, Button.Y + 2, sq_RGBA(134, 120, 79, 255), 0, 1);
 | |
| 
 | |
|                     //绘制人数
 | |
|                     local CountStr = DrawInfo[7].tostring();
 | |
|                     L_sq_DrawCode(CountStr, Button.X - 20 - LenheartTextClass.GetStringLength(CountStr) / 2, Button.Y + 2, sq_RGBA(134, 120, 79, 255), 0, 1);
 | |
| 
 | |
|                     Button.Visible = true;
 | |
|                 } else {
 | |
|                     Button.Visible = false;
 | |
|                 }
 | |
|             }.bindenv(this));
 | |
|             Childrens.append(ButtonBuf);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //绘制主界面
 | |
|     function DrawMain(obj) {
 | |
|         //Item信息框一般为211的宽度
 | |
|         L_sq_DrawWindow(X, Y + 10, 540 * 0.85, 340 * 0.9, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
 | |
|         L_sq_DrawWindow(X + 6, Y + 19, 528 * 0.85, 47, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
 | |
|         L_sq_DrawWindow(X + 6, Y + 79, 528 * 0.85, 236, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
 | |
| 
 | |
|         //标题栏
 | |
|         L_sq_DrawButton(X - 1, Y, 466, "interface/lenheartwindowcommon.img", 609, 2, 7);
 | |
| 
 | |
|         //绘制窗口名字
 | |
|         L_sq_DrawCode("婚礼礼堂列表", X + 200, Y + 3, sq_RGBA(134, 120, 79, 255), 0, 1);
 | |
| 
 | |
|         L_sq_DrawImg("interface2/wedding/weddingcardreceive.img", 10, X + 108, Y + 35);
 | |
| 
 | |
|         sq_DrawBox(X + 10, Y + 87, 198, 17, sq_RGBA(134, 120, 79, 255), 1);
 | |
|         L_sq_DrawCode("婚礼举办者", X + 80, Y + 90, sq_RGBA(221, 197, 147, 255), 0, 1);
 | |
| 
 | |
|         sq_DrawBox(X + 210, Y + 87, 40, 17, sq_RGBA(134, 120, 79, 255), 1);
 | |
|         L_sq_DrawCode("频道", X + 219, Y + 90, sq_RGBA(221, 197, 147, 255), 0, 1);
 | |
| 
 | |
|         sq_DrawBox(X + 252, Y + 87, 122, 17, sq_RGBA(134, 120, 79, 255), 1);
 | |
|         L_sq_DrawCode("举办时间", X + 289, Y + 90, sq_RGBA(221, 197, 147, 255), 0, 1);
 | |
| 
 | |
| 
 | |
|         sq_DrawBox(X + 376, Y + 87, 32, 17, sq_RGBA(134, 120, 79, 255), 1);
 | |
|         L_sq_DrawCode("人数", X + 380, Y + 90, sq_RGBA(221, 197, 147, 255), 0, 1);
 | |
| 
 | |
|         sq_DrawBox(X + 410, Y + 87, 54, 17, sq_RGBA(134, 120, 79, 255), 1);
 | |
|         L_sq_DrawCode("参加婚礼", X + 414, Y + 90, sq_RGBA(221, 197, 147, 255), 0, 1);
 | |
| 
 | |
|     }
 | |
| 
 | |
|     function Show(obj) {
 | |
|         DrawMain(obj);
 | |
|         LenheartNewUI_Windows.Show(obj);
 | |
| 
 | |
|     }
 | |
| 
 | |
|     //逻辑入口
 | |
|     function Proc(obj) {
 | |
|         LenheartNewUI_Windows.SyncPos(X, Y);
 | |
|     }
 | |
| 
 | |
|     //override
 | |
|     //鼠标滚轮事件回调
 | |
|     function OnMouseWheel(Flag, MousePos_X, MousePos_Y) {
 | |
| 
 | |
|         if (Flag) {
 | |
|             if (WheelFalg > 0) WheelFalg--;
 | |
|         } else {
 | |
|             if (WheelFalg<(List.len() - 11)) WheelFalg++;
 | |
|         }
 | |
| 
 | |
|         //调用原生方法
 | |
|         LenheartNewUI_Windows.OnMouseWheel(Flag, MousePos_X, MousePos_Y);
 | |
|     }
 | |
| 
 | |
| }
 | |
| getroottable().rawdelete("MarrySystem_Obj"); |