120 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| /*
 | |
| 文件名:Scroll_Bar.nut
 | |
| 路径:User/UI/Widget/Scroll_Bar.nut
 | |
| 创建日期:2024-12-13	23:17
 | |
| 文件用途:
 | |
| */
 | |
| //滚动条
 | |
| class Yosin_ScrollBar extends Yosin_CommonUi {
 | |
|     //控制器
 | |
|     Controller = null;
 | |
|     //是否焦点
 | |
|     IsFocus = false;
 | |
|     //上按钮
 | |
|     UpButton = null;
 | |
|     //滚动按钮
 | |
|     ScrollButton = null;
 | |
|     //下按钮
 | |
|     DownButton = null;
 | |
| 
 | |
|     //滚动条状态
 | |
|     ScrollBarState = true;
 | |
| 
 | |
|     //回调函数
 | |
|     OnChange = null;
 | |
| 
 | |
|     //Path
 | |
|     Path = "sprite/interface/lenheartwindowcommon.img";
 | |
| 
 | |
|     constructor(X, Y, H, S_H) {
 | |
|         base.constructor(X, Y, 9, H > 26 ? H : 26);
 | |
| 
 | |
|         Controller = {
 | |
|             CurPos = 0,
 | |
|         }
 | |
| 
 | |
|         //上按钮
 | |
|         UpButton = Yosin_BaseButton(0, 0, 9, 13, Path, 16);
 | |
|         //点击事件回调
 | |
|         UpButton.OnClick = function(Button) {
 | |
| 
 | |
|         }.bindenv(this);
 | |
|         AddUIChild(UpButton);
 | |
| 
 | |
|         //滚动条
 | |
|         ScrollButton = Yosin_DragButton(0, 13, 9, S_H, Path, 184, false, false, true);
 | |
|         ScrollButton.OnChange = OnChange;
 | |
|         ScrollButton.SetMaxMoveValue(Height - 26);
 | |
|         AddUIChild(ScrollButton);
 | |
| 
 | |
|         //下按钮
 | |
|         DownButton = Yosin_BaseButton(0, Height - 13, 9, 13, Path, 22);
 | |
|         //点击事件回调
 | |
|         DownButton.OnClick = function(Button) {
 | |
| 
 | |
|         }.bindenv(this);
 | |
|         AddUIChild(DownButton);
 | |
| 
 | |
|     }
 | |
| 
 | |
|     function Proc(Dt) {
 | |
|         base.Proc(Dt);
 | |
|         if (ScrollButton) Controller.CurPos = ScrollButton.Detect_Value;
 | |
|     }
 | |
| 
 | |
|     //设置滚动条长度
 | |
|     function SetScrollBarHeight(height) {
 | |
|         if (ScrollButton) {
 | |
|             RemoveUIChild(ScrollButton);
 | |
|             ScrollButton = null;
 | |
|         }
 | |
|         SetScrollBarState(true);
 | |
|         ScrollButton = Yosin_DragButton(0, 13, 9, height.tointeger(), Path, 184, false, false, true);
 | |
|         ScrollButton.OnChange = OnChange;
 | |
|         ScrollButton.SetMaxMoveValue(Height - 26);
 | |
|         AddUIChild(ScrollButton);
 | |
|     }
 | |
| 
 | |
|     //设置滚动条状态
 | |
|     function SetScrollBarState(Flag) {
 | |
|         if (ScrollBarState == Flag) return;
 | |
|         ScrollBarState = Flag;
 | |
|         if (!Flag) {
 | |
|             UpButton.State = 3;
 | |
|             DownButton.State = 3;
 | |
|             if (ScrollButton) {
 | |
|                 RemoveUIChild(ScrollButton);
 | |
|                 ScrollButton = null;
 | |
|             }
 | |
|         } else {
 | |
|             UpButton.State = 0;
 | |
|             DownButton.State = 0;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //设置滚动条数值
 | |
|     function SetScrollBarValue(Value) {
 | |
|         if (ScrollButton) {
 | |
|             ScrollButton.SetPos(0, Value * (ScrollButton.Max_Move_Value - ScrollButton.Height + 13))
 | |
|             ScrollButton.DragLogic(Value);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //设置滚动
 | |
|     function SetScroll(Flag) {
 | |
|         if (ScrollButton) {
 | |
|             local Value = Controller.CurPos;
 | |
|             if (Flag) Value += 0.1;
 | |
|             else Value -= 0.1;
 | |
|             if (Value< 0) Value = 0;
 | |
|             if (Value > 1) Value = 1;
 | |
|             ScrollButton.SetPos(0, Value * (ScrollButton.Max_Move_Value - ScrollButton.Height + 13))
 | |
|             ScrollButton.DragLogic(Value);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     function SetChangeCallBack(Func) {
 | |
|         OnChange = Func;
 | |
|     }
 | |
| 
 | |
| } |