diff --git a/ags/scripts/widget-utils.ts b/ags/scripts/widget-utils.ts new file mode 100644 index 0000000..4824b25 --- /dev/null +++ b/ags/scripts/widget-utils.ts @@ -0,0 +1,24 @@ +import { Gtk, Widget } from "astal/gtk3"; + +export function addSliderMarksFromMinMax(slider: Widget.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; +}