SKINTOOL笔记

SKINTOOL笔记:

一、 最好事前知道

1、 添加控件时,最好知道一些硬件在软件里的跑得过程,可以事半功倍的找到处理函数

 

2、要知道控件的基本属性

每一个属性对应调用一个函数。

常用的属性有:

EN_ZUI_AUTOCLOSE_WINPROC    (自动关闭菜单)

EN_ZUI_DYNAMICTEXT_WINPROC    (动态获取字符串)

EN_ZUI_DYNAMICLIST_WINPROC   (动态列表)

EN_ZUI_DYNAMICEPGPUNCTEXT_WINPROC (字符串自动换行)

EN_ZUI_DYNAMICBITMAP_WINPROC (动态获取Icon)

EN_ZUI_DMP_MARQUEE_WINPROC  (DMP下的字符串跑马灯属性)

没有想用的属性时。可以自己添加属性和函数进行调用。

 

二、 在skintool里新增控件

a) 选择类型相同的控件复制粘贴到列表里面,再修改控件名字(见名知意)和位置。 

 

b) 修改控件简单动作的指向

 

c)  修改控件上的字串信息。字串要在字库(.EST文件)里添加,每种语言都要匹配,最后重新编译。 

 

三、 代码里找到控件

 

根据控件的句柄HWND_MENU_OPTION_TI_MODE_OPTION 找到代码里定义控件属性的对应OSD的table.c 

四、 添加主要实现功能的KEY

 

根据相同类型的控件增加KEY:

 

根据按键操作增加具体的实现函数:EN_EXE_ENABLE_TI_MODE

a)将对应函数添加到枚举里去

 

b)添加具体的逻辑实现(case分支)

 

c)函数调用

//stPanelKTC_DEFAULT_PANEL.stOldPanelTypeFromUtopia.m_bPanelLVDS_TI_MODE  要知道控制功能的寄存器、枚举或函数在哪

MApi_XC_GetPanelSpec(); 获取屏的参数

MApi_PNL_ChangePanelType();更改屏参数 应该是直接修改枚举里的

MApp_ZUI_API_InvalidateWindow();刷新窗口,基本每个函数实现后都要刷新;不刷新不会动态变化。

 

找函数过程:先找了现在使用到的屏的相关stPanelKTC_DEFAULT_PANELà找到panel.c中定义所有类型的屏的大类à然后找了stPanelIndexTbl à还是找到了panel.c,在panel.c中找到关于屏的相关函数(在标志窗口搜mapi,panel可以找到相关的处理函数),找到MApi_XC_GetPanelSpec()函数à然后找MApi_XC_GetPanelSpec,可以找到MApi_PNL_ChangePanelType()函数。

 

笔记:

MApi_XC_GetPanelSpec(g_PNL_TypeSel)->m_bPanelLVDS_TI_MODE = !MApi_XC_GetPanelSpec(g_PNL_TypeSel)->m_bPanelLVDS_TI_MODE

属性=属性取反,可以实现动态变化。 

  

五、 实现动态字符串 enable<---->disable 的改变  

a) 更改控件的属性  

由默认更改到EN_ZUI_DYNAMICTEXT_WINPROC

 

b) 根据改变字符串控件的句柄,参照相同类型的控件添加动态改变字串的函数(也是case分支)

 

 

 

 

 

 

修改音量条显示形式的方法:

一、 找到代码中控制音量条的片段

a) 同样的,根据音量条的句柄HWND_VOLUME_CONFIG_PANE找到对应OSD_table.c中的属性代码

 

 

 

b) 找到实际上控制控件动作的KEY函数或EN_ZUI_类型的属性函数。这里找到的是属性函数:

 

 

二、 找到实现功能的函数进行功能修改

a) 根据之前的属性函数找到其调用的函数

 

b) 进行逻辑修改 实现要求

找函数过程:根据之前的属性函数à找到它调用的BALLPROGRESSBAR_WINPROC()à找到MApp_ZUI_CTL_BallProgressBarWinProc()函数。

 

 

 

笔记部分:

如果是Hide或Disable相关Item,以INSTALL  GUIDE页中的Country选择项为例,复制下此项Item的名字,在程序中查找相关位置,并把此项状态变为    MApp_ZUI_API_ShowWindow(HWND_INSTALL_MAIN_COUNTRY, SW_HIDE)即可隐去;                    MApp_ZUI_API_EnableWindow(HWND_INSTALL_MAIN_COUNTRY,FALSE)即可灰掉。

 

 

原来的逻辑关系:

 

倒着显示音量,修改以后的逻辑关系: (可以compare看看)

 

 

 

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值