From f93775202398442b13b8f059f21f55fd3b72ddbc Mon Sep 17 00:00:00 2001 From: retrozinndev Date: Mon, 14 Apr 2025 18:30:35 -0300 Subject: [PATCH] :sparkles: ags(scripts/widget-utils): add util function for generating slider marks --- ags/scripts/widget-utils.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 ags/scripts/widget-utils.ts 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; +}