allow Svg's
This commit is contained in:
parent
7426b15fb7
commit
47cd7660ab
2 changed files with 28 additions and 17 deletions
|
|
@ -1,8 +1,23 @@
|
|||
import { Gdk, Gtk } from "astal/gtk4";
|
||||
import GLib from "gi://GLib?version=2.0";
|
||||
import Rsvg from "gi://Rsvg?version=2.0";
|
||||
|
||||
interface SvgProps {
|
||||
color?: string;
|
||||
path: string;
|
||||
rotation?: number;
|
||||
size?: number;
|
||||
}
|
||||
|
||||
export function Svg({ color, rotation }: SvgProps) {
|
||||
const svgPath = `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" ${rotation && 'transform="rotate(180 12 12)"'} fill="none" stroke="${color || "#cac9c9"}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M13.73 4a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"/></svg>`;
|
||||
export function Svg({
|
||||
color = "#cac9c9",
|
||||
path,
|
||||
rotation = 0,
|
||||
size = 24,
|
||||
}: SvgProps) {
|
||||
const svgString = `<svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="0 0 ${size} ${size}" transform="rotate(${rotation} 12 12)" fill="none" stroke="${color}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">${path}</svg>`;
|
||||
const bytes = new GLib.Bytes(new TextEncoder().encode(svgString));
|
||||
const texture = Gdk.Texture.new_from_bytes(bytes);
|
||||
|
||||
return Gtk.Image.new_from_paintable(texture);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue