Skip to content

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

VVillwin/minigui

 
 

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 consult@minigui.com.

    If you are interested in the commercial MiniGUI products and licensing, 
    please write to sales@minigui.com.  Other mail can be sent to 
    consult@minigui.com.


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 sales@minigui.com.  Other mail can be sent to support@minigui.com.


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

No packages published

Languages

  • C 97.5%
  • Shell 1.9%
  • Other 0.6%