mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-06 11:16:51 +02:00
Improves the following: - Consolidates different code paths for easier maintenance. - Removes the dependency on Windows Forms and creates the system tray icon and handling through native Win32 APIs (massive thank you to @BrianPeek for helping write the window creation logic and diagnosing threading issues). - Changing modes in Awake now triggers icon changes in the tray (#11996). Massive thank you to @niels9001 for creating the icons. Fixes the following: - When in the UI and you select `0` as hours and `0` as minutes in `TIMED` awake mode, the UI becomes non-responsive whenever you try to get back to timed after it rolls back to `PASSIVE`. (#33630) - Adds the option to keep track of Awake state through tray tooltip. (#12714) --------- Co-authored-by: Clint Rutkas <clint@rutkas.com> Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
112 lines
6.4 KiB
XML
112 lines
6.4 KiB
XML
<Page
|
|
x:Class="Microsoft.PowerToys.Settings.UI.Views.AwakePage"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:controls="using:Microsoft.PowerToys.Settings.UI.Controls"
|
|
xmlns:converters="using:Microsoft.PowerToys.Settings.UI.Converters"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:tkcontrols="using:CommunityToolkit.WinUI.Controls"
|
|
xmlns:ui="using:CommunityToolkit.WinUI"
|
|
xmlns:viewmodels="using:Microsoft.PowerToys.Settings.UI.ViewModels"
|
|
d:DataContext="{d:DesignInstance Type=viewmodels:AwakeViewModel}"
|
|
AutomationProperties.LandmarkType="Main"
|
|
mc:Ignorable="d">
|
|
|
|
<Page.Resources>
|
|
<converters:AwakeModeToIntConverter x:Key="AwakeModeToIntConverter" />
|
|
</Page.Resources>
|
|
|
|
<controls:SettingsPageControl
|
|
x:Uid="Awake"
|
|
IsTabStop="False"
|
|
ModuleImageSource="ms-appx:///Assets/Settings/Modules/Awake.png">
|
|
<controls:SettingsPageControl.ModuleContent>
|
|
<StackPanel ChildrenTransitions="{StaticResource SettingsCardsAnimations}" Orientation="Vertical">
|
|
<tkcontrols:SettingsCard
|
|
x:Uid="Awake_EnableSettingsCard"
|
|
HeaderIcon="{ui:BitmapIcon Source=/Assets/Settings/Icons/Awake.png}"
|
|
IsEnabled="{x:Bind ViewModel.IsEnabledGpoConfigured, Mode=OneWay, Converter={StaticResource BoolNegationConverter}}">
|
|
<ToggleSwitch IsOn="{x:Bind ViewModel.IsEnabled, Mode=TwoWay}" />
|
|
</tkcontrols:SettingsCard>
|
|
<InfoBar
|
|
x:Uid="GPO_SettingIsManaged"
|
|
IsClosable="False"
|
|
IsOpen="{x:Bind ViewModel.IsEnabledGpoConfigured, Mode=OneWay}"
|
|
IsTabStop="{x:Bind ViewModel.IsEnabledGpoConfigured, Mode=OneWay}"
|
|
Severity="Informational" />
|
|
|
|
<controls:SettingsGroup x:Uid="Awake_BehaviorSettingsGroup" IsEnabled="{x:Bind ViewModel.IsEnabled, Mode=OneWay}">
|
|
|
|
<tkcontrols:SettingsCard x:Uid="Awake_ModeSettingsCard" HeaderIcon="{ui:FontIcon Glyph=}">
|
|
<ComboBox MinWidth="{StaticResource SettingActionControlMinWidth}" SelectedIndex="{x:Bind Path=ViewModel.Mode, Mode=TwoWay, Converter={StaticResource AwakeModeToIntConverter}}">
|
|
<ComboBoxItem x:Uid="Awake_NoKeepAwakeSelector" />
|
|
<ComboBoxItem x:Uid="Awake_IndefiniteKeepAwakeSelector" />
|
|
<ComboBoxItem x:Uid="Awake_TemporaryKeepAwakeSelector" />
|
|
<ComboBoxItem x:Uid="Awake_ExpirableKeepAwakeSelector" />
|
|
</ComboBox>
|
|
</tkcontrols:SettingsCard>
|
|
|
|
<tkcontrols:SettingsExpander
|
|
x:Uid="Awake_ExpirationSettingsExpander"
|
|
HeaderIcon="{ui:FontIcon Glyph=}"
|
|
IsExpanded="True"
|
|
Visibility="{x:Bind ViewModel.IsExpirationConfigurationEnabled, Mode=OneWay}">
|
|
<tkcontrols:SettingsExpander.Items>
|
|
<tkcontrols:SettingsCard x:Uid="Awake_ExpirationSettingsExpander_Date">
|
|
<DatePicker Date="{x:Bind ViewModel.ExpirationDateTime, Mode=TwoWay}" />
|
|
</tkcontrols:SettingsCard>
|
|
<tkcontrols:SettingsCard x:Uid="Awake_ExpirationSettingsExpander_Time">
|
|
<TimePicker ClockIdentifier="24HourClock" Time="{x:Bind ViewModel.ExpirationTime, Mode=TwoWay}" />
|
|
</tkcontrols:SettingsCard>
|
|
</tkcontrols:SettingsExpander.Items>
|
|
</tkcontrols:SettingsExpander>
|
|
|
|
<tkcontrols:SettingsCard
|
|
x:Uid="Awake_IntervalSettingsCard"
|
|
HeaderIcon="{ui:FontIcon Glyph=}"
|
|
Visibility="{x:Bind ViewModel.IsTimeConfigurationEnabled, Mode=OneWay}">
|
|
|
|
<StackPanel MinWidth="{StaticResource SettingActionControlMinWidth}" Orientation="Horizontal">
|
|
<NumberBox
|
|
x:Uid="Awake_IntervalHoursInput"
|
|
Width="96"
|
|
HorizontalAlignment="Left"
|
|
LargeChange="5"
|
|
Minimum="0"
|
|
SmallChange="1"
|
|
SpinButtonPlacementMode="Compact"
|
|
Value="{x:Bind ViewModel.IntervalHours, Mode=TwoWay}" />
|
|
<NumberBox
|
|
x:Uid="Awake_IntervalMinutesInput"
|
|
Width="96"
|
|
Margin="8,0,0,0"
|
|
HorizontalAlignment="Left"
|
|
LargeChange="5"
|
|
Maximum="60"
|
|
Minimum="0"
|
|
SmallChange="1"
|
|
SpinButtonPlacementMode="Compact"
|
|
Value="{x:Bind ViewModel.IntervalMinutes, Mode=TwoWay}" />
|
|
</StackPanel>
|
|
</tkcontrols:SettingsCard>
|
|
|
|
<tkcontrols:SettingsCard
|
|
x:Uid="Awake_DisplaySettingsCard"
|
|
HeaderIcon="{ui:FontIcon Glyph=}"
|
|
IsEnabled="{x:Bind ViewModel.IsScreenConfigurationPossibleEnabled, Mode=OneWay}">
|
|
<ToggleSwitch IsOn="{x:Bind ViewModel.KeepDisplayOn, Mode=TwoWay}" />
|
|
</tkcontrols:SettingsCard>
|
|
</controls:SettingsGroup>
|
|
</StackPanel>
|
|
</controls:SettingsPageControl.ModuleContent>
|
|
|
|
<controls:SettingsPageControl.PrimaryLinks>
|
|
<controls:PageLink x:Uid="LearnMore_Awake" Link="https://aka.ms/PowerToysOverview_Awake" />
|
|
</controls:SettingsPageControl.PrimaryLinks>
|
|
<controls:SettingsPageControl.SecondaryLinks>
|
|
<controls:PageLink x:Uid="SecondaryLink_Awake" Link="https://awake.den.dev" />
|
|
</controls:SettingsPageControl.SecondaryLinks>
|
|
</controls:SettingsPageControl>
|
|
</Page>
|