public MtbWindow AddWindow(ImageSource Icon, object Content, string Title, MtbPlugin Plugin) { foreach (TaskBarButton task in tasks.Children) { if (task.Plugin == Plugin) { MtbWindow window = new MtbWindow(Icon, Content, Title, task); ShowWindow(window); windows.Children.Add(window); window.Height = windows.ActualHeight; window.Width = windows.ActualWidth; return(window); } } return(null); }
public MainWindow() { SplashScreen splash = new SplashScreen("images/SplashScreen.png"); splash.Show(true, true); //load configuration NameValueCollection cfg = ConfigurationManager.AppSettings; Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); KeyValueConfigurationCollection c = configuration.AppSettings.Settings; List <string> list = new List <string>(); list.AddRange(c.AllKeys); if (!list.Contains("Height")) { c.Add(new KeyValueConfigurationElement("Height", "720")); } if (!list.Contains("Width")) { c.Add(new KeyValueConfigurationElement("Width", "1280")); } if (!list.Contains("Account")) { c.Add(new KeyValueConfigurationElement("Account", "Steve")); } if (!list.Contains("Memory")) { c.Add(new KeyValueConfigurationElement("Memory", "1024")); } if (!list.Contains("JavaPath")) { c.Add(new KeyValueConfigurationElement("JavaPath", "")); } if (!list.Contains("MCPath")) { c.Add(new KeyValueConfigurationElement("MCPath", "")); } if (!list.Contains("DataShare")) { c.Add(new KeyValueConfigurationElement("DataShare", "true")); } if (!list.Contains("Online")) { c.Add(new KeyValueConfigurationElement("Online", "true")); } if (!list.Contains("FirstRun")) { c.Add(new KeyValueConfigurationElement("FirstRun", "true")); } configuration.Save(); ConfigurationManager.RefreshSection("appSettings"); Config.UpdateSettings(); //initialize UI InitializeComponent(); DataContext = this; (About.Content as About).ver.Content = "Version: 3.0"; //load plugins if (!Directory.Exists(Environment.CurrentDirectory + "\\plugins")) { Directory.CreateDirectory(Environment.CurrentDirectory + "\\plugins"); } foreach (string file in Directory.GetFiles(Environment.CurrentDirectory + "\\plugins")) { if (file.Substring(file.Length - 3) != "dll") { continue; } Assembly asm = Assembly.LoadFile(file); Type[] t = asm.GetExportedTypes(); foreach (Type type in t) { if (type.BaseType == typeof(MtbPlugin)) { MtbPlugin plugin = (MtbPlugin)Activator.CreateInstance(type); plugin.LoadPlugin(); if (plugin.CheckUpdate()) { Console.WriteLine(plugin.Name + ":" + plugin.UpdateMessage); } foreach (KeyValuePair <string, Tile[]> item in plugin.GetPages()) { WrapPanel wp = new WrapPanel { Orientation = Orientation.Vertical, Height = 252 }; foreach (Tile page in item.Value) { page.Height = page.Width = 120; page.Background = tileBrush; wp.Children.Add(page); } GroupBox grop = new GroupBox { Header = item.Key, Content = wp, Margin = new Thickness(5, 5, 10, 10), HorizontalAlignment = HorizontalAlignment.Left, Background = Brushes.Transparent, BorderBrush = groupBrush }; ControlsHelper.SetHeaderFontSize(grop, 14); GroupBoxHelper.SetHeaderForeground(grop, Brushes.White); panel.Children.Add(grop); } tasks.Children.Add(new TaskBarButton { Tip = plugin.Name, Source = plugin.Icon, Plugin = plugin }); } } } Task.Run(new Action(CheckUpdate)); }