ReAction GUIは、 AmigaOS 3.2~4.1で使用されるウィジェット ツールキットエンジンです。
これは、 AmigaOS の Workbench 2.0 GUI の外観を強化した クラスのオブジェクト指向システムである ClassAct の進化形です。
歴史
AmigaのネイティブウィンドウシステムはIntuitionと呼ばれ、画面、ウィンドウ、基本ウィジェットのレンダリングを管理します。しかし、AmigaOS 2.0までは標準化されたルックアンドフィールが存在せず、アプリケーション開発者は独自の非標準ウィジェット(ボタンとメニューの両方)を作成する必要があり、Intuitionはそれらのサポートをほとんど提供していませんでした。
Intuitionは後にgadtools.library(AmigaOS 2.0以降)によって強化され、標準ウィジェットのセットが提供されるようになりました。AmigaOS 2.0では、 ASL(Amiga Standard requester Library)と呼ばれる標準ダイアログシステムと、一貫性を保つためのアプリケーションのレイアウト方法を定義するAmiga User Interface Style Guideも導入されました。Intuitionは、拡張可能なウィジェットセットを構築するためのオブジェクト指向インターフェースを提供するBOOPSI (Basic Object Oriented Programming System for Intuition)によってさらに強化されました。BOOPSIの導入により、サードパーティの開発者はMUIやClassAct(後にReActionへと発展) などの包括的なウィジェットツールキットを作成できるようになりました。
特徴
クラスACT
ClassActは、AmigaOS 2.0で導入されたBOOPSIシステムをベースに開発された、クラスとガジェットからなるオブジェクト指向システムです。主な特徴は拡張性とモジュール性です。新しいクラスやガジェットをシステムに追加し、新機能を追加することでシステムを改善することができます。ClassActは、コモドールが倒産前にオーランド開発者会議で提示したOSの将来像をモデルにしています。プログラマーのChristopher 'caldi' Aldi、Timothy Aston、Osma 'Tau' Ahvenlampiが集結し、ClassActはその未来像を具現化したものです。
ClassACTのクラス
主なクラスは次のとおりです。
- window.class
- リクエスタークラス
- arexx.クラス
主なガジェットは次のとおりです。
- ボタン.ガジェット
- チェックボックスガジェット
- スピードバーガジェット
- スペースガジェット
- スライダーガジェット
- スクロールガジェット
- ラジオボタンガジェット
- パレットガジェット
- リストブラウザガジェット
- レイアウトガジェット
- 整数ガジェット
- getscreenmode.gadget
- getfont.gadget
- getfile.gadget
- 燃料ゲージガジェット
- クリックタブガジェット
- 選択ツールガジェット
- 文字列.ガジェット
- テキストフィールドガジェット
ClassActガジェットには、3Dアスペクトなど、様々なスタイルを適用できます。ガジェットにはベベルボーダーを設定したり、デフォルトのフォントが画面上のウィンドウに収まらない場合の代替フォントオプションを設定したり、ラベルに使用するペン番号やラベルフォントをユーザーが設定したり、その他多くのオプションがあります。
反応
ReActionはOS 3.5の時代からAmigaOSの公式GUIビルダーです。[ 1 ] [ 2 ]現在ではIntuitionをベースに構築され、更新されて、それを使用するアプリ全体で見た目がより良く一貫性のあるものになっています。
ReActionのクラスとガジェットのシステムは、ClassACTとほぼ同じです。ClassActと同様に拡張性とモジュール性を備えています。新しいクラスやガジェットを簡単にシステムに追加して、機能を強化できます。
このモジュール性のシンプルな例として、新たに利用可能になったReActionガジェットクラス、piechart.gadgetが挙げられます。このガジェットの主な目的は、共有、ディスク容量、空き容量など、様々なソース間のデータ分布をグラフィカルな円グラフで表示することです。ユーザーからの任意のインタラクションも可能です。
最小限のコードの例
ボタンと文字列のガジェット
// ボタン ガジェット#include <gadgets/layout.h> #include <proto/layout.h> #include <proto/button.h>// サンプルレイアウト: LAYOUT_AddChild 、OBJ ( OBJ_QUIT ) = ButtonObject 、GA_ID 、OBJ_QUIT 、GA_Text 、"Quit" 、GA_RelVerify 、TRUE 、End 、//Quitボタンガジェット// 文字列ガジェット#include <gadgets/layout.h> #include <gadgets/string.h> #include <proto/layout.h> #include <proto/string.h> #include <intuition/gadgetclass.h>// サンプルレイアウト: LAYOUT_AddChild 、OBJ ( OBJ_STRING ) = StringObject 、GA_ID 、OBJ_STRING 、GA_RelVerify 、TRUE 、STRINGA_MaxChars 、32 、STRINGA_WorkBuffer 、buffername 、End 、//String gadgetAmigaのその他のツールキット
Amigaの世界には、主に2つのウィジェットツールキットが競合しています。AmigaOS 3.2~4.1およびAmigaOSソフトウェア開発用のデフォルトGUIツールキットであるReActionと、MorphOSのデフォルトGUIツールキットであるMUIです。AROSは、オープンソースのMUIクローンである Zuneツールキットを使用しています。
Cygnixは、 X11サーバーであるCygwinが付属するAmigaOS用の軽量UNIXシミュレーション環境です。AbiWordやGIMPなどのプログラムをAmigaに移植するために使用されています。少し関連のあるプロジェクトとして、 GTK MUIラッパーがあります。これは、最終的にはGTKベースのソフトウェアの移植を簡素化するでしょう。
CairoやSDLなどのさまざまなマルチプラットフォーム グラフィック ライブラリとツールキットも Amiga で利用可能であり、新しい拡張ツールキット、新しい GUI、新しいウィジェット システムなどを作成するための基礎となります。
XML ベースのツールキットFeelinもあります。
参照
- マジックユーザーインターフェース(MUI)
参考文献
さらに読む
- リチャード・ドラモンド(2000年1月)「Program Perfection 第8章 GUIの構築 パート2」Amiga Format . No. 132. Future Publishing. pp. 64– 65. ISSN 0957-4867 .
- ダン・イェドリチカ (2000 年 1 月)。 「Amiga 開発者 CD v2.1」。Amiga レビュー(チェコ語)。 No. 52。アトランティダ出版。 p. 16. ISSN 1211-1465。
- クリストフ、マイケル (2005 年 11 月)。 「OS4 での Praxis Teil 3 のプログラム」。Amiga Future (ドイツ語)。 No. 57. APC&TCP。42~ 46ページ 。