void menuItemIStoreEntry_Click(object sender, RoutedEventArgs e)
        {
            MenuItem menuItem = sender as MenuItem;

            if (menuItem != null)
            {
                externalServiceParameter parameter = menuItem.CommandParameter as externalServiceParameter;
                parameter.storeService.SendNow(this.DataContext as TwitterItem, null);
            }
        }
Esempio n. 2
0
        void menuItem_Click(object sender, RoutedEventArgs e)
        {
            MenuItem menuItem = sender as MenuItem;

            if (menuItem != null)
            {
                externalServiceParameter parameter = menuItem.CommandParameter as externalServiceParameter;
                parameter.storeService.SendNow(parameter.item, parameter.link);
            }
        }
Esempio n. 3
0
        public ItemBoxFacebook()
        {
            InitializeComponent();

            ContextMenu contextMenuItem = new ContextMenu();

            MenuItem menuItemCopyTweet = new MenuItem();

            menuItemCopyTweet.Header = "Copy text";
            menuItemCopyTweet.Click += new RoutedEventHandler(menuItemCopyTweet_Click);

            contextMenuItem.Items.Add(menuItemCopyTweet);



            MenuItem contextExternalServices = new MenuItem();

            contextExternalServices.Header = "Send to...";

            foreach (Nymphicus.ExternalServices.IStore service in AppController.Current.AllIStores)
            {
                MenuItem menuItemIStoreEntry = new MenuItem();
                menuItemIStoreEntry.Header = service.Name;
                externalServiceParameter parameter = new externalServiceParameter();
                parameter.storeService = service;

                parameter.item = this.DataContext as TwitterItem;
                menuItemIStoreEntry.CommandParameter = parameter;
                BitmapImage serviceImage = new BitmapImage(new Uri(service.ServiceIcon));
                serviceImage.DecodePixelWidth = 16;
                serviceImage.CacheOption      = BitmapCacheOption.OnLoad;
                menuItemIStoreEntry.Icon      = new System.Windows.Controls.Image {
                    Source = serviceImage
                };

                menuItemIStoreEntry.Click += new RoutedEventHandler(menuItemIStoreEntry_Click);
                contextExternalServices.Items.Add(menuItemIStoreEntry);
            }

            contextMenuItem.Items.Add(contextExternalServices);

            this.GridMainItem.ContextMenu = contextMenuItem;

            CommentsCount.Cursor    = Cursors.Hand;
            ButtonUsername.Cursor   = Cursors.Hand;
            ButtonUsernameTo.Cursor = Cursors.Hand;
            imageInPost.Cursor      = Cursors.Hand;
        }
Esempio n. 4
0
        void generateElementsTextblock(List <TextSubTypes.ISubType> inlines)
        {
            this.Inlines.Clear();

            try
            {
                IItem item = this.DataContext as IItem;



                foreach (object inline in inlines)
                {
                    if (inline.GetType() == typeof(TextSubTypes.Link))
                    {
                        TextSubTypes.Link element = (TextSubTypes.Link)inline;

                        Hyperlink link = new Hyperlink();
                        link.TextDecorations = null;
                        Uri target;
                        Uri.TryCreate(element.urlLong, UriKind.Absolute, out target);
                        link.NavigateUri = target;
                        link.ToolTip     = element.urlLong;
                        if (Properties.Settings.Default.AutoExpandLinks || string.IsNullOrEmpty(element.urlShort))
                        {
                            link.Inlines.Add(element.urlLong);
                        }
                        else
                        {
                            link.Inlines.Add(element.urlShort);
                        }

                        link.Click += new RoutedEventHandler(link_Click);
                        ContextMenu contextMenuLink = new ContextMenu();

                        MenuItem menuItemCopyToClipboard = new MenuItem();
                        menuItemCopyToClipboard.Header           = "Copy link";
                        menuItemCopyToClipboard.CommandParameter = element.urlLong;
                        menuItemCopyToClipboard.Click           += new RoutedEventHandler(menuItemCopyToClipboard_Click);
                        contextMenuLink.Items.Add(menuItemCopyToClipboard);

                        MenuItem menuItemOpenInBrowser = new MenuItem();
                        menuItemOpenInBrowser.Header           = "Open in webbrowser";
                        menuItemOpenInBrowser.CommandParameter = element.urlLong;
                        menuItemOpenInBrowser.Click           += new RoutedEventHandler(menuItemOpenInBrowser_Click);
                        contextMenuLink.Items.Add(menuItemOpenInBrowser);

                        MenuItem contextExternalServices = new MenuItem();
                        contextExternalServices.Header = "Send to...";


                        foreach (Nymphicus.ExternalServices.IStore service in AppController.Current.AllIStores)
                        {
                            MenuItem menuItem = new MenuItem();
                            menuItem.Header = service.Name;
                            externalServiceParameter parameter = new externalServiceParameter();
                            parameter.storeService    = service;
                            parameter.link            = element.urlLong;
                            parameter.item            = item;
                            menuItem.CommandParameter = parameter;
                            BitmapImage serviceImage = new BitmapImage(new Uri(service.ServiceIcon));
                            serviceImage.DecodePixelWidth = 16;
                            serviceImage.CacheOption      = BitmapCacheOption.OnLoad;
                            menuItem.Icon = new System.Windows.Controls.Image {
                                Source = serviceImage
                            };

                            menuItem.Click += new RoutedEventHandler(menuItem_Click);
                            contextExternalServices.Items.Add(menuItem);
                        }

                        contextMenuLink.Items.Add(contextExternalServices);
                        link.ContextMenu = contextMenuLink;
                        this.Inlines.Add(link);
                    }
                    else if (inline.GetType() == typeof(TextSubTypes.ImageLink))
                    {
                        TextSubTypes.ImageLink element = (TextSubTypes.ImageLink)inline;

                        Hyperlink link = new Hyperlink();
                        link.TextDecorations = null;
                        Uri target;
                        Uri.TryCreate(element.urlLong, UriKind.Absolute, out target);
                        link.NavigateUri = target;

                        Grid  tooltipGrid  = new Grid();
                        Image tooltipImage = new Image();
                        tooltipImage.Source = GetImageFromURL(element.imageUrl);
                        tooltipGrid.Children.Add(tooltipImage);
                        link.ToolTip = tooltipGrid;

                        link.Inlines.Add(element.urlLong);

                        link.Click += new RoutedEventHandler(link_Click);
                        this.Inlines.Add(link);
                    }
                    else if (inline.GetType() == typeof(TextSubTypes.HashTag))
                    {
                        TextSubTypes.HashTag element = (TextSubTypes.HashTag)inline;
                        Hyperlink            hashtag = new Hyperlink();
                        char[] trimChars             = { ',',
                                                         ';',
                                                         ':',
                                                         ' ',
                                                         '!',
                                                         '?',
                                                         '.' };
                        hashtag.TargetName      = element.text.Substring(1).Trim(trimChars);
                        hashtag.TextDecorations = null;
                        hashtag.DataContext     = item;
                        hashtag.ToolTip         = "Open search for " + element.text;
                        hashtag.Click          += new RoutedEventHandler(hashtag_Click);
                        TextBlock hashTextBlock = new TextBlock();
                        hashTextBlock.Text            = element.text;
                        hashTextBlock.TextDecorations = null;
                        hashTextBlock.Foreground      = Brushes.Red;
                        hashtag.Inlines.Add(hashTextBlock);

                        ContextMenu contextHashtag = new ContextMenu();

                        MenuItem menuItemOpenInSearch = new MenuItem();
                        menuItemOpenInSearch.Header           = "Open search for " + element.text;
                        menuItemOpenInSearch.CommandParameter = element.text;
                        menuItemOpenInSearch.Click           += new RoutedEventHandler(menuItemOpenInSearch_Click);
                        contextHashtag.Items.Add(menuItemOpenInSearch);

                        MenuItem menuItemMuteHashtag = new MenuItem();
                        menuItemMuteHashtag.Header           = "Mute " + element.text + " in this View (will create a filter)";
                        menuItemMuteHashtag.CommandParameter = element.text;
                        menuItemMuteHashtag.Click           += new RoutedEventHandler(menuItemMuteHashtag_Click);
                        contextHashtag.Items.Add(menuItemMuteHashtag);

                        hashtag.ContextMenu = contextHashtag;

                        this.Inlines.Add(hashtag);
                    }
                    else if (inline.GetType() == typeof(TextSubTypes.User))
                    {
                        TextSubTypes.User element     = (TextSubTypes.User)inline;
                        Hyperlink         twitterUser = new Hyperlink();
                        twitterUser.TextDecorations = null;
                        twitterUser.DataContext     = item;
                        twitterUser.ToolTip         = "Open user info of " + element.userName;
                        twitterUser.TargetName      = element.userName.Substring(1);
                        char[] trimChars = { ',',
                                             ';',
                                             ':',
                                             ' ',
                                             '!',
                                             '?',
                                             '.' };
                        twitterUser.TargetName = twitterUser.TargetName.Trim(trimChars);
                        twitterUser.Click     += new RoutedEventHandler(twitterUser_Click);
                        TextBlock twitterUserBlock = new TextBlock();
                        twitterUserBlock.TextWrapping    = TextWrapping.Wrap;
                        twitterUserBlock.TextDecorations = null;
                        twitterUserBlock.Text            = element.userName;
                        twitterUserBlock.Foreground      = Brushes.DarkGreen;
                        twitterUser.Inlines.Add(twitterUserBlock);
                        this.Inlines.Add(twitterUser);
                    }
                    else if (inline.GetType() == typeof(TextSubTypes.Text))
                    {
                        TextSubTypes.Text element = (TextSubTypes.Text)inline;
                        this.Inlines.Add(element.text);
                    }
                }
            }
            catch (Exception exp)
            {
                AppController.Current.Logger.writeToLogfile("Tweet text parsing failed");
                AppController.Current.Logger.writeToLogfile(exp);
                try
                {
                    TwitterItem item = this.DataContext as TwitterItem;
                    AppController.Current.Logger.writeToLogfile("Tweet text: " + item.Text);
                }
                catch (Exception exp2)
                {
                    AppController.Current.Logger.writeToLogfile("Tweet text cannot be casted to string!");
                    AppController.Current.Logger.writeToLogfile(exp2);
                }
            }
        }
Esempio n. 5
0
        public ItemBoxApn()
        {
            InitializeComponent();

            ContextMenu contextMenuItem = new ContextMenu();

            MenuItem menuItemCopyTweet = new MenuItem();

            menuItemCopyTweet.Header = "Copy text";
            menuItemCopyTweet.Click += new RoutedEventHandler(menuItemCopyTweet_Click);

            contextMenuItem.Items.Add(menuItemCopyTweet);

            MenuItem contextRepostItem = new MenuItem();

            contextRepostItem.Header = "Repost with...";

            MenuItem contextStarItem = new MenuItem();

            contextStarItem.Header = "Star with...";

            foreach (Model.AccountAppDotNet apnAccount in AppController.Current.AllApnAccounts)
            {
                BitmapImage accountImage = new BitmapImage(new Uri(apnAccount.Avatar));
                accountImage.DecodePixelWidth = 16;
                accountImage.CacheOption      = BitmapCacheOption.OnLoad;

                MenuItem menuItemRepostEntry = new MenuItem();
                menuItemRepostEntry.Header           = "@" + apnAccount.username;
                menuItemRepostEntry.CommandParameter = apnAccount;
                //menuItemRepostEntry.Icon = new System.Windows.Controls.Image { Source = accountImage };
                menuItemRepostEntry.Click += menuItemRepostEntry_Click;
                contextRepostItem.Items.Add(menuItemRepostEntry);

                MenuItem menuItemStarEntry = new MenuItem();
                menuItemStarEntry.Header           = "@" + apnAccount.username;
                menuItemStarEntry.CommandParameter = apnAccount;
                //menuItemStarEntry.Icon = new System.Windows.Controls.Image { Source = accountImage };
                menuItemStarEntry.Click += menuItemStarEntry_Click;
                contextStarItem.Items.Add(menuItemStarEntry);
            }

            MenuItem menuItemQuotedRepostEntry = new MenuItem();

            menuItemQuotedRepostEntry.Header           = "Quoted repost";
            menuItemQuotedRepostEntry.CommandParameter = null;
            menuItemQuotedRepostEntry.Click           += menuItemRepostEntry_Click;
            contextRepostItem.Items.Add(menuItemQuotedRepostEntry);

            contextMenuItem.Items.Add(contextRepostItem);
            contextMenuItem.Items.Add(contextStarItem);

            MenuItem contextExternalServices = new MenuItem();

            contextExternalServices.Header = "Send to...";

            foreach (Nymphicus.ExternalServices.IStore service in AppController.Current.AllIStores)
            {
                MenuItem menuItemIStoreEntry = new MenuItem();
                menuItemIStoreEntry.Header = service.Name;
                externalServiceParameter parameter = new externalServiceParameter();
                parameter.storeService = service;

                parameter.item = this.DataContext as ApnItem;
                menuItemIStoreEntry.CommandParameter = parameter;
                BitmapImage serviceImage = new BitmapImage(new Uri(service.ServiceIcon));
                serviceImage.DecodePixelWidth = 16;
                serviceImage.CacheOption      = BitmapCacheOption.OnLoad;
                menuItemIStoreEntry.Icon      = new System.Windows.Controls.Image {
                    Source = serviceImage
                };

                menuItemIStoreEntry.Click += new RoutedEventHandler(menuItemIStoreEntry_Click);
                contextExternalServices.Items.Add(menuItemIStoreEntry);
            }

            contextMenuItem.Items.Add(contextExternalServices);

            this.GridMainItem.ContextMenu = contextMenuItem;
        }