private void BuildColumns() { priorityColumn = new TreeViewColumn(); filenameColumn = new TreeViewColumn(); progressColumn = new TreeViewColumn(); filenameColumn.Resizable = true; priorityColumn.Title = ""; filenameColumn.Title = "Filename"; progressColumn.Title = "Progress"; Gtk.CellRendererPixbuf priorityCell = new CellRendererPixbuf(); Gtk.CellRendererText filenameCell = new CellRendererText(); Gtk.CellRendererProgress progressCell = new CellRendererProgress(); priorityColumn.PackStart(priorityCell, true); filenameColumn.PackStart(filenameCell, true); progressColumn.PackStart(progressCell, true); priorityColumn.SetCellDataFunc(priorityCell, new Gtk.TreeCellDataFunc(RenderPriority)); filenameColumn.SetCellDataFunc(filenameCell, new Gtk.TreeCellDataFunc(RenderFilename)); progressColumn.SetCellDataFunc(progressCell, new Gtk.TreeCellDataFunc(RenderProgress)); AppendColumn(priorityColumn); AppendColumn(filenameColumn); AppendColumn(progressColumn); }
private void Build() { this.listViewDownlaods = new TreeView(); colTitle = new TreeViewColumn(); colProgress = new TreeViewColumn(); colStatus = new TreeViewColumn(); colType = new TreeViewColumn(); colType.Title = "Type"; colProgress.Title = "Progress"; colStatus.Title = "Status"; colTitle.Title = "Title"; CellRendererText titleCellRender = new CellRendererText(); CellRendererText typeCellRender = new CellRendererText(); CellRendererText statusCellRender = new CellRendererText(); CellRendererProgress progressCellRender = new CellRendererProgress(); colTitle.PackStart(titleCellRender, true); colType.PackStart(typeCellRender, true); colStatus.PackStart(statusCellRender, true); colProgress.PackStart(progressCellRender, true); colTitle.SetCellDataFunc(titleCellRender, new TreeCellDataFunc(this.RenderTitleDownload)); colType.SetCellDataFunc(typeCellRender, new TreeCellDataFunc(RenderTypeDownload)); colStatus.SetCellDataFunc(statusCellRender, new TreeCellDataFunc(RenderStatusDownload)); colProgress.SetCellDataFunc(progressCellRender, new TreeCellDataFunc(RenderProgressDownload)); listViewDownlaods.AppendColumn(colTitle); listViewDownlaods.AppendColumn(colType); listViewDownlaods.AppendColumn(colStatus); listViewDownlaods.AppendColumn(colProgress); listViewDownlaods.Model = downloadsListStore; container.Add(listViewDownlaods); }
private void BuildColumns() { priorityColumn = new TreeViewColumn(); filenameColumn = new TreeViewColumn(); progressColumn = new TreeViewColumn(); filenameColumn.Resizable = true; priorityColumn.Title = ""; filenameColumn.Title = _("Filename"); progressColumn.Title = _("Progress"); Gtk.CellRendererPixbuf priorityCell = new CellRendererPixbuf(); Gtk.CellRendererText filenameCell = new CellRendererText(); Gtk.CellRendererProgress progressCell = new CellRendererProgress(); priorityColumn.PackStart(priorityCell, true); priorityColumn.SetAttributes(priorityCell, "pixbuf", 2); filenameColumn.PackStart(filenameCell, true); filenameColumn.SetAttributes(filenameCell, "text", 3); progressColumn.PackStart(progressCell, true); progressColumn.SetCellDataFunc(progressCell, new Gtk.TreeCellDataFunc(RenderProgress)); AppendColumn(priorityColumn); AppendColumn(filenameColumn); AppendColumn(progressColumn); }
private void BuildColumns () { priorityColumn = new TreeViewColumn (); filenameColumn = new TreeViewColumn (); progressColumn = new TreeViewColumn (); filenameColumn.Resizable = true; priorityColumn.Title = ""; filenameColumn.Title = "Filename"; progressColumn.Title = "Progress"; Gtk.CellRendererPixbuf priorityCell = new CellRendererPixbuf (); Gtk.CellRendererText filenameCell = new CellRendererText (); Gtk.CellRendererProgress progressCell = new CellRendererProgress (); priorityColumn.PackStart (priorityCell, true); filenameColumn.PackStart (filenameCell, true); progressColumn.PackStart(progressCell, true); priorityColumn.SetCellDataFunc (priorityCell, new Gtk.TreeCellDataFunc (RenderPriority)); filenameColumn.SetCellDataFunc (filenameCell, new Gtk.TreeCellDataFunc (RenderFilename)); progressColumn.SetCellDataFunc (progressCell, new Gtk.TreeCellDataFunc (RenderProgress)); AppendColumn (priorityColumn); AppendColumn (filenameColumn); AppendColumn (progressColumn); }
private void peersTreeView_ProgressFunc(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) { IFileTransferPeer peer = (IFileTransferPeer)model.GetValue(iter, 0); CellRendererProgress progressCell = (CellRendererProgress)cell; if (peer.Progress > int.MinValue && peer.Progress < int.MaxValue) { progressCell.Value = Convert.ToInt32(peer.Progress); progressCell.Text = $"{progressCell.Value}%"; } else { progressCell.Value = 0; progressCell.Text = "Unknown"; } }
public MultiTaskProgressDialog(bool allowCancel, bool showDetails, IDictionary <string, string> taskLabelAliases) { DispatchService.AssertGuiThread(); this.Build(); this.allowCancel = allowCancel; this.taskLabelAliases = taskLabelAliases; detailsScroll.Visible = showDetails; buttonCancel.Visible = allowCancel; buttonClose.Sensitive = false; progressTreeView.Model = statusStore; progressTreeView.HeadersVisible = false; textRenderer = new CellRendererText(); textRenderer.WrapMode = Pango.WrapMode.WordChar; TreeViewColumn textColumn = new TreeViewColumn("Task", textRenderer, "markup", STORE_TaskLabel); textColumn.MinWidth = 292; // total width 400 with progressColumn width progressTreeView.AppendColumn(textColumn); progressRenderer = new CellRendererProgress(); progressRenderer.Xpad = 4; progressRenderer.Ypad = 4; TreeViewColumn progressColumn = new TreeViewColumn("Progress", progressRenderer, "value", STORE_TaskProgress); progressColumn.MinWidth = 108; // 1 pixel per step, plus padding progressTreeView.AppendColumn(progressColumn); buffer = detailsTextView.Buffer; bold = new TextTag("bold"); bold.Weight = Pango.Weight.Bold; buffer.TagTable.Add(bold); tag = new TextTag("0"); tag.Indent = 10; buffer.TagTable.Add(tag); tags.Add(tag); int w, h; GetSize(out w, out h); Resize(w, 1); }
private void TransferProgressFunc(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) { IFileTransfer transfer = (IFileTransfer)model.GetValue(iter, 0); CellRendererProgress progressCell = (CellRendererProgress)cell; if (transfer.Progress >= 0) { progressCell.Value = Convert.ToInt32(transfer.Progress); progressCell.Visible = true; } else { progressCell.Value = 0; progressCell.Visible = false; } progressCell.Text = String.Format("{0}%", progressCell.Value); }
public MultiTaskProgressDialog (bool allowCancel, bool showDetails, IDictionary<string, string> taskLabelAliases) { DispatchService.AssertGuiThread (); this.Build(); this.allowCancel = allowCancel; this.taskLabelAliases = taskLabelAliases; detailsScroll.Visible = showDetails; buttonCancel.Visible = allowCancel; buttonClose.Sensitive = false; progressTreeView.Model = statusStore; progressTreeView.HeadersVisible = false; textRenderer = new CellRendererText (); textRenderer.WrapMode = Pango.WrapMode.WordChar; TreeViewColumn textColumn = new TreeViewColumn ("Task", textRenderer, "markup", STORE_TaskLabel); textColumn.MinWidth = 292; // total width 400 with progressColumn width progressTreeView.AppendColumn (textColumn); progressRenderer = new CellRendererProgress (); progressRenderer.Xpad = 4; progressRenderer.Ypad = 4; TreeViewColumn progressColumn = new TreeViewColumn ("Progress", progressRenderer, "value", STORE_TaskProgress); progressColumn.MinWidth = 108; // 1 pixel per step, plus padding progressTreeView.AppendColumn (progressColumn); buffer = detailsTextView.Buffer; bold = new TextTag ("bold"); bold.Weight = Pango.Weight.Bold; buffer.TagTable.Add (bold); tag = new TextTag ("0"); tag.Indent = 10; buffer.TagTable.Add (tag); tags.Add (tag); int w,h; GetSize (out w, out h); Resize (w, 1); }
/// <summary> /// 添加任务状态列表,列头信息 /// </summary> /// <param name="tv">Tv.</param> private void addColumnsForTheTaskStateList(TreeView tv) { Gtk.TreeViewColumn idColumn = new Gtk.TreeViewColumn(); idColumn.Title = "Task ID"; idColumn.Sizing = TreeViewColumnSizing.Fixed; idColumn.FixedWidth = 70; var idCell = new CellRendererText(); idColumn.PackStart(idCell, true); // Create a column for the song title Gtk.TreeViewColumn progressColumn = new Gtk.TreeViewColumn(); progressColumn.Title = "Progress Rate"; progressColumn.Sizing = TreeViewColumnSizing.Fixed; progressColumn.FixedWidth = 600; var progressCell = new CellRendererProgress(); progressColumn.PackStart(progressCell, true); Gtk.TreeViewColumn msColumn = new Gtk.TreeViewColumn(); msColumn.Title = "Delay (ms)"; var msCell = new CellRendererText(); msColumn.PackStart(msCell, true); // Add the columns to the TreeView tv.AppendColumn(idColumn); tv.AppendColumn(progressColumn); tv.AppendColumn(msColumn); idColumn.AddAttribute(idCell, "text", 0); progressColumn.AddAttribute(progressCell, "value", 1); msColumn.AddAttribute(msCell, "text", 2); // Create a model that will hold two strings - Artist Name and Song Title ListStore = new Gtk.ListStore(typeof(string), typeof(int), typeof(string)); // Assign the model to the TreeView tv.Model = ListStore; }
private void AddColumns(TreeView treeView) { { var column = new TreeViewColumn(); var cell = new CellRendererText(); cell.Editable = true; cell.Edited += this.TextStringEdited; column.Title = Column.TextString.GetDescription(); column.PackStart(cell, true); column.AddAttribute(cell, "text", (int)Column.TextString); this.treeview1.AppendColumn(column); } { var column = new TreeViewColumn(); var cell = new CellRendererText(); cell.Editable = true; cell.Edited += this.TextDoubleEdited; column.Title = Column.TextDouble.GetDescription(); column.PackStart(cell, true); column.AddAttribute(cell, "text", (int)Column.TextDouble); this.treeview1.AppendColumn(column); } { var column = new TreeViewColumn(); var cell = new CellRendererText(); column.Title = Column.TextBool.GetDescription(); column.PackStart(cell, true); column.AddAttribute(cell, "text", (int)Column.TextBool); this.treeview1.AppendColumn(column); } { var column = new TreeViewColumn(); var cell = new CellRendererToggle(); cell.Toggled += this.ToggleCheckBoxToggled; cell.Active = true; cell.Activatable = true; column.Title = Column.ToggleCheckBox.GetDescription(); column.PackStart(cell, true); column.AddAttribute(cell, "active", (int)Column.ToggleCheckBox); this.treeview1.AppendColumn(column); } { var column = new TreeViewColumn(); var cell = new CellRendererToggle(); cell.Toggled += this.ToggleRadioButtonToggled; cell.Active = true; cell.Activatable = true; cell.Radio = true; column.Title = Column.ToggleRadioButton.GetDescription(); column.PackStart(cell, true); column.AddAttribute(cell, "active", (int)Column.ToggleRadioButton); this.treeview1.AppendColumn(column); } { // Note: the text in this renderer has to be parseable as a floating point number var column = new TreeViewColumn(); var cell = new CellRendererSpin(); cell.Editable = true; cell.Edited += this.SpinTest1Edited; // Adjustment - Contains the range information for the cell. // Value: Must be non-null for the cell to be editable. cell.Adjustment = new Adjustment(0, 0, float.MaxValue, 1, 2, 0); // ClimbRate - Provides the acceleration rate for when the button is held down. // Value: Defaults to 0, must be greater than or equal to 0. cell.ClimbRate = 0; // Digits - Number of decimal places to display (seems to only work while editing the cell?!?). // Value: An integer between 0 and 20, default value is 0. cell.Digits = 3; column.Title = Column.Spin.GetDescription(); column.PackStart(cell, true); column.AddAttribute(cell, "text", (int)Column.Spin); this.treeview1.AppendColumn(column); } { ListStore model = new ListStore(typeof(string)); model.AppendValues("Value1"); model.AppendValues("Value2"); model.AppendValues("Value3"); var column = new TreeViewColumn(); var cell = new CellRendererCombo(); cell.Width = 75; cell.Editable = true; cell.Edited += this.ComboEdited; // bool. Whether to use an entry. // If true, the cell renderer will include an entry and allow to // enter values other than the ones in the popup list. cell.HasEntry = true; // TreeModel. Holds a tree model containing the possible values for the combo box. // Use the CellRendererCombo.TextColumn property to specify the column holding the values. cell.Model = model; // int. Specifies the model column which holds the possible values for the combo box. // Note: this refers to the model specified in the model property, not the model // backing the tree view to which this cell renderer is attached. cell.TextColumn = 0; column.Title = Column.Combo.GetDescription(); column.PackStart(cell, true); column.AddAttribute(cell, "text", (int)Column.Combo); this.treeview1.AppendColumn(column); } { var column = new TreeViewColumn(); var cell = new CellRendererAccel(); cell.AccelMode = CellRendererAccelMode.Other; cell.Editable = true; cell.AccelEdited += new AccelEditedHandler(this.OnAccelEdited); cell.AccelCleared += new AccelClearedHandler(this.OnAccelCleared); column.Title = Column.Accel.ToString(); column.PackStart(cell, true); column.AddAttribute(cell, "text", (int)Column.Accel); this.treeview1.AppendColumn(column); } { var column = new TreeViewColumn(); var cell = new CellRendererProgress(); column.Title = Column.Progress.GetDescription(); column.PackStart(cell, true); column.AddAttribute(cell, "text", (int)Column.ProgressText); column.AddAttribute(cell, "value", (int)Column.Progress); this.treeview1.AppendColumn(column); } { var column = new TreeViewColumn(); var cell = new CellRendererText(); column.Title = Column.PixbufStockLabel.GetDescription(); column.PackStart(cell, true); column.AddAttribute(cell, "text", (int)Column.PixbufStockLabel); treeview1.AppendColumn(column); } { var column = new TreeViewColumn(); var cell = new CellRendererPixbuf(); column.Title = Column.PixbufStockIcon.GetDescription(); column.PackStart(cell, true); column.AddAttribute(cell, "stock-id", (int)Column.PixbufStockIcon); treeview1.AppendColumn(column); } { var column = new TreeViewColumn(); var cell = new CellRendererPixbuf(); column.Title = Column.PixbufCustom.GetDescription(); column.PackStart(cell, true); column.AddAttribute(cell, "pixbuf", (int)Column.PixbufCustom); treeview1.AppendColumn(column); } }
private void BuildColumns() { priorityColumn = new TreeViewColumn (); filenameColumn = new TreeViewColumn (); progressColumn = new TreeViewColumn (); filenameColumn.Resizable = true; priorityColumn.Title = ""; filenameColumn.Title = _("Filename"); progressColumn.Title = _("Progress"); Gtk.CellRendererPixbuf priorityCell = new CellRendererPixbuf (); Gtk.CellRendererText filenameCell = new CellRendererText (); Gtk.CellRendererProgress progressCell = new CellRendererProgress (); priorityColumn.PackStart (priorityCell, true); priorityColumn.SetAttributes (priorityCell, "pixbuf", 2); filenameColumn.PackStart (filenameCell, true); filenameColumn.SetAttributes (filenameCell, "text", 3); progressColumn.PackStart(progressCell, true); progressColumn.SetCellDataFunc (progressCell, new Gtk.TreeCellDataFunc (RenderProgress)); AppendColumn (priorityColumn); AppendColumn (filenameColumn); AppendColumn (progressColumn); }
private ScrolledWindow CreateTreeView(ColumnDesc[] columnDescs, object[,] data, int height) { var treeView = new TreeView(); for (int i = 0; i < columnDescs.Length; i++) { var desc = columnDescs[i]; var renderer = (CellRenderer)null; var attr = "text"; switch (desc.Type) { case ColumnType.Label: { var textRenderer = new CellRendererText(); renderer = textRenderer; break; } case ColumnType.CheckBox: { var toggleRenderer = new CellRendererToggle(); toggleRenderer.Toggled += ToggleRenderer_Toggled; renderer = toggleRenderer; attr = "active"; break; } case ColumnType.DropDown: { var comboRenderer = new CellRendererCombo(); var listStore = new ListStore(typeof(string)); for (int j = 0; j < desc.DropDownValues.Length; j++) { listStore.AppendValues(desc.DropDownValues[j]); } comboRenderer.Editable = true; comboRenderer.HasEntry = false; comboRenderer.Model = listStore; comboRenderer.Edited += ComboRenderer_Edited; comboRenderer.TextColumn = 0; renderer = comboRenderer; break; } case ColumnType.Slider: { // TODO : Right now, we dont apply the formatting. To support // this we will need to add an extra string column to our model, // update it with the formatting and tell the renderer to use // that volum as the "text" attribute. Or create our own cell // renderer that supports formatting. var sliderRenderer = new CellRendererProgress(); attr = "value"; renderer = sliderRenderer; break; } case ColumnType.Button: { var buttonRenderer = new CellRendererButton(); renderer = buttonRenderer; break; } } renderer.Data[0] = treeView; var column = new TreeViewColumn(columnDescs[i].Name, renderer, attr, i); column.SortColumnId = -1; // Disable sorting treeView.AppendColumn(column); } if (data == null) { data = new string[0, 0]; } treeView.Model = CreateListStoreFromData(columnDescs, data); treeView.EnableGridLines = TreeViewGridLines.Both; treeView.ButtonPressEvent += TreeView_ButtonPressEvent; treeView.ButtonReleaseEvent += TreeView_ButtonReleaseEvent; treeView.Selection.Mode = SelectionMode.Single; treeView.Realized += TreeView_Realized; treeView.SizeAllocated += TreeView_SizeAllocated; treeView.Show(); treeView.Events |= EventMask.PointerMotionMask; treeView.MotionNotifyEvent += TreeView_MotionNotifyEvent; var scroll = new ScrolledWindow(null, null); scroll.HscrollbarPolicy = PolicyType.Never; scroll.VscrollbarPolicy = PolicyType.Automatic; scroll.HeightRequest = GtkUtils.ScaleGtkWidget(height); scroll.ShadowType = ShadowType.EtchedIn; scroll.Add(treeView); return(scroll); }