public override void SetTerminalAttributes(TerminalAttributes attributes) { int fg = (int)attributes & 0x0F; int bg = ((int)attributes & 0xF0) >> 4; Console.Write("\x1B[m"); if (fg != 0) { Console.ForegroundColor = AttributeToConsoleColor(fg); } if (bg != 0) { Console.BackgroundColor = AttributeToConsoleColor(bg); } if (attributes.HasFlag(TerminalAttributes.ATTRIBUTE_UNDERLINE)) { Console.Write("\x1B[4m"); } if (attributes.HasFlag(TerminalAttributes.ATTRIBUTE_BLINK)) { Console.Write("\x1B[5m"); } if (attributes.HasFlag(TerminalAttributes.ATTRIBUTE_BOLD)) { Console.Write("\x1B[1m"); } if (attributes.HasFlag(TerminalAttributes.ATTRIBUTE_REVERSE)) { Console.Write("\x1B[7m"); } if (attributes.HasFlag(TerminalAttributes.ATTRIBUTE_PROTECT)) { Console.Write("\x1B[7m"); } if (attributes.HasFlag(TerminalAttributes.ATTRIBUTE_STANDOUT)) { Console.Write("\x1B[3m"); } if (attributes.HasFlag(TerminalAttributes.ATTRIBUTE_INVIS)) { Console.Write("\x1B[8m"); } if (attributes.HasFlag(TerminalAttributes.ATTRIBUTE_DIM)) { Console.Write("\x1B[2m"); } Console.Out.Flush(); }
public void AttributesOn(TerminalAttributes attributes) { mutex.WaitOne(); if (((int)attributes & 0xFF) != 0) { prevColorTable [(int)attributes & 0xFF] = (int)activeAttributes & 0xFF; activeAttributes &= (TerminalAttributes)0xFF00; } activeAttributes |= attributes; actionQueue.Enqueue(new SetAttributesAction(activeAttributes)); mutex.ReleaseMutex(); }
public void AttributesOff(TerminalAttributes attributes) { mutex.WaitOne(); if (((int)attributes & 0xFF) != 0) { activeAttributes &= (TerminalAttributes)0xFF00; activeAttributes |= (TerminalAttributes)( prevColorTable [(int)attributes & 0xFF] ); } else { activeAttributes &= ~attributes; } actionQueue.Enqueue(new SetAttributesAction(activeAttributes)); mutex.ReleaseMutex(); }
private static IodineObject AttributeOff(VirtualMachine vm, IodineObject self, IodineObject[] args) { if (args.Length == 0) { vm.RaiseException(new IodineArgumentException(1)); return(null); } AttributeWrapper attrWrapper = args [0] as AttributeWrapper; if (attrWrapper == null) { vm.RaiseException(new IodineTypeException("TerminalAttribute")); return(null); } TerminalAttributes attr = attrWrapper.Value; activeTerminal.AttributesOff(attr); return(null); }
public AttributeWrapper(TerminalAttributes value) : base(new IodineTypeDefinition("TerminalAttribute")) { Value = value; }
public void InitPair(int index, int forecolor, int backcolor) { TerminalAttributes attr = (TerminalAttributes)(forecolor | (backcolor << 4)); palette [index & 0x0F] = attr; }
public abstract void SetTerminalAttributes(TerminalAttributes attributes);
public SetAttributesAction(TerminalAttributes attributes) { Attributes = attributes; }