?? readme.zh
字號(hào):
名稱 MiniGUI - 面向?qū)崟r(shí)嵌入式 Linux 系統(tǒng)的小型跨平臺(tái)圖形用戶界面支持系統(tǒng)目錄 1. 介紹 2. 什么是 MiniGUI-Lite 3. MiniGUI 版本 1.6 的新功能特點(diǎn) 4. 在 Linux 上安裝 MiniGUI 5. Linux 上的安裝及配置示例 6. 開發(fā)歷史 7. 有關(guān)作者 8. 如果遇到問題 9. 版權(quán)信息 10. 在商業(yè)或?qū)S邢到y(tǒng)中的使用 MiniGUI1. 介紹 MiniGUI 是一個(gè)遵循 GPL 條款的自由軟件項(xiàng)目. 該項(xiàng)目由北京飛漫軟件技術(shù) 有限公司主持. MiniGUI 的目標(biāo)是提供一個(gè)穩(wěn)定的、輕量級(jí)的跨操作系統(tǒng)圖形用戶界面支持系統(tǒng), 尤其適合基于 Linux/uClinux, eCos, uC/OS-II, VxWorks 等的實(shí)時(shí)嵌入式系統(tǒng). MiniGUI 為應(yīng)用程序定義了一組輕量級(jí)的窗口和圖形設(shè)備接口. 利用這些接口, 每個(gè) 應(yīng)用程序可以建立多個(gè)窗口, 而且可以在這些窗口中繪制圖形, 且互不影響. 用戶也可以利用 MiniGUI 建立菜單, 按鈕, 列表框等常見的 GUI 元素. MiniGUI 由三個(gè)函數(shù)庫組成: libminigui, libmgext 以及 libvcongui. libminigui 是提供窗口管理和圖形接口的核心函數(shù)庫, 也提供了大量的標(biāo)準(zhǔn)控件; libmgext 是 libminigui 的一個(gè)擴(kuò)展庫, 提供了一些有用的控件, 同時(shí)提供了一些 方便而且有用的用戶界面函數(shù), 比如 "文件打開" 對(duì)話框; libvcongui 則提供了 一個(gè)應(yīng)用程序可用的虛擬控制臺(tái)窗口, 從而可以方便地在 MiniGUI 環(huán)境中運(yùn)行 字符界面的應(yīng)用程序. 用戶可以將 MiniGUI 配置成 "MiniGUI-Threads" 或者 " MiniGUI-Lite". 運(yùn)行在 MiniGUI-Threads 上的程序可以在不同的線程中建立多個(gè)窗口, 但所有 的窗口在一個(gè)進(jìn)程中運(yùn)行. 相反, 運(yùn)行在 MiniGUI-Lite 上的每個(gè)程序是單獨(dú) 的進(jìn)程, 每個(gè)進(jìn)程也可以建立多個(gè)窗口. MiniGUI-Threads 適合于具有單一 功能的實(shí)時(shí)系統(tǒng), 而 MiniGUI-Lite 則適合于類似于 PDA, STB 和瘦客戶機(jī) 的復(fù)雜嵌入式系統(tǒng). 用戶還可將 MiniGUI V1.5.x 編譯成單進(jìn)程的版本,該版本下的應(yīng)用程序可 單獨(dú)執(zhí)行,而不需首先運(yùn)行 mginit 程序。 MiniGUI 的最新穩(wěn)定版是版本 1.5.3; 最新開發(fā)版是版本 1.9.x. 您可以在 我們的主頁上找到最新的 MiniGUI 相關(guān)信息: http://www.minigui.org 2002 年 9 月, 由 MiniGUI 的主要開發(fā)者創(chuàng)立的北京飛漫軟件技術(shù)有限公司成立, MiniGUI 的開發(fā)主持和維護(hù)工作從松散組織轉(zhuǎn)向商業(yè)機(jī)構(gòu). 相關(guān)信息可從如下站點(diǎn) 獲得: http://www.minigui.com2. 什么是 MiniGUI-Lite 最初的 MiniGUI 基于 POSIX 兼容的線程庫, 而這種體系結(jié)構(gòu)非常適合大多數(shù) 傳統(tǒng)的嵌入式操作系統(tǒng), 比如 eCos, uC/OS-II 以及 VxWorks 等. 但是, 如果我們使用嵌入式 Linux, 則類似 X Window 那樣的體系結(jié)構(gòu)將帶來更好的 穩(wěn)定性及伸縮性, 因?yàn)槊總€(gè)進(jìn)程的地址空間都是獨(dú)立的, 而且可以使用諸如 共享庫這樣的機(jī)制. 現(xiàn)在, 用戶可以使用 MiniGUI-Lite 以 Linux 進(jìn)程的形式一次運(yùn)行多個(gè) MiniGUI 程序. MiniGUI-Lite 是原先 MiniGUI 版本的一個(gè)輕量級(jí)版本, 因?yàn)椴辉傩枰?/span> LinuxThreads 庫. 用戶可以從一個(gè)稱為 "mginit" 的程序中運(yùn)行其它基于 MiniGUI-Lite 的程序. 和 X Window 類似, "mginit" 程序稱為服務(wù)器, 而其它程序 稱為客戶. 客戶通過 UNIX 域套接字連接到服務(wù)器, 而服務(wù)器接受來自客戶的請(qǐng)求. 服務(wù)器為客 戶提供共享資源, 并向頂層客戶發(fā)送鼠標(biāo)和鍵盤事件. 如果某個(gè)客戶由于某個(gè)原因 終止, 服務(wù)器并不會(huì)受到影響, 而可以繼續(xù)正常運(yùn)行. 在我們發(fā)布的源代碼當(dāng)中, 有一個(gè)軟件包稱為 "MDE". 在這個(gè)軟件包中, 有一個(gè) "mginit" 程序可創(chuàng)建一個(gè)虛擬控制臺(tái)窗口. 你可以從該控制臺(tái)的命令行 啟動(dòng)其它程序, 甚至可以利用 "gdb" 調(diào)試程序. 用戶可以在一個(gè)基于 MiniGUI-Lite 的程序中創(chuàng)建多個(gè)窗口, 但不能啟動(dòng)新線程創(chuàng)建 窗口. 因此, 原先 MiniGUI 中的某些函數(shù)不能再使用了, 但大多數(shù)的 MiniGUI-Lite API 和原先的 MiniGUI 版本是兼容的. 從原先的 MiniGUI 移植到 MiniGUI-Lite 相當(dāng)簡單. MiniGUI 的源代碼默認(rèn)配置為 MiniGUI-Lite. 在運(yùn)行 "./configure" 配置 MiniGUI 時(shí), 你可以使用如下命令禁止 MiniGUI-Lite, 而編譯成原先的 MiniGUI 版本: $ ./configure --disable-lite 為了明確區(qū)分, 我們將基于 PThread 的 MiniGUI 稱為 "MiniGUI-Threads".3. MiniGUI 版本 1.6 的新功能特點(diǎn) MiniGUI 1.6 版本中增加了如下新的功能特色: * 更多操作系統(tǒng)支持。包括普通嵌入式 Linux、uClinux、eCos、uC/OS-II、以及 傳統(tǒng)的實(shí)時(shí)嵌入式操作系統(tǒng),如 VxWorks。 * 提供了高級(jí)二維繪圖函數(shù),可以設(shè)置線寬、線型、填充模式等。 * 更多硬件開發(fā)板支持。包括 Intel DMG 機(jī)頂盒、Sigma Designs RealMagic 機(jī)頂盒、S3C2410 開發(fā)板、華恒 ARM2410 開發(fā)板、 WinBond SVPxx 可視電話等等。 * 提供了界面的皮膚支持,可幫助您編寫華麗的用戶界面。 * 更多控件支持。包括透明控件支持,ScrollView 和 ScrollWnd 控件、增強(qiáng) 編輯框控件、ListView 控件及網(wǎng)格控件等。 * 我們可以將 MiniGUI 所使用的資源,諸如位圖、圖標(biāo)和字體等編譯到函數(shù)庫中, 這樣 MiniGUI 的運(yùn)行就不需要在文件系統(tǒng)中單獨(dú)存放資源文件了,包括 MiniGUI.cfg 配置文件在內(nèi),而且將提高 MiniGUI 的初始化速度。這個(gè)特性非常 適合 uClinux/eCos/uCOS-II 等小型嵌入式操作系統(tǒng)。 * 我們可以將 MiniGUI 配置成以單進(jìn)程形式運(yùn)行的版本,也就是說,如果您的 系統(tǒng)足夠簡單,則可以不需要線程支持或者 mginit 程序。 * 我們針對(duì) uClinux 等小型嵌入式操作系統(tǒng)優(yōu)化了 MiniGUI 的內(nèi)存使用。 * 我們現(xiàn)在可以使用 make menuconfig 來配置 MiniGUI,從而提供給您非常 便利的配置和定制界面。4. 在 Linux 上安裝 MiniGUI 4.1 安裝前的準(zhǔn)備 1) 選擇圖形引擎 如果您的 Linux 內(nèi)核支持 FrameBuffer, 則可以使用內(nèi)建于 MiniGUI 的 圖形引擎 -- 即 "私有引擎". 這樣, 就沒有必要安裝下面提到的其它圖形 函數(shù)庫作為 MiniGUI 的圖形引擎了. 而且, Native 引擎是唯一支持 MiniGUI-Lite 的引擎, 如果您要將 MiniGUI 配置為 MiniGUI-Lite, 也沒有必要安裝 其它的圖形庫作為引擎. Native 引擎既可以支持 MiniGUI-Threads, 也可以支持 MiniGUI-Lite. 需要 注意的是, Native 引擎目前還不能提供對(duì) "fbvga16" (標(biāo)準(zhǔn) VGA 16 色模式) 的良好支持. 而且需要注意 Native 引擎目前只能運(yùn)行在 Linux FrameBuffer 之上. 如果您的 Linux 內(nèi)核不支持 FrameBuffer, 則可以使用 SVGALib 作為圖形 引擎. SVGALib 是一種直接訪問圖形芯片的老的圖形函數(shù)庫. 因此, 如果 使用 SVGALib, 則需要獲得 root 權(quán)限才能讓 MiniGUI 程序支持進(jìn)行 圖形芯片的 I/O 操作. 需要注意的是, 因?yàn)?SVGALib 是一種老的圖形庫, 所以不能對(duì)大部分流行 的顯示卡提供良好支持. 然而, 如果您的顯示芯片是 VESA 兼容的, 則 SVGALib 可以通過 VESA BIOS 2.0 提供的接口良好運(yùn)行. 許多顯示芯片都是 VESA 兼容的, 但某些不是, 比如 Intel 的 i810 芯片組. 你也可以使用 LibGGI 作為 MiniGUI 的圖形引擎. LibGGI 是一種新的面向 Linux 的圖形引擎, 它也可以穩(wěn)定地運(yùn)行在 Linux FrameBuffer 之上. 最 主要的是, 運(yùn)行在 LibGGI 之上的應(yīng)用程序可以方便地運(yùn)行在 X Window 之上, 而且不需要重新編譯. 注意, SVGALib 和 LibGGI 不能用來支持 MiniGUI-Lite. 對(duì)于 MiniGUI 應(yīng)用開發(fā)者來講, 另外一個(gè)可選的圖形引擎是 QVFB. QVFB 是 運(yùn)行在 X Window 上的一個(gè)虛擬 FrameBuffer 程序. 利用它, 我們可以在 X Window 上運(yùn)行和調(diào)試 MiniGUI 程序. 2) 安裝引擎 如果您決定使用 Native 引擎, 則沒有必要預(yù)先安裝某個(gè)特定的圖形庫. Native 引擎已經(jīng)內(nèi)建于 MiniGUI 當(dāng)中. 如果要使用 SVGALib 作為圖形引擎, 則需要安裝 "svgalib-1.4.3" 軟件包. 請(qǐng)從如下 FTP 站點(diǎn)下載: ftp://ftp.minigui.net/pub/minigui/dep-libs 或者從 HTTP 站點(diǎn)下載: http://www.minigui.com/download/cindex.shtml 并將上述兩個(gè)軟件包安裝到您的系統(tǒng)當(dāng)中. 安裝過程將覆蓋系統(tǒng)中老的 SVGALib, 但并不會(huì)影響您的系統(tǒng). 如果您使用 LibGGI 作為圖形引擎, 請(qǐng)從 http://www.ggi-projects.org 下載 最新的 GGI 源代碼, 并安裝之. 或者, 也可以從我們的站點(diǎn)上下載: http://www.minigui.org/download/cindex.shtml 3) 下載 MiniGUI 在下載并安裝好圖形引擎之后, 請(qǐng)從我們的站點(diǎn)上下載如下 tar.gz 軟件包并解開: * libminigui-1.3.x.tar.gz: MiniGUI 函數(shù)庫源代碼, 其中包括 libminigui, libmywins, libmgext, 和 libvcongui. * minigui-res-1.3.x.tar.gz: MiniGUI 所使用的資源, 包括基本字體, 圖標(biāo), 位圖和鼠標(biāo)光標(biāo). * mde-1.3.x.tar.gz: MiniGUI 的綜合示例程序. 4.2 安裝 MiniGUI 的資源文件 我們首先要安裝 MiniGUI 的資源文件. 請(qǐng)按照如下步驟: 1) 使用 "tar" 命令解開 "minigui-res-1.3.x.tar.gz". 可使用如下命令: $ tar zxf minigui-res-1.3.x.tar.gz 2) 改變到新建目錄中, 然后以超級(jí)用戶身份運(yùn)行 "make" 命令: $ su -c make install 4.3 配置和編譯 MiniGUI MiniGUI 使用了 "automake" 和 "autoconf" 接口, 因而 MiniGUI 的配置和編譯 非常容易: 1) 使用 "tar" 解開 "libminigui-1.3.x.tar.gz" 到新的目錄: $ tar zxf libminigui-1.3.x.tar.gz
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -