AddHostedProjectClicked() public method

public AddHostedProjectClicked ( ) : void
return void
Ejemplo n.º 1
0
        public void CreateMenu()
        {
            this.menu       = new Menu();
            this.state_item = new MenuItem(Controller.StateText)
            {
                Sensitive = false
            };

            ImageMenuItem folder_item = new SparkleMenuItem("SparkleShare");

            folder_item.Image = new Image(SparkleUIHelpers.GetIcon("sparkleshare", 16));

            this.menu.Add(this.state_item);
            this.menu.Add(new SeparatorMenuItem());
            this.menu.Add(folder_item);

            if (Program.Controller.Folders.Count > 0)
            {
                int i = 0;
                foreach (string folder_name in Controller.Folders)
                {
                    ImageMenuItem item = new SparkleMenuItem(folder_name);
                    Gdk.Pixbuf    folder_icon;

                    if (!string.IsNullOrEmpty(Controller.FolderErrors [i]))
                    {
                        folder_icon  = IconTheme.Default.LoadIcon("dialog-warning", 16, IconLookupFlags.GenericFallback);
                        item.Submenu = new Menu();

                        MenuItem error_item = new MenuItem(Controller.FolderErrors [i])
                        {
                            Sensitive = false
                        };
                        MenuItem try_again_item = new MenuItem("Try Again");
                        try_again_item.Activated += Controller.TryAgainDelegate(folder_name);

                        (item.Submenu as Menu).Add(error_item);
                        (item.Submenu as Menu).Add(new SeparatorMenuItem());
                        (item.Submenu as Menu).Add(try_again_item);
                    }
                    else
                    {
                        folder_icon     = IconTheme.Default.LoadIcon("folder", 16, IconLookupFlags.GenericFallback);
                        item.Activated += Controller.OpenFolderDelegate(folder_name);
                    }

                    (item.Child as Label).UseUnderline = false;
                    item.Image = new Image(folder_icon);
                    this.menu.Add(item);

                    i++;
                }
            }

            this.recent_events_item           = new MenuItem("Recent Changes…");
            this.recent_events_item.Sensitive = Controller.RecentEventsItemEnabled;
            this.quit_item = new MenuItem("Quit")
            {
                Sensitive = Controller.QuitItemEnabled
            };
            MenuItem add_item = new MenuItem("Add Hosted Project…");
            MenuItem notify_item;

            if (Program.Controller.NotificationsEnabled)
            {
                notify_item = new MenuItem("Turn Notifications Off");
            }
            else
            {
                notify_item = new MenuItem("Turn Notifications On");
            }

            notify_item.Activated += delegate {
                Program.Controller.ToggleNotifications();

                Application.Invoke(delegate {
                    if (Program.Controller.NotificationsEnabled)
                    {
                        (notify_item.Child as Label).Text = "Turn Notifications Off";
                    }
                    else
                    {
                        (notify_item.Child as Label).Text = "Turn Notifications On";
                    }
                });
            };

            MenuItem link_code_item = new MenuItem("Client ID");

            if (Controller.LinkCodeItemEnabled)
            {
                link_code_item.Submenu = new Menu();

                string   link_code = Program.Controller.CurrentUser.PublicKey.Substring(0, 20) + "...";
                MenuItem code_item = new MenuItem(link_code)
                {
                    Sensitive = false
                };

                MenuItem copy_item = new MenuItem("Copy to Clipboard");
                copy_item.Activated += delegate { Controller.CopyToClipboardClicked(); };

                (link_code_item.Submenu as Menu).Add(code_item);
                (link_code_item.Submenu as Menu).Add(new SeparatorMenuItem());
                (link_code_item.Submenu as Menu).Add(copy_item);
            }

            MenuItem about_item = new MenuItem("About SparkleShare");

            about_item.Activated += delegate { Controller.AboutClicked(); };
            add_item.Activated   += delegate { Controller.AddHostedProjectClicked(); };
            this.recent_events_item.Activated += delegate { Controller.RecentEventsClicked(); };
            this.quit_item.Activated          += delegate { Controller.QuitClicked(); };

            folder_item.Submenu = new Menu();
            (folder_item.Submenu as Menu).Add(this.recent_events_item);
            (folder_item.Submenu as Menu).Add(add_item);
            (folder_item.Submenu as Menu).Add(new SeparatorMenuItem());
            (folder_item.Submenu as Menu).Add(notify_item);
            (folder_item.Submenu as Menu).Add(new SeparatorMenuItem());
            (folder_item.Submenu as Menu).Add(link_code_item);
            (folder_item.Submenu as Menu).Add(new SeparatorMenuItem());
            (folder_item.Submenu as Menu).Add(about_item);

            this.menu.Add(new SeparatorMenuItem());
            this.menu.Add(this.quit_item);
            this.menu.ShowAll();

            #if HAVE_APP_INDICATOR
            this.indicator.Menu = this.menu;
            #endif
        }
Ejemplo n.º 2
0
        public void CreateMenu()
        {
            this.context_menu = new ContextMenu();

            this.state_item = new SparkleMenuItem()
            {
                Header    = Controller.StateText,
                IsEnabled = false
            };

            Image folder_image = new Image()
            {
                Source = SparkleUIHelpers.GetImageSource("sparkleshare-folder"),
                Width  = 16,
                Height = 16
            };

            SparkleMenuItem folder_item = new SparkleMenuItem()
            {
                Header = "SparkleShare",
                Icon   = folder_image
            };

            SparkleMenuItem add_item = new SparkleMenuItem()
            {
                Header = "Add hosted project…"
            };

            this.log_item = new SparkleMenuItem()
            {
                Header    = "Recent changes…",
                IsEnabled = Controller.RecentEventsItemEnabled
            };

            SparkleMenuItem link_code_item = new SparkleMenuItem()
            {
                Header = "Client ID"
            };

            if (Controller.LinkCodeItemEnabled)
            {
                SparkleMenuItem code_item = new SparkleMenuItem();
                code_item.Header = Program.Controller.CurrentUser.PublicKey.Substring(0, 20) + "...";

                SparkleMenuItem copy_item = new SparkleMenuItem()
                {
                    Header = "Copy to Clipboard"
                };
                copy_item.Click += delegate { Controller.CopyToClipboardClicked(); };

                link_code_item.Items.Add(code_item);
                link_code_item.Items.Add(new Separator());
                link_code_item.Items.Add(copy_item);
            }

            CheckBox notify_check_box = new CheckBox()
            {
                Margin    = new Thickness(6, 0, 0, 0),
                IsChecked = Program.Controller.NotificationsEnabled
            };

            SparkleMenuItem notify_item = new SparkleMenuItem()
            {
                Header = "Notifications"
            };

            notify_item.Icon = notify_check_box;

            SparkleMenuItem about_item = new SparkleMenuItem()
            {
                Header = "About SparkleShare"
            };

            this.exit_item = new SparkleMenuItem()
            {
                Header = "Exit"
            };


            add_item.Click      += delegate { Controller.AddHostedProjectClicked(); };
            this.log_item.Click += delegate { Controller.RecentEventsClicked(); };
            about_item.Click    += delegate { Controller.AboutClicked(); };

            notify_check_box.Click += delegate {
                this.context_menu.IsOpen = false;
                Program.Controller.ToggleNotifications();
                notify_check_box.IsChecked = Program.Controller.NotificationsEnabled;
            };

            notify_item.Click += delegate {
                Program.Controller.ToggleNotifications();
                notify_check_box.IsChecked = Program.Controller.NotificationsEnabled;
            };

            this.exit_item.Click += delegate {
                this.notify_icon.Dispose();
                Controller.QuitClicked();
            };


            this.context_menu.Items.Add(this.state_item);
            this.context_menu.Items.Add(new Separator());
            this.context_menu.Items.Add(folder_item);

            if (Controller.Folders.Length > 0)
            {
                int i = 0;
                foreach (string folder_name in Controller.Folders)
                {
                    SparkleMenuItem subfolder_item = new SparkleMenuItem()
                    {
                        Header = folder_name.Replace("_", "__")
                    };

                    Image subfolder_image = new Image()
                    {
                        Source = SparkleUIHelpers.GetImageSource("folder"),
                        Width  = 16,
                        Height = 16
                    };

                    if (!string.IsNullOrEmpty(Controller.FolderErrors [i]))
                    {
                        subfolder_item.Icon = new Image()
                        {
                            Source = (BitmapSource)Imaging.CreateBitmapSourceFromHIcon(
                                System.Drawing.SystemIcons.Exclamation.Handle, Int32Rect.Empty,
                                BitmapSizeOptions.FromWidthAndHeight(16, 16))
                        };

                        SparkleMenuItem error_item = new SparkleMenuItem()
                        {
                            Header    = Controller.FolderErrors [i],
                            IsEnabled = false
                        };

                        SparkleMenuItem try_again_item = new SparkleMenuItem()
                        {
                            Header = "Try again"
                        };

                        try_again_item.Click += delegate { Controller.TryAgainDelegate(folder_name); };

                        subfolder_item.Items.Add(error_item);
                        subfolder_item.Items.Add(new Separator());
                        subfolder_item.Items.Add(try_again_item);
                    }
                    else
                    {
                        subfolder_item.Icon   = subfolder_image;
                        subfolder_item.Click += new RoutedEventHandler(Controller.OpenFolderDelegate(folder_name));
                    }

                    this.context_menu.Items.Add(subfolder_item);
                    i++;
                }
            }

            folder_item.Items.Add(this.log_item);
            folder_item.Items.Add(add_item);
            folder_item.Items.Add(new Separator());
            folder_item.Items.Add(notify_item);
            folder_item.Items.Add(new Separator());
            folder_item.Items.Add(link_code_item);
            folder_item.Items.Add(new Separator());
            folder_item.Items.Add(about_item);

            this.context_menu.Items.Add(new Separator());
            this.context_menu.Items.Add(this.exit_item);

            this.notify_icon.ContextMenu = this.context_menu;
        }
Ejemplo n.º 3
0
        public void CreateMenu()
        {
            this.menu = new Menu();

            this.state_item = new MenuItem(Controller.StateText)
            {
                Sensitive = false
            };

            this.menu.Add(this.state_item);
            this.menu.Add(new SeparatorMenuItem());

            ImageMenuItem folder_item = new SparkleMenuItem("SparkleShare")
            {
                Image = new Image(SparkleUIHelpers.GetIcon("folder-sparkleshare", 16))
            };

            folder_item.Activated += delegate {
                Controller.SparkleShareClicked();
            };

            this.menu.Add(folder_item);

            if (Program.Controller.Folders.Count > 0)
            {
                foreach (string folder_name in Controller.Folders)
                {
                    Gdk.Pixbuf folder_icon;

                    if (Program.Controller.UnsyncedFolders.Contains(folder_name))
                    {
                        folder_icon = IconTheme.Default.LoadIcon("dialog-error", 16,
                                                                 IconLookupFlags.GenericFallback);
                    }
                    else
                    {
                        folder_icon = IconTheme.Default.LoadIcon("folder", 16,
                                                                 IconLookupFlags.GenericFallback);
                    }

                    ImageMenuItem subfolder_item = new SparkleMenuItem(folder_name)
                    {
                        Image = new Image(folder_icon)
                    };

                    subfolder_item.Activated += OpenFolderDelegate(folder_name);
                    this.menu.Add(subfolder_item);
                }

                Menu submenu = new Menu();

                foreach (string folder_name in Controller.OverflowFolders)
                {
                    Gdk.Pixbuf folder_icon;

                    if (Program.Controller.UnsyncedFolders.Contains(folder_name))
                    {
                        folder_icon = IconTheme.Default.LoadIcon("dialog-error", 16,
                                                                 IconLookupFlags.GenericFallback);
                    }
                    else
                    {
                        folder_icon = IconTheme.Default.LoadIcon("folder", 16,
                                                                 IconLookupFlags.GenericFallback);
                    }

                    ImageMenuItem subfolder_item = new SparkleMenuItem(folder_name)
                    {
                        Image = new Image(folder_icon)
                    };

                    subfolder_item.Activated += OpenFolderDelegate(folder_name);
                    submenu.Add(subfolder_item);
                }

                if (submenu.Children.Length > 0)
                {
                    SparkleMenuItem more_item = new SparkleMenuItem("More Projects")
                    {
                        Submenu = submenu
                    };

                    this.menu.Add(new SeparatorMenuItem());
                    this.menu.Add(more_item);
                }
            }

            this.menu.Add(new SeparatorMenuItem());

            MenuItem sync_item = new MenuItem(_("Add Hosted Project…"));

            sync_item.Activated += delegate {
                Controller.AddHostedProjectClicked();
            };

            this.menu.Add(sync_item);

            this.recent_events_item = new MenuItem(_("View Recent Changes…"));

            this.recent_events_item.Sensitive = Controller.OpenRecentEventsItemEnabled;

            this.recent_events_item.Activated += delegate {
                Controller.OpenRecentEventsClicked();
            };

            this.menu.Add(this.recent_events_item);
            this.menu.Add(new SeparatorMenuItem());


            MenuItem notify_item;

            if (Program.Controller.NotificationsEnabled)
            {
                notify_item = new MenuItem(_("Turn Notifications Off"));
            }
            else
            {
                notify_item = new MenuItem(_("Turn Notifications On"));
            }

            notify_item.Activated += delegate {
                Application.Invoke(delegate {
                    Program.Controller.ToggleNotifications();

                    if (Program.Controller.NotificationsEnabled)
                    {
                        (notify_item.Child as Label).Text = _("Turn Notifications Off");
                    }
                    else
                    {
                        (notify_item.Child as Label).Text = _("Turn Notifications On");
                    }
                });
            };

            this.menu.Add(notify_item);
            this.menu.Add(new SeparatorMenuItem());


            MenuItem about_item = new MenuItem(_("About SparkleShare"));

            about_item.Activated += delegate {
                Controller.AboutClicked();
            };

            this.menu.Add(about_item);
            this.menu.Add(new SeparatorMenuItem());


            this.quit_item = new MenuItem(_("Quit"))
            {
                Sensitive = Controller.QuitItemEnabled
            };

            this.quit_item.Activated += delegate {
                Controller.QuitClicked();
            };

            this.menu.Add(this.quit_item);
            this.menu.ShowAll();

            #if HAVE_APP_INDICATOR
            this.indicator.Menu = this.menu;
            #endif
        }