編寫而成。
Motif基於X—Windows的Xt工具箱(XtIntrinsics),是一個用C語言實現、支持麵向對象體係的程序庫;C++則是由C語言發展而來,但它直接提供麵向對象式的編程方法。
Motif內部使用的麵向對象式體係對Motif的應用程序來說不會有絲毫的影響,因為它提供麵向函數的接口,調用程序對Motif及XtIntrinsics內部實現的細節不必深究。因此從表麵上看,Motif和其他C語言庫沒有任何區別。C++的設計允許程序員輕易地使用象Motif這樣的C語言庫。C++還為麵向對象設計方法和係統軟件設計方法的結合提供了簡易的方法,它使得程序在受益於麵向對象技術的同時不失掉C的高效性,更不必重新設計象X和Motif這樣的標準C庫函數。
(1)OSF/Motif與C++混合編程
用C++的麵向對象的特性進行程序設計,並假設程序中的類代表令人感興趣的體係結構單元。用C++類封裝widget集合以創建一用戶界麵組成部件的類,將Motifwi-dget作為基本單元來構造它們的界麵。一個組成部件不僅封裝了一個widget集合,而且定義了整個組成部件的行為。
1)創建用戶界麵組成部件
用C++類封裝widget集合以創建用戶界麵組成部件的技術。即使用C++創建高一級的、將一個或多個widget組合成一個邏輯群的用戶界麵組成部件。這樣做的目的是不用分離的類替換widget,而是用基本的Motif widget,將一個應用程序及其界麵的關鍵組成部件作為類實現。這樣的話,Motif本身是否是麵向對象的並不重要,C++程序員可以直接調用Xt和Motif的函數來創建基本的Motif widget。
使用C++類組合一組widget以創建更複雜的用戶界麵組成部件。並且在一個C++類中,可以創建widget,並指定其資源和賦值回調等。這樣,一個C++類不僅封裝一個widget集合,而且定義了整個組成部件的行為。其意圖是不僅僅用一個類替換一個widget集合,而是創建一個應用程序所要求的基本類,其中某些類使用widget實現一用戶界麵組成部件。
虛擬與回調(作為靜態成員函數實現)的組合提供了創建抽象用戶界麵組成部件的一種方法.基類可以由組成部件支持的widget,以及整體布局,而將組成部件的具體行為留給派生類。
2)用戶界麵組成部件的協議
定義一個簡單的協議,即使所有用戶界麵組成部件能保證在不同組成部件之間的一致性,並且使不同的組成部件很容易地在一起工作。
●組成部件在類的構造函數中創建一個或多個widget。通常情況下,回調與其它創建也在構造函數中處理,每個組成部件創建一個單獨的widget,是為基widget。使它作為類所表示的widget樹的根,其它所有widget都是它的孩子。
●組成部件將一個widget作為構造函數中的一個參數。該widget作為該組成部件的基widget的父親。
●組成部件將它創建的widget子樹的根賦給一個保護的實例變量.
●組成部件將一個字符串作為構造函數的一個參數。
讓您第一時間享受最新章節,請訪問𝗼𝗼𝗽.𝘁𝘄
●每個組成部件類提供一訪問方式,用來查詢子樹的根widget。然而一個組成部件類的目標是封裝一個widget的單獨邏輯集合的行為,偶爾需要類公開widget樹的根widget。
●組成部件類允許widget子樹由類封裝,以進行處理或不處理。組成部件就作為一個邏輯群處理,並且隻有widget子樹的根被處理或不處理。其它widget應在創建時在構造函數中被處理,而此時不處理根widget。
●組成部件處理其widget樹中widget的析構函數.當一個對象被清除時,它所封裝的widget也應被清除。
3)基類的定義與實現
BasicComponent類
BasicComponent類實現一些對所有組成部件類都有用的基本特性。
UIComponent類
。類化始初和做定序程理管源資用使且並,構析tegdiw理處了加增但,的到得生派類tnenopmoCcisaB由是類tnenopmoCIU
架框用應的程編合混類++C與fitoM)2(
。多的要重要性數函的類個一何任比要好的合配架框和類,樣一架框它其和。構結體總的序程用應個一義定來用架框用應個一建創
。的別差有是間序程用應的同不在節細的殊特多許管儘,分部構結製控的序程用應fitoM的型典取抽能可也們我。它用複以可就序程用應的他其,中類個一在放驟步些這把以可們我。的由理麼什有沒是碼代的驟步些這現實製複,說來序程用應個一每對。等等它其及以,環循件事入進,係聯的器務服X和開打,scisnirtnItX化始初須必序程用應fitoM的有所如例。碼代複重的人驚量數括包然仍序程用應tX和fitoM的數多大絕是但,口接的的層高更bilX比個一供提fitoM和tX管儘。務任的序程用應fitoM寫編化簡來素元同共的序程用應取獲靠依是意本的架框
:點特些一的有共所序程用應fitoM
;scisnirtnItX化始初●
;係聯的器務服X和開打●
;親父的tegdiw它其為作tegdiwllehS個一建創●
;麵界戶用義定tegdiw上以個一或個一建創●
。件事理處來環循件事入進●
間時個一是句語些這開打序程個每為地複重,間之序程和序程。式形的同相循遵且並言語的同相含包都序程用應tX個一每乎幾到看可們我,別差小細的間序程用應的同不略忽們我果如,上際實。的同不有少很而,驟步的麵上行執都序程數多大絕。的似類常非是體主)(niam中序程用應fitoM分部大