(クラス)
public GuiRange
2 つの GuiMark 間のグラフィック階層のセクション範囲を定めます。
説明
GuiRange は、単に 2 つの
GuiMark で構成されています。ただし、範囲 を
valid? にする場合、2 つの
GuiMark を両方とも
valid? にし、2 つの
GuiMark が同じグラフィック階層のグラフィックを参照する必要があります。無効な範囲に対して演算を行おうとすると、
InvalidGuiRangeException が発生します。
パブリックなクラス コンストラクタが作成した範囲はすべて登録され、グラフィックがグラフィック階層から削除されるときに必ず通知されます。これにより、すべての範囲は、無効になりそうな時期、再編成する可能性のある時期、あるいは、将来的に再編成するのに必要になる情報を格納する時期を知る機会を得ます。
範囲の登録および通知は、範囲の参照を作成および維持するのにかかるパフォーマンス コストを抑えます。したがって、開発者は範囲の作成を慎重に検討する必要があります。
_valid?: | GuiRange が有効であるとすでにわかっていることを示すフラグ。 |
フィールド protected GuiRange._valid?:
bool =false
アクセサ public GuiRange.collapsed?:
bool
フィールド public-get private-set GuiRange.end-mark:
GuiMark ={uninitialized-value-for-type GuiMark}
フィールド public-get private-set GuiRange.root:
Graphic ={uninitialized-value-for-type Graphic}
フィールド public-get private-set GuiRange.start-mark:
GuiMark ={uninitialized-value-for-type GuiMark}
valid?: | このGuiRange が現在有効であるかどうかを確認します。 |
アクセサ public GuiRange.valid?:
bool
public | {GuiRange.note-graphic-to-be-removed g:Graphic}:void |
public | {GuiRange.reveal}:void |
set-to: | 新しい位置に GuiRange を移動します。 |
public | {GuiRange.set-to}:void |
public | {GuiRange.walk-graphics}:void |
(コンストラクタ)
新しい範囲を作成します。
mark1: 範囲の 1 つの境界を表す
GuiMark。
root またはそのグラフィック子孫の 1 つを参照する必要があります。
mark2: 範囲の 2 つめの境界を表す
GuiMark。
root またはそのグラフィック子孫の 1 つを参照する必要があります。
説明
このコンストラクタは、渡されるマークのうち、開始境界を表すものと終了境界を表すもののいずれかを自動的に計算します。有効な範囲が見つからない場合、
InvalidGuiRangeException がスローされます。
処理を効率的に行うには、
mark1 と
mark2 を範囲が直接参照するようにし、これらのクローンを作成しないように注意してください。範囲はこれらを
変更しないで、範囲が有効である間、これらが適切な場所に維持されることを求めます。このコンストラクタへの
GuiMark 入力を後から変更する必要があるコードを呼び出す場合は、最初にそれらのクローンを作成するように注意してください。
(フィールド)
protected GuiRange._valid?:
bool =false
GuiRange が有効であるとすでにわかっていることを示すフラグ。
説明
詳細については、
GuiRange.valid? を参照してください。
GuiRange を無効にした可能性のある変更が発生したとき、サブクラスはこのフラグを
false に設定する必要があります。
false 設定は、
valid? ゲッターが範囲を再度有効にすべきであることを示します。このような有効化が的確に発生した場合、このフラグは
true にリセットされます。
(アクセサ)
アクセサ public GuiRange.collapsed?:
bool この GuiRange に何か含まれているかどうかを確認します。
注意事項
(フィールド)
public-get private-set GuiRange.end-mark:
GuiMark ={uninitialized-value-for-type GuiMark}
範囲の終了境界。
プログラミング注意事項
通常は、移動してはなりません。多くの場合、効率化を図るために、他の範囲と共有します。
(フィールド)
public-get private-set GuiRange.root:
Graphic ={uninitialized-value-for-type Graphic}
(フィールド)
public-get private-set GuiRange.start-mark:
GuiMark ={uninitialized-value-for-type GuiMark}
範囲の開始境界。
プログラミング注意事項
通常は、移動してはなりません。多くの場合、効率化を図るために、他の範囲と共有します。
(アクセサ)
アクセサ public GuiRange.valid?:
bool このGuiRange が現在有効であるかどうかを確認します。
説明
(メソッド)
Graphic g がこの GuiRange 内にすべて含まれるかどうかを確認します。
説明
self.start-mark または self.end-mark が g を直接参照している場合、これらのマークが g の適切なエッジにあっても、true を返します。
注意事項
(メソッド)
GuiMark gm がこの GuiRange 内に含まれるかどうかを確認します。
説明
このテストは包括的です。gm が self.start-mark または self.end-mark のどちらか一方と同じになる場合、このメソッドは true を返します。
注意事項
(メソッド)
Graphic g の一部がこの GuiRange 内にあるかどうかを確認します。
注意事項
(メソッド)
public | {GuiRange.note-graphic-to-be-removed g:Graphic}:void |
Graphic がグラフィック階層から取り除かれようとしていることを指摘します。
g: グラフィック階層内の現在位置からはずれそうになっている
Graphic
説明
Curl レイアウト システムによって呼び出されます。通常、直接呼び出すことはありません。
オーバーライド
グラフィックを削除すると範囲が無効になるような場合、このメソッドの基本的な実装では、単に無効な範囲をマークするだけです。
より高度なサブクラスになると、置換マークを探して外れそうなマークを取得することで、それ自身を再編成することができます。また、サブクラスは、GuiRange を再度作成するために後から GuiRange の位置情報が必要になる場合に備えて、gを削除する前にこの位置情報を保存することも可能です。
(メソッド)
public | {GuiRange.reveal}:void |
(メソッド)
public | {GuiRange.set-to}:void |
新しい位置に GuiRange を移動します。
説明
(メソッド)
public | {GuiRange.walk-graphics}:void |
部分的に広がった範囲内の各グラフィックにプロシージャを適用します。
action-proc: 各グラフィックに適用されるプロシージャ。
prune-proc: null でない場合は、各グラフィックとその子孫をトラバースに含めるかどうかを判断するために、このプロシージャが各グラフィックに適用されます。このプロシージャが true と評価された場合、サブツリーは含まれません。
注意事項