csiDecSetMode function

void csiDecSetMode(
  1. int mode,
  2. bool enabled,
  3. Terminal terminal
)

Implementation

void csiDecSetMode(int mode, bool enabled, Terminal terminal) {
  switch (mode) {
    case 1:
      terminal.setApplicationCursorKeys(enabled);
      break;
    // case "?3":
    // 	if (enabled) {
    // 		// DECCOLM - COLumn mode, 132 characters per line
    // 		terminal.setSize(132, uint(lines));
    // 	} else {
    // 		// DECCOLM - 80 characters per line (erases screen)
    // 		terminal.setSize(80, uint(lines));
    // 	}
    // 	terminal.clear();
    // case "?4":
    // 	// DECSCLM
    case 5:
      // DECSCNM
      terminal.setScreenMode(enabled);
      break;
    case 6:
      // DECOM
      terminal.setOriginMode(enabled);
      break;
    case 7:
      //DECAWM
      terminal.setAutoWrapMode(enabled);
      break;
    case 9:
      if (enabled) {
        // terminal.setMouseMode(MouseMode.x10);
      } else {
        terminal.setMouseMode(MouseMode.none);
      }
      break;
    case 12:
    case 13:
      terminal.setBlinkingCursor(enabled);
      break;
    case 25:
      terminal.setShowCursor(enabled);
      break;
    case 47:
    case 1047:
      if (enabled) {
        terminal.useAltBuffer();
      } else {
        terminal.useMainBuffer();
      }
      break;
    case 1000:
    case 10061000:
      // enable mouse tracking
      // 1000 refers to ext mode for extended mouse click area - otherwise only x <= 255-31
      if (enabled) {
        // terminal.setMouseMode(MouseMode.vt200);
      } else {
        terminal.setMouseMode(MouseMode.none);
      }
      break;
    case 1002:
      // enable mouse tracking
      // 1000 refers to ext mode for extended mouse click area - otherwise only x <= 255-31
      if (enabled) {
        // terminal.setMouseMode(MouseMode.buttonEvent);
      } else {
        terminal.setMouseMode(MouseMode.none);
      }
      break;
    case 1003:
      if (enabled) {
        // terminal.setMouseMode(MouseMode.anyEvent);
      } else {
        terminal.setMouseMode(MouseMode.none);
      }
      break;
    case 1005:
      if (enabled) {
        // terminal.setMouseExtMode(MouseExt.utf);
      } else {
        // terminal.setMouseExtMode(MouseExt.none);
      }
      break;
    case 1006:
      if (enabled) {
        // terminal.setMouseExtMode(MouseExt.sgr);
      } else {
        // terminal.setMouseExtMode(MouseExt.none);
      }
      break;
    case 1048:
      if (enabled) {
        terminal.buffer.saveCursor();
      } else {
        terminal.buffer.restoreCursor();
      }
      break;
    case 1049:
      if (enabled) {
        terminal.useAltBuffer();
        terminal.buffer.clear();
      } else {
        terminal.useMainBuffer();
      }
      break;
    case 2004:
      terminal.setBracketedPasteMode(enabled);
      break;
    default:
      terminal.debug.onError('unsupported mode: $mode');
      return;
  }
}