public void ShowStageDefinitions(Vector3 position) { HideStageDefinitions(); int count = _selectedStageSet.stageDefinitions.Count; Add(_stages = new Layout("StageDefinitionButtons", 4, 1 * (count + 1), 0.25f, 0.1f, count + 1, container)); _stages.SetPosition(position + (Vector3.left * (stageSets.width - 0.5f)) + (Vector3.back * ((count * 0.5f) + (0.25f * 0.5f)))); _stages.Add(new List <RenameableDeletableButton>(RenameableDeletableButton.GetButtons(count, (int index) => new RenameableDeletableButton(GetStageDefinition(index).name, 4, 1, container, fontSize: 20, DeleteStay: (Button b) => { if (Input.GetMouseButtonUp(0)) { _selectedStageSet.Remove(GetStageDefinition(index)); ShowStageDefinitions(position); } }, EndInput: (Field field) => { GetStageDefinition(index).name = field.label.text; field.SetColor(Color.white); }, Enter: (Button button) => button.SetColor(Color.green), Stay: (Button button) => { if (_selectedStageSet != null && Input.GetMouseButtonDown(0)) { selectedStageDefinition = GetStageDefinition(index); HideStageSets(); HideStageDefinitions(); HideStage(); SetStageDefinition(selectedStageDefinition); _editor.testButton.Enable(); _editor.testButton.Show(); ShowStage(); ShowStageSets(); ShowStageEditor(); ShowMissionTimeline(); ShowMissionEditor(); } }, Exit: (Button button) => button.SetColor(Color.white))))); _stages.Add(new Button("Add Stage\nDefinition", 4, 1, container, "AddStageDefinition", fontSize: 20, Enter: (Button button) => button.SetColor(Color.green), Stay: (Button button) => { if (_selectedStageSet != null && Input.GetMouseButtonDown(0)) { ScriptableObjects.Add(StageDefinition.Default(), _selectedStageSet); ShowStageDefinitions(position); } }, Exit: (Button button) => button.SetColor(Color.white)), true); }
public void ShowCampaigns(int index, Vector3 position) { HideCampaigns(); int count = selectedCampaignSet.campaignDefinitions.Count; Add(_campaigns = new Layout("CampaignLayout", 4, count + 1, 0.25f, 0.1f, count + 1, container)); _campaigns.SetPosition(position + (Vector3.left * (campaignSets.width - 0.5f)) + (Vector3.back * ((_campaigns.height * 0.5f) - 0.5f))); _campaigns.Add(new List <RenameableDeletableButton>( RenameableDeletableButton.GetButtons(count, (int capturedIndex) => new RenameableDeletableButton(GetCampaign(capturedIndex).name, 4, 1, container, fontSize: 20, DeleteStay: (Button button) => { if (Input.GetMouseButtonUp(0)) { selectedCampaignSet.Remove(GetCampaign(index)); ShowCampaigns(index, position); ShowCampaignSets(); } }, EndInput: (Field field) => { GetCampaign(capturedIndex).name = field.label.text; field.SetColor(Color.white); }, Enter: (Button button) => button.SetColor(Color.green), Stay: (Button button) => { if (Input.GetMouseButtonDown(0)) { selectedCampaign = GetCampaign(capturedIndex); HideCampaigns(); HideCampaignSets(); ShowCampaignMap(); ShowCampaignSets(); ShowCampaignEditor(); } }, Exit: (Button button) => button.SetColor(Color.white))))); _campaigns.Add(new Button("New Campaign", 4, 1, container, "NewCampaign", fontSize: 20, Enter: (Button button) => button.SetColor(Color.green), Stay: (Button button) => { if (Input.GetMouseButtonDown(0)) { ScriptableObjects.Add(CampaignDefinition.Default(), selectedCampaignSet); ShowCampaigns(index, position); } }, Exit: (Button button) => button.SetColor(Color.white)), true); }
public void AddTwoZones() { Layout layout = new Layout(); Zone zone1 = new Zone(); Zone zone2 = new Zone(); layout.Add(zone1); layout.Add(zone2); Assert.True(layout.Zones.Count == 2 && layout.Zones.Contains(zone1) && layout.Zones.Contains(zone2)); }
public void PassLayoutWithTwoZones() { Layout originalLayout = new Layout(); Zone zoneA = new Zone(); Zone zoneB = new Zone(); originalLayout.Add(zoneA); originalLayout.Add(zoneB); Layout passedLayout = PassValueToScript(originalLayout); Assert.IsTrue(passedLayout.Zones.Find(x => x.id == zoneA.id) != null); Assert.IsTrue(passedLayout.Zones.Find(x => x.id == zoneB.id) != null); }
private void ShowWaveDefinitions(Vector3 position, float width = 4, float height = 1, float padding = 0.25f, float spacing = 0.1f) { HideWaveDefinitions(); int count = selectedWaveSet.waveDefinitions.Count; Add(_waveDefinitionLayout = new Layout("WaveDefinitionButtons", width, height * (count + 1), padding, spacing, count + 1, container)); _waveDefinitionLayout.SetPosition(position + (Vector3.right * width) + (Vector3.back * ((count * 0.5f) + (0.25f * 0.5f)))); _waveDefinitionLayout.Add(new List <RenameableDeletableButton>(RenameableDeletableButton.GetButtons(count, (int index) => new RenameableDeletableButton(GetWaveDefinition(index).name, width, height, container, fontSize: 20, DeleteStay: (Button b) => { if (Input.GetMouseButtonUp(0)) { selectedWaveSet.Remove(GetWaveDefinition(index)); ShowWaveDefinitions(position); } }, EndInput: (Field field) => { GetWaveDefinition(index).name = field.label.text; field.SetColor(Color.white); }, Enter: (Button button) => button.SetColor(Color.green), Stay: (Button button) => { if (selectedWaveSet != null && Input.GetMouseButtonDown(0)) { selectedWaveDefinition = selectedWaveSet.waveDefinitions[index]; AddWaveToTimeline(selectedWaveDefinition, _editor.timelineEditor.timelinePosition); ShowWaveEventButtons(); HideWaveDefinitions(); HideWaveSets(); } }, Exit: (Button button) => button.SetColor(Color.white))))); _waveDefinitionLayout.Add(new Button("Add Wave\nDefinition", width, height, container, "AddWaveDefinition", fontSize: 20, Enter: (Button button) => button.SetColor(Color.green), Stay: (Button button) => { if (selectedWaveSet != null && Input.GetMouseButtonDown(0)) { ScriptableObjects.Add(ScriptableObject.CreateInstance <WaveDefinition>(), selectedWaveSet); HideWaveDefinitions(); ShowWaveDefinitions(position); } }, Exit: (Button button) => button.SetColor(Color.white)), true); }
public void AddAndConnectTwoZones() { Layout layout = new Layout(); Zone zone1 = new Zone(); Zone zone2 = new Zone(); layout.Add(zone1); layout.Add(zone2); layout.ConnectZones(zone1, zone2); Assert.True(layout.GetAdjacentZones(zone1).Count == 1 && layout.GetAdjacentZones(zone1).FindByValue(zone2) != null && layout.GetAdjacentZones(zone2).Count == 1 && layout.GetAdjacentZones(zone2).FindByValue(zone1) != null); }
public void PassLayoutWithEndZones() { Layout originalLayout = new Layout(); Zone zoneA = new Zone(); Zone zoneB = new Zone(); originalLayout.Add(zoneA); originalLayout.Add(zoneB); originalLayout.InitialZone = zoneA; originalLayout.FinalZone = zoneB; Layout passedLayout = PassValueToScript(originalLayout); Assert.IsTrue(passedLayout.InitialZone.id == zoneA.id); Assert.IsTrue(passedLayout.FinalZone.id == zoneB.id); }
private void ShowEnemyTypes(Button butt, int index, Vector3 position) { HideEnemyTypes(); int count = (int)Definitions.Enemies.Count; Add(_enemyTypes = new Layout("EnemyTypeLayout", 3, count, 0.25f, 0.1f, count, container)); _enemyTypes.SetPosition(position + (Vector3.right * _enemyTypes.width * 0.5f) + (Vector3.back * _enemyTypes.height * 0.5f)); _enemyTypes.Add(new List <Button>( Button.GetButtons(count, (int capturedIndex) => new Button(((Definitions.Enemies)capturedIndex).ToString(), 3, 1, container, "EnemyType", fontSize: 20, Enter: (Button button) => button.SetColor(Color.green), Stay: (Button button) => { if (Input.GetMouseButtonDown(0)) { HideWaveEventEditor(); _selectedWaveEvent.subType = capturedIndex; ShowWaveEventButtons(); HideEnemyTypes(); } }, Exit: (Button button) => button.SetColor(Color.white), Close: (Button button) => { if (Input.GetMouseButtonDown(0)) { HideEnemyTypes(); } }))), true); }
private void ShowItemLevels(Button butt, int index, Vector3 position) { HideItemLevels(); int count = Definitions.Item((Definitions.Items)_selectedWaveEvent.subType).levels.Count; Add(_itemLevels = new Layout("ItemLevelLayout", 3, count, 0.25f, 0.1f, count, container)); _itemLevels.SetPosition(position + (Vector3.right * _itemLevels.width * 0.5f) + (Vector3.back * _itemLevels.height * 0.5f)); _itemLevels.Add(new List <Button>( Button.GetButtons(count, (int capturedIndex) => new Button("Level " + capturedIndex.ToString(), 3, 1, container, "ItemLevel", fontSize: 20, Enter: (Button button) => button.SetColor(Color.green), Stay: (Button button) => { if (Input.GetMouseButtonDown(0)) { HideWaveEventEditor(); _selectedWaveEvent.level = capturedIndex; ShowWaveEventButtons(); HideItemLevels(); } }, Exit: (Button button) => button.SetColor(Color.white), Close: (Button button) => { if (Input.GetMouseButtonDown(0)) { HideItemLevels(); } }))), true); }
private void ShowColorPicker() { HideColorPicker(); _colorPicker = new Layout("ColorPicker", 4, 1, 0.25f, 0.1f, 1, container); Button colorButton = new Button("Color", 4, 1, container, "ColorButton", fontSize: 20, Stay: (Button butt) => { if (Input.GetMouseButtonDown(0)) { ShowColors(butt.position); } }, Close: (Button butt) => { if (Input.GetMouseButtonDown(0) && (_colors == null || !_colors.containsMouse)) { HideColors(); } }); colorButton.SetColor(_selectedEnemy.levels[_selectedLevel].color); _colorPicker.SetPosition(_enemyEffects.position + (Vector3.back * (((_colorPicker.height + _enemyEffects.height) * 0.5f)))); _colorPicker.Add(colorButton, true); Add(_colorPicker); }
public CityStatusWindow() : base(622, 421, 11, 11) { if (Game.GetActiveCiv.Cities.Count > 12) { bar = new VScrollBar() { Height = 305, Value = 0, Maximum = Game.GetActiveCiv.Cities.Count }; bar.ValueChanged += (_, _) => { barVal0 = bar.Value; Surface.Invalidate(); }; Layout.Add(bar, 592, 79); } barVal0 = bar is null ? 0 : bar.Value; KeyDown += (sender, args) => { if (args.Key is Keys.Escape) { Close(); } }; var btn = new Civ2button("Close", 596, 24, new Font("Times new roman", 11)); btn.Click += (_, _) => Close(); Layout.Add(btn, 13, 385); Surface.Paint += Surface_Paint; Content = Layout; }
protected override void CreateControls() { base.CreateControls(); if (DataType.HasDimensions) { Layout.BeginHorizontal(); Layout.Add(new Label { Text = "Width", VerticalAlign = VerticalAlign.Middle }); Layout.BeginVertical(Eto.Drawing.Padding.Empty); Layout.BeginHorizontal(); Layout.Add(WidthControl(), xscale: true); Layout.Add(new Label { Text = "Height", VerticalAlign = VerticalAlign.Middle }); Layout.Add(HeightControl(), xscale: true); Layout.EndHorizontal(); Layout.EndVertical(); Layout.EndHorizontal(); } if (DataType.HasNumberOfColors) { Layout.AddRow(new Label { Text = "Number of Colors", VerticalAlign = VerticalAlign.Middle }, NumberOfColors()); } }
public void ShowEffects(Vector3 position) { HideEffects(); int count = ( int )Definitions.Effects.Count; Add(_effects = new Layout("Effects", 4, count, 0.25f, 0.1f, count, container)); _effects.SetPosition(position + (Vector3.right * _effects.width * 0.5f) + (Vector3.back * _effects.height * 0.5f)); _effects.Add(new List <Button>( Button.GetButtons(count, (int index) => new Button(((Definitions.Effects)index).ToString(), 3, 1, container, "Effect", fontSize: 20, Enter: (Button button) => button.SetColor(button.selected ? button.color : Color.green), Stay: (Button button) => { if (Input.GetMouseButtonDown(0)) { _selectedItem.Add(_selectedLevel, (Definitions.Effects)index); ShowItemEditor(); } }, Exit: (Button button) => button.SetColor(button.selected ? button.color : Color.white), Close: (Button button) => { if (Input.GetMouseButtonDown(0) && (_effects == null || !_effects.containsMouse)) { HideEffects(); } }) )), true); }
public void AddOneZone() { Layout layout = new Layout(); Zone zone = new Zone(); layout.Add(zone); Assert.True(layout.Zones.Contains(zone) && layout.Zones.Count == 1); }
public void ShowTitle() { HideTitle(); _title = new Layout("Title", 20, 10, 0, 0, 1, container); _title.Add(new Label("GAME\nTITLE", Color.black, 10, 5, fontSize: 50)); _title.SetViewportPosition(new Vector2(0.5f, 0.75f)); _title.SetPosition(_title.position + (Vector3.left * _title.width * 0.5f) + (Vector3.forward * _title.height * 0.5f)); }
public TestUIView(ContentManager content) : base(25, 25) { var normal = content.Load <Texture2D>("Images/uiback"); var down = content.Load <Texture2D>("Images/uibackselected"); var font = content.Load <SpriteFont>("Fonts/Bender"); var btn = new Button(normal, down, down) { Font = font, TextColor = Color.White, TextContent = "Test Button" }; var layout1 = new Layout(this, 20, 20) { BorderColor = Color.Black, BorderWidth = 2, }; this.Add(layout1, 2, 2, 10, 10); layout1.Add(btn, 1, 1, 4, 4); var list = new ListControl(font) { BorderColor = Color.Tomato, BorderDisplayed = true, BorderWidth = 2, BackgroundColor = Color.Maroon, Elements = { "Test1", "Test2", "Test3", "Test4", "Test5", "Test6", "Test1", "Test2", "Test3", "Test4", "Test5", "Test6" }, ItemSpan = 30 }; layout1.Add(list, 10, 10, 5, 5); }
public void ShowItemEditor() { HideItemEditor(); Add(_itemEditor = new Layout("ItemEditor", 4, 2, 0.25f, 0.1f, 2, container)); _itemEditor.SetPosition(_items.position + (Vector3.back * _items.height * 0.5f) + Vector3.back); _itemEditor.Add(new List <Element>() { new Label("Value:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter), new Field("Value", _selectedItem.Value(_selectedLevel).ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: (Field field) => { int value; int.TryParse(field.label.text, out value); _selectedItem.SetValue(_selectedLevel, value); field.label.SetText(value.ToString()); //need to implement refresh Refresh(); }), new Label("Damage:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter), new Field("Damage", _selectedItem.Damage(_selectedLevel).ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: (Field field) => { int value; int.TryParse(field.label.text, out value); _selectedItem.SetDamage(_selectedLevel, value); field.label.SetText(value.ToString()); //need to implement refresh Refresh(); }) }, true); int count = _selectedItem.levels[_selectedLevel].effects.Count; Add(_itemEffects = new Layout("ItemEffects", 4, count + 1, 0.25f, 0.1f, count + 1, container)); _itemEffects.SetPosition(_itemEditor.position + (Vector3.back * (((_itemEffects.height + _itemEditor.height) * 0.5f)))); _itemEffects.Add(new List <Button>(Button.GetButtons(count, (int index) => new Button(_selectedItem.levels[_selectedLevel].effects[index].ToString(), 3, 1, container, "Effect", fontSize: 20, Enter: (Button button) => button.SetColor(Color.green), Stay: (Button button) => { if (Input.GetMouseButtonDown(0)) { } }, Exit: (Button button) => button.SetColor(Color.white)))) { new Button("Add Effect", 3, 1, container, "AddEffect", fontSize: 20, Enter: ( Button button ) => button.SetColor(Color.green), Stay: ( Button button ) => { if (Input.GetMouseButtonDown(0)) { ShowEffects(button.position + new Vector3(button.width * 0.5f, 0, button.height * 0.5f)); } }, Exit: ( Button button ) => button.SetColor(Color.white)), }, true); }
/// <summary> /// Adds an item to the menu. /// </summary> /// <param name="text"></param> /// <param name="action"></param> public void Add(string text, Action action) { var item = new ContentMenuItem { Text = text, Name = text }; item.PressAccept += (sender, e) => action(); Layout.Add(item); }
protected override void CreateControls() { base.CreateControls(); Layout.BeginHorizontal(); Layout.Add(new Label { Text = "Binary Width", VerticalAlign = VerticalAlign.Middle }); Layout.Add(WidthControl()); Layout.EndHorizontal(); }
/// <summary>Initializes a new instance of the <see cref="SummaryView"/> class.</summary> public SummaryView(ViewBase owner) : base(owner) { Glade.XML gxml = new Glade.XML("ApsimNG.Resources.Glade.SummaryView.glade", "vbox1"); gxml.Autoconnect(this); _mainWidget = vbox1; combobox1.PackStart(comboRender, false); combobox1.AddAttribute(comboRender, "text", 0); combobox1.Model = comboModel; htmlview = new HTMLView(this); layout1.Add(htmlview.MainWidget); }
public void ShowColors(Vector3 position) { Add(_colors = new Layout("Colors", 4, 2, 0.25f, 0.1f, 2, container)); for (int i = 0; 6 > i; i++) { Color color = Color.clear; switch (i) { case 0: color = Color.blue; break; case 1: color = Color.red; break; case 2: color = Color.green; break; case 3: color = Color.cyan; break; case 4: color = Color.magenta; break; case 5: color = Color.yellow; break; } Button button = new Button(string.Empty, 4, 1, container, "Color", Stay: (Button butt) => { if (Input.GetMouseButtonDown(0)) { _selectedEnemy.SetColor(_selectedLevel, color); ShowColorPicker(); HideColors(); } }); button.SetColor(color); _colors.Add(button); } _colors.SetPosition(position + (Vector3.right * 3.5f) + (Vector3.back * (0.5f + (0.25f * 0.5f)))); _colors.Refresh(); }
/// <summary> /// Lisää uuden kontrollin. /// </summary> /// <param name="control">kontrolli joka lisätään.</param> /// <param name="constraints">kontrollin paikka minne lisätään (jos layout käytössä).</param> public void AddControl(Control control, ILayoutConstraints constraints) { // Ei ole absolute. if (Layout != null) { Layout.Add(controlManager, control, constraints); } else { controlManager.AddControl(control); } }
private void AddZones(Layout layout, Connections[,] layoutArray) { for (int i = 0; i < layoutArray.GetLength(0); i++) { for (int j = 0; j < layoutArray.GetLength(1); j++) { Zone zone = new Zone(); zone.bounds = new RectangleInt(i * zoneWidth, j * zoneHeight, zoneWidth, zoneHeight); layout.Add(zone); } } }
public void InitEmpty() { for (int y = 0; y < 5; y++) { for (int x = 0; x < 5; x++) { Layout.Add(new Tile { X = x, Y = y, IsBug = false }); } } }
private void InitializeComponent() { Title = "Test"; SetDefaultSize(300, 300); //buttonBox = new ButtonBox(); //buttonBox.Name = "buttonBox"; //Add(buttonBox); layout = new Layout(); layout.Name = "layout"; Add(layout); label = new Label(); label.Text = "test"; label.SetMargin(20, 40); layout.Add(label); drawingArea = new DrawingArea(); drawingArea.SetSizeRequest(200, 200); drawingArea.Draw += DrawingArea_Draw; layout.Add(drawingArea); button = new Button(); button.Name = "button"; button.Label = "Click me!"; button.ButtonReleased += Button_Released; button.SetMargin(20, 0); image = Image.FromFile("Content/gnome-logo.png"); layout.Add(image); layout.Add(button); }
public void ShowMissionEditor() { HideMissionEditor(); List <Element> missionEditorButtons = new List <Element>(2) { new Label("Duration:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter), new Field("Duration", selectedMission.duration.ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: ( Field field ) => { float.TryParse(field.label.text, out selectedMission.duration); }) }; Add(_missionEditorLayout = new Layout("StageEditor", 4, 1, 0.25f, 0.1f, missionEditorButtons.Count / 2, container)); _missionEditorLayout.Add(missionEditorButtons, true); _missionEditorLayout.SetPosition((_editor.stageEditor.stageEditorLayout != null ? _editor.stageEditor.stageEditorLayout.position : _editor.stageEditor.stageSets.position) + (Vector3.back * (_missionEditorLayout.height + (_editor.stageEditor.stageEditorLayout != null ? _editor.stageEditor.stageEditorLayout.height : _editor.stageEditor.stageSets.height)) * 0.5f)); }
public void ShowCampaignEditor() { HideCampaignEditor(); if (selectedCampaign != null) { List <Element> campaignEditorButtons = new List <Element>() { new Label("Width:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter), new Field("Width", selectedCampaign.width.ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: ( Field field ) => { float.TryParse(field.label.text, out selectedCampaign.width); _editor.Refresh(); Refresh(); }), new Label("Height:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter), new Field("Height", selectedCampaign.height.ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: ( Field field ) => { float.TryParse(field.label.text, out selectedCampaign.height); _editor.Refresh(); Refresh(); }), new Label("Rows:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter), new Field("Rows", selectedCampaign.rows.ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: ( Field field ) => { int.TryParse(field.label.text, out selectedCampaign.rows); _editor.Refresh(); Refresh(); }), new Label("Columns:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter), new Field("Columns", selectedCampaign.columns.ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: ( Field field ) => { int.TryParse(field.label.text, out selectedCampaign.columns); _editor.Refresh(); Refresh(); }) }; Add(_campaignEditor = new Layout("CampaignEditor", 4, 4, 0.25f, 0.1f, campaignEditorButtons.Count / 2, container)); _campaignEditor.SetPosition(campaignSets.position + (Vector3.back * ((campaignSets.height + _campaignEditor.height) * 0.5f))); _campaignEditor.Add(campaignEditorButtons, true); _campaignEditor.SetParent(container); } }
static void CreateLayout(Type layoutType, out Layout layout, out Label label) { layout = Activator.CreateInstance(layoutType) as Layout; layout.WidthRequest = 200; layout.HeightRequest = 100; layout.Background = Colors.Red; label = new Label { WidthRequest = 50, HeightRequest = 50, Text = "Text", TextColor = Colors.Blue, }; layout.Add(label); }
public void ShowStageEditor() { HideStageEditor(); Add(stageEditorLayout = new Layout("StageEditor", 4, 4, 0.25f, 0.1f, 5, container)); stageEditorLayout.SetPosition(stageSets.position + (Vector3.back * (stageSets.height + stageEditorLayout.height) * 0.5f)); stageEditorLayout.Add(new List <Element>() { new Label("Lanes:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter), new Field("Lanes", selectedStageDefinition.laneCount.ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: ( Field field ) => { int.TryParse(field.label.text, out selectedStageDefinition.laneCount); Refresh(); }), new Label("Width:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter), new Field("Width", selectedStageDefinition.width.ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: ( Field field ) => { float.TryParse(field.label.text, out selectedStageDefinition.width); Refresh(); }), new Label("Height:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter), new Field("Height", selectedStageDefinition.height.ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: ( Field field ) => { float.TryParse(field.label.text, out selectedStageDefinition.height); Refresh(); }), new Label("Spacing:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter), new Field("Spacing", selectedStageDefinition.laneSpacing.ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: ( Field field ) => { float.TryParse(field.label.text, out selectedStageDefinition.laneSpacing); Refresh(); }), new Label("Speed:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter), new Field("Speed", selectedStageDefinition.speed.ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: ( Field field ) => { float.TryParse(field.label.text, out selectedStageDefinition.speed); Refresh(); }) }, true); }
public static void HighPassTransform(double fc, Layout digital, Layout analog) { digital.Clear(); // prewarp var f = 1.0 / Math.Tan(Math.PI * fc); Complex transform(Complex c) { if (c.IsInfinity()) { return(new Complex(1, 0)); } // frequency transform c = f * c; // bilinear low pass transform return(-(1.0 + c) / (1.0 - c)); } var numPoles = analog.NumberOfPoles; var pairs = numPoles / 2; for (int i = 0; i < pairs; ++i) { var pair = analog[i]; digital.AddPoleZeroConjugatePairs(transform(pair.Poles.First), transform(pair.Zeros.First)); } if ((numPoles & 1) != 0) { var pair = analog[pairs]; digital.Add(transform(pair.Poles.First), transform(pair.Zeros.First)); } digital.NormalW = Math.PI - analog.NormalW; digital.NormalGain = analog.NormalGain; }