public OpenFolderDelegate ( string subfolder ) : EventHandler | ||
subfolder | string | |
리턴 | EventHandler |
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 { 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", 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); state_menu_items = new SparkleMenuItem[Controller.Projects.Length]; if (Controller.Projects.Length > 0) { int i = 0; foreach (ProjectInfo project in Controller.Projects) { SparkleMenuItem subfolder_item = new SparkleMenuItem { Header = project.Name.Replace("_", "__"), Icon = new Image { Source = SparkleUIHelpers.GetImageSource("folder"), Width = 16, Height = 16 } }; state_menu_items[i] = new SparkleMenuItem { Header = project.StatusMessage, IsEnabled = false }; subfolder_item.Items.Add(state_menu_items[i]); subfolder_item.Items.Add(new Separator()); SparkleMenuItem open_item = new SparkleMenuItem { Header = "Open folder", Icon = new Image { Source = SparkleUIHelpers.GetImageSource("folder"), Width = 16, Height = 16 } }; open_item.Click += new RoutedEventHandler(Controller.OpenFolderDelegate(project.Name)); subfolder_item.Items.Add(open_item); subfolder_item.Items.Add(new Separator()); if (project.IsPaused) { SparkleMenuItem resume_item; if (project.UnsyncedChangesInfo.Count > 0) { foreach (KeyValuePair <string, string> pair in project.UnsyncedChangesInfo) { subfolder_item.Items.Add(new SparkleMenuItem { Header = pair.Key, // TODO image IsEnabled = false }); } if (!string.IsNullOrEmpty(project.MoreUnsyncedChanges)) { subfolder_item.Items.Add(new SparkleMenuItem { Header = project.MoreUnsyncedChanges, IsEnabled = false }); } subfolder_item.Items.Add(new Separator()); resume_item = new SparkleMenuItem { Header = "Sync and Resume…" }; } else { resume_item = new SparkleMenuItem { Header = "Resume" }; } resume_item.Click += (sender, e) => Controller.ResumeDelegate(project.Name)(sender, e); subfolder_item.Items.Add(resume_item); } else { if (Controller.Projects[i].HasError) { subfolder_item.Icon = new Image { Source = Imaging.CreateBitmapSourceFromHIcon( Drawing.SystemIcons.Exclamation.Handle, Int32Rect.Empty, BitmapSizeOptions.FromWidthAndHeight(16, 16)) }; SparkleMenuItem try_again_item = new SparkleMenuItem { Header = "Try Again" }; try_again_item.Click += (sender, e) => Controller.TryAgainDelegate(project.Name)(sender, e); subfolder_item.Items.Add(try_again_item); } else { SparkleMenuItem pause_item = new SparkleMenuItem { Header = "Pause" }; pause_item.Click += (sender, e) => Controller.PauseDelegate(project.Name)(sender, e); subfolder_item.Items.Add(pause_item); } } 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; }
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 }
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; }
public void CreateMenu() { this.menu = new NSMenu() { AutoEnablesItems = false }; this.state_item = new NSMenuItem() { Title = Controller.StateText, Enabled = false }; this.folder_item = new NSMenuItem() { Title = "SparkleShare", Enabled = true }; this.folder_item.Image = this.sparkleshare_image; this.folder_item.Image.Size = new SizeF(16, 16); this.add_item = new NSMenuItem() { Title = "Add Hosted Project…", Enabled = true }; this.add_item.Activated += Controller.AddHostedProjectClicked; this.recent_events_item = new NSMenuItem() { Title = "Recent Changes…", Enabled = Controller.RecentEventsItemEnabled }; if (Controller.RecentEventsItemEnabled) { this.recent_events_item.Activated += Controller.RecentEventsClicked; } this.about_item = new NSMenuItem() { Title = "About SparkleShare", Enabled = true }; this.about_item.Activated += Controller.AboutClicked; this.quit_item = new NSMenuItem() { Title = "Quit", Enabled = Controller.QuitItemEnabled }; this.quit_item.Activated += Controller.QuitClicked; this.folder_menu_items = new NSMenuItem [Controller.Folders.Length]; this.error_menu_items = new NSMenuItem [Controller.Folders.Length]; this.try_again_menu_items = new NSMenuItem [Controller.Folders.Length]; if (Controller.Folders.Length > 0) { int i = 0; foreach (string folder_name in Controller.Folders) { NSMenuItem item = new NSMenuItem() { Title = folder_name }; this.folder_menu_items [i] = item; if (!string.IsNullOrEmpty(Controller.FolderErrors [i])) { item.Image = this.caution_image; item.Submenu = new NSMenu(); this.error_menu_items [i] = new NSMenuItem(); this.error_menu_items [i].Title = Controller.FolderErrors [i]; this.try_again_menu_items [i] = new NSMenuItem(); this.try_again_menu_items [i].Title = "Try Again"; this.try_again_menu_items [i].Activated += Controller.TryAgainDelegate(folder_name);; item.Submenu.AddItem(this.error_menu_items [i]); item.Submenu.AddItem(NSMenuItem.SeparatorItem); item.Submenu.AddItem(this.try_again_menu_items [i]); } else { item.Image = this.folder_image; this.folder_menu_items [i].Activated += Controller.OpenFolderDelegate(folder_name); } item.Image.Size = new SizeF(16, 16); i++; } ; } this.menu.AddItem(this.state_item); this.menu.AddItem(NSMenuItem.SeparatorItem); this.menu.AddItem(this.folder_item); this.submenu = new NSMenu(); this.submenu.AddItem(this.recent_events_item); this.submenu.AddItem(this.add_item); this.submenu.AddItem(NSMenuItem.SeparatorItem); this.submenu.AddItem(this.about_item); this.folder_item.Submenu = this.submenu; foreach (NSMenuItem item in this.folder_menu_items) { this.menu.AddItem(item); } this.menu.AddItem(NSMenuItem.SeparatorItem); this.menu.AddItem(this.quit_item); this.status_item.Menu = this.menu; }