Esempio n. 1
0
        /* 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();
        }
Esempio n. 2
0
        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();
        }