import { Palette, VerticalBox, HorizontalBox, GroupBox } from "std-widgets.slint"; import { SystemToggleVert, SystemDropdown } from "common.slint"; import { PowerZones } from "../types/aura_types.slint"; export component AuraPowerGroup inherits Rectangle { min-width: row.min-width; border-radius: 20px; background: Palette.alternate-background; opacity: 0.9; in-out property group-title; in-out property boot_checked; in-out property awake_checked; in-out property sleep_checked; in-out property shutdown_checked; callback boot_toggled(bool); callback awake_toggled(bool); callback sleep_toggled(bool); callback shutdown_toggled(bool); VerticalBox { spacing: 10px; Text { font-size: 18px; color: Palette.alternate-foreground; horizontal-alignment: TextHorizontalAlignment.center; text <=> root.group-title; } row := HorizontalBox { alignment: LayoutAlignment.center; SystemToggleVert { min-width: 96px; max-height: 42px; text: @tr("Boot"); checked <=> root.boot_checked; toggled => { root.boot_toggled(self.checked); } } SystemToggleVert { min-width: 96px; max-height: 42px; text: @tr("Awake"); checked <=> root.awake_checked; toggled => { root.awake_toggled(self.checked); } } SystemToggleVert { min-width: 96px; max-height: 42px; text: @tr("Sleep"); checked <=> root.sleep_checked; toggled => { root.sleep_toggled(self.checked); } } SystemToggleVert { min-width: 96px; max-height: 42px; text: @tr("Shutdown"); checked <=> root.shutdown_checked; toggled => { root.shutdown_toggled(self.checked); } } } } } export component AuraPowerGroupOld inherits Rectangle { min-width: row.min-width; border-radius: 20px; background: Palette.alternate-background; opacity: 0.9; in-out property current_zone; in-out property <[int]> zones; in-out property <[string]> zone_strings; in-out property group-title; in-out property boot_checked; in-out property awake_checked; in-out property sleep_checked; callback boot_toggled(bool); callback awake_toggled(bool); callback sleep_toggled(bool); callback selected_zone(int); VerticalBox { spacing: 10px; Text { font-size: 18px; color: Palette.alternate-foreground; horizontal-alignment: TextHorizontalAlignment.center; text <=> root.group-title; } row := HorizontalBox { alignment: LayoutAlignment.center; SystemDropdown { text: @tr("Zone Selection"); current_index <=> root.current_zone; current_value: root.zone_strings[root.current_zone]; model <=> root.zone_strings; selected => { root.selected_zone(root.current_zone); } } SystemToggleVert { min-width: 96px; max-height: 42px; text: @tr("Boot"); checked <=> root.boot_checked; toggled => { root.boot_toggled(self.checked); } } SystemToggleVert { min-width: 96px; max-height: 42px; text: @tr("Awake"); checked <=> root.awake_checked; toggled => { root.awake_toggled(self.checked); } } SystemToggleVert { min-width: 96px; max-height: 42px; text: @tr("Sleep"); checked <=> root.sleep_checked; toggled => { root.sleep_toggled(self.checked); } } } } }