Mainmenu is the screen to list and entry varous cosmos apps
Main functionality:
-Browse apps in Multi-page style menu
-User can customize the app item order
-Shortcut bar for common apps
1. File structure
Venusmmi/APP/COSMOS/mainmenu vapp_mainmenu. [CPP | H] mainmenu APP/screen, app order Data Handling
Venusmmi/APP/COSMOS/mainmenu vapp_mainmenu_builder. [CPP | H] init the mainmenu presentation from the app order data
Venusmmi/APP/COSMOS/mainmenu vapp_mainmenu_default_order.h contain the default order list
Venusmmi/APP/COSMOS/mainmenu vapp_mainmenu_gprot.h mainmenu Interface
Venusmmi/APP/COSMOS/mainmenu vapp_mainmenu_page_menu. [CPP | H] The mainmenu presentation (Browse/organize modes handling)
Venusmmi/APP/COSMOS/mainmenu vapp_mainmenu_shortcut_bar. [CPP | H] the shortcut bar to be shown in home
Venusmmi/APP/COSMOS/mainmenu/RES resource files
Common files with 3D mainmenu
Venusmmi/APP/common/interface/CP/vcp_page_menu_util.h handling mainmenu layout/Effect
Venusmmi/APP/common/CP/vcp_page_menu_util.cpp handling mainmenu layout/Effect
2. Class
Vappmainmenuapp
-Represent mainmenu app
Vappmainmenuscr
-The mainmenu screen, handling the overall layout, and maintain the mainmenuapp order data
Vappmainmenupagemenu
Vappmainmenupagemenu
-Presentation of the mainmenu items
Vcppagemenuview
-The classes starts with VCP are the common part of cosmos mainmenu and 3D mainmenu, this class handling the layout of MEMU items
Ivcppageview, vcprotatepageview
-Handle menu item level layout/animation/Effect
Vcppagemenulayout
-Struct to hold the menu item layout setting
Vcppagemenuindicator
-The menu indicator control
Vcppagemenuindicatorlayout
-Struct to hold the indicator layout setting
Vcppagemenucell
-Base class for menu item (cell)
Vappmainmenucell
-Class to handle cosmos specific menu item Functions
Vappmainmenubuilder
-Setup the menu items from the mainmenu app order data
Vappmainmenushortcutbar
-A control to be shown on the bottom of home, to access part of the mainmenu Functions
Vappmainmenuscr: m_allorderdata
-An array of APP names
Each app name Max size is 60
Ex: {"app_name_1/0 ",
"App_name_2/0 ",
"App_name_3/0 ",
...}
Vappmainmenupagemenu: m_cells
-An array to cell Frames
Menu item order table: {"app_name_4/0 ",
"App_name_5/0 ",
"App_name_6/0 ",
"App_name_7/0 ",
"/0 ",
"App_name_0/0 "...}
Cell array: number means a pointer to a cell, assume 16 cells per page
{4, 5, 6, 7, Null x 12, first page
0, 1, 2, 3, 8, 9, 10, 11, Null x 8} 2nd pages