Tastudio - right-click a column to toggle autohold on that button

This commit is contained in:
adelikat 2014-09-25 17:52:21 +00:00
parent 35c147136f
commit 5660fee947
4 changed files with 835 additions and 791 deletions

View File

@ -242,6 +242,12 @@ namespace BizHawk.Client.EmuHawk
[Category("Action")]
public event System.Windows.Forms.ColumnClickEventHandler ColumnClick;
/// <summary>
/// Occurs when a column header is right-clicked
/// </summary>
[Category("Action")]
public event System.Windows.Forms.ColumnClickEventHandler ColumnRightClick;
/// <summary>
/// Occurs whenever the 'SelectedItems' property for this control changes
/// </summary>
@ -703,13 +709,14 @@ namespace BizHawk.Client.EmuHawk
// Emphasis
foreach (var column in Columns.Where(c => c.Emphasis))
{
Gdi.SetBrush(SystemColors.ActiveBorder);
if (HorizontalOrientation)
{
Gdi.FillRectangle(1, Columns.IndexOf(column) * CellHeight + 1, ColumnWidth - 1, ColumnHeight - 1);
}
else
{
Gdi.FillRectangle(column.Left.Value + 1, 1, column.Width.Value - 1, ColumnHeight - 1);
}
}
@ -748,6 +755,7 @@ namespace BizHawk.Client.EmuHawk
}
}
}
//TODO refactor this and DoBackGroundCallback functions.
/// <summary>
/// Draw Gridlines and background colors using QueryItemBkColor.
@ -964,9 +972,16 @@ namespace BizHawk.Client.EmuHawk
}
if (e.Button == MouseButtons.Right)
{
if (IsHoveringOnColumnCell)
{
ColumnRightClickEvent(ColumnAtX(e.X));
}
else
{
RightButtonHeld = true;
}
}
if (e.Button == MouseButtons.Left)
{
@ -1136,6 +1151,14 @@ namespace BizHawk.Client.EmuHawk
}
}
private void ColumnRightClickEvent(RollColumn column)
{
if (ColumnRightClick != null)
{
ColumnRightClick(this, new ColumnClickEventArgs(_columns.IndexOf(column)));
}
}
#endregion
#region Change Events

View File

@ -698,7 +698,7 @@ namespace BizHawk.Client.EmuHawk
this.TasView.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.TasView.FullRowSelect = true;
this.TasView.HorizontalOrientation = false;
this.TasView.LastVisibleRow = 23;
this.TasView.LastVisibleRow = 27;
this.TasView.Location = new System.Drawing.Point(8, 27);
this.TasView.MaxCharactersInHorizontal = 1;
this.TasView.MultiSelect = false;
@ -707,6 +707,7 @@ namespace BizHawk.Client.EmuHawk
this.TasView.Size = new System.Drawing.Size(288, 471);
this.TasView.TabIndex = 1;
this.TasView.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.TasView_ColumnClick);
this.TasView.ColumnRightClick += new System.Windows.Forms.ColumnClickEventHandler(this.TasView_ColumnRightClick);
this.TasView.SelectedIndexChanged += new System.EventHandler(this.TasView_SelectedIndexChanged);
this.TasView.RightMouseScrolled += new BizHawk.Client.EmuHawk.InputRoll.RightMouseScrollEventHandler(this.TasView_MouseWheel);
this.TasView.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TasView_KeyDown);

View File

@ -212,6 +212,14 @@ namespace BizHawk.Client.EmuHawk
}
}
private void TasView_ColumnRightClick(object sender, ColumnClickEventArgs e)
{
var column = TasView.Columns[e.Column];
column.Emphasis ^= true;
Global.StickyXORAdapter.SetSticky(column.Name, column.Emphasis);
}
private void TasView_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Middle)

View File

@ -489,6 +489,17 @@ namespace BizHawk.Client.EmuHawk
}
}
private void SetColumnsFromCurrentStickies()
{
foreach (var column in TasView.Columns)
{
if (Global.StickyXORAdapter.IsSticky(column.Name))
{
column.Emphasis = true;
}
}
}
#region Events
#region File Menu
@ -1023,6 +1034,7 @@ namespace BizHawk.Client.EmuHawk
EngageTastudio();
SetUpColumns();
LoadConfigSettings();
SetColumnsFromCurrentStickies();
RefreshDialog();
}