Color Update
This commit is contained in:
parent
8d334cdd8e
commit
d60e6bfc4c
13 changed files with 201 additions and 5 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
189
GATE-PLAYGROUND/Class1.cs
Normal file
189
GATE-PLAYGROUND/Class1.cs
Normal file
|
|
@ -0,0 +1,189 @@
|
||||||
|
// Copyright Alex Shvedov
|
||||||
|
// Modified by MercuryP with color specifications
|
||||||
|
// Use this code in any way you want
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics; // for Debug
|
||||||
|
using System.Drawing; // for Color (add reference to System.Drawing.assembly)
|
||||||
|
using System.Runtime.InteropServices; // for StructLayout
|
||||||
|
|
||||||
|
class SetScreenColorsApp
|
||||||
|
{
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
internal struct COORD
|
||||||
|
{
|
||||||
|
internal short X;
|
||||||
|
internal short Y;
|
||||||
|
}
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
internal struct SMALL_RECT
|
||||||
|
{
|
||||||
|
internal short Left;
|
||||||
|
internal short Top;
|
||||||
|
internal short Right;
|
||||||
|
internal short Bottom;
|
||||||
|
}
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
internal struct COLORREF
|
||||||
|
{
|
||||||
|
internal uint ColorDWORD;
|
||||||
|
|
||||||
|
internal COLORREF(Color color)
|
||||||
|
{
|
||||||
|
ColorDWORD = (uint)color.R + (((uint)color.G) << 8) + (((uint)color.B) << 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal COLORREF(uint r, uint g, uint b)
|
||||||
|
{
|
||||||
|
ColorDWORD = r + (g << 8) + (b << 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal Color GetColor()
|
||||||
|
{
|
||||||
|
return Color.FromArgb((int)(0x000000FFU & ColorDWORD),
|
||||||
|
(int)(0x0000FF00U & ColorDWORD) >> 8, (int)(0x00FF0000U & ColorDWORD) >> 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal void SetColor(Color color)
|
||||||
|
{
|
||||||
|
ColorDWORD = (uint)color.R + (((uint)color.G) << 8) + (((uint)color.B) << 16);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
internal struct CONSOLE_SCREEN_BUFFER_INFO_EX
|
||||||
|
{
|
||||||
|
internal int cbSize;
|
||||||
|
internal COORD dwSize;
|
||||||
|
internal COORD dwCursorPosition;
|
||||||
|
internal ushort wAttributes;
|
||||||
|
internal SMALL_RECT srWindow;
|
||||||
|
internal COORD dwMaximumWindowSize;
|
||||||
|
internal ushort wPopupAttributes;
|
||||||
|
internal bool bFullscreenSupported;
|
||||||
|
internal COLORREF black;
|
||||||
|
internal COLORREF darkBlue;
|
||||||
|
internal COLORREF darkGreen;
|
||||||
|
internal COLORREF darkCyan;
|
||||||
|
internal COLORREF darkRed;
|
||||||
|
internal COLORREF darkMagenta;
|
||||||
|
internal COLORREF darkYellow;
|
||||||
|
internal COLORREF gray;
|
||||||
|
internal COLORREF darkGray;
|
||||||
|
internal COLORREF blue;
|
||||||
|
internal COLORREF green;
|
||||||
|
internal COLORREF cyan;
|
||||||
|
internal COLORREF red;
|
||||||
|
internal COLORREF magenta;
|
||||||
|
internal COLORREF yellow;
|
||||||
|
internal COLORREF white;
|
||||||
|
}
|
||||||
|
|
||||||
|
const int STD_OUTPUT_HANDLE = -11; // per WinBase.h
|
||||||
|
internal static readonly IntPtr INVALID_HANDLE_VALUE = new IntPtr(-1); // per WinBase.h
|
||||||
|
|
||||||
|
[DllImport("kernel32.dll", SetLastError = true)]
|
||||||
|
private static extern IntPtr GetStdHandle(int nStdHandle);
|
||||||
|
|
||||||
|
[DllImport("kernel32.dll", SetLastError = true)]
|
||||||
|
private static extern bool GetConsoleScreenBufferInfoEx(IntPtr hConsoleOutput, ref CONSOLE_SCREEN_BUFFER_INFO_EX csbe);
|
||||||
|
|
||||||
|
[DllImport("kernel32.dll", SetLastError = true)]
|
||||||
|
private static extern bool SetConsoleScreenBufferInfoEx(IntPtr hConsoleOutput, ref CONSOLE_SCREEN_BUFFER_INFO_EX csbe);
|
||||||
|
|
||||||
|
// Set a specific console color to an RGB color
|
||||||
|
// The default console colors used are gray (foreground) and black (background)
|
||||||
|
public static int SetColor(ConsoleColor consoleColor, Color targetColor)
|
||||||
|
{
|
||||||
|
return SetColor(consoleColor, targetColor.R, targetColor.G, targetColor.B);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int SetColor(ConsoleColor color, uint r, uint g, uint b)
|
||||||
|
{
|
||||||
|
CONSOLE_SCREEN_BUFFER_INFO_EX csbe = new CONSOLE_SCREEN_BUFFER_INFO_EX();
|
||||||
|
csbe.cbSize = (int)Marshal.SizeOf(csbe); // 96 = 0x60
|
||||||
|
IntPtr hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE); // 7
|
||||||
|
if (hConsoleOutput == INVALID_HANDLE_VALUE)
|
||||||
|
{
|
||||||
|
return Marshal.GetLastWin32Error();
|
||||||
|
}
|
||||||
|
bool brc = GetConsoleScreenBufferInfoEx(hConsoleOutput, ref csbe);
|
||||||
|
if (!brc)
|
||||||
|
{
|
||||||
|
return Marshal.GetLastWin32Error();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (color)
|
||||||
|
{
|
||||||
|
case ConsoleColor.Black:
|
||||||
|
csbe.black = new COLORREF(r, g, b);
|
||||||
|
break;
|
||||||
|
case ConsoleColor.DarkBlue:
|
||||||
|
csbe.darkBlue = new COLORREF(r, g, b);
|
||||||
|
break;
|
||||||
|
case ConsoleColor.DarkGreen:
|
||||||
|
csbe.darkGreen = new COLORREF(r, g, b);
|
||||||
|
break;
|
||||||
|
case ConsoleColor.DarkCyan:
|
||||||
|
csbe.darkCyan = new COLORREF(r, g, b);
|
||||||
|
break;
|
||||||
|
case ConsoleColor.DarkRed:
|
||||||
|
csbe.darkRed = new COLORREF(r, g, b);
|
||||||
|
break;
|
||||||
|
case ConsoleColor.DarkMagenta:
|
||||||
|
csbe.darkMagenta = new COLORREF(r, g, b);
|
||||||
|
break;
|
||||||
|
case ConsoleColor.DarkYellow:
|
||||||
|
csbe.darkYellow = new COLORREF(r, g, b);
|
||||||
|
break;
|
||||||
|
case ConsoleColor.Gray:
|
||||||
|
csbe.gray = new COLORREF(r, g, b);
|
||||||
|
break;
|
||||||
|
case ConsoleColor.DarkGray:
|
||||||
|
csbe.darkGray = new COLORREF(r, g, b);
|
||||||
|
break;
|
||||||
|
case ConsoleColor.Blue:
|
||||||
|
csbe.blue = new COLORREF(r, g, b);
|
||||||
|
break;
|
||||||
|
case ConsoleColor.Green:
|
||||||
|
csbe.green = new COLORREF(r, g, b);
|
||||||
|
break;
|
||||||
|
case ConsoleColor.Cyan:
|
||||||
|
csbe.cyan = new COLORREF(r, g, b);
|
||||||
|
break;
|
||||||
|
case ConsoleColor.Red:
|
||||||
|
csbe.red = new COLORREF(r, g, b);
|
||||||
|
break;
|
||||||
|
case ConsoleColor.Magenta:
|
||||||
|
csbe.magenta = new COLORREF(r, g, b);
|
||||||
|
break;
|
||||||
|
case ConsoleColor.Yellow:
|
||||||
|
csbe.yellow = new COLORREF(r, g, b);
|
||||||
|
break;
|
||||||
|
case ConsoleColor.White:
|
||||||
|
csbe.white = new COLORREF(r, g, b);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
++csbe.srWindow.Bottom;
|
||||||
|
++csbe.srWindow.Right;
|
||||||
|
brc = SetConsoleScreenBufferInfoEx(hConsoleOutput, ref csbe);
|
||||||
|
if (!brc)
|
||||||
|
{
|
||||||
|
return Marshal.GetLastWin32Error();
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int SetScreenColors(Color foregroundColor, Color backgroundColor)
|
||||||
|
{
|
||||||
|
int irc;
|
||||||
|
irc = SetColor(ConsoleColor.Gray, foregroundColor);
|
||||||
|
if (irc != 0) return irc;
|
||||||
|
irc = SetColor(ConsoleColor.Black, backgroundColor);
|
||||||
|
if (irc != 0) return irc;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -34,6 +34,8 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.Drawing.Design" />
|
||||||
<Reference Include="System.Windows.Forms" />
|
<Reference Include="System.Windows.Forms" />
|
||||||
<Reference Include="System.Xml.Linq" />
|
<Reference Include="System.Xml.Linq" />
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
|
@ -43,6 +45,7 @@
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Compile Include="Class1.cs" />
|
||||||
<Compile Include="NAMES.cs" />
|
<Compile Include="NAMES.cs" />
|
||||||
<Compile Include="Program.cs" />
|
<Compile Include="Program.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using System.Drawing;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
|
@ -1273,6 +1274,9 @@ namespace GATE_PLAYGROUND
|
||||||
}
|
}
|
||||||
static void Main(string[] args)
|
static void Main(string[] args)
|
||||||
{
|
{
|
||||||
|
SetScreenColorsApp.SetColor(ConsoleColor.Magenta, Color.DarkOrange);
|
||||||
|
SetScreenColorsApp.SetColor(ConsoleColor.DarkYellow, Color.LightSkyBlue);
|
||||||
|
|
||||||
if (args.Length == 1)
|
if (args.Length == 1)
|
||||||
{
|
{
|
||||||
Playground.file = args[0] + "\\";
|
Playground.file = args[0] + "\\";
|
||||||
|
|
@ -2059,12 +2063,12 @@ namespace GATE_PLAYGROUND
|
||||||
}
|
}
|
||||||
if (side.Substring(0, 1) != "A")
|
if (side.Substring(0, 1) != "A")
|
||||||
{
|
{
|
||||||
ConsoleColor isactive = ConsoleColor.DarkGreen;
|
ConsoleColor isactive = ConsoleColor.Green;
|
||||||
ConsoleColor inactive = ConsoleColor.DarkRed;
|
ConsoleColor inactive = ConsoleColor.Red;
|
||||||
if (mode == 0)
|
if (mode == 0)
|
||||||
{
|
{
|
||||||
isactive = ConsoleColor.DarkGreen;
|
isactive = ConsoleColor.Green;
|
||||||
inactive = ConsoleColor.DarkBlue;
|
inactive = ConsoleColor.Blue;
|
||||||
}
|
}
|
||||||
int Objid = 0;
|
int Objid = 0;
|
||||||
if (!selMode)
|
if (!selMode)
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1 +1 @@
|
||||||
abbe9faa8e1ca816e6482998496684480784522c
|
9116ea1888eb2538bbbfee85c8947baf4317e386
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue