📄 readme
字号:
NAME
MiniGUI - a compact cross-platform Graphics User Interface support system
for real-time embedded systems.
TABLE OF CONTENTS
1. Introduction
2. What's MiniGUI-Lite
3. New features of MiniGUI version 1.6
4. Installing MiniGUI on a Linux box
5. History
6. About the authors
7. If you have a problem
8. Little FAQ
9. Copying
10. If you are developing commercial or proprietary software by using MiniGUI
1. INTRODUCTION
MiniGUI is a GPLed free software project, led and maitained by
Feynman Software (Beijing Feynman Software Technology Co., Ltd.).
It aims to provide a fast, stable, lightweight, and cross-platform
Graphics User Interface support system, which is especially fit for
real-time embedded systems based-on Linux/uClinux, eCos, uC/OS-II, and
other tranditional RTOSes, such as VxWorks.
MiniGUI defines a set of light windowing and GDI (Grahpics Device
Interface) APIs for applications. By using them, an application can create
multiple windows and/or controls, and can draw in these windows/controls.
MiniGUI is composed of three libiraries: libminigui (source is in src/),
libmgext (ext/), and libvcongui (vcongui/). Libminigui is the core library,
which provides windowing and graphics interfaces as well as standard controls.
Libmgext is an extension library of libminigui and provides some
useful controls and convenient user interface functions, such as
`Open File Dialog Box' and 'Color Selectiong Dialog Box'. Libvcongui
provides a virtual console window in which you can run programs in character mode.
You can configure and compile MiniGUI as one of three run-time 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, and VxWorks.
* `MiniGUI-Lite': A program running on MiniGUI-Lite is an independent
process, which can also create multiple windows. MiniGUI-Lite 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.
* `MiniGUI-Standalone': A single process version of MiniGUI. This mode
is useful for some systems which lack of PThread support, like some
uClinux system.
Currently, the latest stable version of MiniGUI is version 1.6.0. And the
latest developing version of MiniGUI is version 1.9.x (in the works).
You can find latest information about MiniGUI and download the source from
our home page:
http://www.minigui.com
2. WHAT'S MINIGUI-LITE
The original MiniGUI 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.
Now you can use MiniGUI-Lite to run more than one MiniGUI-based program
in the form of Linux process at the same time. MiniGUI-Lite is a
lightweight multi-process version of original MiniGUI --
You can run a program based on MiniGUI-Lite 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, and sends mouse (or touch screen) and keyboard
events to the active topmost client. If a client exits or dies for some
reasons, it will not damage other clients and the server.
You can create many windows in a program based on MiniGUI-Lite, but you
can not start a new thread to create a window. So some functions in
original MiniGUI can not be used in MiniGUI-Lite. Yet since most APIs of
MiniGUI-Lite are compatible with the original MiniGUI, porting from original
MiniGUI to MiniGUI-Lite is simple.
The source of MiniGUI is configured as MiniGUI-Threads by default.
When you run `./configure' to configure MiniGUI, you can use the command
$ ./configure --enable-lite
to enable MiniGUI-Lite.
3. NEW FEATURES OF MINIGUI VERSION 1.6
MiniGUI version 1.6 offers the following new features:
* In-core resources. You can compile the resources (bitmaps, icons,
and fonts) into the library (libminigui), and there is no need to read
the resource configuration information from MiniGUI.cfg.
* MiniGUI-Standalone. You can configure and compile MiniGUI as
MiniGUI-Standalone version.
* Support for Linux/uClinux, eCos, uC/OS-II, and VxWorks.
* Tested on targets of ix86, ARM (EP731x, ARM7TDMI, S3C2410, StrongARM,
xScale, ...), PowerPC, MIPS, M68k (DragonBall and ColdFire),
SigmaDesign EM85xx, WinBond SPVxx, and so on.
* More controls. Transparent style, ScrollView and ScrollWnd controls,
Grid control, Animation control, and enhanced Edit control
and ListView control.
* Support for skin. You can now use skin to build your dashy UI.
* New OpenFileDialogBox and ColorSelectDialogBox APIs added.
* Support for change of window element color dynamically.
* Useful configuration interface. You can configure MiniGUI by
using 'make menuconfig' command, which gives you a very
easy-to-use interface to configure MiniGUI.
4. INSTALLING MINIGUI ON A LINUX BOX
4.1 Before Installation
1) Choose an engine.
If your Linux kernel supports FrameBuffer, you can use our built-in
graphics engine -- the Native fbcon engine. So there is no need to install
other graphics engines mentioned below.
The Native engine can support both MiniGUI-Threads and MiniGUI-Lite.
Note that the Native engine can not provide good support for
`fbvga16' (the standard VGA 16-Color mode). And also note that
the Native engine can only run on Linux FrameBuffer.
If your Linux kernel does not support FrameBuffer, you can use
SVGALib as your graphics engine. SVGALib is an old library which
accesses the video chipset directly. So if you use SVGALib, you
should get the root privilege to run a program in order that SVGALib
can do I/O operations directly.
Note that SVGALib can not provide native support for most popular
video cards. However, if your video chipset is VESA-compliant, SVGALib
can run well on it by using VESA BIOS 2.0. Most video chipsets are
VESA-compliant, but some not (for example, the Intel i810 chipset).
You can use LibGGI as the engine as well. LibGGI is a new graphics
library for Linux, and it can run well on Linux FrameBuffer. The most
important advantage using LibGGI is that the applications based-on
LibGGI can run on X Window, not only on Linux FrameBuffer console,
and re-compilation of application is not needed.
Note that SVGALib and LibGGI can not be used to support MiniGUI-Lite.
If you are a MiniGUI application developer, you can use QVFB as
your engine. QVFB is a virtual framebuffer program base-on Qt. It
can run on X Window.
2) Install the engine.
If you want to use our Native engine, there is no need to install
a specific library. The Native engine is built in MiniGUI.
If you want to use SVGALib as your graphics engine, please download
the latest svgalib-1.4.3 from our HTTP site:
http://www.minigui.com/download/index.shtml
and then install these libraries in your system. This may override your
old SVGALib, but it will do no harm to your system.
If you want to use LibGGI as your graphics engine, please download the
latest GGI source from http://www.ggi-projects.org and install it.
You can also download it from our site:
http://www.minigui.com/download/index.shtml
3) Download MiniGUI tarballs
After having installed a graphics engine, please download the following
tarballs from our site and extract them:
* libminigui-1.5.x.tar.gz: the source of MiniGUI libraries, including
libminigui, libmgext, and libvcongui.
* minigui-res-1.5.x.tar.gz: the resource used by MiniGUI, including
basic fonts, icons, bitmaps, cursors, and imetables.
* mde-1.5.x.tar.gz: the demos for MiniGUI Version 1.5.x.
Note that the tarballs needed by the current MiniGUI release are
listed in "Version" file. Please make sure you have installed correct tarballs.
4.2 Installing resource files of MiniGUI
We must install resource files of MiniGUI first. Please follow
the steps below to do it:
1) Use `tar' to extract minigui-res-1.5.x.tar.gz. You can use
the following command:
$ tar zxf minigui-res-1.5.x.tar.gz
2) Change to new directory and run `make' as a super user:
$ su -c make install
4.3 Configure and compile MiniGUI
MiniGUI uses `automake' and `autoconf', so configuration and compilation
of MiniGUI are very easy:
1) Use `tar' to extract `libminigui-1.5.x.tar.gz' to a new directory:
$ tar zxf libminigui-1.5.x.tar.gz
2) Change to the new directory and run `./configure':
$ ./configure
3) Run the following commands to compile and install MiniGUI:
$ make; su -c 'make install';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -