25 lines
766 B
TypeScript
25 lines
766 B
TypeScript
import { Gtk, Astal } from "ags/gtk4";
|
|
|
|
export function addSliderMarksFromMinMax(slider: Astal.Slider, amountOfMarks: number = 2, markup?: (string | null)) {
|
|
if(markup && !markup.includes("{}"))
|
|
markup = `${markup}{}`
|
|
|
|
slider.add_mark(slider.min, Gtk.PositionType.BOTTOM, markup ?
|
|
markup.replaceAll("{}", `${slider.min}`) : null);
|
|
|
|
const num = (amountOfMarks - 1);
|
|
for(let i = 1; i <= num; i++) {
|
|
const part = (slider.max / num) | 0;
|
|
|
|
if(i > num) {
|
|
slider.add_mark(slider.max, Gtk.PositionType.BOTTOM, `${slider.max}K`);
|
|
break;
|
|
}
|
|
|
|
slider.add_mark(part*i, Gtk.PositionType.BOTTOM, markup ?
|
|
markup.replaceAll("{}", `${part*i}`) : null);
|
|
}
|
|
|
|
return slider;
|
|
}
|