public TabStrip (DockNotebook notebook) { TabWidth = 125; TargetWidth = 125; tracker = new MouseTracker (this); GtkWorkarounds.FixContainerLeak (this); this.notebook = notebook; WidgetFlags |= Gtk.WidgetFlags.AppPaintable; Events |= Gdk.EventMask.PointerMotionMask | Gdk.EventMask.LeaveNotifyMask | Gdk.EventMask.ButtonPressMask; var arr = new Gtk.Image (Gdk.Pixbuf.LoadFromResource ("tabbar-prev.png")); arr.HeightRequest = arr.WidthRequest = 10; PreviousButton = new Button (arr); PreviousButton.Relief = ReliefStyle.None; PreviousButton.CanDefault = PreviousButton.CanFocus = false; arr = new Gtk.Image (Gdk.Pixbuf.LoadFromResource ("tabbar-next.png")); arr.HeightRequest = arr.WidthRequest = 10; NextButton = new Button (arr); NextButton.Relief = ReliefStyle.None; NextButton.CanDefault = NextButton.CanFocus = false; DropDownButton = new MenuButton (); DropDownButton.Relief = ReliefStyle.None; DropDownButton.CanDefault = DropDownButton.CanFocus = false; PreviousButton.ShowAll (); NextButton.ShowAll (); DropDownButton.ShowAll (); PreviousButton.Name = "MonoDevelop.DockNotebook.BarButton"; NextButton.Name = "MonoDevelop.DockNotebook.BarButton"; DropDownButton.Name = "MonoDevelop.DockNotebook.BarButton"; PreviousButton.Parent = this; NextButton.Parent = this; DropDownButton.Parent = this; children.Add (PreviousButton); children.Add (NextButton); children.Add (DropDownButton); tracker.HoveredChanged += (sender, e) => { if (!tracker.Hovered) { SetHighlightedTab (null); UpdateTabWidth (tabEndX - tabStartX); QueueDraw (); } }; notebook.PageAdded += (object sender, EventArgs e) => QueueResize (); notebook.PageRemoved += (object sender, EventArgs e) => QueueResize (); closingTabs = new Dictionary<int, DockNotebookTab> (); }
public TabStrip (DockNotebook notebook) { if (notebook == null) throw new ArgumentNullException ("notebook"); TabWidth = 125; TargetWidth = 125; tracker = new MouseTracker (this); GtkWorkarounds.FixContainerLeak (this); this.notebook = notebook; WidgetFlags |= Gtk.WidgetFlags.AppPaintable; Events |= EventMask.PointerMotionMask | EventMask.LeaveNotifyMask | EventMask.ButtonPressMask; var arr = new Xwt.ImageView (tabbarPrevImage); arr.HeightRequest = arr.WidthRequest = 10; var alignment = new Alignment (0.5f, 0.5f, 0.0f, 0.0f); alignment.Add (arr.ToGtkWidget ()); PreviousButton = new Button (alignment); PreviousButton.Relief = ReliefStyle.None; PreviousButton.CanDefault = PreviousButton.CanFocus = false; arr = new Xwt.ImageView (tabbarNextImage); arr.HeightRequest = arr.WidthRequest = 10; alignment = new Alignment (0.5f, 0.5f, 0.0f, 0.0f); alignment.Add (arr.ToGtkWidget ()); NextButton = new Button (alignment); NextButton.Relief = ReliefStyle.None; NextButton.CanDefault = NextButton.CanFocus = false; DropDownButton = new MenuButton (); DropDownButton.Relief = ReliefStyle.None; DropDownButton.CanDefault = DropDownButton.CanFocus = false; PreviousButton.ShowAll (); NextButton.ShowAll (); DropDownButton.ShowAll (); PreviousButton.Name = "MonoDevelop.DockNotebook.BarButton"; NextButton.Name = "MonoDevelop.DockNotebook.BarButton"; DropDownButton.Name = "MonoDevelop.DockNotebook.BarButton"; PreviousButton.Parent = this; NextButton.Parent = this; DropDownButton.Parent = this; children.Add (PreviousButton); children.Add (NextButton); children.Add (DropDownButton); tracker.HoveredChanged += (sender, e) => { if (!tracker.Hovered) { SetHighlightedTab (null); UpdateTabWidth (tabEndX - tabStartX); QueueDraw (); } }; notebook.PageAdded += (sender, e) => QueueResize (); notebook.PageRemoved += (sender, e) => QueueResize (); closingTabs = new Dictionary<int, DockNotebookTab> (); }
public BugsViewWidget(BugzillaServer server) { this.Build (); this.server = server; bugsStore = new TreeStore ( typeof (BugInfo), typeof(string), // Group typeof(int), // Id typeof(int), // Local priority typeof(string), // Status typeof(string), // Severity typeof(string), // Target Milestone typeof(int), // Age typeof(string), // Assignee typeof(string), // ColOS typeof(string), // Component typeof(string), // Summary typeof(int), // Weight typeof(Gdk.Color), // Back color typeof(Gdk.Color), // Font color typeof(string) // Summary ); bugsList.Model = bugsStore; /* CellRendererSpin spin = new CellRendererSpin (); spin.Digits = 1; */ CellRendererText spin = new CellRendererText (); spin.Editable = true; spin.Edited += HandleSpinEdited; groupColumns = new TreeViewColumn [Enum.GetValues (typeof(GroupCommand)).Length - 1]; groupColumn = bugsList.AppendColumn ("Category", new CellRendererText (), "text", ColGroup); bugsList.AppendColumn ("Id", new CellRendererText (), "text", ColId); bugsList.AppendColumn ("Prio", spin, "text", ColPriority); groupColumns [(int)GroupCommand.GroupByStatus] = bugsList.AppendColumn ("Status", new CellRendererText (), "text", ColStatus); groupColumns [(int)GroupCommand.GroupBySeverity] = bugsList.AppendColumn ("Severity", new CellRendererText (), "text", ColSeverity); groupColumns [(int)GroupCommand.GroupByMilestone] = bugsList.AppendColumn ("Milestone", new CellRendererText (), "text", ColTargetMilestone); bugsList.AppendColumn ("Age", new CellRendererText (), "text", ColAge); groupColumns [(int)GroupCommand.GroupByOwner] = bugsList.AppendColumn ("Assigned", new CellRendererText (), "text", ColAssignee); bugsList.AppendColumn ("OS", new CellRendererText (), "text", ColOS); groupColumns [(int)GroupCommand.GroupByComponent] = bugsList.AppendColumn ("Component", new CellRendererText (), "text", ColComponent); groupColumns [(int)GroupCommand.GroupByTag] = bugsList.AppendColumn ("Tags", new CellRendererText (), "text", ColTags); CellRendererText ct = new CellRendererText (); bugsList.AppendColumn ("Summary", ct, "text", ColSummary); int n = 1; foreach (TreeViewColumn col in bugsList.Columns) { col.SortColumnId = n++; col.Clickable = true; col.Resizable = true; col.Reorderable = true; CellRendererText crt = (CellRendererText) col.CellRenderers[0]; col.AddAttribute (crt, "weight", ColWeight); col.AddAttribute (crt, "background-gdk", ColBackColor); col.AddAttribute (crt, "foreground-gdk", ColFontColor); } bugsList.DragBegin += HandleBugsListDragBegin; bugsList.DragDataReceived += HandleBugsListDragDataReceived; bugsList.DragEnd += HandleBugsListDragEnd; bugsList.DragMotion += HandleBugsListDragMotion; bugsList.Selection.Mode = SelectionMode.Multiple; bugsList.Selection.Changed += HandleBugsListSelectionChanged; Gtk.TargetEntry[] targets = new Gtk.TargetEntry [] { new TargetEntry ("bug", TargetFlags.Widget, 0) }; // bugsList.EnableModelDragSource (Gdk.ModifierType.None, targets, Gdk.DragAction.Move); Gtk.Drag.SourceSet (bugsList, Gdk.ModifierType.Button1Mask, targets, Gdk.DragAction.Move); bugsList.EnableModelDragDest (targets, Gdk.DragAction.Move); ActionCommand setPrioHigh = new ActionCommand (LocalCommands.SetPriorityHigh, GettextCatalog.GetString ("Set High Priority (Bottom)")); ActionCommand setPrioMed = new ActionCommand (LocalCommands.SetPriorityMed, GettextCatalog.GetString ("Set Medium Priority (Bottom)")); ActionCommand setPrioLow = new ActionCommand (LocalCommands.SetPriorityLow, GettextCatalog.GetString ("Set Low Priority (Bottom)")); ActionCommand setPrioHighTop = new ActionCommand (LocalCommands.SetPriorityHighTop, GettextCatalog.GetString ("Set High Priority (Top)")); ActionCommand setPrioMedTop = new ActionCommand (LocalCommands.SetPriorityMedTop, GettextCatalog.GetString ("Set Medium Priority (Top)")); ActionCommand setPrioLowTop = new ActionCommand (LocalCommands.SetPriorityLowTop, GettextCatalog.GetString ("Set Low Priority (Top)")); ActionCommand toggleRead = new ActionCommand (LocalCommands.ToggleNewMarker, GettextCatalog.GetString ("Mark as Changed")); ActionCommand openInBrowser = new ActionCommand (LocalCommands.OpenInBrowser, GettextCatalog.GetString ("Open in Browser")); ActionCommand refreshBugInfo = new ActionCommand (LocalCommands.RefreshFromSever, GettextCatalog.GetString ("Refresh From Server")); ActionCommand setTagCommand = new ActionCommand (LocalCommands.TagsList, GettextCatalog.GetString ("Set tag")); ActionCommand clearTagsCommand = new ActionCommand (LocalCommands.ClearTags, GettextCatalog.GetString ("Clear Tags")); ActionCommand editTagsCommand = new ActionCommand (LocalCommands.EditTags, GettextCatalog.GetString ("Edit Tags")); setTagCommand.CommandArray = true; setTagCommand.ActionType = ActionType.Check; menuSet = new CommandEntrySet (); menuSet.Add (openInBrowser); menuSet.AddSeparator (); menuSet.Add (setPrioHighTop); menuSet.Add (setPrioHigh); menuSet.Add (setPrioMedTop); menuSet.Add (setPrioMed); menuSet.Add (setPrioLowTop); menuSet.Add (setPrioLow); menuSet.AddSeparator (); CommandEntrySet tagsSet = menuSet.AddItemSet (GettextCatalog.GetString ("Tags")); tagsSet.Add (setTagCommand); tagsSet.AddSeparator (); tagsSet.Add (clearTagsCommand); tagsSet.Add (editTagsCommand); menuSet.Add (toggleRead); menuSet.AddSeparator (); menuSet.Add (refreshBugInfo); // Manage menu ActionCommand newServer = new ActionCommand (LocalCommands.NewServer, GettextCatalog.GetString ("Add Server...")); ActionCommand deleteServer = new ActionCommand (LocalCommands.DeleteServer, GettextCatalog.GetString ("Remove Server")); ActionCommand editServer = new ActionCommand (LocalCommands.EditServer, GettextCatalog.GetString ("Edit Server")); CommandEntrySet adminMenuSet = new CommandEntrySet (); adminMenuSet.Add (newServer); adminMenuSet.Add (deleteServer); adminMenuSet.Add (editServer); // Edit button MenuButton editButton = new MenuButton (); editButton.Relief = ReliefStyle.None; editButton.Label = GettextCatalog.GetString ("Manage"); editButton.MenuCreator = delegate { return IdeApp.CommandService.CreateMenu (adminMenuSet); }; hboxHeader.PackStart (editButton, false, false, 0); Box.BoxChild ch = (Box.BoxChild) hboxHeader [editButton]; ch.Position = 1; editButton.ShowAll (); // Group by button CommandEntrySet groupByMenuSet = new CommandEntrySet (); groupByMenuSet.Add (new ActionCommand (GroupCommand.GroupByNothing, GettextCatalog.GetString ("Don't group"))); groupByMenuSet.AddSeparator (); groupByMenuSet.Add (new ActionCommand (GroupCommand.GroupByComponent, GettextCatalog.GetString ("Component"))); groupByMenuSet.Add (new ActionCommand (GroupCommand.GroupByMilestone, GettextCatalog.GetString ("Target Milestone"))); groupByMenuSet.Add (new ActionCommand (GroupCommand.GroupByOwner, GettextCatalog.GetString ("Assigned To"))); groupByMenuSet.Add (new ActionCommand (GroupCommand.GroupBySeverity, GettextCatalog.GetString ("Severity"))); groupByMenuSet.Add (new ActionCommand (GroupCommand.GroupByStatus, GettextCatalog.GetString ("Status"))); groupByMenuSet.Add (new ActionCommand (GroupCommand.GroupByTag, GettextCatalog.GetString ("Tag"))); MenuButton groupButton = new MenuButton (); groupButton.Relief = ReliefStyle.None; groupButton.Label = GettextCatalog.GetString ("Group By"); groupButton.MenuCreator = delegate { return IdeApp.CommandService.CreateMenu (groupByMenuSet); }; hboxHeader.PackStart (groupButton, false, false, 0); ch = (Box.BoxChild) hboxHeader [groupButton]; ch.Position = 4; groupButton.ShowAll (); // Load data FillServers (); FillServer (null); }