[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ]


2 DECwindowsアプリケーション・インターフェイス設計

この章では,DECwindowsアプリケーション・インターフェイスの設計について説明します。 あわせてDECburgerのアプリケーション・インターフェイスについても説明します。

2.1 DECwindowsアプリケーションの設計-何から始めるか

DECwindowsアプリケーション・インターフェイスを設計するための最初の手順は, 『OSF/Motifスタイル・ ガイド(DECwindows追補版)』(日本語),『DECwindows Companion to the OSF/Motif Style Guide』(英語)に記述されているアプリケーション・ インターフェイスのガイドラインを理解することです。これは, DECwindowsアプリケーションの「見た目と使い心地」を規定しているものです。 『OSF/Motifスタイル・ ガイド(DECwindows追補版)』(日本語),『DECwindows Companion to the OSF/Motif Style Guide』(英語)のガイドラインに沿ってアプリケーションを設計すると, そのアプリケーション・インターフェイスを他のDECwindows アプリケーションと一致させることができます。

アプリケーション・インターフェイスのガイドラインを理解すると,アプリケーションの形式, つまり見た目を決定することができます。アプリケーションを作成する前に, どのような見た目にしたいか概略を書いてみるとよいでしょう。 概略を書くと,第1.4.1 項で説明したように,インターフェイスにおけるウィジェットの親子関係も視覚的にとらえることができます。

2.1.1 アプリケーションの設計について

次の質問に答えてみると,アプリケーション・インターフェイスの設計が容易になります。

2.1.2 コールバックの使用

コールバックはアプリケーション・インターフェイスと機能コードの接続です。 ユーザ・インターフェイスを設計するときには,できるだけユーザのアクションと生成されるコールバックを一致させるようにしてください。 つまり,ユーザに取消のアクションを実行させたいなら,「取消」プッシュ・ ボタンが利用できるようにします。

2.1.3 資源についての仮定

アプリケーションを設計するとき,利用できる資源の仮定は慎重に行ってください。DECwindows のアプリケーションはさまざまなハードウェア・プラットホーム上に表示されるため, 多種多様な画面サイズやカラー資源などに対応していなければなりません。

アプリケーションによっては,十分な資源を割り当てることができない場合, 機能を選択的に削減する必要があるかもしれません。機能を削減するには, アプリケーションが必要とする最低限の操作環境を判断したうえで, その環境に到達するまで機能を削減しなければなりません。

第10章で互換性を維持するためのコーディングの勧告について説明していますが, 複数のハードウェア・プラットホームを対象としてDECwindows のアプリケーションを記述する場合には,これに従わなければなりません。 また,10章では次のトピックについて説明しています。

2.1.4 適切なウィジェットの選択

アプリケーションの見た目が決定したら,『OSF/Motifプログラマーズ・ ガイド』を調べて, 設計したユーザ・インターフェイスを一番うまく実現するウィジェットを捜してください。

第1.1.2項で説明したように, ツールキットには主要な3 種類のウィジェットがあります。

第1.4.3項で説明したように, 既存のアプリケーションの一部を使用して新規のアプリケーションを構築できます。 たとえば,XmMainWindowウィジェットを使用するアプリケーションをすでに作成している場合は, そのコードを異なるコールバックで再使用することを考えてみてください。

できるかぎり既存のツールキットのウィジェットを使用してください。 しかし,要求に適したウィジェットが見つからない場合は,『X Window System Toolkit』に説明されているように,独自のウィジェットを作成できます。 独自のウィジェットを作成する場合には,DECwindowsの「見た目と使い心地」を実現しなければならないことに注意してください。

2.1.5 DECburgerアプリケーションのウィジェット

この節では,DECburgerアプリケーションでさまざまなウィジェットを使用する理由を説明します。 図 2-1は, DECburgerユーザ・インターフェイスで使用されるOSF/Motifのウィジェットを示しています。DEC 提供のウィジェットについては以降の章で説明します。

図 2-1 DECburgerのユーザ・インターフェイス

図 2-2に示すように,DECburgerはアプリケーションの基礎としてXmMainWindow ウィジェットを使用します。

図 2-2 DECburgerのXmMainWindowウィジェット

Main WindowウィジェットはMenu Barウィジェットの項目として,注文などのDECburger アプリケーションの基本的な機能をいくつか提示します。DECburger のXmMenuBarウィジェットには,図 2-3 に示す4つのXmCascadeButtonメニュー項目が含まれています(Menu Bar ウィジェットにはカラー・システムにおける「オプション」メニュー項目も含まれています) 。

図 2-3 DECburgerのXmMenuBarウィジェット

各XmCascadeButtonは1つのXmPulldownMenuウィジェットを制御します。 ユーザがMenu Barウィジェット内の項目を1つ選択すると,画面上にPull-Down Menu ウィジェットが表示されます。

図 2-4に表示されているXmPulldownMenuウィジェットは, 注文表がすでに表示されているとき,DECburgerが使用する「注文」のPull-Down Menu ウィジェットです。このメニューの内容は注文表が見えているかどうかによって異なります。

図 2-4 DECburgerのXmPulldownMenuウィジェット

図 2-5に示すDECburgerの注文表は, XmFormDialogウィジェットです。これは子にジオメトリ管理を課す一般的な容器ウィジェットです。Dialog ウィジェットはその親ウィジェットの境界を越えることができ,DECburger の注文表は実際に越えています。

図 2-5 DECburgerのXmFormDialogウィジェット

注文表の各XmFormウィジェットを区別するため,DECburgerでは各セクションの一番上に記述テキスト・ ラベルがあります。これらのテキスト・ラベルはそれぞれXmLabel ガジェットです。

DECburgerは図 2-6に示すXmRadioBoxウィジェットを使用して, ユーザが一度に1項目だけを選択できる選択リストを提示します。Radio Box ウィジェットの各項目は,XmToggleButtonガジェットによって実現されています。

図 2-6 DECburgerのXmRadioBoxウィジェット

ユーザが項目をいくつでも選択できる選択リストを提示するため, DECburgerは図 2-7に示すXmRowColumnウィジェットを使用します。 メニューの各項目はXmToggleButtonガジェットです。

図 2-7 DECburgerのXmRowColumnウィジェット

DECburgerは数量に関する情報の入力を求めるために,図 2-8 に示すようなXmScaleウィジェットを使用します。Scale ウィジェットは値の範囲をグラフィック表示することによって, ユーザが誤った値を入力するのを防ぎます。

図 2-8 DECburgerのXmScaleウィジェット

DECburgerは図 2-9に示すように, XmOptionMenuウィジェットを使用して,一度に1項目しか選択できない選択リストを提示します。Option Menu ウィジェット内の各項目は, XmPushButtonガジェットです。オプション・メニューはPull-Down Menuウィジェットと同様, ユーザがMB1を押したときだけディスプレイに表示されます。 このように,項目リストは呼び出されるまでディスプレイのスペースをまったく占有しません。Option Menu ウィジェットには常に,現在の選択内容が表示されます。

図 2-9 DECburgerのXmOptionMenuウィジェット

DECburgerは図 2-10に示すように, 数量選択を処理するもう1 つの方法としてXmTextウィジェットを使用します。Text ウィジェットを使用すると,ユーザはキーボードからテキストを入力することができます。

図 2-10 DECburgerのXmTextウィジェット

長い選択リストを提示するためには,DECburgerは図 2-11 に示すようなXmScrolledListウィジェットを使用します。この選択リストがディスプレイに表示されるときには, 全項目リストのうちの一部分だけがスクロール・ リスト内に見えています。XmScrolledListウィジェットは, ユーザが一度に複数の項目を選択できるように構成できます。

図 2-11 DECburgerのXmScrolledListウィジェット

DECburgerは図 2-12に示すXmFormウィジェットを使用して, ドリンク類の数量選択を実現しています。XmFormウィジェットにはピックスマップ・ ラベルのあるXmPushButtonウィジェットが2つ組み込まれています。 上向き矢印のXmPushButtonでドリンク類の数量が増加し, 下向き矢印のXmPushButtonで数量が減少します。XmPushButtonガジェットでピックスマップ・ ラベルが使用できないため,ガジェットでなくウィジェットが使用されていることに注意してください。XmForm ウィジェットには, 記述テキストを表示するためと,ユーザが選択した現在値を提示するための,2 つのXmLabelガジェットも組み込まれています。

図 2-12 DECburgerのXmFormウィジェット

DECburgerは図 2-13に示すように,4 つのXmPushButton ウィジェットが組み込まれているXmFormDialogウィジェットを使用して「了解」, 「適用」,「リセット」,「取消」の機能を実現しています。 ガジェットでなくウィジェットを使用すると,より大きなフォント・ サイズを指定して,これらの重要機能を強調できることに注意してください。 ガジェットではフォントを指定できません。ガジェットはその親で指定されたフォントを使用します( この図はこれらのボタンで使用されている実際のフォントを表していません。 この属性を見るには, DECburgerアプリケーションを実行してください)。

XmNshowAsDefaultリソースは,「了解」XmPushButtonを省略時のボタンとして識別します。XmNdefaultButtonShadowThickness は,XmPushButton ウィジェットが選択されたとき同じサイズになるように,すべてのXmPushButton ウィジェットについて1に設定されます。

図 2-13 DECburgerのXmFormDialogウィジェット

2.1.6 DECburgerで使用されるツールキットIntrinsics ルーチン

第1.1.8項で説明したように,アプリケーションはIntrinsics ルーチンを使用することにより,ツールキットの初期化, 画面やディスプレイに関する情報の取得,ウィジェットの画面へのマップとアンマップ, アプリケーションのエンド・ユーザからの入力の処理などを行なうことができます。

たとえば,DECburgerデモ用プログラムは次のようなIntrinsicsルーチンを使用します。


[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ]