GUIKitで提供されていた機能は,組込みのWolfram言語にネイティブのインターフェース構造およびコントロール関数で利用できるようになった.
再利用可能な定義の作成
GUIKit フレームワークは定義の各インスタンスにプライベートシンボルのコンテキストを自動的に使うので,インターフェース定義の再利用を比較的簡単にする.しかし,ユーザインターフェース用のWolfram言語スクリプトコードを書く際に留意しなければならない点がいくつかある.
- MyPackage`MySymbolのようなコンテキストシンボルは,インターフェースのすべてのインスタンスにとって同じ大域変数になるので,明示的使用を避ける.しかしこれは,それが所望のことであるのなら,インスタンス間で共有される大域状態を作るのに望ましい方法であろう.
- ルートウィジェットの"Frame"ではなく"Panel"で定義をデザインすることを考える.GUIKit`は表示される際に自動的にウィンドウ内のパネルをラップし,定義に特定のフレームインスタンスを強制しないことで他のユーザが自身のウィンドウにその定義をロードできるようにしている.
次はすべてが別々の状態で,しかし新たなウィンドウでアクセス可能な複数のインスタンスがある際に,ひとつの定義がいかに簡単に他のウィンドウで使用されるかを示す例である.
定義されているように,Counterの例題は3つの独立したウィジェットからなる完全に機能的なスタンドアロンの複合ウィジェットである.
次は単一のCounterウィジェットが描画するもののスクリーンショットである.
Counter定義はまた複数のインスタンスが同じウィンドウ内で再利用できるように書かれている.Widget[]のExposeWidgetReferencesオプションを使うと,各インスタンスが一意的な名前で新たな親ウィンドウに確実に登録されるようになる.