mirror of
https://github.com/VincentWei/MiniGUI.git
synced 2026-02-08 20:03:04 +08:00
274 lines
12 KiB
Plaintext
274 lines
12 KiB
Plaintext
NAME
|
|
MiniGUI - a mature cross-platform windowing system and GUI system
|
|
for real-time embedded systems.
|
|
|
|
|
|
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
|
|
|
|
|
|
1. 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 Feynman Software (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, Feynman Software also provides some components
|
|
for the developers to develop application much easier:
|
|
|
|
o 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.
|
|
|
|
o mGp: A printing component for MiniGUI. By using mGp, you can print
|
|
out the graphics created by MiniGUI application to general-purpose priters.
|
|
|
|
o 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.
|
|
|
|
o mGUtils: A MiniGUI component which contains miscellaneous utilities
|
|
like ColorSelectionDialogBox, FileOpenDialogBox, and so on.
|
|
|
|
o 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
|
|
Feynman Software, Wei Yongming, began to develop MiniGUI under the
|
|
GNU General Public License (GPL). In September 2002, the core developers of
|
|
MiniGUI founded Feynman Software and started the commercial marketing with
|
|
the free software. By now, Feynman Software 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
|
|
|
|
|
|
2. 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.
|
|
|
|
|
|
3. NEW FEATURES OF THIS VERSION
|
|
|
|
For more information, please refer to ReleaesNotes-3.2.x.pdf file in
|
|
the product CD-ROM (in the 'docs/' directory).
|
|
|
|
|
|
4. 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 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 Feynman Software
|
|
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.
|
|
|
|
|
|
5. ABOUT THE AUTHORS
|
|
|
|
The original author of MiniGUI is Wei Yongming, and now MiniGUI is
|
|
maintained by Feynman Software. 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
|
|
|
|
|
|
6. 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.
|
|
|
|
|
|
7. A LITTLE FAQ
|
|
|
|
Q: Is GPL'd MiniGUI free for commercial use?
|
|
|
|
A: Simply no. Feynman Software 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 Feynman Software 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.
|
|
|
|
|
|
8. COPYING
|
|
|
|
Copyright (C) 2002~2010, Beijing FMSoft Technology Co., Ltd.
|
|
|
|
All rights reserved.
|
|
|