private void Button_Click_2(object sender, RoutedEventArgs e) { func.ListViewEntry.FuncName = func.Name = FuncName.Text; if (ArgUnknown.IsChecked == true) { func.ArgCount = -1; func.Arguments = null; } else { func.ArgCount = ArgListView.Items.Count; func.Arguments = new List <Variable>(); foreach (ListViewArgument a in _ArgCollection) { func.Arguments.Add(new Variable(a.Name, a.TypeClass)); } } ComboBoxItem typeItem = RetType.SelectedItem as ComboBoxItem; String type = typeItem.Content as String; CType.TypeKind kind = CType.TypeKind.ValueType; if (RetPointer.SelectedIndex == 1) { kind = CType.TypeKind.Pointer; } func.Returns = new CType(kind, type); Close(); }
private void Button_Click_4(object sender, RoutedEventArgs e) { if (NewArgName.Text.Length < 1) { MessageBox.Show("Choose a name for the parameter!"); return; } ComboBoxItem typeItem = NewArgType.SelectedItem as ComboBoxItem; String type = typeItem.Content as String; if (type == "void" && NewArgPointer.SelectedIndex != 1) { MessageBox.Show("A void argument must be a pointer!"); return; } CType.TypeKind kind = CType.TypeKind.ValueType; if (type == "_unknown_") { if (NewArgPointer.SelectedIndex == 1) { kind = CType.TypeKind.UnknownPointer; } else { kind = CType.TypeKind.Unknown; } } else if (NewArgPointer.SelectedIndex == 1) { kind = CType.TypeKind.Pointer; } String name = NewArgName.Text.Trim(); if (!Regex.IsMatch(name, @"^[a-zA-Z_][a-zA-Z0-9_]*$")) { MessageBox.Show("A parameter must be made of only letters, digits and underscores!"); return; } foreach (ListViewArgument a in _ArgCollection) { if (a.Name == name) { MessageBox.Show("Parameter name collision!"); return; } } ListViewArgument arg = new ListViewArgument(NewArgName.Text, new CType(kind, type)); _ArgCollection.Add(arg); }