/// <summary> /// Event invoked when the value of the name of the function being created is changed. /// Invokes the <see cref="SomethingChanged"/> event and verifies that the input is valid. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void functionID_TextChanged(object sender, TextChangedEventArgs e) { SomethingChanged?.Invoke(this, EventArgs.Empty); var textBox = sender as TextBox; if (textBox.Text != "") { if (textBox.SelectionStart == 1) { if (textBox.SelectionStart > 0 && (!(Char.IsLetter(textBox.Text[textBox.SelectionStart - 1]) || textBox.Text[textBox.SelectionStart - 1] == '_'))) { int pos = textBox.SelectionStart - 1; textBox.Text = textBox.Text.Remove(pos, 1); textBox.SelectionStart = pos; } } else { if (textBox.SelectionStart > 0 && (!(Char.IsLetterOrDigit(textBox.Text[textBox.SelectionStart - 1]) || textBox.Text[textBox.SelectionStart - 1] == '_'))) { int pos = textBox.SelectionStart - 1; textBox.Text = textBox.Text.Remove(pos, 1); textBox.SelectionStart = pos; } } } }
public Component() { _connection = new Connection() .DisposedBy(this); _counter = new CounterDisposable(() => SomethingChanged?.Invoke(this, EventArgs.Empty)); }
private void FSW_Changed(object sender, FileSystemEventArgs e) { this.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => { zeichneGrid(Ordner); })); SomethingChanged?.Invoke(this, new MyEventArgs() { }); }
/// <summary> /// Event invoked when the button to add a parameter is clicked. /// Creates a new <see cref="Values"/> object and adds the parameter visually. /// Invokes the <see cref="SomethingChanged"/> event. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void AddParameter(object sender, RoutedEventArgs e) { SomethingChanged?.Invoke(this, EventArgs.Empty); Grid containerGrid = new Grid(); Values newValue = new Values(); containerGrid.Children.Add(newValue); Parameters.Items.Add(containerGrid); }
/// <summary> /// Event invoked when the action of an asset changes. /// Invokes <see cref="SomethingChanged"/>. /// Updates the UI to reflect this change. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void MethodChosenChanged(object sender, SelectionChangedEventArgs e) { SomethingChanged?.Invoke(this, EventArgs.Empty); var list = sender as ComboBox; var parametersList = Parameters as ListView; Grid containerGrid = new Grid(); Values newValue = new Values(); if (list != null && parametersList != null) { parametersList.Items.Clear(); switch (list.SelectedIndex) { case 0: break; case 1: newValue.SetChangeText("Displacement in X"); containerGrid.Children.Add(newValue); parametersList.Items.Add(containerGrid); break; case 2: newValue.SetChangeText("Displacement in Y"); containerGrid.Children.Add(newValue); parametersList.Items.Add(containerGrid); break; case 3: newValue.SetChangeText("Degrees"); containerGrid.Children.Add(newValue); parametersList.Items.Add(containerGrid); break; case 4: newValue.SetChangeText("X"); containerGrid.Children.Add(newValue); parametersList.Items.Add(containerGrid); Grid containerGridY = new Grid(); Values newValueY = new Values(); newValueY.SetChangeText("Y"); containerGridY.Children.Add(newValueY); parametersList.Items.Add(containerGridY); break; default: break; } } }
/// <summary> /// Event invoked when the delete button of an instruction block is clicked. /// Gets the parent element of the instruction block and removes the block from its children list. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Button_Click(object sender, RoutedEventArgs e) { SomethingChanged?.Invoke(this, EventArgs.Empty); var parent = VisualTreeHelper.GetParent(sender as Button); while (parent.GetType() != typeof(ListViewItem)) { parent = VisualTreeHelper.GetParent(parent); } ListView listView = ItemsControl.ItemsControlFromItemContainer(parent) as ListView; ListViewItem lvi = (parent as ListViewItem); listView.Items.Remove(lvi.Content); }
/// <summary> /// Event invoked when the value of a numeric constant changes. /// Verifies that the number is valid and invokes <see cref="SomethingChanged"/>. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ConstantNumber_TextChanged(object sender, TextChangedEventArgs e) { SomethingChanged?.Invoke(this, EventArgs.Empty); var textBox = sender as TextBox; if (textBox.Text != "") { if (textBox.SelectionStart > 0 && (!(Char.IsDigit(textBox.Text[textBox.SelectionStart - 1])))) { int pos = textBox.SelectionStart - 1; textBox.Text = textBox.Text.Remove(pos, 1); textBox.SelectionStart = pos; } } }
/// <summary> /// Event invoked when a Block is dropped on the ListView. /// Gets the index in which the element was dropped and inserts a new /// <see cref="CreateVariable"/> block in that position. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void TargetListView_Drop(object sender, DragEventArgs e) { ListView lv = sender as ListView; int index = 0; if (!dropped) { // In the foreach loop we will check in which index (height intervals) from 0 to Count the new item was placed. // If it was not placed in any of these intervals, then it must have been placed below the last index. index = lv.Items.Count; Point pos = e.GetPosition(lv); pos.Y += scrollViewer.VerticalOffset; // Debug.WriteLine("X: " + pos.X + ", Y: " + pos.Y + ", offset: " + scrollViewer.VerticalOffset); int count = 0; int totalHeight = 0; foreach (UserControl item in lv.Items) { // Debug.WriteLine("Min: " + totalHeight + ", Max: " + (int)(totalHeight + item.ActualHeight)); if (pos.Y > totalHeight && pos.Y < totalHeight + item.ActualHeight) { index = count; break; } totalHeight += (int)(item.ActualHeight); count++; } if (e.DataView.Properties.ContainsKey("CreateVariable")) { lv.Items.Insert(index, new CreateVariable()); SomethingChanged?.Invoke(this, EventArgs.Empty); } ListView_SuspendDragAndDrop(); dropped = true; } VariableListView.CanReorderItems = true; }
/// <summary> /// Event invoked when a drag operation starts over this list view. /// Invokes the <see cref="SomethingChanged"/> event. /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private void VariableListView_DragStarting(UIElement sender, DragStartingEventArgs args) { SomethingChanged?.Invoke(this, EventArgs.Empty); }
protected virtual void OnSomethingChanged(IToolRegion args) { SomethingChanged?.Invoke(this, args); }
/// <summary> /// Event invoked when the selection of an asset's attribute changes. /// Invokes <see cref="SomethingChanged"/>. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void AssetAttributeComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { SomethingChanged?.Invoke(this, EventArgs.Empty); }
/// <summary> /// Event invoked when the button to add a new parameter is clicked. /// Invokes the <see cref="SomethingChanged"/> event and initializes /// a new ComboBox and TextBox for the new parameter field. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void AddParameter(object sender, RoutedEventArgs e) { SomethingChanged?.Invoke(this, EventArgs.Empty); var DataType = new ComboBox { FontFamily = new FontFamily("Segoe UI Light"), FontWeight = FontWeights.Light, HorizontalContentAlignment = HorizontalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Center, Margin = new Thickness(0, 0, -10, 0), Width = double.NaN, }; DataType.SelectionChanged += DataType_SelectionChanged; ComboBoxItem number = new ComboBoxItem { Content = "number", TabIndex = 0 }; ComboBoxItem text = new ComboBoxItem { Content = "text", TabIndex = 1 }; ComboBoxItem boolean = new ComboBoxItem { Content = "boolean", TabIndex = 2 }; DataType.Items.Add(number); DataType.Items.Add(text); DataType.Items.Add(boolean); DataType.SelectedIndex = 0; Parameters.Items.Add(DataType); var ParameterName = new TextBox { FontFamily = new FontFamily("Segoe UI Light"), FontWeight = FontWeights.Light, HorizontalContentAlignment = HorizontalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Center, TextAlignment = TextAlignment.Center, PlaceholderText = "Parameter Here", Width = double.NaN, InputScope = new InputScope { Names = { new InputScopeName(InputScopeNameValue.Text) } } }; ParameterName.TextChanged += ParameterName_TextChanged; Parameters.Items.Add(ParameterName); }
/// <summary> /// Event invoked when a Block is dropped on the ListView. /// Gets the index in which the element was dropped and inserts a new /// Instruction block in that position. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void TargetListView_Drop(object sender, DragEventArgs e) { ListView lv = sender as ListView; int index = 0; if (!dropped) { // In the foreach loop we will check in which index (height intervals) from 0 to Count the new item was placed. // If it was not placed in any of these intervals, then it must have been placed below the last index. index = lv.Items.Count; Point pos = e.GetPosition(lv); pos.Y += scrollViewer.VerticalOffset; int count = 0; int totalHeight = 0; foreach (UserControl item in lv.Items) { if (pos.Y > totalHeight && pos.Y < totalHeight + item.ActualHeight) { index = count; break; } totalHeight += (int)(item.ActualHeight); count++; } if (e.DataView.Properties.ContainsKey("AssignInstantiator")) { lv.Items.Insert(index, new AssignBlock()); SomethingChanged?.Invoke(this, EventArgs.Empty); } else if (e.DataView.Properties.ContainsKey("DoInstantiator")) { lv.Items.Insert(index, new DoBlock()); SomethingChanged?.Invoke(this, EventArgs.Empty); } else if (e.DataView.Properties.ContainsKey("ForInstantiator")) { lv.Items.Insert(index, new ForBlock()); SomethingChanged?.Invoke(this, EventArgs.Empty); } else if (e.DataView.Properties.ContainsKey("WhileInstantiator")) { lv.Items.Insert(index, new WhileBlock()); SomethingChanged?.Invoke(this, EventArgs.Empty); } else if (e.DataView.Properties.ContainsKey("IfInstantiator")) { lv.Items.Insert(index, new IfBlock()); SomethingChanged?.Invoke(this, EventArgs.Empty); } else if (e.DataView.Properties.ContainsKey("StopInstantiator")) { lv.Items.Insert(index, new StopBlock()); SomethingChanged?.Invoke(this, EventArgs.Empty); } else if (e.DataView.Properties.ContainsKey("ReturnStatement")) { lv.Items.Insert(index, new ReturnBlock()); SomethingChanged?.Invoke(this, EventArgs.Empty); } ListView_SuspendDragAndDrop(); dropped = true; } TargetListView.CanReorderItems = true; }
/// <summary> /// Event invoked when a drag operation starts over this list view. /// Invokes the <see cref="SomethingChanged"/> event. /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private void TargetListView_DragItemsStarting(object sender, DragItemsStartingEventArgs e) { SomethingChanged?.Invoke(this, EventArgs.Empty); }
/// <summary> /// Event invoked when the selection of a boolean operator changes. /// Invokes <see cref="SomethingChanged"/>. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void boolOperator_SelectionChanged(object sender, SelectionChangedEventArgs e) { SomethingChanged?.Invoke(this, EventArgs.Empty); }
/// <summary> /// Event invoked when a Value block is dropped into this UserControl. /// Accepts the Drop operation and updates the UI to show the Value dropped. /// Invokes <see cref="SomethingChanged"/>. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Values_OnDrop(object sender, DragEventArgs e) { e.AcceptedOperation = DataPackageOperation.Copy; if (e.DataView.Properties.ContainsKey("ValueTemplate")) { SomethingChanged?.Invoke(this, EventArgs.Empty); if (e.DataView.Properties.ContainsKey("Variable")) { selectedValueType = Utilities.ValueTypes.VariableCall; var vari = new VariableCall(); Values valuePlaceHolder = sender as Values; var grid = valuePlaceHolder.Parent as Grid; if (grid != null) { var row = Grid.GetRow(valuePlaceHolder); var column = Grid.GetColumn(valuePlaceHolder); grid.Children.Remove(valuePlaceHolder); grid.Children.Add(vari); Grid.SetRow(vari, row); Grid.SetColumn(vari, column); } selectedValue = vari as VariableCall; } if (e.DataView.Properties.ContainsKey("Function")) { selectedValueType = Utilities.ValueTypes.FunctionCall; var func = new FunctionCall(); Values valuePlaceHolder = sender as Values; var grid = valuePlaceHolder.Parent as Grid; if (grid != null) { var row = Grid.GetRow(valuePlaceHolder); var column = Grid.GetColumn(valuePlaceHolder); grid.Children.Remove(valuePlaceHolder); grid.Children.Add(func); Grid.SetRow(func, row); Grid.SetColumn(func, column); } selectedValue = func as FunctionCall; } if (e.DataView.Properties.ContainsKey("NumberConstant")) { selectedValueType = Utilities.ValueTypes.NumberConstant; var constantNumber = new ConstantNumber(); Values valuePlaceHolder = sender as Values; var parent = valuePlaceHolder.Parent as Grid; if (parent != null) { parent = parent as Grid; var row = Grid.GetRow(valuePlaceHolder); var column = Grid.GetColumn(valuePlaceHolder); parent.Children.Remove(valuePlaceHolder); parent.Children.Add(constantNumber); Grid.SetRow(constantNumber, row); Grid.SetColumn(constantNumber, column); } selectedValue = constantNumber as ConstantNumber; } if (e.DataView.Properties.ContainsKey("TextConstant")) { selectedValueType = Utilities.ValueTypes.TextConstant; var constantText = new ConstantText(); Values valuePlaceHolder = sender as Values; var grid = valuePlaceHolder.Parent as Grid; if (grid != null) { var row = Grid.GetRow(valuePlaceHolder); var column = Grid.GetColumn(valuePlaceHolder); grid.Children.Remove(valuePlaceHolder); grid.Children.Add(constantText); Grid.SetRow(constantText, row); Grid.SetColumn(constantText, column); } selectedValue = constantText as ConstantText; } if (e.DataView.Properties.ContainsKey("BooleanConstant")) { selectedValueType = Utilities.ValueTypes.BooleanConstant; var constantBoolean = new ConstantBoolean(); Values valuePlaceHolder = sender as Values; var grid = valuePlaceHolder.Parent as Grid; if (grid != null) { var row = Grid.GetRow(valuePlaceHolder); var column = Grid.GetColumn(valuePlaceHolder); grid.Children.Remove(valuePlaceHolder); grid.Children.Add(constantBoolean); Grid.SetRow(constantBoolean, row); Grid.SetColumn(constantBoolean, column); } selectedValue = constantBoolean as ConstantBoolean; } if (e.DataView.Properties.ContainsKey("MathExpression")) { selectedValueType = Utilities.ValueTypes.MathExpression; var mathExp = new MathExpression(); Values valuePlaceHolder = sender as Values; var grid = valuePlaceHolder.Parent as Grid; if (grid != null) { var row = Grid.GetRow(valuePlaceHolder); var column = Grid.GetColumn(valuePlaceHolder); grid.Children.Remove(valuePlaceHolder); grid.Children.Add(mathExp); Grid.SetRow(mathExp, row); Grid.SetColumn(mathExp, column); } selectedValue = mathExp as MathExpression; } if (e.DataView.Properties.ContainsKey("BooleanExpression")) { selectedValueType = Utilities.ValueTypes.BooleanExpression; var boolExp = new BooleanExpression(); Values valuePlaceHolder = sender as Values; var grid = valuePlaceHolder.Parent as Grid; if (grid != null) { var row = Grid.GetRow(valuePlaceHolder); var column = Grid.GetColumn(valuePlaceHolder); grid.Children.Remove(valuePlaceHolder); grid.Children.Add(boolExp); Grid.SetRow(boolExp, row); Grid.SetColumn(boolExp, column); } selectedValue = boolExp as BooleanExpression; } if (e.DataView.Properties.ContainsKey("ParenthesisExpression")) { selectedValueType = Utilities.ValueTypes.Parenthesis; var parExp = new Parenthesis(); Values valuePlaceHolder = sender as Values; var grid = valuePlaceHolder.Parent as Grid; if (grid != null) { var row = Grid.GetRow(valuePlaceHolder); var column = Grid.GetColumn(valuePlaceHolder); grid.Children.Remove(valuePlaceHolder); grid.Children.Add(parExp); Grid.SetRow(parExp, row); Grid.SetColumn(parExp, column); } selectedValue = parExp as Parenthesis; } if (e.DataView.Properties.ContainsKey("NegativeValue")) { selectedValueType = Utilities.ValueTypes.Negative; var negative = new Negative(); Values valuePlaceHolder = sender as Values; var grid = valuePlaceHolder.Parent as Grid; if (grid != null) { var row = Grid.GetRow(valuePlaceHolder); var column = Grid.GetColumn(valuePlaceHolder); grid.Children.Remove(valuePlaceHolder); grid.Children.Add(negative); Grid.SetRow(negative, row); Grid.SetColumn(negative, column); } selectedValue = negative as Negative; } if (e.DataView.Properties.ContainsKey("AssetProperty")) { selectedValueType = Utilities.ValueTypes.AssetProperty; var assetProp = new AssetAttribute(); Values valuePlaceHolder = sender as Values; var grid = valuePlaceHolder.Parent as Grid; if (grid != null) { var row = Grid.GetRow(valuePlaceHolder); var column = Grid.GetColumn(valuePlaceHolder); grid.Children.Remove(valuePlaceHolder); grid.Children.Add(assetProp); Grid.SetRow(assetProp, row); Grid.SetColumn(assetProp, column); } selectedValue = assetProp as AssetAttribute; } if (e.DataView.Properties.ContainsKey("AssetFunction")) { selectedValueType = Utilities.ValueTypes.AssetFunction; var assetFunc = new AssetFunction(); Values valuePlaceHolder = sender as Values; var grid = valuePlaceHolder.Parent as Grid; if (grid != null) { var row = Grid.GetRow(valuePlaceHolder); var column = Grid.GetColumn(valuePlaceHolder); grid.Children.Remove(valuePlaceHolder); grid.Children.Add(assetFunc); Grid.SetRow(assetFunc, row); Grid.SetColumn(assetFunc, column); } selectedValue = assetFunc as AssetFunction; } } }
/// <summary> /// Event invoked when the name of a parameter changes. /// Invokes the <see cref="SomethingChanged"/> event. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ParameterName_TextChanged(object sender, TextChangedEventArgs e) { SomethingChanged?.Invoke(this, EventArgs.Empty); }
private void OnDurationChanged(object sender, SongDurationChangedEventArgs e) { DurationChanged?.Invoke(this, new SubscriptionsEventArgs <Song, SongDurationChangedEventArgs>(sender, e)); SomethingChanged?.Invoke(this, new SubscriptionsEventArgs <Song, EventArgs>(sender, e)); }
/// <summary> /// Event invoked when the selection of the return data type of the function changes. /// Invokes the <see cref="SomethingChanged"/> event. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void functionType_SelectionChanged(object sender, SelectionChangedEventArgs e) { SomethingChanged?.Invoke(this, EventArgs.Empty); }
/// <summary> /// Event invoked when the selection of a boolean constant changes. /// Invokes <see cref="SomethingChanged"/>. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BooleanConstantComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { SomethingChanged?.Invoke(this, EventArgs.Empty); }
internal void RaiseSomethingChanged() { SomethingChanged?.Invoke(); }
public void ChangeSomething() { SomethingChanged?.Invoke(this, new EventArgs()); }