private void ReflectParameterInList() { // カッコと空白を取り除く string TrimmedTarget = StringFunctionLibrary.RemoveChars(EditTarget, new char[] { '(', ')', ' ' }); // 空のマクロなら初期状態でUIを起動 if (string.IsNullOrEmpty(TrimmedTarget)) { return; } // カンマで分ける List <string> ParsedParameters = StringFunctionLibrary.SplitParameterByComma(TrimmedTarget); // meta=を取り除く for (int Index = 0; Index < ParsedParameters.Count; Index++) { if (ParsedParameters[Index].Length > 5) { string Head = ParsedParameters[Index].Substring(0, 5); if (Head == "meta=" || Head == "Meta=") { ParsedParameters[Index] = ParsedParameters[Index].Remove(0, 5); } } } // UIに反映させる foreach (var Parameter in ParsedParameters) { if (!ReflectParameterInMacroSpecifiers(Parameter) && !ReflectParameterInAdvancedSettings(Parameter) && !ReflectParameterInMetaSpecifiers(Parameter)) { MessageBox.Show( "\"" + Parameter + "\" is an illegal specifier\n" + "If you want to use this specifier, add the specifier from the Visual Studio settings", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); Close(); return; } } }
private void ReflectParameterInList() { bool bIsEvent = MacroName.Contains("_EVENT"); bool bHasRetVal = MacroName.Contains("_RetVal"); bool bIsDynamic = MacroName.Contains("_DYNAMIC"); bool bIsMulticast = MacroName.Contains("_MULTICAST"); int ArgumentsCount = 0; for (int Index = 0; Index < ParamNumbers.Length; Index++) { if (MacroName.Contains(ParamNumbers[Index])) { ArgumentsCount = Index + 1; break; } } // チェックボックスなどを設定 Cb_IsEvent.Checked = bIsEvent; Cb_HasRetVal.Checked = bHasRetVal; Cb_IsDynamic.Checked = bIsDynamic; Cb_IsMulticast.Checked = bIsMulticast; ReflectCheckBox(); // カッコと空白を取り除く string TrimmedTarget = StringFunctionLibrary.RemoveChars(EditTarget, new char[] { '(', ')', ' ', ';' }); // カンマで分ける List <string> ParsedParameters = StringFunctionLibrary.SplitParameterByComma(TrimmedTarget); // 項目数が足りなければエラー if (((bIsEvent || bHasRetVal) && ParsedParameters.Count < 2) || (!(bIsEvent || bHasRetVal) && ParsedParameters.Count < 1)) { MessageBox.Show( "Macro structure is abnormal", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); Close(); return; } int ParameterIndex = 0; // Type if (bIsEvent || bHasRetVal) { Tb_Type.Text = ParsedParameters[ParameterIndex++]; } // Name Tb_Name.Text = ParsedParameters[ParameterIndex++]; // Arguments if (ArgumentsCount > 0) { for (int Row = 0; Row < ArgumentsCount; Row++) { AddArgumets(); } var Controls = Tlp_Arguments.Controls; foreach (var Control in Controls) { if (Control is TextBox TextBox && TextBox.Enabled && ParameterIndex < ParsedParameters.Count) { TextBox.Text = ParsedParameters[ParameterIndex++]; } } } }
private void ReflectParameterInList() { // カッコと空白を取り除く string TrimmedTarget = StringFunctionLibrary.RemoveChars(EditTarget, new char[] { '(', ')', ' ', ';' }); // カンマで分ける List <string> ParsedParameters = StringFunctionLibrary.SplitParameterByComma(TrimmedTarget); if (MacroName == "UE_LOG") { // TEXTを取り除く for (int Index = 0; Index < ParsedParameters.Count; Index++) { if (ParsedParameters[Index].Length > 4) { string Head = ParsedParameters[Index].Substring(0, 4); if (Head == "TEXT") { ParsedParameters[Index] = ParsedParameters[Index].Remove(0, 4); } } } // 項目数が足りなければエラー if (ParsedParameters.Count < 3) { MessageBox.Show( "Macro structure is abnormal", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); Close(); return; } // カテゴリを設定 Cb_Selecter1.Text = ParsedParameters[0]; // 詳細度を設定 Cb_Selecter2.Text = ParsedParameters[1]; // フォーマット文字列を設定 Tb_Input.Text = ParsedParameters[2].TrimStart('\"').TrimEnd('\"'); // 引数を設定 if (ParsedParameters.Count > 3) { ParsedParameters.RemoveRange(0, 3); var Controls = Tlp_Arguments.Controls; for (int Index = 0; Index < Controls.Count; Index++) { if (Controls[Index] is TextBox TextBox) { TextBox.Text = ParsedParameters[Index]; } } } } else { if (ParsedParameters.Count == 1) { Tb_Input.Text = ParsedParameters[0]; Cb_Selecter1.Visible = false; Cb_Selecter2.Visible = false; Lbl_Selecter1.Visible = false; Lbl_Selecter2.Visible = false; } else if (ParsedParameters.Count == 3) { Tb_Input.Text = ParsedParameters[0]; Cb_Selecter1.Text = ParsedParameters[1]; Cb_Selecter2.Text = ParsedParameters[2]; } else { MessageBox.Show( "Macro structure is abnormal", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); Close(); return; } } }