示例#1
0
        public TweetDeckBrowser(Window window, PluginManager pluginManager)
        {
            this.View = CustomWebClient.CreateWebView(PopupHandler.Instance);

            var extraContext     = new TweetDeckExtraContext();
            var browserComponent = new CefBrowserComponent(window, View, handler => new ContextMenuBrowser(handler, extraContext));
            var _ = new TweetDeckBrowserImpl(browserComponent, new TweetDeckInterfaceImpl(this), extraContext, this, pluginManager);

            View.LoadUrl(TwitterUrls.TweetDeck);
        }
示例#2
0
        private static Link?GetLink(IContextMenuParams parameters, TweetDeckExtraContext extraContext)
        {
            var link = extraContext?.Link;

            if (link != null)
            {
                return(link);
            }

            if (parameters.TypeFlags.HasFlag(ContextMenuType.Link) && extraContext?.Media == null)
            {
                return(new Link(parameters.LinkUrl, parameters.UnfilteredLinkUrl));
            }

            return(null);
        }
示例#3
0
        private static Media?GetMedia(IContextMenuParams parameters, TweetDeckExtraContext extraContext, ImageQuality imageQuality)
        {
            var media = extraContext?.Media;

            if (media != null)
            {
                return(media);
            }

            if (parameters.TypeFlags.HasFlag(ContextMenuType.Media) && parameters.HasImageContents)
            {
                return(new Media(Media.Type.Image, TwitterUrls.GetMediaLink(parameters.SourceUrl, imageQuality)));
            }

            return(null);
        }
示例#4
0
        protected static Context CreateContext(IContextMenuParams parameters, TweetDeckExtraContext extraContext, ImageQuality imageQuality)
        {
            var context = new Context();
            var flags   = parameters.TypeFlags;

            var tweet = extraContext?.Tweet;

            if (tweet != null && !flags.HasFlag(ContextMenuType.Editable))
            {
                context.Tweet = tweet;
            }

            context.Link  = GetLink(parameters, extraContext);
            context.Media = GetMedia(parameters, extraContext, imageQuality);

            if (flags.HasFlag(ContextMenuType.Selection))
            {
                context.Selection = new Selection(parameters.SelectionText, flags.HasFlag(ContextMenuType.Editable));
            }

            return(context);
        }
示例#5
0
 public ContextMenuBrowser(IContextMenuHandler?handler, TweetDeckExtraContext extraContext) : base(handler)
 {
     this.extraContext = extraContext;
 }
示例#6
0
 public ContextMenuBrowser(FormBrowser form, IContextMenuHandler handler, TweetDeckExtraContext extraContext) : base(handler)
 {
     this.form         = form;
     this.extraContext = extraContext;
 }