MiniGUI
外观
| 開發者 | Beijing Feynman Software Technology Co., Ltd. |
|---|---|
| 当前版本 | 3.0.6(2010年2月7日) |
| 预览版本 | 3.0.4(2009年10月27日) |
| 操作系统 | 跨平台 |
| 类型 | Widget toolkit |
| 许可协议 | GNU General Public License OR Business authorize |
| 网站 | http://www.minigui.org/ |
MiniGUI是一款面向嵌入式系统的高级窗口系统(Windowing System)和图形用户界面(Graphical User Interface,GUI)支持系统。MiniGUI 的开发起始于 1998 年底,最初使用 GPL 授权,最后一个采用 GPL 授权的版本是 1.6.10,从 MiniGUI 2.0.4 开始 MiniGUI 被重写并使用商业授权。
编程语言
MiniGUI使用C语言开发,但是其设计者参考了面向对象技术。
MiniGUI 可以运行在 DirectFB (Linux)或者 WindML (VxWorks)之上。MiniGUI 之上可以运行 Gtk+ 等 Toolkit。
mStudio是面向 MiniGUI 3.0 的、运行在 PC 上的快速应用开发集成(RAD)环境,基于 Eclipse CDT 和界面设计器,为开发者提供了可视化的 MiniGUI 应用程序开发环境。。
外观和感觉
提供不同的显示引擎使得最终用户可以定制外观和感觉。
使用
- 使用 MiniGUI 的部分项目案例
- 大唐移动(现联芯科技)推出采用 MiniGUI 和 Fhas 应用开发平台作为图形显示系统和终端应用开发平台的 TD-SCDMA 3G 手机终端软件标准平台 Arena;
- 台湾英华达电子技术有限公司选用 MiniGUI 开发出了支持 Skype 功能的可视 IP 电话;
- 作为美国风河系统公司全球合作伙伴为 VxWorks 提供全面的图形解决方案;
- AMD 公司在其新发布的 Argon PMP 参考设计方案中采用了 MiniGUI 和 Fhas 作为图形环境;
- 长虹电器股份有限公司采用 MiniGUI 和嵌入式浏览器 mSpider 进行 DTV 和 IPTV 产品的开发;
- Intel 采用 MiniGUI 开发家庭数字多媒体网关产品;
- 联芯科技(大唐移动)采用 MiniGUI 作为商用 TD-SCDMA 手机的 MMI 方案;
- 华为选择 MiniGUI 作为平台产品,用于机顶盒、手持终端等产品领域;
- HappyLinux联想 HappyLinux 1.0发行版采用 MiniGUI 开发其安装程序。
MiniGUI 相关组件及产品
- mStudio 的中文全称为“飞漫可视化软件集成开发平台”,是面向 MiniGUI 3.0 的一款集成开发环境。mStudio 基于 Eclipse 集成开发环境开发,并为用户提供了所见即所得的界面设计工具,可自动生成和维护 MiniGUI 3.0 的应用程序框架,进行代码的编辑、编译、运行、调试,从而加快 MiniGUI 3.0 应用程序的开发,降低使用 MiniGUI 的门槛。
- mDolphin 是飞漫软件基于开源的浏览器核心 WebKit 开发的嵌入式浏览器产品,并使用 MiniGUI 作为其底层图形系统。mDolphin 的最新版本为 2.0。
- mGi 是飞漫软件为 MiniGUI 1.6/2.0/3.0 用户提供的一个输入法组件,该组件目前提供了软键盘输入法和手写输入法框架,并提供给用户管理输入法的容器,通过这个容器,用户还可以添加自定义的输入法。此外,对于软键盘输入法,用户可以自定义显示的键盘位图,并可添加不同的输入翻译方式(自带中文全拼输入法)。
- mGp 是飞漫软件针对 MiniGUI 1.6/2.0/3.0 应用程序的一个打印组件,该组件使用户的 MiniGUI 程序具有打印输出功能,可以将 MiniGUI 程序中的位图或文字输出到打印机去。mGp 现已提供对爱普生和惠普等多种打印机的支持。
- mG3d 是一个为 MiniGUI 1.6/2.0/3.0 应用程序提供简单三维(3D)接口的组件,通过这些接口,用户可以给自己的应用程序添加三维图像、场景渲染等效果。
- mGUtils 组件是在原 MiniGUI 2.0/1.6 的 MiniGUI 扩展库基础上发展而来。这个组件为应用程序提供了一些常见的窗口及对话框框实现,以简化应用程序代码。
- mGPlus 组件是对 MiniGUI 3.0 图形绘制接口的一个扩充和增强,主要提供对二维矢量图形和高级图形算法的支持,如路径、渐变填充和颜色组合等。mGPlus 用来实现 MiniGUI 的 Fashion 外观渲染器,也用于 mDolphin 浏览器实现高级的图形功能,如 HTML 5 中的 Canvas 标记、SVG 支持等。
版本歷史
- MiniGUI 3.0 是最新 MiniGUI 版本,该版本提供了众多高级功能特性,将帮助您开发具有更好用户体验的嵌入式产品。
- MiniGUI 2.0 为嵌入式 Linux 系统提供了完整的图形系统支持,是全球针对嵌入式 Linux仅有的两个商用嵌入式 GUI 系统之一。
- MiniGUI 1.6 是为各种流行的嵌入式实时操作系统(如 VxWorks、eCos、Nucleus、ThreadX、OSE 等)提供嵌入式图形系统支持的 MiniGUI 版本。
发展
MiniGUI 4.0 正在设计开发当中。
MiniGUI hello world
MiniGUI hello world以C撰寫,這支程式含有視窗,標題為"Hello, World".
#include <stdio.h>
#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
int MiniGUIMain (int argc, const char* argv[])
{
MSG Msg;
HWND hMainWnd;
MAINWINCREATE CreateInfo;
#ifdef _MGRM_PROCESSES
JoinLayer(NAME_DEF_LAYER , "helloworld" , 0 , 0);
#endif
CreateInfo.dwStyle =
WS_VISIBLE | WS_BORDER | WS_CAPTION;
CreateInfo.dwExStyle = WS_EX_AUTOSECONDARYDC;
CreateInfo.spCaption = "Hello, World";
CreateInfo.hMenu = 0;
CreateInfo.hCursor = GetSystemCursor(0);
CreateInfo.hIcon = 0;
CreateInfo.MainWindowProc = DefaultMainWinProc;
CreateInfo.lx = 0;
CreateInfo.ty = 0;
CreateInfo.rx = g_rcScr.right;
CreateInfo.by = g_rcScr.bottom;
CreateInfo.iBkColor = COLOR_lightwhite;
CreateInfo.dwAddData = 0;
CreateInfo.hHosting = HWND_DESKTOP;
hMainWnd = CreateMainWindow(&CreateInfo);
if (hMainWnd == HWND_INVALID)
return -1;
while (GetMessage(&Msg, hMainWnd)) {
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
MainWindowThreadCleanup (hMainWnd);
return 0;
}
参见
参考来源
- 魏永明. 《嵌入式软件开发及C语言实现: MiniGUI剖析》. 电子工业出版社. 2008. ISBN 7-12106-309-3.
- 超韩. 《嵌入式GUI开发设计: 基于MiniGUI》. 电子工业出版社. 2009. ISBN 7-89464-218-5.
- 周立功. 《ARM嵌入式 MiniGUI 初步与应用开发范例》. 北京航空航天大学出版社. 2006. ISBN 7-81077-742-4.