///** @file
//  Boot Maintenance Utility Formset
//
//  Copyright (c) 2004 - 2018, 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 "FormGuid.h"

formset
  guid = BOOT_MAINT_FORMSET_GUID,
  title = STRING_TOKEN(STR_FORM_MAIN_TITLE),
  help = STRING_TOKEN(STR_BOOT_MAINT_MANAGER_HELP),
  classguid = gEfiIfrFrontPageGuid,

  varstore BMM_FAKE_NV_DATA,
    varid = VARSTORE_ID_BOOT_MAINT,
    name = BmmData,
    guid = BOOT_MAINT_FORMSET_GUID;

  form formid = FORM_MAIN_ID,
       title = STRING_TOKEN(STR_FORM_MAIN_TITLE);
       //
       // Add this invisible text in order to indicate enter Boot Maintenance Manager form.
       // To trigger the form open action.
       //
       suppressif TRUE;
          text
              help  = STRING_TOKEN(STR_NONE),
              text  = STRING_TOKEN(STR_NONE),
              flags = INTERACTIVE,
              key   = KEY_VALUE_TRIGGER_FORM_OPEN_ACTION;
       endif;

    label LABEL_FORM_MAIN_START;
    //
    // This is where we will dynamically add a Action type op-code to show
    // the platform information.
    //
    label LABEL_FORM_MAIN_END;

  endform;

  form formid = FORM_BOOT_SETUP_ID,
       title = STRING_TOKEN(STR_FORM_BOOT_SETUP_TITLE);

       goto FORM_MAIN_ID,
            prompt = STRING_TOKEN(STR_FORM_GOTO_MAIN),
            help = STRING_TOKEN(STR_FORM_GOTO_MAIN);
            //flags = INTERACTIVE,
            //key = FORM_MAIN_ID;

       goto FORM_BOOT_SETUP_ID,
            prompt = STRING_TOKEN(STR_FORM_BOOT_ADD_TITLE),
            help = STRING_TOKEN(STR_FORM_BOOT_ADD_HELP),
            flags = INTERACTIVE,
            key = FORM_BOOT_ADD_ID;

       goto FORM_BOOT_DEL_ID,
            prompt = STRING_TOKEN(STR_FORM_BOOT_DEL_TITLE),
            help = STRING_TOKEN(STR_FORM_BOOT_IMMEDIATE_HELP),
            flags = INTERACTIVE,
            key = FORM_BOOT_DEL_ID;

       goto FORM_BOOT_CHG_ID,
            prompt = STRING_TOKEN(STR_FORM_BOOT_CHG_TITLE),
            help = STRING_TOKEN(STR_FORM_BOOT_IMMEDIATE_HELP),
            flags = INTERACTIVE,
            key = FORM_BOOT_CHG_ID;
  endform;

  form formid = FORM_DRIVER_SETUP_ID,
       title = STRING_TOKEN(STR_FORM_DRIVER_SETUP_TITLE);

       goto FORM_MAIN_ID,
            prompt = STRING_TOKEN(STR_FORM_GOTO_MAIN),
            help = STRING_TOKEN(STR_FORM_GOTO_MAIN);
            //help = STRING_TOKEN(STR_FORM_GOTO_MAIN),
            //flags = INTERACTIVE,
            //key = FORM_MAIN_ID;

       goto FORM_DRV_ADD_ID,
            prompt = STRING_TOKEN(STR_FORM_DRV_ADD_TITLE),
            help = STRING_TOKEN(STR_FORM_DRV_ADD_HELP),
            flags = INTERACTIVE,
            key = FORM_DRV_ADD_ID;

       goto FORM_DRV_DEL_ID,
            prompt = STRING_TOKEN(STR_FORM_DRV_DEL_TITLE),
            help = STRING_TOKEN(STR_FORM_NEXT_BOOT_HELP),
            flags = INTERACTIVE,
            key = FORM_DRV_DEL_ID;

       goto FORM_DRV_CHG_ID,
            prompt = STRING_TOKEN(STR_FORM_DRV_CHG_TITLE),
            help = STRING_TOKEN(STR_FORM_NEXT_BOOT_HELP),
            flags = INTERACTIVE,
            key = FORM_DRV_CHG_ID;
  endform;

   form formid = FORM_BOOT_ADD_ID,
       title = STRING_TOKEN(STR_FORM_BOOT_ADD_DESC_TITLE);

       label FORM_BOOT_ADD_ID;
       label LABEL_END;

       subtitle text = STRING_TOKEN(STR_NULL_STRING);

       string    varid    = BmmData.BootDescriptionData,
                 questionid = KEY_VALUE_BOOT_DESCRIPTION,
                 prompt   = STRING_TOKEN(STR_LOAD_OPTION_DESC),
                 help     = STRING_TOKEN(STR_NULL_STRING),
                 flags    = INTERACTIVE,
                 minsize  = 6,
                 maxsize  = 75,
       endstring;

       string    varid    = BmmData.BootOptionalData,
                 questionid = KEY_VALUE_BOOT_OPTION,
                 prompt   = STRING_TOKEN(STR_OPTIONAL_DATA),
                 help     = STRING_TOKEN(STR_NULL_STRING),
                 flags    = INTERACTIVE,
                 minsize  = 0,
                 maxsize  = 120,
       endstring;

       subtitle text = STRING_TOKEN(STR_NULL_STRING);

       text
         help   = STRING_TOKEN(STR_SAVE_AND_EXIT),
         text   = STRING_TOKEN(STR_SAVE_AND_EXIT),
         flags  = INTERACTIVE,
         key    = KEY_VALUE_SAVE_AND_EXIT_BOOT;

       text
         help   = STRING_TOKEN(STR_NO_SAVE_AND_EXIT),
         text   = STRING_TOKEN(STR_NO_SAVE_AND_EXIT),
         flags  = INTERACTIVE,
         key    = KEY_VALUE_NO_SAVE_AND_EXIT_BOOT;

  endform;

  form formid = FORM_BOOT_DEL_ID,
       title = STRING_TOKEN(STR_FORM_BOOT_DEL_TITLE);

       label FORM_BOOT_DEL_ID;
       label LABEL_END;
  endform;

  form formid = FORM_BOOT_CHG_ID,
       title = STRING_TOKEN(STR_FORM_BOOT_CHG_TITLE);

       label FORM_BOOT_CHG_ID;
       label LABEL_END;

  endform;

  form formid = FORM_DRV_ADD_ID,
       title = STRING_TOKEN(STR_FORM_DRV_ADD_TITLE);

       goto FORM_MAIN_ID,
            prompt = STRING_TOKEN(STR_FORM_GOTO_MAIN),
            help = STRING_TOKEN(STR_FORM_GOTO_MAIN);
            //flags = INTERACTIVE,
            //key = FORM_MAIN_ID;

       goto FORM_DRIVER_SETUP_ID,
            prompt = STRING_TOKEN(STR_FORM_DRV_ADD_FILE_TITLE),
            help = STRING_TOKEN(STR_FORM_DRV_ADD_FILE_TITLE),
            flags = INTERACTIVE,
            key = FORM_DRV_ADD_FILE_ID;

  endform;

  form formid = FORM_DRV_ADD_FILE_ID,
       title = STRING_TOKEN(STR_FORM_DRV_ADD_DESC_TITLE);

       label FORM_DRV_ADD_FILE_ID;
       label LABEL_END;

       subtitle text = STRING_TOKEN(STR_NULL_STRING);

       string    varid    = BmmData.DriverDescriptionData,
                 questionid = KEY_VALUE_DRIVER_DESCRIPTION,
                 prompt   = STRING_TOKEN(STR_LOAD_OPTION_DESC),
                 help     = STRING_TOKEN(STR_NULL_STRING),
                 flags    = INTERACTIVE,
                 minsize  = 6,
                 maxsize  = 75,
       endstring;

       string    varid    = BmmData.DriverOptionalData,
                 questionid = KEY_VALUE_DRIVER_OPTION,
                 prompt   = STRING_TOKEN(STR_OPTIONAL_DATA),
                 help     = STRING_TOKEN(STR_NULL_STRING),
                 flags    = INTERACTIVE,
                 minsize  = 0,
                 maxsize  = 120,
       endstring;

       checkbox varid    = BmmData.ForceReconnect,
               prompt   = STRING_TOKEN(STR_LOAD_OPTION_FORCE_RECON),
               help     = STRING_TOKEN(STR_LOAD_OPTION_FORCE_RECON),
               flags    = CHECKBOX_DEFAULT,
               key      = 0,
       endcheckbox;

       subtitle text = STRING_TOKEN(STR_NULL_STRING);

       text
         help   = STRING_TOKEN(STR_SAVE_AND_EXIT),
         text   = STRING_TOKEN(STR_SAVE_AND_EXIT),
         flags  = INTERACTIVE,
         key    = KEY_VALUE_SAVE_AND_EXIT_DRIVER;  //BUGBUB: allow duplicate key in one formset???

       text
         help   = STRING_TOKEN(STR_NO_SAVE_AND_EXIT),
         text   = STRING_TOKEN(STR_NO_SAVE_AND_EXIT),
         flags  = INTERACTIVE,
         key    = KEY_VALUE_NO_SAVE_AND_EXIT_DRIVER;
  endform;

  form formid = FORM_DRV_DEL_ID,
       title = STRING_TOKEN(STR_FORM_DRV_DEL_TITLE);

       label FORM_DRV_DEL_ID;
       label LABEL_END;

  endform;

  form formid = FORM_DRV_CHG_ID,
       title = STRING_TOKEN(STR_FORM_DRV_CHG_TITLE);

       label FORM_DRV_CHG_ID;
       label LABEL_END;

  endform;

  form formid = FORM_CON_MAIN_ID,
       title = STRING_TOKEN(STR_FORM_CON_MAIN_TITLE);

       goto FORM_MAIN_ID,
       prompt = STRING_TOKEN(STR_FORM_GOTO_MAIN),
       help = STRING_TOKEN(STR_FORM_GOTO_MAIN);
       //flags = INTERACTIVE,
       //key = FORM_MAIN_ID;

       goto FORM_CON_IN_ID,
       prompt = STRING_TOKEN(STR_FORM_CON_IN_TITLE),
       help = STRING_TOKEN(STR_FORM_CON_IN_HELP),
       flags = INTERACTIVE,
       key = FORM_CON_IN_ID;

       goto FORM_CON_OUT_ID,
       prompt = STRING_TOKEN(STR_FORM_CON_OUT_TITLE),
       help = STRING_TOKEN(STR_FORM_CON_OUT_HELP),
       flags = INTERACTIVE,
       key = FORM_CON_OUT_ID;

       goto FORM_CON_ERR_ID,
       prompt = STRING_TOKEN(STR_FORM_STD_ERR_TITLE),
       help = STRING_TOKEN(STR_FORM_STD_ERR_HELP),
       flags = INTERACTIVE,
       key = FORM_CON_ERR_ID;

       goto FORM_CON_MODE_ID,
       prompt = STRING_TOKEN(STR_FORM_MODE_TITLE),
       help = STRING_TOKEN(STR_FORM_MODE_HELP),
       flags = INTERACTIVE,
       key = FORM_CON_MODE_ID;

       goto FORM_CON_COM_ID,
       prompt = STRING_TOKEN(STR_FORM_COM_TITLE),
       help = STRING_TOKEN(STR_FORM_COM_HELP),
       flags = INTERACTIVE,
       key = FORM_CON_COM_ID;
  endform;

  form formid = FORM_CON_MODE_ID,
       title = STRING_TOKEN(STR_FORM_MODE_TITLE);

       label FORM_CON_MODE_ID;
       label LABEL_END;
  endform;

  form formid = FORM_CON_COM_ID,
       title = STRING_TOKEN(STR_FORM_COM_TITLE);

       label FORM_CON_COM_ID;
       label LABEL_END;
  endform;

  form formid = FORM_CON_COM_SETUP_ID,
       title = STRING_TOKEN(STR_CON_COM_SETUP);

       label FORM_CON_COM_SETUP_ID;
       label LABEL_END;
  endform;

  form formid = FORM_FILE_SEEK_ID,
       title = STRING_TOKEN(STR_FORM_BOOT_ADD_TITLE);

       label FORM_FILE_SEEK_ID;
       label LABEL_END;
  endform;

  form formid = FORM_FILE_NEW_SEEK_ID,
       title = STRING_TOKEN(STR_FORM_BOOT_ADD_TITLE);

       label FORM_FILE_NEW_SEEK_ID;
       label LABEL_END;
  endform;

  form formid = FORM_DRV_ADD_HANDLE_ID,
       title = STRING_TOKEN(STR_FORM_DRV_ADD_HANDLE_TITLE);

       label FORM_DRV_ADD_HANDLE_ID;
       label LABEL_END;
  endform;

  form formid = FORM_DRV_ADD_HANDLE_DESC_ID,
       title = STRING_TOKEN(STR_FORM_DRV_ADD_DESC_TITLE);

       label FORM_DRV_ADD_HANDLE_DESC_ID;
       label LABEL_END;

  endform;

  form formid = FORM_CON_IN_ID,
       title = STRING_TOKEN(STR_FORM_CON_IN_TITLE);

       label FORM_CON_IN_ID;
       label LABEL_END;

  endform;

  form formid = FORM_CON_OUT_ID,
       title = STRING_TOKEN(STR_FORM_CON_OUT_TITLE);

       label FORM_CON_OUT_ID;
       label LABEL_END;

  endform;

  form formid = FORM_CON_ERR_ID,
       title = STRING_TOKEN(STR_FORM_STD_ERR_TITLE);

       label FORM_CON_ERR_ID;
       label LABEL_END;

  endform;

endformset;
