- Tilcon圖形界面設計基礎
- 易流平等
- 1356字
- 2020-09-15 16:55:45
2.3.7 字體
GUI引擎使用字體驅動將文本對象渲染到屏幕上或屏幕外圖片上,該驅動占用內存空間小,速度快。GUI引擎在內部以列表的形式維護著所有字體,字體文件只加載一次,GUI引擎提供了支持truetype字體文件的初始化列表。以下是Tilcon開發套件中字體庫的重要特性:
■ 可以使用API命令TRT_RegisterFontFile() 注冊對新增字體的支持。
■ 可以使用API命令TRT_SetValues()來改變文本顯示效果,如大小、粗體/斜體、下劃線等文本屬性。
■ 若窗口大小被改變,文本將相應地做出調整以適應窗口。
■ 字體是完全可擴展的,不限制字體的特定點陣大小,但界面編輯器在字體選擇組合框中限定了字體的種類數量。
■ 支持抗鋸齒。
■ 支持所有的有效顏色,包括透明色和XOR色,同時支持多種陰影模式和陰影色。
■ 應用程序使用TRT_GetValues()和TRT_SetValues()接口獲取/設置字體屬性值,屬性格式為TRT_ATT_FONT_*。
GUI引擎支持四種文本字體類型:Helvetica、Courier、New Century、Times Roman。font.dat文件包含了界面編輯器識別的所有可用字體列表,由界面編輯器中的字體管理器(見圖2-14)維護著,是界面編輯器的字體注冊機構。


圖2-14 字體管理器
當一個界面對象的文本組件被創建時,文本組件的字體屬性被設置為界面編輯器顯示的默認字體,開發者可以選擇需要設置字體的文本,并對字體、大小等屬性進行修改,這些屬性值被保存在屏幕內界面對象的組件中,供GUI引擎中的字體管理進程繪制文字使用。如圖2-15所示。

圖2-15 字體屬性配置處理過程
當屏幕被顯示時,文本組件被傳遞給GUI引擎中的字體管理程序,字體管理函數決定是否加載被請求的字體到內存中。默認字體預先在GUI引擎中注冊了,非默認字體在使用前,必須使用API命令TRT_RegisterFont()在GUI引擎中進行注冊。除了字體屬性,文本組件還需要包括粗體、斜體、大小等屬性,才能正確地繪制文字。運行時,文本組件與字體管理器協同工作,它們之間的協同關系如圖2-16所示。

圖2-16 運行時文本組件與字體管理器協同工作機制
設置文本字體支持的操作步驟如下:
(1)選擇界面編輯器中“Options > Font Manager”菜單,打開字體管理窗口;
(2)選擇字體類型(font type)編號,該值可以是任何大于32的數;
(3)輸入字體名稱,該名稱將在界面編輯器快捷工具區內的可選字體列表中顯示;
(4)點擊“OK”按鈕,關閉配置窗口;
(5)拷貝font.dat文件到目標機文件系統的字體目錄下,比如Windows平臺的字體文件存放目錄是C:\WINDOWS\fonts;
(6)在應用程序代碼調用TRT_StartEx()之后加入代碼行“TRT_pid = StartData.TRT_CID;”進行字體注冊;
(7)設置該字體在字體類型(font type)列表中的索引值;
(8)在nameStr域設置字體名稱。
以下代碼行展示了如何在應用程序中對字體進行注冊。
TRT_FontRegister fontRegisterProps; long taskMask = TRT_FONTREGISTER_MASK_SET| TRT_FONTREGISTER_MASK_FACENAME; fontRegisterProps.fontType = 33; fontRegisterProps.fontStyle = 0; fontRegisterProps.nameStr = "Asian"; TRT_RegisterFont(TRT_pid, taskMask, (void*)(&fontRegisterProps));
[注意]部分字體可能不支持粗體和/或斜體,若未指定格式,默認的數字文本精確到小數點后兩位。另外,VxWorks和Linux平臺的本地字體引擎不支持文本旋轉,必須使用Tilcon字體引擎進行字體旋轉。
有些對象的文本字體通過快捷工具欄內的字體設置框或“Options > Text Fonts”菜單進行修改,比如按鈕(button)等,有些對象的文本字體通過對象屬性設置對話框進行修改,比如表格(table)對象。圖2-17所示字體配置窗口適用于所有文本對象、按鈕、面板、刻度線等已經輸入文字的情況。

圖2-17 字體與大小配置
一旦對象被創建且屬性設置對話框被關閉(只要文本已經輸入即可),選中該對象,即可用快捷工具欄中的字體設置框或“Options > Text Fonts”菜單進行字體和大小配置,以及是否顯示為粗體或斜體。如果是點陣字體,在選擇“Options > Text Fonts”菜單彈出的字體選擇對話框中,還可以控制字體寬、高和字間距。
- PS職場達人煉成記:人人都能學會的Photoshop辦公設計技巧
- CorelDRAW服裝設計實用教程(第四版)
- 跟儲君老師學Excel極簡思維
- COSPLAY的后期藝術:Lightroom+Photoshop修圖技法攻略
- Dreamweaver CC實例教程(第5版·微課版)
- ASP.NET jQuery Cookbook
- Google App Engine Java and GWT Application Development
- AutoCAD 2016入門與提高(超值版)
- Adobe創意大學Photoshop產品專家認證標準教材(CS6修訂版)
- SOA Patterns with BizTalk Server 2009
- 零基礎學會聲會影2018(全視頻教學版)
- Asterisk 1.4 : The Professional's Guide
- After Effects 2022從入門到精通
- 零基礎學Photoshop CS6(全視頻教學版)
- UML 2.0 in Action: A project/based tutorial