Пример #1
0
        public void TextFilter_NotChecked_AllResults()
        {
            //given
            var selector = new TextSelector(TextSelectorType.PositionTitle);
            var filter   = TextFilter.Create(selector);

            //when
            var results = filter.Execute(_positions);

            //then
            Assert.Equal(_positions, results);
        }
Пример #2
0
        /// <summary>
        /// Retrieves and resets the dirty range associated with the current registration.
        /// </summary>
        /// <remarks>
        /// Version Information: This method is not support in NetRix Standard.
        /// </remarks>
        /// <returns>Returns an object which allows flexible access to the range.</returns>
        public ITextSelector GetDirtyRange()
        {
            TextSelector ts = new TextSelector(editor);

            Interop.IMarkupServices ims = (Interop.IMarkupServices)editor.GetActiveDocument(false);
            Interop.IMarkupPointer  pStart;
            Interop.IMarkupPointer  pEnd;
            ims.CreateMarkupPointer(out pStart);
            ims.CreateMarkupPointer(out pEnd);
            mc2.GetAndClearDirtyRange(cookie, pStart, pEnd);
            ts.MovePointers(pStart, pEnd);
            return(ts);
        }
Пример #3
0
        public void TextFilter_CheckedValueSetCaseSensitive_MatchingResults()
        {
            //given
            var selector = new TextSelector(TextSelectorType.PositionTitle)
            {
                IsChecked = true, Value = "Title", IsCaseSensitive = true
            };
            var filter = TextFilter.Create(selector);

            //when
            var results = filter.Execute(_positions);

            //then
            Assert.Equal(_positions.Where(x => x.Title.Contains("Title")), results);
        }
        public void TextFilter_CheckedValueSet_MatchingResults()
        {
            //given
            var selector = new TextSelector(TextSelectorType.Title)
            {
                IsChecked = true, Value = "Th"
            };
            var filter = TextFilter.Create(selector);

            //when
            var results = filter.Execute(_transactions);

            //then
            Assert.Equal(_transactions.Where(x => x.Title.Contains("th")), results);
        }
        public void TextFilter_Checked_AllResults()
        {
            //given
            var selector = new TextSelector(TextSelectorType.Title)
            {
                IsChecked = true
            };
            var filter = TextFilter.Create(selector);

            //when
            var results = filter.Execute(_transactions);

            //then
            Assert.Equal(_transactions, results);
        }
Пример #6
0
        public void TextFilter_CheckedValueSetInverse_NotMatchingResults()
        {
            //given
            var selector = new TextSelector(TextSelectorType.PositionTitle)
            {
                IsChecked = true, Value = "Th", DisplayOnlyNotMatching = true
            };
            var filter = TextFilter.Create(selector);

            //when
            var results = filter.Execute(_positions);

            //then
            Assert.Equal(_positions.Where(x => !x.Title.Contains("th")), results);
        }
Пример #7
0
        public void TextFilter_CheckedValueSetCaseSensitive_NoResults()
        {
            //given
            var selector = new TextSelector(TextSelectorType.PositionTitle)
            {
                IsChecked = true, Value = "Th", IsCaseSensitive = true
            };
            var filter = TextFilter.Create(selector);

            //when
            var results = filter.Execute(_positions);

            //then
            Assert.Empty(results);
        }
Пример #8
0
        public void TextFilter_CheckedValueSetAnyOfWords_MatchingResults()
        {
            //given
            var selector = new TextSelector(TextSelectorType.PositionTitle)
            {
                IsChecked  = true,
                Value      = "nd rd",
                AnyOfWords = true
            };
            var filter = TextFilter.Create(selector);

            //when
            var results = filter.Execute(_positions);

            //then
            Assert.Equal(_positions.Where(x => x.Title.Contains("nd") || x.Title.Contains("rd")), results);
        }
Пример #9
0
        public void TextFilter_CheckedValueSetWildcardQuestionInverse_NotMatchingResults()
        {
            //given
            var selector = new TextSelector(TextSelectorType.PositionTitle)
            {
                IsChecked = true, Value = "?th Title", IsWildCard = true, DisplayOnlyNotMatching = true
            };
            var filter = TextFilter.Create(selector);
            var regex  = new Regex(".{1}th Title");

            //when
            var results = filter.Execute(_positions);

            //then
            Assert.Equal(4, results.Count());
            Assert.Equal(_positions.Where(x => !regex.IsMatch(x.Title)), results);
        }
Пример #10
0
        public void TextFilter_CheckedValueSetWildcardStar_MatchingResults()
        {
            //given
            var selector = new TextSelector(TextSelectorType.PositionTitle)
            {
                IsChecked = true, Value = "*th*", IsWildCard = true
            };
            var filter = TextFilter.Create(selector);
            var regex  = new Regex(".*th.*");

            //when
            var results = filter.Execute(_positions);

            //then
            Assert.Equal(2, results.Count());
            Assert.Equal(_positions.Where(x => regex.IsMatch(x.Title)), results);
        }
        public void TextFilter_CheckedValueSetRegexInverse_NotMatchingResults()
        {
            //given
            var selector = new TextSelector(TextSelectorType.Title)
            {
                IsChecked = true, Value = ".*[2-4].*", IsRegex = true, DisplayOnlyNotMatching = true
            };
            var filter = TextFilter.Create(selector);
            var regex  = new Regex(".*[2-4].*");

            //when
            var results = filter.Execute(_transactions);

            //then
            Assert.Equal(2, results.Count());
            Assert.Equal(_transactions.Where(x => !regex.IsMatch(x.Title)), results);
        }
        public void TextFilter_CheckedValueSetWildcardQuestion_MatchingResults()
        {
            //given
            var selector = new TextSelector(TextSelectorType.Title)
            {
                IsChecked = true, Value = "?th Title", IsWildCard = true
            };
            var filter = TextFilter.Create(selector);
            var regex  = new Regex(".{1}th Title");

            //when
            var results = filter.Execute(_transactions);

            //then
            Assert.Single(results);
            Assert.Equal(_transactions.Where(x => regex.IsMatch(x.Title)), results);
        }
Пример #13
0
        protected override void SetLabels()
        {
            float x     = 60 + (_isInMainMenu ? 0 : 9);
            float y     = 28 - GameConstants.LineOffset - (GlobalState.CurrentLanguage == Language.ZH_CN ? 1 : 0);
            float yStep = GameConstants.FONT_LINE_HEIGHT - GameConstants.LineOffset;

            Color color = _isInMainMenu ? new Color(116, 140, 144) : Color.White;

            var keybindsLabel = new UILabel(new Vector2(x, y), true, DialogueManager.GetDialogue("misc", "any", "config", 1), color);

            var bgmLabel = new UILabel(new Vector2(x, keybindsLabel.Position.Y + yStep * 2), true, "BGM", color, forceEnglish: true);
            var sfxLabel = new UILabel(new Vector2(x, bgmLabel.Position.Y + 12), true, "SFX", color, forceEnglish: true);

            //TODO: localize
            var gameplayLabel = new UILabel(new Vector2(x, sfxLabel.Position.Y + yStep * 2), true, "Gameplay", color, forceEnglish: true);

            var graphicsLabel = new UILabel(new Vector2(x, gameplayLabel.Position.Y + yStep * 2), true, "Graphics", color, forceEnglish: true);

            var languageLabel = new UILabel(new Vector2(x, graphicsLabel.Position.Y + yStep * 2), true, DialogueManager.GetDialogue("misc", "any", "config", 17), color);

            var musicSlider = new AudioSlider(new Vector2(bgmLabel.Position.X + bgmLabel.Writer.WriteArea.Width - 5, bgmLabel.Position.Y), GlobalState.settings.music_volume_scale, 0f, 1f, 0.1f, _isInMainMenu ? MenuStyle.MainMenu : MenuStyle.PauseMenu)
            {
                ValueChangedEvent = (value, index) => { float vol = SoundManager.GetVolume(); GlobalState.settings.music_volume_scale = value; SoundManager.SetSongVolume(vol); }
            };

            var sfxSlider = new AudioSlider(new Vector2(sfxLabel.Position.X + sfxLabel.Writer.WriteArea.Width - 5, sfxLabel.Position.Y), GlobalState.settings.sfx_volume_scale, 0f, 1f, 0.1f, _isInMainMenu ? MenuStyle.MainMenu : MenuStyle.PauseMenu)
            {
                ValueChangedEvent = (value, index) => { GlobalState.settings.sfx_volume_scale = value; }
            };

            var languageSetter = new TextSelector(new Vector2(x + languageLabel.Writer.WriteArea.Width - 8, languageLabel.Position.Y + GameConstants.LineOffset), GlobalState.CurrentLanguage == Language.ZH_CN ? 40 : 30, (int)GlobalState.CurrentLanguage, true, Enum.GetNames(GlobalState.CurrentLanguage.GetType()).Select(s => s.ToLower().Replace('_', '-')).ToArray())
            {
                ValueChangedEvent = LanguageValueChanged
            };

            options = new()
            {
                (keybindsLabel, new SubstateOption <ControlsSubstate>()),
                (bgmLabel, musicSlider),
                (sfxLabel, sfxSlider),
                (gameplayLabel, new SubstateOption <GameplayMenu>()),
                (graphicsLabel, new SubstateOption <GraphicsMenu>()),
                (languageLabel, languageSetter)
            };
        }
Пример #14
0
        public CardSubstate()
        {
            cards = new UIEntity[12];

            page       = 0;
            selectedID = 0;

            cardsLabel = new UILabel(new Vector2(70, 146 - GameConstants.LineOffset - (GlobalState.CurrentLanguage == Language.ZH_CN ? 1 : 0)), true, $"{GlobalState.inventory.CardCount} {DialogueManager.GetDialogue("misc", "any", "cards", 1)}");

            _pageSetter = new TextSelector(new Vector2(91, 156), 32, 0, true, "1/4", "2/4", "3/4", "4/4")
            {
                ValueChangedEvent = PageValueChanged,
                noConfirm         = true,
                noLoop            = true
            };

            SetCardPage();
        }
Пример #15
0
        private PostHasteCommand(Package package, TextSelector textSelector)
        {
            if (package == null) throw new ArgumentNullException(nameof(package));

            this.url = Properties.Settings.Default.HasteBinUrl;
            this.package = package;
            this.textSelector = textSelector;

            OleMenuCommandService commandService = ServiceProvider.GetService(typeof(IMenuCommandService)) as OleMenuCommandService;
            if (commandService != null)
            {
                var menuCommandId = new CommandID(CommandSet, CommandId);
                var menuItem = new MenuCommand(MenuItemCallback, menuCommandId);
                commandService.AddCommand(menuItem);
            }

            statusBar = ServiceProvider.GetService(typeof(SVsStatusbar)) as IVsStatusbar;
        }
        public void TextFilter_CheckedValueSetAnyOfWordsInvert_MatchingResults()
        {
            //given
            var selector = new TextSelector(TextSelectorType.Title)
            {
                IsChecked              = true,
                Value                  = "nd rd",
                AnyOfWords             = true,
                DisplayOnlyNotMatching = true
            };
            var filter = TextFilter.Create(selector);

            //when
            var results = filter.Execute(_transactions);

            //then
            Assert.Equal(_transactions.Where(x => !x.Title.Contains("nd") && !x.Title.Contains("rd")), results);
        }
Пример #17
0
        public void TextSetter_EnabledSetterReplaceMatch_OnlyMatchReplaced()
        {
            //given
            MapperConfiguration.Configure();
            string targetText   = "title";
            var    textSelector = new TextSelector(TextSelectorType.Title)
            {
                IsChecked = true, Value = "it"
            };
            var textSetter = new TextSetter(TextSetterType.Title)
            {
                IsChecked = true, Value = targetText, ReplaceMatch = true
            };
            var command  = TextSetterCommand.Create(textSetter, textSelector);
            var expected = new[] { "Ttitlele 1", "Ttitlele 2", "Ttitlele 3" };

            //when
            var result = command.Execute(_transactions);

            //then
            Assert.Equal(expected, result.Select(x => x.Title));
        }
Пример #18
0
        private PostHasteCommand(Package package, TextSelector textSelector)
        {
            if (package == null)
            {
                throw new ArgumentNullException(nameof(package));
            }

            this.url          = Properties.Settings.Default.HasteBinUrl;
            this.package      = package;
            this.textSelector = textSelector;

            OleMenuCommandService commandService = ServiceProvider.GetService(typeof(IMenuCommandService)) as OleMenuCommandService;

            if (commandService != null)
            {
                var menuCommandId = new CommandID(CommandSet, CommandId);
                var menuItem      = new MenuCommand(MenuItemCallback, menuCommandId);
                commandService.AddCommand(menuItem);
            }

            statusBar = ServiceProvider.GetService(typeof(SVsStatusbar)) as IVsStatusbar;
        }
Пример #19
0
        public void TextSetter_EnabledSetterReplaceRegexMatch_OnlyMatchReplaced()
        {
            //given
            MapperConfiguration.Configure();
            string targetText   = "X";
            var    textSelector = new TextSelector(TextSelectorType.Note)
            {
                IsChecked = true, Value = @"\d", IsRegex = true
            };
            var textSetter = new TextSetter(TextSetterType.Note)
            {
                IsChecked = true, Value = targetText, ReplaceMatch = true
            };
            var command  = TextSetterCommand.Create(textSetter, textSelector);
            var expected = new[] { "Note X", "Note X", "Note X" };

            //when
            var result = command.Execute(_transactions);

            //then
            Assert.Equal(expected, result.SelectMany(x => x.Notes.Select(y => y.Value)));
        }
Пример #20
0
        protected override void SetLabels()
        {
            float x     = GameConstants.SCREEN_WIDTH_IN_PIXELS / 2 - 136 / 2;
            float menuX = x + 10;
            float y     = 10;
            float yStep = GameConstants.FONT_LINE_HEIGHT - GameConstants.LineOffset + 3;

            _bgBox = new UIEntity(new Vector2(x, y), "pop_menu", 136, 126, Drawing.DrawOrder.TEXTBOX);

            var resolutionLabel = new UILabel(new Vector2(menuX, y + yStep), true, DialogueManager.GetDialogue("misc", "any", "config", 12), layer: Drawing.DrawOrder.TEXT);
            var scalingLabel    = new UILabel(new Vector2(menuX, resolutionLabel.Position.Y + yStep * 2), true, DialogueManager.GetDialogue("misc", "any", "config", 16), layer: Drawing.DrawOrder.TEXT);

            var resolutionSelect = new TextSelector(resolutionLabel.Position + new Vector2(10, yStep), 90, (int)GlobalState.settings.resolution, false, Drawing.DrawOrder.TEXT,
                                                    DialogueManager.GetDialogue("misc", "any", "config", 13), DialogueManager.GetDialogue("misc", "any", "config", 14), DialogueManager.GetDialogue("misc", "any", "config", 15))
            {
                ValueChangedEvent = (s, index) => { GlobalState.ResolutionDirty = GlobalState.settings.resolution != (Resolution)index; GlobalState.settings.resolution = (Resolution)index; }
            };

            var scalingSelect = new TextSelector(scalingLabel.Position + new Vector2(50, 0), 20, GlobalState.settings.scale - 1, true, Drawing.DrawOrder.TEXT, "1x", "2x", "3x", "4x")
            {
                ValueChangedEvent = (s, index) => { GlobalState.ResolutionDirty = GlobalState.settings.scale != index + 1; GlobalState.settings.scale = index + 1; },
                noLoop            = true,
                noConfirm         = true
            };

            _flashLabel = new UILabel(new Vector2(menuX, scalingLabel.Position.Y + (int)(yStep * 1.5f)), true, "Screen flash", layer: Drawing.DrawOrder.TEXT, forceEnglish: true);

            var brightnessLabel = new UILabel(new Vector2(menuX + 8, _flashLabel.Position.Y + yStep), true, "Max:", layer: Drawing.DrawOrder.TEXT, forceEnglish: true);

            var brightnessSelect = new AudioSlider(brightnessLabel.Position + Vector2.UnitX * 40, GlobalState.settings.flash_brightness, 0f, 1f, 0.1f, MenuStyle.SubMenu, Drawing.DrawOrder.SUBMENU_SLIDER)
            {
                ValueChangedEvent = (value, index) => { GlobalState.settings.flash_brightness = value; }
            };

            var easingLabel = new UILabel(brightnessLabel.Position + Vector2.UnitY * yStep, true, "Easing:", layer: Drawing.DrawOrder.TEXT, forceEnglish: true);

            var easingSelect = new AudioSlider(easingLabel.Position + Vector2.UnitX * 40, GlobalState.settings.flash_easing, 0f, 0.2f, 0.02f, MenuStyle.SubMenu, Drawing.DrawOrder.SUBMENU_SLIDER)
            {
                ValueChangedEvent = (value, index) => { GlobalState.settings.flash_easing = value; }
            };

            var testLabel = new UILabel(easingLabel.Position + Vector2.UnitY * yStep, true, "Test", layer: Drawing.DrawOrder.TEXT, forceEnglish: true);

            var shakeLabel = new UILabel(new Vector2(menuX, testLabel.Position.Y + (int)(yStep * 1.5f)), true, "Screen shake:", layer: Drawing.DrawOrder.TEXT, forceEnglish: true);

            var shakeSetting = new CheckBox(new Vector2(x + 120, shakeLabel.Position.Y), GlobalState.settings.screenshake, MenuStyle.SubMenu, Drawing.DrawOrder.SUBMENU_SLIDER)
            {
                ValueChangedEvent = (val) => { GlobalState.settings.screenshake = val; }
            };

            options = new()
            {
                (resolutionLabel, resolutionSelect),
                (scalingLabel, scalingSelect),
                (brightnessLabel, brightnessSelect),
                (easingLabel, easingSelect),
                (testLabel, new ActionOption(() => GlobalState.flash.Flash(1.0f, Color.White))),
                (shakeLabel, shakeSetting)
            };
        }
    }
Пример #21
0
 /// <summary>
 /// Initializes the singleton instance of the command.
 /// </summary>
 public static void Initialize(Package package, TextSelector textSelector)
 {
     Instance = new PostHasteCommand(package, textSelector);
 }
Пример #22
0
 public static TextSetterCommand Create(TextSetter setter, TextSelector selector = null)
 => new TextSetterCommand(setter, selector);
Пример #23
0
 private TextSetterCommand(TextSetter textSetter, TextSelector selector)
 {
     _textSetter = textSetter;
     _selector   = selector;
 }
Пример #24
0
 public static TextFilter Create(TextSelector textSelector) => new TextFilter(textSelector);
Пример #25
0
 private TextFilter(TextSelector textSelector)
 {
     _textSelector = textSelector;
     _textSelector.PropertyChanged += TextSelectorOnPropertyChanged;
 }
Пример #26
0
 /// <summary>
 /// Initializes the singleton instance of the command.
 /// </summary>
 public static void Initialize(Package package, TextSelector textSelector)
 {
     Instance = new PostHasteCommand(package, textSelector);
 }
Пример #27
0
        private void SetLabels()
        {
            float x     = 69;
            float y     = 28 - GameConstants.LineOffset - (GlobalState.CurrentLanguage == Language.ZH_CN ? 1 : 0);
            float yStep = GameConstants.FONT_LINE_HEIGHT - GameConstants.LineOffset;

            _keybindsLabel = new UILabel(new Vector2(x, y), true);

            _bgmLabel = new UILabel(new Vector2(x, _keybindsLabel.Position.Y + yStep * 2), true);
            _sfxLabel = new UILabel(new Vector2(x, _bgmLabel.Position.Y + 12), true);

            _autosaveLabel   = new UILabel(new Vector2(x, _sfxLabel.Position.Y + yStep * 2), true);
            _resolutionLabel = new UILabel(new Vector2(x, _autosaveLabel.Position.Y + yStep * 4), true);
            _scalingLabel    = new UILabel(new Vector2(x, _resolutionLabel.Position.Y + yStep * 3), true);
            _languageLabel   = new UILabel(new Vector2(x, _scalingLabel.Position.Y + yStep * 2), true);

            _keybindsLabel.Initialize();

            _bgmLabel.Initialize(true);
            _sfxLabel.Initialize(true);

            _autosaveLabel.Initialize();
            _resolutionLabel.Initialize();
            _scalingLabel.Initialize();
            _languageLabel.Initialize();

            _keybindsLabel.SetText(DialogueManager.GetDialogue("misc", "any", "config", 1));

            _bgmLabel.SetText("BGM");
            _sfxLabel.SetText("SFX");

            _autosaveLabel.SetText(DialogueManager.GetDialogue("misc", "any", "config", 3));
            _resolutionLabel.SetText(DialogueManager.GetDialogue("misc", "any", "config", 6));
            _scalingLabel.SetText(DialogueManager.GetDialogue("misc", "any", "config", 16));
            _languageLabel.SetText(DialogueManager.GetDialogue("misc", "any", "config", 17));

            _musicSlider = new AudioSlider(new Vector2(_bgmLabel.Position.X + _bgmLabel.Writer.WriteArea.Width - 5, _bgmLabel.Position.Y), GlobalState.music_volume_scale, 0f, 1f, 0.1f)
            {
                ValueChangedEvent = BgmValueChanged
            };

            _sfxSlider = new AudioSlider(new Vector2(_sfxLabel.Position.X + _sfxLabel.Writer.WriteArea.Width - 5, _sfxLabel.Position.Y), GlobalState.sfx_volume_scale, 0f, 1f, 0.1f)
            {
                ValueChangedEvent = SfxValueChanged
            };

            Vector2 autosavePos = Vector2.Zero;

            if (GlobalState.CurrentLanguage == Language.ZH_CN)
            {
                autosavePos = new Vector2(x + 44, _autosaveLabel.Position.Y + GameConstants.FONT_LINE_HEIGHT + 5);
            }
            else
            {
                autosavePos = new Vector2(x + 16, _autosaveLabel.Position.Y + GameConstants.FONT_LINE_HEIGHT * 2.5f);
            }

            _autosaveSetter = new TextSelector(autosavePos, 40, GlobalState.autosave_on ? 1 : 0, DialogueManager.GetDialogue("misc", "any", "config", 4), DialogueManager.GetDialogue("misc", "any", "config", 5))
            {
                ValueChangedEvent = AutoSaveValueChanged
            };

            _languageSetter = new TextSelector(new Vector2(x + _languageLabel.Writer.WriteArea.Width - 8, _languageLabel.Position.Y + GameConstants.LineOffset), GlobalState.CurrentLanguage == Language.ZH_CN ? 40 : 30, (int)GlobalState.CurrentLanguage, Enum.GetNames(GlobalState.CurrentLanguage.GetType()).Select(s => s.ToLower().Replace('_', '-')).ToArray())
            {
                ValueChangedEvent = LanguageValueChanged
            };

            _state = _lastState;
        }