public LogWidget (VersionControlDocumentInfo info) { this.Build (); this.info = info; if (info.Document != null) this.preselectFile = info.Document.FileName; messageRenderer.Ellipsize = Pango.EllipsizeMode.End; TreeViewColumn colRevMessage = new TreeViewColumn (); colRevMessage.Title = GettextCatalog.GetString ("Message"); var graphRenderer = new RevisionGraphCellRenderer (); colRevMessage.PackStart (graphRenderer, false); colRevMessage.SetCellDataFunc (graphRenderer, GraphFunc); colRevMessage.PackStart (messageRenderer, true); colRevMessage.SetCellDataFunc (messageRenderer, MessageFunc); colRevMessage.Sizing = TreeViewColumnSizing.Autosize; colRevMessage.MinWidth = 350; colRevMessage.Resizable = true; treeviewLog.AppendColumn (colRevMessage); TreeViewColumn colRevDate = new TreeViewColumn (GettextCatalog.GetString ("Date"), textRenderer); colRevDate.SetCellDataFunc (textRenderer, DateFunc); colRevDate.Resizable = true; treeviewLog.AppendColumn (colRevDate); TreeViewColumn colRevAuthor = new TreeViewColumn (GettextCatalog.GetString ("Author"), textRenderer); colRevAuthor.SetCellDataFunc (textRenderer, AuthorFunc); colRevAuthor.Resizable = true; treeviewLog.AppendColumn (colRevAuthor); TreeViewColumn colRevNum = new TreeViewColumn (GettextCatalog.GetString ("Revision"), textRenderer); colRevNum.SetCellDataFunc (textRenderer, RevisionFunc); colRevNum.Resizable = true; treeviewLog.AppendColumn (colRevNum); treeviewLog.Model = logstore; treeviewLog.Selection.Changed += TreeSelectionChanged; treeviewFiles = new FileTreeView (); treeviewFiles.DiffLineActivated += HandleTreeviewFilesDiffLineActivated; scrolledwindowFiles.Child = treeviewFiles; scrolledwindowFiles.ShowAll (); changedpathstore = new TreeStore (typeof(Gdk.Pixbuf), typeof (string), // icon/file name typeof(Gdk.Pixbuf), typeof (string), // icon/operation typeof (string), // path typeof (string), // revision path (invisible) typeof (string[]) // diff ); TreeViewColumn colChangedFile = new TreeViewColumn (); var crp = new CellRendererPixbuf (); var crt = new CellRendererText (); colChangedFile.Title = GettextCatalog.GetString ("File"); colChangedFile.PackStart (crp, false); colChangedFile.PackStart (crt, true); colChangedFile.AddAttribute (crp, "pixbuf", 2); colChangedFile.AddAttribute (crt, "text", 3); treeviewFiles.AppendColumn (colChangedFile); TreeViewColumn colOperation = new TreeViewColumn (); colOperation.Title = GettextCatalog.GetString ("Operation"); colOperation.PackStart (crp, false); colOperation.PackStart (crt, true); colOperation.AddAttribute (crp, "pixbuf", 0); colOperation.AddAttribute (crt, "text", 1); treeviewFiles.AppendColumn (colOperation); TreeViewColumn colChangedPath = new TreeViewColumn (); colChangedPath.Title = GettextCatalog.GetString ("Path"); diffRenderer.DrawLeft = true; colChangedPath.PackStart (diffRenderer, true); colChangedPath.SetCellDataFunc (diffRenderer, SetDiffCellData); treeviewFiles.AppendColumn (colChangedPath); treeviewFiles.Model = changedpathstore; treeviewFiles.TestExpandRow += HandleTreeviewFilesTestExpandRow; treeviewFiles.Events |= Gdk.EventMask.PointerMotionMask; textviewDetails.WrapMode = Gtk.WrapMode.Word; }
void Init () { main = new VBox(false, 6); widget = main; buttonCommit = new Gtk.Button () { Image = new Xwt.ImageView (Xwt.Drawing.Image.FromResource ("commit-16.png")).ToGtkWidget (), Label = GettextCatalog.GetString ("Commit..."), Name = "buttonCommit" }; buttonCommit.Image.Show (); buttonRevert = new Gtk.Button () { Image = new Xwt.ImageView (Xwt.Drawing.Image.FromResource ("revert-16.png")).ToGtkWidget (), Label = GettextCatalog.GetString ("Revert") }; buttonRevert.Image.Show (); showRemoteStatus = new Gtk.Button () { Image = new Xwt.ImageView (Xwt.Drawing.Image.FromResource ("remote-status-16.png")).ToGtkWidget (), Label = GettextCatalog.GetString ("Show Remote Status") }; showRemoteStatus.Image.Show (); status = new Label(""); main.PackStart(status, false, false, 0); scroller = new ScrolledWindow(); scroller.ShadowType = Gtk.ShadowType.None; filelist = new FileTreeView(); filelist.Selection.Mode = Gtk.SelectionMode.Multiple; scroller.Add(filelist); scroller.HscrollbarPolicy = PolicyType.Automatic; scroller.VscrollbarPolicy = PolicyType.Automatic; filelist.RowActivated += OnRowActivated; filelist.DiffLineActivated += OnDiffLineActivated; filelist.CommitSelectionToggled += OnCommitSelectionToggled; cellToggle = new CellRendererToggle(); cellToggle.Toggled += new ToggledHandler(OnCommitCellToggled); var crc = new CellRendererImage (); crc.StockId = "vc-comment"; colCommit = new TreeViewColumn (); colCommit.Spacing = 2; colCommit.Widget = new Xwt.ImageView (Xwt.Drawing.Image.FromResource ("commit-16.png")).ToGtkWidget (); colCommit.Widget.Show (); colCommit.PackStart (cellToggle, false); colCommit.PackStart (crc, false); colCommit.AddAttribute (cellToggle, "active", ColCommit); colCommit.AddAttribute (cellToggle, "visible", ColShowToggle); colCommit.AddAttribute (crc, "visible", ColShowComment); CellRendererText crt = new CellRendererText(); var crp = new CellRendererImage (); TreeViewColumn colStatus = new TreeViewColumn (); colStatus.Title = GettextCatalog.GetString ("Status"); colStatus.PackStart (crp, false); colStatus.PackStart (crt, true); colStatus.AddAttribute (crp, "image", ColIcon); colStatus.AddAttribute (crp, "visible", ColShowStatus); colStatus.AddAttribute (crt, "text", ColStatus); colStatus.AddAttribute (crt, "foreground", ColStatusColor); colFile = new TreeViewColumn (); colFile.Title = GettextCatalog.GetString ("File"); colFile.Spacing = 2; crp = new CellRendererImage (); diffRenderer = new CellRendererDiff (); colFile.PackStart (crp, false); colFile.PackStart (diffRenderer, true); colFile.AddAttribute (crp, "image", ColIconFile); colFile.AddAttribute (crp, "visible", ColShowStatus); colFile.SetCellDataFunc (diffRenderer, new TreeCellDataFunc (SetDiffCellData)); crt = new CellRendererText(); crp = new CellRendererImage (); colRemote = new TreeViewColumn (); colRemote.Title = GettextCatalog.GetString ("Remote Status"); colRemote.PackStart (crp, false); colRemote.PackStart (crt, true); colRemote.AddAttribute (crp, "image", ColRemoteIcon); colRemote.AddAttribute (crt, "text", ColRemoteStatus); colRemote.AddAttribute (crt, "foreground", ColStatusColor); filelist.AppendColumn(colStatus); filelist.AppendColumn(colRemote); filelist.AppendColumn(colCommit); filelist.AppendColumn(colFile); colRemote.Visible = false; filestore = new TreeStore (typeof (Xwt.Drawing.Image), typeof (string), typeof (string[]), typeof (string), typeof(bool), typeof(bool), typeof(string), typeof(bool), typeof (bool), typeof(Xwt.Drawing.Image), typeof(bool), typeof (Xwt.Drawing.Image), typeof(string), typeof(bool), typeof(bool)); filelist.Model = filestore; filelist.TestExpandRow += new Gtk.TestExpandRowHandler (OnTestExpandRow); commitBox = new VBox (); HeaderBox commitMessageLabelBox = new HeaderBox (); commitMessageLabelBox.SetPadding (6, 6, 6, 6); commitMessageLabelBox.SetMargins (1, 1, 0, 0); HBox labBox = new HBox (); labelCommit = new Gtk.Label (GettextCatalog.GetString ("Commit message:")); labelCommit.Xalign = 0; labBox.PackStart (new Xwt.ImageView (Xwt.Drawing.Image.FromResource ("comment-16.png")).ToGtkWidget (), false, false, 0); labBox.PackStart (labelCommit, true, true, 3); commitMessageLabelBox.Add (labBox); commitMessageLabelBox.ShowAll (); //commitBox.PackStart (commitMessageLabelBox, false, false, 0); Gtk.ScrolledWindow frame = new Gtk.ScrolledWindow (); frame.HeightRequest = 75; frame.ShadowType = ShadowType.None; commitText = new TextView (); commitText.WrapMode = WrapMode.WordChar; commitText.Buffer.Changed += OnCommitTextChanged; frame.Add (commitText); commitBox.PackStart (frame, true, true, 0); var paned = new VPanedThin (); paned.HandleWidget = commitMessageLabelBox; paned.Pack1 (scroller, true, true); paned.Pack2 (commitBox, false, false); main.PackStart (paned, true, true, 0); main.ShowAll(); status.Visible = false; filelist.Selection.Changed += new EventHandler(OnCursorChanged); VersionControlService.FileStatusChanged += OnFileStatusChanged; filelist.HeadersClickable = true; filestore.SetSortFunc (0, CompareNodes); colStatus.SortColumnId = 0; filestore.SetSortFunc (1, CompareNodes); colRemote.SortColumnId = 1; filestore.SetSortFunc (2, CompareNodes); colCommit.SortColumnId = 2; filestore.SetSortFunc (3, CompareNodes); colFile.SortColumnId = 3; filestore.SetSortColumnId (3, Gtk.SortType.Ascending); filelist.DoPopupMenu = DoPopupMenu; StartUpdate(); }
public LogWidget (VersionControlDocumentInfo info) { this.Build (); this.info = info; if (info.Document != null) this.preselectFile = info.Item.Path; var separator = new HeaderBox (); separator.SetMargins (1, 0, 0, 0); separator.HeightRequest = 4; separator.ShowAll (); hpaned1 = hpaned1.ReplaceWithWidget (new HPanedThin (), true); vpaned1 = vpaned1.ReplaceWithWidget (new VPanedThin () { HandleWidget = separator }, true); revertButton = new DocumentToolButton ("vc-revert-command", GettextCatalog.GetString ("Revert changes from this revision")); revertButton.GetNativeWidget<Gtk.Widget> ().Sensitive = false; revertButton.Clicked += new EventHandler (RevertRevisionClicked); revertToButton = new DocumentToolButton ("vc-revert-command", GettextCatalog.GetString ("Revert to this revision")); revertToButton.GetNativeWidget<Gtk.Widget> ().Sensitive = false; revertToButton.Clicked += new EventHandler (RevertToRevisionClicked); refreshButton = new DocumentToolButton (Gtk.Stock.Refresh, GettextCatalog.GetString ("Refresh")); refreshButton.Clicked += new EventHandler (RefreshClicked); searchEntry = new SearchEntry (); searchEntry.WidthRequest = 200; searchEntry.ForceFilterButtonVisible = true; searchEntry.EmptyMessage = GettextCatalog.GetString ("Search"); searchEntry.Changed += HandleSearchEntryFilterChanged; searchEntry.Ready = true; searchEntry.Show (); messageRenderer.Ellipsize = Pango.EllipsizeMode.End; TreeViewColumn colRevMessage = new TreeViewColumn (); colRevMessage.Title = GettextCatalog.GetString ("Message"); var graphRenderer = new RevisionGraphCellRenderer (); colRevMessage.PackStart (graphRenderer, false); colRevMessage.SetCellDataFunc (graphRenderer, GraphFunc); colRevMessage.PackStart (messageRenderer, true); colRevMessage.SetCellDataFunc (messageRenderer, MessageFunc); colRevMessage.Sizing = TreeViewColumnSizing.Autosize; treeviewLog.AppendColumn (colRevMessage); colRevMessage.MinWidth = 350; colRevMessage.Resizable = true; TreeViewColumn colRevDate = new TreeViewColumn (GettextCatalog.GetString ("Date"), textRenderer); colRevDate.SetCellDataFunc (textRenderer, DateFunc); colRevDate.Resizable = true; treeviewLog.AppendColumn (colRevDate); TreeViewColumn colRevAuthor = new TreeViewColumn (); colRevAuthor.Title = GettextCatalog.GetString ("Author"); colRevAuthor.PackStart (pixRenderer, false); colRevAuthor.PackStart (textRenderer, true); colRevAuthor.SetCellDataFunc (textRenderer, AuthorFunc); colRevAuthor.SetCellDataFunc (pixRenderer, AuthorIconFunc); colRevAuthor.Resizable = true; treeviewLog.AppendColumn (colRevAuthor); TreeViewColumn colRevNum = new TreeViewColumn (GettextCatalog.GetString ("Revision"), textRenderer); colRevNum.SetCellDataFunc (textRenderer, RevisionFunc); colRevNum.Resizable = true; treeviewLog.AppendColumn (colRevNum); treeviewLog.Model = logstore; treeviewLog.Selection.Changed += TreeSelectionChanged; treeviewFiles = new FileTreeView (); treeviewFiles.DiffLineActivated += HandleTreeviewFilesDiffLineActivated; scrolledwindowFiles.Child = treeviewFiles; scrolledwindowFiles.ShowAll (); changedpathstore = new TreeStore (typeof(Xwt.Drawing.Image), typeof (string), // icon/file name typeof(Xwt.Drawing.Image), typeof (string), // icon/operation typeof (string), // path typeof (string), // revision path (invisible) typeof (string []) // diff ); TreeViewColumn colChangedFile = new TreeViewColumn (); var crp = new CellRendererImage (); var crt = new CellRendererText (); colChangedFile.Title = GettextCatalog.GetString ("File"); colChangedFile.PackStart (crp, false); colChangedFile.PackStart (crt, true); colChangedFile.AddAttribute (crp, "image", 2); colChangedFile.AddAttribute (crt, "text", 3); treeviewFiles.AppendColumn (colChangedFile); TreeViewColumn colOperation = new TreeViewColumn (); colOperation.Title = GettextCatalog.GetString ("Operation"); colOperation.PackStart (crp, false); colOperation.PackStart (crt, true); colOperation.AddAttribute (crp, "image", 0); colOperation.AddAttribute (crt, "text", 1); treeviewFiles.AppendColumn (colOperation); TreeViewColumn colChangedPath = new TreeViewColumn (); colChangedPath.Title = GettextCatalog.GetString ("Path"); diffRenderer.DrawLeft = true; colChangedPath.PackStart (diffRenderer, true); colChangedPath.SetCellDataFunc (diffRenderer, SetDiffCellData); treeviewFiles.AppendColumn (colChangedPath); treeviewFiles.Model = changedpathstore; treeviewFiles.TestExpandRow += HandleTreeviewFilesTestExpandRow; treeviewFiles.Events |= Gdk.EventMask.PointerMotionMask; textviewDetails.WrapMode = Gtk.WrapMode.Word; labelAuthor.Text = ""; labelDate.Text = ""; labelRevision.Text = ""; vbox2.Remove (scrolledwindow1); HeaderBox tb = new HeaderBox (); tb.Show (); tb.SetMargins (1, 0, 0, 0); tb.ShowTopShadow = true; tb.ShadowSize = 4; tb.SetPadding (8, 8, 8, 8); tb.UseChildBackgroundColor = true; tb.Add (scrolledwindow1); vbox2.PackStart (tb, true, true, 0); }
public StatusView(string filepath, Repository vc) : base(Path.GetFileName(filepath) + " Status") { this.vc = vc; this.filepath = filepath; changeSet = vc.CreateChangeSet(filepath); main = new VBox(false, 6); widget = main; commandbar = new Toolbar(); commandbar.ToolbarStyle = Gtk.ToolbarStyle.BothHoriz; commandbar.IconSize = Gtk.IconSize.Menu; main.PackStart(commandbar, false, false, 0); buttonCommit = new Gtk.ToolButton(new Gtk.Image("vc-commit", Gtk.IconSize.Menu), GettextCatalog.GetString("Commit...")); buttonCommit.IsImportant = true; buttonCommit.Clicked += new EventHandler(OnCommitClicked); commandbar.Insert(buttonCommit, -1); Gtk.ToolButton btnRefresh = new Gtk.ToolButton(new Gtk.Image(Gtk.Stock.Refresh, IconSize.Menu), GettextCatalog.GetString("Refresh")); btnRefresh.IsImportant = true; btnRefresh.Clicked += new EventHandler(OnRefresh); commandbar.Insert(btnRefresh, -1); buttonRevert = new Gtk.ToolButton(new Gtk.Image("vc-revert-command", Gtk.IconSize.Menu), GettextCatalog.GetString("Revert")); buttonRevert.IsImportant = true; buttonRevert.Clicked += new EventHandler(OnRevert); commandbar.Insert(buttonRevert, -1); showRemoteStatus = new Gtk.ToolButton(new Gtk.Image("vc-remote-status", Gtk.IconSize.Menu), GettextCatalog.GetString("Show Remote Status")); showRemoteStatus.IsImportant = true; showRemoteStatus.Clicked += new EventHandler(OnShowRemoteStatusClicked); commandbar.Insert(showRemoteStatus, -1); Gtk.ToolButton btnCreatePatch = new Gtk.ToolButton(new Gtk.Image("vc-diff", Gtk.IconSize.Menu), GettextCatalog.GetString("Create Patch")); btnCreatePatch.IsImportant = true; btnCreatePatch.Clicked += new EventHandler(OnCreatePatch); commandbar.Insert(btnCreatePatch, -1); commandbar.Insert(new Gtk.SeparatorToolItem(), -1); Gtk.ToolButton btnOpen = new Gtk.ToolButton(new Gtk.Image(Gtk.Stock.Open, IconSize.Menu), GettextCatalog.GetString("Open")); btnOpen.IsImportant = true; btnOpen.Clicked += new EventHandler(OnOpen); commandbar.Insert(btnOpen, -1); commandbar.Insert(new Gtk.SeparatorToolItem(), -1); Gtk.ToolButton btnExpand = new Gtk.ToolButton(null, GettextCatalog.GetString("Expand All")); btnExpand.IsImportant = true; btnExpand.Clicked += new EventHandler(OnExpandAll); commandbar.Insert(btnExpand, -1); Gtk.ToolButton btnCollapse = new Gtk.ToolButton(null, GettextCatalog.GetString("Collapse All")); btnCollapse.IsImportant = true; btnCollapse.Clicked += new EventHandler(OnCollapseAll); commandbar.Insert(btnCollapse, -1); commandbar.Insert(new Gtk.SeparatorToolItem(), -1); Gtk.ToolButton btnSelectAll = new Gtk.ToolButton(null, GettextCatalog.GetString("Select All")); btnSelectAll.IsImportant = true; btnSelectAll.Clicked += new EventHandler(OnSelectAll); commandbar.Insert(btnSelectAll, -1); Gtk.ToolButton btnSelectNone = new Gtk.ToolButton(null, GettextCatalog.GetString("Select None")); btnSelectNone.IsImportant = true; btnSelectNone.Clicked += new EventHandler(OnSelectNone); commandbar.Insert(btnSelectNone, -1); status = new Label(""); main.PackStart(status, false, false, 0); scroller = new ScrolledWindow(); scroller.ShadowType = Gtk.ShadowType.In; filelist = new FileTreeView(); filelist.Selection.Mode = SelectionMode.Multiple; scroller.Add(filelist); scroller.HscrollbarPolicy = PolicyType.Automatic; scroller.VscrollbarPolicy = PolicyType.Automatic; filelist.RowActivated += OnRowActivated; filelist.DiffLineActivated += OnDiffLineActivated; CellRendererToggle cellToggle = new CellRendererToggle(); cellToggle.Toggled += new ToggledHandler(OnCommitToggledHandler); var crc = new CellRendererIcon(); crc.StockId = "vc-comment"; colCommit = new TreeViewColumn(); colCommit.Spacing = 2; colCommit.Widget = new Gtk.Image("vc-commit", Gtk.IconSize.Menu); colCommit.Widget.Show(); colCommit.PackStart(cellToggle, false); colCommit.PackStart(crc, false); colCommit.AddAttribute(cellToggle, "active", ColCommit); colCommit.AddAttribute(cellToggle, "visible", ColShowToggle); colCommit.AddAttribute(crc, "visible", ColShowComment); CellRendererText crt = new CellRendererText(); var crp = new CellRendererPixbuf(); TreeViewColumn colStatus = new TreeViewColumn(); colStatus.Title = GettextCatalog.GetString("Status"); colStatus.PackStart(crp, false); colStatus.PackStart(crt, true); colStatus.AddAttribute(crp, "pixbuf", ColIcon); colStatus.AddAttribute(crp, "visible", ColShowStatus); colStatus.AddAttribute(crt, "text", ColStatus); colStatus.AddAttribute(crt, "foreground", ColStatusColor); TreeViewColumn colFile = new TreeViewColumn(); colFile.Title = GettextCatalog.GetString("File"); colFile.Spacing = 2; crp = new CellRendererPixbuf(); diffRenderer = new CellRendererDiff(); colFile.PackStart(crp, false); colFile.PackStart(diffRenderer, true); colFile.AddAttribute(crp, "pixbuf", ColIconFile); colFile.AddAttribute(crp, "visible", ColShowStatus); colFile.SetCellDataFunc(diffRenderer, new TreeCellDataFunc(SetDiffCellData)); crt = new CellRendererText(); crp = new CellRendererPixbuf(); colRemote = new TreeViewColumn(); colRemote.Title = GettextCatalog.GetString("Remote Status"); colRemote.PackStart(crp, false); colRemote.PackStart(crt, true); colRemote.AddAttribute(crp, "pixbuf", ColRemoteIcon); colRemote.AddAttribute(crt, "text", ColRemoteStatus); colRemote.AddAttribute(crt, "foreground", ColStatusColor); filelist.AppendColumn(colStatus); filelist.AppendColumn(colRemote); filelist.AppendColumn(colCommit); filelist.AppendColumn(colFile); colRemote.Visible = false; filestore = new TreeStore(typeof(Gdk.Pixbuf), typeof(string), typeof(string[]), typeof(string), typeof(bool), typeof(bool), typeof(string), typeof(bool), typeof(bool), typeof(Gdk.Pixbuf), typeof(bool), typeof(Gdk.Pixbuf), typeof(string), typeof(bool)); filelist.Model = filestore; filelist.TestExpandRow += new Gtk.TestExpandRowHandler(OnTestExpandRow); commitBox = new VBox(); HBox labBox = new HBox(); labelCommit = new Gtk.Label(GettextCatalog.GetString("Commit message:")); labelCommit.Xalign = 0; labBox.PackStart(new Gtk.Image("vc-comment", Gtk.IconSize.Menu), false, false, 0); labBox.PackStart(labelCommit, true, true, 3); commitBox.PackStart(labBox, false, false, 0); Gtk.ScrolledWindow frame = new Gtk.ScrolledWindow(); frame.ShadowType = ShadowType.In; commitText = new TextView(); commitText.WrapMode = WrapMode.WordChar; commitText.Buffer.Changed += OnCommitTextChanged; frame.Add(commitText); commitBox.PackStart(frame, true, true, 6); VPaned paned = new VPaned(); paned.Pack1(scroller, true, true); paned.Pack2(commitBox, false, false); main.PackStart(paned, true, true, 0); main.ShowAll(); status.Visible = false; filelist.Selection.Changed += new EventHandler(OnCursorChanged); VersionControlService.FileStatusChanged += OnFileStatusChanged; filelist.HeadersClickable = true; filestore.SetSortFunc(0, CompareNodes); colStatus.SortColumnId = 0; filestore.SetSortFunc(1, CompareNodes); colRemote.SortColumnId = 1; filestore.SetSortFunc(2, CompareNodes); colCommit.SortColumnId = 2; filestore.SetSortFunc(3, CompareNodes); colFile.SortColumnId = 3; filestore.SetSortColumnId(3, Gtk.SortType.Ascending); filelist.ShowContextMenu += OnPopupMenu; StartUpdate(); }
public ChangeSetView() { ShadowType = Gtk.ShadowType.In; filelist = new FileTreeView(); filelist.Selection.Mode = SelectionMode.Multiple; Add(filelist); HscrollbarPolicy = PolicyType.Automatic; VscrollbarPolicy = PolicyType.Automatic; filelist.RowActivated += OnRowActivated; filelist.DiffLineActivated += OnDiffLineActivated; CellRendererToggle cellToggle = new CellRendererToggle(); // cellToggle.Toggled += new ToggledHandler(OnCommitToggledHandler); var crc = new CellRendererIcon(); crc.StockId = "vc-comment"; colCommit = new TreeViewColumn(); colCommit.Spacing = 2; colCommit.Widget = new Gtk.Image("vc-commit", Gtk.IconSize.Menu); colCommit.Widget.Show(); colCommit.PackStart(cellToggle, false); colCommit.PackStart(crc, false); colCommit.AddAttribute(cellToggle, "active", ColCommit); colCommit.AddAttribute(cellToggle, "visible", ColShowToggle); colCommit.AddAttribute(crc, "visible", ColShowComment); colCommit.Visible = false; CellRendererText crt = new CellRendererText(); var crp = new CellRendererPixbuf(); TreeViewColumn colStatus = new TreeViewColumn(); colStatus.Title = GettextCatalog.GetString("Status"); colStatus.PackStart(crp, false); colStatus.PackStart(crt, true); colStatus.AddAttribute(crp, "pixbuf", ColIcon); colStatus.AddAttribute(crp, "visible", ColShowStatus); colStatus.AddAttribute(crt, "text", ColStatus); colStatus.AddAttribute(crt, "foreground", ColStatusColor); TreeViewColumn colFile = new TreeViewColumn(); colFile.Title = GettextCatalog.GetString("File"); colFile.Spacing = 2; crp = new CellRendererPixbuf(); diffRenderer = new CellRendererDiff(); colFile.PackStart(crp, false); colFile.PackStart(diffRenderer, true); colFile.AddAttribute(crp, "pixbuf", ColIconFile); colFile.AddAttribute(crp, "visible", ColShowStatus); colFile.SetCellDataFunc(diffRenderer, new TreeCellDataFunc(SetDiffCellData)); filelist.AppendColumn(colStatus); filelist.AppendColumn(colCommit); filelist.AppendColumn(colFile); filestore = new TreeStore(typeof(Gdk.Pixbuf), typeof(string), typeof(string[]), typeof(bool), typeof(bool), typeof(string), typeof(bool), typeof(bool), typeof(Gdk.Pixbuf), typeof(bool), typeof(string)); filelist.Model = filestore; filelist.TestExpandRow += new Gtk.TestExpandRowHandler(OnTestExpandRow); ShowAll(); filelist.Selection.Changed += new EventHandler(OnCursorChanged); filelist.HeadersClickable = true; filestore.SetSortFunc(0, CompareNodes); colStatus.SortColumnId = 0; filestore.SetSortFunc(1, CompareNodes); colCommit.SortColumnId = 1; filestore.SetSortFunc(2, CompareNodes); colFile.SortColumnId = 2; filestore.SetSortColumnId(2, Gtk.SortType.Ascending); }
public LogWidget (VersionControlDocumentInfo info) { this.Build (); this.info = info; if (info.Document != null) this.preselectFile = info.Document.FileName; revertButton = new Gtk.ToolButton (new Gtk.Image ("vc-revert-command", Gtk.IconSize.Menu), GettextCatalog.GetString ("Revert changes from this revision")); revertButton.IsImportant = true; // revertButton.Sensitive = false; revertButton.Clicked += new EventHandler (RevertRevisionClicked); CommandBar.Insert (revertButton, -1); revertToButton = new Gtk.ToolButton (new Gtk.Image ("vc-revert-command", Gtk.IconSize.Menu), GettextCatalog.GetString ("Revert to this revision")); revertToButton.IsImportant = true; // revertToButton.Sensitive = false; revertToButton.Clicked += new EventHandler (RevertToRevisionClicked); CommandBar.Insert (revertToButton, -1); Gtk.ToolItem item = new Gtk.ToolItem (); Gtk.HBox a = new Gtk.HBox (); item.Add (a); searchEntry = new SearchEntry (); searchEntry.WidthRequest = 200; searchEntry.ForceFilterButtonVisible = true; searchEntry.EmptyMessage = GettextCatalog.GetString ("Search"); searchEntry.Changed += HandleSearchEntryFilterChanged; searchEntry.Ready = true; searchEntry.Show (); a.PackEnd (searchEntry, false, false, 0); CommandBar.Insert (item, -1); ((Gtk.Toolbar.ToolbarChild)CommandBar[item]).Expand = true; CommandBar.ShowAll (); messageRenderer.Ellipsize = Pango.EllipsizeMode.End; TreeViewColumn colRevMessage = new TreeViewColumn (); colRevMessage.Title = GettextCatalog.GetString ("Message"); var graphRenderer = new RevisionGraphCellRenderer (); colRevMessage.PackStart (graphRenderer, false); colRevMessage.SetCellDataFunc (graphRenderer, GraphFunc); colRevMessage.PackStart (messageRenderer, true); colRevMessage.SetCellDataFunc (messageRenderer, MessageFunc); colRevMessage.Sizing = TreeViewColumnSizing.Autosize; treeviewLog.AppendColumn (colRevMessage); colRevMessage.MinWidth = 350; colRevMessage.Resizable = true; TreeViewColumn colRevDate = new TreeViewColumn (GettextCatalog.GetString ("Date"), textRenderer); colRevDate.SetCellDataFunc (textRenderer, DateFunc); colRevDate.Resizable = true; treeviewLog.AppendColumn (colRevDate); TreeViewColumn colRevAuthor = new TreeViewColumn (); colRevAuthor.Title = GettextCatalog.GetString ("Author"); colRevAuthor.PackStart (pixRenderer, false); colRevAuthor.PackStart (textRenderer, true); colRevAuthor.SetCellDataFunc (textRenderer, AuthorFunc); colRevAuthor.SetCellDataFunc (pixRenderer, AuthorIconFunc); colRevAuthor.Resizable = true; treeviewLog.AppendColumn (colRevAuthor); TreeViewColumn colRevNum = new TreeViewColumn (GettextCatalog.GetString ("Revision"), textRenderer); colRevNum.SetCellDataFunc (textRenderer, RevisionFunc); colRevNum.Resizable = true; treeviewLog.AppendColumn (colRevNum); treeviewLog.Model = logstore; treeviewLog.Selection.Changed += TreeSelectionChanged; treeviewFiles = new FileTreeView (); treeviewFiles.DiffLineActivated += HandleTreeviewFilesDiffLineActivated; scrolledwindowFiles.Child = treeviewFiles; scrolledwindowFiles.ShowAll (); changedpathstore = new TreeStore (typeof(Gdk.Pixbuf), typeof (string), // icon/file name typeof(Gdk.Pixbuf), typeof (string), // icon/operation typeof (string), // path typeof (string), // revision path (invisible) typeof (string[]) // diff ); TreeViewColumn colChangedFile = new TreeViewColumn (); var crp = new CellRendererPixbuf (); var crt = new CellRendererText (); colChangedFile.Title = GettextCatalog.GetString ("File"); colChangedFile.PackStart (crp, false); colChangedFile.PackStart (crt, true); colChangedFile.AddAttribute (crp, "pixbuf", 2); colChangedFile.AddAttribute (crt, "text", 3); treeviewFiles.AppendColumn (colChangedFile); TreeViewColumn colOperation = new TreeViewColumn (); colOperation.Title = GettextCatalog.GetString ("Operation"); colOperation.PackStart (crp, false); colOperation.PackStart (crt, true); colOperation.AddAttribute (crp, "pixbuf", 0); colOperation.AddAttribute (crt, "text", 1); treeviewFiles.AppendColumn (colOperation); TreeViewColumn colChangedPath = new TreeViewColumn (); colChangedPath.Title = GettextCatalog.GetString ("Path"); diffRenderer.DrawLeft = true; colChangedPath.PackStart (diffRenderer, true); colChangedPath.SetCellDataFunc (diffRenderer, SetDiffCellData); treeviewFiles.AppendColumn (colChangedPath); treeviewFiles.Model = changedpathstore; treeviewFiles.TestExpandRow += HandleTreeviewFilesTestExpandRow; treeviewFiles.Events |= Gdk.EventMask.PointerMotionMask; textviewDetails.WrapMode = Gtk.WrapMode.Word; labelAuthor.Text = ""; labelDate.Text = ""; labelRevision.Text = ""; }
public StatusView (string filepath, Repository vc) : base(Path.GetFileName(filepath) + " Status") { this.vc = vc; this.filepath = filepath; changeSet = vc.CreateChangeSet (filepath); main = new VBox(false, 6); widget = main; commandbar = new Toolbar (); commandbar.ToolbarStyle = Gtk.ToolbarStyle.BothHoriz; commandbar.IconSize = Gtk.IconSize.Menu; main.PackStart (commandbar, false, false, 0); buttonCommit = new Gtk.ToolButton (new Gtk.Image ("vc-commit", Gtk.IconSize.Menu), GettextCatalog.GetString ("Commit...")); buttonCommit.IsImportant = true; buttonCommit.Clicked += new EventHandler (OnCommitClicked); commandbar.Insert (buttonCommit, -1); Gtk.ToolButton btnRefresh = new Gtk.ToolButton (new Gtk.Image (Gtk.Stock.Refresh, IconSize.Menu), GettextCatalog.GetString ("Refresh")); btnRefresh.IsImportant = true; btnRefresh.Clicked += new EventHandler (OnRefresh); commandbar.Insert (btnRefresh, -1); buttonRevert = new Gtk.ToolButton (new Gtk.Image ("vc-revert-command", Gtk.IconSize.Menu), GettextCatalog.GetString ("Revert")); buttonRevert.IsImportant = true; buttonRevert.Clicked += new EventHandler (OnRevert); commandbar.Insert (buttonRevert, -1); showRemoteStatus = new Gtk.ToolButton (new Gtk.Image ("vc-remote-status", Gtk.IconSize.Menu), GettextCatalog.GetString ("Show Remote Status")); showRemoteStatus.IsImportant = true; showRemoteStatus.Clicked += new EventHandler(OnShowRemoteStatusClicked); commandbar.Insert (showRemoteStatus, -1); Gtk.ToolButton btnCreatePatch = new Gtk.ToolButton (new Gtk.Image ("vc-diff", Gtk.IconSize.Menu), GettextCatalog.GetString ("Create Patch")); btnCreatePatch.IsImportant = true; btnCreatePatch.Clicked += new EventHandler (OnCreatePatch); commandbar.Insert (btnCreatePatch, -1); commandbar.Insert (new Gtk.SeparatorToolItem (), -1); Gtk.ToolButton btnOpen = new Gtk.ToolButton (new Gtk.Image (Gtk.Stock.Open, IconSize.Menu), GettextCatalog.GetString ("Open")); btnOpen.IsImportant = true; btnOpen.Clicked += new EventHandler (OnOpen); commandbar.Insert (btnOpen, -1); commandbar.Insert (new Gtk.SeparatorToolItem (), -1); Gtk.ToolButton btnExpand = new Gtk.ToolButton (null, GettextCatalog.GetString ("Expand All")); btnExpand.IsImportant = true; btnExpand.Clicked += new EventHandler (OnExpandAll); commandbar.Insert (btnExpand, -1); Gtk.ToolButton btnCollapse = new Gtk.ToolButton (null, GettextCatalog.GetString ("Collapse All")); btnCollapse.IsImportant = true; btnCollapse.Clicked += new EventHandler (OnCollapseAll); commandbar.Insert (btnCollapse, -1); commandbar.Insert (new Gtk.SeparatorToolItem (), -1); Gtk.ToolButton btnSelectAll = new Gtk.ToolButton (null, GettextCatalog.GetString ("Select All")); btnSelectAll.IsImportant = true; btnSelectAll.Clicked += new EventHandler (OnSelectAll); commandbar.Insert (btnSelectAll, -1); Gtk.ToolButton btnSelectNone = new Gtk.ToolButton (null, GettextCatalog.GetString ("Select None")); btnSelectNone.IsImportant = true; btnSelectNone.Clicked += new EventHandler (OnSelectNone); commandbar.Insert (btnSelectNone, -1); status = new Label(""); main.PackStart(status, false, false, 0); scroller = new ScrolledWindow(); scroller.ShadowType = Gtk.ShadowType.In; filelist = new FileTreeView(); filelist.Selection.Mode = Gtk.SelectionMode.Multiple; scroller.Add(filelist); scroller.HscrollbarPolicy = PolicyType.Automatic; scroller.VscrollbarPolicy = PolicyType.Automatic; filelist.RowActivated += OnRowActivated; filelist.DiffLineActivated += OnDiffLineActivated; CellRendererToggle cellToggle = new CellRendererToggle(); cellToggle.Toggled += new ToggledHandler(OnCommitToggledHandler); var crc = new CellRendererIcon (); crc.StockId = "vc-comment"; colCommit = new TreeViewColumn (); colCommit.Spacing = 2; colCommit.Widget = new Gtk.Image ("vc-commit", Gtk.IconSize.Menu); colCommit.Widget.Show (); colCommit.PackStart (cellToggle, false); colCommit.PackStart (crc, false); colCommit.AddAttribute (cellToggle, "active", ColCommit); colCommit.AddAttribute (cellToggle, "visible", ColShowToggle); colCommit.AddAttribute (crc, "visible", ColShowComment); CellRendererText crt = new CellRendererText(); var crp = new CellRendererPixbuf (); TreeViewColumn colStatus = new TreeViewColumn (); colStatus.Title = GettextCatalog.GetString ("Status"); colStatus.PackStart (crp, false); colStatus.PackStart (crt, true); colStatus.AddAttribute (crp, "pixbuf", ColIcon); colStatus.AddAttribute (crp, "visible", ColShowStatus); colStatus.AddAttribute (crt, "text", ColStatus); colStatus.AddAttribute (crt, "foreground", ColStatusColor); TreeViewColumn colFile = new TreeViewColumn (); colFile.Title = GettextCatalog.GetString ("File"); colFile.Spacing = 2; crp = new CellRendererPixbuf (); diffRenderer = new CellRendererDiff (); colFile.PackStart (crp, false); colFile.PackStart (diffRenderer, true); colFile.AddAttribute (crp, "pixbuf", ColIconFile); colFile.AddAttribute (crp, "visible", ColShowStatus); colFile.SetCellDataFunc (diffRenderer, new TreeCellDataFunc (SetDiffCellData)); crt = new CellRendererText(); crp = new CellRendererPixbuf (); colRemote = new TreeViewColumn (); colRemote.Title = GettextCatalog.GetString ("Remote Status"); colRemote.PackStart (crp, false); colRemote.PackStart (crt, true); colRemote.AddAttribute (crp, "pixbuf", ColRemoteIcon); colRemote.AddAttribute (crt, "text", ColRemoteStatus); colRemote.AddAttribute (crt, "foreground", ColStatusColor); filelist.AppendColumn(colStatus); filelist.AppendColumn(colRemote); filelist.AppendColumn(colCommit); filelist.AppendColumn(colFile); colRemote.Visible = false; filestore = new TreeStore (typeof (Gdk.Pixbuf), typeof (string), typeof (string[]), typeof (string), typeof(bool), typeof(bool), typeof(string), typeof(bool), typeof (bool), typeof(Gdk.Pixbuf), typeof(bool), typeof (Gdk.Pixbuf), typeof(string), typeof(bool), typeof(bool)); filelist.Model = filestore; filelist.TestExpandRow += new Gtk.TestExpandRowHandler (OnTestExpandRow); commitBox = new VBox (); HBox labBox = new HBox (); labelCommit = new Gtk.Label (GettextCatalog.GetString ("Commit message:")); labelCommit.Xalign = 0; labBox.PackStart (new Gtk.Image ("vc-comment", Gtk.IconSize.Menu), false, false, 0); labBox.PackStart (labelCommit, true, true, 3); commitBox.PackStart (labBox, false, false, 0); Gtk.ScrolledWindow frame = new Gtk.ScrolledWindow (); frame.ShadowType = ShadowType.In; commitText = new TextView (); commitText.WrapMode = WrapMode.WordChar; commitText.Buffer.Changed += OnCommitTextChanged; frame.Add (commitText); commitBox.PackStart (frame, true, true, 6); VPaned paned = new VPaned (); paned.Pack1 (scroller, true, true); paned.Pack2 (commitBox, false, false); main.PackStart (paned, true, true, 0); main.ShowAll(); status.Visible = false; filelist.Selection.Changed += new EventHandler(OnCursorChanged); VersionControlService.FileStatusChanged += OnFileStatusChanged; filelist.HeadersClickable = true; filestore.SetSortFunc (0, CompareNodes); colStatus.SortColumnId = 0; filestore.SetSortFunc (1, CompareNodes); colRemote.SortColumnId = 1; filestore.SetSortFunc (2, CompareNodes); colCommit.SortColumnId = 2; filestore.SetSortFunc (3, CompareNodes); colFile.SortColumnId = 3; filestore.SetSortColumnId (3, Gtk.SortType.Ascending); filelist.DoPopupMenu = DoPopupMenu; StartUpdate(); }
public LogWidget(VersionControlDocumentInfo info) { this.Build(); this.info = info; if (info.Document != null) { this.preselectFile = info.Item.Path; } revertButton = new Gtk.ToolButton(new Gtk.Image("vc-revert-command", Gtk.IconSize.Menu), GettextCatalog.GetString("Revert changes from this revision")); revertButton.IsImportant = true; // revertButton.Sensitive = false; revertButton.Clicked += new EventHandler(RevertRevisionClicked); CommandBar.Insert(revertButton, -1); revertToButton = new Gtk.ToolButton(new Gtk.Image("vc-revert-command", Gtk.IconSize.Menu), GettextCatalog.GetString("Revert to this revision")); revertToButton.IsImportant = true; // revertToButton.Sensitive = false; revertToButton.Clicked += new EventHandler(RevertToRevisionClicked); CommandBar.Insert(revertToButton, -1); Gtk.ToolItem item = new Gtk.ToolItem(); Gtk.HBox a = new Gtk.HBox(); item.Add(a); searchEntry = new SearchEntry(); searchEntry.WidthRequest = 200; searchEntry.ForceFilterButtonVisible = true; searchEntry.EmptyMessage = GettextCatalog.GetString("Search"); searchEntry.Changed += HandleSearchEntryFilterChanged; searchEntry.Ready = true; searchEntry.Show(); a.PackEnd(searchEntry, false, false, 0); CommandBar.Insert(item, -1); ((Gtk.Toolbar.ToolbarChild)CommandBar[item]).Expand = true; CommandBar.ShowAll(); messageRenderer.Ellipsize = Pango.EllipsizeMode.End; TreeViewColumn colRevMessage = new TreeViewColumn(); colRevMessage.Title = GettextCatalog.GetString("Message"); var graphRenderer = new RevisionGraphCellRenderer(); colRevMessage.PackStart(graphRenderer, false); colRevMessage.SetCellDataFunc(graphRenderer, GraphFunc); colRevMessage.PackStart(messageRenderer, true); colRevMessage.SetCellDataFunc(messageRenderer, MessageFunc); colRevMessage.Sizing = TreeViewColumnSizing.Autosize; treeviewLog.AppendColumn(colRevMessage); colRevMessage.MinWidth = 350; colRevMessage.Resizable = true; TreeViewColumn colRevDate = new TreeViewColumn(GettextCatalog.GetString("Date"), textRenderer); colRevDate.SetCellDataFunc(textRenderer, DateFunc); colRevDate.Resizable = true; treeviewLog.AppendColumn(colRevDate); TreeViewColumn colRevAuthor = new TreeViewColumn(); colRevAuthor.Title = GettextCatalog.GetString("Author"); colRevAuthor.PackStart(pixRenderer, false); colRevAuthor.PackStart(textRenderer, true); colRevAuthor.SetCellDataFunc(textRenderer, AuthorFunc); colRevAuthor.SetCellDataFunc(pixRenderer, AuthorIconFunc); colRevAuthor.Resizable = true; treeviewLog.AppendColumn(colRevAuthor); TreeViewColumn colRevNum = new TreeViewColumn(GettextCatalog.GetString("Revision"), textRenderer); colRevNum.SetCellDataFunc(textRenderer, RevisionFunc); colRevNum.Resizable = true; treeviewLog.AppendColumn(colRevNum); treeviewLog.Model = logstore; treeviewLog.Selection.Changed += TreeSelectionChanged; treeviewFiles = new FileTreeView(); treeviewFiles.DiffLineActivated += HandleTreeviewFilesDiffLineActivated; scrolledwindowFiles.Child = treeviewFiles; scrolledwindowFiles.ShowAll(); changedpathstore = new TreeStore(typeof(Gdk.Pixbuf), typeof(string), // icon/file name typeof(Gdk.Pixbuf), typeof(string), // icon/operation typeof(string), // path typeof(string), // revision path (invisible) typeof(string[]) // diff ); TreeViewColumn colChangedFile = new TreeViewColumn(); var crp = new CellRendererPixbuf(); var crt = new CellRendererText(); colChangedFile.Title = GettextCatalog.GetString("File"); colChangedFile.PackStart(crp, false); colChangedFile.PackStart(crt, true); colChangedFile.AddAttribute(crp, "pixbuf", 2); colChangedFile.AddAttribute(crt, "text", 3); treeviewFiles.AppendColumn(colChangedFile); TreeViewColumn colOperation = new TreeViewColumn(); colOperation.Title = GettextCatalog.GetString("Operation"); colOperation.PackStart(crp, false); colOperation.PackStart(crt, true); colOperation.AddAttribute(crp, "pixbuf", 0); colOperation.AddAttribute(crt, "text", 1); treeviewFiles.AppendColumn(colOperation); TreeViewColumn colChangedPath = new TreeViewColumn(); colChangedPath.Title = GettextCatalog.GetString("Path"); diffRenderer.DrawLeft = true; colChangedPath.PackStart(diffRenderer, true); colChangedPath.SetCellDataFunc(diffRenderer, SetDiffCellData); treeviewFiles.AppendColumn(colChangedPath); treeviewFiles.Model = changedpathstore; treeviewFiles.TestExpandRow += HandleTreeviewFilesTestExpandRow; treeviewFiles.Events |= Gdk.EventMask.PointerMotionMask; textviewDetails.WrapMode = Gtk.WrapMode.Word; labelAuthor.Text = ""; labelDate.Text = ""; labelRevision.Text = ""; }
public ChangeSetView () { ShadowType = Gtk.ShadowType.In; filelist = new FileTreeView(); filelist.Selection.Mode = SelectionMode.Multiple; Add (filelist); HscrollbarPolicy = PolicyType.Automatic; VscrollbarPolicy = PolicyType.Automatic; filelist.RowActivated += OnRowActivated; filelist.DiffLineActivated += OnDiffLineActivated; CellRendererToggle cellToggle = new CellRendererToggle(); // cellToggle.Toggled += new ToggledHandler(OnCommitToggledHandler); var crc = new CellRendererIcon (); crc.StockId = "vc-comment"; colCommit = new TreeViewColumn (); colCommit.Spacing = 2; colCommit.Widget = new Gtk.Image ("vc-commit", Gtk.IconSize.Menu); colCommit.Widget.Show (); colCommit.PackStart (cellToggle, false); colCommit.PackStart (crc, false); colCommit.AddAttribute (cellToggle, "active", ColCommit); colCommit.AddAttribute (cellToggle, "visible", ColShowToggle); colCommit.AddAttribute (crc, "visible", ColShowComment); colCommit.Visible = false; CellRendererText crt = new CellRendererText(); var crp = new CellRendererPixbuf (); TreeViewColumn colStatus = new TreeViewColumn (); colStatus.Title = GettextCatalog.GetString ("Status"); colStatus.PackStart (crp, false); colStatus.PackStart (crt, true); colStatus.AddAttribute (crp, "pixbuf", ColIcon); colStatus.AddAttribute (crp, "visible", ColShowStatus); colStatus.AddAttribute (crt, "text", ColStatus); colStatus.AddAttribute (crt, "foreground", ColStatusColor); TreeViewColumn colFile = new TreeViewColumn (); colFile.Title = GettextCatalog.GetString ("File"); colFile.Spacing = 2; crp = new CellRendererPixbuf (); diffRenderer = new CellRendererDiff (); colFile.PackStart (crp, false); colFile.PackStart (diffRenderer, true); colFile.AddAttribute (crp, "pixbuf", ColIconFile); colFile.AddAttribute (crp, "visible", ColShowStatus); colFile.SetCellDataFunc (diffRenderer, new TreeCellDataFunc (SetDiffCellData)); filelist.AppendColumn(colStatus); filelist.AppendColumn(colCommit); filelist.AppendColumn(colFile); filestore = new TreeStore (typeof (Gdk.Pixbuf), typeof (string), typeof (string[]), typeof(bool), typeof(bool), typeof(string), typeof(bool), typeof (bool), typeof(Gdk.Pixbuf), typeof(bool), typeof(string)); filelist.Model = filestore; filelist.TestExpandRow += new Gtk.TestExpandRowHandler (OnTestExpandRow); ShowAll(); filelist.Selection.Changed += new EventHandler(OnCursorChanged); filelist.HeadersClickable = true; filestore.SetSortFunc (0, CompareNodes); colStatus.SortColumnId = 0; filestore.SetSortFunc (1, CompareNodes); colCommit.SortColumnId = 1; filestore.SetSortFunc (2, CompareNodes); colFile.SortColumnId = 2; filestore.SetSortColumnId (2, Gtk.SortType.Ascending); }
public LogWidget(VersionControlDocumentInfo info) { this.Build(); this.info = info; if (info.Document != null) { this.preselectFile = info.Item.Path; } var separator = new HeaderBox(); separator.SetMargins(1, 0, 0, 0); separator.HeightRequest = 4; separator.ShowAll(); hpaned1 = hpaned1.ReplaceWithWidget(new HPanedThin(), true); vpaned1 = vpaned1.ReplaceWithWidget(new VPanedThin() { HandleWidget = separator }, true); revertButton = new DocumentToolButton("vc-revert-command", GettextCatalog.GetString("Revert changes from this revision")); // revertButton.Sensitive = false; revertButton.Clicked += new EventHandler(RevertRevisionClicked); revertToButton = new DocumentToolButton("vc-revert-command", GettextCatalog.GetString("Revert to this revision")); // revertToButton.Sensitive = false; revertToButton.Clicked += new EventHandler(RevertToRevisionClicked); searchEntry = new SearchEntry(); searchEntry.WidthRequest = 200; searchEntry.ForceFilterButtonVisible = true; searchEntry.EmptyMessage = GettextCatalog.GetString("Search"); searchEntry.Changed += HandleSearchEntryFilterChanged; searchEntry.Ready = true; searchEntry.Show(); messageRenderer.Ellipsize = Pango.EllipsizeMode.End; TreeViewColumn colRevMessage = new TreeViewColumn(); colRevMessage.Title = GettextCatalog.GetString("Message"); var graphRenderer = new RevisionGraphCellRenderer(); colRevMessage.PackStart(graphRenderer, false); colRevMessage.SetCellDataFunc(graphRenderer, GraphFunc); colRevMessage.PackStart(messageRenderer, true); colRevMessage.SetCellDataFunc(messageRenderer, MessageFunc); colRevMessage.Sizing = TreeViewColumnSizing.Autosize; treeviewLog.AppendColumn(colRevMessage); colRevMessage.MinWidth = 350; colRevMessage.Resizable = true; TreeViewColumn colRevDate = new TreeViewColumn(GettextCatalog.GetString("Date"), textRenderer); colRevDate.SetCellDataFunc(textRenderer, DateFunc); colRevDate.Resizable = true; treeviewLog.AppendColumn(colRevDate); TreeViewColumn colRevAuthor = new TreeViewColumn(); colRevAuthor.Title = GettextCatalog.GetString("Author"); colRevAuthor.PackStart(pixRenderer, false); colRevAuthor.PackStart(textRenderer, true); colRevAuthor.SetCellDataFunc(textRenderer, AuthorFunc); colRevAuthor.SetCellDataFunc(pixRenderer, AuthorIconFunc); colRevAuthor.Resizable = true; treeviewLog.AppendColumn(colRevAuthor); TreeViewColumn colRevNum = new TreeViewColumn(GettextCatalog.GetString("Revision"), textRenderer); colRevNum.SetCellDataFunc(textRenderer, RevisionFunc); colRevNum.Resizable = true; treeviewLog.AppendColumn(colRevNum); treeviewLog.Model = logstore; treeviewLog.Selection.Changed += TreeSelectionChanged; treeviewFiles = new FileTreeView(); treeviewFiles.DiffLineActivated += HandleTreeviewFilesDiffLineActivated; scrolledwindowFiles.Child = treeviewFiles; scrolledwindowFiles.ShowAll(); changedpathstore = new TreeStore(typeof(Gdk.Pixbuf), typeof(string), // icon/file name typeof(Gdk.Pixbuf), typeof(string), // icon/operation typeof(string), // path typeof(string), // revision path (invisible) typeof(string[]) // diff ); TreeViewColumn colChangedFile = new TreeViewColumn(); var crp = new CellRendererPixbuf(); var crt = new CellRendererText(); colChangedFile.Title = GettextCatalog.GetString("File"); colChangedFile.PackStart(crp, false); colChangedFile.PackStart(crt, true); colChangedFile.AddAttribute(crp, "pixbuf", 2); colChangedFile.AddAttribute(crt, "text", 3); treeviewFiles.AppendColumn(colChangedFile); TreeViewColumn colOperation = new TreeViewColumn(); colOperation.Title = GettextCatalog.GetString("Operation"); colOperation.PackStart(crp, false); colOperation.PackStart(crt, true); colOperation.AddAttribute(crp, "pixbuf", 0); colOperation.AddAttribute(crt, "text", 1); treeviewFiles.AppendColumn(colOperation); TreeViewColumn colChangedPath = new TreeViewColumn(); colChangedPath.Title = GettextCatalog.GetString("Path"); diffRenderer.DrawLeft = true; colChangedPath.PackStart(diffRenderer, true); colChangedPath.SetCellDataFunc(diffRenderer, SetDiffCellData); treeviewFiles.AppendColumn(colChangedPath); treeviewFiles.Model = changedpathstore; treeviewFiles.TestExpandRow += HandleTreeviewFilesTestExpandRow; treeviewFiles.Events |= Gdk.EventMask.PointerMotionMask; textviewDetails.WrapMode = Gtk.WrapMode.Word; labelAuthor.Text = ""; labelDate.Text = ""; labelRevision.Text = ""; vbox2.Remove(scrolledwindow1); HeaderBox tb = new HeaderBox(); tb.Show(); tb.SetMargins(1, 0, 0, 0); tb.ShowTopShadow = true; tb.ShadowSize = 4; tb.SetPadding(8, 8, 8, 8); tb.UseChildBackgroundColor = true; tb.Add(scrolledwindow1); vbox2.PackStart(tb, true, true, 0); }
public LogWidget(VersionControlDocumentInfo info) { this.Build(); this.info = info; if (info.Document != null) { this.preselectFile = info.Item.Path; } var separator = new HeaderBox(); separator.SetMargins(1, 0, 0, 0); separator.HeightRequest = 4; separator.ShowAll(); hpaned1 = hpaned1.ReplaceWithWidget(new HPanedThin(), true); vpaned1 = vpaned1.ReplaceWithWidget(new VPanedThin() { HandleWidget = separator }, true); revertButton = new DocumentToolButton("vc-revert-command", GettextCatalog.GetString("Revert changes from this revision")); revertButton.GetNativeWidget <Gtk.Widget> ().Sensitive = false; revertButton.Clicked += new EventHandler(RevertRevisionClicked); revertToButton = new DocumentToolButton("vc-revert-command", GettextCatalog.GetString("Revert to this revision")); revertToButton.GetNativeWidget <Gtk.Widget> ().Sensitive = false; revertToButton.Clicked += new EventHandler(RevertToRevisionClicked); refreshButton = new DocumentToolButton(Gtk.Stock.Refresh, GettextCatalog.GetString("Refresh")); refreshButton.Clicked += new EventHandler(RefreshClicked); searchEntry = new SearchEntry(); searchEntry.WidthRequest = 200; searchEntry.ForceFilterButtonVisible = true; searchEntry.EmptyMessage = GettextCatalog.GetString("Search"); searchEntry.Changed += HandleSearchEntryFilterChanged; searchEntry.Ready = true; searchEntry.Show(); messageRenderer.Ellipsize = Pango.EllipsizeMode.End; TreeViewColumn colRevMessage = new TreeViewColumn(); colRevMessage.Title = GettextCatalog.GetString("Message"); var graphRenderer = new RevisionGraphCellRenderer(); colRevMessage.PackStart(graphRenderer, false); colRevMessage.SetCellDataFunc(graphRenderer, GraphFunc); colRevMessage.PackStart(messageRenderer, true); colRevMessage.SetCellDataFunc(messageRenderer, MessageFunc); colRevMessage.Sizing = TreeViewColumnSizing.Autosize; treeviewLog.AppendColumn(colRevMessage); colRevMessage.MinWidth = 350; colRevMessage.Resizable = true; TreeViewColumn colRevDate = new TreeViewColumn(GettextCatalog.GetString("Date"), textRenderer); colRevDate.SetCellDataFunc(textRenderer, DateFunc); colRevDate.Resizable = true; treeviewLog.AppendColumn(colRevDate); TreeViewColumn colRevAuthor = new TreeViewColumn(); colRevAuthor.Title = GettextCatalog.GetString("Author"); colRevAuthor.PackStart(pixRenderer, false); colRevAuthor.PackStart(textRenderer, true); colRevAuthor.SetCellDataFunc(textRenderer, AuthorFunc); colRevAuthor.SetCellDataFunc(pixRenderer, AuthorIconFunc); colRevAuthor.Resizable = true; treeviewLog.AppendColumn(colRevAuthor); TreeViewColumn colRevNum = new TreeViewColumn(GettextCatalog.GetString("Revision"), textRenderer); colRevNum.SetCellDataFunc(textRenderer, RevisionFunc); colRevNum.Resizable = true; treeviewLog.AppendColumn(colRevNum); treeviewLog.Model = logstore; treeviewLog.Selection.Changed += TreeSelectionChanged; treeviewFiles = new FileTreeView(); treeviewFiles.DiffLineActivated += HandleTreeviewFilesDiffLineActivated; scrolledwindowFiles.Child = treeviewFiles; scrolledwindowFiles.ShowAll(); changedpathstore = new TreeStore(typeof(Xwt.Drawing.Image), typeof(string), // icon/file name typeof(Xwt.Drawing.Image), typeof(string), // icon/operation typeof(string), // path typeof(string), // revision path (invisible) typeof(string []) // diff ); TreeViewColumn colChangedFile = new TreeViewColumn(); var crp = new CellRendererImage(); var crt = new CellRendererText(); colChangedFile.Title = GettextCatalog.GetString("File"); colChangedFile.PackStart(crp, false); colChangedFile.PackStart(crt, true); colChangedFile.SetCellDataFunc(crp, HandleNodeCellDataFunc); colChangedFile.AddAttribute(crt, "text", 3); treeviewFiles.AppendColumn(colChangedFile); TreeViewColumn colOperation = new TreeViewColumn(); colOperation.Title = GettextCatalog.GetString("Operation"); colOperation.PackStart(crp, false); colOperation.PackStart(crt, true); colOperation.AddAttribute(crp, "image", 0); colOperation.AddAttribute(crt, "text", 1); treeviewFiles.AppendColumn(colOperation); TreeViewColumn colChangedPath = new TreeViewColumn(); colChangedPath.Title = GettextCatalog.GetString("Path"); diffRenderer.DrawLeft = true; colChangedPath.PackStart(diffRenderer, true); colChangedPath.SetCellDataFunc(diffRenderer, SetDiffCellData); treeviewFiles.AppendColumn(colChangedPath); treeviewFiles.Model = changedpathstore; treeviewFiles.TestExpandRow += HandleTreeviewFilesTestExpandRow; treeviewFiles.Events |= Gdk.EventMask.PointerMotionMask; textviewDetails.WrapMode = Gtk.WrapMode.Word; textviewDetails.AddEvents((int)Gdk.EventMask.ButtonPressMask); textviewDetails.ButtonPressEvent += TextviewDetails_ButtonPressEvent; labelAuthor.Text = ""; labelDate.Text = ""; labelRevision.Text = ""; labelDate.AddEvents((int)Gdk.EventMask.ButtonPressMask); labelDate.ButtonPressEvent += LabelDate_ButtonPressEvent; labelAuthor.AddEvents((int)Gdk.EventMask.ButtonPressMask); labelAuthor.ButtonPressEvent += LabelAuthor_ButtonPressEvent; labelRevision.AddEvents((int)Gdk.EventMask.ButtonPressMask); labelRevision.ButtonPressEvent += LabelRevision_ButtonPressEvent; vbox2.Remove(scrolledwindow1); HeaderBox tb = new HeaderBox(); tb.Show(); tb.SetMargins(1, 0, 0, 0); tb.ShowTopShadow = true; tb.ShadowSize = 4; tb.SetPadding(8, 8, 8, 8); tb.UseChildBackgroundColor = true; tb.Add(scrolledwindow1); vbox2.PackStart(tb, true, true, 0); (Platform.IsMac ? Xwt.Toolkit.NativeEngine : Xwt.Toolkit.CurrentEngine).Invoke(() => { popupMenu = new Xwt.Menu(); var copyItem = new Xwt.MenuItem(GettextCatalog.GetString("Copy")); popupMenu.Items.Add(copyItem); copyItem.Clicked += (sender, e) => { var selectedText = GetSelectedText(); if (!string.IsNullOrEmpty(selectedText)) { LogView.CopyToClipboard(selectedText); } }; }); UpdateStyle(); Ide.Gui.Styles.Changed += HandleStylesChanged; }
void Init() { main = new VBox(false, 6); widget = main; buttonCommit = new Gtk.Button() { Image = new Xwt.ImageView(Xwt.Drawing.Image.FromResource("commit-light-16.png")).ToGtkWidget(), Label = GettextCatalog.GetString("Commit...") }; buttonCommit.Image.Show(); buttonRevert = new Gtk.Button() { Image = new Xwt.ImageView(Xwt.Drawing.Image.FromResource("revert-light-16.png")).ToGtkWidget(), Label = GettextCatalog.GetString("Revert") }; buttonRevert.Image.Show(); showRemoteStatus = new Gtk.Button() { Image = new Xwt.ImageView(Xwt.Drawing.Image.FromResource("remote-status-light-16.png")).ToGtkWidget(), Label = GettextCatalog.GetString("Show Remote Status") }; showRemoteStatus.Image.Show(); status = new Label(""); main.PackStart(status, false, false, 0); scroller = new ScrolledWindow(); scroller.ShadowType = Gtk.ShadowType.None; filelist = new FileTreeView(); filelist.Selection.Mode = Gtk.SelectionMode.Multiple; scroller.Add(filelist); scroller.HscrollbarPolicy = PolicyType.Automatic; scroller.VscrollbarPolicy = PolicyType.Automatic; filelist.RowActivated += OnRowActivated; filelist.DiffLineActivated += OnDiffLineActivated; cellToggle = new CellRendererToggle(); cellToggle.Toggled += new ToggledHandler(OnCommitToggledHandler); var crc = new CellRendererImage(); crc.StockId = "vc-comment"; colCommit = new TreeViewColumn(); colCommit.Spacing = 2; colCommit.Widget = new Xwt.ImageView(Xwt.Drawing.Image.FromResource("commit-light-16.png")).ToGtkWidget(); colCommit.Widget.Show(); colCommit.PackStart(cellToggle, false); colCommit.PackStart(crc, false); colCommit.AddAttribute(cellToggle, "active", ColCommit); colCommit.AddAttribute(cellToggle, "visible", ColShowToggle); colCommit.AddAttribute(crc, "visible", ColShowComment); CellRendererText crt = new CellRendererText(); var crp = new CellRendererImage(); TreeViewColumn colStatus = new TreeViewColumn(); colStatus.Title = GettextCatalog.GetString("Status"); colStatus.PackStart(crp, false); colStatus.PackStart(crt, true); colStatus.AddAttribute(crp, "image", ColIcon); colStatus.AddAttribute(crp, "visible", ColShowStatus); colStatus.AddAttribute(crt, "text", ColStatus); colStatus.AddAttribute(crt, "foreground", ColStatusColor); colFile = new TreeViewColumn(); colFile.Title = GettextCatalog.GetString("File"); colFile.Spacing = 2; crp = new CellRendererImage(); diffRenderer = new CellRendererDiff(); colFile.PackStart(crp, false); colFile.PackStart(diffRenderer, true); colFile.AddAttribute(crp, "image", ColIconFile); colFile.AddAttribute(crp, "visible", ColShowStatus); colFile.SetCellDataFunc(diffRenderer, new TreeCellDataFunc(SetDiffCellData)); crt = new CellRendererText(); crp = new CellRendererImage(); colRemote = new TreeViewColumn(); colRemote.Title = GettextCatalog.GetString("Remote Status"); colRemote.PackStart(crp, false); colRemote.PackStart(crt, true); colRemote.AddAttribute(crp, "image", ColRemoteIcon); colRemote.AddAttribute(crt, "text", ColRemoteStatus); colRemote.AddAttribute(crt, "foreground", ColStatusColor); filelist.AppendColumn(colStatus); filelist.AppendColumn(colRemote); filelist.AppendColumn(colCommit); filelist.AppendColumn(colFile); colRemote.Visible = false; filestore = new TreeStore(typeof(Xwt.Drawing.Image), typeof(string), typeof(string[]), typeof(string), typeof(bool), typeof(bool), typeof(string), typeof(bool), typeof(bool), typeof(Xwt.Drawing.Image), typeof(bool), typeof(Xwt.Drawing.Image), typeof(string), typeof(bool), typeof(bool)); filelist.Model = filestore; filelist.TestExpandRow += new Gtk.TestExpandRowHandler(OnTestExpandRow); commitBox = new VBox(); HeaderBox commitMessageLabelBox = new HeaderBox(); commitMessageLabelBox.SetPadding(6, 6, 6, 6); commitMessageLabelBox.SetMargins(1, 1, 0, 0); HBox labBox = new HBox(); labelCommit = new Gtk.Label(GettextCatalog.GetString("Commit message:")); labelCommit.Xalign = 0; labBox.PackStart(new Xwt.ImageView(Xwt.Drawing.Image.FromResource("comment-light-16.png")).ToGtkWidget(), false, false, 0); labBox.PackStart(labelCommit, true, true, 3); commitMessageLabelBox.Add(labBox); commitMessageLabelBox.ShowAll(); //commitBox.PackStart (commitMessageLabelBox, false, false, 0); Gtk.ScrolledWindow frame = new Gtk.ScrolledWindow(); frame.HeightRequest = 75; frame.ShadowType = ShadowType.None; commitText = new TextView(); commitText.WrapMode = WrapMode.WordChar; commitText.Buffer.Changed += OnCommitTextChanged; frame.Add(commitText); commitBox.PackStart(frame, true, true, 0); var paned = new VPanedThin(); paned.HandleWidget = commitMessageLabelBox; paned.Pack1(scroller, true, true); paned.Pack2(commitBox, false, false); main.PackStart(paned, true, true, 0); main.ShowAll(); status.Visible = false; filelist.Selection.Changed += new EventHandler(OnCursorChanged); VersionControlService.FileStatusChanged += OnFileStatusChanged; filelist.HeadersClickable = true; filestore.SetSortFunc(0, CompareNodes); colStatus.SortColumnId = 0; filestore.SetSortFunc(1, CompareNodes); colRemote.SortColumnId = 1; filestore.SetSortFunc(2, CompareNodes); colCommit.SortColumnId = 2; filestore.SetSortFunc(3, CompareNodes); colFile.SortColumnId = 3; filestore.SetSortColumnId(3, Gtk.SortType.Ascending); filelist.DoPopupMenu = DoPopupMenu; StartUpdate(); }