Note: VFR “formset”subclass in Phoenix SCT2

see Section 1.6.25. formset in SCT 2.1 Volume 2 Document

formset

subclass-keyword := SETUP_APPLICATION | GENERAL_APPLICATION | FRONT_PAGE |

SINGLE_USE | uint16

Subclass support implement in .\System01\HII\FormBrowserLayout\Dxe\SystemHiiFormBrowserLayout.c

STATIC SCT_FORM_BROWSER_LAYOUT_LIST_PROTOCOL ProtocolTemplate [] = {
  {
    EFI_SETUP_APPLICATION_SUBCLASS, SCT_FORM_BROWSER_LAYOUT_STANDARD,
  },
  {
 EFI_FRONT_PAGE_SUBCLASS, SCT_FORM_BROWSER_LAYOUT_NO_HELP,
  },
  {
 EFI_SINGLE_USE_SUBCLASS, SCT_FORM_BROWSER_LAYOUT_POPUP,
  },
  {
 EFI_GENERAL_APPLICATION_SUBCLASS, SCT_FORM_BROWSER_LAYOUT_POPUP,
  },
  {
    SCT_FORM_BROWSER_LAYOUT_LIST_END,
    ZERO_GUID,
  },
};

Layout implement in .\System01\HII\FormBrowserLayout\Dxe

簡單講就是指定fromset的顯示的類型, 有標準型的Setup Application, 這個帶有Help欄, 還是一般的Applicaiton/SingleUse 都是PopUp 形式, 剩下一種是FRONT_PAGE, 就是把Standard的Help 欄位取消, 今天還發現SCT 2.1跟EDKII比起來有個缺點, EDKII 如果一個字串過長會自動摺疊到下一行, SCT2.1 目前沒有把這個做出來, 應該是要改 Presentation.c 吧,

EDK2 的 Presentation 在.\MdeModulePkg\Universal\SetupBrowserDxe 下, 這裡也可以看到 VFR compiling 過後產生的 IFR binary怎樣被Parse建構成每個視覺元件的資料結構.

而 VFR 語法的應用的 Sample在 \MdeModulePkg\Universal\DriverSampleDxe 下, 當跑NT32 emulation 時 進 Setup 選DeviceManager\BrowserTestcase Engine 就是會跑 DriverSample 進行測試

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: