设计Main Menu中 Sound 里添加一项volume,由此可以跳转到Audio volume menu,Audio volume menu有进度条

解决方法:

1.       Sound 里添加volume

2.       Sound所有项可以上下切换

3.       Sound里的volume项后显示数字

4.       Sound可以快捷跳转到audio volume

5.       audio volume menu要有进度条

6.       Audio volume menu,按menu键,返回到main menu sound

 

设计思路:

第一步:Audio volume要有进度条

1.       使用skin tool打开308程序/tv-ap/dvb/ui2/osd_resource/skintool/res1366x768x565/ZUI.xml

2.       设置

  

3.       建立出logic gwin

4.       HWND_MAINFRAME上放置需要的元件(利用button按钮添加)

 

5.       设置VOLUME_NEW_CONFIG_BAR的属性

  

6.       设置VOLUME_NEW_CONFIG_TEXT的属性

  

   注意:VOLUME_NEW_CONFIG_TEXT的长宽度,可能影响是否显示

7.       设置Build Table Option

  

8.       使用Compile Table自动生成出INL

9.       tables.htable.cINL#include

注意:ZUI_tables_h.inl里的编译路径,在程序中都是调用ZUI_tables_h.inl

7.       ZUI_AUDIO_VOLUME_NEW_tables_c.inl设置HWND_VOLUME_NEW_CONFIG_BAR的属性为

EN_ZUI_BALLPROGRESSBAR_WINPROC

8.  ZUI_AUDIO_VOLUME_NEW_tables_c.inl设置   

HWND_VOLUME_NEW_CONFIG_TEXT的属性为

EN_ZUI_DYNAMICCOLORTEXT_WINPROC

8.       ZUI_AUDIO_VOLUME_NEW_tables_c.inl设置  HWND_VOLUME_NEW_CONFIG_PANE的属性为

EN_ZUI_AUTOCLOSE_WINPROC

(void*)AUDIO_VOLUME_TIME_OUT_MS

 

9. ZUI_AUDIO_VOLUME_NEW_tables_c.inl设置  HWND_VOLUME_NEW_CONFIG_PANE的属性为

   EN_ZUI_BGTANSPARENT_WINPROC

  

第二步:SOUND所有项可以上下切换

1.       使用skin tool打开308程序/tv-ap/dvb/ui2/osd_resource/skintool/res1366x768x565/ZUI.xml

2.       打开MAIN MENU菜单

3.       HWND_MAINFRAME/ MENU_SOUND_PAGE/ MENU_SOUND_PAGE_LIST/上放置需要的元件(利用button按钮添加)

   MENU_SOUND_VOLUME

       MENU_SOUND_VOLUME_TEXT

       MENU_SOUND_VOLUME_OPTION

 

 

4.       设置MENU_SOUND_VOLUME的属性

   

5.       设置MENU_SOUND_VOLUME_OPTION的属性

   

6. ZUI_MAIN_MENU_tables_c.inl中设置HWND_MENU_SOUND_PAGE_LIST的属性为 HWND_MENU_SOUND_VOLUME

static GUI_DATA_DYNAMIC_LIST _ZUI_TBLSEG _MENU_SOUND_PAGE_DATA =

{

HWND_MENU_SOUND_SNDMODE,

HWND_MENU_SOUND_VOLUME,

&_MENU_PAGE_LIST_VARDATA

};

 

1.       ZUI_MAIN_MENU_tables_c.inl中设置HWND_MENU_SOUND_VOLUME_OPTION的属性为EN_ZUI_DYNAMICTEXT_WINPROC

    // 97 = HWND_MENU_SOUND_VOLUME_OPTION

    {

        EN_ZUI_DYNAMICTEXT_WINPROC, NULL, WS_VISIBLE|WS_FOCUSABLE,

        NULL,

        NULL,

    },

 

第三步:SOUND里的VOLUME项可以快捷跳出VOLUME菜单

   菜单操作分为:

(1)       API:掌握UI framework的基本操作,包含message的传送和状态的处理

(2)       CTL:管理各种不同的controls,有各种UI stylebehavior

(3)       ACT: 不應該在API区域写某些按键的特別处理,或某些HWND的特別显示 (只有HWND_MAINFRAME是特例处理)

   

 

   ZUI state的五种状态转化:

(1)       E_ZUI_STATE_UNKNOW---系统启动

(2)       E_ZUI_STATE_STANDBY---初始化后,等待OSD PAGE的请求

(3)       E_ZUI_STATE_RUNNING—osd age请求,为osd page提供数据,process/dispatch

(4)       E_ZUI_STATE_TRANSEFF_DOING

(5)       E_ZUI_STATE_TRANSEFF_END

(6)       E_ZUI_STATE_TERMINATE

 

  OSD pages provide these handlers:

(4)       Show

(5)       Terminate

(6)       Global Keys

(7)       Actions

(8)       Dynamic Text / Dynamic Values /

 

    Menu State        MApp_ZUI_ACTmenu

StartupOSD    ---------à         Show

ShutdownOSD  ---------à       Terminate

ProcessKey     ---------à      Global Key Handler

Execute Action  ---------à        Execute Action

1.       ZUI_MAIN_MENU_tables_c.inl中设置

HWND_MENU_SOUND_VOLUME的属性为

       _MENU_SOUND_VOLUME_KEY,

// 95 = HWND_MENU_SOUND_VOLUME

{

EN_ZUI_DEFAULTWINPROC, NULL, WS_VISIBLE|WS_FOCUSABLE|WS_SRCALPHAREPLACEDSTALPHA,

        _MENU_SOUND_VOLUME_Navigation,

        _MENU_SOUND_VOLUME_KEY,

},

 

static KEYEVENT _ZUI_TBLSEG _MENU_SOUND_VOLUME_KEY[] =

{

{ VK_SELECT, EN_EXE_GOTO_SOUND_VOLUME_PAGE  },

{ VK_UP, EN_EXE_NOTIFY_PARENT_KEY_UP },

{ VK_DOWN, EN_EXE_NOTIFY_PARENT_KEY_DOWN },

{ VK_UP, EN_EXE_EFFECT_SLIDEITEM },

{ VK_DOWN, EN_EXE_EFFECT_SLIDEITEM },

{ VK_LEFT , EN_EXE_EFFECT_FLIPPAGE_LEFT },

{ VK_RIGHT , EN_EXE_EFFECT_FLIPPAGE_RIGHT },

{ VK_NULL, 0 },

};

2. 在函数中BOOLEAN MApp_ZUI_ACT_ExecuteMainMenuAction(U16 act)中添加EN_EXE_GOTO_SOUND_VOLUME_PAGE

 

第一种方法: STATE_MENU_GOTO_OSDPAGE

 

 第二种方法:

(1) STATE_MENU_GOTO_VOLUME

       (2) MApp_Menu_Main.cEN_RET MApp_Menu_Main(void)

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值