package com.imyeyu.fx.ui.components;

import com.imyeyu.fx.ui.TimiFXUI;
import javafx.scene.control.Skin;
import javafx.scene.control.Slider;

import java.util.Objects;

/**
 * 带填充轨道的滑动条
 *
 * @author 夜雨
 * @since 2026-07-25
 */
public class FilledSlider extends Slider implements TimiFXUI {

	/** 组件样式 */
	static final String STYLE_CLASS = "filled-slider";

	/** 默认构造，范围 [0, 1]，默认值 0 */
	public FilledSlider() {
		this(0, 1, 0);
	}

	/**
	 * 标准构造
	 *
	 * @param min 最小值
	 * @param max 最大值
	 * @param value 当前值
	 */
	public FilledSlider(double min, double max, double value) {
		super(min, max, value);
		getStyleClass().add(STYLE_CLASS);
	}

	@Override
	protected Skin<?> createDefaultSkin() {
		return new FilledSliderSkin(this);
	}

	@Override
	public String getUserAgentStylesheet() {
		return Objects.requireNonNull(FilledSlider.class.getResource(RESOURCE + "style/components/filled-slider.css")).toExternalForm();
	}
}
