mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-03 17:56:44 +02:00
51 lines
1.4 KiB
C#
51 lines
1.4 KiB
C#
|
|
// Copyright (c) Microsoft Corporation
|
|||
|
|
// The Microsoft Corporation licenses this file to you under the MIT license.
|
|||
|
|
// See the LICENSE file in the project root for more information.
|
|||
|
|
|
|||
|
|
using System.Timers;
|
|||
|
|
using Microsoft.CommandPalette.Extensions;
|
|||
|
|
using Microsoft.CommandPalette.Extensions.Toolkit;
|
|||
|
|
|
|||
|
|
namespace SamplePagesExtension;
|
|||
|
|
|
|||
|
|
internal sealed partial class ExplodeInFiveSeconds : ListPage
|
|||
|
|
{
|
|||
|
|
private readonly bool _repeat;
|
|||
|
|
|
|||
|
|
private IListItem[] Commands => [
|
|||
|
|
new ListItem(new NoOpCommand())
|
|||
|
|
{
|
|||
|
|
Title = "This page will explode in five seconds!",
|
|||
|
|
Subtitle = _repeat ? "Not only that, I'll _keep_ exploding every 5 seconds after that" : string.Empty,
|
|||
|
|
},
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
private bool shouldExplode;
|
|||
|
|
private static Timer timer;
|
|||
|
|
|
|||
|
|
public ExplodeInFiveSeconds(bool repeat)
|
|||
|
|
{
|
|||
|
|
_repeat = repeat;
|
|||
|
|
Icon = new IconInfo(string.Empty);
|
|||
|
|
Name = "Open";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public override IListItem[] GetItems()
|
|||
|
|
{
|
|||
|
|
if (shouldExplode)
|
|||
|
|
{
|
|||
|
|
_ = Commands[9001]; // Throws
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
timer = new Timer(5000);
|
|||
|
|
timer.Elapsed += (object source, ElapsedEventArgs e) => { RaiseItemsChanged(9000); };
|
|||
|
|
timer.AutoReset = _repeat; // Keep repeating
|
|||
|
|
timer.Enabled = true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
shouldExplode = true;
|
|||
|
|
return Commands;
|
|||
|
|
}
|
|||
|
|
}
|