ShapeContainerBase (クラス)
public abstract sealed ShapeContainerBase {inherits Visual}
パッケージ: CURL.GUI.SHAPES
直接継承しているサブクラス: Shape, ShapeRoot

Shape オブジェクトの親になることができるオブジェクトを表す抽象基本クラス。

説明

このクラスは、すべての Shape コンテナに使用できる多数のメソッドを実装します。

注意事項

Shape クラスは ShapeContainerBase を実装します。つまり、どの Shape も他の Shape の親になることができます。ただし、Canvas などの他のクラスは、Shape でなくても ShapeContainerBase をサブクラス化できます。( Canvas は実際には ShapeRoot をサブクラス化し、そのクラスが ShapeContainerBase をサブクラス化することに注意してください。)
ShapeContainerBase.as-Shape および ShapeContainerBase.as-ShapeRoot メソッドを使用して、ShapeContainerBase の性質を確認できます。

コンストラクタ
clone-appearance-from:新規オブジェクトを生成するためのコンストラクタ。
コンストラクタ protected {ShapeContainerBase.clone-appearance-from
other:ShapeContainerBase,
fixup:#{proc-type {Visual, Visual}:Visual}
}
default:この型の新しいオブジェクトを作成します。
コンストラクタ public {ShapeContainerBase.default}

プロパティ
as-Shape:Shape オブジェクトとして self を返すか、Shape でない場合は null を返します。
アクセサ public sealed ShapeContainerBase.as-Shape:#Shape
as-ShapeRoot:ShapeRoot オブジェクトとして self を返すか、ShapeRoot でない場合は null を返します。
アクセサ public sealed ShapeContainerBase.as-ShapeRoot:#ShapeRoot
selection-context:この ShapeContainerBase とその Shape 子孫に関連付けられた SelectionContext です。
非ローカル オプション public ShapeContainerBase.selection-context:#SelectionContext
shape-children:このオブジェクトの子である Shape のリストです。
フィールド 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
プロパティ 継承 DataBindingTarget: data-binding-context, data-bindings
プロパティ 継承 EventTarget: event-handlers
プロパティ 継承 OptionListInterface: option-parent, option-register-proc, options-present-here, registered-option-keys

メソッド
add:このオブジェクトに Shape を子として追加します。
public {ShapeContainerBase.add child:any, ...}:#Visual
clear:このオブジェクトのすべての子 Shape を削除します。
public {ShapeContainerBase.clear}:void
clone-children:ShapeContainerBase.shape-children をクローン化します。このメソッドをサブクラスでオーバーライドするためのメカニズムを提供し、また、自身のクローン化する実装を提供します。
protected {ShapeContainerBase.clone-children
other:Visual,
fixup:#{proc-type {Visual, Visual}:Visual}
}:void
constrain-shape-layout-bounds:境界制約 (ローカル座標系) をこの Shape とその子すべてに適用します。
public {ShapeContainerBase.constrain-shape-layout-bounds
lc:LayoutContext,
bounds:GRect
}:void
draw-shape-child:このオブジェクトの形状の子を 1 つ描画します。
public {ShapeContainerBase.draw-shape-child
child:Shape,
r2d:Renderer2d,
selected-ancestor:#ShapeSelectable = null
}:void
draw-shape-children:このオブジェクトの形状の子がすべて適切な順序で描画されます。
public {ShapeContainerBase.draw-shape-children
r2d:Renderer2d,
selected-ancestor:#ShapeSelectable = null
}:void
get-all-children-at-point:ポイントを含む直属の子形状を取得します。
public final {ShapeContainerBase.get-all-children-at-point}:{Array-of Shape}
get-child-at-point:ポイントを含む最上位の直属の子形状を取得します。
public {ShapeContainerBase.get-child-at-point}:(result:#Shape, local-x:Distance, local-y:Distance)
get-leaf-at-point:ポイントを含む最も深い子形状を取得します。
public {ShapeContainerBase.get-leaf-at-point}:#Shape
get-shape-bounds:このオブジェクトのローカル座標系における、このオブジェクトとその子の四角形のレンダリング境界を計算します。
public {ShapeContainerBase.get-shape-bounds
dest:GRect = {GRect.empty}
}:GRect
get-shape-bounds-in-shape-root:形状ルートである祖先の座標系における、このオブジェクトと子の四角形のレンダリング境界を取得します。
public {ShapeContainerBase.get-shape-bounds-in-shape-root
dest:GRect = {GRect.empty}
}:GRect
get-shape-layout-bounds:このオブジェクトのローカル座標系における、このオブジェクトとその子の四角形のレイアウト境界を計算します。
public {ShapeContainerBase.get-shape-layout-bounds
lc:LayoutContext,
width-first?:bool = true,
dest:GRect = {GRect.empty}
}:GRect
get-shape-root:この形状階層のルートにある ShapeRoot を探して返します。
public final {ShapeContainerBase.get-shape-root}:#ShapeRoot
note-attached:ルートが RootFrame であるグラフィック階層にこの Visual が追加されたとき、そのグラフィック階層内でこれより下にあるすべての Visual に対して AttachEvent を起動します。
public {ShapeContainerBase.note-attached}:void
note-detaching:ルートが RootFrame であるグラフィック階層からこの Visual が削除されたとき、そのグラフィック階層内でこれより下にあるすべての Visual に対して DetachEvent を起動します。
public {ShapeContainerBase.note-detaching}:void
notify-option-children:このオブジェクトのオプションの子にオプションが変更されたことを通知します。
public {ShapeContainerBase.notify-option-children
item:OptionItem,
removed?:bool
}:void
on-drag-enter:DragEnter イベントのスタティック イベント ハンドラ
public {ShapeContainerBase.on-drag-enter e:DragEnter}:void
on-pointer-enter:PointerEnter イベントのスタティック イベント ハンドラ
public {ShapeContainerBase.on-pointer-enter e:PointerEnter}:void
on-pointer-envelope-event:PointerEnvelopeEventスタティック イベント ハンドラ
public {ShapeContainerBase.on-pointer-envelope-event}:void
register-options:このオブジェクトがバインドのモニタリングを必要とする非ローカル オプション キーを登録します。
public {ShapeContainerBase.register-options
p:{proc-type {OptionKey}:void}
}:void
remove:このオブジェクトの形状の子を 1 つ削除します。
public {ShapeContainerBase.remove child:Shape}:void
set-shape-index:このオブジェクトの形状の子の描画順序を調整します。
public {ShapeContainerBase.set-shape-index
child:Shape,
new-index:int
}:void
set-shape-index-after:このオブジェクトの形状の子の描画順序を調整します。
public {ShapeContainerBase.set-shape-index-after
child:Shape,
after:Shape
}:void
set-shape-index-before:このオブジェクトの形状の子の描画順序を調整します。
public {ShapeContainerBase.set-shape-index-before
child:Shape,
before:Shape
}:void
shape-container-fire-inferior-crossing-event:このオブジェクトで PointerCrossing イベントを発生させます。
protected {ShapeContainerBase.shape-container-fire-inferior-crossing-event}:void
shape-container-handle-crossing:ポインタ イベントe についての通知に応じて、必要な場合に PointerCrossing イベントを発生させます。
protected {ShapeContainerBase.shape-container-handle-crossing
c:#EventForwarder,
e:GuiInputEvent,
entered?:bool = false,
left?:bool = false
}:void
shape-container-pick-child:指定された点 (x, y) を覆う ShapeContainerBase の子を選択します。
public {ShapeContainerBase.shape-container-pick-child}:(#EventForwarder, local-x:Distance, local-y:Distance)
shape-container-pointer-enter-occurred:このオブジェクトで PointerLeafEnter を発生させます。
public {ShapeContainerBase.shape-container-pointer-enter-occurred}:void
shape-container-pointer-leave-occurred:このオブジェクトで PointerLeafLeave を発生させます。
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
メソッド 継承 GraphicOptions: any-to-Distance, get-display-context
メソッド 継承 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
メソッド 継承 DataBindingTarget: add-data-binding, get-data-binding, refresh-data-binding, remove-data-binding, unset-property, update-data-binding, validate-data-binding
メソッド 継承 EventTarget: accepts-event-class?, add-event-handler, event-handler-present?, remove-event-handler, verify-event
メソッド 継承 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
メソッド 継承 BasicEventTarget: enqueue-event
メソッド 継承 InitRestArgParser: process-rest-args
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
clone-appearance-from (コンストラクタ)
protected {ShapeContainerBase.clone-appearance-from
other:ShapeContainerBase,
fixup:#{proc-type {Visual, Visual}:Visual}
}

新規オブジェクトを生成するためのコンストラクタ。

other: クローンする ShapeContainerBase
fixup:
各クローンを作成するために呼び出されるプロシージャ。クローン化する時に使用され ShapeContainerBase.clone-children に渡されます。
このプロシージャは二つの引数と共に呼び出されます。元のオブジェクトと 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}
}


default (コンストラクタ)
public {ShapeContainerBase.default}

この型の新しいオブジェクトを作成します。




プロパティ詳細
as-Shape (アクセサ)
アクセサ public sealed ShapeContainerBase.as-Shape:#Shape

Shape オブジェクトとして self を返すか、Shape でない場合は null を返します。

注意事項

Canvas は、Shape ではない ShapeContainerBase の例です。


as-ShapeRoot (アクセサ)
アクセサ public sealed ShapeContainerBase.as-ShapeRoot:#ShapeRoot

ShapeRoot オブジェクトとして self を返すか、ShapeRoot でない場合は null を返します。

注意事項

Canvas は、ShapeRoot オブジェクトの主な例です。


selection-context (非ローカル オプション)
public ShapeContainerBase.selection-context:#SelectionContext

この ShapeContainerBase とその Shape 子孫に関連付けられた SelectionContext です。

注意事項

null 以外の場合、通常は DiscreteGraphicSelectionContext になります。


shape-children (フィールド)
public-get private-set ShapeContainerBase.shape-children:{Array-of Shape}

このオブジェクトの子である Shape のリストです。

説明

この配列内の子の順序により描画される順序が決定します。配列内での順序で描画されます。つまり、子はこの配列内のその前にあるすべての子の上に表示されます。

注意事項

この配列の内容または順序を直接変更しないように注意してください。Shape をこのオブジェクトに対して追加または削除するには、ShapeContainerBase.addShapeContainerBase.remove、または Shape.detach を使用する必要があります。この配列内の子の順序は、ShapeContainerBase.set-shape-indexShapeContainerBase.set-shape-index-after、およびShapeContainerBase.set-shape-index-before メソッドで調整できます。





メソッド詳細
add (メソッド)
public {ShapeContainerBase.add child:any, ...}:#Visual

このオブジェクトに Shape を子として追加します。

child: 子として追加するオブジェクトです。child は、まだ Shape でなければ、Graphic に強制変換されて GraphicShape の内部に配置され、このオブジェクトの子として追加されます。

説明

既定では、形状は ShapeContainerBase.shape-children の終わりに追加されます。これは、形状がすべての既存の子の最上部に描画されることを意味します。ShapeContainerBase.set-shape-index-afterShapeContainerBase.set-shape-index-before、または ShapeContainerBase.set-shape-index を呼び出して子を追加すると、描画順序を変更できます。

注意事項

また、ShapeContainerBase.add は、以下の 3 つのキーワード パラメータを指定できます。


clear (メソッド)
public {ShapeContainerBase.clear}:void

このオブジェクトのすべての子 Shape を削除します。



clone-children (メソッド)
protected {ShapeContainerBase.clone-children
other:Visual,
fixup:#{proc-type {Visual, Visual}:Visual}
}:void

ShapeContainerBase.shape-children をクローン化します。このメソッドをサブクラスでオーバーライドするためのメカニズムを提供し、また、自身のクローン化する実装を提供します。

other: クローン化するための VisualotherShapeContainerBase 型でなければなりません。そうでない場合、エラーとなります。
fixup:
other が子どもの場合、子どものクローンを作成する時に fixupVisual.clone-appearance に渡されます。
このプロシージャは二つの引数と共に呼び出されます。元のオブジェクトと 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 でない場合、エラーがスローされます。


constrain-shape-layout-bounds (メソッド)
public {ShapeContainerBase.constrain-shape-layout-bounds
lc:LayoutContext,
bounds:GRect
}:void

境界制約 (ローカル座標系) をこの Shape とその子すべてに適用します。

lc: このレイアウト ネゴシエーションで有効な LayoutContext
bounds: 適用する制約です。

説明

このメソッドによって、Shape.constrain-own-layout-bounds の一連の呼び出しが行われます。


draw-shape-child (メソッド)
public {ShapeContainerBase.draw-shape-child
child:Shape,
r2d:Renderer2d,
selected-ancestor:#ShapeSelectable = null
}:void

このオブジェクトの形状の子を 1 つ描画します。

child: 描画する子。これは self.shape-children のメンバでなければなりません。
r2d: 描画に使用される Renderer2d です。
selected-ancestor: 最も近い選択された祖先 (存在する場合) に対応する ShapeSelectable です。このパラメータは、子自体が選択されない場合ても、子を選択できるように上書き描画するかどうかを決定するために使用されます。ShapeSelectable を持たない選択された Shape の子は、祖先の ShapeSelectable を使用して選択時に上書き描画されます。この関係は、直属の子だけでなく、同じ SelectionContext 内のすべての子に再帰的に適用されることに注意してください。

説明

このメソッドは、Shape.draw を呼び出します。その結果 Shape.overdraw-for-selection が呼び出される場合もあります。最終的には、child の子が描画されます。


draw-shape-children (メソッド)
public {ShapeContainerBase.draw-shape-children
r2d:Renderer2d,
selected-ancestor:#ShapeSelectable = null
}:void

このオブジェクトの形状の子がすべて適切な順序で描画されます。

r2d: 描画に使用される Renderer2d です。
selected-ancestor: 最も近い選択された祖先 (存在する場合) に対応する ShapeSelectable です。このパラメータは、子自体が選択されない場合ても、子を選択できるように上書き描画するかどうかを決定するために使用されます。ShapeSelectable を持たない選択された Shape の子は、祖先の ShapeSelectable を使用して選択時に上書き描画されます。この関係は、直属の子だけでなく、同じ SelectionContext 内のすべての子に再帰的に適用されることに注意してください。

説明

ShapeContainerBase.draw-shape-child は、各子に対して呼び出されます。

プログラミング注意事項

このメソッドは、直接呼び出されることはほとんどありません。通常は Canvas.drawShapeContainerBase.draw-shape-child によって呼び出されます。


get-all-children-at-point (メソッド)
public final {ShapeContainerBase.get-all-children-at-point}:{Array-of Shape}

ポイントを含む直属の子形状を取得します。

戻り値

ポイントを含むこのオブジェクトの子の配列。これらの形状の順序は、上から下の順です。

説明

このメソッドは、このオブジェクトの直属の子のサブセットを含む配列を返します。この配列には、このオブジェクト自体は含まれません。
このメソッドは、最上位の形状ではなくポイントを含むすべての形状を返す点を除けば、ShapeContainerBase.get-child-at-point と同じです。

注意事項

このメソッドに渡されるポイントは、このオブジェクトのローカル座標空間にあります。


get-child-at-point (メソッド)
public {ShapeContainerBase.get-child-at-point}:(result:#Shape, local-x:Distance, local-y:Distance)

ポイントを含む最上位の直属の子形状を取得します。

説明

このメソッドは、常にこのオブジェクトの直属の子を 1 つ返します。ポイントを含む形状がない場合は null を返します。self を返すことはありません。
Shape は、オブジェクト自体、またはそのいずれかの子の描画された領域の中にポイントが含まれる場合、そのポイントを含むように定義されます。

注意事項

このメソッドに渡されるポイントは、このオブジェクトのローカル座標空間にあります。


get-leaf-at-point (メソッド)
public {ShapeContainerBase.get-leaf-at-point}:#Shape

ポイントを含む最も深い子形状を取得します。

説明

このメソッドは、このオブジェクトより下の形状階層全体をトラバースして、ポイントを含むリーフ形状 (ある場合) を取得します。

注意事項

このメソッドに渡されるポイントは、このオブジェクトのローカル座標空間にあります。


get-shape-bounds (メソッド)
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

説明

返された境界は、このオブジェクトによって描画されるすべてのピクセルをカバーしている必要があり、このオブジェクトのすべての子を含んでいます


get-shape-bounds-in-shape-root (メソッド)
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

説明

返された境界は、このオブジェクトによって描画されるすべてのピクセルをカバーしている必要があり、このオブジェクトのすべての子を含んでいます

注意事項

形状ルートを持たない形状に対してこのメソッドを呼び出すことはできません。例外が発生します。


get-shape-layout-bounds (メソッド)
public {ShapeContainerBase.get-shape-layout-bounds
lc:LayoutContext,
width-first?:bool = true,
dest:GRect = {GRect.empty}
}:GRect

このオブジェクトのローカル座標系における、このオブジェクトとその子の四角形のレイアウト境界を計算します。

lc: このレイアウト ネゴシエーションに対して有効な LayoutContext
width-first?: GraphicShape の場合、width-first レイアウト ネゴシエーションを使用して計算されるべき境界であるかを示します。このパラメータは、通常他のサブクラスでは使用されません。
dest: データを返すために使用されるオプションの GRect オブジェクト。

戻り値

境界を含む GRect オブジェクト。これは、常に dest と同じオブジェクトになります。この GRect は正しい形式である必要があります。つまり、次の条件が true でなければなりません。 -dest.lextent <= dest.rextent and -dest.ascent <= dest.descent

説明

返された境界には、レイアウトの使用について、オブジェクトに関する詳細な記述があります。また、このオブジェクトのすべての子も含まれています


get-shape-root (メソッド)
public final {ShapeContainerBase.get-shape-root}:#ShapeRoot

この形状階層のルートにある ShapeRoot を探して返します。

説明

Shape.shape-parent を使用して、ShapeRoot が見つかるまで形状階層を上方向にトラバースします。形状階層が現在 ShapeRoot 内に含まれていない場合は、null を返します。


note-attached (メソッド)
public {ShapeContainerBase.note-attached}:void

ルートが RootFrame であるグラフィック階層にこの Visual が追加されたとき、そのグラフィック階層内でこれより下にあるすべての Visual に対して AttachEvent を起動します。

説明

このメソッドは、ルートが RootFrame であるグラフィック階層に Visual が追加された直後で、オプションが反映される前に呼び出されます。

オーバーライド

Visual のサブクラスによってこれをオーバーライドし、AttachEvent をそのサブクラスおよび子グラフィック (存在する場合) に送信する必要があります。
AttachEvent は、その子グラフィックに対して起動する前に、この Visual に対して起動する必要があります。
Visual.maybe-fire-attach-event を呼び出して、Visual に対して AttachEvent を起動します。


note-detaching (メソッド)
public {ShapeContainerBase.note-detaching}:void

ルートが RootFrame であるグラフィック階層からこの Visual が削除されたとき、そのグラフィック階層内でこれより下にあるすべての Visual に対して DetachEvent を起動します。

説明

このメソッドは、ルートが RootFrame であるグラフィック階層から Visual が削除される直前に呼び出されます。

オーバーライド

Visual のサブクラスによってこれをオーバーライドし、DetachEvent をそのサブクラスおよび子グラフィック (存在する場合) に送信する必要があります。
DetachEvent は、その子グラフィックに対して起動した後に、この Visual に対して起動する必要があります。
Visual.maybe-fire-detach-event を呼び出して、Visual に対して DetachEvent を起動します。


notify-option-children (メソッド)
public {ShapeContainerBase.notify-option-children
item:OptionItem,
removed?:bool
}:void

このオブジェクトのオプションの子にオプションが変更されたことを通知します。

item: 追加または削除されたバインディング オプション。
removed?: item が削除された場合は true、それ以外の場合は false。

オーバーライド

既定の実装 OptionListInterface.notify-option-children では、何も行われません。サブクラスではこのメソッドをオーバーライドして、このオブジェクトの各オプションの子 c に対して {c.option-propagate-notify item removed? } を呼び出すようにする必要があります。


on-drag-enter (メソッド)
public {ShapeContainerBase.on-drag-enter e:DragEnter}:void

DragEnter イベントのスタティック イベント ハンドラ

説明

スタティック イベント ハンドラの一般的な情報については、GuiEventTarget.on-pointer-event を参照してください。


on-pointer-enter (メソッド)
public {ShapeContainerBase.on-pointer-enter e:PointerEnter}:void

PointerEnter イベントのスタティック イベント ハンドラ

説明

スタティック イベント ハンドラの一般的な情報については、GuiEventTarget.on-pointer-event を参照してください。


on-pointer-envelope-event (メソッド)
public {ShapeContainerBase.on-pointer-envelope-event}:void

PointerEnvelopeEventスタティック イベント ハンドラ

説明

スタティック イベント ハンドラの一般的な情報については、GuiEventTarget.on-pointer-event を参照してください。


register-options (メソッド)
public {ShapeContainerBase.register-options
p:{proc-type {OptionKey}:void}
}:void

このオブジェクトがバインドのモニタリングを必要とする非ローカル オプション キーを登録します。

p: 引数として OptionKey を使用して呼び出せるプロシージャ。

プログラミング注意事項

このメソッドは、オブジェクトがモニタしているオプション キーを確認する必要がある場合に任意のコード内で呼び出されます。このメソッドは、プロシージャ p をまったく呼び出さないかまたは何回か呼び出し、呼び出すたびに引数として OptionKey を渡す必要があります。このオブジェクトによりモニタリングされるオプション キーのセットは、p のすべての呼び出しで指定されたオプション キー セットの連結であると見なされます。p を複数回呼び出せるという能力を利用して、オプション親はモニタの対象となるオプション キーのリストを指定して p を一度呼び出し、次に、同じ引数 p を与えてオプションの子それぞれの register-options メソッドを呼び出し、このメソッドの目的を果たすことができます。この方法はシンプルですが、ほとんどの場合は、オプション親がその子における register-options 呼び出しの結果をキャッシュして、親の register-options メソッドが呼び出されたときにそのリストを提供する方がより効率的です。ローカル バインディング オプションへの変更通知は、それらのキーが登録されていない場合でも行われます。

オーバーライド

OptionListInterface.register-options の既定の実装は、このオブジェクトの変更ハンドラを持つ各非ローカル オプションで p を呼び出します。サブクラスは、{super.register-options p} を呼び出し、登録される必要がある追加のオプション キー上全てで、p を呼び出すように、このメソッドをオーバーライドする必要する必要があります。一般的に、これらの追加のオプション キーは、子供または子孫のオブジェクトが監視する必要がある非ローカル オプションに対応します。それは、このオブジェクトの子オブジェクト上で、register-options を呼び出すことによって決定されます。
注意 一般的に、このメソッドをオーバーライドする必要があるオブジェクトだけが、オプションの子を持つオブジェクトです。


remove (メソッド)
public {ShapeContainerBase.remove child:Shape}:void

このオブジェクトの形状の子を 1 つ削除します。

説明

これは、child に対して Shape.detach を呼び出す別の方法です。


set-shape-index (メソッド)
public {ShapeContainerBase.set-shape-index
child:Shape,
new-index:int
}:void

このオブジェクトの形状の子の描画順序を調整します。

説明

child は、このオブジェクトの子の配列内で、新しいインデックスが new-index になるように移動されます。


set-shape-index-after (メソッド)
public {ShapeContainerBase.set-shape-index-after
child:Shape,
after:Shape
}:void

このオブジェクトの形状の子の描画順序を調整します。

説明

child は、このオブジェクトの子の配列内で after の直後に移動されます。


set-shape-index-before (メソッド)
public {ShapeContainerBase.set-shape-index-before
child:Shape,
before:Shape
}:void

このオブジェクトの形状の子の描画順序を調整します。

説明

child は、このオブジェクトの子の配列内で before の直前に移動されます。


shape-container-fire-inferior-crossing-event (メソッド)
protected {ShapeContainerBase.shape-container-fire-inferior-crossing-event}:void

このオブジェクトで PointerCrossing イベントを発生させます。

ce: スロットに埋め込まれた後に発生する PointerCrossing イベント。
e: ce のスロットにコピーされる情報を提供する GuiInputEvent

プログラミング注意事項

ShapeContainerBase.shape-container-pointer-enter-occurredShapeContainerBase.shape-container-pointer-leave-occurred から呼び出されます。他の方法による呼び出しには適していません。

オーバーライド

通常はオーバーライドされません。


shape-container-handle-crossing (メソッド)
protected {ShapeContainerBase.shape-container-handle-crossing
c:#EventForwarder,
e:GuiInputEvent,
entered?:bool = false,
left?:bool = false
}:void

ポインタ イベントe についての通知に応じて、必要な場合に PointerCrossing イベントを発生させます。

c: (e.x,e.y) が位置する、子の形状。そのような子が存在しない場合、c は NULL になります。
e: ポインタ座標 e.x および e.y を含むイベント。
entered?: ポインタがこのオブジェクトに入っている場合は true になります。
left?: ポインタがこのオブジェクトから出ると true になります。

説明

このメソッドは、提供される引数による指定どおりに、また e 自体がドラッグ操作に関連付けられているかどうかに応じて、PointerEnterPointerLeaveDragEnterDragLeavePointerLeafEnter などの PointerCrossing イベントを発生させます。PointerLeave などのポインタが出るイベントは、出た self に子がある場合にその子で発生します。PointerLeafEnter などのリーフ交差イベントは、必要に応じて self で発生します。最後に、 PointerEnter などのポインタが入るイベントは、入った self に子がある場合に、その子で発生します。

プログラミング注意事項

このメソッドが呼び出されるのは、PointerEnvelopeEventself で発生したとき、または self. shape-container-pointer-enter-occurred または self. shape-container-pointer-leave-occurred が呼び出されたときです。


shape-container-pick-child (メソッド)
public {ShapeContainerBase.shape-container-pick-child}:(#EventForwarder, local-x:Distance, local-y:Distance)

指定された点 (x, y) を覆う ShapeContainerBase の子を選択します。

x, y: 点の座標。

戻り値

この点を覆う子。該当する子がない場合は NULL を返します。

プログラミング注意事項

このメソッドは、PointerEvent を転送する場合やその他の類似の状況で使用されます。

注意事項

このメソッドの実装では、xy の最新の値を、これらの値について返された答えと合わせてキャッシュすることが推奨されます。このメソッドはたいてい同じ入力で連続して複数回呼び出されるからです。


shape-container-pointer-enter-occurred (メソッド)
public {ShapeContainerBase.shape-container-pointer-enter-occurred}:void

このオブジェクトで PointerLeafEnter を発生させます。

e: このオブジェクトが入ったことを示す座標を持つ GuiInputEvent

プログラミング注意事項

ポインタがオブジェクトに入ると ShapeContainerBase.on-pointer-enter で呼び出されます。

オーバーライド

通常はオーバーライドされません。


shape-container-pointer-leave-occurred (メソッド)
public {ShapeContainerBase.shape-container-pointer-leave-occurred}:void

このオブジェクトで PointerLeafLeave を発生させます。

e: このオブジェクトが出たことを示す座標を持つ GuiInputEvent

プログラミング注意事項

ポインタがオブジェクトを出ると ShapeContainerBase.on-pointer-leave で呼び出されます。

オーバーライド

通常はオーバーライドされません。