diff --git a/.github/actions/spell-check/expect.txt b/.github/actions/spell-check/expect.txt
index c802457500..325b984c1c 100644
--- a/.github/actions/spell-check/expect.txt
+++ b/.github/actions/spell-check/expect.txt
@@ -4,12 +4,10 @@ abgr
ABlocked
ABOUTBOX
Abug
-accctrl
Acceleratorkeys
ACCEPTFILES
ACCESSDENIED
ACCESSTOKEN
-aclapi
AClient
AColumn
acrt
@@ -54,12 +52,9 @@ APIENTRY
APIIs
Apm
APPBARDATA
-appdata
APPEXECLINK
-Appium
APPLICATIONFRAMEHOST
appmanifest
-appmodel
APPNAME
appref
appsettings
@@ -83,11 +78,7 @@ ASSOCSTR
ASYNCWINDOWPLACEMENT
ASYNCWINDOWPOS
atl
-atlbase
-atlcom
atleast
-atlfile
-atlstr
ATRIOX
aumid
Authenticode
@@ -135,7 +126,6 @@ bmi
bms
BNumber
BODGY
-bootstrapper
BOOTSTRAPPERINSTALLFOLDER
bostrot
BOTTOMALIGN
@@ -163,7 +153,6 @@ CALG
callbackptr
calpwstr
Cangjie
-caniuse
CANRENAME
CAPTUREBLT
CAPTURECHANGED
@@ -178,11 +167,9 @@ CDeclaration
CDEF
CElems
CENTERALIGN
-ceq
certlm
certmgr
cfp
-cguid
CHANGECBCHAIN
changecursor
CHILDACTIVATE
@@ -207,19 +194,16 @@ CLSCTX
Clusion
cmder
CMDNOTFOUNDMODULEINTERFACE
-Cmds
CMIC
CMINVOKECOMMANDINFO
CMINVOKECOMMANDINFOEX
CMock
CMONITORS
cmph
-cne
CNF
coclass
codereview
Codespaces
-codicon
COINIT
colorconv
colorformat
@@ -231,18 +215,12 @@ comdef
comdlg
comexp
cominterop
-commandline
-commctrl
-commdlg
compmgmt
COMPOSITIONFULL
-comutil
CONFIGW
CONFLICTINGMODIFIERKEY
CONFLICTINGMODIFIERSHORTCUT
CONOUT
-consts
-contentdialog
contentfiles
CONTEXTHELP
CONTEXTMENUHANDLER
@@ -257,7 +235,6 @@ countof
cph
cplusplus
CPower
-cppwinrt
createdump
CREATEPROCESS
CREATESCHEDULEDTASK
@@ -267,8 +244,6 @@ CRECT
CRH
critsec
Crossdevice
-CRSEL
-crx
CSearch
CSettings
cso
@@ -306,11 +281,8 @@ DBLEPSILON
DCapture
DCBA
DCOM
-dcommon
-dcomp
DComposition
DCR
-DCs
ddd
DDEIf
DDevice
@@ -345,7 +317,6 @@ DESIGNINFO
DESKTOPABSOLUTEEDITING
DESKTOPABSOLUTEPARSING
desktopshorcutinstalled
-desktopwindowxamlsource
devblogs
devdocs
devenum
@@ -353,7 +324,6 @@ devmgmt
DEVMODE
DEVMODEW
DEVMON
-devpkey
DEVSOURCE
DGR
DIALOGEX
@@ -423,8 +393,6 @@ DWORDLONG
dworigin
dwrite
dxgi
-dxgidebug
-dxgiformat
easeofaccess
ecount
EData
@@ -434,15 +402,12 @@ EDITSHORTCUTS
EDITTEXT
EFile
ekus
-emmintrin
-Emoji
ENABLEDELAYEDEXPANSION
ENABLEDPOPUP
ENABLETAB
ENABLETEMPLATE
encodedlaunch
encryptor
-endpointvolume
ENDSESSION
ENSUREVISIBLE
ENTERSIZEMOVE
@@ -466,7 +431,6 @@ eula
eurochange
eventlog
eventvwr
-evntrace
evt
EWXFORCE
EWXFORCEIFHUNG
@@ -478,7 +442,6 @@ examplehandler
examplepowertoy
EXAND
EXCLUDEFROMCAPTURE
-exdisp
executionpolicy
exename
EXITSIZEMOVE
@@ -541,7 +504,6 @@ frm
Froml
FROMTOUCH
fsmgmt
-Functiondiscoverykeys
FZE
gacutil
Gaeilge
@@ -576,10 +538,10 @@ gpo
GPOCA
gpp
gpu
+gradians
GSM
gtm
guiddata
-guiddef
GUITHREADINFO
GValue
gwl
@@ -626,7 +588,6 @@ Hif
HIMAGELIST
himl
hinst
-hinstance
HIWORD
HKCC
HKCOMB
@@ -659,7 +620,6 @@ hrgn
hsb
HSCROLL
hsi
-hstring
HTCLIENT
hthumbnail
HTOUCHINPUT
@@ -737,14 +697,12 @@ installscopeperuser
INSTALLSTARTMENUSHORTCUT
INSTALLSTATE
Inste
-Intelli
Interlop
INTRESOURCE
INVALIDARG
invalidoperatioexception
ipcmanager
IPREVIEW
-ipreviewhandlervisualssetfont
irprops
isbi
ISearch
@@ -769,7 +727,6 @@ jpe
jpnime
Jsons
jsonval
-junja
jxr
keybd
KEYBDDATA
@@ -787,7 +744,6 @@ keyvault
KILLFOCUS
killrunner
kmph
-Knownfolders
KSPROPERTY
Kybd
lastcodeanalysissucceeded
@@ -818,7 +774,6 @@ LIVEZOOM
lld
LLKH
llkhf
-lmcons
LMEM
LMENU
lnks
@@ -861,7 +816,6 @@ lprc
LPSAFEARRAY
lpstr
lpsz
-lpt
LPTHREAD
LPTOP
lptpm
@@ -920,18 +874,13 @@ MERGECOPY
MERGEPAINT
Metadatas
metafile
-mfapi
mfc
-mfidl
-mfobjects
mfplat
-mftransform
Mgmt
mic
midl
mii
mindaro
-Minimatch
Minimizable
MINIMIZEBOX
MINIMIZEEND
@@ -946,10 +895,8 @@ mlcfg
mmc
mmcexe
MMdd
-mmdeviceapi
mmi
mmsys
-mmsystem
mockapi
MODALFRAME
MODESPRUNED
@@ -976,7 +923,6 @@ mscorlib
msctls
msdata
MSDL
-msedge
MSGFLT
msiexec
MSIFASTINSTALL
@@ -1030,7 +976,6 @@ netframework
netsetup
netsh
newcolor
-newdev
NEWDIALOGSTYLE
NEWFILE
newitem
@@ -1057,7 +1002,6 @@ NOCOPYBITS
NOCOPYSECURITYATTRIBS
NOCRLF
nodeca
-nodoc
NODRAWCAPTION
NODRAWICON
NOINHERITLAYOUT
@@ -1095,7 +1039,6 @@ NOTIFICATIONSDLL
NOTIFYICONDATA
NOTIFYICONDATAW
NOTIMPL
-notlike
NOTOPMOST
NOTRACK
NOTSRCCOPY
@@ -1108,15 +1051,12 @@ NResize
nsunt
NTAPI
ntdll
-ntfs
NTSTATUS
NTSYSAPI
NULLCURSOR
nullonfailure
numberbox
nwc
-Objbase
-objidl
ocr
Ocrsettings
odbccp
@@ -1148,7 +1088,6 @@ osvi
OUTOFCONTEXT
outpin
Outptr
-outputtype
outsettings
OVERLAPPEDWINDOW
overlaywindow
@@ -1167,7 +1106,6 @@ PARENTRELATIVEPARSING
parray
PARTIALCONFIRMATIONDIALOGTITLE
PATCOPY
-pathcch
PATHMUSTEXIST
PATINVERT
PATPAINT
@@ -1255,7 +1193,6 @@ pptal
ppv
prc
Prefixer
-Preinstalled
prependpath
prevhost
previewer
@@ -1272,7 +1209,6 @@ prm
proactively
PROCESSENTRY
PROCESSKEY
-processthreadsapi
PROCESSTRACE
procmon
PRODEXT
@@ -1282,7 +1218,6 @@ programdata
projectname
PROPBAG
PROPERTYKEY
-propkey
PROPVARIANT
propvarutil
PRTL
@@ -1346,7 +1281,6 @@ rectp
RECTSOURCE
recyclebin
Redist
-redistributable
reencode
reencoded
REFCLSID
@@ -1375,10 +1309,8 @@ remoteip
Removelnk
renamable
RENAMEONCOLLISION
-Renamer
reparented
reparenting
-reparse
reportfileaccesses
requery
requerying
@@ -1390,7 +1322,6 @@ RESIZETOFIT
resmimetype
RESOURCEID
RESTORETOMAXIMIZED
-restrictederrorinfo
resultlist
RETURNONLYFSDIRS
RGBQUAD
@@ -1405,7 +1336,6 @@ riid
ringbuffer
RKey
RNumber
-roadmap
rop
ROUNDSMALL
rpcrt
@@ -1418,14 +1348,12 @@ rstringalpha
rstringdigit
RTB
RTLREADING
-ruleset
runas
rundll
rungameid
RUNLEVEL
runtimeclass
runtimepack
-runtimes
ruuid
rvm
rwin
@@ -1486,21 +1414,17 @@ SHCNE
SHCNF
SHCONTF
Shcore
-shellapi
SHELLDETAILS
SHELLDLL
shellex
SHELLEXECUTEINFO
SHELLEXECUTEINFOW
-shellscalingapi
SHFILEINFO
SHFILEOPSTRUCT
SHGDN
SHGDNF
SHGFI
shinfo
-shldisp
-shlobj
shlwapi
shmem
SHNAMEMAPPING
@@ -1628,7 +1552,6 @@ SVGIn
SVGIO
svgz
SVSI
-SWC
SWFO
SWP
SWRESTORE
@@ -1652,8 +1575,6 @@ SYSMENU
SYSTEMAPPS
SYSTEMMODAL
SYSTEMTIME
-tailwindcss
-tapp
TApplication
TApplied
targ
@@ -1694,7 +1615,6 @@ THH
THICKFRAME
THISCOMPONENT
THotkey
-thumbcache
TILEDWINDOW
TILLSON
timedate
@@ -1708,17 +1628,14 @@ tkconverters
TLayout
tlb
tlbimp
-tlhelp
TMPVAR
TNP
Toolhelp
toolkitconverters
-Toolset
toolwindow
TOPDOWNDIB
TOUCHEVENTF
TOUCHINPUT
-touchpad
TRACEHANDLE
tracelogging
tracerpt
@@ -1731,7 +1648,6 @@ triaging
trl
trx
tsa
-Tsd
TServer
tstoi
TStr
@@ -1761,15 +1677,11 @@ UNCPRIORITY
UNDNAME
unhiding
UNICODETEXT
-uninstantiated
-uniquifier
Uniquifies
unitconverter
unittests
-Unknwn
UNLEN
UNORM
-unregistering
unremapped
unvirtualized
unwide
@@ -1783,11 +1695,9 @@ updown
UPGRADINGPRODUCTCODE
Uptool
urld
-urlmon
Usb
USEDEFAULT
USEFILEATTRIBUTES
-USERDATA
USESHOWWINDOW
USESTDHANDLES
USRDLL
@@ -1814,7 +1724,6 @@ vdupq
VERBSONLY
VERBW
VERIFYCONTEXT
-verrsrc
VERSIONINFO
VERTRES
VERTSIZE
@@ -1862,7 +1771,6 @@ WANTPALM
wbem
WBounds
Wca
-wcautil
WCE
wcex
WClass
@@ -1884,10 +1792,7 @@ wifi
wil
winapi
winappsdk
-wincodec
-Wincodecsdk
wincolor
-windef
windir
WINDOWCREATED
WINDOWEDGE
@@ -1896,18 +1801,12 @@ WINDOWNAME
WINDOWPLACEMENT
WINDOWPOSCHANGED
WINDOWPOSCHANGING
-windowsapp
WINDOWSBUILDNUMBER
windowssearch
windowssettings
WINDOWSTYLES
WINDOWSTYLESICON
-windowsx
-winerror
WINEVENT
-winevt
-winexe
-winforms
winget
wingetcreate
Winhook
@@ -1918,9 +1817,7 @@ WINNT
winres
winrt
winsdk
-winsdkver
winsta
-winternl
WINTHRESHOLD
WINVER
winxamlmanager
@@ -1966,14 +1863,12 @@ wrl
wscui
wsf
wsh
-wsl
wstr
wsz
WTA
WTNCA
wtoi
WTS
-wtsapi
WTSAT
Wubi
WVC
diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator.UnitTest/ExtendedCalculatorParserTests.cs b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator.UnitTest/ExtendedCalculatorParserTests.cs
index b13072021b..594773c36b 100644
--- a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator.UnitTest/ExtendedCalculatorParserTests.cs
+++ b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator.UnitTest/ExtendedCalculatorParserTests.cs
@@ -279,5 +279,67 @@ namespace Microsoft.PowerToys.Run.Plugin.Calculator.UnitTests
Assert.IsNotNull(result);
Assert.AreEqual(expectedResult, result.Result);
}
+
+ [DataTestMethod]
+ [DataRow("sin(90)", "sin((pi / 180) * (90))")]
+ [DataRow("arcsin(0.5)", "(180 / pi) * (arcsin(0.5))")]
+ [DataRow("sin(sin(30))", "sin((pi / 180) * (sin((pi / 180) * (30))))")]
+ [DataRow("cos(tan(45))", "cos((pi / 180) * (tan((pi / 180) * (45))))")]
+ [DataRow("arctan(sin(30))", "(180 / pi) * (arctan(sin((pi / 180) * (30))))")]
+ [DataRow("sin(cos(tan(30)))", "sin((pi / 180) * (cos((pi / 180) * (tan((pi / 180) * (30))))))")]
+ [DataRow("sin(arcsin(0.5))", "sin((pi / 180) * ((180 / pi) * (arcsin(0.5))))")]
+ [DataRow("sin(30) + cos(60)", "sin((pi / 180) * (30)) + cos((pi / 180) * (60))")]
+ [DataRow("sin(30 + 15)", "sin((pi / 180) * (30 + 15))")]
+ [DataRow("sin(45) * cos(45) - tan(30)", "sin((pi / 180) * (45)) * cos((pi / 180) * (45)) - tan((pi / 180) * (30))")]
+ [DataRow("arcsin(arccos(0.5))", "(180 / pi) * (arcsin((180 / pi) * (arccos(0.5))))")]
+ [DataRow("sin(sin(sin(30)))", "sin((pi / 180) * (sin((pi / 180) * (sin((pi / 180) * (30))))))")]
+ [DataRow("log(10)", "log(10)")]
+ [DataRow("sin(30) + pi", "sin((pi / 180) * (30)) + pi")]
+ [DataRow("sin(-30)", "sin((pi / 180) * (-30))")]
+ [DataRow("sin((30))", "sin((pi / 180) * ((30)))")]
+ [DataRow("arcsin(1) * 2", "(180 / pi) * (arcsin(1)) * 2")]
+ [DataRow("cos(1/2)", "cos((pi / 180) * (1/2))")]
+ [DataRow("sin ( 90 )", "sin ((pi / 180) * ( 90 ))")]
+ [DataRow("cos(arcsin(sin(45)))", "cos((pi / 180) * ((180 / pi) * (arcsin(sin((pi / 180) * (45))))))")]
+ public void UpdateTrigFunctions_Degrees(string input, string expectedResult)
+ {
+ // Call UpdateTrigFunctions in degrees mode
+ string result = CalculateHelper.UpdateTrigFunctions(input, CalculateEngine.TrigMode.Degrees);
+
+ // Assert
+ Assert.IsNotNull(result);
+ Assert.AreEqual(expectedResult, result);
+ }
+
+ [DataTestMethod]
+ [DataRow("sin(90)", "sin((pi / 200) * (90))")]
+ [DataRow("arcsin(0.5)", "(200 / pi) * (arcsin(0.5))")]
+ [DataRow("sin(sin(30))", "sin((pi / 200) * (sin((pi / 200) * (30))))")]
+ [DataRow("cos(tan(45))", "cos((pi / 200) * (tan((pi / 200) * (45))))")]
+ [DataRow("arctan(sin(30))", "(200 / pi) * (arctan(sin((pi / 200) * (30))))")]
+ [DataRow("sin(cos(tan(30)))", "sin((pi / 200) * (cos((pi / 200) * (tan((pi / 200) * (30))))))")]
+ [DataRow("sin(arcsin(0.5))", "sin((pi / 200) * ((200 / pi) * (arcsin(0.5))))")]
+ [DataRow("sin(30) + cos(60)", "sin((pi / 200) * (30)) + cos((pi / 200) * (60))")]
+ [DataRow("sin(30 + 15)", "sin((pi / 200) * (30 + 15))")]
+ [DataRow("sin(45) * cos(45) - tan(30)", "sin((pi / 200) * (45)) * cos((pi / 200) * (45)) - tan((pi / 200) * (30))")]
+ [DataRow("arcsin(arccos(0.5))", "(200 / pi) * (arcsin((200 / pi) * (arccos(0.5))))")]
+ [DataRow("sin(sin(sin(30)))", "sin((pi / 200) * (sin((pi / 200) * (sin((pi / 200) * (30))))))")]
+ [DataRow("log(10)", "log(10)")]
+ [DataRow("sin(30) + pi", "sin((pi / 200) * (30)) + pi")]
+ [DataRow("sin(-30)", "sin((pi / 200) * (-30))")]
+ [DataRow("sin((30))", "sin((pi / 200) * ((30)))")]
+ [DataRow("arcsin(1) * 2", "(200 / pi) * (arcsin(1)) * 2")]
+ [DataRow("cos(1/2)", "cos((pi / 200) * (1/2))")]
+ [DataRow("sin ( 90 )", "sin ((pi / 200) * ( 90 ))")]
+ [DataRow("cos(arcsin(sin(45)))", "cos((pi / 200) * ((200 / pi) * (arcsin(sin((pi / 200) * (45))))))")]
+ public void UpdateTrigFunctions_Gradians(string input, string expectedResult)
+ {
+ // Call UpdateTrigFunctions in gradians mode
+ string result = CalculateHelper.UpdateTrigFunctions(input, CalculateEngine.TrigMode.Gradians);
+
+ // Assert
+ Assert.IsNotNull(result);
+ Assert.AreEqual(expectedResult, result);
+ }
}
}
diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/CalculateEngine.cs b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/CalculateEngine.cs
index 815a52d8b0..9248e3ca89 100644
--- a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/CalculateEngine.cs
+++ b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/CalculateEngine.cs
@@ -23,6 +23,13 @@ namespace Microsoft.PowerToys.Run.Plugin.Calculator
public const int RoundingDigits = 10;
+ public enum TrigMode
+ {
+ Radians,
+ Degrees,
+ Gradians,
+ }
+
///
/// Interpret
///
@@ -52,6 +59,9 @@ namespace Microsoft.PowerToys.Run.Plugin.Calculator
input = CalculateHelper.FixHumanMultiplicationExpressions(input);
+ // Modify trig functions depending on angle unit setting
+ input = CalculateHelper.UpdateTrigFunctions(input, Main.GetTrigMode());
+
var result = _magesEngine.Interpret(input);
// This could happen for some incorrect queries, like pi(2)
diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/CalculateHelper.cs b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/CalculateHelper.cs
index 436591e3b3..95705a34ca 100644
--- a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/CalculateHelper.cs
+++ b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/CalculateHelper.cs
@@ -25,6 +25,11 @@ namespace Microsoft.PowerToys.Run.Plugin.Calculator
@")+$",
RegexOptions.Compiled);
+ private const string DegToRad = "(pi / 180) * ";
+ private const string GradToRad = "(pi / 200) * ";
+ private const string RadToDeg = "(180 / pi) * ";
+ private const string RadToGrad = "(200 / pi) * ";
+
public static bool InputValid(string input)
{
if (string.IsNullOrWhiteSpace(input))
@@ -204,5 +209,86 @@ namespace Microsoft.PowerToys.Run.Plugin.Calculator
return output;
}
+
+ // Gets the index of the closing bracket of a function
+ private static int FindClosingBracketIndex(string input, int start)
+ {
+ int bracketCount = 0; // Set count to zero
+ for (int i = start; i < input.Length; i++)
+ {
+ if (input[i] == '(')
+ {
+ bracketCount++;
+ }
+ else if (input[i] == ')')
+ {
+ bracketCount--;
+ if (bracketCount == 0)
+ {
+ return i;
+ }
+ }
+ }
+
+ return -1; // Unmatched brackets
+ }
+
+ private static string ModifyTrigFunction(string input, string function, string modification)
+ {
+ // Get the RegEx pattern to match, depending on whether the function is inverse or normal
+ string pattern = function.StartsWith("arc", StringComparison.Ordinal) ? string.Empty : @"(? Resources.wox_plugin_calculator_plugin_name;
@@ -67,6 +69,20 @@ namespace Microsoft.PowerToys.Run.Plugin.Calculator
DisplayDescription = Resources.wox_plugin_calculator_replace_input_description,
Value = true,
},
+ new PluginAdditionalOption
+ {
+ Key = TrigMode,
+ DisplayLabel = Resources.wox_plugin_calculator_trig_unit_mode,
+ DisplayDescription = Resources.wox_plugin_calculator_trig_unit_mode_description,
+ PluginOptionType = PluginAdditionalOption.AdditionalOptionType.Combobox,
+ ComboBoxValue = (int)CalculateEngine.TrigMode.Radians,
+ ComboBoxItems =
+ [
+ new KeyValuePair(Resources.wox_plugin_calculator_trig_unit_radians, "0"),
+ new KeyValuePair(Resources.wox_plugin_calculator_trig_unit_degrees, "1"),
+ new KeyValuePair(Resources.wox_plugin_calculator_trig_unit_gradians, "2"),
+ ],
+ },
};
public List Query(Query query)
@@ -183,6 +199,7 @@ namespace Microsoft.PowerToys.Run.Plugin.Calculator
var inputUseEnglishFormat = false;
var outputUseEnglishFormat = false;
var replaceInput = true;
+ var trigMode = CalculateEngine.TrigMode.Radians;
if (settings != null && settings.AdditionalOptions != null)
{
@@ -194,11 +211,20 @@ namespace Microsoft.PowerToys.Run.Plugin.Calculator
var optionReplaceInput = settings.AdditionalOptions.FirstOrDefault(x => x.Key == ReplaceInput);
replaceInput = optionReplaceInput?.Value ?? replaceInput;
+
+ var optionTrigMode = settings.AdditionalOptions.FirstOrDefault(x => x.Key == TrigMode);
+ trigMode = (CalculateEngine.TrigMode)int.Parse(optionTrigMode.ComboBoxValue.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture);
}
_inputUseEnglishFormat = inputUseEnglishFormat;
_outputUseEnglishFormat = outputUseEnglishFormat;
_replaceInput = replaceInput;
+ _trigMode = trigMode;
+ }
+
+ public static CalculateEngine.TrigMode GetTrigMode()
+ {
+ return _trigMode;
}
public void Dispose()
diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs
index b48a3f417e..861993dbdd 100644
--- a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs
+++ b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs
@@ -203,5 +203,50 @@ namespace Microsoft.PowerToys.Run.Plugin.Calculator.Properties {
return ResourceManager.GetString("wox_plugin_calculator_replace_input_description", resourceCulture);
}
}
+
+ ///
+ /// Looks up a localized string similar to Degrees.
+ ///
+ public static string wox_plugin_calculator_trig_unit_degrees {
+ get {
+ return ResourceManager.GetString("wox_plugin_calculator_trig_unit_degrees", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Gradians.
+ ///
+ public static string wox_plugin_calculator_trig_unit_gradians {
+ get {
+ return ResourceManager.GetString("wox_plugin_calculator_trig_unit_gradians", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Trigonometry Unit.
+ ///
+ public static string wox_plugin_calculator_trig_unit_mode {
+ get {
+ return ResourceManager.GetString("wox_plugin_calculator_trig_unit_mode", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Specifies the angle unit to use for trigonometry operations..
+ ///
+ public static string wox_plugin_calculator_trig_unit_mode_description {
+ get {
+ return ResourceManager.GetString("wox_plugin_calculator_trig_unit_mode_description", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Radians.
+ ///
+ public static string wox_plugin_calculator_trig_unit_radians {
+ get {
+ return ResourceManager.GetString("wox_plugin_calculator_trig_unit_radians", resourceCulture);
+ }
+ }
}
}
diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.resx b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.resx
index 727603ab04..3c56eedf4b 100644
--- a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.resx
+++ b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.resx
@@ -167,4 +167,24 @@
When using direct activation, appending '=' to the expression will replace the input with the calculated result (e.g. '=5*3-2=' will change the query to '=13').
+
+ Trigonometry Unit
+ Title text for trig unit mode.
+
+
+ Specifies the angle unit to use for trigonometry operations
+ Description text for trig mode setting.
+
+
+ Radians
+ Text for angle unit.
+
+
+ Degrees
+ Text to use for angle unit.
+
+
+ Gradians
+ Text for angle unit.
+
\ No newline at end of file