通過前面的函數可以看出顯示解析了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 (後來沒有用到)