🔧 chore(modules/backlight): better implementation

This commit is contained in:
retrozinndev
2025-08-27 13:13:20 -03:00
parent e765a33335
commit f25996d5eb
3 changed files with 192 additions and 188 deletions
+20 -22
View File
@@ -4,7 +4,7 @@ import { Pages } from "./Pages";
import { PageSound } from "./pages/Sound";
import { PageMicrophone } from "./pages/Microphone";
import { createBinding, With } from "ags";
import { Backlight } from "../../modules/backlight";
import { Backlights } from "../../modules/backlight";
import AstalWp from "gi://AstalWp";
import { PageBacklight } from "./pages/Backlight";
@@ -50,28 +50,26 @@ export function Sliders() {
slidersPages?.toggle(PageMicrophone)} />
</Gtk.Box>}
</With>
<Gtk.Box visible={Boolean(Backlight.getDefault())}>
{Backlight.getDefault() &&
<With value={createBinding(Backlight.getDefault()!, "default")}>
{(bklight: Backlight) => bklight &&
<Gtk.Box class={"backlight"} spacing={3}>
<Gtk.Button onClicked={() => {
bklight.brightness = bklight.maxBrightness
}} iconName={"display-brightness-symbolic"}
/>
<Gtk.Box visible={createBinding(Backlights.getDefault(), "available")}>
<With value={createBinding(Backlights.getDefault(), "default")}>
{(bklight: Backlights.Backlight|null) => bklight &&
<Gtk.Box class={"backlight"} spacing={3}>
<Gtk.Button onClicked={() => {
bklight.brightness = bklight.maxBrightness
}} iconName={"display-brightness-symbolic"}
/>
<Astal.Slider drawValue={false} hexpand value={createBinding(bklight, "brightness")}
max={bklight.maxBrightness}
onChangeValue={(_, __, value) => {
Backlight.getDefault()!.brightness = value
}}
/>
<Gtk.Button class={"more"} iconName={"go-next-symbolic"} onClicked={() =>
slidersPages?.toggle(PageBacklight)} />
</Gtk.Box>
}
</With>
}
<Astal.Slider drawValue={false} hexpand value={createBinding(bklight, "brightness")}
max={bklight.maxBrightness}
onChangeValue={(_, __, value) => {
bklight.brightness = value
}}
/>
<Gtk.Button class={"more"} iconName={"go-next-symbolic"} onClicked={() =>
slidersPages?.toggle(PageBacklight)} />
</Gtk.Box>
}
</With>
</Gtk.Box>
<Pages $={(self) => slidersPages = self} />
</Gtk.Box>
@@ -1,6 +1,6 @@
import { Astal, Gtk } from "ags/gtk4";
import { tr } from "../../../i18n/intl";
import { Backlight } from "../../../modules/backlight";
import { Backlights } from "../../../modules/backlight";
import { Page } from "./Page";
import { createBinding, With } from "ags";
import { addSliderMarksFromMinMax } from "../../../modules/utils";
@@ -11,8 +11,8 @@ export const PageBacklight = new Page({
title: tr("control_center.pages.backlight.title"),
description: tr("control_center.pages.backlight.description"),
content: () => (
<With value={createBinding(Backlight.getDefault()!, "backlights")}>
{(bklights: Array<Backlight>) => bklights.length > 0 &&
<With value={createBinding(Backlights.getDefault(), "backlights")}>
{(bklights: Array<Backlights.Backlight>) => bklights.length > 0 &&
<Gtk.Box orientation={Gtk.Orientation.VERTICAL} spacing={6}>
{bklights.map((bklight, i) =>
<Gtk.Box class={"bklight"} orientation={Gtk.Orientation.VERTICAL}
@@ -36,6 +36,6 @@ export const PageBacklight = new Page({
headerButtons: [{
icon: "arrow-circular-top-right",
tooltipText: tr("control_center.pages.backlight.refresh"),
actionClicked: () => Backlight.scan()
actionClicked: () => Backlights.getDefault().scan()
}]
});