public void ViewsHaveMatchingTypeHashCodes() { var text = new Text("Foo").GetContentTypeHashCode(); var text2 = new Text("Bar").GetContentTypeHashCode(); Assert.Equal(text, text2); text = new HStack() { new Text("Foo"), }.GetContentTypeHashCode(); text2 = new HStack() { new Text("Bar"), }.GetContentTypeHashCode(); Assert.Equal(text, text2); text = new HStack() { new Text("Foo"), new Button("Foo"), }.GetContentTypeHashCode(); text2 = new HStack() { new Text("Bar"), new Button("Bar"), }.GetContentTypeHashCode(); Assert.Equal(text, text2); //Not Equal Section text = new HStack() { new Text("Foo"), }.GetContentTypeHashCode(); text2 = new HStack() { new Button("Bar"), }.GetContentTypeHashCode(); Assert.NotEqual(text, text2); text = new HStack() { new Text("Foo"), }.GetContentTypeHashCode(); text2 = new VStack() { new Button("Foo"), }.GetContentTypeHashCode(); Assert.NotEqual(text, text2); }
private static View CreateConfigurationControls(ITrackParameters trackParameters, IEnumerable <ILayerRenderer> layers) { var layersGroup = new VStack(); foreach (ILayerRenderer layer in layers) { layersGroup.Add(new ToggleButton(layer.Name, layer.Enabled, () => layer.Enabled = !layer.Enabled)); } #pragma warning disable CA2000 // Dispose objects before losing scope layersGroup.Add(new VStack() { GetConfigurationControl(trackParameters, nameof(trackParameters.CellSize)), GetConfigurationControl(trackParameters, nameof(trackParameters.NumPlanks)), GetConfigurationControl(trackParameters, nameof(trackParameters.NumCornerPlanks)), GetConfigurationControl(trackParameters, nameof(trackParameters.PlankWidth)), GetConfigurationControl(trackParameters, nameof(trackParameters.PlankPadding)), GetConfigurationControl(trackParameters, nameof(trackParameters.TrackPadding)), GetConfigurationControl(trackParameters, nameof(trackParameters.TrackWidth)), GetConfigurationControl(trackParameters, nameof(trackParameters.CornerStepDegrees)), GetConfigurationControl(trackParameters, nameof(trackParameters.CornerEdgeOffsetDegrees)) }.Margin(top: 50) #pragma warning restore CA2000 // Dispose objects before losing scope ); return(layersGroup); }
View body() { var view = new VStack() { new BorderedEntry(newItem, "Task Name").FillHorizontal().Padding(6), new Button("Add", () => { if (string.IsNullOrWhiteSpace(newItem.Value)) { errorIsVisible.Value = true; return; } items.Add(new TodoItem { Name = newItem.Value }); isAdding.Value = false; }), new Button("Cancel", () => { isAdding.Value = false; }), new Text("Name cannot be empty").Color(errorIsVisible ? Color.Red : Color.Transparent) }; return(view); }
public void Test_Min() { var stack = new VStack <int>(); stack.Push(2); stack.Push(3); stack.Push(1); stack.Push(4); Assert.Equal(1, stack.Min()); }
private static View CreateConfigurationControls(IEnumerable <ILayerRenderer> layers) { var layersGroup = new VStack(); foreach (ILayerRenderer layer in layers) { layersGroup.Add(new ToggleButton(layer.Name, layer.Enabled, () => layer.Enabled = !layer.Enabled)); } return(layersGroup); }
private static View CreateCommandControls(IEnumerable <ICommand> commands) { var controlsGroup = new VStack(); foreach (ICommand cmd in commands) { controlsGroup.Add(new Button(cmd.Name, () => cmd.Execute())); } return(controlsGroup); }
public void BindingMultipleLabelsUpdatesBoth() { TextField textField = null; Text text = null; VStack stack = null; var view = new StatePage(); view.text.Value = "Hello"; int buildCount = 0; view.Body = () => { buildCount++; textField = new TextField(view.text, "Placeholder"); text = new Text(view.text.Value); stack = new VStack { textField, text }; //text = new Text ($"{view.text.Value} - {view.clickCount.Value}"); return(stack); }; var viewHandler = new GenericViewHandler(); view.ViewHandler = viewHandler; var stackHandler = new GenericViewHandler(); stack.ViewHandler = stackHandler; var textFieldHandler = new GenericViewHandler(); textField.ViewHandler = textFieldHandler; var textHandler = new GenericViewHandler(); text.ViewHandler = textHandler; view.text.Value = "Good bye"; const string tfValue = nameof(TextField.Text); const string tValue = nameof(Text.Value); Assert.True(textFieldHandler.ChangedProperties.ContainsKey(tfValue), "TextField Value didnt change"); Assert.True(textHandler.ChangedProperties.ContainsKey(tValue), "Text Value didnt change"); var text1Value = textFieldHandler.ChangedProperties [tfValue]; var text2Value = textHandler.ChangedProperties [tValue]; Assert.Equal(text1Value, text2Value); }
public void Test_Push() { var stack = new VStack <int>(3); stack.Push(0); stack.Push(1); stack.Push(2); stack.Push(3); stack.Push(4); stack.Push(5); Assert.Equal(5, stack.Count()); }
View body() { var stack = new VStack { new Button (() => myBoolean.Value ? myText.Value : $"State: {myBoolean.Value}", () => myBoolean.Value = !myBoolean.Value), }; for (var i = 0; i < 100; i++) { stack.Add(new Text(i.ToString())); } return(new ScrollView { stack }); }
public void Test_Pop() { var stack = new VStack <int>(3); stack.Push(0); stack.Push(1); stack.Push(2); Assert.Equal(2, stack.Pop()); Assert.Equal(1, stack.Pop()); stack.Push(3); stack.Push(4); stack.Push(5); Assert.Equal(5, stack.Pop()); Assert.Equal(4, stack.Pop()); Assert.Equal(3, stack.Pop()); Assert.Equal(0, stack.Pop()); Assert.Throws <IndexOutOfRangeException>(() => stack.Pop()); }
protected void UpdateChildren(VStack stack) { var children = stack.GetChildren(); if (views.Count == children.Count) { bool areSame = false; for (var i = 0; i < views.Count; i++) { var v = views[i]; var c = children[i].ToView(); areSame = c == v; if (!areSame) { break; } } if (areSame) { return; } } foreach (var v in views) { base.RemoveView(v); } views.Clear(); foreach (var child in children) { var cview = child.ToView(); if (cview != null) { views.Add(cview); base.AddView(cview); } } }
View body() { var stack = new VStack { }; //.Frame(alignment:Alignment.Top); if (report.HandledProperties.Count > 0) { stack.Add(new Text("Handled Properties").FontSize(30)); foreach (var prop in report.HandledProperties) { stack.Add(new Text(prop).Color(Colors.Green)); } } if (report.UnHandledProperties.Count > 0) { stack.Add(new Text("UnHandled Properties!").FontSize(30)); foreach (var prop in report.UnHandledProperties) { stack.Add(new Text(prop).Color(Colors.Red)); } } return(stack); }
public MainPage(IGame game, IPixelMapper pixelMapper, IEnumerable <ITool> tools) { HotReloadHelper.Register(this, game); this.Title("Trains.NET"); this.Body = () => { var controlsPanel = new VStack(); var controlDelegate = new TrainsDelegate(game, pixelMapper); foreach (ITool tool in tools) { controlsPanel.Add(new Button(tool.Name, () => controlDelegate.CurrentTool = tool)); } return(new HStack() { controlsPanel.Frame(100), new DrawableControl(controlDelegate).FillVertical() }.FillHorizontal()); }; }
public void SetView(View view) { stack = view as VStack; UpdateChildren(stack); stack.ChildrenChanged += Stack_ChildrenChanged; }