✨ ags(scripts/widget-utils): add util function for generating slider marks
This commit is contained in:
@@ -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;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user