Compare commits

...

3 Commits

Author SHA1 Message Date
Kayla Cinnamon
4920f8dcf8 this is still broken 2025-01-16 10:49:36 -05:00
Kayla Cinnamon
d9b2c9dc15 this is broken 2025-01-14 16:33:32 -05:00
Kayla Cinnamon
8e74e18365 first try 2025-01-14 11:11:09 -05:00
5 changed files with 27 additions and 8 deletions

View File

@@ -714,16 +714,33 @@ private:
m_backdrop.RelativeSizeAdjustment({ 1.0f, 1.0f }); // fill the parent
m_backdrop.Brush(m_compositor.CreateColorBrush(m_backgroundColor));
layer.Children().InsertAtTop(m_backdrop);
m_circleGeometry = m_compositor.CreateEllipseGeometry(); // radius set via expression animation
m_circleGeometry.Radius({ m_sonarRadiusFloat * m_sonarZoomFactor, m_sonarRadiusFloat * m_sonarZoomFactor });
m_circleShape = m_compositor.CreateSpriteShape(m_circleGeometry);
m_circleShape.FillBrush(m_compositor.CreateColorBrush(m_spotlightColor));
m_circleShape.Offset({ m_sonarRadiusFloat * m_sonarZoomFactor, m_sonarRadiusFloat * m_sonarZoomFactor });
m_spotlight = m_compositor.CreateShapeVisual();
m_spotlight.Size({ m_sonarRadiusFloat * 2 * m_sonarZoomFactor, m_sonarRadiusFloat * 2 * m_sonarZoomFactor });
m_spotlight.AnchorPoint({ 0.5f, 0.5f });
m_spotlight.Opacity(m_spotlightColor.A);
m_spotlight.Shapes().Append(m_circleShape);
// auto maskBrush = m_compositor.CreateMaskBrush();
// maskBrush.Source(m_compositor.CreateColorBrush(winrt::Windows::UI::Colors::Black()));
// maskBrush.Mask(m_circleShape.FillBrush());
// auto clipGeometry = m_compositor.CreateEllipseGeometry();
// clipGeometry.Center(m_circleShape.Offset());
// clipGeometry.Radius(m_spotlight.Size());
auto clip = m_compositor.CreateGeometricClip(m_circleGeometry);
// layer.Clip(clip);
m_backdrop.Clip(clip);
// m_backdrop.Brush(maskBrush);
layer.Children().InsertAtTop(m_spotlight);
// Implicitly animate the alpha.
@@ -816,6 +833,7 @@ public:
m_circleShape.FillBrush().as<winrt::CompositionColorBrush>().Color(m_spotlightColor);
m_circleShape.Offset({ m_sonarRadiusFloat * m_sonarZoomFactor, m_sonarRadiusFloat * m_sonarZoomFactor });
m_spotlight.Size({ m_sonarRadiusFloat * 2 * m_sonarZoomFactor, m_sonarRadiusFloat * 2 * m_sonarZoomFactor });
m_spotlight.Opacity(m_spotlightColor.A);
m_animation.Duration(std::chrono::milliseconds{ m_fadeDuration });
m_circleGeometry.StopAnimation(L"Radius");

View File

@@ -279,14 +279,15 @@ void FindMyMouse::parse_settings(PowerToysSettings::PowerToyValues& settings)
// Parse spotlight color
auto jsonPropertiesObject = settingsObject.GetNamedObject(JSON_KEY_PROPERTIES).GetNamedObject(JSON_KEY_SPOTLIGHT_COLOR);
auto spotlightColor = (std::wstring)jsonPropertiesObject.GetNamedString(JSON_KEY_VALUE);
uint8_t r, g, b;
if (!checkValidRGB(spotlightColor, &r, &g, &b))
uint8_t a, r, g, b;
if (!checkValidARGB(spotlightColor, &a, &r, &g, &b))
{
Logger::error("Spotlight color RGB value is invalid. Will use default value");
}
else
{
findMyMouseSettings.spotlightColor = winrt::Windows::UI::ColorHelper::FromArgb(255, r, g, b);
findMyMouseSettings.spotlightColor = winrt::Windows::UI::ColorHelper::FromArgb(a, r, g, b);
}
}
catch (...)

View File

@@ -62,7 +62,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library
ActivationShortcut = DefaultActivationShortcut;
DoNotActivateOnGameMode = new BoolProperty(true);
BackgroundColor = new StringProperty("#000000");
SpotlightColor = new StringProperty("#FFFFFF");
SpotlightColor = new StringProperty("#FFFFFFFF");
OverlayOpacity = new IntProperty(50);
SpotlightRadius = new IntProperty(100);
AnimationDurationMs = new IntProperty(500);

View File

@@ -114,7 +114,7 @@
<controls:ColorPickerButton SelectedColor="{x:Bind Path=ViewModel.FindMyMouseBackgroundColor, Mode=TwoWay}" />
</tkcontrols:SettingsCard>
<tkcontrols:SettingsCard x:Uid="MouseUtils_FindMyMouse_SpotlightColor">
<controls:ColorPickerButton SelectedColor="{x:Bind Path=ViewModel.FindMyMouseSpotlightColor, Mode=TwoWay}" />
<controls:AlphaColorPickerButton SelectedColor="{x:Bind Path=ViewModel.FindMyMouseSpotlightColor, Mode=TwoWay}" />
</tkcontrols:SettingsCard>
<tkcontrols:SettingsCard x:Uid="MouseUtils_FindMyMouse_SpotlightRadius">
<NumberBox

View File

@@ -50,7 +50,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
_findMyMouseBackgroundColor = !string.IsNullOrEmpty(backgroundColor) ? backgroundColor : "#000000";
string spotlightColor = FindMyMouseSettingsConfig.Properties.SpotlightColor.Value;
_findMyMouseSpotlightColor = !string.IsNullOrEmpty(spotlightColor) ? spotlightColor : "#FFFFFF";
_findMyMouseSpotlightColor = !string.IsNullOrEmpty(spotlightColor) ? spotlightColor : "#FFFFFFFF";
_findMyMouseOverlayOpacity = FindMyMouseSettingsConfig.Properties.OverlayOpacity.Value;
_findMyMouseSpotlightRadius = FindMyMouseSettingsConfig.Properties.SpotlightRadius.Value;
@@ -278,7 +278,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
set
{
value = (value != null) ? SettingsUtilities.ToRGBHex(value) : "#FFFFFF";
value = (value != null) ? SettingsUtilities.ToARGBHex(value) : "#FFFFFFFF";
if (!value.Equals(_findMyMouseSpotlightColor, StringComparison.OrdinalIgnoreCase))
{
_findMyMouseSpotlightColor = value;