/*
 * Copyright (c) 2012 Google Inc.
 *
 * All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse
 * Public License v1.0 which accompanies this distribution, and is available at
 *
 * http://www.eclipse.org/legal/epl-v10.html
 */
package com.google.eclipse.terminal.local.ui.preferences;

/**
 * @author alruiz@google.com (Alex Ruiz)
 */
final class PreferenceNames {
  static final String BUFFER_LINE_COUNT = "bufferLineCount";
  static final String CLOSE_VIEW_ON_EXIT = "exitViewOnExit";
  static final String WARN_ON_CLOSE = "warnOnClose";
  static final String BACKGROUND_COLOR = "backgroundColor";
  static final String FOREGROUND_COLOR = "foregroundColor";
  static final String USE_CUSTOM_FONT = "useCustomFont";
  static final String CUSTOM_FONT_DATA = "customFontData";
  static final String USE_BLINKING_CURSOR = "useBlinkingCursor";

  private PreferenceNames() {}
}
