初始化Window组件
当初始化App时,调用CGUIWindowManager类的Add方法,将所有定义好的Window和Dialog GUI组件添加到g_windowManager。
例:g_windowManager.Add(new CGUIWindowVideoFiles);
初始化一个CGUIWindowVideoFiles实例时,执行了CGUIWindowVideoBase(WINDOW_VIDEO_FILES, "MyVideo.xml"),它将通过CGUIWindow来初始化此组件。其中最关键的是它的两个参数WINDOW_VIDEO_FILES和MyVideo.xml,前者是Window ID,后者是组件的定义文档。
装载皮肤并与Window组件绑定
初始化各种Window和Dialog组件后,开始调用函数LoadSkin装载皮肤了。
1) 装载皮肤前,首先要从g_guiSettings中GetString("lookandfeel.skin"),得到的结果是Addons目录下的skin.* 目录的名称,例如“skin.confluence”皮肤。
2) LoadSkin函数中首先检查了播放器状态,如果在运行,先Pause掉,然后将ActivateWindow转到WINDOW_HOME。
3) 锁定g_graphicsContext,使用的是CSingleLock类
4)
装载皮肤并与Window组件绑定