これは RuntimeRevolution 1.1.1 のヘルプにある文書を邦訳したものです。この文書の文責はUDIにあり、またUDIはこの文書についての一切の債務を負いません。 間違いがありましたら eudio@chabashira.co.jp までお知らせ下さい。この文書は必要と思われる時に適宜アップデートされます。

Help -> Revolution Documantation -> Development Guide -> Windows & Dialog Boxes -> About... windows, palettes, and dialog boxes



About windows, palettes, and dialog boxes
ウィンドウ、パレット、ダイアログボックス
==============

参照:
--------------
How to change a window's title, How to change the size and position of a window, How to display a dialog box, How to edit a palette or dialog box, How to show or hide a window, Why do menu commands affect the wrong stack?, Why is the card number in the window name?, Why is there an asterisk in the window name?, Window menu > Send Window to Back, Object menu > Stack Properties, Shortcut to display a contextual menu (browse tool), answer command, ask command, decorations property, destroyWindow property, label property, modal command, mode property, modeless command, palette command, topLevel command, style property


 Revolution では、各ウィンドウはスタックである。これには編集可能なウィンドウや、モードレスダイアログや、モーダルダイアログや、パレットも含む。

 このトピックでは、ウィンドウ、パレット、ダイアログが、Revolution アプリケーションでどのように実装されているのか、どのようにして外見を変えるのか、そして各ウィンドウタイプごとの動作をどのようにコントロールするのかについて解説する。

 このトピックを充分に理解するためには、スタックの作り方と、プロパティの設定について知っておかなければ成らない。 'Getting Started' チュートリアルが済んでいるなら、このトピックを理解するための情報は得られている。


Contents:
The Mode of a Stack
Stack Decorations and Window Appearance
Which Window Is Active?
Open, Closed, and Hidden Windows


The Mode of a Stack
スタックのモード
 スタックウインドウの性質は、そのモードによって決定されている。ウィンドウのモードはスタックの style プロパティと、次にどのコマンドでスタックを開いたかによって決まる。

 Revolution のウィンドウには、このようなタイプがある:

Editable windows:
編集可能ウィンドウ:
 ほとんどのウィンドウは編集可能ウィンドウであり、これは Revolution スタックのデフォルトモードである。編集可能ウィンドウは、現在のプラットホームの標準的な外観を持っている。他のウィンドウの間に置くことが出来、Revolution のツールを使って、スタックにあるオブジェクトの作成、選択、移動、削除が出来る。

 スタックの cantModify プロパティを true にすると、ウィンドウは標準的な外観を維持し、ブラウズツール以外のツールは使えなくなる。(つまりロックされたウィンドウ上では、どのツールもブラウズツールとして機能する)

 スタックを編集可能ウィンドウをして表示するには、topLevel コマンドを使う。 style プロパティが 'topLevel' に設定されているスタックは、どのコマンドを使っても常に編集可能ウィンドウとして開かれる。

Modal dialog boxes:
モーダルダイアログボックス:
 モーダルダイアログボックスは、そのダイアログボックスが開いている間、他の作業を妨げる。モーダルダイアログボックスの外をクリックすることは出来ないし、ダイアログボックスを閉じるまで他のウィンドウを前面に移動することも出来ないので、ツールパレットのツールを使って、スタックを編集することは出来ない。

 モーダルダイアログボックスはクローズボックスを持たない。一般的には、クリックするとウィンドウを閉じるボタンを持っている。

 スタックをモーダルダイアログボックスとして表示するには、modal コマンドを使う。 style プロパティが 'modal' に設定されているスタックは、どのコマンドを使っても常にモーダルダイアログボックスとして開かれる。

 ティップス: もしウィンドウを閉じるためのハンドラを持たないモーダルダイアログボックスをうっかり開いてしまったら、コンテクストメニューショートカット( Mac OS と OS X では Command-Control-Shift-click、Unix と Windows では Control-Shift-Right-click )を使いなさい。このショートカットは、コンテクストメニューと、そのスタックのモード変更メニューを表示するので、ウィンドウを閉じずにスタックを他のモードに変更することが出来る。(このテクニックはスタックが modal コマンドで開かれた時だけ有効である。 style プロパティが 'modal' であるスタックでは効果がない)

Modeless dialog boxes:
モードレスダイアログボックス:
 モードレスダイアログボックスは、スタックの編集が出来ないことを除いて編集可能ウィンドウに良く似ているが、Browse 以外のツールを使うことは出来ない。

 スタックをモードレスダイアログボックスとして表示するには、modeless コマンドを用いる。 style プロパティを modeless に設定されたスタックは、どのコマンドを使っても常にモードレスダイアログとして開かれる。

Palette windows:
パレットウィンドウ:
 パレットは編集可能ウィンドウとは僅かに違う、タイトルバーの狭い外見を持つ。このウィンドウは( raisePalettes プロパティが true なら)編集可能ウィンドウよりも前にあり、リサイズや編集は出来ない。

 スタックをパレットして表示するには、palette コマンドを用いる。 style プロパティを palette に設定されたスタックは、どのコマンドを使っても常にモードレスダイアログとして開かれる。

 (多くの Unix システムでは、パレットは普通のウィンドウと同じ外観を持っている)

Additional modes:
その他のモード:
 スタックはメニューとして開かれることもある。(スタックのメニューについてはこのセクションの 'Menus and the Menu Bar' を参照) また、ウィンドウを開かずにメモリに読み込まれることもある。(下にある 'Open, Closed, and Hidden Windows' を参照)

 スタックのモードについては、mode プロパティの項に完全な情報がある。


Stack Decorations and Window Appearance
スタックの Decorations とウィンドウの外観
 ウインドウモードによる外観の違いとは別に、ウィンドウの外観と機能はスタックの decorations と resizable プロパティによって変化する。

 decorations プロパティは、ウィンドウがタイトルバーを持つか、タイトルバーには何を入れるのか、を決定する。これらのウィンドウパーツを表示非表示することが出来る:
* ズームボックス( Mac OS )や最大化ボタン( OS X、Unix、Windows )
* シェードボックス( collapse box: Mac OS )、アイコン化ボタン( Unix )、最小化ボタン( OS X、Windows )
* メニューバー( Unix、Windows )

 resizable プロパティは、ウィンドウの右下にリサイズボックスを表示するかどうかを決定する。

 decorations と resizable プロパティは、スタックのモードとは別に存在する。もちろんいつくかの decorations のセットは現在のスタックタイプに合わない可能性がある。例えばスタックの decorations プロパティを empty にすると、スタックが編集可能ウィンドウであっても、モーダルダイアログボックスであっても、またモードレスダイアログやパレットであっても、タイトルバーの無いウィンドウになる。

 decorations プロパティや resizable プロパティがスタックのモードと合わない場合、スタックモードがこれらのプロパティを無視する場合がある。例えば resizable プロパティの設定の如何に関わらず、パレットとモーダルダイアログはリサイズ不可能である。そしてもし decorations がデフォルトなら、カレントウィンドウは現在のプラットホームに適合した外観になる。


Which Window Is Active?
どのウィンドウがアクティブ?
 多くのアプリケーションでは、コマンドはアクティブなウィンドウに作用する。 Revolution は編集可能ウィンドウだけでなく、様々なウィンドウを柔軟に使い分けることが出来るので、カレントスタックが常にアクティブウィンドウとは限らない。

 例えば検索コマンドを使うために別のモードでスタックを開いた時に、予想外の結果を見るかも知れない。この状況ではターゲットスタックは最前面のスタックではない。

 どのスタックがカレントスタックであるかを決めるのは、以下のようなルールである:

1. 編集可能ウィンドウとしているスタックがあれば、一番手前にあるロックされていないウィンドウがカレントスタックである。( cantModify プロパティが true なら、スタックはロックされていない)(訳注: (A stack is unlocked if its cantModify property is set to true.) これ逆ではないかと思いますが...)

2. ロックされていないスタックが開いていない場合は、一番手前のロックされている普通のウィンドウがカレントスタックである。

3. もし普通のウィンドウが開いていなければ、一番手前のモードレスダイアログボックスがカレントスタックである。

4. もし編集可能なウィンドウもモードレスウィンドウも開いていない場合は、一番手前のパレットがカレントスタックである。

 別の言い方をすれば、一番手前にある、mode プロパティが一番低いスタックが、カレントスタックである。このスタックは topStack 関数で得ることが出来る。

 カレントスタック以外のスタックを操作するには、コマンドを実行する前に、defaultStack プロパティにスタック名をセットする。

A note about Unix systems:
Unix システムの注意:
If your system is set up to use pointer focus rather than click-to-type or explicit focus, you may experience unexpected results, since the current stack will change as you move the mouse pointer. It is recommended that you configure your system to use explicit focus when using Revolution or any other applications created in Revolution.(訳注:済みません。Unix のこと分からないのでそのまま載せます。協力求む)


Open, Closed, and Hidden Windows
開いたウィンドウ、閉じたウィンドウ、隠されたウィンドウ
 これまで述べたように、スタックはウィンドウに表示される。スタックウィンドウは visible プロパティによって、show することも hide することも出来る。これは、スクリーンに表示することなくウィンドウを開けることを意味する。しかし hide されたスタックは openStacks 関数や related 関数でリストアップされる。

 スタックはまた実際にオープンしなくても、メモリ上に読み込まれることがある。閉じたスタックのウィンドウ( hide ではない)は openStacks 関数にはリストアップされない。しかしメモリ上には存在し、他のスタックからそのオブジェクトにアクセスすることが出来る。(例えばメモリ上にある閉じたスタックが持つ image は、他のスタックのボタンアイコンとして利用することが出来る)

 以下の3つのケースでは、スタックがメモリ上に読み込まれている可能性がある:

1. 他のスタックのハンドラが閉じたスタックのプロパティを参照する時。この場合、参照されたスタックが自動的にメモリに読み込まれる。

2. 同じスタックファイルにある他のスタックが開いている時。

3. destroyStack プロパティが false であるスタックを開いて閉じた時。(もし destroyStack プロパティが false であれば、ウィンドウを閉じた時にスタックは閉じてもメモリ上に残る)

 開いているか閉じているかに関わらず、メモリ上の全てのスタックのリストを得るには、revLoadedStacks 関数を使う。

 スタックには4つの状態がある:

Open and visible:
オープンしていて見えている:
 スタックはメモリ上にあり、ウィンドウが開いていて、そのウィンドウが見えている。

Open and hidden:
オープンしていて隠されている:
 スタックがメモリ上にあり、ウィンドウが開いているが、ウィンドウは見えない。スタックは Window メニューと Application Overview にリストアップされる。

Closed but loaded into memory:
閉じているがメモリ上にある:
 スタックはメモリ上にあるが、ウィンドウは開いておらず、openStacks 関数や Window メニューに現れない。しかしオブジェクトは他のスタックから利用可能で、Application Overview にはリストアップされる。このスタックをメモリ上から取り除くには、Application Overview 上でこのスタックを選択して、'Purge' ボタンをクリックする。

Closed:
閉じている:
 スタックはメモリ上に無く、他のスタックに何の影響も与えない。

 閉じているがメモリ上にあるスタックは、mode プロパティがゼロである。

邦訳/文責:UDI
2003.01.03

inserted by FC2 system