From 7e55f3078442ba83ef669e018645128b29daae17 Mon Sep 17 00:00:00 2001
From: Konstantin Aladyshev <aladyshev22@gmail.com>
Date: Sun, 27 Mar 2022 19:19:23 +0300
Subject: Update HIIFormDataElements application

Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
---
 UefiLessonsPkg/HIIFormDataElements/Data.h      |  5 ++++
 UefiLessonsPkg/HIIFormDataElements/Form.vfr    | 38 ++++++++++++++++++++++++++
 UefiLessonsPkg/HIIFormDataElements/Strings.uni | 16 +++++++++++
 3 files changed, 59 insertions(+)

diff --git a/UefiLessonsPkg/HIIFormDataElements/Data.h b/UefiLessonsPkg/HIIFormDataElements/Data.h
index 8fda1fc..ad5689a 100644
--- a/UefiLessonsPkg/HIIFormDataElements/Data.h
+++ b/UefiLessonsPkg/HIIFormDataElements/Data.h
@@ -9,6 +9,11 @@
 typedef struct {
   UINT8 CheckboxValue;
   UINT16 NumericValue;
+  CHAR16 StringValue[11];
+  EFI_HII_DATE DateValue;
+  EFI_HII_TIME TimeValue;
+  UINT8 OneOfValue;
+  UINT8 OrderedListValue[3];
 } UEFI_VARIABLE_STRUCTURE;
 #pragma pack()
 
diff --git a/UefiLessonsPkg/HIIFormDataElements/Form.vfr b/UefiLessonsPkg/HIIFormDataElements/Form.vfr
index 42affd4..cd275a6 100644
--- a/UefiLessonsPkg/HIIFormDataElements/Form.vfr
+++ b/UefiLessonsPkg/HIIFormDataElements/Form.vfr
@@ -30,5 +30,43 @@ formset
       maximum = 0xaa55,
       step = 2,
     endnumeric;
+
+    string
+      varid = FormData.StringValue,
+      prompt = STRING_TOKEN(STRING_PROMPT),
+      help = STRING_TOKEN(STRING_HELP),
+      minsize = 5,
+      maxsize = 10,
+    endstring;
+
+    date
+      varid = FormData.DateValue,
+      prompt = STRING_TOKEN(DATE_PROMPT),
+      help = STRING_TOKEN(DATE_HELP),
+    enddate;
+
+    time
+      varid = FormData.TimeValue,
+      prompt = STRING_TOKEN(TIME_PROMPT),
+      help = STRING_TOKEN(TIME_HELP),
+    endtime;
+
+    oneof
+      varid = FormData.OneOfValue,
+      prompt = STRING_TOKEN(ONEOF_PROMPT),
+      help = STRING_TOKEN(ONEOF_HELP),
+      option text = STRING_TOKEN(ONEOF_OPTION1), value = 0x00, flags = DEFAULT;
+      option text = STRING_TOKEN(ONEOF_OPTION2), value = 0x33, flags = 0;
+      option text = STRING_TOKEN(ONEOF_OPTION3), value = 0x55, flags = 0;
+    endoneof;
+
+    orderedlist
+      varid = FormData.OrderedListValue,
+      prompt = STRING_TOKEN(ORDERED_LIST_PROMPT),
+      help = STRING_TOKEN(ORDERED_LIST_HELP),
+      option text = STRING_TOKEN(ORDERED_LIST_OPTION1), value = 0x0A, flags = 0;
+      option text = STRING_TOKEN(ORDERED_LIST_OPTION2), value = 0x0B, flags = 0;
+      option text = STRING_TOKEN(ORDERED_LIST_OPTION3), value = 0x0C, flags = 0;
+    endlist;
   endform;
 endformset;
diff --git a/UefiLessonsPkg/HIIFormDataElements/Strings.uni b/UefiLessonsPkg/HIIFormDataElements/Strings.uni
index f32051c..6429f55 100644
--- a/UefiLessonsPkg/HIIFormDataElements/Strings.uni
+++ b/UefiLessonsPkg/HIIFormDataElements/Strings.uni
@@ -13,3 +13,19 @@
 #string CHECKBOX_HELP          #language en-US  "Checkbox help"
 #string NUMERIC_PROMPT         #language en-US  "Numeric prompt"
 #string NUMERIC_HELP           #language en-US  "Numeric help"
+#string STRING_PROMPT          #language en-US  "String prompt"
+#string STRING_HELP            #language en-US  "String help"
+#string DATE_PROMPT            #language en-US  "Date prompt"
+#string DATE_HELP              #language en-US  "Date help"
+#string TIME_PROMPT            #language en-US  "Time prompt"
+#string TIME_HELP              #language en-US  "Time help"
+#string ONEOF_PROMPT           #language en-US  "OneOf list prompt"
+#string ONEOF_HELP             #language en-US  "OneOf list help"
+#string ONEOF_OPTION1          #language en-US  "OneOf list option 1"
+#string ONEOF_OPTION2          #language en-US  "OneOf list option 2"
+#string ONEOF_OPTION3          #language en-US  "OneOf list option 3"
+#string ORDERED_LIST_PROMPT    #language en-US  "Ordered list prompt"
+#string ORDERED_LIST_HELP      #language en-US  "Ordered list help"
+#string ORDERED_LIST_OPTION1   #language en-US  "Ordered list option 1"
+#string ORDERED_LIST_OPTION2   #language en-US  "Ordered list option 2"
+#string ORDERED_LIST_OPTION3   #language en-US  "Ordered list option 3"
-- 
cgit v1.2.3-18-g5258