public override Panel CreateControl(BaseConfigurationAttribute attr, PropertyInfo prop, object configuration_instance) { var panel = base.CreateControl(attr, prop, configuration_instance); var textbox = panel.Children[1] as TextBox; textbox.Width -= 50; Button btn = new Button() { Content = "Try Get Username", Margin = new Thickness(1) }; btn.Click += (s, e) => { if (PublicOsuBotTransferPlugin.TryGetUserName(out var username)) { textbox.Text = username; } else { MessageBox.Show("Can't get username."); } }; panel.Children.Add(btn); return(panel); }
public override Panel CreateControl(BaseConfigurationAttribute attr, PropertyInfo prop, object configuration_instance) { var panel = base.CreateControl(attr, prop, configuration_instance); var evalue = GetConfigValue(prop, configuration_instance); var text = new TextBox() { Text = evalue, Width = 240, Height = 22, VerticalContentAlignment = VerticalAlignment.Center, AcceptsReturn = false }; panel.Children.Add(text); text.TextChanged += (s, e) => { SetConfigValue(prop, configuration_instance, text.Text); ConfigWindow.RequireRestart = attr.RequireRestart; }; return(panel); }
public override Panel CreateControl(BaseConfigurationAttribute attr, PropertyInfo prop, object configuration_instance) { var panel = base.CreateControl(attr, prop, configuration_instance); FormatEditor window = null; Button btn = new Button() { Content = "Open Editor", Margin = new Thickness(1) }; btn.Click += (s, e) => { window = (window ?? new FormatEditor(prop, configuration_instance)); if (window.Visibility == Visibility.Visible) { window.Activate(); } else { window.Show(); } }; panel.Children.Add(btn); return(panel); }
public override Panel CreateControl(BaseConfigurationAttribute attr, PropertyInfo prop, object configuration_instance) { Panel panel = base.CreateControl(attr, prop, configuration_instance); Button btn = new Button() { Content = "Open Editor" }; EditorWindow window = null; btn.Click += (s, e) => { window = (window ?? new EditorWindow(m_wrapper)); if (window.Visibility == Visibility.Visible) { window.Activate(); } else { window.Show(); } }; panel.Children.Add(btn); return(panel); }
public virtual Panel CreateControl(BaseConfigurationAttribute attr, PropertyInfo prop, object configuration_instance) { StackPanel panel = new StackPanel(); panel.Orientation = Orientation.Horizontal; panel.Margin = new Thickness(0, 5, 0, 5); if (configuration_instance == null || !I18nManager.Instance.TryGetLanguageValue(configuration_instance.GetType().Namespace, prop.Name, out string label_content)) { label_content = prop.Name; } if (configuration_instance == null || !I18nManager.Instance.TryGetLanguageDescription(configuration_instance.GetType().Namespace, prop.Name, out string description_content)) { description_content = ""; } Control label = new Label() { Content = $"{label_content}{(attr.RequireRestart?"(*)":"")}:", Margin = new Thickness(0, -3, 0, 0) }; panel.Children.Add(label); if (!string.IsNullOrWhiteSpace(description_content)) { label.ToolTip = description_content; } return(panel); }
public override Panel CreateControl(BaseConfigurationAttribute attr, PropertyInfo prop, object configuration_instance) { var panel = base.CreateControl(attr, prop, configuration_instance); var btn = new Button() { Content = "Open Editor", Height = 25 }; btn.Click += (s, e) => { editor = editor ?? new OverlayEditor(); if (editor.Visibility == Visibility.Visible) { editor.Activate(); } else { editor.Show(); } }; panel.Children.Add(btn); return(panel); }
public Panel CreateItemPanel(BaseConfigurationAttribute attr, PropertyInfo prop, object configuration_instance) { BaseConfigurationItemCreator creator; Type type = attr.GetType(); if (!m_items_mapping.TryGetValue(type, out creator)) { IEnumerable <KeyValuePair <Type, BaseConfigurationItemCreator> > list = m_items_mapping; KeyValuePair <Type, BaseConfigurationItemCreator> pair; while (list.Count() > 1) { list = list.Where(p => type.IsSubclassOf(p.Key) || p.Key.IsAssignableFrom(type)); pair = list.FirstOrDefault(); if (pair.Key == null || pair.Value == null) { type = typeof(StringAttribute); creator = m_items_mapping[type]; break; } type = pair.Key; creator = pair.Value; list = list.Take(1); } } return(creator.CreateControl(attr, prop, configuration_instance)); }
public override Panel CreateControl(BaseConfigurationAttribute attr, PropertyInfo prop, object configuration_instance) { Panel panel = base.CreateControl(attr, prop, configuration_instance); panel.Loaded += (s, e) => { Panel parent = panel.Parent as Panel; int index = parent.Children.IndexOf(panel); Panel byCuteSyncPanel = parent.Children[index - 1] as Panel; Panel formatterPanel = parent.Children[index - 2] as Panel; var formatterCombo = formatterPanel.Children[1] as ComboBox; var byCuteSyncCheckBox = byCuteSyncPanel.Children[0] as CheckBox; var apiKeyBox = panel.Children[1] as TextBox; byCuteSyncPanel.Visibility = Setting.Formatter == "rtppfmt-bp" ? Visibility.Visible : Visibility.Collapsed; panel.Visibility = Setting.ByCuteSyncProxy ? Visibility.Collapsed : Visibility.Visible; formatterCombo.SelectionChanged += (ss, ee) => { string fmtter = formatterCombo.SelectedItem as string; if (fmtter == "rtppfmt-bp") { byCuteSyncPanel.Visibility = Visibility.Visible; } else { byCuteSyncPanel.Visibility = Visibility.Collapsed; } }; byCuteSyncCheckBox.Checked += (ss, ee) => { if (SyncHost.Instance.EnumPluings().FirstOrDefault(p => p.Name == "PublicOsuBotTransferPlugin") == null) { ee.Handled = true; byCuteSyncCheckBox.IsChecked = false; MessageBox.Show(DefaultLanguage.MBX_POBT_VERSION_NO_INSTALLED, "RealTimePPDisplayer"); return; } }; byCuteSyncCheckBox.Click += (ss, ee) => { if (byCuteSyncCheckBox.IsChecked ?? false) { panel.Visibility = Visibility.Collapsed; } else { panel.Visibility = Visibility.Visible; } }; }; return(panel); }
public override Panel CreateControl(BaseConfigurationAttribute attr, PropertyInfo prop, object configuration_instance) { var panel = base.CreateControl(attr, prop, configuration_instance); IntegerAttribute iattr = attr as IntegerAttribute; var slider = panel.Children[1] as Slider; slider.Maximum = iattr.MaxValue; slider.Minimum = iattr.MinValue; return(panel); }
public override Panel CreateControl(BaseConfigurationAttribute attr, PropertyInfo prop, object configuration_instance) { var panel = base.CreateControl(attr, prop, configuration_instance); var slider = new Slider() { Width = 200, IsSnapToTickEnabled = true, }; //set value var evalue = GetConfigValue(prop, configuration_instance); if (int.TryParse(evalue, out int ivalue)) { slider.Value = ivalue; } var num_view = new TextBox() { Text = $"{(int)slider.Value}", Width = 50, Height = 22, VerticalContentAlignment = VerticalAlignment.Center, Margin = new Thickness(5, 0, 0, 0) }; num_view.SetBinding(TextBox.TextProperty, new Binding("Value") { Source = slider }); num_view.TextChanged += (s, e) => { if (!string.IsNullOrWhiteSpace(num_view.Text)) { SetConfigValue(prop, configuration_instance, num_view.Text); } else { SetConfigValue(prop, configuration_instance, slider.Minimum.ToString()); } ConfigWindow.RequireRestart = attr.RequireRestart; }; panel.Children.Add(slider); panel.Children.Add(num_view); return(panel); }
public override Panel CreateControl(BaseConfigurationAttribute attr, PropertyInfo prop, object configuration_instance) { var panel = base.CreateControl(attr, prop, configuration_instance); panel.Children.Clear(); if (configuration_instance == null || !I18nManager.Instance.TryGetLanguageValue(configuration_instance.GetType().Namespace, prop.Name, out string checkbox_content)) { checkbox_content = prop.Name; } if (configuration_instance == null || !I18nManager.Instance.TryGetLanguageDescription(configuration_instance.GetType().Namespace, prop.Name, out string description_content)) { description_content = ""; } var checkbox = new CheckBox() { Content = $"{checkbox_content}{(attr.RequireRestart ? "(*)" : "")}", Margin = new Thickness(5, -2, 0, 0) }; //set default value var evalue = GetConfigValue(prop, configuration_instance); if (bool.TryParse(evalue, out bool bvalue)) { checkbox.IsChecked = bvalue; } checkbox.Click += (s, e) => { SetConfigValue(prop, configuration_instance, checkbox.IsChecked.ToString()); ConfigWindow.RequireRestart = attr.RequireRestart; }; if (!string.IsNullOrWhiteSpace(description_content)) { checkbox.ToolTip = description_content; } panel.Children.Add(checkbox); return(panel); }
public override Panel CreateControl(BaseConfigurationAttribute attr, PropertyInfo prop, object configuration_instance) { var font_str = GetConfigValue(prop, configuration_instance); FontAttribute fattr = attr as FontAttribute; var panel = base.CreateControl(attr, prop, configuration_instance); var font_box = new TextBox() { Text = font_str, Width = 160, Height = 22, VerticalContentAlignment = VerticalAlignment.Center }; var button = new Button() { Content = DefaultLanguage.BUTTON_FONT, Width = 75, Margin = new Thickness(5, 0, 5, 0) }; panel.Children.Add(font_box); panel.Children.Add(button); button.Click += (s, e) => { var fontDialog = new System.Windows.Forms.FontDialog(); font_str = GetConfigValue(prop, configuration_instance); fontDialog.Font = new System.Drawing.Font(font_str, 20); if (fontDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { font_box.Text = fontDialog.Font.Name; } SetConfigValue(prop, configuration_instance, font_box.Text); }; font_box.LostFocus += (s, e) => { if (fattr.Check(font_box.Text)) { SetConfigValue(prop, configuration_instance, font_box.Text); } ConfigWindow.RequireRestart = attr.RequireRestart; }; return(panel); }
public override Panel CreateControl(BaseConfigurationAttribute attr, PropertyInfo prop, object configuration_instance) { Panel panel = base.CreateControl(attr, prop, configuration_instance); var multi_combo = panel.Children[1] as MultiSelectComboBox; multi_combo.Width = 200; Button multi_mmf_btn = new Button() { Content = DefaultLanguage.UI_MULTIOUTPUTEDITOR_BUTTON_CONTENT, IsEnabled = !ConfigWindow.RequireRestart, Margin = new Thickness(1), Visibility = Setting.OutputMethods.Any(om => om == MultiOutputDisplayer.METHOD_NAME) ? Visibility.Visible : Visibility.Hidden }; multi_mmf_btn.Click += (s, e) => { if (typeof(ListConfigurationItemCreator).Assembly.GetName().Version < Version.Parse("0.2.1")) { MessageBox.Show(DefaultLanguage.UI_UPDATE_CONFIGGUI_MESSAGEBOX, "Multi Output", MessageBoxButton.OK); return; } _editor = _editor ?? new MultiOutputEditor(); if (_editor.Visibility == Visibility.Visible) { _editor.Activate(); } else { _editor.Show(); } }; multi_combo.Click += (s, e) => { multi_mmf_btn.Visibility = Setting.OutputMethods.Any(om => om == MultiOutputDisplayer.METHOD_NAME) ? Visibility.Visible : Visibility.Hidden; multi_mmf_btn.IsEnabled = !ConfigWindow.RequireRestart; }; panel.Children.Add(multi_mmf_btn); return(panel); }
public override Panel CreateControl(BaseConfigurationAttribute attr, PropertyInfo prop, object configuration_instance) { var panel = base.CreateControl(attr, prop, configuration_instance); var textbox = panel.Children[1] as TextBox; textbox.Width -= 50; Button btn = new Button() { Content = "Connect", Margin = new Thickness(1) }; btn.Click += (s, e) => { _client.Restart(); }; panel.Children.Add(btn); return(panel); }
public override Panel CreateControl(BaseConfigurationAttribute attr, PropertyInfo prop, object configuration_instance) { var panel = base.CreateControl(attr, prop, configuration_instance); FloatAttribute iattr = attr as FloatAttribute; var slider = panel.Children[1] as Slider; var num_view = panel.Children[2] as TextBox; slider.Maximum = iattr.MaxValue; slider.Minimum = iattr.MinValue; slider.TickFrequency = iattr.Step; num_view.SetBinding(TextBox.TextProperty, new Binding("Value") { Source = slider, UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged, StringFormat = "F2" }); return(panel); }
public override Panel CreateControl(BaseConfigurationAttribute attr, PropertyInfo prop, object configuration_instance) { ListAttribute lattr = attr as ListAttribute; return(lattr.AllowMultiSelect ? CreateMultiSelectList(lattr, prop, configuration_instance) : CreateSingleSelectList(lattr, prop, configuration_instance)); }
public override Panel CreateControl(BaseConfigurationAttribute attr, PropertyInfo prop, object configuration_instance) { var panel = base.CreateControl(attr, prop, configuration_instance); ColorAttribute cattr = attr as ColorAttribute; var color_str = GetConfigValue(prop, configuration_instance); var color_box = new TextBox() { Text = color_str, Width = 160, Height = 22, VerticalContentAlignment = VerticalAlignment.Center }; var bound = new Border() { BorderBrush = Brushes.Black, BorderThickness = new Thickness(1), Width = 15, Height = 15, Margin = new Thickness(5, 0, 0, 0) }; var color_rect = new Rectangle() { }; var button = new Button() { Content = DefaultLanguage.BUTTON_COLOR, Width = 75, Margin = new Thickness(5, 0, 5, 0) }; var color = StringToColor(color_str); color_rect.Fill = new SolidColorBrush() { Color = Color.FromArgb(color.A, color.R, color.G, color.B) }; bound.Child = color_rect; panel.Children.Add(color_box); panel.Children.Add(bound); panel.Children.Add(button); button.Click += (s, e) => { var colorDialog = new System.Windows.Forms.ColorDialog(); color_str = GetConfigValue(prop, configuration_instance); color = StringToColor(color_str); colorDialog.Color = color; colorDialog.FullOpen = true; if (colorDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { color = colorDialog.Color; color_box.Text = RgbaToString(color.R, color.G, color.B, color.A); } }; color_box.TextChanged += (s, e) => { color = StringToColor(color_box.Text); color_rect.Fill = new SolidColorBrush() { Color = Color.FromArgb(color.A, color.R, color.G, color.B) }; if (cattr.Check(color_box.Text)) { SetConfigValue(prop, configuration_instance, color_box.Text); } ConfigWindow.RequireRestart = attr.RequireRestart; }; return(panel); }
public override Panel CreateControl(BaseConfigurationAttribute attr, PropertyInfo prop, object configuration_instance) { var panel = base.CreateControl(attr, prop, configuration_instance); PathAttribute pattr = attr as PathAttribute; var evalue = GetConfigValue(prop, configuration_instance); var path_box = new TextBox() { Text = evalue, Width = 160, Height = 22, VerticalContentAlignment = VerticalAlignment.Center }; var button = new Button() { Width = 75, Margin = new Thickness(5, 0, 5, 0) }; if (!pattr.IsDirectory) { button.Content = DefaultLanguage.BUTTON_OPEN; } else { button.Content = DefaultLanguage.BUTTON_BROWSE; } panel.Children.Add(path_box); panel.Children.Add(button); button.Click += (s, e) => { if (!pattr.IsDirectory) { var fileDialog = new System.Windows.Forms.OpenFileDialog(); try { fileDialog.InitialDirectory = Path.GetFullPath(evalue); fileDialog.FileName = Path.GetFileName(evalue); } catch (ArgumentException) { fileDialog.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory; } fileDialog.RestoreDirectory = true; if (fileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { path_box.Text = fileDialog.FileName; } } else { var folderDialog = new System.Windows.Forms.FolderBrowserDialog(); if (folderDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { path_box.Text = folderDialog.SelectedPath; } } SetConfigValue(prop, configuration_instance, path_box.Text); }; path_box.TextChanged += (s, e) => { if (pattr.Check(path_box.Text)) { SetConfigValue(prop, configuration_instance, path_box.Text); } ConfigWindow.RequireRestart = attr.RequireRestart; }; return(panel); }