(クラス)
public abstract sealed ShapeContainerBase
{inherits
Visual}
Shape オブジェクトの親になることができるオブジェクトを表す抽象基本クラス。
説明
このクラスは、すべての Shape コンテナに使用できる多数のメソッドを実装します。
注意事項
Shape クラスは
ShapeContainerBase を実装します。つまり、どの
Shape も他の
Shape の親になることができます。ただし、
Canvas などの他のクラスは、
Shape でなくても
ShapeContainerBase をサブクラス化できます。(
Canvas は実際には
ShapeRoot をサブクラス化し、そのクラスが
ShapeContainerBase をサブクラス化することに注意してください。)
コンストラクタ protected | {ShapeContainerBase.clone-appearance-from} |
コンストラクタ public | {ShapeContainerBase.default} |
アクセサ public sealed ShapeContainerBase.as-Shape:#
Shape
アクセサ public sealed ShapeContainerBase.as-ShapeRoot:#
ShapeRoot
フィールド public-get private-set ShapeContainerBase.shape-children:{
Array-of Shape}
プロパティ 継承 Visual:
_style-element, clonable-class?, completely-clonable-children?, cursor, data-source, display-context, dragee, font-size, graphical-parent, has-key-focus?, input-method-enabled?, input-method-keyboard-mode, name, options, possibly-displayed?, style-class, style-element, style-manager, style-options, test-child?, test-description, test-name, test-parent?, test-type-name, test-visible?, tooltip, user-data, visual-parent
public | {ShapeContainerBase.add child:any, ...}:#Visual |
public | {ShapeContainerBase.clear}:void |
protected | {ShapeContainerBase.clone-children}:void |
public | {ShapeContainerBase.constrain-shape-layout-bounds}:void |
public | {ShapeContainerBase.draw-shape-child}:void |
public | {ShapeContainerBase.draw-shape-children}:void |
public final | {ShapeContainerBase.get-all-children-at-point}:{Array-of Shape} |
public | {ShapeContainerBase.get-leaf-at-point}:#Shape |
public | {ShapeContainerBase.get-shape-bounds dest:GRect = {GRect.empty} }:GRect |
public | {ShapeContainerBase.get-shape-bounds-in-shape-root dest:GRect = {GRect.empty} }:GRect |
public | {ShapeContainerBase.get-shape-layout-bounds}:GRect |
public final | {ShapeContainerBase.get-shape-root}:#ShapeRoot |
public | {ShapeContainerBase.note-attached}:void |
public | {ShapeContainerBase.note-detaching}:void |
public | {ShapeContainerBase.notify-option-children}:void |
public | {ShapeContainerBase.on-pointer-envelope-event}:void |
public | {ShapeContainerBase.register-options}:void |
remove: | このオブジェクトの形状の子を 1 つ削除します。 |
public | {ShapeContainerBase.remove child:Shape}:void |
public | {ShapeContainerBase.set-shape-index}:void |
public | {ShapeContainerBase.set-shape-index-after}:void |
public | {ShapeContainerBase.set-shape-index-before}:void |
protected | {ShapeContainerBase.shape-container-fire-inferior-crossing-event}:void |
protected | {ShapeContainerBase.shape-container-handle-crossing}:void |
public | {ShapeContainerBase.shape-container-pick-child}:(#EventForwarder, local-x:Distance, local-y:Distance) |
public | {ShapeContainerBase.shape-container-pointer-enter-occurred}:void |
public | {ShapeContainerBase.shape-container-pointer-leave-occurred}:void |
メソッド 継承 Visual:
add-from-init-args, animate, change-cursor, clonable-appearance?, clone-appearance, clone-appearance-helper, find-graphical-ancestor, find-test-children, get-focus-manager, get-graphical-root, get-gui-path, get-gui-path-to-child, get-layout-context, get-origin-in-graphical-ancestor, get-origin-in-root, get-test-parent, get-test-property, get-text, get-top-left-in-ancestor, get-view, maybe-fire-attach-event, maybe-fire-detach-event, non-keyword-init-arg, note-caret-position, on-drag-leave, on-pointer-leave, pop-cursor, prepare-test-object, prepare-test-parent, push-cursor, quantize-width, refresh-style-options, release-key-focus, request-draw, request-key-focus, scroll-to-include, test-record, test-run, transform-from-display-coordinates, transform-from-graphical-root-coordinates, transform-to-display-coordinates, transform-to-graphical-root-coordinates, xy-offset-to メソッド 継承 GuiEventTarget:
handle-delegate-event, handle-event, on-action, on-cancel-mode, on-command-changed, on-commit, on-composition-change-event, on-composition-result-event, on-context-menu-event, on-current-record-change-request, on-current-record-changed, on-destroy-notify, on-destroy-requested, on-drag-over, on-drag-pointer, on-drag-started, on-drop, on-end-composition-event, on-focus-event, on-focus-in, on-focus-out, on-gesture, on-gesture-begin, on-gesture-end, on-gesture-magnify, on-gesture-pan, on-gesture-rotate, on-gesture-swipe, on-gesture-tap, on-gesture-touch, on-grab-release, on-gui-event, on-input-method-event, on-inspection, on-key-event, on-key-press, on-pointer-button, on-pointer-crossing, on-pointer-event, on-pointer-motion, on-pointer-press, on-pointer-release, on-pointer-scroll, on-raw-key-event, on-raw-key-press, on-raw-key-release, on-reset, on-selectable-added, on-selectable-removed, on-selection-changed, on-selection-context-activated, on-selection-context-deactivated, on-selection-event, on-start-composition-event, on-start-event, on-stop-event, on-view-activate, on-view-deactivate, on-window-close, remove-event-handlers-for-event-class メソッド 継承 OptionListInterface:
add-option, add-style-option, change-option-parent-notify, clone-options, get-option, get-option-by-name, keyword-init-arg, local-add-notify, local-remove-notify, name-to-option-key, new-option-item, option-change-notify, option-changed, option-lookup, option-lookup-here, option-propagate-notify, option-set?, propagate-option-change, remove-option, remove-style-option, remove-styles, set-option-by-name, set-style-option-by-name, unset-option-by-name, unset-style-option-by-name
(コンストラクタ)
protected | {ShapeContainerBase.clone-appearance-from} |
新規オブジェクトを生成するためのコンストラクタ。
fixup:
このプロシージャは二つの引数と共に呼び出されます。元のオブジェクトと clone-appearance のメカニズムによって生成されたコピーオブジェクトです。このプロシージャによって返された値はクローンとして使用されます。このプロシージャはコピーするオブジェクトに修正を加えて返すことができます。このプロシージャが null を返すことはできません。
説明
クローン化をサポートする
ShapeContainerBase のサブクラスはこのコンストラクタを呼び出すコンストラクタを持たなければなりません。クローンされた子に追加しなければならない情報があるかどうか分からない場合、このコンストラクタはサブクラスの子のクローンを作成しません。このクラスのサブクラスは子のクローンを作成しそれらを追加する必要があります。追加の情報が必要でない場合、単に
ShapeContainerBase.clone-children を呼び出すだけです。そうでない場合は、
ShapeContainerBase.clone-children をオーバーライドしそれを呼び出さなければなりません。通常、clone-apperance-from コンストラクタから呼び出される
ShapeContainerBase.clone-children は以下のようになります。
{if {type-of self} == {compile-time-type-of self} then
{self.clone-children other, fixup}
}
(コンストラクタ)
public | {ShapeContainerBase.default} |
(アクセサ)
アクセサ public sealed ShapeContainerBase.as-Shape:#
Shape Shape オブジェクトとして self を返すか、Shape でない場合は null を返します。
注意事項
Canvas は、
Shape ではない
ShapeContainerBase の例です。
(アクセサ)
アクセサ public sealed ShapeContainerBase.as-ShapeRoot:#
ShapeRoot ShapeRoot オブジェクトとして self を返すか、ShapeRoot でない場合は null を返します。
注意事項
Canvas は、
ShapeRoot オブジェクトの主な例です。
(非ローカル オプション)
(フィールド)
public-get private-set ShapeContainerBase.shape-children:{
Array-of Shape}
このオブジェクトの子である Shape のリストです。
説明
この配列内の子の順序により描画される順序が決定します。配列内での順序で描画されます。つまり、子はこの配列内のその前にあるすべての子の上に表示されます。
注意事項
(メソッド)
public | {ShapeContainerBase.add child:any, ...}:#Visual |
このオブジェクトに Shape を子として追加します。
child: 子として追加するオブジェクトです。
child は、まだ
Shape でなければ、
Graphic に強制変換されて
GraphicShape の内部に配置され、このオブジェクトの子として追加されます。
説明
注意事項
また、
ShapeContainerBase.add は、以下の 3 つのキーワード パラメータを指定できます。
- index=where は、ShapeContainerBase の子のリストの where で示される位置に g がつなぎ合わせられることを示します。where が 0 の場合、g はリストの最初の子として追加されます。where が数字 n の場合、g は n 番目の子の後につなぎ合わされます。where の数が SequenceBox の子の現在の数よりも大きい場合は、エラーとなります。また、where には、first または last の明確な意味を持つ文字列の 1 つを指定することもできます。
- before=sibling は、ShapeContainerBase の子のリストの sibling の直前に g が追加されることを示します。
- after=sibling では、ShapeContainerBase の子のリストの sibling の直後に g が追加されることを示します。
(メソッド)
public | {ShapeContainerBase.clear}:void |
このオブジェクトのすべての子 Shape を削除します。
(メソッド)
protected | {ShapeContainerBase.clone-children}:void |
ShapeContainerBase.shape-children をクローン化します。このメソッドをサブクラスでオーバーライドするためのメカニズムを提供し、また、自身のクローン化する実装を提供します。
fixup:
このプロシージャは二つの引数と共に呼び出されます。元のオブジェクトと clone-appearance のメカニズムによって生成されたコピーオブジェクトです。このプロシージャによって返された値はクローンとして使用されます。このプロシージャはコピーするオブジェクトに修正を加えて返すことができます。このプロシージャが null を返すことはできません。
説明
このメソッドは
other から自身のために
ShapeContainerBase.shape-children をクローン化します。サブクラスは shape オブジェクトの子どもをクローン化するために明示的に以下のような方法で self.clone-children を呼び出さなければなりません。
{if {type-of self} == {compile-time-type-of self} then
{self.clone-children other, fixup}
}
サブクラスが自身の実装を提供する、子どもが
CanvasLayout に関して追加される必要がある
Canvas.add の場合、自身のクローン化メカニズムを提供するために
ShapeContainerBase.clone-children をオーバーライドしなければなりません。
注意事項
この機能は、全てのスーパークラスが完全に作成された後にのみ呼ばれるべきです。other のタイプが ShapeContainerBase でない場合、エラーがスローされます。
(メソッド)
public | {ShapeContainerBase.constrain-shape-layout-bounds}:void |
境界制約 (ローカル座標系) をこの Shape とその子すべてに適用します。
bounds: 適用する制約です。
説明
(メソッド)
public | {ShapeContainerBase.draw-shape-child}:void |
このオブジェクトの形状の子を 1 つ描画します。
selected-ancestor: 最も近い選択された祖先 (存在する場合) に対応する
ShapeSelectable です。このパラメータは、子自体が選択されない場合ても、子を選択できるように上書き描画するかどうかを決定するために使用されます。
ShapeSelectable を持たない選択された
Shape の子は、祖先の
ShapeSelectable を使用して選択時に上書き描画されます。この関係は、直属の子だけでなく、同じ
SelectionContext 内のすべての子に再帰的に適用されることに注意してください。
説明
(メソッド)
public | {ShapeContainerBase.draw-shape-children}:void |
このオブジェクトの形状の子がすべて適切な順序で描画されます。
selected-ancestor: 最も近い選択された祖先 (存在する場合) に対応する
ShapeSelectable です。このパラメータは、子自体が選択されない場合ても、子を選択できるように上書き描画するかどうかを決定するために使用されます。
ShapeSelectable を持たない選択された
Shape の子は、祖先の
ShapeSelectable を使用して選択時に上書き描画されます。この関係は、直属の子だけでなく、同じ
SelectionContext 内のすべての子に再帰的に適用されることに注意してください。
説明
プログラミング注意事項
(メソッド)
public final | {ShapeContainerBase.get-all-children-at-point}:{Array-of Shape} |
ポイントを含む直属の子形状を取得します。
戻り値
ポイントを含むこのオブジェクトの子の配列。これらの形状の順序は、上から下の順です。
説明
このメソッドは、このオブジェクトの直属の子のサブセットを含む配列を返します。この配列には、このオブジェクト自体は含まれません。
注意事項
このメソッドに渡されるポイントは、このオブジェクトのローカル座標空間にあります。
(メソッド)
ポイントを含む最上位の直属の子形状を取得します。
説明
このメソッドは、常にこのオブジェクトの直属の子を 1 つ返します。ポイントを含む形状がない場合は null を返します。self を返すことはありません。
Shape は、オブジェクト自体、
またはそのいずれかの子の描画された領域の中にポイントが含まれる場合、そのポイントを含むように定義されます。
注意事項
このメソッドに渡されるポイントは、このオブジェクトのローカル座標空間にあります。
(メソッド)
public | {ShapeContainerBase.get-leaf-at-point}:#Shape |
ポイントを含む最も深い子形状を取得します。
説明
このメソッドは、このオブジェクトより下の形状階層全体をトラバースして、ポイントを含むリーフ形状 (ある場合) を取得します。
注意事項
このメソッドに渡されるポイントは、このオブジェクトのローカル座標空間にあります。
(メソッド)
public | {ShapeContainerBase.get-shape-bounds dest:GRect = {GRect.empty} }:GRect |
このオブジェクトのローカル座標系における、このオブジェクトとその子の四角形のレンダリング境界を計算します。
dest: データを返すために使用されるオプションの GRect オブジェクト。
戻り値
境界を含む
GRect オブジェクト。これは、常に
dest と同じオブジェクトになります。この
GRect は正しい形式である必要があります。つまり、次の条件が true でなければなりません。
-dest.lextent <= dest.rextent and -dest.ascent <= dest.descent
説明
返された境界は、このオブジェクトによって描画されるすべてのピクセルをカバーしている必要があり、このオブジェクトのすべての子を含んでいます。
(メソッド)
public | {ShapeContainerBase.get-shape-bounds-in-shape-root dest:GRect = {GRect.empty} }:GRect |
形状ルートである祖先の座標系における、このオブジェクトと子の四角形のレンダリング境界を取得します。
dest: データを返すために使用されるオプションの GRect オブジェクト。
戻り値
境界を含む
GRect オブジェクト。これは、常に
dest と同じオブジェクトになります。この
GRect は正しい形式である必要があります。つまり、次の条件が true でなければなりません。
-dest.lextent <= dest.rextent and -dest.ascent <= dest.descent
説明
返された境界は、このオブジェクトによって描画されるすべてのピクセルをカバーしている必要があり、このオブジェクトのすべての子を含んでいます。
注意事項
形状ルートを持たない形状に対してこのメソッドを呼び出すことはできません。例外が発生します。
(メソッド)
public | {ShapeContainerBase.get-shape-layout-bounds}:GRect |
このオブジェクトのローカル座標系における、このオブジェクトとその子の四角形のレイアウト境界を計算します。
width-first?:
GraphicShape の場合、width-first レイアウト ネゴシエーションを使用して計算されるべき境界であるかを示します。このパラメータは、通常他のサブクラスでは使用されません。
dest: データを返すために使用されるオプションの GRect オブジェクト。
戻り値
境界を含む
GRect オブジェクト。これは、常に
dest と同じオブジェクトになります。この
GRect は正しい形式である必要があります。つまり、次の条件が true でなければなりません。
-dest.lextent <= dest.rextent and -dest.ascent <= dest.descent
説明
返された境界には、レイアウトの使用について、オブジェクトに関する詳細な記述があります。また、このオブジェクトのすべての子も含まれています。
(メソッド)
public final | {ShapeContainerBase.get-shape-root}:#ShapeRoot |
この形状階層のルートにある ShapeRoot を探して返します。
説明
Shape.shape-parent を使用して、
ShapeRoot が見つかるまで形状階層を上方向にトラバースします。形状階層が現在
ShapeRoot 内に含まれていない場合は、null を返します。
(メソッド)
public | {ShapeContainerBase.note-attached}:void |
(メソッド)
public | {ShapeContainerBase.note-detaching}:void |
(メソッド)
public | {ShapeContainerBase.notify-option-children}:void |
このオブジェクトのオプションの子にオプションが変更されたことを通知します。
item: 追加または削除されたバインディング オプション。
removed?: item が削除された場合は true、それ以外の場合は false。
オーバーライド
(メソッド)
(メソッド)
(メソッド)
public | {ShapeContainerBase.on-pointer-envelope-event}:void |
(メソッド)
public | {ShapeContainerBase.register-options}:void |
このオブジェクトがバインドのモニタリングを必要とする非ローカル オプション キーを登録します。
プログラミング注意事項
このメソッドは、オブジェクトがモニタしているオプション キーを確認する必要がある場合に任意のコード内で呼び出されます。このメソッドは、プロシージャ
p をまったく呼び出さないかまたは何回か呼び出し、呼び出すたびに引数として
OptionKey を渡す必要があります。このオブジェクトによりモニタリングされるオプション キーのセットは、
p のすべての呼び出しで指定されたオプション キー セットの連結であると見なされます。
p を複数回呼び出せるという能力を利用して、オプション親はモニタの対象となるオプション キーのリストを指定して
p を一度呼び出し、次に、同じ引数
p を与えてオプションの子それぞれの
register-options メソッドを呼び出し、このメソッドの目的を果たすことができます。この方法はシンプルですが、ほとんどの場合は、オプション親がその子における
register-options 呼び出しの結果をキャッシュして、親の
register-options メソッドが呼び出されたときにそのリストを提供する方がより効率的です。ローカル バインディング オプションへの変更通知は、それらのキーが登録されていない場合でも行われます。
オーバーライド
OptionListInterface.register-options の既定の実装は、このオブジェクトの変更ハンドラを持つ各非ローカル オプションで
p を呼び出します。サブクラスは、
{super.register-options p} を呼び出し、登録される必要がある追加のオプション キー上全てで、
p を呼び出すように、このメソッドをオーバーライドする必要する必要があります。一般的に、これらの追加のオプション キーは、子供または子孫のオブジェクトが監視する必要がある非ローカル オプションに対応します。それは、このオブジェクトの子オブジェクト上で、
register-options を呼び出すことによって決定されます。
注意 一般的に、このメソッドをオーバーライドする必要があるオブジェクトだけが、オプションの子を持つオブジェクトです。
(メソッド)
public | {ShapeContainerBase.remove child:Shape}:void |
このオブジェクトの形状の子を 1 つ削除します。
説明
(メソッド)
public | {ShapeContainerBase.set-shape-index}:void |
このオブジェクトの形状の子の描画順序を調整します。
説明
child は、このオブジェクトの子の配列内で、新しいインデックスが new-index になるように移動されます。
(メソッド)
public | {ShapeContainerBase.set-shape-index-after}:void |
このオブジェクトの形状の子の描画順序を調整します。
説明
child は、このオブジェクトの子の配列内で after の直後に移動されます。
(メソッド)
public | {ShapeContainerBase.set-shape-index-before}:void |
このオブジェクトの形状の子の描画順序を調整します。
説明
child は、このオブジェクトの子の配列内で before の直前に移動されます。
(メソッド)
protected | {ShapeContainerBase.shape-container-fire-inferior-crossing-event}:void |
このオブジェクトで PointerCrossing イベントを発生させます。
プログラミング注意事項
オーバーライド
通常はオーバーライドされません。
(メソッド)
protected | {ShapeContainerBase.shape-container-handle-crossing}:void |
ポインタ イベントe についての通知に応じて、必要な場合に PointerCrossing イベントを発生させます。
c: (
e.x,
e.y) が位置する、子の形状。そのような子が存在しない場合、
c は NULL になります。
e: ポインタ座標
e.x および
e.y を含むイベント。
entered?: ポインタがこのオブジェクトに入っている場合は true になります。
left?: ポインタがこのオブジェクトから出ると true になります。
説明
プログラミング注意事項
(メソッド)
public | {ShapeContainerBase.shape-container-pick-child}:(#EventForwarder, local-x:Distance, local-y:Distance) |
指定された点 (x, y) を覆う ShapeContainerBase の子を選択します。
x, y: 点の座標。
戻り値
この点を覆う子。該当する子がない場合は NULL を返します。
プログラミング注意事項
注意事項
このメソッドの実装では、x と y の最新の値を、これらの値について返された答えと合わせてキャッシュすることが推奨されます。このメソッドはたいてい同じ入力で連続して複数回呼び出されるからです。
(メソッド)
public | {ShapeContainerBase.shape-container-pointer-enter-occurred}:void |
(メソッド)
public | {ShapeContainerBase.shape-container-pointer-leave-occurred}:void |