import { Page, PageButton } from "../Page"; import { Astal, Gtk } from "ags/gtk4"; import { getAppIcon, lookupIcon } from "../../../../modules/apps"; import { Wireplumber } from "../../../../modules/volume"; import { tr } from "../../../../i18n/intl"; import { createBinding, For } from "ags"; import { createScopedConnection, variableToBoolean } from "../../../../modules/utils"; import AstalWp from "gi://AstalWp"; import GObject from "gi://GObject?version=2.0"; import Pango from "gi://Pango?version=1.0"; export const PageSound = [ , {(sink: AstalWp.Endpoint) => isDefault ? "selected" : "")} icon={createBinding(sink, "icon").as(ico => lookupIcon(ico) ? ico : "audio-card-symbolic")} title={createBinding(sink, "description").as(desc => desc ?? "Speaker")} actionClicked={() => !sink.isDefault && sink.set_is_default(true)} endWidget={ } />} , {(stream: AstalWp.Stream) => { const controllerMotion = Gtk.EventControllerMotion.new(); self.add_controller(controllerMotion); createScopedConnection(controllerMotion, "enter", () => { const revealer = self.get_last_child()!.get_first_child() as Gtk.Revealer; revealer.set_reveal_child(true); }); createScopedConnection(controllerMotion, "leave", () => { const revealer = self.get_last_child()!.get_first_child() as Gtk.Revealer; revealer.set_reveal_child(false); }); }}> getAppIcon(name.split(' ')[0]) ?? "application-x-executable-symbolic")} css={"font-size: 18px; margin-right: 6px;"} /> desc ?? "Unnamed audio stream")} ellipsize={Pango.EllipsizeMode.END} tooltipText={createBinding(stream, "name")} class={"name"} xalign={0} /> stream.set_volume(value)} hexpand min={0} max={1.5} /> } ]} /> as Page;