/* TODO: Disabled Login components due to php backend not functioning on modapi.cc * protected void ShowLoginLoader() * { * Dispatcher.Invoke(delegate * { * LoginButton.Visibility = Visibility.Collapsed; * LoginLoader.Visibility = Visibility.Visible; * LoggedIn.Visibility = Visibility.Collapsed; * }); * } * * protected void ShowLoginUser(WebService.User user) * { * Dispatcher.Invoke(delegate * { * LoginButton.Visibility = Visibility.Collapsed; * LoginLoader.Visibility = Visibility.Collapsed; * LoggedIn.Visibility = Visibility.Visible; * UserAvatarLoader.Visibility = Visibility.Visible; * Console.WriteLine(user.Usergroup); * Usergroup.SetResourceReference(TextBlock.TextProperty, "Lang.UserGroup." + user.Usergroup); * Username.Text = user.Username; * user.OnAvatarChange = AvatarChange; * user.LoadAvatar(); * }); * } * * protected void AvatarChange() * { * Dispatcher.Invoke(delegate * { * UserAvatarLoader.Visibility = Visibility.Collapsed; * var avatar = new BitmapImage(); * avatar.BeginInit(); * if (WebService.CurrentUser.Avatar == null) * { * avatar.UriSource = new Uri("pack://application:,,,/ModAPI;component/resources/textures/Icons/noAvatar.png"); * } * else * { * avatar.StreamSource = WebService.CurrentUser.Avatar; * } * avatar.CacheOption = BitmapCacheOption.OnLoad; * avatar.EndInit(); * UserAvatar.Source = avatar; * UserAvatar.InvalidateProperty(Image.SourceProperty); * }); * } * * protected void ShowLoginError(int id, string text) * { * Dispatcher.Invoke(delegate * { * ShowLogin(); * var win = new LoginWindow("Lang.Windows.Login", true); * win.ShowSubWindow(); * }); * } * * protected void ShowLogin() * { * Dispatcher.Invoke(delegate * { * LoginButton.Visibility = Visibility.Visible; * LoginLoader.Visibility = Visibility.Collapsed; * LoggedIn.Visibility = Visibility.Collapsed; * }); * } */ public MainWindow() { //System.Console.WriteLine("AAA"); if (Configuration.Languages["en"] != null) { App.Instance.Resources.MergedDictionaries.Add(Configuration.Languages["en"].Resource); } InitializeComponent(); Instance = this; CheckDir(); /* TODO: Disabled Login components due to php backend not functioning on modapi.cc * WebService.OnDoLogin = ShowLoginLoader; * WebService.OnLogin = ShowLoginUser; * WebService.OnLoginError = ShowLoginError; * WebService.OnLogout = ShowLogin; */ WebService.Initialize(); foreach (var langCode in Languages) { var newItem = new ComboBoxItem { Style = Application.Current.FindResource("ComboBoxItem") as Style, DataContext = langCode }; LanguageItems.Add(langCode, newItem); var panel = new StackPanel { Orientation = Orientation.Horizontal }; var image = new Image { Height = 20 }; var source = new BitmapImage(); source.BeginInit(); source.UriSource = new Uri("pack://application:,,,/ModAPI;component/resources/textures/Icons/Lang_" + langCode + ".png"); source.EndInit(); image.Source = source; image.Margin = new Thickness(0, 0, 5, 0); panel.Children.Add(image); var label = new TextBlock { FontSize = 16 }; label.SetResourceReference(TextBlock.TextProperty, "Lang.Languages." + langCode); panel.Children.Add(label); newItem.Content = panel; DevelopmentLanguageSelector.Items.Add(newItem); } FirstSetup = Configuration.GetString("SetupDone").ToLower() != "true"; if (FirstSetup) { var win = new FirstSetup("Lang.Windows.FirstSetup"); win.ShowSubWindow(); win.Show(); } else { FirstSetupDone(); } Configuration.OnLanguageChanged += LanguageChanged; foreach (var language in Configuration.Languages.Values) { AddLanguage(language); } SettingsVm = new SettingsViewModel(); Settings.DataContext = SettingsVm; //LanguageSelector.SelectedIndex = Configuration.Languages.Values.ToList().IndexOf(Configuration.CurrentLanguage); foreach (var tab in GuiConfiguration.Tabs) { var newTab = new IconTabItem(); var style = App.Instance.Resources["TopTab"] as Style; newTab.Style = style; try { var image = new BitmapImage(); image.BeginInit(); image.UriSource = new Uri("pack://application:,,,/ModAPI;component/resources/textures/Icons/" + tab.IconName); image.EndInit(); newTab.IconSource = image; } catch (Exception e) { Debug.Log("MainWindow", "Couldn't find the icon \"" + tab.IconName + "\".", Debug.Type.Warning); } try { var imageSelected = new BitmapImage(); imageSelected.BeginInit(); imageSelected.UriSource = new Uri("pack://application:,,,/ModAPI;component/resources/textures/Icons/" + tab.IconSelectedName); imageSelected.EndInit(); newTab.SelectedIconSource = imageSelected; } catch (Exception e) { Debug.Log("MainWindow", "Couldn't find the icon \"" + tab.IconSelectedName + "\".", Debug.Type.Warning); } newTab.SetResourceReference(IconTabItem.LabelProperty, tab.LangPath + ".Tab"); var newPanel = (IPanel)Activator.CreateInstance(tab.ComponentType); newTab.Content = newPanel; Debug.Log("MainWindow", "Added tab of type \"" + tab.TypeName + "\"."); newPanel.SetTab(tab); Panels.Add(newPanel); Tabs.Items.Add(newTab); } Timer = new DispatcherTimer(); Timer.Tick += GuiTick; Timer.Interval = new TimeSpan((long)(GuiDeltaTime * 10000000)); Timer.Start(); LanguageChanged(); SettingsVm.Changed(); }
public MainWindow() { //System.Console.WriteLine("AAA"); if (Configuration.Languages["en"] != null) { App.Instance.Resources.MergedDictionaries.Add(Configuration.Languages["en"].Resource); } InitializeComponent(); Instance = this; ModAPI.Utils.WebService.OnDoLogin = ShowLoginLoader; ModAPI.Utils.WebService.OnLogin = ShowLoginUser; ModAPI.Utils.WebService.OnLoginError = ShowLoginError; ModAPI.Utils.WebService.OnLogout = ShowLogin; ModAPI.Utils.WebService.Initialize(); foreach (string LangCode in Languages) { ComboBoxItem newItem = new ComboBoxItem(); newItem.Style = Application.Current.FindResource("ComboBoxItem") as Style; newItem.DataContext = LangCode; LanguageItems.Add(LangCode, newItem); StackPanel panel = new StackPanel(); panel.Orientation = Orientation.Horizontal; Image image = new Image(); image.Height = 20; BitmapImage source = new BitmapImage(); source.BeginInit(); source.UriSource = new Uri("pack://application:,,,/ModAPI;component/resources/textures/Icons/Lang_" + LangCode + ".png"); source.EndInit(); image.Source = source; image.Margin = new Thickness(0, 0, 5, 0); panel.Children.Add(image); TextBlock label = new TextBlock(); label.FontSize = 16; label.SetResourceReference(TextBlock.TextProperty, "Lang.Languages." + LangCode); panel.Children.Add(label); newItem.Content = panel; DevelopmentLanguageSelector.Items.Add(newItem); } FirstSetup = Configuration.GetString("SetupDone").ToLower() != "true"; if (FirstSetup) { ModAPI.Windows.SubWindows.FirstSetup win = new ModAPI.Windows.SubWindows.FirstSetup("Lang.Windows.FirstSetup"); win.ShowSubWindow(); win.Show(); } else { FirstSetupDone(); } Configuration.OnLanguageChanged += LanguageChanged; foreach (Configuration.Language language in Configuration.Languages.Values) { AddLanguage(language); } SettingsVM = new SettingsViewModel(); Settings.DataContext = SettingsVM; //LanguageSelector.SelectedIndex = Configuration.Languages.Values.ToList().IndexOf(Configuration.CurrentLanguage); foreach (GUIConfiguration.Tab tab in GUIConfiguration.Tabs) { IconTabItem newTab = new IconTabItem(); Style style = App.Instance.Resources["TopTab"] as Style; newTab.Style = style; try { BitmapImage image = new BitmapImage(); image.BeginInit(); image.UriSource = new Uri("pack://application:,,,/ModAPI;component/resources/textures/Icons/" + tab.IconName); image.EndInit(); newTab.IconSource = image; } catch (Exception e) { Debug.Log("MainWindow", "Couldn't find the icon \"" + tab.IconName + "\".", Debug.Type.WARNING); } try { BitmapImage imageSelected = new BitmapImage(); imageSelected.BeginInit(); imageSelected.UriSource = new Uri("pack://application:,,,/ModAPI;component/resources/textures/Icons/" + tab.IconSelectedName); imageSelected.EndInit(); newTab.SelectedIconSource = imageSelected; } catch (Exception e) { Debug.Log("MainWindow", "Couldn't find the icon \"" + tab.IconSelectedName + "\".", Debug.Type.WARNING); } newTab.SetResourceReference(IconTabItem.LabelProperty, tab.LangPath + ".Tab"); IPanel newPanel = (IPanel)Activator.CreateInstance(tab.ComponentType); newTab.Content = newPanel; Debug.Log("MainWindow", "Added tab of type \"" + tab.TypeName + "\"."); newPanel.SetTab(tab); Panels.Add(newPanel); Tabs.Items.Add(newTab); } Timer = new DispatcherTimer(); Timer.Tick += new EventHandler(GUITick); Timer.Interval = new TimeSpan((long)(GUIDeltaTime * 10000000)); Timer.Start(); LanguageChanged(); SettingsVM.Changed(); }