-
Notifications
You must be signed in to change notification settings - Fork 10
My git repository of minigui - MiniGUI - a compact cross-OS Graphics User Interface support system for real-time embedded systems.
License
GPL-2.0, Unknown licenses found
Licenses found
GPL-2.0
COPYING
Unknown
LICENSE.POLICY
sergei/minigui
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
NAME MiniGUI - a compact cross-OS Graphics User Interface support system for real-time embedded systems. TABLE OF CONTENTS 1. Introduction 2. Main features of this version 3. Notes for GPL release 4. Installing MiniGUI on a Linux box 5. History 6. About the authors 7. If you have a problem 8. A little FAQ 9. Copying 10. If you are developing commercial or proprietary software by using MiniGUI 1. INTRODUCTION MiniGUI is a cross-operating-system Graphics User Interface support system for real-time embedded systems. This is GPL'd version 1.6.10 released by Feynman Software (http://www.minigui.com). MiniGUI 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, and other tranditional RTOSes, such as VxWorks, uC/OS-II, pSOS, ThreadX, Nucleus, and OSE. 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 Selection Dialog Box'. Libvcongui provides a virtual console window in which you can run UNIX programs which are in character mode. 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. 2. MAIN FEATURES OF THIS VERSION The main features of this version is illustrated as follow: * Support for three embedded operating systems: Linux, uClinux and eCos. * Support for MiniGUI-Threads runtime mode. * Support for built-in resources. You can compile the resources (bitmaps, icons, and fonts) into the library, and there are no needs to read the resources from files. Thus, MiniGUI can be used on some embedded systems without file systems. * Features of windowing sub-system: * Maturate multi-window and messaging mechanism. * Support for dialog box and message box. * Common controls, including static label, button, single-line and multi-line edit boxes, list box, combo box, progress bar, property sheet, toolbar, track bar, tree view, list view, month calendar, grid view, animation, and so on. * Support for other GUI elements, including menu, acceleration key, caret, timer, etc. * Support for skin UI. You can use skin APIs to build your dashy user interfaces. * Support for multiple keyboard layouts, including American PC, French, German, Italian, Spanish, etc.. * Support for input method interface to support special input method, such as softkey, hand-writing, and so on. * Features of graphics sub-system: * Support for enhanced graphics APIs for high-end video device. You can use these APIs to do raster operations, create complex regions, draw or fill ellipses, arcs, and polygons, etc. There are advanced 2D graphics functions available on C99 math library. * Support for Windows resource files, for example, Windows icon and cursor. * Support for almost all popular image file types including GIF, JPEG, PNG, Win32 BMP, etc.. * Support for multiple char sets and multiple font types. At present, what are supported char sets include ISO8859-x, GB2312, GBK, BIG5, UNICODE UTF-8/UTF-16 encodings. The font types supported are RBF, VBF, and QPF. 3. NOTES FOR THIS GPL RELEASE This is the GPL release of MiniGUI V1.6.10. This version has the almost same features as the commercial version MiniGUI-VAR V1.6.10. However, this version has the following limitations: * It only provides support for Linux, uClinux, and eCos operating systems. You still need to get a commercial license from Feynman Software for other RTOSes, like VxWorks, OSE, uC/OS-II, ThreadX, and Nucleus. * It only provides support for MiniGUI-Threads runtime mode. You still need to get a commercial license from Feynman Software for MiniGUI-Processes and/or MiniGUI-Standalone runtime modes. * It only includes font engines for RBF, VBF, QPF font types. You still need to get a commercial license from Feynman Software if you want to use TrueType fonts. * It only provides support for the following char sets/encodings: ISO8859-1, GB2312, BIG5, UNICODE UTF-8, and UNICODE UTF-16. You sitll need to get a commercial license from Feynman Software if you want to use more char sets/encodings. * It does not include any builit-in input method. You can develop you own input method or use mGi component provided by Feynman Software. * It only includs GAL engines of Dummy, FBCON, QVFB, CommLCD, and Shadow. * It only includs IAL engines of Dummy, Console, QVFB, CommInput, Custome, Auto, and Random. 4. INSTALLING MINIGUI ON A LINUX PC BOX 4.1 Before installation Please download the following tarballs from http://www.minigui.org: * libminigui-1.6.x.tar.gz: the source of MiniGUI libraries, including libminigui, libmgext, and libvcongui. * minigui-res-1.6.x.tar.gz: the resource used by MiniGUI, including basic fonts, icons, bitmaps, cursors, and imetables. * mde-1.6.x.tar.gz: the demos for MiniGUI Version 1.6.x. * mg-samples-1.6.x.tar.gz: the samples for MiniGUI Version 1.6.x. Note that the tarballs needed by the current MiniGUI release are listed in "Version" file. Please make sure you have installed the correct tarballs. MiniGUI can run on Linux console with FrameBuffer activated. If you video chip is VESA 2.0 compliant (most video chips support VESA 2.0), you can active Linux kernel's VESA FrameBuffer by add a boot option 'vga=0x0317'. This option will use VESA BIOS to enter a 1024x768-16bpp display mode. Please make sure that your display can support this mode. You can also run MiniGUI on a virtual Frame Buffer. Currently, MiniGUI V1.6.10 can run on Qt Virtual Frame Buffer (QVFB). Please download qvfb-1.1.tar.gz tarball from the download zone of this site and install qvfb first. 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.6.x.tar.gz. You can use the following command: $ tar zxf minigui-res-1.6.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.6.x.tar.gz' to a new directory: $ tar zxf libminigui-1.6.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'; 4) By default, libraries of MiniGUI will be installed in `/usr/local/lib'. You should make sure that this directory is listed in `/etc/ld.so.conf' file. And after having installed them, you should run the following command to update the cache of shared library system: $ su -c ldconfig 5) If you want to specify which features MiniGUI provides, you can run $ ./configure --help to see the complete configuration options listed, then disable or enable some features by using command line switches. For example, if you do not want MiniGUI to load JPEG pictures via the function LoadBitmap, you can use $ ./configure --disable-jpgsupport 6) Note that some features of MiniGUI depend on other libraries. Please make sure that you have installed them. 4.4 Run demos of MiniGUI If you have installed MiniGUI version 1.6.x or later, you should use our new demo system called `MDE'. 'MDE' is a comprehensive demostration environment for MiniGUI version 1.6.x, more pretty and useful. Before running the demo programs, you should extract these tarballs and compile them: 1) Extract the tarball to a new directory by using `tar' command. 2) Run `./configure' and `make' to compile the demos. $ ./configure $ make 3) Try to run demos and applications. For example, you can go to `mde-1.6.x/same/' to run `same': $ cd same $ ./same 5. HISTORY About seven 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.5.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.0, we developed MiniGUI-Processes. 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. 32) Sep., 2005: MiniGUI official version 1.6.8 released. 33) Oct., 2005: MiniGUI official version 2.0.2 released. 34) Jun., 2006: MiniGUI provides support for OSE. 35) Jul., 2006: MiniGUI official version 2.0.3/1.6.9 released. 35) Nov., 2007: MiniGUI official version 2.0.4/1.6.10 released. 6. ABOUT THE AUTHORS The original author of MiniGUI is Wei Yongming, and now MiniGUI is maintained by Feynman Software. 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 7. IF YOU HAVE A PROBLEM If you have any technical problem, advice or comment, please send messages to [email protected]. If you are interested in the commercial MiniGUI products and licensing, please write to [email protected]. Other mail can be sent to [email protected]. 8. 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 hardware platform does MiniGUI support? A: Intel x86, ARM (ARM7/AMR9/StrongARM/xScale), PowerPC, MIPS, M68K (DragonBall/ColdFire), such kind of hardware platforms. 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. 9. COPYING Copyright (C) 2002~2008, Beijing Feynman Software Technology Co., Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 10. IF YOU ARE DEVELOPING COMMERCIAL OR PROPRIETARY SOFTWARE BY USING MINIGUI The edition you downloaded freely from our site may only be used to develop GPL (non-proprietary) Software. The COPYING file explains what you may or may not do with the free edition. If you are using MiniGUI for developing commercial, proprietary, or other software not covered by the terms listed in the COPYING file, you must have a commercial license for MiniGUI. Please see http://www.minigui.com/product/index.html for how to obtain this. If you are interested in the commercial MiniGUI licensing, please write to [email protected]. Other mail can be sent to [email protected].
About
My git repository of minigui - MiniGUI - a compact cross-OS Graphics User Interface support system for real-time embedded systems.
Resources
License
GPL-2.0, Unknown licenses found
Licenses found
GPL-2.0
COPYING
Unknown
LICENSE.POLICY
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published