ArrowShape (クラス)
public ArrowShape {inherits RegionShapeMixin}
パッケージ: CURL.GUI.SHAPES

矢印のような Shape の実装。

説明

ArrowShape には、さまざまな外観があります。特に次のオプションに注目してください。
矢印の「終点」と「始点」は位置によってのみ区別されることに注意してください。
ArrowShape は、グラフィックが複雑であり、あらゆる状況で左右対称の適切な矢印を生成するために一部の寸法をピクセルに数量化します。重要な機能 (線の幅など) は、デバイス ピクセル数の整数値に丸められます。(Shape.get-local-device-pixel-size がローカル スケールを考慮するために使用されます。)
終点の幅と線の幅は、実際にはデバイス ピクセル サイズの偶数の倍数になるように数量化されることに注意してください。これは矢印を左右対称にするためです。これらのすべてのルールの結果として、矢印の線の幅は 2 デバイス ピクセルより細くなることはありません。
線ベースのレンダリングは単一ピクセルの太さの矢印に対して推奨されます。この場合 PathShape を使用することを検討してください。PathShape クラスの説明には、細い矢印を記述する PathPathShape の作成などの例が含まれています。

注意事項

このクラスは次の形状オプションを使用します。 このオブジェクトは、"ArrowShape"のスタイル ルールを記述することによってスタイル化することが出来ます。


{import * from CURL.GUI.SHAPES}

{let arrow:ArrowShape =
    {ArrowShape
        {Distance2d 0cm, 2cm},
        {Distance2d 6cm, 2cm},
        arrow-head-width = .75cm,
        arrow-tail-width = .75cm,
        arrow-head-style = ArrowStyle.simple,
        arrow-tail-style = ArrowStyle.none,
        color = FillPattern.silver,
        border-color = FillPattern.navy
    }
}

{VBox
    halign = "center",
    {HBox spacing = .5cm,
        {VBox
            {DropdownList
                width = 2in,
                ArrowStyle.none,
                ArrowStyle.simple,
                ArrowStyle.solid,
                ArrowStyle.tick-mark,
                ArrowStyle.tail,
                ArrowStyle.solid-tail,
                value = arrow.arrow-tail-style,
                {on ValueFinished at list:DropdownList do
                    set arrow.arrow-tail-style = list.value asa ArrowStyle
                }
            },
            {HBox
                "Tail width (cm):",
                {Fill},
                {TextField
                    width = .5in,
                    value = {format "%.2f", arrow.arrow-tail-width / 1cm},
                    {on ValueFinished at field:TextField do
                        set arrow.arrow-tail-width = {field.value.to-double} * 1cm
                    }
                }
            },
            {HBox
                "Tail length (cm):",
                {Fill},
                {TextField
                    width = .5in,
                    value = {format "%.2f", arrow.arrow-tail-length / 1cm},
                    {on ValueFinished at field:TextField do
                        set arrow.arrow-tail-length = {field.value.to-double} * 1cm
                    }
                }
            }
        },
        {VBox
            {Fill},
            "Body width (cm):",
            {TextField
                width = .5in,
                value = {format "%.2f", arrow.arrow-body-width / 1cm},
                {on ValueFinished at field:TextField do
                    set arrow.arrow-body-width = {field.value.to-double} * 1cm
                }
            }
        },
        {VBox
            {DropdownList
                width = 2in,
                ArrowStyle.none,
                ArrowStyle.simple,
                ArrowStyle.solid,
                ArrowStyle.tick-mark,
                ArrowStyle.tail,
                ArrowStyle.solid-tail,
                value = arrow.arrow-head-style,
                {on ValueFinished at list:DropdownList do
                    set arrow.arrow-head-style =
                        list.value asa ArrowStyle
                }
            },
            {HBox
                "Head width (cm):",
                {Fill},
                {TextField
                    width = .5in,
                    value = {format "%.2f", arrow.arrow-head-width / 1cm},
                    {on ValueFinished at field:TextField do
                        set arrow.arrow-head-width = {field.value.to-double} * 1cm
                    }
                }
            },
            {HBox
                "Head length (cm):",
                {Fill},
                {TextField
                    width = .5in,
                    value = {format "%.2f", arrow.arrow-head-length / 1cm},
                    {on ValueFinished at field:TextField do
                        set arrow.arrow-head-length = {field.value.to-double} * 1cm
                    }
                }
            }
        }
    },
    {Canvas
        width = 6cm,
        height = 4cm,
        arrow
    }
}

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

プロパティ
arrow-body-width:ArrowShape の線の幅です。
非ローカル オプション public ArrowShape.arrow-body-width:any
arrow-head-length:始点 ArrowShape の(線に沿った)長さです。
非ローカル オプション public ArrowShape.arrow-head-length:any
arrow-head-style:始点 ArrowShape のスタイルです。
非ローカル オプション public ArrowShape.arrow-head-style:ArrowStyle
arrow-head-width:始点 ArrowShape の幅です。
非ローカル オプション public ArrowShape.arrow-head-width:any
arrow-tail-length:終点 ArrowShape の(線に沿った)長さです。
非ローカル オプション public ArrowShape.arrow-tail-length:any
arrow-tail-style:終点 ArrowShape のスタイルです。
非ローカル オプション public ArrowShape.arrow-tail-style:ArrowStyle
arrow-tail-width:終点 ArrowShape の幅です。
非ローカル オプション public ArrowShape.arrow-tail-width:any
clonable-class?:当該クラスがクローン化可能である場合は、true を返します。その他の場合は false を返します。
アクセサ protected ArrowShape.clonable-class?:bool
display-context:このオブジェクトに関連付けられている DisplayContext
非ローカル オプション public ArrowShape.display-context:#DisplayContext
head:始点矢印の端点。
アクセサ public final ArrowShape.head:Distance2d
セッター public final ArrowShape.head:Distance2d
style-element:スタイリングの目的のための、この Visual の "要素" や "型" です。
アクセサ public ArrowShape.style-element:String
tail:終点矢印の端点。
アクセサ public final ArrowShape.tail:Distance2d
セッター public final ArrowShape.tail:Distance2d
プロパティ 継承 RegionShapeMixin: border-color, border-line-style, border-width, color
プロパティ 継承 Shape: as-Shape, draw-operation, graphical-parent, option-parent, possibly-displayed?, selection-context, shape-parent, shape-selectable, stroke-thickness, transformation, visible?
プロパティ 継承 ShapeContainerBase: as-ShapeRoot, shape-children
プロパティ 継承 Visual: _style-element, completely-clonable-children?, cursor, data-source, dragee, font-size, has-key-focus?, input-method-enabled?, input-method-keyboard-mode, name, options, style-class, 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-register-proc, options-present-here, registered-option-keys

メソッド
clone-appearance-helper:クローンを作成し、クローン自体を返します。
protected {ArrowShape.clone-appearance-helper
fixup:#{proc-type {Visual, Visual}:Visual}
}:Visual
get-own-bounds:ローカル座標系におけるこの Shape の四角形のレンダリング境界を計算します。
public {ArrowShape.get-own-bounds dest:GRect = {GRect.empty}}:GRect
get-own-layout-bounds:ローカル座標系におけるこの Shape の四角形のレイアウト境界を計算します。
public {ArrowShape.get-own-layout-bounds
lc:LayoutContext,
width-first?:bool = true,
dest:GRect = {GRect.empty}
}:GRect
self-contains-point?:ポイントがこの Shape 内にあるかどうかを判定します。
public {ArrowShape.self-contains-point? x:Distance, y:Distance}:bool
transformation-changed:Shape.transformation が変更されたことの通知。
public {ArrowShape.transformation-changed}:void
メソッド 継承 RegionShapeMixin: draw, overdraw-for-selection, self-intersects-polygon?
メソッド 継承 Shape: apply-rotation, apply-scale, apply-transformation, apply-translation, apply-translation-in-parent, constrain-own-layout-bounds, constrain-shape-layout-bounds, contains-point?, detach, find-graphical-ancestor, fire-crossing-event, fire-in-child, get-display-context, get-down-orientation-in-shape-parent, get-graphical-root, get-gui-path, get-gui-path-to-child, get-local-device-pixel-size, get-origin-in-graphical-ancestor, get-origin-in-root, get-origin-in-shape-parent, get-origin-in-shape-root, get-own-bounds-in-shape-root, get-right-orientation-in-shape-parent, get-shape-bounds, get-shape-bounds-in-shape-root, get-shape-layout-bounds, get-top-left-in-ancestor, get-transformation-to-shape-root, keyword-init-arg, option-change-notify, quantize-line-thickness, request-draw, request-draw-self, reset-transformation, set-rotation, set-scale, set-transformation, set-translation-in-parent, to-Graphic, transform-from-display-coordinates, transform-from-graphical-root-coordinates, transform-point-from-shape-root, transform-point-to-shape-root, transform-to-display-coordinates, transform-to-graphical-root-coordinates, transform-vector-from-shape-root, transform-vector-to-shape-root, transformation-changing
メソッド 継承 ShapeContainerBase: add, clear, clone-children, draw-shape-child, draw-shape-children, get-all-children-at-point, get-child-at-point, get-leaf-at-point, get-shape-root, note-attached, note-detaching, notify-option-children, on-drag-enter, on-pointer-enter, on-pointer-envelope-event, register-options, remove, set-shape-index, set-shape-index-after, set-shape-index-before, shape-container-fire-inferior-crossing-event, shape-container-handle-crossing, shape-container-pick-child, shape-container-pointer-enter-occurred, shape-container-pointer-leave-occurred
メソッド 継承 Visual: add-from-init-args, animate, change-cursor, clonable-appearance?, clone-appearance, find-test-children, get-focus-manager, get-layout-context, get-test-parent, get-test-property, get-text, 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-key-focus, scroll-to-include, test-record, test-run, xy-offset-to
メソッド 継承 GraphicOptions: any-to-Distance
メソッド 継承 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, local-add-notify, local-remove-notify, name-to-option-key, new-option-item, 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 {ArrowShape.clone-appearance-from
other:ArrowShape,
fixup:#{proc-type {Visual, Visual}:Visual}
}

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

other: クローンする ArrowShape
fixup:
各クローンを作成するために呼び出されるプロシージャ。クローン化する時に使用され ArrowShape.clone-children に渡されます。
このプロシージャは二つの引数と共に呼び出されます。元のオブジェクトと clone-appearance のメカニズムによって生成されたコピーオブジェクトです。このプロシージャによって返された値はクローンとして使用されます。このプロシージャはコピーするオブジェクトに修正を加えて返すことができます。このプロシージャが null を返すことはできません。

説明

クローン化をサポートする ArrowShape のサブクラスはこのコンストラクタを呼び出すコンストラクタを持たなければなりません。クローンされた子に追加しなければならない情報があるかどうか分からない場合、このコンストラクタはサブクラスの子のクローンを作成しません。このクラスのサブクラスは子のクローンを作成しそれらを追加する必要があります。追加の情報が必要でない場合、単に ArrowShape.clone-children を呼び出すだけです。そうでない場合は、ArrowShape.clone-children をオーバーライドしそれを呼び出さなければなりません。通常、clone-apperance-from コンストラクタから呼び出される ArrowShape.clone-children は以下のようになります。
{if {type-of self} == {compile-time-type-of self} then
    {self.clone-children other, fixup}
}


default (コンストラクタ)
public {ArrowShape.default tail:Distance2d, head:Distance2d, ...}

新しい ArrowShape を作成します。

tail: 終点矢印の端点。
head: 始点矢印の端点。
...: 通常の Shape の作成引数を渡せます。たとえば、イニシャライザ、変換、子 Shape などです。詳細については、Shape.default を参照してください。



プロパティ詳細
arrow-body-width (非ローカル オプション)
public ArrowShape.arrow-body-width:any

ArrowShape の線の幅です。

説明

既定値は 6pt です。有効な値の例としては次のものがあります。

注意事項

すべての形状オブジェクトにこのオプションがあり、継承されるか、またはオブジェクトに直接設定されます。
形状オブジェクトによっては、このプロパティを直接使用しないものがあります。たとえば、ShapeGroup はこのプロパティを使用しません。しかし、ShapeGroup オブジェクトにこのようなプロパティを設定すると、形状オブジェクトのすべての子が既定でプロパティを継承するので便利です。


arrow-head-length (非ローカル オプション)
public ArrowShape.arrow-head-length:any

始点 ArrowShape の(線に沿った)長さです。

説明

このオプションは、矢印の終点に使用できるスタイルには適用されません。詳細については、ArrowStyle を参照してください。
既定値は 12pt です。有効な値の例としては次のものがあります。
  • 2cm
  • 1.5in
  • 36pt
  • 3px
  • 36 (36pt と同じ)

注意事項

すべての形状オブジェクトにこのオプションがあり、継承されるか、またはオブジェクトに直接設定されます。
形状オブジェクトによっては、このプロパティを直接使用しないものがあります。たとえば、ShapeGroup はこのプロパティを使用しません。しかし、ShapeGroup オブジェクトにこのようなプロパティを設定すると、形状オブジェクトのすべての子が既定でプロパティを継承するので便利です。


arrow-head-style (非ローカル オプション)
public ArrowShape.arrow-head-style:ArrowStyle

始点 ArrowShape のスタイルです。

説明

詳細については ArrowStyle を参照してください。

注意事項

すべての形状オブジェクトにこのオプションがあり、継承されるか、またはオブジェクトに直接設定されます。
形状オブジェクトによっては、このプロパティを直接使用しないものがあります。たとえば、ShapeGroup はこのプロパティを使用しません。しかし、ShapeGroup オブジェクトにこのようなプロパティを設定すると、形状オブジェクトのすべての子が既定でプロパティを継承するので便利です。


arrow-head-width (非ローカル オプション)
public ArrowShape.arrow-head-width:any

始点 ArrowShape の幅です。

説明

このオプションは、矢印の終点に使用できるスタイルには適用されません。詳細については、ArrowStyle を参照してください。
既定値は 12pt です。有効な値の例としては次のものがあります。
  • 2cm
  • 1.5in
  • 36pt
  • 3px
  • 36 (36pt と同じ)

注意事項

すべての形状オブジェクトにこのオプションがあり、継承されるか、またはオブジェクトに直接設定されます。
形状オブジェクトによっては、このプロパティを直接使用しないものがあります。たとえば、ShapeGroup はこのプロパティを使用しません。しかし、ShapeGroup オブジェクトにこのようなプロパティを設定すると、形状オブジェクトのすべての子が既定でプロパティを継承するので便利です。


arrow-tail-length (非ローカル オプション)
public ArrowShape.arrow-tail-length:any

終点 ArrowShape の(線に沿った)長さです。

説明

このオプションは、終点矢印に使用できるスタイルには適用されません。詳細については、ArrowStyle を参照してください。
既定値は 12pt です。有効な値の例としては次のものがあります。
  • 2cm
  • 1.5in
  • 36pt
  • 3px
  • 36 (36pt と同じ)

注意事項

すべての形状オブジェクトにこのオプションがあり、継承されるか、またはオブジェクトに直接設定されます。
形状オブジェクトによっては、このプロパティを直接使用しないものがあります。たとえば、ShapeGroup はこのプロパティを使用しません。しかし、ShapeGroup オブジェクトにこのようなプロパティを設定すると、形状オブジェクトのすべての子が既定でプロパティを継承するので便利です。


arrow-tail-style (非ローカル オプション)
public ArrowShape.arrow-tail-style:ArrowStyle

終点 ArrowShape のスタイルです。

説明

詳細については ArrowStyle を参照してください。

注意事項

すべての形状オブジェクトにこのオプションがあり、継承されるか、またはオブジェクトに直接設定されます。
形状オブジェクトによっては、このプロパティを直接使用しないものがあります。たとえば、ShapeGroup はこのプロパティを使用しません。しかし、ShapeGroup オブジェクトにこのようなプロパティを設定すると、形状オブジェクトのすべての子が既定でプロパティを継承するので便利です。


arrow-tail-width (非ローカル オプション)
public ArrowShape.arrow-tail-width:any

終点 ArrowShape の幅です。

説明

このオプションは、終点矢印に使用できるスタイルには適用されません。詳細については、ArrowStyle を参照してください。
既定値は 11pt です。有効な値の例としては次のものがあります。
  • 2cm
  • 1.5in
  • 36pt
  • 3px
  • 36 (36pt と同じ)

注意事項

すべての形状オブジェクトにこのオプションがあり、継承されるか、またはオブジェクトに直接設定されます。
形状オブジェクトによっては、このプロパティを直接使用しないものがあります。たとえば、ShapeGroup はこのプロパティを使用しません。しかし、ShapeGroup オブジェクトにこのようなプロパティを設定すると、形状オブジェクトのすべての子が既定でプロパティを継承するので便利です。


clonable-class? (アクセサ)
アクセサ protected ArrowShape.clonable-class?:bool

当該クラスがクローン化可能である場合は、true を返します。その他の場合は false を返します。

オーバーライド

既定の実装は false を返します。クローン化機能を提供するクラスは、{type-of self} == {compile-time-type-of self} を返すためには、このゲッターをオーバーライドする必要があります。クローン化可能な Visual が必ずしもクローン化可能であるとは限らないので、単に true を返すだけでは正しくありません。
このメソッドをオーバーライドする場合は、Visual.clone-appearance-helper もオーバーライドする必要があります。


display-context (非ローカル オプション)
public ArrowShape.display-context:#DisplayContext

このオブジェクトに関連付けられている DisplayContext

プログラミング注意事項

このオプションは、Curl グラフィック システム内での通信のために使用されます。これは、ユーザー コードで不用意に設定や設定解除を行わないでください。また、通常は、ユーザー コードで直接読み取るべきではありません。現在の DisplayContext が必要な場合は、Visual.get-display-context を呼び出すことによりフェッチしてください。

画面上のウィンドウまたは印刷されたページで表示可能なすべてのグラフィック階層は、そのルートにおいて、display-context オプションを DisplayContext オブジェクトに設定するオブジェクトを持つ必要があります。このオブジェクトは、グラフィック階層の表示に使用される表示媒体に適しています。つまり、オブジェクトは、display-context オプションの値が null から非 null DisplayContext オブジェクトに変更されるのをモニタリングすることにより、表示不可能なグラフィック階層に連結されていることを認識します。したがって、特定の動作を実行する必要のある Visual のサブクラスは、表示不可能なグラフィック階層に接続された場合、次のようなオプション宣言を含むことにより display-context オプションをモニタリングします。

{nonlocal-option public display-context:#DisplayContext
change handler}


ここで、change handler 内のコードは display-context オプションの現在値 (変数 display-context の値として、変更ハンドラ内にある) を取得し、null および非 null の値の間で行われる変更をモニタリングし、必要とされる動作を実行します。

ただし、このプログラミング熟語を使用するプログラマーは、グラフィカル表示を再配列する際、グラフィック階層からグラフィカル オブジェクトを一時的に分離し、これらを同じ階層に再アタッチすることが、割に一般的であることを理解するべきです。この処理により、一時的に分離されたオブジェクトは、display-context オブジェクトが null になり、再び非 null になるのを観察します。display-context オプションでの変更をモニタリングするコードは、この可能性を考慮に入れ、この状況における望ましくない動作の実行を回避しなくてはなりません。


head (アクセサ)
アクセサ public final ArrowShape.head:Distance2d
セッター public final ArrowShape.head:Distance2d

始点矢印の端点。



style-element (アクセサ)
アクセサ public ArrowShape.style-element:String

スタイリングの目的のための、この Visual の "要素" や "型" です。

説明

この実装によって Visual._style-elementの値が返されますが、通常は定数を返すためにオーバーライドされます。

オーバーライド

Visual のサブクラスのスタイルが他のオブジェクトと異なる場合、このゲッターは適切な文字列を返すようにオーバーライドされる必要があります。 慣例では,この文字列はクラス名または、オブジェクトを生成するマークアップの名前です。
オーバーライドでは、空の文字列でないかぎり、self._style-elementを返さなければなりません。
導入: バージョン 6.0


tail (アクセサ)
アクセサ public final ArrowShape.tail:Distance2d
セッター public final ArrowShape.tail:Distance2d

終点矢印の端点。






メソッド詳細
clone-appearance-helper (メソッド)
protected {ArrowShape.clone-appearance-helper
fixup:#{proc-type {Visual, Visual}:Visual}
}:Visual

クローンを作成し、クローン自体を返します。

オーバーライド

既定の実装はエラーをスローします。クローン化機能を提供するクラスは、
{{compile-time-type-of self}.clone-appearance-from self, fixup}
を返すためには、このゲッターをオーバーライドする必要があります。


get-own-bounds (メソッド)
public {ArrowShape.get-own-bounds dest:GRect = {GRect.empty}}:GRect

ローカル座標系におけるこの Shape の四角形のレンダリング境界を計算します。

dest: データを返すために使用されるオプションの GRect オブジェクト。

戻り値

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

説明

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

注意事項

レンダリング境界 (get-own-bounds) とレイアウト境界 (get-own-layout-bounds) は、通常似ていますが、同じではありません。特に、レンダリング境界は非常に包括的ですが、レイアウト境界はそれぞれが整然と隣接するため、Shape を厳密に記述しなければならなりません。

オーバーライド

Shape をサブクラス化する場合は、このメソッドをオーバーライドする必要があります。データを返すには、dest パラメータを使用する必要があります。


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

ローカル座標系におけるこの Shape の四角形のレイアウト境界を計算します。

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

戻り値

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

説明

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

注意事項

レンダリング境界 (get-own-bounds) とレイアウト境界 (get-own-layout-bounds) は、通常似ていますが、同じではありません。特に、レンダリング境界は非常に包括的ですが、レイアウト境界はそれぞれが整然と隣接するため、Shape を厳密に記述しなければならなりません。

オーバーライド

既定の実装では、get-own-bounds を呼び出すだけです。データを返すには、dest パラメータを使用する必要があります。


self-contains-point? (メソッド)
public {ArrowShape.self-contains-point? x:Distance, y:Distance}:bool

ポイントがこの Shape 内にあるかどうかを判定します。

x: 点の X 座標。
y: 点の Y 座標。

戻り値

この Shape が (xy) を含む場合は、true

説明

ポイントは、このオブジェクトのローカル座標系にあります。このメソッドは、その子を考慮しません。

オーバーライド

Shape をサブクラス化する場合は、このメソッドをオーバーライドする必要があります。このメソッドは、PointerMotion などのマウス イベントをこのオブジェクトにいつ送信するかなどを決定します。
通常は、このメソッドを実装して、ポイントが形状の境界内にあるかどうかだけでなく、ポイントが形状のレンダリングされたプリミティブ内にあるどうかを確認する必要があります。このメソッドは必要なメトリックを使用して自在に実装できます。


transformation-changed (メソッド)
public {ArrowShape.transformation-changed}:void

Shape.transformation が変更されたことの通知。

オーバーライド

重要:このメソッドのオーバーライド実装にスーパークラス実装の呼び出しを含めて、オブジェクトの新しい領域を無効にする必要があります。