⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme

📁 这是ARM嵌入式系统的实验教程中的MINIGUI的实验源代码!
💻
📖 第 1 页 / 共 2 页
字号:
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 + -