OXlib++のクラス階層
独立基本クラス階層
GUI と直接は無関係なクラスで、OXlib++より使われる便利なクラスである。
もちろん、アプリケーションからの使用も自由だ。ほとんどのクラスは独立したクラスである。
ウィンドウ・システム・クラス階層
使用するウィンドウ・システムを記述するクラスである。
OXlib++は X-Window を前提としたシステムであるので、X-Window システムを記述するクラスの集合となっている。
ウィンドウ・クラス階層のオブジェクトはGUIクラス階層に所有される。
ウィンドウ・システム・クラスの標準的なメンバ関数
Constractor
staticオブジェクトを可能にするため、名前メンバ変数に名前を代入するのみ。
X11リソースメンバ変数をNOOBJにセットする。
SetName()
Free()を呼び出す。(実際にはX11リソースメンバ変数の値がNOOBJなら何もしない)
名前メンバ変数に名前を代入する。
static
オブジェクトを可能にするため、オブジェクト生成直後は X-Server とは通信しない。
GetName()
内部メンバの変数の名前のみ返す。
Create()
X11リソースメンバ変数の値がNOOBJのときはX11リソースを実際に取得する。
Free()
X11リソースメンバ変数の値がNOOBJでないなら、X11のリソースを開放する。
X11リソースメンバ変数をNOOBJにセットする。 Destractorからも呼び出される。
GetXXXX()
Create()を呼び出す。(実際にはX11リソースメンバ変数の値がNOOBJでないなら何もしない)
X11のリソースの取得。例えば OXfontC::GetInfo()。
GUI部品クラス階層
OXlib++のGUIを構築するためのクラスである。
GUI部品クラスの標準的なメンバ関数
Make()
X-Serverのオブジェクトを作成し取得する。
Destroy()
X-Serverのオブジェクトを開放する。
GetResource(OXstringC& stResName, OXstringC& stValue)
SetResource(OXstringC& stResName, OXstringC& stValue);
すべての部品はメンバ関数旧リソースの互換性をもたせるため、文字列リソース名によるリソースのアクセス関数を実装している。
リソース・テーブルを部品ごとに用意することにより、各部品は GetResource()と SetResource()をオーバ ーライドする必要はない。
かなり特別な動作をさせるときのみ仮想関数を部品に記述する。
クラス・オブジェクトの関係
共通システムオブジェクトクラス
OXsysObjCの中で static object として定義されている。
OXoptionC optOX オプション解析
-
OXsysC sysOX BOXのシステム・デフォルト
- OXpixmapC:白黒用ディザ・パターン
- OXcolorC :白や黒の既定色
- OXgcC :BOX描画用GC
- OXkanjiC :漢字文字列描画用GC
ユーザ・アプリケーション・クラス
OXmainC(イベント処理)
必ず1つは必要なOXlib++メイン処理オブジェクト。-
GUIオブジェクト:OXbaseCの派生クラス
- OXwinC :Window OXcolorC :各部分の色
- OXfontC :文字列描画用フォント
- OXcursorC:カーソル
- その他各派生クラスが必要とするオブジェクト
- GUIオブジェクトはGUIの構成単位BOXの数だけ必要である。







