/** @file
 Platform variable cleanup Formset.

Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution.  The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

**/

#include "PlatVarCleanupHii.h"

formset
  guid     = VARIABLE_CLEANUP_HII_GUID,
  title    = STRING_TOKEN(STR_ENTRY_TITLE),
  help     = STRING_TOKEN(STR_TITLE_HELP),

  varstore VARIABLE_CLEANUP_DATA,
    varid = VARIABLE_CLEANUP_VARSTORE_ID,
    name  = VariableCleanup,
    guid  = VARIABLE_CLEANUP_HII_GUID;

  form formid = FORM_ID_VARIABLE_CLEANUP,
    title = STRING_TOKEN(STR_TITLE);

    checkbox varid = VARIABLE_CLEANUP_DATA.SelectAll,
      prompt   = STRING_TOKEN(STR_SELECT_ALL_PROMPT),
      help     = STRING_TOKEN(STR_SELECT_ALL_HELP),
      flags    = INTERACTIVE,
      key      = SELECT_ALL_QUESTION_ID,
    endcheckbox;

    label LABEL_START;
    label LABEL_END;

  endform;
endformset;
