public UiEncodingLabeledNumber(string label, int width, int minValue, int maxValue, RoutedPropertyChangedEventHandler <object> onValueChanged)
        {
            _onValueChanged = onValueChanged;

            ColumnDefinitions.Add(new ColumnDefinition()
            {
                Width = GridLength.Auto
            });
            ColumnDefinitions.Add(new ColumnDefinition());

            Margin = new Thickness(5);

            UiTextBlock labelControl = UiTextBlockFactory.Create(label);

            {
                labelControl.Margin            = new Thickness(5, 5, 2, 5);
                labelControl.VerticalAlignment = VerticalAlignment.Center;
                AddUiElement(labelControl, 0, 0);
            }

            NumberControl = UiIntegerUpDownFactory.Create(minValue, maxValue);
            {
                NumberControl.Width         = width;
                NumberControl.Margin        = new Thickness(2, 5, 5, 5);
                NumberControl.ValueChanged += OnValueChanged;
                AddUiElement(NumberControl, 0, 1);
            }
        }
示例#2
0
        public UiTextInput()
        {
            _textBlock = new UiTextBlock();
            _textBlock.SetCaret();

            base.AddChild(_textBlock);
        }
示例#3
0
        public UiProgressWindow(string title)
        {
            #region Construct

            Height = 72;
            Width  = 320;
            WindowStartupLocation = WindowStartupLocation.CenterScreen;
            WindowStyle           = WindowStyle.None;

            UiGrid root = UiGridFactory.Create(3, 1);
            root.SetRowsHeight(GridLength.Auto);
            root.Margin = new Thickness(5);

            UiTextBlock titleTextBlock = UiTextBlockFactory.Create(title);
            {
                titleTextBlock.VerticalAlignment   = VerticalAlignment.Center;
                titleTextBlock.HorizontalAlignment = HorizontalAlignment.Center;
                root.AddUiElement(titleTextBlock, 0, 0);
            }

            _progressBar = UiProgressBarFactory.Create();
            {
                root.AddUiElement(_progressBar, 1, 0);
            }

            _progressTextBlock = UiTextBlockFactory.Create("100%");
            {
                _progressTextBlock.VerticalAlignment   = VerticalAlignment.Center;
                _progressTextBlock.HorizontalAlignment = HorizontalAlignment.Center;
                root.AddUiElement(_progressTextBlock, 1, 0);
            }

            _elapsedTextBlock = UiTextBlockFactory.Create(Lang.Measurement.Elapsed + ": 00:00");
            {
                _elapsedTextBlock.HorizontalAlignment = HorizontalAlignment.Left;
                root.AddUiElement(_elapsedTextBlock, 2, 0);
            }

            _processedTextBlock = UiTextBlockFactory.Create("0 / 0");
            {
                _processedTextBlock.HorizontalAlignment = HorizontalAlignment.Center;
                root.AddUiElement(_processedTextBlock, 2, 0);
            }

            _remainingTextBlock = UiTextBlockFactory.Create(Lang.Measurement.Remaining + ": 00:00");
            {
                _remainingTextBlock.HorizontalAlignment = HorizontalAlignment.Right;
                root.AddUiElement(_remainingTextBlock, 2, 0);
            }

            Content = root;

            #endregion

            Loaded  += OnLoaded;
            Closing += OnClosing;

            _timer          = new System.Timers.Timer(500);
            _timer.Elapsed += OnTimer;
        }
示例#4
0
        public UiAudioPlayer()
        {
            Orientation = System.Windows.Controls.Orientation.Horizontal;

            Thickness margin = new Thickness(3);

            _playbackButton = AddUiElement(new UiImageButton {
                ImageSource = Icons.PlayIcon, Margin = margin
            });
            _stopButton = AddUiElement(new UiImageButton {
                ImageSource = Icons.StopIcon, Margin = margin
            });
            _timeTextBlock                   = AddUiElement(UiTextBlockFactory.Create("00:00 / 00:00"));
            _timeTextBlock.Margin            = margin;
            _timeTextBlock.VerticalAlignment = VerticalAlignment.Center;

            _timer          = new System.Timers.Timer(1000);
            _timer.Elapsed += OnTimerTick;

            _playbackButton.Click += Playback;
            _stopButton.Click     += Stop;

            ChangeAudioSettings(InteractionService.AudioSettings.Provide());
            InteractionService.AudioSettings.InfoProvided += ChangeAudioSettings;
        }
        public UiEncodingLabeledWatermark(string label, string watermark, int width, TextChangedEventHandler onValueChanged)
        {
            ColumnDefinitions.Add(new ColumnDefinition()
            {
                Width = GridLength.Auto
            });
            ColumnDefinitions.Add(new ColumnDefinition());

            Margin = new Thickness(5);

            UiTextBlock labelControl = UiTextBlockFactory.Create(label);

            {
                labelControl.Margin            = new Thickness(5, 5, 2, 5);
                labelControl.VerticalAlignment = VerticalAlignment.Center;
                AddUiElement(labelControl, 0, 0);
            }

            _textControl = UiWatermarkTextBoxFactory.Create(watermark);
            {
                _textControl.Width        = width;
                _textControl.Margin       = new Thickness(2, 5, 5, 5);
                _textControl.TextChanged += onValueChanged;
                AddUiElement(_textControl, 0, 1);
            }
        }
示例#6
0
        public static UiTextBlock Create(String text)
        {
            UiTextBlock textBlock = new UiTextBlock {
                Text = text
            };

            return(textBlock);
        }
示例#7
0
        public static UiTextBlock Create(string text)
        {
            Exceptions.CheckArgumentNull(text, "text");

            UiTextBlock textBlock = new UiTextBlock {
                Text = text
            };

            return(textBlock);
        }
        public UiAdvertListing(Advert advert, ISettings apiSettings)
        {
            AdStatus = UiTextBlock.Paragraph(advert.Status.ToString());

            AdTitle = UiTextBlock.Emphasis(advert.Title);
            AdId    = UiTextBlock.Paragraph(advert.AdvertReference);
            AdType  = UiTextBlock.Paragraph("Standard");

            AdPrice           = UiTextBlock.Paragraph(String.Format("{0:C}", advert.EditingData.Price));
            AdDateTimeCreated = UiTextBlock.Paragraph(advert.DateCreated.GetHumanReadableDate());
        }
        private static void SpawnColorItem(Color color, UiSpacer spacer, out UiColumn colorSquare, out UiTextBlock colorText)
        {
            colorSquare = new UiColumn();
            var colorSquare1 = new UiTexture2D(graphics => Helpers.GetTexture(graphics));

            colorSquare1.SetColor(color);
            colorSquare.AddChild(UiSpacer.GetSpacer(0, 5));
            colorSquare.AddChild(colorSquare1);

            colorText = new UiTextBlock();
            colorText.SetString($"{color.R:X2}{color.G:X2}{color.B:X2}");
        }
示例#10
0
        public UiAudioPlayer()
        {
            Orientation = System.Windows.Controls.Orientation.Horizontal;

            Thickness margin = new Thickness(3);
            _playbackButton = AddUiElement(new UiImageButton {ImageSource = Icons.PlayIcon, Margin = margin});
            _stopButton = AddUiElement(new UiImageButton {ImageSource = Icons.StopIcon, Margin = margin});
            _timeTextBlock = AddUiElement(UiTextBlockFactory.Create("00:00 / 00:00"));
            _timeTextBlock.Margin = margin;
            _timeTextBlock.VerticalAlignment = VerticalAlignment.Center;

            _timer = new System.Timers.Timer(1000);
            _timer.Elapsed += OnTimerTick;

            _playbackButton.Click += Playback;
            _stopButton.Click += Stop;

            ChangeAudioSettings(InteractionService.AudioSettings.Provide());
            InteractionService.AudioSettings.InfoProvided += ChangeAudioSettings;
        }
示例#11
0
        public ModOptionsEvent()
        {
            _window = new UiWindow();

            _window.Container.SetBackground("mods/Fox Core V3/Staxel/UI/Backgrounds/Dark/DarkBackground.json");

            _window.Container.SetMinWidth(250);
            _window.Container.SetMinHeight(250);

            var selectable = new UiSelectable();

            selectable.SetActiveBackgroundColor(Color.Green);
            selectable.SetActiveTextColor(Color.Red);
            selectable.SetBackground("mods/Fox Core V3/Staxel/UI/Backgrounds/Dark/DarkBackground.json");

            var text = new UiTextBlock();

            text.SetString("Hello World");

            _window.AddChild(selectable);
            selectable.AddChild(text);

            _window.OnShow += () => {
                ClientContext.WebOverlayRenderer.AcquireInputControl();
            };

            _window.OnHide += () => {
                ClientContext.WebOverlayRenderer.ReleaseInputControl();
            };

            _window.OnClose += () => {
                ClientContext.WebOverlayRenderer.ReleaseInputControl();
            };

            _window.Show();
        }
示例#12
0
        public UiEncodingMainCharacterControl()
        {
            Orientation       = Orientation.Horizontal;
            VerticalAlignment = VerticalAlignment.Center;

            #region Construct

            _indexLabel = UiTextBlockFactory.Create("#");
            {
                _indexLabel.Margin            = new Thickness(5);
                _indexLabel.VerticalAlignment = VerticalAlignment.Center;
                Children.Add(_indexLabel);
            }

            _ox     = AddUiElement(new UiEncodingLabeledNumber("OX:", 60, 0, short.MaxValue, OXChanged));
            _oy     = AddUiElement(new UiEncodingLabeledNumber("OY:", 60, 0, short.MaxValue, OYChanged));
            _before = AddUiElement(new UiEncodingLabeledNumber(Lang.EncodingEditor.Main.Before, 50, sbyte.MinValue, sbyte.MaxValue, BeforeChanged));
            _width  = AddUiElement(new UiEncodingLabeledNumber(Lang.EncodingEditor.Main.Width, 50, 0, sbyte.MaxValue, WidthChanged));
            _after  = AddUiElement(new UiEncodingLabeledNumber(Lang.EncodingEditor.Main.After, 50, sbyte.MinValue, sbyte.MaxValue, AfterChanged));
            _output = AddUiElement(new UiEncodingLabeledWatermark(Lang.EncodingEditor.Main.ToText, "0x31->\"1\"", 50, OnOutputTextChanged));
            _input  = AddUiElement(new UiEncodingLabeledWatermark(Lang.EncodingEditor.Main.FromText, "0x31<-\"1\"", 70, OnInputTextChanged));

            #endregion
        }
        public UiEncodingMainCharacterControl()
        {
            Orientation = Orientation.Horizontal;
            VerticalAlignment = VerticalAlignment.Center;

            #region Construct

            _indexLabel = UiTextBlockFactory.Create("#");
            {
                _indexLabel.Margin = new Thickness(5);
                _indexLabel.VerticalAlignment = VerticalAlignment.Center;
                Children.Add(_indexLabel);
            }

            _ox = AddUiElement(new UiEncodingLabeledNumber("OX:", 60, 0, short.MaxValue, OXChanged));
            _oy = AddUiElement(new UiEncodingLabeledNumber("OY:", 60, 0, short.MaxValue, OYChanged));
            _before = AddUiElement(new UiEncodingLabeledNumber(Lang.EncodingEditor.Main.Before, 50, sbyte.MinValue, sbyte.MaxValue, BeforeChanged));
            _width = AddUiElement(new UiEncodingLabeledNumber(Lang.EncodingEditor.Main.Width, 50, 0, sbyte.MaxValue, WidthChanged));
            _after = AddUiElement(new UiEncodingLabeledNumber(Lang.EncodingEditor.Main.After, 50, sbyte.MinValue, sbyte.MaxValue, AfterChanged));
            _output = AddUiElement(new UiEncodingLabeledWatermark(Lang.EncodingEditor.Main.ToText, "0x31->\"1\"", 50, OnOutputTextChanged));
            _input = AddUiElement(new UiEncodingLabeledWatermark(Lang.EncodingEditor.Main.FromText, "0x31<-\"1\"", 70, OnInputTextChanged));

            #endregion
        }
示例#14
0
        public UiNumberInput()
        {
            _textInput = new UiTextInput();
            _textInput.SetBackground(Constants.Backgrounds.TextInput);
            _textInput.SetTextColor(Color.Black);
            _textInput.SetActiveTextColor(Color.Black);
            _textInput.InputCheck += ch => {
                switch (ch)
                {
                default:
                    return(false);

                case '0':
                case '1':
                case '2':
                case '3':
                case '4':
                case '5':
                case '6':
                case '7':
                case '8':
                case '9':
                case '.':
                    return(true);
                }
            };
            _textInput.OnChange += text => {
                if (float.TryParse(text, out var value))
                {
                    SetValue(value, true);
                }
            };
            _displayRow = new UiRow();

            var downButton = new UiButton();

            downButton.SetBackground(Constants.Backgrounds.Button);
            downButton.OnHold += () => {
                SetValue(_value - _itterations, true);
            };
            downButton.SetTextColor(Color.Black);
            downButton.SetActiveTextColor(Color.Black);
            var downText = new UiTextBlock();

            downText.SetString("-");
            downButton.AddChild(downText);

            var spacer = UiSpacer.GetSpacer(5, 5);

            _displayRow.AddChild(downButton);
            _displayRow.AddChild(spacer);

            base.AddChild(_displayRow);
            var upButton = new UiButton();

            upButton.SetBackground(Constants.Backgrounds.Button);
            upButton.OnHold += () => {
                SetValue(_value + _itterations, true);
            };

            var inputColumn = new UiColumn();

            inputColumn.AddChild(spacer);
            inputColumn.AddChild(_textInput);
            inputColumn.AddChild(spacer);

            _displayRow.AddChild(inputColumn);
            _displayRow.AddChild(spacer);
            _displayRow.AddChild(upButton);
            upButton.SetTextColor(Color.Black);
            upButton.SetActiveTextColor(Color.Black);
            var upText = new UiTextBlock();

            upText.SetString("+");
            upButton.AddChild(upText);

            SetSize(60, 30);
        }
        private static void SpawnInputTextWindow(UiWindow window, UiSpacer spacer,
                                                 string labelText, string titleText, Func <string, bool> validationAndSuccess, string errorTitle, string errorMessage, Action onClose)
        {
            var textInputWindow = new UiWindow();

            textInputWindow.Container.SetBackground(Constants.Backgrounds.Dark);
            textInputWindow.ListenForEscape(true);

            textInputWindow.OnClose += () => {
                onClose();
            };

            var title = new UiTextBlock();

            title.SetColor(Color.Orange);
            title.SetFont(Constants.Fonts.MyFirstCrush36);
            title.SetString(titleText);
            textInputWindow.AddChild(title);
            textInputWindow.AddChild(spacer);

            var inputRow = new UiRow();

            textInputWindow.AddChild(inputRow);
            textInputWindow.AddChild(spacer);

            var label = new UiTextBlock();

            label.SetString(labelText);
            inputRow.AddChild(label);
            inputRow.AddChild(spacer);

            var input = new UiTextInput();

            input.SetBackgroundColor(new Color(237, 207, 154));
            input.SetTextColor(Color.Black);
            input.SetActiveTextColor(Color.Black);
            input.SetBackground(Constants.Backgrounds.TextInput);
            inputRow.AddChild(input);
            input.SetSize(300);
            input.SetLimit(25);

            var buttonRow = new UiRow();

            textInputWindow.AddChild(buttonRow);

            var createButton = new UiButton();

            buttonRow.AddChild(createButton);
            buttonRow.AddChild(spacer);
            var createText = new UiTextBlock();

            createText.SetString(ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.create"));
            createButton.AddChild(createText);

            createButton.OnClick += () => {
                if (validationAndSuccess(input.GetValue()))
                {
                    textInputWindow.Dispose();
                }
                else
                {
                    var errorWindow = new UiWindow();
                    errorWindow.Container.SetBackground(Constants.Backgrounds.Dark);

                    var errorTitleText = new UiTextBlock();
                    errorTitleText.SetColor(Color.Orange);
                    errorTitleText.SetFont(Constants.Fonts.MyFirstCrush36);
                    errorTitleText.SetString(errorTitle);
                    errorWindow.AddChild(errorTitleText);
                    errorWindow.AddChild(spacer);

                    var message = new UiTextBlock();
                    message.SetString(errorMessage);
                    message.SetColor(Color.Red);
                    errorWindow.AddChild(message);
                    errorWindow.AddChild(spacer);

                    var okButton = new UiButton();
                    var okText   = new UiTextBlock();
                    okText.SetString(ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.ok"));
                    okButton.AddChild(okText);
                    okButton.OnClick += () => {
                        textInputWindow.StartUpdateCalls();
                        errorWindow.Dispose();
                    };
                    errorWindow.AddChild(okButton);

                    textInputWindow.AddChildWindow(errorWindow);
                    textInputWindow.ListenForEscape(false);
                    textInputWindow.StopUpdateCalls();
                    errorWindow.ListenForEscape(true);

                    errorWindow.OnClose += () => {
                        textInputWindow.ListenForEscape(true);
                        textInputWindow.StartUpdateCalls();
                    };

                    errorWindow.Show();
                }
            };

            var cancelButton = new UiButton();

            buttonRow.AddChild(cancelButton);
            var cancelText = new UiTextBlock();

            cancelButton.AddChild(cancelText);
            cancelText.SetString(ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.cancel"));

            cancelButton.OnClick += () => {
                textInputWindow.Dispose();
            };

            window.Hide();
            window.ListenForEscape(false);
            window.AddChildWindow(textInputWindow);
            window.StopUpdateCalls();
            textInputWindow.Show();
        }
        private static UiElement SpawnFolderItem(UiWindow window, UiWindow parent, UiSpacer spacer, Action <Color> setColor, string folder, Func <string, bool> onClick, Action <UiWindow, UiSpacer, Action <Color> > renew)
        {
            var itemRow = new UiRow();

            var itemButton = new UiButton();

            itemRow.AddChild(itemButton);
            var itemText = new UiTextBlock();

            itemText.SetString(folder);
            itemButton.AddChild(itemText);
            itemRow.AddChild(spacer);
            itemButton.OnClick += () => {
                if (onClick(folder))
                {
                    parent.Dispose();
                }
            };

            var deleteButton = new UiButton();

            itemRow.AddChild(deleteButton);
            var deleteIcon = FoxUIHook.Instance.GetPicture("nimbusfox.ui.images.delete.text");

            deleteButton.AddChild(deleteIcon);
            deleteButton.OnClick += () => {
                var confirmWindow = new UiWindow();
                confirmWindow.Container.SetBackground(Constants.Backgrounds.Dark);
                parent.AddChildWindow(confirmWindow);

                var confirmTitle = new UiTextBlock();
                confirmWindow.AddChild(confirmTitle);
                confirmTitle.SetFont(Constants.Fonts.MyFirstCrush36);
                confirmTitle.SetColor(Color.Orange);
                confirmTitle.SetString(string.Format(ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.deleteTitle"), folder));
                confirmWindow.AddChild(spacer);

                var confirmMessage = new UiTextBlock();
                confirmWindow.AddChild(confirmMessage);
                confirmMessage.SetString(string.Format(ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.deleteMessage"), folder));
                confirmWindow.AddChild(spacer);

                var buttonRow = new UiRow();
                confirmWindow.AddChild(buttonRow);

                var confirmButton = new UiButton();
                buttonRow.AddChild(confirmButton);
                var confirmButtonText = new UiTextBlock();
                confirmButton.AddChild(confirmButtonText);
                confirmButtonText.SetString(ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.delete"));
                buttonRow.AddChild(spacer);
                confirmButton.OnClick += () => {
                    if (_favDir.FileExists(folder))
                    {
                        _favDir.DeleteFile(folder);
                    }
                    parent.Dispose();
                    renew(window, spacer, setColor);
                };

                confirmWindow.OnClose += () => {
                    parent.ListenForEscape(true);
                    parent.Show();
                    parent.StartUpdateCalls();
                };

                var cancelButton = new UiButton();
                buttonRow.AddChild(cancelButton);
                var cancelText = new UiTextBlock();
                cancelButton.AddChild(cancelText);
                cancelText.SetString(ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.cancel"));

                cancelButton.OnClick += () => { confirmWindow.Dispose(); };

                parent.Hide();
                parent.ListenForEscape(false);
                parent.StopUpdateCalls();
                confirmWindow.Show();
            };

            return(itemRow);
        }
        private static void SpawnHistoryColorItem(UiWindow window, UiWindow parentwindow, Color color, UiSpacer spacer, Action <Color> setColor,
                                                  Action <UiWindow, UiSpacer, Action <Color> > renew, Action <Color> remove, bool showAddFav, out UiColumn colorSquare, out UiTextBlock colorText, out UiRow buttons)
        {
            SpawnColorItem(color, spacer, out colorSquare, out colorText);

            var buttonSpacer = UiSpacer.GetSpacer(5, 5);

            buttons = new UiRow();

            if (showAddFav)
            {
                var addToFavButton = new UiButton();
                addToFavButton.SetBackground(Constants.Backgrounds.Button);
                var addToFavePic = FoxUIHook.Instance.GetPicture("nimbusfox.ui.images.addFavorite");
                addToFavButton.AddChild(addToFavePic);
                buttons.AddChild(addToFavButton);
                buttons.AddChild(buttonSpacer);

                addToFavButton.OnClick += () => {
                    _historyColor = color;
                    SpawnAddToFavFromHistoryMenu(parentwindow, spacer, setColor);
                };
            }

            var setButton = new UiButton();

            setButton.SetBackground(Constants.Backgrounds.Button);
            var setPic = FoxUIHook.Instance.GetPicture("nimbusfox.ui.images.set");

            setButton.AddChild(setPic);
            setButton.OnClick += () => {
                setColor(color);
                parentwindow.Dispose();
            };
            buttons.AddChild(setButton);
            buttons.AddChild(buttonSpacer);

            var deleteButton = new UiButton();

            deleteButton.SetBackground(Constants.Backgrounds.Button);
            var deletePic = FoxUIHook.Instance.GetPicture("nimbusfox.ui.images.delete");

            deleteButton.AddChild(deletePic);
            deleteButton.OnClick += () => {
                remove(color);
                parentwindow.Dispose();
                renew(window, spacer, setColor);
            };
            buttons.AddChild(deleteButton);
        }
示例#18
0
 public UiAdvertListings(string title, List <UiAdvertListing> advertListings)
 {
     Title          = UiTextBlock.SectionTitle(title);
     AdvertListings = advertListings;
 }
        private static void SpawnFavoriteFolderMenuContent(UiWindow window, UiWindow favFolderMenuWindow, UiSpacer spacer,
                                                           Action <Color> setColor)
        {
            var scrollable = new UiScrollableContainer();

            scrollable.SetDimensions(400, 500);
            var favFolderMenuTitle = new UiTextBlock();

            favFolderMenuTitle.SetFont(Constants.Fonts.MyFirstCrush36);
            favFolderMenuTitle.SetString(ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.favorites"));
            favFolderMenuTitle.SetColor(Color.Orange);
            favFolderMenuWindow.AddChild(favFolderMenuTitle);
            favFolderMenuWindow.AddChild(spacer);
            favFolderMenuWindow.AddChild(scrollable);

            var newFolderButton = new UiButton();
            var newFolderText   = new UiTextBlock();

            newFolderText.SetString(ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.newFolder"));
            newFolderButton.OnClick += () => {
                favFolderMenuWindow.Dispose();
                SpawnInputTextWindow(window, spacer, ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.name") + ":", ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.newFolder"), value => {
                    if (_favDir.Files
                        .Any(x => x.ToLower() == value.ToLower()))
                    {
                        return(false);
                    }

                    using (var stream = _favDir
                                        .ObtainFileStream(value, FileMode.Create, FileAccess.ReadWrite)) {
                        stream.Seek(0L, SeekOrigin.Begin);
                    }

                    return(true);
                }, ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.folderExists"), ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.folderExists.message"), () => {
                    SpawnFavoriteFolderMenu(window, spacer, setColor);
                });
            };
            newFolderButton.AddChild(newFolderText);
            scrollable.AddChild(newFolderButton);
            scrollable.AddChild(spacer);

            var files = _favDir.Files;

            if (files.Any())
            {
                foreach (var file in files)
                {
                    scrollable.AddChild(SpawnFolderItem(window, favFolderMenuWindow, spacer, setColor, file,
                                                        (folder) => {
                        SpawnFolderColorWindow(favFolderMenuWindow, spacer, setColor, folder);
                        return(false);
                    }, SpawnFavoriteFolderMenu));
                    scrollable.AddChild(spacer);
                }
            }

            var closeButton = new UiButton();

            closeButton.SetBackground(Constants.Backgrounds.Button);

            var closeText = new UiTextBlock();

            closeText.SetString(ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.close"));

            closeButton.AddChild(closeText);

            favFolderMenuWindow.AddChild(closeButton);

            closeButton.OnClick += favFolderMenuWindow.Dispose;
        }
        private static void SpawnAddToFavFromHistoryMenuContent(UiWindow window, UiWindow favFolderMenuWindow, UiSpacer spacer,
                                                                Action <Color> setColor)
        {
            var scrollable = new UiScrollableContainer();

            scrollable.SetDimensions(400, 500);
            var favFolderMenuTitle = new UiTextBlock();

            favFolderMenuTitle.SetFont(Constants.Fonts.MyFirstCrush36);
            favFolderMenuTitle.SetString(ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.favorites"));
            favFolderMenuTitle.SetColor(Color.Orange);
            favFolderMenuWindow.AddChild(favFolderMenuTitle);
            favFolderMenuWindow.AddChild(spacer);
            favFolderMenuWindow.AddChild(scrollable);

            var newFolderButton = new UiButton();
            var newFolderText   = new UiTextBlock();

            newFolderText.SetString(ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.newFolder"));
            newFolderButton.OnClick += () => {
                favFolderMenuWindow.StopUpdateCalls();
                favFolderMenuWindow.Dispose();
                SpawnInputTextWindow(window, spacer, ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.name") + ":", ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.newFolder"), value => {
                    if (_favDir.Files.Any(x => x.ToLower() == value.ToLower()))
                    {
                        return(false);
                    }

                    using (var stream = _favDir
                                        .ObtainFileStream(value, FileMode.Create, FileAccess.ReadWrite)) {
                        stream.Seek(0L, SeekOrigin.Begin);
                    }

                    return(true);
                }, ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.folderExists"), ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.folderExists.message"), () => {
                    SpawnAddToFavFromHistoryMenu(window, spacer, setColor);
                });
            };
            newFolderButton.AddChild(newFolderText);
            scrollable.AddChild(newFolderButton);
            scrollable.AddChild(spacer);

            var files = _favDir.Files;

            if (files.Any())
            {
                foreach (var file in files)
                {
                    scrollable.AddChild(SpawnFolderItem(window, favFolderMenuWindow, spacer, setColor, file,
                                                        (folder) => {
                        var values = new List <string>();
                        if (_favDir.FileExists(folder))
                        {
                            values.AddRange(
                                File.ReadAllLines(
                                    Path.Combine(_favDir.GetPath(Path.DirectorySeparatorChar), folder)));
                        }

                        if (!values.Contains($"{_historyColor.R:X2}{_historyColor.G:X2}{_historyColor.B:X2}"))
                        {
                            values.Add($"{_historyColor.R:X2}{_historyColor.G:X2}{_historyColor.B:X2}");
                        }

                        File.WriteAllLines(Path.Combine(_favDir.GetPath(Path.DirectorySeparatorChar), folder), values);
                        return(true);
                    }, SpawnAddToFavFromHistoryMenu));
                    scrollable.AddChild(spacer);
                }
            }

            var closeButton = new UiButton();

            closeButton.SetBackground(Constants.Backgrounds.Button);

            var closeText = new UiTextBlock();

            closeText.SetString(ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.close"));

            closeButton.AddChild(closeText);

            scrollable.AddChild(closeButton);

            closeButton.OnClick += () => {
                favFolderMenuWindow.Dispose();
                window.ListenForEscape(true);
                window.Show();
                window.StartUpdateCalls();
            };
        }
        private static void SpawnColorWindowContent(UiWindow window, UiWindow historyWindow, UiSpacer spacer,
                                                    Action <Color> setColor, Action <UiWindow, UiSpacer, Action <Color> > renew, Action <Color> remove, List <Color> colors, string title, string noColorText, bool showAddToFav = false)
        {
            var historyTitle = new UiTextBlock();

            historyTitle.SetString(title);
            historyTitle.SetColor(Color.Orange);
            historyTitle.SetFont(Constants.Fonts.MyFirstCrush36);
            historyWindow.AddChild(historyTitle);
            historyWindow.AddChild(spacer);

            if (!colors.Any())
            {
                var historyText = new UiTextBlock();
                historyText.SetString(noColorText);
                historyWindow.AddChild(historyText);
            }
            else
            {
                var column1        = new UiRow();
                var column1Squares = new UiColumn();
                var column1Text    = new UiColumn();
                var column1Buttons = new UiColumn();
                column1.AddChild(column1Squares);
                column1.AddChild(UiSpacer.GetSpacer());
                column1.AddChild(column1Text);
                column1.AddChild(UiSpacer.GetSpacer());
                column1.AddChild(column1Buttons);

                var column2        = new UiRow();
                var column2Squares = new UiColumn();
                var column2Text    = new UiColumn();
                var column2Buttons = new UiColumn();
                column2.AddChild(column2Squares);
                column2.AddChild(UiSpacer.GetSpacer());
                column2.AddChild(column2Text);
                column2.AddChild(UiSpacer.GetSpacer());
                column2.AddChild(column2Buttons);

                var column = 1;
                var count  = 0;
                foreach (var color in colors)
                {
                    SpawnHistoryColorItem(window, historyWindow, color, spacer, setColor, renew, remove, showAddToFav, out var colorSquare, out var colorText, out var buttons);
                    if (count >= 2)
                    {
                        if (column == 1)
                        {
                            column1Squares.AddChild(UiSpacer.GetSpacer(0, 20));
                            column1Text.AddChild(UiSpacer.GetSpacer(0, 12));
                            column1Buttons.AddChild(UiSpacer.GetSpacer(0, 15));
                        }
                        else
                        {
                            column2Squares.AddChild(UiSpacer.GetSpacer(0, 20));
                            column2Text.AddChild(UiSpacer.GetSpacer(0, 12));
                            column2Buttons.AddChild(UiSpacer.GetSpacer(0, 15));
                        }
                    }

                    if (column == 1)
                    {
                        column1Squares.AddChild(colorSquare);
                        column1Text.AddChild(colorText);
                        column1Buttons.AddChild(buttons);
                        column = 2;
                    }
                    else
                    {
                        column2Squares.AddChild(colorSquare);
                        column2Text.AddChild(colorText);
                        column2Buttons.AddChild(buttons);
                        column = 1;
                    }

                    count++;
                }
                var columnRow = new UiRow();
                columnRow.AddChild(column1);
                if (colors.Count >= 2)
                {
                    columnRow.AddChild(UiSpacer.GetSpacer(10, 0));
                    columnRow.AddChild(column2);
                }

                var scrollable = new UiScrollableContainer();
                scrollable.AddChild(columnRow);
                scrollable.SetDimensions(600, 400);
                historyWindow.AddChild(scrollable);
            }

            historyWindow.AddChild(spacer);

            var closeButton = new UiButton();

            closeButton.SetBackground(Constants.Backgrounds.Button);

            var closeText = new UiTextBlock();

            closeText.SetString(ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.close"));

            closeButton.AddChild(closeText);

            historyWindow.AddChild(closeButton);

            closeButton.OnClick += historyWindow.Dispose;
        }
        public ColorPickerWindow(Color?_default = null)
        {
            if (_default != null)
            {
                _color = _default.Value;
            }

            _current = new UiWindow();

            _current.ListenForEscape(true);

            _current.Container.SetBackground(Constants.Backgrounds.Dark);

            var picker = new UiColorPicker();

            var currentColor  = new UiTexture2D(context => Helpers.GetTexture(context));
            var hoverColor    = new UiTexture2D(context => Helpers.GetTexture(context));
            var selectedColor = new UiTexture2D(context => Helpers.GetTexture(context));

            selectedColor.SetColor(_color);
            currentColor.SetColor(_color);

            var row = new UiRow();

            row.AddChild(picker);

            var column = new UiColumn();

            var spacer = new UiSpacer();

            spacer.SetHeight(20);
            spacer.SetWidth(20);

            row.AddChild(spacer);

            var mouseText = new UiTextBlock();

            mouseText.SetColor(Color.White);
            mouseText.SetString(ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.mouse"));
            column.AddChild(mouseText);
            column.AddChild(hoverColor);
            column.AddChild(spacer);

            var selectedText = new UiTextBlock();

            selectedText.SetColor(Color.White);
            selectedText.SetString(ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.selected"));
            column.AddChild(selectedText);
            column.AddChild(selectedColor);
            column.AddChild(spacer);

            var currentText = new UiTextBlock();

            currentText.SetColor(Color.White);
            currentText.SetString(ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.current"));
            column.AddChild(currentText);
            column.AddChild(currentColor);

            row.AddChild(column);

            _current.AddChild(row);

            _current.AddChild(spacer);

            var colorRow = new UiRow();

            UiTextInput colorHex = null;

            var colorR = new UiNumberInput();

            colorR.SetItteration(1.0f);
            colorR.SetMin(0);
            colorR.SetMax(255);
            colorR.SetValue(_color.R);
            colorR.SetBackgroundColors(Color.Red, Color.Pink);

            colorR.OnChange += value => {
                if (byte.TryParse(value.ToString(), out var val))
                {
                    _color.R = val;
                    colorHex?.ForceSetValue($"{_color.R:X2}{_color.G:X2}{_color.B:X2}");
                    selectedColor.SetColor(_color);
                }
            };
            var colorG = new UiNumberInput();

            colorG.SetItteration(1.0f);
            colorG.SetMin(0);
            colorG.SetMax(255);
            colorG.SetValue(_color.G);
            colorG.SetBackgroundColors(Color.Green, Color.LimeGreen);

            colorG.OnChange += value => {
                if (byte.TryParse(value.ToString(), out var val))
                {
                    _color.G = val;
                    colorHex?.ForceSetValue($"{_color.R:X2}{_color.G:X2}{_color.B:X2}");
                    selectedColor.SetColor(_color);
                }
            };

            var colorB = new UiNumberInput();

            colorB.SetItteration(1.0f);
            colorB.SetMin(0);
            colorB.SetMax(255);
            colorB.SetValue(_color.B);
            colorB.SetBackgroundColors(Color.Blue, Color.LightBlue);
            colorB.SetTextColors(Color.White, Color.Black);

            colorB.OnChange += value => {
                if (byte.TryParse(value.ToString(), out var val))
                {
                    _color.B = val;
                    colorHex?.ForceSetValue($"{_color.R:X2}{_color.G:X2}{_color.B:X2}");
                    selectedColor.SetColor(_color);
                }
            };

            var colorHexRow = new UiRow();

            var hex = new UiTextBlock();

            hex.SetString(ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.hex"));

            colorHex = new UiTextInput();
            colorHex.ForceSetValue($"{_color.R:X2}{_color.G:X2}{_color.B:X2}");
            colorHex.SetBackgroundColor(new Color(237, 207, 154));
            colorHex.SetTextColor(Color.Black);
            colorHex.SetActiveTextColor(Color.Black);
            colorHex.SetBackground(Constants.Backgrounds.TextInput);
            colorHex.SetLimit(6);
            colorHex.InputCheck += key => {
                switch (key.ToString().ToUpper())
                {
                default:
                    return(false);

                case "A":
                case "B":
                case "C":
                case "D":
                case "E":
                case "F":
                case "0":
                case "1":
                case "2":
                case "3":
                case "4":
                case "5":
                case "6":
                case "7":
                case "8":
                case "9":
                    return(true);
                }
            };

            colorHex.OnChange += text => {
                if (text.IsNullOrEmpty())
                {
                    _color = Color.Black;
                }
                else
                {
                    _color = ColorMath.ParseString(text);
                }
                selectedColor.SetColor(_color);
                colorR.ForceSetValue(_color.R);
                colorG.ForceSetValue(_color.G);
                colorB.ForceSetValue(_color.B);
            };

            picker.ColorClick += color => {
                selectedColor.SetColor(color);
                _color = color;
                colorR.ForceSetValue(_color.R);
                colorG.ForceSetValue(_color.G);
                colorB.ForceSetValue(_color.B);
                colorHex.ForceSetValue($"{_color.R:X2}{_color.G:X2}{_color.B:X2}");
            };

            colorRow.AddChild(colorR);
            colorRow.AddChild(spacer);
            colorRow.AddChild(colorG);
            colorRow.AddChild(spacer);
            colorRow.AddChild(colorB);

            _current.AddChild(colorRow);
            _current.AddChild(spacer);
            colorHexRow.AddChild(hex);
            colorHexRow.AddChild(colorHex);
            _current.AddChild(colorHexRow);

            _current.AddChild(spacer);

            var confirmButton = new UiButton();

            confirmButton.SetBackground(Constants.Backgrounds.Button);

            var confirmText = new UiTextBlock();

            confirmText.SetString(ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.setColor"));

            confirmButton.AddChild(confirmText);

            confirmButton.OnClick += () => {
                OnColorSet?.Invoke(_color);

                if (_colorHistory.Contains(_color))
                {
                    _colorHistory.Remove(_color);
                }

                _colorHistory.Add(_color);

                _current.Dispose();
            };

            var cancelButton = new UiButton();

            cancelButton.SetBackground(Constants.Backgrounds.Button);

            var cancelText = new UiTextBlock();

            cancelText.SetString(ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.foxcore.text.cancel"));

            cancelButton.AddChild(cancelText);

            cancelButton.OnClick += () => {
                _current.Dispose();
            };

            var buttonRow = new UiRow();

            buttonRow.AddChild(confirmButton);
            buttonRow.AddChild(spacer);
            buttonRow.AddChild(cancelButton);
            buttonRow.AddChild(spacer);

            var favButton = new UiButton();

            favButton.SetBackground(Constants.Backgrounds.Button);
            var favPic = FoxUIHook.Instance.GetPicture("nimbusfox.ui.images.favorites");

            favButton.AddChild(favPic);
            buttonRow.AddChild(favButton);
            buttonRow.AddChild(spacer);

            favButton.OnClick += () => {
                SpawnFavoriteFolderMenu(_current, spacer, color => {
                    colorHex.ForceSetValue($"{color.R:X2}{color.G:X2}{color.B:X2}", true);
                });
            };

            var historyButton = new UiButton();

            historyButton.SetBackground(Constants.Backgrounds.Button);
            var historyPic = FoxUIHook.Instance.GetPicture("nimbusfox.ui.images.history");

            historyButton.AddChild(historyPic);
            buttonRow.AddChild(historyButton);

            historyButton.OnClick += () => {
                SpawnHistoryWindow(_current, spacer, color => {
                    colorHex.ForceSetValue($"{color.R:X2}{color.G:X2}{color.B:X2}", true);
                });
            };

            _current.AddChild(buttonRow);

            picker.ColorHover += color => { hoverColor.SetColor(color); };

            _current.OnClose += () => {
                OnClose?.Invoke();
            };
        }
示例#23
0
 public UiAdvertListDetails(string advertSummary)
 {
     AdvertSummary = UiTextBlock.SectionSubtitle(advertSummary);
     CreateAdBtn   = UiControlButton.Primary("manage-ad", "Create ad", new UiActionNavigate("https://www.carsales.com.au/sell-my-car"));
 }
        public UiGameFileCommanderSettingsWindow(bool isExtracting)
        {
            #region Construct

            SizeToContent = SizeToContent.WidthAndHeight;
            WindowStartupLocation = WindowStartupLocation.CenterScreen;
            WindowStyle = WindowStyle.None;

            UiGrid root = UiGridFactory.Create(3, 1);
            {
                Thickness margin = new Thickness(3);

                UiStackPanel maskPanel = UiStackPanelFactory.Create(Orientation.Horizontal);
                {
                    UiTextBlock maskLabel = UiTextBlockFactory.Create("Маска: ");
                    {
                        maskLabel.Margin = margin;
                        maskLabel.VerticalAlignment = VerticalAlignment.Center;
                        maskPanel.AddUiElement(maskLabel);
                    }

                    _wildcardBox = UiTextBoxFactory.Create("*");
                    {
                        _wildcardBox.Width = 300;
                        _wildcardBox.Margin = margin;
                        maskPanel.AddUiElement(_wildcardBox);
                    }

                    root.AddUiElement(maskPanel, 0, 0);
                }

                UiStackPanel settingsPanel = UiStackPanelFactory.Create(Orientation.Horizontal);
                {
                    if (!isExtracting)
                    {
                        _compressBox = UiCheckBoxFactory.Create("Сжать", false);
                        {
                            _compressBox.Margin = margin;
                            _compressBox.IsThreeState = true;
                            _compressBox.IsChecked = null;
                            settingsPanel.AddUiElement(_compressBox);
                        }
                    }

                    _convertBox = UiCheckBoxFactory.Create("Конвертировать", false);
                    {
                        _convertBox.Margin = margin;
                        _convertBox.IsThreeState = true;
                        _convertBox.IsChecked = null;
                        settingsPanel.AddUiElement(_convertBox);
                    }

                    root.AddUiElement(settingsPanel, 1, 0);
                }

                UiStackPanel buttonsPanel = UiStackPanelFactory.Create(Orientation.Horizontal);
                {
                    buttonsPanel.HorizontalAlignment = HorizontalAlignment.Right;

                    UiButton okButton = UiButtonFactory.Create("OK");
                    {
                        okButton.Width = 100;
                        okButton.Margin = margin;
                        okButton.Click += OnOkButtonClick;
                        buttonsPanel.AddUiElement(okButton);
                    }

                    UiButton cancelButton = UiButtonFactory.Create("Отмена");
                    {
                        cancelButton.Width = 100;
                        cancelButton.Margin = margin;
                        cancelButton.Click += OnCancelButtonClick;
                        buttonsPanel.AddUiElement(cancelButton);
                    }

                    root.AddUiElement(buttonsPanel, 2, 0);
                }
            }

            Content = root;

            #endregion
        }
示例#25
0
        public UiEncodingAdditionalCharacterControl()
        {
            Orientation       = Orientation.Horizontal;
            VerticalAlignment = VerticalAlignment.Center;

            #region Construct

            _indexLabel = UiTextBlockFactory.Create("#");
            {
                _indexLabel.Margin            = new Thickness(5);
                _indexLabel.VerticalAlignment = VerticalAlignment.Center;
                Children.Add(_indexLabel);
            }

            UiTextBlock rowLabel = UiTextBlockFactory.Create(Lang.EncodingEditor.Extra.Row);
            {
                rowLabel.Margin            = new Thickness(5, 5, 2, 5);
                rowLabel.VerticalAlignment = VerticalAlignment.Center;
                Children.Add(rowLabel);
            }

            _rowNumber = UiIntegerUpDownFactory.Create(0, byte.MaxValue);
            {
                _rowNumber.Width         = 50;
                _rowNumber.Margin        = new Thickness(2, 5, 5, 5);
                _rowNumber.ValueChanged += OnRowValueChanged;
                Children.Add(_rowNumber);
            }

            UiTextBlock colLabel = UiTextBlockFactory.Create(Lang.EncodingEditor.Extra.Column);
            {
                colLabel.Margin            = new Thickness(5, 5, 2, 5);
                colLabel.VerticalAlignment = VerticalAlignment.Center;
                Children.Add(colLabel);
            }

            _colNumber = UiIntegerUpDownFactory.Create(0, byte.MaxValue);
            {
                _colNumber.Width         = 50;
                _colNumber.Margin        = new Thickness(2, 5, 5, 5);
                _colNumber.ValueChanged += OnColValueChanged;
                Children.Add(_colNumber);
            }

            UiTextBlock outputLabel = UiTextBlockFactory.Create(Lang.EncodingEditor.Extra.ToText);
            {
                outputLabel.Margin            = new Thickness(5, 5, 2, 5);
                outputLabel.VerticalAlignment = VerticalAlignment.Center;
                Children.Add(outputLabel);
            }

            _output = UiWatermarkTextBoxFactory.Create("0x31->\"1\"");
            {
                _output.Width        = 60;
                _output.Margin       = new Thickness(2, 5, 5, 5);
                _output.TextChanged += OnOutputTextChanged;
                Children.Add(_output);
            }

            UiTextBlock inputLabel = UiTextBlockFactory.Create(Lang.EncodingEditor.Extra.FromText);
            {
                inputLabel.Margin            = new Thickness(5, 5, 2, 5);
                inputLabel.VerticalAlignment = VerticalAlignment.Center;
                Children.Add(inputLabel);
            }

            _input = UiWatermarkTextBoxFactory.Create("0x31<-\"1\"");
            {
                _input.Width        = 100;
                _input.Margin       = new Thickness(2, 5, 5, 5);
                _input.TextChanged += OnInputTextChanged;
                Children.Add(_input);
            }

            #endregion
        }
        public UiEncodingAdditionalCharacterControl()
        {
            Orientation = Orientation.Horizontal;
            VerticalAlignment = VerticalAlignment.Center;

            #region Construct

            _indexLabel = UiTextBlockFactory.Create("#");
            {
                _indexLabel.Margin = new Thickness(5);
                _indexLabel.VerticalAlignment = VerticalAlignment.Center;
                Children.Add(_indexLabel);
            }

            UiTextBlock rowLabel = UiTextBlockFactory.Create(Lang.EncodingEditor.Extra.Row);
            {
                rowLabel.Margin = new Thickness(5, 5, 2, 5);
                rowLabel.VerticalAlignment = VerticalAlignment.Center;
                Children.Add(rowLabel);
            }

            _rowNumber = UiIntegerUpDownFactory.Create(0, byte.MaxValue);
            {
                _rowNumber.Width = 50;
                _rowNumber.Margin = new Thickness(2, 5, 5, 5);
                _rowNumber.ValueChanged += OnRowValueChanged;
                Children.Add(_rowNumber);
            }

            UiTextBlock colLabel = UiTextBlockFactory.Create(Lang.EncodingEditor.Extra.Column);
            {
                colLabel.Margin = new Thickness(5, 5, 2, 5);
                colLabel.VerticalAlignment = VerticalAlignment.Center;
                Children.Add(colLabel);
            }

            _colNumber = UiIntegerUpDownFactory.Create(0, byte.MaxValue);
            {
                _colNumber.Width = 50;
                _colNumber.Margin = new Thickness(2, 5, 5, 5);
                _colNumber.ValueChanged += OnColValueChanged;
                Children.Add(_colNumber);
            }

            UiTextBlock outputLabel = UiTextBlockFactory.Create(Lang.EncodingEditor.Extra.ToText);
            {
                outputLabel.Margin = new Thickness(5, 5, 2, 5);
                outputLabel.VerticalAlignment = VerticalAlignment.Center;
                Children.Add(outputLabel);
            }

            _output = UiWatermarkTextBoxFactory.Create("0x31->\"1\"");
            {
                _output.Width = 60;
                _output.Margin = new Thickness(2, 5, 5, 5);
                _output.TextChanged += OnOutputTextChanged;
                Children.Add(_output);
            }

            UiTextBlock inputLabel = UiTextBlockFactory.Create(Lang.EncodingEditor.Extra.FromText);
            {
                inputLabel.Margin = new Thickness(5, 5, 2, 5);
                inputLabel.VerticalAlignment = VerticalAlignment.Center;
                Children.Add(inputLabel);
            }

            _input = UiWatermarkTextBoxFactory.Create("0x31<-\"1\"");
            {
                _input.Width = 100;
                _input.Margin = new Thickness(2, 5, 5, 5);
                _input.TextChanged += OnInputTextChanged;
                Children.Add(_input);
            }

            #endregion
        }
示例#27
0
        public DonationControl()
        {
            SetCols(2);
            SetRows(5);

            Width                      = 250;
            VerticalAlignment          = VerticalAlignment.Top;
            HorizontalAlignment        = HorizontalAlignment.Left;
            Margin                     = new Thickness(5);
            DataContext                = this;
            ColumnDefinitions[0].Width = GridLength.Auto;

            LinearGradientBrush backgroundStroke = new LinearGradientBrush
            {
                EndPoint          = new Point(0.5, 1),
                StartPoint        = new Point(0.5, 0),
                RelativeTransform = new RotateTransform(115, 0.5, 0.5),
                GradientStops     = new GradientStopCollection
                {
                    new GradientStop(Color.FromArgb(0xff, 0x61, 0x61, 0x61), 0),
                    new GradientStop(Color.FromArgb(0xff, 0xF2, 0xF2, 0xF2), 0.504),
                    new GradientStop(Color.FromArgb(0xff, 0xAE, 0xB1, 0xB1), 1)
                }
            };

            backgroundStroke.Freeze();

            LinearGradientBrush backgroundFill = new LinearGradientBrush
            {
                MappingMode   = BrushMappingMode.RelativeToBoundingBox,
                StartPoint    = new Point(0.5, 1.0),
                EndPoint      = new Point(0.5, -0.4),
                GradientStops = new GradientStopCollection
                {
                    new GradientStop(Color.FromArgb(0xBB, 0x44, 0x71, 0xc1), 0),
                    new GradientStop(Color.FromArgb(0xBB, 0x28, 0x36, 0x65), 1)
                }
            };

            backgroundFill.Freeze();

            Rectangle backround = AddUiElement(new Rectangle {
                Stroke = backgroundStroke, Fill = backgroundFill, StrokeThickness = 5
            }, 0, 0, 9, 2);

            UiTextBlock title = AddUiElement(UiTextBlockFactory.Create("Пожертвования"), 0, 0, 0, 2);

            title.FontSize            = 18;
            title.HorizontalAlignment = HorizontalAlignment.Center;
            title.Margin = new Thickness(0, 4, 0, 0);

            AddUiElement(UiTextBoxFactory.Create("Яндекс: "), 1, 0);
            AddUiElement(UiTextBoxFactory.Create("410013254932482"), 1, 1);
            AddUiElement(UiTextBoxFactory.Create("WMR: "), 2, 0);
            AddUiElement(UiTextBoxFactory.Create("R255847965836"), 2, 1);
            AddUiElement(UiTextBoxFactory.Create("WMZ: "), 3, 0);
            AddUiElement(UiTextBoxFactory.Create("Z321220468886 "), 3, 1);
            AddUiElement(UiTextBoxFactory.Create("WME: "), 4, 0);
            AddUiElement(UiTextBoxFactory.Create("E223137827385"), 4, 1).Margin = new Thickness(0, 0, 0, 5);

            foreach (FrameworkElement child in Children)
            {
                if (!ReferenceEquals(child, backround))
                {
                    child.Margin = GetColumn(child) == 0
                        ? new Thickness(child.Margin.Left + 8, child.Margin.Top, child.Margin.Right, child.Margin.Bottom)
                        : new Thickness(child.Margin.Left, child.Margin.Top, child.Margin.Right + 8, child.Margin.Bottom);
                }

                TextBlock textBlock = child as TextBlock;
                if (textBlock != null)
                {
                    textBlock.Foreground = Brushes.WhiteSmoke;
                    textBlock.FontWeight = FontWeight.FromOpenTypeWeight(500);
                    continue;
                }

                TextBox textBox = child as TextBox;
                if (textBox != null)
                {
                    textBox.Foreground      = Brushes.WhiteSmoke;
                    textBox.FontWeight      = FontWeight.FromOpenTypeWeight(500);
                    textBox.Background      = Brushes.Transparent;
                    textBox.BorderThickness = new Thickness(0);
                    textBox.IsReadOnly      = true;
                }
            }
        }