protected DeletableRow(T source, ObservableCollection <T> sourceCollection) { Source = source; SourceCollection = sourceCollection; Padding = new Thickness(AttachmentMetrics.Spacing); Header = new Widget { Layout = new HBoxLayout { Spacing = AttachmentMetrics.Spacing }, }; var headerWrapper = new Widget { Layout = new HBoxLayout { Spacing = AttachmentMetrics.Spacing }, }; deleteButton = new ThemedDeleteButton { Anchors = Anchors.Right, LayoutCell = new LayoutCell(Alignment.LeftTop), }; deleteButton.Clicked += () => history.DoTransaction(() => Core.Operations.RemoveFromList.Perform(sourceCollection, sourceCollection.IndexOf(Source))); headerWrapper.Nodes.Add(Header); headerWrapper.Nodes.Add(new Widget()); headerWrapper.Nodes.Add(deleteButton); MinMaxHeight = AttachmentMetrics.RowHeight; Nodes.Add(headerWrapper); Presenter = Presenters.StripePresenter; }
public RulerRowView(Ruler ruler, Action onDelete, Action onEdit) { ThemedDeleteButton deleteButton; ThemedSimpleText label; Layout = new HBoxLayout(); Nodes.Add(label = new ThemedSimpleText { Padding = new Thickness { Left = 10 }, }); this.AddChangeWatcher(() => ruler.Name, (name) => label.Text = name); Nodes.Add(new Widget()); Nodes.Add(editButton = new ToolbarButton() { Anchors = Anchors.Right, LayoutCell = new LayoutCell(Alignment.LeftTop), Texture = IconPool.GetTexture("Tools.Edit"), Highlightable = false, }); Nodes.Add(deleteButton = new ThemedDeleteButton { Anchors = Anchors.Right, LayoutCell = new LayoutCell(Alignment.LeftTop) }); deleteButton.Clicked = onDelete; editButton.Clicked = onEdit; MinMaxHeight = RowHeight; }
private Widget CreateDefaultKeyValueEditor(string key, TValue value) { var keyValue = new KeyValuePair { Key = key, Value = value, }; pairs.Add(keyValue); Widget keyEditorContainer; var deleteButton = new ThemedDeleteButton(); var container = new Widget { Layout = new VBoxLayout(), Nodes = { (keyEditorContainer = CreateKeyEditor(EditorParams, keyValue, s => SetKey(keyValue, s), deleteButton)), (CreateValueEditor(EditorParams, keyValue, populateEditors, (o, name, v) => SetValue(keyValue, (TValue)v))), } }; keyEditorContainer.Tasks.AddLoop(() => { if (dictionary.TryGetValue(keyValue.Key, out value)) { keyValue.Value = value; } else { Rebuild(); } }); deleteButton.Clicked += () => { pairs.Remove(keyValue); using (Document.Current.History.BeginTransaction()) { RemoveFromDictionary <TDictionary, string, TValue> .Perform(dictionary, keyValue.Key); Document.Current.History.CommitTransaction(); } container.UnlinkAndDispose(); }; container.CompoundPresenter.Add(new WidgetFlatFillPresenter( pairs.Count % 2 == 0 ? ColorTheme.Current.Inspector.StripeBackground1 : ColorTheme.Current.Inspector.StripeBackground2 ) { IgnorePadding = true }); return(container); }
public RulerRowView(RulerData overlay, IList <RulerData> overlays) : base() { Layout = new HBoxLayout(); Nodes.Add(Label = new ThemedSimpleText { Padding = new Thickness { Left = 10 }, }); this.AddChangeWatcher(() => overlay.Name, (name) => Label.Text = name); Nodes.Add(new Widget()); Nodes.Add(deleteButton = new ThemedDeleteButton { Anchors = Anchors.Right, LayoutCell = new LayoutCell(Alignment.LeftTop) }); CompoundPresenter.Add(StripePresenter); deleteButton.Clicked = () => overlays.Remove(overlay); MinMaxHeight = 20; }