Create constructors for `RollColumn`

This commit is contained in:
James Groom 2024-03-27 17:17:53 +00:00 committed by GitHub
parent 8967f58df8
commit 4f144c74d4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 86 additions and 150 deletions

View File

@ -5,11 +5,15 @@
public int Width { get; set; } public int Width { get; set; }
public int Left { get; set; } public int Left { get; set; }
public int Right { get; set; } public int Right { get; set; }
public string Name { get; set; }
public string Text { get; set; } /// <remarks>TODO rename to <c>Key</c>?</remarks>
public string Name { get; private set; }
// Is this the default we want? ColumnType.Text is the most common.
public ColumnType Type { get; set; } = ColumnType.Boolean; /// <remarks>TODO rename to <c>Label</c>?</remarks>
public string Text { get; private set; }
public ColumnType Type { get; private set; }
public bool Visible { get; set; } = true; public bool Visible { get; set; } = true;
/// <summary> /// <summary>
@ -22,14 +26,22 @@
/// </summary> /// </summary>
public bool Rotatable { get; set; } public bool Rotatable { get; set; }
/// <summary> // [JsonConstructor]
/// Sets the desired width as appropriate for a display with no scaling. If display private RollColumn()
/// scaling is enabled, the actual column width will be scaled accordingly.
/// </summary>
public int UnscaledWidth
{ {
get => UIHelper.UnscaleX(Width); Name = default!;
set => Width = UIHelper.ScaleX(value); Text = default!;
} }
public RollColumn(string name, int widthUnscaled, ColumnType type, string text)
{
Name = name;
Text = text;
Type = type;
Width = UIHelper.ScaleX(widthUnscaled);
}
public RollColumn(string name, int widthUnscaled, string text)
: this(name: name, widthUnscaled: widthUnscaled, type: ColumnType.Text, text: text) {}
} }
} }

View File

@ -87,21 +87,21 @@ namespace BizHawk.Client.EmuHawk
tsbViewStyle.SelectedIndex = 0; tsbViewStyle.SelectedIndex = 0;
lvCDL.AllColumns.Clear(); lvCDL.AllColumns.Clear();
lvCDL.AllColumns.AddRange(new[] lvCDL.AllColumns.AddRange(new RollColumn[]
{ {
new RollColumn { Name = "CDLFile", Text = "CDL File @", UnscaledWidth = 107, Type = ColumnType.Text }, new(name: "CDLFile", widthUnscaled: 107, text: "CDL File @"),
new RollColumn { Name = "Domain", Text = "Domain", UnscaledWidth = 126, Type = ColumnType.Text }, new(name: "Domain", widthUnscaled: 126, text: "Domain"),
new RollColumn { Name = "Percent", Text = "%", UnscaledWidth = 58, Type = ColumnType.Text }, new(name: "Percent", widthUnscaled: 58, text: "%"),
new RollColumn { Name = "Mapped", Text = "Mapped", UnscaledWidth = 64, Type = ColumnType.Text }, new(name: "Mapped", widthUnscaled: 64, text: "Mapped"),
new RollColumn { Name = "Size", Text = "Size", UnscaledWidth = 112, Type = ColumnType.Text }, new(name: "Size", widthUnscaled: 112, text: "Size"),
new RollColumn { Name = "0x01", Text = "0x01", UnscaledWidth = 56, Type = ColumnType.Text }, new(name: "0x01", widthUnscaled: 56, text: "0x01"),
new RollColumn { Name = "0x02", Text = "0x02", UnscaledWidth = 56, Type = ColumnType.Text }, new(name: "0x02", widthUnscaled: 56, text: "0x02"),
new RollColumn { Name = "0x04", Text = "0x04", UnscaledWidth = 56, Type = ColumnType.Text }, new(name: "0x04", widthUnscaled: 56, text: "0x04"),
new RollColumn { Name = "0x08", Text = "0x08", UnscaledWidth = 56, Type = ColumnType.Text }, new(name: "0x08", widthUnscaled: 56, text: "0x08"),
new RollColumn { Name = "0x10", Text = "0x10", UnscaledWidth = 56, Type = ColumnType.Text }, new(name: "0x10", widthUnscaled: 56, text: "0x10"),
new RollColumn { Name = "0x20", Text = "0x20", UnscaledWidth = 56, Type = ColumnType.Text }, new(name: "0x20", widthUnscaled: 56, text: "0x20"),
new RollColumn { Name = "0x40", Text = "0x40", UnscaledWidth = 56, Type = ColumnType.Text }, new(name: "0x40", widthUnscaled: 56, text: "0x40"),
new RollColumn { Name = "0x80", Text = "0x80", UnscaledWidth = 56, Type = ColumnType.Text } new(name: "0x80", widthUnscaled: 56, text: "0x80"),
}); });
} }

View File

@ -626,15 +626,15 @@ namespace BizHawk.Client.EmuHawk
{ {
Columns = new List<RollColumn> Columns = new List<RollColumn>
{ {
new RollColumn { Text = "Names", Name = NameColumn, Visible = true, UnscaledWidth = 128, Type = ColumnType.Text }, new(name: NameColumn, widthUnscaled: 128, text: "Names"),
new RollColumn { Text = "Address", Name = AddressColumn, Visible = true, UnscaledWidth = 60, Type = ColumnType.Text }, new(name: AddressColumn, widthUnscaled: 60, text: "Address"),
new RollColumn { Text = "Value", Name = ValueColumn, Visible = true, UnscaledWidth = 59, Type = ColumnType.Text }, new(name: ValueColumn, widthUnscaled: 59, text: "Value"),
new RollColumn { Text = "Compare", Name = CompareColumn, Visible = true, UnscaledWidth = 63, Type = ColumnType.Text }, new(name: CompareColumn, widthUnscaled: 63, text: "Compare"),
new RollColumn { Text = "Compare Type", Name = ComparisonTypeColumn, Visible = true, UnscaledWidth = 98, Type = ColumnType.Text }, new(name: ComparisonTypeColumn, widthUnscaled: 98, text: "Compare Type"),
new RollColumn { Text = "On", Name = OnColumn, Visible = false, UnscaledWidth = 28, Type = ColumnType.Text }, new(name: OnColumn, widthUnscaled: 28, text: "On") { Visible = false },
new RollColumn { Text = "Size", Name = SizeColumn, Visible = true, UnscaledWidth = 55, Type = ColumnType.Text }, new(name: SizeColumn, widthUnscaled: 55, text: "Size"),
new RollColumn { Text = "Endian", Name = EndianColumn, Visible = false, UnscaledWidth = 55, Type = ColumnType.Text }, new(name: EndianColumn, widthUnscaled: 55, text: "Endian") { Visible = false },
new RollColumn { Text = "Display Type", Name = TypeColumn, Visible = false, UnscaledWidth = 88, Type = ColumnType.Text } new(name: TypeColumn, widthUnscaled: 88, text: "Display Type") { Visible = false },
}; };
} }

View File

@ -36,23 +36,8 @@ namespace BizHawk.Client.EmuHawk
DisassemblerView.QueryItemText += DisassemblerView_QueryItemText; DisassemblerView.QueryItemText += DisassemblerView_QueryItemText;
DisassemblerView.QueryItemBkColor += DisassemblerView_QueryItemBkColor; DisassemblerView.QueryItemBkColor += DisassemblerView_QueryItemBkColor;
DisassemblerView.AllColumns.Clear(); DisassemblerView.AllColumns.Clear();
DisassemblerView.AllColumns.AddRange(new[] DisassemblerView.AllColumns.Add(new(name: AddressColumnName, widthUnscaled: 94, text: AddressColumnName));
{ DisassemblerView.AllColumns.Add(new(name: InstructionColumnName, widthUnscaled: 291, text: InstructionColumnName));
new RollColumn
{
Name = AddressColumnName,
Text = AddressColumnName,
UnscaledWidth = 94,
Type = ColumnType.Text
},
new RollColumn
{
Name = InstructionColumnName,
Text = InstructionColumnName,
UnscaledWidth = 291,
Type = ColumnType.Text
}
});
} }
private void EngageDebugger() private void EngageDebugger()

View File

@ -363,10 +363,7 @@ namespace BizHawk.Client.EmuHawk
[LuaMethod("addcolumn", "")] [LuaMethod("addcolumn", "")]
public void AddColumn(string name, string text, int width) public void AddColumn(string name, string text, int width)
{ {
if (Engaged()) if (Engaged()) Tastudio.AddColumn(name: name, widthUnscaled: width, text: text);
{
Tastudio.AddColumn(name, text, width, ColumnType.Text);
}
} }
[LuaMethodExample("tastudio.setbranchtext( \"Some text\", 1 );")] [LuaMethodExample("tastudio.setbranchtext( \"Some text\", 1 );")]

View File

@ -56,9 +56,9 @@ namespace BizHawk.Client.EmuHawk
{ {
Columns = new List<RollColumn> Columns = new List<RollColumn>
{ {
new() { Name = IconColumnName, Text = " ", Visible = true, UnscaledWidth = 22, Type = ColumnType.Image }, new(name: IconColumnName, widthUnscaled: 22, type: ColumnType.Image, text: " "),
new() { Name = ScriptColumnName, Text = "Script", Visible = true, UnscaledWidth = 92, Type = ColumnType.Text }, new(name: ScriptColumnName, widthUnscaled: 92, text: "Script"),
new() { Name = PathColumnName, Text = "Path", Visible = true, UnscaledWidth = 300, Type = ColumnType.Text } new(name: PathColumnName, widthUnscaled: 300, text: "Path"),
}; };
} }

View File

@ -72,30 +72,9 @@ namespace BizHawk.Client.EmuHawk
private void SetupColumns() private void SetupColumns()
{ {
BranchView.AllColumns.Clear(); BranchView.AllColumns.Clear();
BranchView.AllColumns.AddRange(new[] BranchView.AllColumns.Add(new(name: BranchNumberColumnName, widthUnscaled: 30, text: "#"));
{ BranchView.AllColumns.Add(new(name: FrameColumnName, widthUnscaled: 64, text: "Frame"));
new RollColumn BranchView.AllColumns.Add(new(name: UserTextColumnName, widthUnscaled: 90, text: "UserText"));
{
Name = BranchNumberColumnName,
Text = "#",
UnscaledWidth = 30,
Type = ColumnType.Text
},
new RollColumn
{
Name = FrameColumnName,
Text = "Frame",
UnscaledWidth = 64,
Type = ColumnType.Text
},
new RollColumn
{
Name = UserTextColumnName,
Text = "UserText",
UnscaledWidth = 90,
Type = ColumnType.Text
}
});
} }
private void QueryItemText(int index, RollColumn column, out string text, ref int offsetX, ref int offsetY) private void QueryItemText(int index, RollColumn column, out string text, ref int offsetX, ref int offsetY)

View File

@ -43,23 +43,8 @@ namespace BizHawk.Client.EmuHawk
private void SetupColumns() private void SetupColumns()
{ {
MarkerView.AllColumns.Clear(); MarkerView.AllColumns.Clear();
MarkerView.AllColumns.AddRange(new[] MarkerView.AllColumns.Add(new(name: "FrameColumn", widthUnscaled: 52, text: "Frame"));
{ MarkerView.AllColumns.Add(new(name: "LabelColumn", widthUnscaled: 125, text: string.Empty));
new RollColumn
{
Name = "FrameColumn",
Text = "Frame",
UnscaledWidth = 52,
Type = ColumnType.Text
},
new RollColumn
{
Name = "LabelColumn",
Text = "",
UnscaledWidth = 125,
Type = ColumnType.Text
}
});
} }
public InputRoll MarkerInputRoll => MarkerView; public InputRoll MarkerInputRoll => MarkerView;

View File

@ -345,14 +345,10 @@ namespace BizHawk.Client.EmuHawk
private void SetUpColumns() private void SetUpColumns()
{ {
TasView.AllColumns.Clear(); TasView.AllColumns.Clear();
AddColumn(CursorColumnName, "", 18); TasView.AllColumns.Add(new(name: CursorColumnName, widthUnscaled: 18, type: ColumnType.Boolean, text: string.Empty));
TasView.AllColumns.Add(new RollColumn TasView.AllColumns.Add(new(name: FrameColumnName, widthUnscaled: 68, text: "Frame#")
{ {
Name = FrameColumnName, Rotatable = true,
Text = "Frame#",
UnscaledWidth = 68,
Type = ColumnType.Text,
Rotatable = true
}); });
var columnNames = MovieSession.Movie var columnNames = MovieSession.Movie
@ -377,7 +373,11 @@ namespace BizHawk.Client.EmuHawk
digits = mnemonic.Length; digits = mnemonic.Length;
} }
AddColumn(name, mnemonic, (digits * 6) + 14, type); // magic numbers reused in EditBranchTextPopUp() TasView.AllColumns.Add(new(
name: name,
widthUnscaled: (digits * 6) + 14, // magic numbers reused in EditBranchTextPopUp() --feos // not since eb63fa5a9 (before 2.3.3) --yoshi
type: type,
text: mnemonic));
} }
var columnsToHide = TasView.AllColumns var columnsToHide = TasView.AllColumns
@ -464,16 +464,9 @@ namespace BizHawk.Client.EmuHawk
SetUpToolStripColumns(); SetUpToolStripColumns();
} }
public void AddColumn(string columnName, string columnText, int columnWidth, ColumnType columnType = ColumnType.Boolean) /// <remarks>for Lua</remarks>
{ public void AddColumn(string name, string text, int widthUnscaled)
TasView.AllColumns.Add(new RollColumn => TasView.AllColumns.Add(new(name: name, widthUnscaled: widthUnscaled, type: ColumnType.Text, text: text));
{
Name = columnName,
Text = columnText,
UnscaledWidth = columnWidth,
Type = columnType
});
}
public void LoadBranchByIndex(int index) => BookMarkControl.LoadBranchExternal(index); public void LoadBranchByIndex(int index) => BookMarkControl.LoadBranchExternal(index);
public void ClearFramesExternal() => ClearFramesMenuItem_Click(null, null); public void ClearFramesExternal() => ClearFramesMenuItem_Click(null, null);

View File

@ -23,11 +23,8 @@ namespace BizHawk.Client.EmuHawk
HistoryView.QueryItemBkColor += HistoryView_QueryItemBkColor; HistoryView.QueryItemBkColor += HistoryView_QueryItemBkColor;
HistoryView.AllColumns.Clear(); HistoryView.AllColumns.Clear();
HistoryView.AllColumns.AddRange(new[] HistoryView.AllColumns.Add(new(name: IdColumnName, widthUnscaled: 40, text: IdColumnName));
{ HistoryView.AllColumns.Add(new(name: UndoColumnName, widthUnscaled: 280, text: UndoColumnName));
new RollColumn { Name = IdColumnName, Text = IdColumnName, UnscaledWidth = 40, Type = ColumnType.Text },
new RollColumn { Name = UndoColumnName, Text = UndoColumnName, UnscaledWidth = 280, Type = ColumnType.Text }
});
MaxStepsNum.Value = Log.MaxSteps; MaxStepsNum.Value = Log.MaxSteps;
} }

View File

@ -94,20 +94,8 @@ namespace BizHawk.Client.EmuHawk
_splitFile = FileSizeCap != 0; _splitFile = FileSizeCap != 0;
TraceView.AllColumns.Clear(); TraceView.AllColumns.Clear();
TraceView.AllColumns.Add(new RollColumn TraceView.AllColumns.Add(new(name: DisasmColumnName, widthUnscaled: 239, text: DisasmColumnName));
{ TraceView.AllColumns.Add(new(name: RegistersColumnName, widthUnscaled: 357, text: RegistersColumnName));
Name = DisasmColumnName,
Text = DisasmColumnName,
UnscaledWidth = 239,
Type = ColumnType.Text
});
TraceView.AllColumns.Add(new RollColumn
{
Name = RegistersColumnName,
Text = RegistersColumnName,
UnscaledWidth = 357,
Type = ColumnType.Text
});
} }
private void SaveConfigSettings() private void SaveConfigSettings()

View File

@ -940,11 +940,11 @@ namespace BizHawk.Client.EmuHawk
{ {
Columns = new List<RollColumn> Columns = new List<RollColumn>
{ {
new RollColumn { Text = "Address", Name = WatchList.Address, Visible = true, UnscaledWidth = 60, Type = ColumnType.Text }, new(name: WatchList.Address, widthUnscaled: 60, text: "Address"),
new RollColumn { Text = "Value", Name = WatchList.Value, Visible = true, UnscaledWidth = 59, Type = ColumnType.Text }, new(name: WatchList.Value, widthUnscaled: 59, text: "Value"),
new RollColumn { Text = "Prev", Name = WatchList.Prev, Visible = true, UnscaledWidth = 59, Type = ColumnType.Text }, new(name: WatchList.Prev, widthUnscaled: 59, text: "Prev"),
new RollColumn { Text = "Changes", Name = WatchList.ChangesCol, Visible = true, UnscaledWidth = 60, Type = ColumnType.Text }, new(name: WatchList.ChangesCol, widthUnscaled: 60, text: "Changes"),
new RollColumn { Text = "Diff", Name = WatchList.Diff, Visible = false, UnscaledWidth = 59, Type = ColumnType.Text } new(name: WatchList.Diff, widthUnscaled: 59, text: "Diff") { Visisble = false },
}; };
PreviewMode = true; PreviewMode = true;

View File

@ -167,14 +167,14 @@ namespace BizHawk.Client.EmuHawk
{ {
Columns = new List<RollColumn> Columns = new List<RollColumn>
{ {
new() { Text = "Address", Name = WatchList.Address, Visible = true, UnscaledWidth = 60, Type = ColumnType.Text }, new(name: WatchList.Address, widthUnscaled: 60, text: "Address"),
new() { Text = "Value", Name = WatchList.Value, Visible = true, UnscaledWidth = 59, Type = ColumnType.Text }, new(name: WatchList.Value, widthUnscaled: 59, text: "Value"),
new() { Text = "Prev", Name = WatchList.Prev, Visible = false, UnscaledWidth = 59, Type = ColumnType.Text }, new(name: WatchList.Prev, widthUnscaled: 59, text: "Prev") { Visible = false },
new() { Text = "Changes", Name = WatchList.ChangesCol, Visible = true, UnscaledWidth = 60, Type = ColumnType.Text }, new(name: WatchList.ChangesCol, widthUnscaled: 60, text: "Changes"),
new() { Text = "Diff", Name = WatchList.Diff, Visible = false, UnscaledWidth = 59, Type = ColumnType.Text }, new(name: WatchList.Diff, widthUnscaled: 59, text: "Diff") { Visible = false },
new() { Text = "Type", Name = WatchList.Type, Visible = false, UnscaledWidth = 55, Type = ColumnType.Text }, new(name: WatchList.Type, widthUnscaled: 55, text: "Type") { Visible = false },
new() { Text = "Domain", Name = WatchList.Domain, Visible = true, UnscaledWidth = 55, Type = ColumnType.Text }, new(name: WatchList.Domain, widthUnscaled: 55, text: "Domain"),
new() { Text = "Notes", Name = WatchList.Notes, Visible = true, UnscaledWidth = 128, Type = ColumnType.Text } new(name: WatchList.Notes, widthUnscaled: 128, text: "Notes"),
}; };
} }