public ListBoxSample () { // Default list box ListBox list = new ListBox (); for (int n=0; n<100; n++) list.Items.Add ("Value " + n); PackStart (list, true); // Custom list box ListBox customList = new ListBox (); customList.GridLinesVisible = true; ListStore store = new ListStore (name, icon); customList.DataSource = store; customList.Views.Add (new ImageCellView (icon)); customList.Views.Add (new TextCellView (name)); var png = Image.FromResource (typeof(App), "class.png"); for (int n=0; n<100; n++) { var r = store.AddRow (); store.SetValue (r, icon, png); store.SetValue (r, name, "Value " + n); } PackStart (customList, true); 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) => customList.ScrollToRow((int)spnValue.Value); HBox scrollActBox = new HBox (); scrollActBox.PackStart (new Label("Scroll to Value: ")); scrollActBox.PackStart (spnValue); scrollActBox.PackStart (btnScroll); PackStart (scrollActBox); }
public ListBoxSample() { // Default list box ListBox list = new ListBox(); for (int n = 0; n < 100; n++) list.Items.Add("Value " + n); list.KeyPressed += (sender, e) => { if (e.Key == Key.Insert) { int r = list.SelectedRow + 1; list.Items.Insert(r, "Value " + list.Items.Count + 1); list.ScrollToRow(r); list.SelectRow(r); list.FocusedRow = r; } }; PackStart(list, true); // Custom list box ListBox customList = new ListBox(); customList.GridLinesVisible = true; ListStore store = new ListStore(name, icon); customList.DataSource = store; customList.Views.Add(new ImageCellView(icon)); customList.Views.Add(new TextCellView(name)); var png = Image.FromResource(typeof(Application), "class.png"); for (int n = 0; n < 100; n++) { var r = store.AddRow(); store.SetValue(r, icon, png); store.SetValue(r, name, "Value " + n); } customList.KeyPressed += (sender, e) => { if (e.Key == Key.Insert) { var r = store.InsertRowAfter(customList.SelectedRow < 0 ? 0 : customList.SelectedRow); store.SetValue(r, icon, png); store.SetValue(r, name, "Value " + (store.RowCount + 1)); customList.ScrollToRow(r); customList.SelectRow(r); customList.FocusedRow = r; } }; PackStart(customList, true); 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) => customList.ScrollToRow((int)spnValue.Value); HBox scrollActBox = new HBox(); scrollActBox.PackStart(new Label("Scroll to Value: ")); scrollActBox.PackStart(spnValue); scrollActBox.PackStart(btnScroll); PackStart(scrollActBox); }
public DefaultFontSelectorBackend() { families = Font.AvailableFontFamilies.ToList(); families.Sort(); storeFonts = new ListStore(dfamily, dfamilymarkup); listFonts.DataSource = storeFonts; listFonts.HeadersVisible = false; listFonts.Columns.Add("Font", new TextCellView() { TextField = dfamily, MarkupField = dfamilymarkup }); listFonts.MinWidth = 150; foreach (var family in families) { var row = storeFonts.AddRow(); storeFonts.SetValues(row, dfamily, family, dfamilymarkup, "<span font=\"" + family + " " + (listFonts.Font.Size) + "\">" + family + "</span>"); } storeFace = new ListStore(dfaceName, dfaceMarkup, dfaceFont); listFace.DataSource = storeFace; listFace.HeadersVisible = false; listFace.Columns.Add("Style", new TextCellView() { TextField = dfaceName, MarkupField = dfaceMarkup }); listFace.MinWidth = 60; //listFace.HorizontalScrollPolicy = ScrollPolicy.Never; foreach (var size in DefaultFontSizes) { listSize.Items.Add(size); } spnSize.Digits = 1; spnSize.MinimumValue = 1; spnSize.MaximumValue = 800; spnSize.IncrementValue = 1; PreviewText = "The quick brown fox jumps over the lazy dog."; spnSize.ValueChanged += (sender, e) => { if (DefaultFontSizes.Contains(spnSize.Value)) { var row = Array.IndexOf(DefaultFontSizes, spnSize.Value); listSize.ScrollToRow(row); listSize.SelectRow(row); } else { listSize.UnselectAll(); } SetFont(selectedFont.WithSize(spnSize.Value)); }; SelectedFont = Font.SystemFont; UpdateFaceList(selectedFont); // family change not connected at this point, update manually listFonts.SelectionChanged += (sender, e) => { if (listFonts.SelectedRow >= 0) { var newFont = selectedFont.WithFamily(storeFonts.GetValue(listFonts.SelectedRow, dfamily)); UpdateFaceList(newFont); SetFont(newFont); } }; listFace.SelectionChanged += (sender, e) => { if (listFace.SelectedRow >= 0) { SetFont(storeFace.GetValue(listFace.SelectedRow, dfaceFont).WithSize(selectedFont.Size)); } }; listSize.SelectionChanged += (sender, e) => { if (listSize.SelectedRow >= 0 && Math.Abs(DefaultFontSizes [listSize.SelectedRow] - spnSize.Value) > double.Epsilon) { spnSize.Value = DefaultFontSizes[listSize.SelectedRow]; } }; VBox familyBox = new VBox(); familyBox.PackStart(new Label("Font:")); familyBox.PackStart(listFonts, true); VBox styleBox = new VBox(); styleBox.PackStart(new Label("Style:")); styleBox.PackStart(listFace, true); VBox sizeBox = new VBox(); sizeBox.PackStart(new Label("Size:")); sizeBox.PackStart(spnSize); sizeBox.PackStart(listSize, true); HBox fontBox = new HBox(); fontBox.PackStart(familyBox, true); fontBox.PackStart(styleBox, true); fontBox.PackStart(sizeBox); VBox mainBox = new VBox(); mainBox.MinWidth = 350; mainBox.MinHeight = 300; mainBox.PackStart(fontBox, true); mainBox.PackStart(new Label("Preview:")); mainBox.PackStart(previewText); Content = mainBox; }