public void Fill(IEnumerable <RunConfiguration> configurations) { var currentRow = list.SelectedRow; listStore.Clear(); foreach (var c in configurations) { var r = listStore.AddRow(); var txt = "<b>" + c.Name + "</b>\n" + c.Summary; var icon = !string.IsNullOrEmpty(c.IconId) ? ImageService.GetIcon(c.IconId) : ImageService.GetIcon("md-prefs-play", Gtk.IconSize.Dnd); listStore.SetValues(r, configCol, c, configNameCol, txt, configIconCol, icon, accessibleCol, c.Name + " " + c.Summary); } if (currentRow != -1) { if (currentRow < listStore.RowCount) { list.SelectRow(currentRow); } else { list.SelectRow(listStore.RowCount - 1); } } else if (listStore.RowCount > 0) { list.SelectRow(0); } }
public ListView1 () { PackStart (new Label ("The listview should have a red background")); ListView list = new ListView (); list.GridLinesVisible = GridLines.Both; ListStore store = new ListStore (name, icon, text, icon2, progress); list.DataSource = store; list.Columns.Add ("Name", icon, name); list.Columns.Add ("Text", icon2, text); list.Columns.Add ("Progress", new TextCellView () { TextField = text }, new CustomCell () { ValueField = progress }); var png = Image.FromResource (typeof(App), "class.png"); Random rand = new Random (); for (int n=0; n<100; n++) { var r = store.AddRow (); store.SetValue (r, icon, png); store.SetValue (r, name, "Value " + n); store.SetValue (r, icon2, png); store.SetValue (r, text, "Text " + n); store.SetValue (r, progress, new CellData { Value = rand.Next () % 100 }); } PackStart (list, true); list.RowActivated += delegate(object sender, ListViewRowEventArgs e) { MessageDialog.ShowMessage ("Row " + e.RowIndex + " activated"); }; Menu contextMenu = new Menu (); contextMenu.Items.Add (new MenuItem ("Test menu")); list.ButtonPressed += delegate(object sender, ButtonEventArgs e) { int row = list.GetRowAtPosition(new Point(e.X, e.Y)); if (e.Button == PointerButton.Right && row >= 0) { // Set actual row to selected list.SelectRow(row); contextMenu.Popup(list, e.X, e.Y); } }; var but = new Button ("Scroll one line"); but.Clicked += delegate { list.VerticalScrollControl.Value += list.VerticalScrollControl.StepIncrement; }; PackStart (but); var spnValue = new SpinButton (); spnValue.MinimumValue = 0; spnValue.MaximumValue = 99; spnValue.IncrementValue = 1; spnValue.Digits = 0; var btnScroll = new Button ("Go!"); btnScroll.Clicked += (sender, e) => list.ScrollToRow((int)spnValue.Value); HBox scrollActBox = new HBox (); scrollActBox.PackStart (new Label("Scroll to Value: ")); scrollActBox.PackStart (spnValue); scrollActBox.PackStart (btnScroll); PackStart (scrollActBox); }
void UpdateFaceList(Font font) { storeFace.Clear(); int row = -1; foreach (var face in font.GetAvailableFontFaces()) { row = storeFace.AddRow(); storeFace.SetValues(row, dfaceName, face.Name, dfaceFont, face.Font, dfaceMarkup, "<span font=\"" + face.Font.WithSize(listFace.Font.Size) + "\">" + face.Name + "</span>"); } if (row >= 0) { listFace.SelectRow(0); } listFace.QueueForReallocate(); }
public override Xwt.Widget Makeup(IXwtWrapper Parent) { Xwt.ListView Target = new Xwt.ListView() { BorderVisible = this.BorderVisible, HeadersVisible = this.HeadersVisible, SelectionMode = this.SelectionMode, VerticalScrollPolicy = this.VScrollPolicy, HorizontalScrollPolicy = this.HScrollPolicy }; if (this.Source != "") { IListDataSource Source = (IListDataSource)Parent.GetType().GetField(this.Source).GetValue(Parent); Target.DataSource = Source; Type BackgroundType = (Source).GetType().GetGenericArguments()[0]; if (ColumnDefinition != null && ColumnDefinition.Count() > 0) { foreach (XwtColumnDefinitionNode N in ColumnDefinition) { IDataField X = DataField.GenerateDataField(N.Source, BackgroundType); ListViewColumn C = new ListViewColumn(N.Title, CellViewFactory.Make(X, N.Editable)) { SortDataField = X, SortIndicatorVisible = N.Sortable, CanResize = N.Resizable }; Target.Columns.Add(C); } } } if (Target.DataSource != null && Target.DataSource.RowCount > 0) Target.SelectRow(this.Selection); WindowController.TryAttachEvent(Target, "SelectionChanged", Parent, Changed); WindowController.TryAttachEvent(Target, "RowActivated", Parent, Clicked); InitWidget(Target, Parent); return Target; }