import win.ui;
import dotNet.AntdUI;
import dotNet;
/*DSG{{*/
var winform = win.form(text="AntdUI Slider & SliderRange & Progress & Spin";right=920;bottom=880;border="thin")
winform.add(
custom={cls="custom";left=770;top=334;right=850;bottom=414;dl=1;dt=1;z=16};
custom2={cls="custom";left=627;top=456;right=687;bottom=516;dl=1;dt=1;z=17};
custom3={cls="custom";left=700;top=457;right=760;bottom=517;dl=1;dt=1;z=18};
custom4={cls="custom";left=509;top=509;right=682;bottom=536;dl=1;dt=1;z=20};
custom5={cls="custom";left=509;top=303;right=682;bottom=330;dl=1;dt=1;z=21};
custom6={cls="custom";left=509;top=430;right=682;bottom=457;dl=1;dt=1;z=22};
custom_base={cls="custom";left=0;top=0;right=922;bottom=882;ah=1;aw=1;db=1;disabled=1;dl=1;dr=1;dt=1;hide=1;z=1};
custom_divider_Default={cls="custom";left=26;top=303;right=199;bottom=330;z=19};
custom_lbl_progress={cls="custom";left=20;top=265;right=300;bottom=300;dl=1;dt=1;z=6};
custom_lbl_range={cls="custom";left=20;top=145;right=300;bottom=180;dl=1;dt=1;z=4};
custom_lbl_slider={cls="custom";left=20;top=10;right=300;bottom=45;dl=1;dt=1;z=2};
custom_lbl_spin={cls="custom";left=20;top=602;right=300;bottom=637;dl=1;dt=1;z=23};
custom_progress_circle={cls="custom";left=545;top=334;right=625;bottom=414;dl=1;dt=1;z=12};
custom_progress_circle2={cls="custom";left=658;top=334;right=738;bottom=414;dl=1;dt=1;z=15};
custom_progress_default={cls="custom";left=26;top=335;right=476;bottom=370;dl=1;dt=1;z=7};
custom_progress_error={cls="custom";left=26;top=545;right=476;bottom=580;dl=1;dt=1;z=11};
custom_progress_info={cls="custom";left=26;top=440;right=476;bottom=475;dl=1;dt=1;z=9};
custom_progress_mini={cls="custom";left=553;top=456;right=613;bottom=516;dl=1;dt=1;z=13};
custom_progress_steps={cls="custom";left=556;top=549;right=826;bottom=584;dl=1;dt=1;z=14};
custom_progress_success={cls="custom";left=26;top=388;right=476;bottom=423;dl=1;dt=1;z=8};
custom_progress_warn={cls="custom";left=26;top=493;right=476;bottom=528;dl=1;dt=1;z=10};
custom_range_basic={cls="custom";left=20;top=193;right=470;bottom=233;dl=1;dt=1;z=5};
custom_slider_basic={cls="custom";left=20;top=55;right=470;bottom=90;dl=1;dt=1;z=3};
custom_spin_btn={cls="custom";left=170;top=688;right=262;bottom=733;dl=1;dt=1;z=25};
custom_spin_demo={cls="custom";left=26;top=668;right=111;bottom=753;dl=1;dt=1;z=24}
)
/*}}*/
// ---------- 创建 AntdUI 嵌入容器 ----------
var baseForm = AntdUI.BaseForm();
baseForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
baseForm.Dock = System.Windows.Forms.DockStyle.Fill;
dotNet.setParent(baseForm, winform.custom_base);
// ============================================================
// SECTION 1: Slider
// ============================================================
var lblSlider = AntdUI.Label(winform.custom_lbl_slider);
lblSlider.Text = "Slider";
lblSlider.Font = System.Drawing.Font("Microsoft YaHei", 14, System.Drawing.FontStyle.Bold);
// 1.1 基础横向 Slider
var sliderBasic = AntdUI.Slider(winform.custom_slider_basic);
sliderBasic.MinValue = 0;
sliderBasic.MaxValue = 100;
sliderBasic.Value = 30;
sliderBasic.ShowValue = true;
// ============================================================
// SECTION 2: SliderRange
// ============================================================
var lblRange = AntdUI.Label(winform.custom_lbl_range);
lblRange.Text = "SliderRange";
lblRange.Font = System.Drawing.Font("Microsoft YaHei", 14, System.Drawing.FontStyle.Bold);
var rangeBasic = AntdUI.SliderRange(winform.custom_range_basic);
rangeBasic.MinValue = 0;
rangeBasic.MaxValue = 100;
rangeBasic.Value = 20;
rangeBasic.Value2 = 60;
rangeBasic.ShowValue = true;
rangeBasic.Fill = 0xFF1890FF;
// ============================================================
// SECTION 3: Progress
// ============================================================
var lblProgress = AntdUI.Label(winform.custom_lbl_progress);
lblProgress.Text = "Progress";
lblProgress.Font = System.Drawing.Font("Microsoft YaHei", 14, System.Drawing.FontStyle.Bold);
// ---------- Divider: 线形进度条 ----------
var dividerDefault = AntdUI.Divider(winform.custom_divider_Default);
dividerDefault.Text = "Default";
dividerDefault.TextPadding = 0.2;
// 3.1 线形 - Default (State=None) - Loading 动画
var progressDefault = AntdUI.Progress(winform.custom_progress_default);
progressDefault.Value = 0.30;
progressDefault.Loading = true;
progressDefault.Shape = AntdUI.TShapeProgress.Round;
progressDefault.Fill = 0xFF1890FF;
// 3.2 线形 - Success
var progressSuccess = AntdUI.Progress(winform.custom_progress_success);
progressSuccess.Value = 1.0;
progressSuccess.Shape = AntdUI.TShapeProgress.Round;
progressSuccess.State = AntdUI.TType.Success;
// 3.3 线形 - Info
var progressInfo = AntdUI.Progress(winform.custom_progress_info);
progressInfo.Value = 0.50;
progressInfo.Shape = AntdUI.TShapeProgress.Round;
progressInfo.State = AntdUI.TType.Info;
// 3.4 线形 - Warn
var progressWarn = AntdUI.Progress(winform.custom_progress_warn);
progressWarn.Value = 0.45;
progressWarn.Shape = AntdUI.TShapeProgress.Round;
progressWarn.State = AntdUI.TType.Warn;
// 3.5 线形 - Error
var progressError = AntdUI.Progress(winform.custom_progress_error);
progressError.Value = 0.20;
progressError.Shape = AntdUI.TShapeProgress.Round;
progressError.State = AntdUI.TType.Error;
// ---------- Divider: 步骤进度条 ----------
var dividerSteps = AntdUI.Divider(winform.custom4);
dividerSteps.Text = "Steps";
dividerSteps.TextPadding = 0.2;
// 3.6 步骤进度条
var progressSteps = AntdUI.Progress(winform.custom_progress_steps);
progressSteps.Value = 0.6;
progressSteps.Shape = AntdUI.TShapeProgress.Steps;
progressSteps.Steps = 10;
progressSteps.Fill = 0xFF52C41A;
progressSteps.StepSize = 14;
progressSteps.StepGap = 4;
// ---------- Divider: 圆形进度条 ----------
var dividerCircle = AntdUI.Divider(winform.custom5);
dividerCircle.Text = "Circle";
dividerCircle.TextPadding = 0.2;
// 3.8 圆形进度条 - Success 100%
var progressCircle = AntdUI.Progress(winform.custom_progress_circle);
progressCircle.Value = 1;
progressCircle.State = AntdUI.TType.Success;
progressCircle.Shape = AntdUI.TShapeProgress.Circle;
progressCircle.Fill = 0xFF52C41A;
progressCircle.Radius = 4;
// 3.9 圆形进度条 - Info 态
var progressCircle2 = AntdUI.Progress(winform.custom_progress_circle2);
progressCircle2.Value = 0.45;
progressCircle2.Shape = AntdUI.TShapeProgress.Circle;
progressCircle2.Fill = 0xFF1890FF;
progressCircle2.State = AntdUI.TType.Info;
progressCircle2.Radius = 4;
// 3.10 圆形进度条 - Error 态
var progressCircle3 = AntdUI.Progress(winform.custom);
progressCircle3.Value = 0.25;
progressCircle3.Shape = AntdUI.TShapeProgress.Circle;
progressCircle3.State = AntdUI.TType.Error;
progressCircle3.Radius = 4;
// ---------- Divider: Mini 进度条 ----------
var dividerMini = AntdUI.Divider(winform.custom6);
dividerMini.Text = "Mini";
dividerMini.TextPadding = 0.2;
// 3.11 Mini 进度条 - 蓝色默认
var progressMini1 = AntdUI.Progress(winform.custom_progress_mini);
progressMini1.Value = 0.55;
progressMini1.Shape = AntdUI.TShapeProgress.Mini;
progressMini1.Fill = 0xFF1890FF;
// 3.12 Mini 进度条 - 橙色 Warn
var progressMini2 = AntdUI.Progress(winform.custom2);
progressMini2.Value = 0.35;
progressMini2.Shape = AntdUI.TShapeProgress.Mini;
progressMini2.State = AntdUI.TType.Warn;
// 3.13 Mini 进度条 - 绿色 Success
var progressMini3 = AntdUI.Progress(winform.custom3);
progressMini3.Value = 1.0;
progressMini3.Shape = AntdUI.TShapeProgress.Mini;
progressMini3.State = AntdUI.TType.Success;
// ============================================================
// SECTION 4: Spin 加载动画
// ============================================================
var lblSpin = AntdUI.Label(winform.custom_lbl_spin);
lblSpin.Text = "Spin";
lblSpin.Font = System.Drawing.Font("Microsoft YaHei", 14, System.Drawing.FontStyle.Bold);
var dividerSpin = AntdUI.Divider(winform.custom_divider_spin);
dividerSpin.Text = "Spin";
dividerSpin.TextPadding = 0.2;
// 4.1 独立 Spin 圆圈展示(持续旋转)
var spinDemo = AntdUI.Spin(winform.custom_spin_demo);
spinDemo.Text = "Loading...";
spinDemo.CirSize = 25;
spinDemo.Fill = 0xFF1890FF;
spinDemo.ForeColor = 0xFF555555;
// 4.2 触发全窗口加载按钮
var btnSpin = AntdUI.Button(winform.custom_spin_btn);
btnSpin.Text = "Spin";
btnSpin.Type = AntdUI.TTypeMini.Primary;
btnSpin.Font = System.Drawing.Font("Microsoft YaHei", 10);
var isSpinLoading = false;
btnSpin.Click = function(s, e){
if(isSpinLoading) return;
isSpinLoading = true;
btnSpin.Enabled = false;
// Spin.open(Form, 文本, 后台Action)
AntdUI.Spin.open(baseForm, "Loading, please wait...", function(){
thread.delay(3000);
});
// 3 秒后恢复按钮(Spin 在 Action 完成后自动关闭)
winform.setTimeout(function(){
isSpinLoading = false;
btnSpin.Enabled = true;
}, 3000);
};
// Loading 动画定时更新(线形 Default 进度条循环滚动)
winform.setInterval(
function(){
var v = progressDefault.Value + 0.015;
if(v > 1.0) v = v - 1.0;
progressDefault.Value = v;
}, 100
);
// ---------- 显示窗口 ----------
winform.show();
win.loopMessage();