aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS.WinForms/WidgetManager.cs
diff options
context:
space:
mode:
authorwilliam341 <[email protected]>2017-06-18 16:43:30 -0700
committerGitHub <[email protected]>2017-06-18 16:43:30 -0700
commitba80dcf3f80018cbb041b62ad8a40268427d1311 (patch)
treef0bd18b2355d34c07c744c3cd82a4725a799eecd /ShiftOS.WinForms/WidgetManager.cs
parent771c20cfb3a703e0f1550fdcf9eb07b78298c944 (diff)
parent12acff8742f4c64976bfabee1b70dc515190fc7c (diff)
downloadshiftos_thereturn-ba80dcf3f80018cbb041b62ad8a40268427d1311.tar.gz
shiftos_thereturn-ba80dcf3f80018cbb041b62ad8a40268427d1311.tar.bz2
shiftos_thereturn-ba80dcf3f80018cbb041b62ad8a40268427d1311.zip
Merge pull request #2 from shiftos-game/master
wew
Diffstat (limited to 'ShiftOS.WinForms/WidgetManager.cs')
-rw-r--r--ShiftOS.WinForms/WidgetManager.cs36
1 files changed, 6 insertions, 30 deletions
diff --git a/ShiftOS.WinForms/WidgetManager.cs b/ShiftOS.WinForms/WidgetManager.cs
index fec09f9..81a97af 100644
--- a/ShiftOS.WinForms/WidgetManager.cs
+++ b/ShiftOS.WinForms/WidgetManager.cs
@@ -16,36 +16,12 @@ namespace ShiftOS.WinForms
{
public static Dictionary<DesktopWidgetAttribute, Type> GetAllWidgetTypes()
{
- Dictionary<DesktopWidgetAttribute, Type> types = new Dictionary<WinForms.DesktopWidgetAttribute, Type>();
- foreach(var exe in System.IO.Directory.GetFiles(Environment.CurrentDirectory))
- {
- if(exe.EndsWith(".exe") || exe.EndsWith(".dll"))
- {
- try
- {
- var asm = Assembly.LoadFile(exe);
- foreach(var type in asm.GetTypes())
- {
- if (type.GetInterfaces().Contains(typeof(IDesktopWidget)))
- {
- if (Shiftorium.UpgradeAttributesUnlocked(type))
- {
- foreach (var attrib in type.GetCustomAttributes(false))
- {
- if (attrib is DesktopWidgetAttribute)
- {
- var dw = attrib as DesktopWidgetAttribute;
- types.Add(dw, type);
- }
- }
- }
- }
- }
- }
- catch { }
- }
- }
- return types;
+ var ret = new Dictionary<DesktopWidgetAttribute, Type>();
+ var types = Array.FindAll(ReflectMan.Types, t => t.GetInterfaces().Contains(typeof(IDesktopWidget)) && Shiftorium.UpgradeAttributesUnlocked(t));
+ foreach (var type in types)
+ foreach (var attrib in Array.FindAll(type.GetCustomAttributes(false), a => a is DesktopWidgetAttribute))
+ ret.Add(attrib as DesktopWidgetAttribute, type);
+ return ret;
}
internal static void SaveDetails(Type type, WidgetDetails location)