public AnimeDetailsPageViewModel(IClipboardProvider clipboardProvider,
     ISystemControlsLauncherService systemControlsLauncherService)
 {
     _clipboardProvider = clipboardProvider;
     _systemControlsLauncherService = systemControlsLauncherService;
     UpdateScoreFlyoutChoices();
 }
示例#2
0
 public OpenMapInfoKeybindHandler(
     IViewLocator viewLocator,
     IClipboardProvider clipboardProvider,
     IProcessProvider processProvider)
 {
     this.viewLocator       = viewLocator;
     this.clipboardProvider = clipboardProvider;
     this.processProvider   = processProvider;
 }
示例#3
0
 public PriceCheckItemKeybindHandler(
     IViewLocator viewLocator,
     IClipboardProvider clipboardProvider,
     IProcessProvider processProvider)
 {
     this.viewLocator       = viewLocator;
     this.clipboardProvider = clipboardProvider;
     this.processProvider   = processProvider;
 }
示例#4
0
 public PriceCheckItemHandler(
     IViewLocator viewLocator,
     IClipboardProvider clipboardProvider,
     IMediator mediator)
 {
     this.viewLocator       = viewLocator;
     this.clipboardProvider = clipboardProvider;
     this.mediator          = mediator;
 }
示例#5
0
 public FindItemHandler(
     IKeybindsProvider keybindsProvider,
     IClipboardProvider clipboardProvider,
     IMediator mediator)
 {
     this.keybindsProvider  = keybindsProvider;
     this.clipboardProvider = clipboardProvider;
     this.mediator          = mediator;
 }
 public StartWritingChatHandler(
     ISidekickSettings settings,
     IClipboardProvider clipboard,
     IKeybindsProvider keybindsProvider)
 {
     this.settings         = settings;
     this.clipboard        = clipboard;
     this.keybindsProvider = keybindsProvider;
 }
示例#7
0
 public OpenMapInfoHandler(
     IMediator mediator,
     IViewLocator viewLocator,
     IClipboardProvider clipboardProvider)
 {
     this.mediator          = mediator;
     this.viewLocator       = viewLocator;
     this.clipboardProvider = clipboardProvider;
 }
示例#8
0
 public TrayIconViewModel(
     App application,
     IViewLocator viewLocator,
     IClipboardProvider clipboardProvider,
     IMediator mediator)
 {
     this.application       = application;
     this.viewLocator       = viewLocator;
     this.clipboardProvider = clipboardProvider;
     this.mediator          = mediator;
 }
 public FindItemKeybindHandler(
     IKeyboardProvider keyboard,
     IClipboardProvider clipboardProvider,
     IMediator mediator,
     IProcessProvider processProvider)
 {
     this.keyboard          = keyboard;
     this.clipboardProvider = clipboardProvider;
     this.mediator          = mediator;
     this.processProvider   = processProvider;
 }
示例#10
0
        public MainWindowViewModel(IWindow window, IClipboardMonitor clipboardMonitor, IClipboardProvider clipboardProvider)
        {
            this.window            = window;
            this.clipboardMonitor  = clipboardMonitor;
            this.clipboardProvider = clipboardProvider;

            this.clipboardMonitor.ClipboardUpdate += OnClipboardUpdate;

            OnClipboardUpdate(null, null);

            SaveCommand = new RelayCommand(ExecuteSaveCommand);
        }
        public MainWindowViewModel(IWindow window, IClipboardMonitor clipboardMonitor, IClipboardProvider clipboardProvider)
        {
            this.window = window;
            this.clipboardMonitor = clipboardMonitor;
            this.clipboardProvider = clipboardProvider;

            this.clipboardMonitor.ClipboardUpdate += OnClipboardUpdate;

            OnClipboardUpdate(null, null);

            SaveCommand = new RelayCommand(ExecuteSaveCommand);
        }
 public OpenTradePageHandler(
     IClipboardProvider clipboardProvider,
     IGameLanguageProvider gameLanguageProvider,
     ITradeSearchService tradeSearchService,
     IMediator mediator,
     ISidekickSettings settings)
 {
     this.clipboardProvider    = clipboardProvider;
     this.gameLanguageProvider = gameLanguageProvider;
     this.tradeSearchService   = tradeSearchService;
     this.mediator             = mediator;
     this.settings             = settings;
 }
 public OpenWikiPageKeybindHandler(
     IClipboardProvider clipboardProvider,
     IMediator mediator,
     IViewLocator viewLocator,
     ISidekickSettings settings,
     IProcessProvider processProvider)
 {
     this.clipboardProvider = clipboardProvider;
     this.mediator          = mediator;
     this.viewLocator       = viewLocator;
     this.settings          = settings;
     this.processProvider   = processProvider;
 }
 public OpenWikiPageHandler(
     IClipboardProvider clipboardProvider,
     IGameLanguageProvider gameLanguageProvider,
     IMediator mediator,
     IViewLocator viewLocator,
     ISidekickSettings settings)
 {
     this.clipboardProvider    = clipboardProvider;
     this.gameLanguageProvider = gameLanguageProvider;
     this.mediator             = mediator;
     this.viewLocator          = viewLocator;
     this.settings             = settings;
 }
示例#15
0
 public TrayProvider(IWebHostEnvironment webHostEnvironment,
                     ILogger <TrayProvider> logger,
                     IViewLocator viewLocator,
                     IClipboardProvider clipboardProvider,
                     IMediator mediator,
                     TrayResources resources)
 {
     this.webHostEnvironment = webHostEnvironment;
     this.logger             = logger;
     this.viewLocator        = viewLocator;
     this.clipboardProvider  = clipboardProvider;
     this.mediator           = mediator;
     this.resources          = resources;
 }
示例#16
0
 public ChatKeybindHandler(
     ISidekickSettings settings,
     IClipboardProvider clipboard,
     IKeyboardProvider keyboard,
     ILogger <ChatKeybindHandler> logger,
     IMediator mediator,
     IProcessProvider processProvider)
 {
     this.settings        = settings;
     this.clipboard       = clipboard;
     this.keyboard        = keyboard;
     this.logger          = logger;
     this.mediator        = mediator;
     this.processProvider = processProvider;
 }
示例#17
0
        /// <summary>
        /// Interpret keystrokes.
        /// </summary>
        /// <param name="clipboardProvider">The clipboard abstraction</param>
        /// <param name="slice">The slice.</param>
        /// <param name="keys">SendKeys coded keystrokes.</param>
        public static TextSlice Interpret(IClipboardProvider clipboardProvider, TextSlice slice, string keys)
        {
            switch (keys.ToUpperInvariant())
            {
            case "+^{LEFT}{DEL}":
                slice = Interpret(clipboardProvider, slice, "{DELWORD}");
                break;

            default:
                if (keys != "+^{LEFT}{DEL}")
                {
                    // Not special case of Delete Word.
                    var position = 0;
                    var length   = keys.Length;

                    var isShift   = false;
                    var isControl = false;
                    var isAlt     = false;

                    var isIntroducer = true;
                    while (isIntroducer && position < length)
                    {
                        var ch = keys[position];

                        switch (ch)
                        {
                        case '+':
                            Assertion(!isShift, "Double shift");
                            isShift = true;
                            break;

                        case '^':
                            Assertion(!isControl, "Double control");
                            isControl = true;
                            break;

                        case '%':
                            Assertion(!isAlt, "Double alt");
                            isAlt = true;
                            break;

                        default:
                            isIntroducer = false;
                            break;
                        }

                        if (isIntroducer)
                        {
                            position++;
                        }
                    }

                    while (position < length)
                    {
                        var ch    = keys[position];
                        var start = position;
                        position++;

                        if (isControl)
                        {
                            switch (char.ToUpperInvariant(ch))
                            {
                            // Copy.
                            case 'C':
                                clipboardProvider.SetText(slice.EffectiveSelection);
                                break;

                            // Cut.
                            case 'X':
                                clipboardProvider.SetText(slice.EffectiveSelection);
                                slice = new TextSlice(slice.Head + slice.Tail, slice.Start);
                                break;

                            // Paste.
                            case 'V':
                                var text = clipboardProvider.GetText();
                                if (!string.IsNullOrEmpty(text))
                                {
                                    slice = slice.Insert(text);
                                }
                                break;

                            default:
                                Failed("Unknown control");
                                break;
                            }
                        }
                        else if (ch != '{')
                        {
                            while (position < length && keys[position] != '{')
                            {
                                position++;
                            }

                            var insert = keys.Substring(start, position - start);
                            slice = slice.Insert(insert);
                        }
                        else
                        {
                            var end = keys.IndexOf('}', position + 1);
                            if (end == -1)
                            {
                                Failed("Unclosed group");
                            }
                            else if (end == position)
                            {
                                position++;
                                if (position < length && keys[position] == '}')
                                {
                                    var text = slice.Head + '{' + slice.Tail;
                                    slice = new TextSlice(text, slice.Start + 1);
                                }
                                else
                                {
                                    Failed("Bad escape");
                                }
                            }
                            else
                            {
                                var keyword = keys.Substring(position, end - position).ToUpperInvariant();
                                position = end + 1;

                                var         charSpan = 1;
                                FunctionKey functionKey;
                                if (Enum.TryParse <FunctionKey>(keyword, out functionKey))
                                {
                                    switch (functionKey)
                                    {
                                    case FunctionKey.BACKSPACE:
                                        if (slice.Length != 0)
                                        {
                                            slice = new TextSlice(slice.Head + slice.Tail, slice.Start);
                                        }
                                        else if (slice.Start != 0)
                                        {
                                            if (slice.Start > 1 && char.IsSurrogatePair(slice.Text, slice.Start - 2))
                                            {
                                                charSpan = 2;
                                            }

                                            slice = new TextSlice(slice.Text.Substring(0, slice.Start - charSpan) + slice.Tail, slice.Start - charSpan);
                                        }
                                        break;

                                    case FunctionKey.DELETE:
                                        if (slice.Length != 0)
                                        {
                                            slice = new TextSlice(slice.Head + slice.Tail, slice.Start);
                                        }
                                        else if (slice.Start != slice.Text.Length)
                                        {
                                            if (slice.Text.Length - slice.Start > 1 && char.IsSurrogatePair(slice.Text, slice.Start))
                                            {
                                                charSpan = 2;
                                            }

                                            slice = new TextSlice(slice.Head + slice.Text.Substring(slice.Start + charSpan), slice.Start);
                                        }
                                        break;

                                    case FunctionKey.END:
                                        slice = new TextSlice(slice.Text, slice.Text.Length);
                                        break;

                                    case FunctionKey.ENTER:
                                        slice = slice.Insert("\n");
                                        break;

                                    case FunctionKey.HOME:
                                        slice = new TextSlice(slice.Text, 0);
                                        break;

                                    case FunctionKey.LEFT:
                                        if (slice.Start > 1 && char.IsSurrogatePair(slice.Text, slice.Start - 2))
                                        {
                                            charSpan = 2;
                                        }

                                        if (slice.Length != 0)
                                        {
                                            // Non-empty selection, move to start of selection.
                                            slice = new TextSlice(slice.Text, slice.Start);
                                        }
                                        else if (0 < slice.Start)
                                        {
                                            // Empty selection and not at start of text.
                                            slice = new TextSlice(slice.Text, slice.Start - charSpan);
                                        }
                                        break;

                                    case FunctionKey.RIGHT:
                                        if (slice.Text.Length - slice.Start - slice.Length > 1 && char.IsSurrogatePair(slice.Text, slice.Start + slice.Length))
                                        {
                                            charSpan = 2;
                                        }

                                        if (slice.Length != 0)
                                        {
                                            // Non-empty selection, move to end.
                                            slice = new TextSlice(slice.Text, slice.Start + slice.Length);
                                        }
                                        else if (slice.Start < slice.Text.Length)
                                        {
                                            // Empty selection, move it right.
                                            slice = new TextSlice(slice.Text, slice.Start + charSpan);
                                        }
                                        break;

                                    case FunctionKey.TAB:
                                        slice = slice.Insert("\t");
                                        break;

                                    case FunctionKey.DELWORD:
                                        if (slice.Length != 0)
                                        {
                                            slice = new TextSlice(slice.Head + slice.Tail, slice.Start);
                                        }
                                        else
                                        {
                                            int wordStart;
                                            int punctuationEnd;

                                            var sliceText        = slice.Text;
                                            var anchor           = slice.Start;
                                            var punctuationStart = anchor - sliceText.ReversePunctuationLength(anchor);
                                            if (punctuationStart == 0 || punctuationStart != anchor)
                                            {
                                                // At start of next word.
                                                punctuationEnd = anchor + sliceText.PunctuationLength(anchor);
                                                wordStart      = punctuationStart - sliceText.ReverseWordLength(punctuationStart);
                                            }
                                            else
                                            {
                                                // Within word.
                                                wordStart = anchor - sliceText.ReverseWordLength(anchor);
                                                var wordEnd = anchor + sliceText.WordLength(anchor);
                                                punctuationEnd = wordEnd + sliceText.PunctuationLength(wordEnd);
                                            }

                                            slice = new TextSlice(sliceText.Substring(0, wordStart) + sliceText.Substring(punctuationEnd), wordStart);
                                        }
                                        break;

                                    default:
                                        Failed("Unimplemented escape");
                                        break;
                                    }
                                }
                                else
                                {
                                    slice = slice.Insert(keyword);
                                }
                            }
                        }
                    }
                }
                break;
            }

            return(slice);
        }
示例#18
0
 public virtual void StoreClipboardValueProvider(IClipboardProvider provider)
 {
     this.ActualProvider = provider;
 }
 public MainWindowViewModelFactory(IClipboardMonitor clipboardMonitor, IClipboardProvider clipboardProvider)
 {
     this.clipboardMonitor = clipboardMonitor;
     this.clipboardProvider = clipboardProvider;
 }
 public void StoreClipboardValueProvider(IClipboardProvider provider)
 {
     this.NativeProvider = provider;
 }
示例#21
0
        public static Engine Instance(IWriterProvider writerProvider, IPasswordReceiver passwordReceiver, IClipboardProvider clipboardProvider)
        {
            if (writerProvider == null)
            {
                throw new ArgumentNullException($"Writer cannot be null.");
            }

            if (passwordReceiver == null)
            {
                throw new ArgumentNullException($"Password Receiver cannot be null.");
            }

            if (clipboardProvider == null)
            {
                throw new ArgumentNullException($"Clipboard provider cannot be null.");
            }

            return(new Engine(writerProvider, passwordReceiver, clipboardProvider));
        }
示例#22
0
 private Engine(IWriterProvider textWriter, IPasswordReceiver passwordReceiver, IClipboardProvider clipboardProvider)
 {
     this._writer            = textWriter;
     this._passwordReceiver  = passwordReceiver;
     this._clipboardProvider = clipboardProvider;
 }
示例#23
0
 public MainWindowViewModelFactory(IClipboardMonitor clipboardMonitor, IClipboardProvider clipboardProvider)
 {
     this.clipboardMonitor  = clipboardMonitor;
     this.clipboardProvider = clipboardProvider;
 }
示例#24
0
 /// <summary>
 /// Constructs the service with the specified clipboard.
 /// </summary>
 /// <param name="clipboard">The clipboard to use.</param>
 public SensitiveClipboardService(IClipboardProvider clipboard)
 {
     this.clipboard = clipboard;
 }
示例#25
0
 public virtual void StoreClipboardValueProvider(IClipboardProvider provider)
 {
     this.ActualProvider = provider;
 }
 public TextBoxEditor(IClipboardProvider clipboardProvider)
 {
     _clipboardProvider = clipboardProvider;
 }
 public void StoreClipboardValueProvider(IClipboardProvider provider)
 {
     this.NativeProvider = provider;
 }