Esempio n. 1
0
        internal static void PopulateMenuAndAttachEvents(
            Action <DownloadLaterEventArgs>?DownloadLaterClicked,
            Menu nctx,
            MenuItem dontAddToQueueMenuItem,
            MenuItem queueAndSchedulerMenuItem,
            Window window)
        {
            foreach (var queue in QueueManager.Queues)
            {
                var menuItem = new MenuItem
                {
                    Name  = queue.ID,
                    Label = queue.Name
                };
                menuItem.Activated += (s, e) =>
                {
                    var args = new DownloadLaterEventArgs((string)menuItem.Name);
                    DownloadLaterClicked?.Invoke(args);
                };
                nctx.Append(menuItem);
            }
            nctx.Append(dontAddToQueueMenuItem);
            nctx.Append(queueAndSchedulerMenuItem);

            nctx.ShowAll();
        }
Esempio n. 2
0
        internal static void PopulateMenuAndAttachEvents(
            EventHandler <DownloadLaterEventArgs>?DownloadLaterClicked,
            Button button,
            FrameworkElement window)
        {
            var nctx = (ContextMenu)window.FindResource("DownloadLaterContextMenu");

            nctx.Items.Clear();
            foreach (var queue in QueueManager.Queues)
            {
                var menuItem = new MenuItem
                {
                    Tag    = queue.ID,
                    Header = queue.Name
                };
                menuItem.Click += (s, e) =>
                {
                    MenuItem m    = (MenuItem)e.OriginalSource;
                    var      args = new DownloadLaterEventArgs((string)m.Tag);
                    DownloadLaterClicked?.Invoke(window, args);
                };
                nctx.Items.Add(menuItem);
            }
            nctx.Items.Add(window.FindResource("DontAddToQueueMenuItem"));
            nctx.Items.Add(window.FindResource("QueueAndSchedulerMenuItem"));

            nctx.PlacementTarget = button;
            nctx.Placement       = PlacementMode.Bottom;
            nctx.IsOpen          = true;
        }