protected virtual void Grid_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if ((e.Value) is OpCode) { Grid.Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = PluginFactory.GetInstance().GetOpcodeDesc((OpCode)e.Value); } else if (e.Value is MethodDefinition) { MethodDefinition mdef = e.Value as MethodDefinition; Grid.Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = String.Format("RVA: {0}", mdef.RVA); } else if (e.Value is TypeReference && Grid.Rows[e.RowIndex].DataBoundItem is CustomAttributeArgument) { // Hack to display terminal attribute type (can be wrapped) var argument = (CustomAttributeArgument)Grid.Rows[e.RowIndex].DataBoundItem; if (argument.Value is CustomAttributeArgument) { var wrappedargument = (CustomAttributeArgument)argument.Value; e.Value = wrappedargument.Type; } } else if (e.Value is CustomAttributeArgument) { e.Value = Wrappers.OperandDisplayHelper.ToString((CustomAttributeArgument)e.Value); } else if (e.Value is CustomAttributeArgument[]) { e.Value = Wrappers.OperandDisplayHelper.ToString(e.Value as CustomAttributeArgument[]); } else if (OwnerDefinition is MethodDefinition) { if ((e.Value is Int16 || e.Value is Int32 || e.Value is Int64 || e.Value is SByte) || (e.Value is UInt16 || e.Value is UInt32 || e.Value is UInt64 || e.Value is Byte)) { StringBuilder tipbuilder = new StringBuilder(); Array values = System.Enum.GetValues(typeof(ENumericBase)); for (int i = 0; i < values.Length; i++) { if (i > 0) { tipbuilder.AppendLine(); } ENumericBase item = (ENumericBase)values.GetValue(i); tipbuilder.Append(item.ToString()); tipbuilder.Append(": "); tipbuilder.Append(OperandDisplayHelper.Changebase(e.Value.ToString(), ENumericBase.Dec, item)); } Grid.Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = tipbuilder.ToString(); } e.Value = Wrappers.OperandDisplayHelper.ToString(OwnerDefinition as MethodDefinition, e.Value); } }
/// <summary> /// Change numerical base. Handles negative numbers. /// </summary> /// <param name="input">String to convert</param> /// <param name="inputbase">Input base (must match with input)</param> /// <param name="outputbase">Output base</param> /// <returns>Converted input as string</returns> private static string InternalChangebase(string input, ENumericBase inputbase, ENumericBase outputbase) { try { var result = string.Empty; if (!string.IsNullOrEmpty(input)) { input = input.Replace(" ", String.Empty); var isnegative = input.StartsWith("-"); input = input.Replace("-", String.Empty); var value = Convert.ToInt64(input, (int)inputbase); result = ((isnegative) ? "-" : String.Empty) + Convert.ToString(value, (int)outputbase); } return(result); } catch (Exception) { return(String.Empty); } }
/// <summary> /// Change numerical base. Handles negative numbers. /// </summary> /// <param name="input">String to convert</param> /// <param name="inputbase">Input base (must match with input)</param> /// <param name="outputbase">Output base</param> /// <returns>Converted input as string</returns> public static string Changebase(string input, ENumericBase inputbase, ENumericBase outputbase) { try { if (!String.IsNullOrEmpty(input) && input.Contains(ItemSeparator.ToString(CultureInfo.InvariantCulture))) { var values = input.Split(ItemSeparator); var cbvalues = new string[values.Length]; for (var i = 0; i < values.Length; i++) { cbvalues[i] = Changebase(values[i], inputbase, outputbase); } return(String.Join(ItemSeparator.ToString(CultureInfo.InvariantCulture), cbvalues)); } return(InternalChangebase(input, inputbase, outputbase)); } catch (Exception) { return(String.Empty); } }
/// <summary> /// Change numerical base. Handles negative numbers. /// </summary> /// <param name="input">String to convert</param> /// <param name="inputbase">Input base (must match with input)</param> /// <param name="outputbase">Output base</param> /// <returns>Converted input as string</returns> private static string InternalChangebase(string input, ENumericBase inputbase, ENumericBase outputbase) { try { var result = string.Empty; if (!string.IsNullOrEmpty(input)) { input = input.Replace(" ", String.Empty); var isnegative = input.StartsWith("-"); input = input.Replace("-", String.Empty); var value = Convert.ToInt64(input, (int) inputbase); result = ((isnegative) ? "-" : String.Empty) + Convert.ToString(value, (int) outputbase); } return result; } catch (Exception) { return String.Empty; } }
/// <summary> /// Change numerical base. Handles negative numbers. /// </summary> /// <param name="input">String to convert</param> /// <param name="inputbase">Input base (must match with input)</param> /// <param name="outputbase">Output base</param> /// <returns>Converted input as string</returns> public static string Changebase(string input, ENumericBase inputbase, ENumericBase outputbase) { try { if (!String.IsNullOrEmpty(input) && input.Contains(ItemSeparator.ToString(CultureInfo.InvariantCulture))) { var values = input.Split(ItemSeparator); var cbvalues = new string[values.Length]; for (var i = 0; i < values.Length; i++) cbvalues[i] = Changebase(values[i], inputbase, outputbase); return String.Join(ItemSeparator.ToString(CultureInfo.InvariantCulture), cbvalues); } return InternalChangebase(input, inputbase, outputbase); } catch (Exception) { return String.Empty; } }