/*
 * 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 BACKGROUND_COLOR = "backgroundColor";
  static final String FOREGROUND_COLOR = "foregroundColor";
  static final String USE_CUSTOM_FONT = "useCustomFont";
  static final String CUSTOM_FONT_DATA = "customFontData";

  private PreferenceNames() {}
}
