C语言机顶盒UI 设计的总结

本文主要针对所有ali来进行讲述。针对刚开始从事机顶盒开发并拥有一定C语言编程基础和面向对象编程概念的程序员。
有人可能注意到上面的C语言和面向对象怎么会搞到一起呢?的确C语言是面向过程的编程语言,但是把C语言封装成一个个的函数库就和面向对象语言有一定的相似之处。
首先我来说一说机顶盒这个对象,太专业的东西我这里就不给与陈述的,我这里主要说说UI的事情。UI属于应用层,主菜单包括channel 、tools、system setup 、media player、installation这五个菜单菜单下面对应着相应的子菜单,这里我也不一一讲述了。
这里我想说的是:每一个菜单都会有自己独立的 *.c 文件来实现人机对话和功能的实现。在每一个菜单中有一个或者数个Button代表功能的入口,按下Button就会进入或者选中功能。那么它们是怎样实现的呢,原来每个Button都会对应相应的callback和keymap来进行控制的实现。首先代码会通过keymap函数会识别按键的减值来返回相应的值给到callback函数判断进行操作。大家可能还有一个疑问,他有那么多的Button怎么知道那个是那个,这个就很简单了,我们可以通过库里面提供的函数来获取相应Button的编码,也就是他的编号。记得我一开始不知道这个对象的时候,就自己给他们编好了号码,然后直接拿来使用。不建议各位读者这样做。
UI 里面还包括图片和文字和style。这里重点讲一下Style,这个很重要 它关系到整个UI的结构。Style包括长方形的上下左右 背景 前景 和左上角 右上角 左下角 左上角的图像颜色等,这个描述是相当的详细的,每个button都会用到这些style。
在就是button的L,T,W,H的设定,把屏幕看作一个二维坐标轴l、t就是x,y,w,h我就不必说了吧。这些设置在最开始的时候就会设定好,在程序中也可以使用相应的函数进行修改。