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); }
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); }
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); }
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); }
public ContextMenuBrowser(IContextMenuHandler?handler, TweetDeckExtraContext extraContext) : base(handler) { this.extraContext = extraContext; }
public ContextMenuBrowser(FormBrowser form, IContextMenuHandler handler, TweetDeckExtraContext extraContext) : base(handler) { this.form = form; this.extraContext = extraContext; }