跳转到内容

MiniGUI

本页使用了标题或全文手工转换
维基百科,自由的百科全书

这是本页的一个历史版本,由SyaNHs留言 | 贡献2010年4月12日 (一) 10:32编辑。这可能和当前版本存在着巨大的差异。

MiniGUI
開發者Beijing Feynman Software Technology Co., Ltd.
当前版本3.0.6(2010年2月7日 (2010-02-07)
预览版本3.0.4(2009年10月27日 (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;
}


参见

参考来源

  1. 魏永明. 《嵌入式软件开发及C语言实现: MiniGUI剖析》. 电子工业出版社. 2008. ISBN 7-12106-309-3. 
  2. 超韩. 《嵌入式GUI开发设计: 基于MiniGUI》. 电子工业出版社. 2009. ISBN 7-89464-218-5. 
  3. 周立功. 《ARM嵌入式 MiniGUI 初步与应用开发范例》. 北京航空航天大学出版社. 2006. ISBN 7-81077-742-4. 

外部资料