通过前面的函数可以看出显示解析了ReadResouseData,然后是ReadLayoutData,然后是ReadUIData。
一、ReadLayerData主要是解析哪些XML文件
EZPlayer的skins目录里面有两款皮肤,其中一款为EasyDTV.
在../EZDTV/EZPlayer/Skins/EasyDTV目录下以layout为搜索关键字符,可以搜索到以下文件。
File Name | Path |
about.xml | ../EZDTV/EZPlayer/Skins/EasyDTV/xml |
CAM_Interface.xml | ../EZDTV/EZPlayer/Skins/EasyDTV/xml |
channel_dock.xml | |
channel_tab.xml | |
notify_record.xml | |
notify_suspend.xml | |
panel_tab.xml | |
player.xml | same |
teletext.xml | |
toolbar_panel.xml | F:/test/EZDTV/EZPlayer/Skins/EasyDTV/xml |
main.xml | F:/test/EZDTV/EZPlayer/Skins/EasyDTV/xml/setting |
tab.xml | F:/test/EZDTV/EZPlayer/Skins/EasyDTV/xml/setting |
main.xml | F:/test/EZDTV/EZPlayer/Skins/EasyDTV/xml/scan |
tab.xml | F:/test/EZDTV/EZPlayer/Skins/EasyDTV/xml/scan |
record.xml | F:/test/EZDTV/EZPlayer/Skins/EasyDTV/xml/notify |
main.xml | F:/test/EZDTV/EZPlayer/Skins/EasyDTV/xml/epg |
main_daylight.xml | F:/test/EZDTV/EZPlayer/Skins/EasyDTV/xml/epg |
tab.xml | F:/test/EZDTV/EZPlayer/Skins/EasyDTV/xml/epg |
user_edit.xml | F:/test/EZDTV/EZPlayer/Skins/EasyDTV/xml/epg |
TABLE ONE |
大致对应了../EZDTV/EZPlayer/Skins/EasyDTV/Skin.xml文件里面的 部分(蓝色部分标记)。
下面部分代码中 file 属性的第一个字符串代表文件夹。
|
二、涉及到的XML文件所处位置和目录结构
Skins目录下有两款皮肤:
EasyDTV皮肤子目录下,主要存在XML文件的目录就是DEFAULT和XML。
然后本级目录下有一个SKIN.XML
XML目录下文件和子目录。子目录里面基本也是XML配置文件。涉及LAYOUT的大部分文件位于此。
DEFAULT目录下面有两个比较重要的XML文件,下图中用红色框标记。绿色框标记的文件夹里面都是图片资源。
三、统计所涉及到的XML文件中出现的SUBKEY,及其与代码中对应的类
在TABLE ONE中出现的所有XML文件中 部分出现过的控件统计如下表:(每个文件只统计上一个文件中没有出现过的新的SUBKEY)
列表中还列出了对应的类(正好对应于工程中的EZSkin部分的.CPP文件和.H文件。
File Name | SUB KEY | ||
about.xml | statictext | fontbutton | |
CEZStaticText class | CEZFontButton class | ||
CAM_Interface.xml | boardlist | edit | |
CEZBoardList | CEZEdit | ||
channel_dock.xml | background | tabcontrol | |
CEZBitmap | CEZTabControl | ||
channel_tab.xml | listview | slider | messagebox |
CEZListView | CEZSlider | CEZMessageBox | |
notify_record.xml | |||
notify_suspend.xml | |||
panel_tab.xml | button | statebutton | |
CEZButton | CEZStateButton | ||
player.xml | videoport | ||
teletext.xml | teletext_port | ||
toolbar_panel.xml | |||
main.xml | |||
tab.xml | checkbutton | combobox | radiobutton |
CEZCheckButton | CEZComboBox | CEZRadioButton | |
main.xml | |||
tab.xml | |||
record.xml | |||
main.xml | timeedit | boardlist | |
CEZTimeEdit | CEZBoardList | ||
main_daylight.xml | |||
tab.xml | |||
user_edit.xml | |||
layout | |||
CEZLayout & CEZMENU | |||
TABLE TWO |
参见EZSKIN PROJECT的SOLUTION VIEW MAP:
(红色标记ReadLayerData函数会涉及到的类,绿色标记着ReadResourceData函数已经涉及到的类,蓝色部分标记还没有涉及到的类)
五、LAYOUT节点下出现的SUBNODE的解析
1. LAYOUT,涉及到的类CEZMENU和CEZLAYOUT类
2. 分析subnode:button
3.fontbutton
4.statebutton
5.checkbutton
6.radiobutton
7.slider
8.combobox
9.messagebox
10.boardlist
11.edit
12.timeedit
13.listview
14.tabcontrol
15.statictext
16.background
17.videoport
18.teletext_port
19.child_list (后来没有用到)