GuiRange (クラス)
public GuiRange
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.GUI.BASE.

2 つの GuiMark 間のグラフィック階層のセクション範囲を定めます。

説明

GuiRange は、単に 2 つの GuiMark で構成されています。ただし、範囲 を valid? にする場合、2 つの GuiMark を両方とも valid? にし、2 つの GuiMark が同じグラフィック階層のグラフィックを参照する必要があります。無効な範囲に対して演算を行おうとすると、InvalidGuiRangeException が発生します。

パブリックなクラス コンストラクタが作成した範囲はすべて登録され、グラフィックがグラフィック階層から削除されるときに必ず通知されます。これにより、すべての範囲は、無効になりそうな時期、再編成する可能性のある時期、あるいは、将来的に再編成するのに必要になる情報を格納する時期を知る機会を得ます。

範囲の登録および通知は、範囲の参照を作成および維持するのにかかるパフォーマンス コストを抑えます。したがって、開発者は範囲の作成を慎重に検討する必要があります。

コンストラクタ
default:新しい範囲を作成します。
コンストラクタ public {GuiRange.default root:Graphic, mark1:GuiMark, mark2:GuiMark}

プロパティ
_valid?:GuiRange が有効であるとすでにわかっていることを示すフラグ。
フィールド protected GuiRange._valid?:bool =false
collapsed?:この GuiRange に何か含まれているかどうかを確認します。
アクセサ public GuiRange.collapsed?:bool
end-mark:範囲の終了境界。
フィールド public-get private-set GuiRange.end-mark:GuiMark ={uninitialized-value-for-type GuiMark}
root:範囲のルート。
フィールド public-get private-set GuiRange.root:Graphic ={uninitialized-value-for-type Graphic}
start-mark:範囲の開始境界。
フィールド public-get private-set GuiRange.start-mark:GuiMark ={uninitialized-value-for-type GuiMark}
valid?:このGuiRange が現在有効であるかどうかを確認します。
アクセサ public GuiRange.valid?:bool

メソッド
contains-graphic?:Graphic g がこの GuiRange 内にすべて含まれるかどうかを確認します。
public {GuiRange.contains-graphic? g:Graphic}:bool
contains?:GuiMark gm がこの GuiRange 内に含まれるかどうかを確認します。
public {GuiRange.contains? gm:GuiMark}:bool
intersects-graphic?:Graphic g の一部がこの GuiRange 内にあるかどうかを確認します。
public {GuiRange.intersects-graphic? g:Graphic}:bool
note-graphic-to-be-removed:Graphic がグラフィック階層から取り除かれようとしていることを指摘します。
public {GuiRange.note-graphic-to-be-removed g:Graphic}:void
reveal:GuiRange をユーザー別に表示します。
public {GuiRange.reveal}:void
set-to:新しい位置に GuiRange を移動します。
public {GuiRange.set-to
root:Graphic,
mark1:GuiMark,
mark2:GuiMark
}:void
walk-graphics:部分的に広がった範囲内の各グラフィックにプロシージャを適用します。
public {GuiRange.walk-graphics
action-proc:{proc-type {Graphic}:void},
prune-proc:#{proc-type {Graphic}:bool} = null
}:void
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (コンストラクタ)
public {GuiRange.default root:Graphic, mark1:GuiMark, mark2:GuiMark}

新しい範囲を作成します。

root: 範囲のルートを作成する Graphic
mark1: 範囲の 1 つの境界を表す GuiMarkroot またはそのグラフィック子孫の 1 つを参照する必要があります。
mark2: 範囲の 2 つめの境界を表す GuiMarkroot またはそのグラフィック子孫の 1 つを参照する必要があります。

説明

このコンストラクタは、渡されるマークのうち、開始境界を表すものと終了境界を表すもののいずれかを自動的に計算します。有効な範囲が見つからない場合、InvalidGuiRangeException がスローされます。

処理を効率的に行うには、mark1mark2 を範囲が直接参照するようにし、これらのクローンを作成しないように注意してください。範囲はこれらを変更しないで、範囲が有効である間、これらが適切な場所に維持されることを求めます。このコンストラクタへの GuiMark 入力を後から変更する必要があるコードを呼び出す場合は、最初にそれらのクローンを作成するように注意してください。



プロパティ詳細
_valid? (フィールド)
protected GuiRange._valid?:bool =false

GuiRange が有効であるとすでにわかっていることを示すフラグ。

説明

詳細については、GuiRange.valid? を参照してください。

GuiRange を無効にした可能性のある変更が発生したとき、サブクラスはこのフラグを false に設定する必要があります。false 設定は、valid? ゲッターが範囲を再度有効にすべきであることを示します。このような有効化が的確に発生した場合、このフラグは true にリセットされます。


collapsed? (アクセサ)
アクセサ public GuiRange.collapsed?:bool

この GuiRange に何か含まれているかどうかを確認します。

注意事項

無効な範囲に対しては、InvalidGuiRangeException をスローします。


end-mark (フィールド)
public-get private-set GuiRange.end-mark:GuiMark ={uninitialized-value-for-type GuiMark}

範囲の終了境界。

プログラミング注意事項

通常は、移動してはなりません。多くの場合、効率化を図るために、他の範囲と共有します。


root (フィールド)
public-get private-set GuiRange.root:Graphic ={uninitialized-value-for-type Graphic}

範囲のルート。



start-mark (フィールド)
public-get private-set GuiRange.start-mark:GuiMark ={uninitialized-value-for-type GuiMark}

範囲の開始境界。

プログラミング注意事項

通常は、移動してはなりません。多くの場合、効率化を図るために、他の範囲と共有します。


valid? (アクセサ)
アクセサ public GuiRange.valid?:bool

このGuiRange が現在有効であるかどうかを確認します。

説明

GuiRange が参照するグラフィック階層を変更すると、GuiRange は無効になる可能性があります。これは、範囲が有効である間、あるいは、範囲に対してさらに操作を行う前に範囲を有効にできるかぎり、一時的に受け入れられる状態です。

詳細については、GuiRange.note-graphic-to-be-removed および InvalidGuiRangeExceptionを参照してください。





メソッド詳細
contains-graphic? (メソッド)
public {GuiRange.contains-graphic? g:Graphic}:bool

Graphic g がこの GuiRange 内にすべて含まれるかどうかを確認します。

説明

self.start-mark または self.end-markg を直接参照している場合、これらのマークが g の適切なエッジにあっても、true を返します。

注意事項

無効な範囲に対しては、InvalidGuiRangeException をスローします。


contains? (メソッド)
public {GuiRange.contains? gm:GuiMark}:bool

GuiMark gm がこの GuiRange 内に含まれるかどうかを確認します。

説明

このテストは包括的です。gmself.start-mark または self.end-mark のどちらか一方と同じになる場合、このメソッドは true を返します。

注意事項

無効な範囲に対しては、InvalidGuiRangeException をスローします。


intersects-graphic? (メソッド)
public {GuiRange.intersects-graphic? g:Graphic}:bool

Graphic g の一部がこの GuiRange 内にあるかどうかを確認します。

注意事項

無効な範囲に対しては、InvalidGuiRangeException をスローします。


note-graphic-to-be-removed (メソッド)
public {GuiRange.note-graphic-to-be-removed g:Graphic}:void

Graphic がグラフィック階層から取り除かれようとしていることを指摘します。

g: グラフィック階層内の現在位置からはずれそうになっている Graphic

説明

Curl レイアウト システムによって呼び出されます。通常、直接呼び出すことはありません。

オーバーライド

グラフィックを削除すると範囲が無効になるような場合、このメソッドの基本的な実装では、単に無効な範囲をマークするだけです。

より高度なサブクラスになると、置換マークを探して外れそうなマークを取得することで、それ自身を再編成することができます。また、サブクラスは、GuiRange を再度作成するために後から GuiRange の位置情報が必要になる場合に備えて、gを削除する前にこの位置情報を保存することも可能です。


reveal (メソッド)
public {GuiRange.reveal}:void

GuiRange をユーザー別に表示します。



set-to (メソッド)
public {GuiRange.set-to
root:Graphic,
mark1:GuiMark,
mark2:GuiMark
}:void

新しい位置に GuiRange を移動します。

説明

このメソッドは、コンストラクタと同じように機能しますが、既存のオブジェクトを操作します。詳細については、GuiRange.default を参照してください。


walk-graphics (メソッド)
public {GuiRange.walk-graphics
action-proc:{proc-type {Graphic}:void},
prune-proc:#{proc-type {Graphic}:bool} = null
}:void

部分的に広がった範囲内の各グラフィックにプロシージャを適用します。

action-proc: 各グラフィックに適用されるプロシージャ。
prune-proc: null でない場合は、各グラフィックとその子孫をトラバースに含めるかどうかを判断するために、このプロシージャが各グラフィックに適用されます。このプロシージャが true と評価された場合、サブツリーは含まれません

注意事項

範囲がコンテナの 1 つの子内に完全に含まれていない場合、コンテナは走査に*含まれません*。

無効な範囲に基づいて InvalidGuiRangeException をスローします。