8000 GitHub - hank-fan/minigui: A mature cross-platform windowing system and GUI system for IoT devices
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

A mature cross-platform windowing system and GUI system for IoT devices

License

GPL-3.0, Unknown licenses found

Licenses found

GPL-3.0
LICENSE
Unknown
LICENSE.POLICY
Notifications You must be signed in to change notification settings

hank-fan/minigui

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MiniGUI

A mature cross-platform windowing system and GUI system for IoT devices.

TABLE OF CONTENTS

1. Introduction
2. The runtime modes of MiniGUI
3. New features of this version
4. History
5. About the authors
6. If you have a problem
7. A little FAQ
8. Copying

INTRODUCTION

MiniGUI is a mature cross-platform windowing system and GUI (Graphics User Interface) support system for real-time embedded systems. This is version 3.2 released by FMSoft (http://www.minigui.com).

MiniGUI aims to provide a fast, stable, full-featured, and cross-platform windowing and GUI support system, which is especially fit for real-time embedded systems based-on Linux/uClinux, eCos, and other tranditional RTOSes, such as VxWorks, ThreadX, Nucleus, pSOS, uC/OS-II, and OSE.

This is the MiniGUI core source tarball, which provides windowing and graphics interfaces as well as a lot of standard controls.

Besides MiniGUI core, FMSoft also provides some components for the developers to develop application much easier:

* mGi: An input method component for MiniGUI. This component provides
  some typical input methods (such as softkey, hand-writing, and predict
  text input for mobile phone) for MiniGUI applications. 

* mGp: A printing component for MiniGUI. By using mGp, you can print
  out the graphics created by MiniGUI application to general-purpose priters.

* mG3d: A simple three-dimension component for MiniGUI. This component
  provides a simple 3D API for application. You can use mG3d to create
  3D UI.

* mGUtils: A MiniGUI component which contains miscellaneous utilities 
  like ColorSelectionDialogBox, FileOpenDialogBox, and so on. 

* mGPlus: A MiniGUI component which provides support for advanced graphics 
  functions like path, gradient, anti-aliase stretch, and color combination.

MiniGUI also is a free software project. In December 1998, the initiator of FMSoft, Wei Yongming, began to develop MiniGUI under the GNU General Public License (GPL). In September 2002, the core developers of MiniGUI founded FMSoft and started the commercial marketing with the free software. By now, FMSoft still continues to release MiniGUI as a free software project.

You can download the source of GPL'd MiniGUI versions from the site:

http://www.minigui.org

THE RUNTIME MODES OF MINIGUI

You can configure and compile MiniGUI as one of three runtime modes:

* `MiniGUI-Threads': A program running on MiniGUI-Threads can create
  multiple cascaded windows in different threads, and all the windows
  belong to a single process. MiniGUI-Threads is fit for some real-time
  systems on Linux/uClinux, eCos, uC/OS-II, VxWorks, pSOS, ThreadX, 
  and OSE.

* `MiniGUI-Processes': A program running on MiniGUI-Processes is 
  an independent process, which can also create multiple windows. 
  MiniGUI-Processes is fit for some complex embedded systems, such as 
  PDAs, Thin-Clients or STBs. This mode is only useful for full-featured 
  UNIX-like operating systems, like Linux.

* `MiniGUI-Standalone': A single process version of MiniGUI. This mode
  is useful for some systems which lack of PThread support, like some 
  buggy uClinux systems.

The original MiniGUI (version 1.0) run in MiniGUI-Threads mode. It is based on POSIX-compliant thread library. And this thread-based architecture of MiniGUI is very fit for most traditional embedded operating systems, such as eCos, uC/OS-II, and VxWorks. However, if you use embedded Linux, the architecture like X Window will have better stability and scalability, because of the independent memory address space of every process.

Since version 2.0, we provides a new runtime mode called MiniGUI-Processes. You can use MiniGUI-Processes to run more than one MiniGUI-based program in the form of UNIX process at the same time. MiniGUI-Processes is a full-featured multi-process version of original MiniGUI -- You can run a program based on MiniGUI-Processes from a program called 'mginit'. Just like X Window, the former process is called a client, and the latter the server.

Clients connect to the server via UNIX domain socket, and the server receives and responses requests from clients. The server provides shared resources for clients, manage window objects, and sends mouse (or touch screen) and keyboard events to the active top-most client. If a client exits or dies for some reasons, it will not damage other clients and the server.

NEW FEATURES OF THIS VERSION

For more information, please refer to ReleaesNotes-3.0.x.pdf file in the product CD-ROM (in the 'docs/' directory).

HISTORY

About ten years have pasted since MiniGUI was initially created at the end of 1998, and now it becomes much reliable and stable. During the past years, many remarkable changes have taken place in the MiniGUI project.

At the original, the version 0.2.xx was based on SVGALib and PThread (LinuxThreads). Then the version 0.3.xx had many enhanced features including Graphics Abstract Layer (GAL), Input Abstract Layer (IAL), and the support for multiple charsets and multiple fonts.

In version 1.0.00, we designed MiniGUI-Lite, which was more fit for some complex embedded systems, such as PDAs, Thin-Clients, or STBs. MiniGUI-Lite made the embedded systems more stable and efficient. The version 1.0.00 provided the native fbcon engine based on Linux FrameBuffer device directly as well.

In the development of version 1.1.00, we re-wrote the GAL and GDI interfaces, and provided some advanced video features, such as raster operation, transparent blitting, alpha blending, and video hardware acceleration. We also provided some important GDI functions, such as Ellipse, Arc, Polygon, and FloodFill.

In the development of version 1.6.0, we added advanced 2D graphics functions to MiniGUI. It provides the abstract logical pen 8000 and brush objects, and can be used to render advanced graphics objects.

In the development of version 2.0.x, we developed MiniGUI-Processes.

In the development of version 3.0.x, we introduced Look & Feel Renderer, BIDI text support, No-rectagular window, double-buffer window, and other main featuers.

In the development of version 3.2.x, we enhanced MiniGUI to support Gtk+ v2.16.x smoothly.

A brief history description of the developement progress lay below:

    0)  1994 ~ 1996:    MiniGUI DOS version.
    1)  Dec, 1998:      Began to write.
    2)  Apr, 1999:      The skeleton of MiniGUI, windowing sub-system 
                        and basic graphics device interfaces.
    3)  May, 1999:      Timer, menu, and the sekleton of control sub-system.
    4)  Jun, 1999:      Chinese input method (by Kang Xiaoning).
    5)  July, 1999:     GIF and JPG loading support (by LI Zhuo).
    6)  Aug, 1999:      Some standard controls (Portion by Zhao Jianghua).
    7)  Sep, 1999:      Dialog boxes and message boxes.
    8)  Sep, 1999:      Snapshot of screen or window.
    9)  Jan., 2000:     VCOnGUI (Virtual Console on MiniGUI) version 0.2.02.
    10) Mar., 2000:     Linux distribution installer based-on MiniGUI for 
                        HappyLinux 1.0.
    11) Jun., 2000:     Began to develop version 1.0.xx.
    12) Sep., 2000:     MiniGUI version 0.3.06 released.
    13) Oct., 2000:     MiniGUI version 0.9.00 released. 
    14) Nov., 2000:     MiniGUI version 0.9.96 released. 
    15) Jan., 2001:     MiniGUI version 0.9.98 released. You can build 
                        MiniGUI-Lite from this version.
    16) Jan., 2001:     MiniGUI version 1.0.00Beta1 released.
    17) Feb., 2001:     MiniGUI version 1.0.00Pre1 released.
    18) Apr., 2001:     MiniGUI version 1.0.00 released (2001/04/16).
    18) Sep., 2001:     MiniGUI version 1.1.0Pre1 released (2001/09/12).
    19) Sep., 2001:     MiniGUI version 1.0.9 released (2001/09/17), 
                        this will be the last version of
                        source branch 1.0.x. 
    20) Oct., 2001:     MiniGUI version 1.1.0Pre4 released (2001/10/22). 
                        This version have new GAL and GDI interfaces.
    21) Mar., 2002:     MiniGUI official version 1.1.0 released 
                        (2002/03/08). 
                        MiniGUI API Reference documentation 
                        version 0.9 released.
    22) Mar., 2002:     MiniGUI API Reference documentation 
                        version 1.0 released.
    23) Apr., 2002:     MiniGUI the new stable version 1.2.0 released 
                        (2002/04/11). 
    24) Sep., 2002:     The main developers of MiniGUI founded a 
                        new software corporation: Beijing FMSoft 
                        Technology Co., Ltd.. And the development and 
                        maintenance of MiniGUI changes from 
                        loosely-knit team to business organization.
    25) Mar., 2003:     MiniGUI official version 1.2.5 released 
                        (2003/03/23).
    25) May., 2003:     MiniGUI official version 1.2.6 released 
                        (2003/05/18).
    26) Sep., 2003:     MiniGUI official version 1.3.1 released 
                        (2003/09/11).
    27) Jan., 2004:     MiniGUI official version 1.5.1 released 
                        (2004/01/18).
    28) Feb., 2004:     MiniGUI tested on eCos and uC/OS-II.
    29) Jun., 2004:     MiniGUI tested on VxWorks.
    30) Jan., 2005:     MiniGUI tested on ThreadX and pSOS.
    31) Feb., 2005:     MiniGUI official version 1.6.1 released.
    32) Aug., 2005:     MiniGUI beta version 2.0.0 released.
    33) Sep., 2005:     MiniGUI official version 1.6.8 released.
    34) Oct., 2005:     MiniGUI official version 2.0.2 released.
    35) Jun., 2006:     MiniGUI provides support for OSE.
    36) Jul., 2006:     MiniGUI official version 2.0.3/1.6.9 released.
    37) Nov., 2007:     MiniGUI official version 2.0.4/1.6.10 released.
    38) Apr., 2009:     MiniGUI official version 3.0.2 released.
    39) Oct., 2009:     MiniGUI official version 3.0.4 released.
    40) Jan., 2010:     MiniGUI official version 3.0.6 released.
    41) May., 2010:     MiniGUI official version 3.0.8 released.
    42) May., 2010:     MiniGUI official version 3.2.0 released.
    43) Oct., 2010:     MiniGUI official version 3.0.10 released.

ABOUT THE AUTHORS

The original author of MiniGUI is Wei Yongming, and now MiniGUI is maintained by FMSoft. For more information, please browse our home page:

http://www.minigui.com

The GPL'd versions and dependent libraries of MiniGUI can be found at:

http://www.minigui.org

IF YOU HAVE A PROBLEM

If you have any technical problem, advice or comment, please send messages to consult@minigui.com.

If you are interested in the commercial MiniGUI products and licensing, please write to sales@minigui.com.

A LITTLE FAQ

Q: Is GPL'd MiniGUI free for commercial use?

A: Simply no. FMSoft release some versions of MiniGUI under GPL license. It is free for those who are 100% GPL and those who never copy, modify and distribute MiniGUI. But if you want to use these GPL'd versions for commerce, you should get the commercial license from FMSoft first.

Q: Which operating system does MiniGUI support?

A: MiniGUI can run on Linux/uClinux, uC/OS-II, eCos, ThreadX, pSOS, VxWorks, ThreadX, OSE, and even Win32. Any other real-time OSes can be supported theoretically.

Q: Which architecture does MiniGUI support?

A: Intel x86, ARM (ARM7/AMR9/StrongARM/xScale), PowerPC, MIPS, DragonBall, ColdFire, Blackfin, and so on.

Q: Does MiniGUI offer the support for grey LCD with 4bpp (bits per pixel)?

A: Yes, it offers. It even offers the support for 1bpp and 2bpp LCD.

COPYING

Copyright (C) 2002~2017, Beijing FMSoft Technologies Co., Ltd.

About

A mature cross-platform windowing system and GUI system for IoT devices

Resources

License

GPL-3.0, Unknown licenses found

Licenses found

GPL-3.0
LICENSE
Unknown
LICENSE.POLICY

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 95.1%
  • Shell 1.6%
  • Makefile 1.2%
  • C++ 1.0%
  • CMake 0.5%
  • Perl 0.3%
  • Other 0.3%
0