예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
		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);
		}
예제 #5
0
        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";
            }
        }
예제 #6
0
        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);
        }
예제 #7
0
        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);
        }
예제 #8
0
		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);
		}
예제 #9
0
        /// <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;
        }
예제 #10
0
    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);
        }
    }
예제 #11
0
        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);
        }
예제 #12
0
        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);
        }