BREW
文章平均质量分 89
sharetop
---
展开
-
在BREW中打造自己的GUI(6)-单选框与复选框的实现
还有一个常用的UI控件是单选框与复选框。可惜BREW也不提供,所以,只能自己做一个了。先看一下每个选项的结构定义,我们用图片来做那个选中和未选中的显示,这样才能做出更多更美观的界面效果,所以在结构中有两个成员pCkImage和pNrImage,同时,isSelected用来记录此项是否被选中:typedef struct ...{ int nItemID; A原创 2008-03-04 12:50:00 · 1994 阅读 · 0 评论 -
介绍一个可用于BREW的XML解析实现
高通在BREW平台中并没有为我们提供一个可以方便使用的API来实现XML文件的解析,在很多情况下,我们需要操作一个XML文件。就这事我曾电话咨询过博路的工程师,他给出的答复是可以购买一个商业组件来实现这个功能。事实上,没必要如此复杂,我们完全可以利用互联网上的免费的开源代码来实现这个功能。本文要介绍的开源代码就是:Martyn C Brown为我们提供的一个完全基于ANSI C实现的MCBXm原创 2007-12-21 12:16:00 · 4218 阅读 · 5 评论 -
在BREW中将PNG转换成为BMP的方法
前几天一直在折腾图片的东西,一直觉得BREW对PNG的支持不是太好,除了显示没有其它什么可操作的了。其实用IDisplay接口的SetDestination方法是可以方便地实现两种图片的转换,除了速度有点慢而已。代码并不复杂,如下: 1IBitmap * getBitmapHalf(DisplayWeb *pMe,IImage *pImage) 2{ 3 IBitmap *pScreen原创 2007-12-20 15:57:00 · 3187 阅读 · 4 评论 -
在BREW中打造自己的GUI(7)-动态效果的实现
今天讨论关于GUI的另一个话题:如何在两个界面切换中表现出比较炫一点的效果,比如渐变、缩放等等。同样我们还是用组件的方式来做。IGSlider,负责管理两个IControl切换的动态效果,它的使用比较简单:static void loadMenu(DisplayFavt * pMe,uint16 wParam)...{ TItemData *pData; IControl原创 2008-03-10 10:44:00 · 3707 阅读 · 6 评论 -
在BREW中打造自己的GUI(8)-IWEB的封装
封装IWeb其实并不算是GUI的范畴,但是一并说了罢。在BREW中实现网络访问有两个选择:ISocket和IWeb,我是比较倾向于使用IWeb的,只要你不是要做一个长连接。因为服务端程序比较容易做,可以直接使用现成的WEB服务器,我们不再需要自己处理并发、缓存等网络服务必须要考虑的东西。使用IWeb并非只能处理HTML的页面,事实上我们完全可以拿它来做文件下载、提交信息(如下载报告)之类的管理。也原创 2008-03-10 11:05:00 · 3888 阅读 · 6 评论 -
在BREW中打造自己的GUI(5)-滚动条的实现
前面做IGStatic时我们用到了一个滚动条组件IGScrollBar,现在说说它的实现方法,它的结构很简单:struct _IGScrollBar ...{ const AEEVTBL(IGScrollBar) * pvt; uint32 m_nRefs; IShell *m_pIShell; IDispla原创 2008-03-04 12:38:00 · 1640 阅读 · 0 评论 -
在BREW中打造自己的GUI(4)-IGStatic的实现
BREW中的IStatic可以方便地显示一个文本,但是它没有背景不能滚动,其实并不方便,所以我们也自己做一个吧。首先,同样是定义它的数据结构如下:struct _IGStatic ...{ const AEEVTBL(IGStatic) * pvt; uint32 m_nRefs; IShell *m_pIShell原创 2008-03-04 12:18:00 · 1588 阅读 · 0 评论 -
在BREW中打造自己的GUI(3)-做一个跑马灯的效果
有时如果我们在应用中需要提供一个滚动的信息提示条(类似于页面上的跑马灯marquee),其实也很容易做到,类似于我们前面做的菜单,下面我们也讨论一下吧。跑马灯包括的数据结构如下:struct _IGMarquee ...{ const AEEVTBL(IGMarquee) * pvt; uint32 m_nRefs; IShell原创 2008-03-04 11:25:00 · 1734 阅读 · 0 评论 -
在BREW中打造自己的GUI(2)-TabPane的实现
再来讨论一下那个TabPane效果的实现。根据我们作IGMenuCtl的经验,应该并不难。同样是定义一下几个实体结构://自定义菜单项typedef struct...{ IImage * pImage; // Image uint16 wItemID; uint32 dwData;} GTabItem;这个好简原创 2008-03-04 11:11:00 · 1536 阅读 · 0 评论 -
在BREW中打造自己的GUI(1)-图形化菜单的实现
在很多时间,我们并不满足于BREW API提供那个简单的IMenuCtl控件,其实自己做一个标准菜单是很方便的一件事情。今天我们就来讨论一下。要实现的菜单比较简单,只支持列表视图,也就是IMenuCtl中的AEECLSID_MENUCTL 模式。但是我们需要考虑两个要求:1.菜单需要一个背景图,并且在每一个选中项的背景不仅仅是简单地填充色,而应该是一个图片(这样我们就可以方便地实现渐变、光晕、立体原创 2008-03-04 10:49:00 · 4090 阅读 · 3 评论 -
BREW中将PNG转换成BMP的方法(解码转换)
上回我SHARE了一个将PNG转成BMP的方法,通过直接向Buffer里Draw一个PNG来实现的,今天我想共享给大家的是用自己解码来实现PNG转成BMP的方法,这个方法更正统,不过实现也相对比较麻烦一点.PNG 的格式除了几个头以外,关键是它的数据用GZip做了压缩,所以,要实现PNG的解码,需要先了解的背景知识只有两个:1.PNG/BMP的编码格式, 2.GZIP的编码格式.这两种文档的编码格原创 2007-12-20 16:01:00 · 3037 阅读 · 0 评论