Don't hardcode colours in InputRoll
This commit is contained in:
parent
1e5d11bf84
commit
bd3f919129
src/BizHawk.Client.EmuHawk/CustomControls/InputRoll
|
@ -14,8 +14,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
using (_renderer.LockGraphics(e.Graphics))
|
||||
{
|
||||
// White Background
|
||||
_renderer.SetBrush(Color.White);
|
||||
_renderer.SetSolidPen(Color.White);
|
||||
_renderer.SetBrush(_backColor);
|
||||
_renderer.SetSolidPen(_backColor);
|
||||
_renderer.FillRectangle(e.ClipRectangle);
|
||||
|
||||
// Lag frame calculations
|
||||
|
@ -510,7 +510,6 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private void DoSelectionBG(List<RollColumn> visibleColumns, Rectangle rect)
|
||||
{
|
||||
Color rowColor = Color.White;
|
||||
var visibleRows = FirstVisibleRow.RangeTo(LastVisibleRow);
|
||||
int lastRow = -1;
|
||||
foreach (Cell cell in _selectedItems)
|
||||
|
@ -527,6 +526,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
};
|
||||
relativeCell.RowIndex -= CountLagFramesAbsolute(relativeCell.RowIndex.Value);
|
||||
|
||||
var rowColor = _backColor;
|
||||
if (QueryRowBkColor != null && lastRow != cell.RowIndex.Value)
|
||||
{
|
||||
QueryRowBkColor(cell.RowIndex.Value, ref rowColor);
|
||||
|
@ -603,27 +603,21 @@ namespace BizHawk.Client.EmuHawk
|
|||
for (int i = 0, f = 0; f < range; i++, f++)
|
||||
{
|
||||
f += _lagFrames[i];
|
||||
Color rowColor = Color.White;
|
||||
var rowColor = _backColor;
|
||||
QueryRowBkColor?.Invoke(f + startIndex, ref rowColor);
|
||||
|
||||
foreach (var column in visibleColumns)
|
||||
{
|
||||
Color itemColor = Color.White;
|
||||
var itemColor = rowColor;
|
||||
QueryItemBkColor?.Invoke(f + startIndex, column, ref itemColor);
|
||||
|
||||
if (itemColor == Color.White)
|
||||
{
|
||||
itemColor = rowColor;
|
||||
}
|
||||
else if (itemColor.A != 255 && itemColor.A != 0)
|
||||
if (itemColor.A is not 0 or 255)
|
||||
{
|
||||
float alpha = (float)itemColor.A / 255;
|
||||
itemColor = Color.FromArgb(rowColor.R - (int)((rowColor.R - itemColor.R) * alpha),
|
||||
rowColor.G - (int)((rowColor.G - itemColor.G) * alpha),
|
||||
rowColor.B - (int)((rowColor.B - itemColor.B) * alpha));
|
||||
}
|
||||
|
||||
if (itemColor != Color.White) // An easy optimization, don't draw unless the user specified something other than the default
|
||||
if (itemColor != _backColor) // An easy optimization, don't draw unless the user specified something other than the default
|
||||
{
|
||||
var cell = new Cell
|
||||
{
|
||||
|
|
|
@ -31,8 +31,21 @@ namespace BizHawk.Client.EmuHawk
|
|||
private readonly Timer _hoverTimer = new Timer();
|
||||
private readonly byte[] _lagFrames = new byte[256]; // Large enough value that it shouldn't ever need resizing. // apparently not large enough for 4K
|
||||
|
||||
private readonly Color _foreColor;
|
||||
private readonly Color _backColor;
|
||||
private Color _backColor;
|
||||
|
||||
public override Color BackColor
|
||||
{
|
||||
get => _backColor;
|
||||
set => base.BackColor = _backColor = value;
|
||||
}
|
||||
|
||||
private Color _foreColor;
|
||||
|
||||
public override Color ForeColor
|
||||
{
|
||||
get => _foreColor;
|
||||
set => base.ForeColor = _foreColor = value;
|
||||
}
|
||||
|
||||
private RollColumns _columns = new RollColumns();
|
||||
private bool _horizontalOrientation;
|
||||
|
@ -117,8 +130,18 @@ namespace BizHawk.Client.EmuHawk
|
|||
_hoverTimer.Tick += HoverTimerEventProcessor;
|
||||
_hoverTimer.Stop();
|
||||
|
||||
_foreColor = ForeColor;
|
||||
_backColor = BackColor;
|
||||
if (OSTailoredCode.IsUnixHost)
|
||||
{
|
||||
// sorry dark theme users, but this needs to be readable
|
||||
_backColor = Color.White;
|
||||
_foreColor = Color.Black;
|
||||
}
|
||||
else
|
||||
{
|
||||
// this is the ctor, so these reads will always return the default values
|
||||
_backColor = base.BackColor;
|
||||
_foreColor = base.ForeColor;
|
||||
}
|
||||
}
|
||||
|
||||
private void HoverTimerEventProcessor(object sender, EventArgs e)
|
||||
|
|
Loading…
Reference in New Issue